@exabugs/dynamodb-client 0.3.6 → 0.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.
- package/CHANGELOG.md +46 -0
- package/README.md +35 -23
- package/dist/client/Collection.d.ts +1 -1
- package/dist/client/Collection.d.ts.map +1 -1
- package/dist/client/FindCursor.d.ts +1 -1
- package/dist/client/FindCursor.d.ts.map +1 -1
- package/dist/index.d.ts +1 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/server/handler.cjs +8186 -7921
- package/dist/server/handler.cjs.map +4 -4
- package/dist/server/handler.d.ts.map +1 -1
- package/dist/server/handler.js +1 -2
- package/dist/server/handler.js.map +1 -1
- package/dist/server/operations/deleteMany.js +1 -1
- package/dist/server/operations/deleteMany.js.map +1 -1
- package/dist/server/operations/deleteOne.js +1 -1
- package/dist/server/operations/deleteOne.js.map +1 -1
- package/dist/server/operations/find/handler.d.ts +21 -0
- package/dist/server/operations/find/handler.d.ts.map +1 -0
- package/dist/server/operations/find/handler.js +53 -0
- package/dist/server/operations/find/handler.js.map +1 -0
- package/dist/server/operations/find/idQuery.d.ts +16 -0
- package/dist/server/operations/find/idQuery.d.ts.map +1 -0
- package/dist/server/operations/find/idQuery.js +149 -0
- package/dist/server/operations/find/idQuery.js.map +1 -0
- package/dist/server/operations/find/index.d.ts +9 -0
- package/dist/server/operations/find/index.d.ts.map +1 -0
- package/dist/server/operations/find/index.js +9 -0
- package/dist/server/operations/find/index.js.map +1 -0
- package/dist/server/operations/find/shadowQuery.d.ts +16 -0
- package/dist/server/operations/find/shadowQuery.d.ts.map +1 -0
- package/dist/server/operations/find/shadowQuery.js +283 -0
- package/dist/server/operations/find/shadowQuery.js.map +1 -0
- package/dist/server/operations/find/types.d.ts +71 -0
- package/dist/server/operations/find/types.d.ts.map +1 -0
- package/dist/server/operations/find/types.js +5 -0
- package/dist/server/operations/find/types.js.map +1 -0
- package/dist/server/operations/find/utils.d.ts +37 -0
- package/dist/server/operations/find/utils.d.ts.map +1 -0
- package/dist/server/operations/find/utils.js +117 -0
- package/dist/server/operations/find/utils.js.map +1 -0
- package/dist/server/operations/find.d.ts +4 -14
- package/dist/server/operations/find.d.ts.map +1 -1
- package/dist/server/operations/find.js +2 -368
- package/dist/server/operations/find.js.map +1 -1
- package/dist/server/operations/findMany.js +1 -1
- package/dist/server/operations/findMany.js.map +1 -1
- package/dist/server/operations/findManyReference.d.ts.map +1 -1
- package/dist/server/operations/findManyReference.js +2 -1
- package/dist/server/operations/findManyReference.js.map +1 -1
- package/dist/server/operations/findOne.js +1 -1
- package/dist/server/operations/findOne.js.map +1 -1
- package/dist/server/operations/insertMany.d.ts.map +1 -1
- package/dist/server/operations/insertMany.js +2 -1
- package/dist/server/operations/insertMany.js.map +1 -1
- package/dist/server/operations/insertOne.d.ts.map +1 -1
- package/dist/server/operations/insertOne.js +2 -1
- package/dist/server/operations/insertOne.js.map +1 -1
- package/dist/server/operations/updateMany.d.ts.map +1 -1
- package/dist/server/operations/updateMany.js +2 -1
- package/dist/server/operations/updateMany.js.map +1 -1
- package/dist/server/operations/updateOne.d.ts.map +1 -1
- package/dist/server/operations/updateOne.js +2 -1
- package/dist/server/operations/updateOne.js.map +1 -1
- package/dist/server/query/converter.d.ts +1 -1
- package/dist/server/query/converter.d.ts.map +1 -1
- package/dist/server/shadow/config.d.ts +13 -13
- package/dist/server/shadow/config.d.ts.map +1 -1
- package/dist/server/shadow/config.js +10 -10
- package/dist/server/shadow/differ.d.ts +3 -38
- package/dist/server/shadow/differ.d.ts.map +1 -1
- package/dist/server/shadow/differ.js +4 -62
- package/dist/server/shadow/differ.js.map +1 -1
- package/dist/server/shadow/generator.d.ts +1 -1
- package/dist/server/shadow/generator.d.ts.map +1 -1
- package/dist/server/shadow/generator.js +8 -19
- package/dist/server/shadow/generator.js.map +1 -1
- package/dist/server/shadow/index.d.ts +2 -1
- package/dist/server/shadow/index.d.ts.map +1 -1
- package/dist/server/shadow/index.js.map +1 -1
- package/dist/server/shadow/types.d.ts +4 -41
- package/dist/server/shadow/types.d.ts.map +1 -1
- package/dist/server/shadow/types.js +5 -0
- package/dist/server/shadow/types.js.map +1 -1
- package/dist/server/utils/bulkOperations.d.ts +0 -15
- package/dist/server/utils/bulkOperations.d.ts.map +1 -1
- package/dist/server/utils/bulkOperations.js +1 -16
- package/dist/server/utils/bulkOperations.js.map +1 -1
- package/dist/server/utils/chunking.d.ts +0 -9
- package/dist/server/utils/chunking.d.ts.map +1 -1
- package/dist/server/utils/chunking.js +1 -10
- package/dist/server/utils/chunking.js.map +1 -1
- package/dist/server/utils/dynamodb.js +1 -1
- package/dist/server/utils/dynamodb.js.map +1 -1
- package/dist/shadows/differ.d.ts +12 -12
- package/dist/shadows/differ.js +15 -15
- package/dist/shadows/differ.js.map +1 -1
- package/dist/shadows/generator.d.ts +53 -31
- package/dist/shadows/generator.d.ts.map +1 -1
- package/dist/shadows/generator.js +79 -35
- package/dist/shadows/generator.js.map +1 -1
- package/dist/shadows/index.d.ts +8 -10
- package/dist/shadows/index.d.ts.map +1 -1
- package/dist/shadows/index.js +12 -11
- package/dist/shadows/index.js.map +1 -1
- package/dist/shadows/types.d.ts +8 -28
- package/dist/shadows/types.d.ts.map +1 -1
- package/dist/shared/constants/dynamodb.d.ts +36 -0
- package/dist/shared/constants/dynamodb.d.ts.map +1 -0
- package/dist/shared/constants/dynamodb.js +100 -0
- package/dist/shared/constants/dynamodb.js.map +1 -0
- package/dist/shared/constants/http.d.ts +48 -0
- package/dist/shared/constants/http.d.ts.map +1 -0
- package/dist/shared/constants/http.js +48 -0
- package/dist/shared/constants/http.js.map +1 -0
- package/dist/shared/constants/index.d.ts +7 -0
- package/dist/shared/constants/index.d.ts.map +1 -0
- package/dist/shared/constants/index.js +7 -0
- package/dist/shared/constants/index.js.map +1 -0
- package/dist/shared/constants/lambda.d.ts +33 -0
- package/dist/shared/constants/lambda.d.ts.map +1 -0
- package/dist/shared/constants/lambda.js +33 -0
- package/dist/shared/constants/lambda.js.map +1 -0
- package/dist/{errors.d.ts → shared/errors/index.d.ts} +7 -1
- package/dist/shared/errors/index.d.ts.map +1 -0
- package/dist/{errors.js → shared/errors/index.js} +7 -1
- package/dist/shared/errors/index.js.map +1 -0
- package/dist/shared/index.d.ts +11 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +15 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/{types.d.ts → shared/types/index.d.ts} +7 -1
- package/dist/shared/types/index.d.ts.map +1 -0
- package/dist/shared/types/index.js +8 -0
- package/dist/shared/types/index.js.map +1 -0
- package/dist/shared/utils/dynamodb.d.ts +18 -0
- package/dist/shared/utils/dynamodb.d.ts.map +1 -0
- package/dist/shared/utils/dynamodb.js +32 -0
- package/dist/shared/utils/dynamodb.js.map +1 -0
- package/dist/shared/utils/index.d.ts +8 -0
- package/dist/shared/utils/index.d.ts.map +1 -0
- package/dist/shared/utils/index.js +8 -0
- package/dist/shared/utils/index.js.map +1 -0
- package/dist/{logger.d.ts → shared/utils/logger.d.ts} +7 -1
- package/dist/shared/utils/logger.d.ts.map +1 -0
- package/dist/{logger.js → shared/utils/logger.js} +7 -1
- package/dist/shared/utils/logger.js.map +1 -0
- package/dist/shared/utils/ulid.d.ts.map +1 -0
- package/dist/{ulid.js → shared/utils/ulid.js} +5 -0
- package/dist/shared/utils/ulid.js.map +1 -0
- package/dist/shared/utils/validation.d.ts +59 -0
- package/dist/shared/utils/validation.d.ts.map +1 -0
- package/dist/shared/utils/validation.js +114 -0
- package/dist/shared/utils/validation.js.map +1 -0
- package/package.json +8 -7
- package/terraform/README.md +8 -7
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js.map +0 -1
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js.map +0 -1
- package/dist/shadows/config.d.ts +0 -54
- package/dist/shadows/config.d.ts.map +0 -1
- package/dist/shadows/config.js +0 -95
- package/dist/shadows/config.js.map +0 -1
- package/dist/shadows/schema.d.ts +0 -63
- package/dist/shadows/schema.d.ts.map +0 -1
- package/dist/shadows/schema.js +0 -8
- package/dist/shadows/schema.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/ulid.d.ts.map +0 -1
- package/dist/ulid.js.map +0 -1
- /package/dist/{ulid.d.ts → shared/utils/ulid.d.ts} +0 -0
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* 要件: 4.2, 4.4, 5.2, 5.3
|
|
6
6
|
*/
|
|
7
7
|
import { GetCommand, TransactWriteCommand } from '@aws-sdk/lib-dynamodb';
|
|
8
|
-
import { ItemNotFoundError, createLogger
|
|
8
|
+
import { ItemNotFoundError, createLogger } from '../../shared/index.js';
|
|
9
|
+
import { generateShadowRecords, getShadowConfig } from '../shadow/index.js';
|
|
9
10
|
import { calculateShadowDiff, generateMainRecordSK, isDiffEmpty } from '../shadow/index.js';
|
|
10
11
|
import { executeDynamoDBOperation, getDBClient, getTableName, removeShadowKeys, } from '../utils/dynamodb.js';
|
|
11
12
|
import { addUpdateTimestamp } from '../utils/timestamps.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateOne.js","sourceRoot":"","sources":["../../../src/server/operations/updateOne.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,
|
|
1
|
+
{"version":3,"file":"updateOne.js","sourceRoot":"","sources":["../../../src/server/operations/updateOne.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../../src/server/query/converter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,MAAM,EAAmB,MAAM,
|
|
1
|
+
{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../../src/server/query/converter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,MAAM,EAAmB,MAAM,uBAAuB,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAChC,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,QAAQ,GACR,aAAa,GACb,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,aAAa;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY;IACZ,QAAQ,EAAE,wBAAwB,CAAC;IACnC,UAAU;IACV,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY;IACZ,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,wBAAwB;IACxB,eAAe,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,GAAG,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAkEjG"}
|
|
@@ -16,38 +16,38 @@
|
|
|
16
16
|
* 要件: 2.9-2.11
|
|
17
17
|
*/
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Shadow configuration (v0.3.x environment variable-based)
|
|
20
20
|
*/
|
|
21
21
|
export interface ShadowConfig {
|
|
22
|
-
/**
|
|
22
|
+
/** Timestamp field names */
|
|
23
23
|
createdAtField: string;
|
|
24
24
|
updatedAtField: string;
|
|
25
|
-
/**
|
|
25
|
+
/** Maximum bytes for primitive types (array/object use 2x) */
|
|
26
26
|
stringMaxBytes: number;
|
|
27
|
-
/**
|
|
27
|
+
/** Number padding digits */
|
|
28
28
|
numberPadding: number;
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
|
-
*
|
|
31
|
+
* Get shadow configuration from environment variables
|
|
32
32
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
33
|
+
* Loads configuration from environment variables and caches it globally.
|
|
34
|
+
* Only reads environment variables on first call, uses cache thereafter.
|
|
35
35
|
*
|
|
36
|
-
* @returns
|
|
37
|
-
* @throws
|
|
36
|
+
* @returns Shadow configuration
|
|
37
|
+
* @throws If environment variables contain invalid values
|
|
38
38
|
*
|
|
39
39
|
* @example
|
|
40
40
|
* ```typescript
|
|
41
41
|
* const config = getShadowConfig();
|
|
42
|
-
* // => { createdAtField: 'createdAt', updatedAtField: 'updatedAt', stringMaxBytes: 100, numberPadding:
|
|
42
|
+
* // => { createdAtField: 'createdAt', updatedAtField: 'updatedAt', stringMaxBytes: 100, numberPadding: 15 }
|
|
43
43
|
* ```
|
|
44
44
|
*/
|
|
45
45
|
export declare function getShadowConfig(): ShadowConfig;
|
|
46
46
|
/**
|
|
47
|
-
*
|
|
47
|
+
* Clear cache (for testing only)
|
|
48
48
|
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
49
|
+
* Do not use in production.
|
|
50
|
+
* Only used in test environments to clear cache between tests.
|
|
51
51
|
*/
|
|
52
52
|
export declare function clearShadowConfigCache(): void;
|
|
53
53
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/server/shadow/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/server/shadow/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,cAAc,EAAE,MAAM,CAAC;IACvB,4BAA4B;IAC5B,aAAa,EAAE,MAAM,CAAC;CACvB;AAOD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAmB9C;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
|
|
@@ -16,22 +16,22 @@
|
|
|
16
16
|
* 要件: 2.9-2.11
|
|
17
17
|
*/
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Global cache (reused across Lambda invocations)
|
|
20
20
|
*/
|
|
21
21
|
let cachedShadowConfig = null;
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* Get shadow configuration from environment variables
|
|
24
24
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
25
|
+
* Loads configuration from environment variables and caches it globally.
|
|
26
|
+
* Only reads environment variables on first call, uses cache thereafter.
|
|
27
27
|
*
|
|
28
|
-
* @returns
|
|
29
|
-
* @throws
|
|
28
|
+
* @returns Shadow configuration
|
|
29
|
+
* @throws If environment variables contain invalid values
|
|
30
30
|
*
|
|
31
31
|
* @example
|
|
32
32
|
* ```typescript
|
|
33
33
|
* const config = getShadowConfig();
|
|
34
|
-
* // => { createdAtField: 'createdAt', updatedAtField: 'updatedAt', stringMaxBytes: 100, numberPadding:
|
|
34
|
+
* // => { createdAtField: 'createdAt', updatedAtField: 'updatedAt', stringMaxBytes: 100, numberPadding: 15 }
|
|
35
35
|
* ```
|
|
36
36
|
*/
|
|
37
37
|
export function getShadowConfig() {
|
|
@@ -53,10 +53,10 @@ export function getShadowConfig() {
|
|
|
53
53
|
return cachedShadowConfig;
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
|
-
*
|
|
56
|
+
* Clear cache (for testing only)
|
|
57
57
|
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
58
|
+
* Do not use in production.
|
|
59
|
+
* Only used in test environments to clear cache between tests.
|
|
60
60
|
*/
|
|
61
61
|
export function clearShadowConfigCache() {
|
|
62
62
|
cachedShadowConfig = null;
|
|
@@ -1,42 +1,7 @@
|
|
|
1
|
-
import type { ShadowDiff } from './types.js';
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
2
|
+
* シャドー差分計算
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
* シャドーレコードを比較し、削除すべきものと追加すべきものを特定します。
|
|
7
|
-
*
|
|
8
|
-
* @param oldShadowKeys - 既存のシャドーSKの配列
|
|
9
|
-
* @param newShadowKeys - 新しく生成されたシャドーSKの配列
|
|
10
|
-
* @returns 削除すべきSKと追加すべきSKのリスト
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* const oldKeys = [
|
|
14
|
-
* 'name#Old#Name#id#01HZXY123',
|
|
15
|
-
* 'priority#00000000000000000010#id#01HZXY123'
|
|
16
|
-
* ];
|
|
17
|
-
* const newKeys = [
|
|
18
|
-
* 'name#New#Name#id#01HZXY123',
|
|
19
|
-
* 'priority#00000000000000000010#id#01HZXY123'
|
|
20
|
-
* ];
|
|
21
|
-
* const diff = calculateShadowDiff(oldKeys, newKeys);
|
|
22
|
-
* // => {
|
|
23
|
-
* // toDelete: ['name#Old#Name#id#01HZXY123'],
|
|
24
|
-
* // toAdd: ['name#New#Name#id#01HZXY123']
|
|
25
|
-
* // }
|
|
26
|
-
*/
|
|
27
|
-
export declare function calculateShadowDiff(oldShadowKeys: string[], newShadowKeys: string[]): ShadowDiff;
|
|
28
|
-
/**
|
|
29
|
-
* シャドー差分が空かどうかを判定する
|
|
30
|
-
*
|
|
31
|
-
* @param diff - シャドー差分オブジェクト
|
|
32
|
-
* @returns 差分が空の場合true
|
|
33
|
-
*/
|
|
34
|
-
export declare function isDiffEmpty(diff: ShadowDiff): boolean;
|
|
35
|
-
/**
|
|
36
|
-
* 複数のシャドー差分をマージする
|
|
37
|
-
*
|
|
38
|
-
* @param diffs - マージするシャドー差分の配列
|
|
39
|
-
* @returns マージされたシャドー差分
|
|
4
|
+
* shadows層の差分計算機能を再エクスポートします。
|
|
40
5
|
*/
|
|
41
|
-
export
|
|
6
|
+
export { calculateShadowDiff, isDiffEmpty, mergeShadowDiffs, } from '../../shadows/index.js';
|
|
42
7
|
//# sourceMappingURL=differ.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"differ.d.ts","sourceRoot":"","sources":["../../../src/server/shadow/differ.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"differ.d.ts","sourceRoot":"","sources":["../../../src/server/shadow/differ.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,gBAAgB,GACjB,MAAM,wBAAwB,CAAC"}
|
|
@@ -1,66 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* シャドー差分計算
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* シャドーレコードを比較し、削除すべきものと追加すべきものを特定します。
|
|
6
|
-
*
|
|
7
|
-
* @param oldShadowKeys - 既存のシャドーSKの配列
|
|
8
|
-
* @param newShadowKeys - 新しく生成されたシャドーSKの配列
|
|
9
|
-
* @returns 削除すべきSKと追加すべきSKのリスト
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* const oldKeys = [
|
|
13
|
-
* 'name#Old#Name#id#01HZXY123',
|
|
14
|
-
* 'priority#00000000000000000010#id#01HZXY123'
|
|
15
|
-
* ];
|
|
16
|
-
* const newKeys = [
|
|
17
|
-
* 'name#New#Name#id#01HZXY123',
|
|
18
|
-
* 'priority#00000000000000000010#id#01HZXY123'
|
|
19
|
-
* ];
|
|
20
|
-
* const diff = calculateShadowDiff(oldKeys, newKeys);
|
|
21
|
-
* // => {
|
|
22
|
-
* // toDelete: ['name#Old#Name#id#01HZXY123'],
|
|
23
|
-
* // toAdd: ['name#New#Name#id#01HZXY123']
|
|
24
|
-
* // }
|
|
25
|
-
*/
|
|
26
|
-
export function calculateShadowDiff(oldShadowKeys, newShadowKeys) {
|
|
27
|
-
// Set を使用して効率的な差分計算を行う
|
|
28
|
-
const oldSet = new Set(oldShadowKeys);
|
|
29
|
-
const newSet = new Set(newShadowKeys);
|
|
30
|
-
// 削除すべきキー: 旧キーに存在するが新キーに存在しない
|
|
31
|
-
const toDelete = oldShadowKeys.filter((key) => !newSet.has(key));
|
|
32
|
-
// 追加すべきキー: 新キーに存在するが旧キーに存在しない
|
|
33
|
-
const toAdd = newShadowKeys.filter((key) => !oldSet.has(key));
|
|
34
|
-
return {
|
|
35
|
-
toDelete,
|
|
36
|
-
toAdd,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* シャドー差分が空かどうかを判定する
|
|
41
|
-
*
|
|
42
|
-
* @param diff - シャドー差分オブジェクト
|
|
43
|
-
* @returns 差分が空の場合true
|
|
44
|
-
*/
|
|
45
|
-
export function isDiffEmpty(diff) {
|
|
46
|
-
return diff.toDelete.length === 0 && diff.toAdd.length === 0;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* 複数のシャドー差分をマージする
|
|
50
|
-
*
|
|
51
|
-
* @param diffs - マージするシャドー差分の配列
|
|
52
|
-
* @returns マージされたシャドー差分
|
|
4
|
+
* shadows層の差分計算機能を再エクスポートします。
|
|
53
5
|
*/
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const allToAdd = new Set();
|
|
57
|
-
for (const diff of diffs) {
|
|
58
|
-
diff.toDelete.forEach((key) => allToDelete.add(key));
|
|
59
|
-
diff.toAdd.forEach((key) => allToAdd.add(key));
|
|
60
|
-
}
|
|
61
|
-
return {
|
|
62
|
-
toDelete: Array.from(allToDelete),
|
|
63
|
-
toAdd: Array.from(allToAdd),
|
|
64
|
-
};
|
|
65
|
-
}
|
|
6
|
+
// shadows層の差分計算関数を再エクスポート
|
|
7
|
+
export { calculateShadowDiff, isDiffEmpty, mergeShadowDiffs, } from '../../shadows/index.js';
|
|
66
8
|
//# sourceMappingURL=differ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"differ.js","sourceRoot":"","sources":["../../../src/server/shadow/differ.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"differ.js","sourceRoot":"","sources":["../../../src/server/shadow/differ.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,0BAA0B;AAC1B,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,gBAAgB,GACjB,MAAM,wBAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/server/shadow/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/server/shadow/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAWhD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uBAAuB;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CA2BrD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgBtE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAiB7E;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAE9E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAEvE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,YAAY,GACnB,MAAM,CA6BR;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,YAAY,GACnB,YAAY,EAAE,CAuChB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { inferFieldType } from './typeInference.js';
|
|
2
|
+
import { escapeString as shadowsEscapeString, formatDatetime as shadowsFormatDatetime, formatBoolean as shadowsFormatBoolean, generateMainRecordSK as shadowsGenerateMainRecordSK, } from '../../shadows/index.js';
|
|
2
3
|
/**
|
|
3
4
|
* JSONオブジェクトのフィールドを正規化
|
|
4
5
|
*
|
|
@@ -81,9 +82,7 @@ export function truncateString(value, maxBytes) {
|
|
|
81
82
|
* @returns エスケープされた文字列
|
|
82
83
|
*/
|
|
83
84
|
export function escapeString(value) {
|
|
84
|
-
return value
|
|
85
|
-
.replace(/#/g, '##') // # を ## に置換
|
|
86
|
-
.replace(/ /g, '#'); // スペースを # に置換
|
|
85
|
+
return shadowsEscapeString(value);
|
|
87
86
|
}
|
|
88
87
|
/**
|
|
89
88
|
* 数値をオフセット方式でゼロパディング
|
|
@@ -129,15 +128,7 @@ export function formatNumberWithOffset(value, padding) {
|
|
|
129
128
|
* @returns UTC ISO 8601形式の文字列
|
|
130
129
|
*/
|
|
131
130
|
export function formatDatetime(value) {
|
|
132
|
-
|
|
133
|
-
if (value === null || value === undefined) {
|
|
134
|
-
return '';
|
|
135
|
-
}
|
|
136
|
-
const date = typeof value === 'string' ? new Date(value) : value;
|
|
137
|
-
if (isNaN(date.getTime())) {
|
|
138
|
-
throw new Error(`Invalid datetime value: ${value}`);
|
|
139
|
-
}
|
|
140
|
-
return date.toISOString();
|
|
131
|
+
return shadowsFormatDatetime(value);
|
|
141
132
|
}
|
|
142
133
|
/**
|
|
143
134
|
* 真偽値を"0"または"1"に変換する
|
|
@@ -146,10 +137,7 @@ export function formatDatetime(value) {
|
|
|
146
137
|
* @returns "0"(false)、"1"(true)、または空文字(null/undefined)
|
|
147
138
|
*/
|
|
148
139
|
export function formatBoolean(value) {
|
|
149
|
-
|
|
150
|
-
return '';
|
|
151
|
-
}
|
|
152
|
-
return value ? '1' : '0';
|
|
140
|
+
return shadowsFormatBoolean(value);
|
|
153
141
|
}
|
|
154
142
|
/**
|
|
155
143
|
* フィールド値を型に応じてフォーマットする(更新版)
|
|
@@ -168,6 +156,7 @@ export function formatBoolean(value) {
|
|
|
168
156
|
* ```
|
|
169
157
|
*/
|
|
170
158
|
export function formatFieldValue(type, value, config) {
|
|
159
|
+
// shadows層の基本実装を使用し、server層固有の設定を適用
|
|
171
160
|
switch (type) {
|
|
172
161
|
case 'string': {
|
|
173
162
|
if (value === null || value === undefined) {
|
|
@@ -204,7 +193,7 @@ export function formatFieldValue(type, value, config) {
|
|
|
204
193
|
* @returns メインレコードのSK
|
|
205
194
|
*/
|
|
206
195
|
export function generateMainRecordSK(recordId) {
|
|
207
|
-
return
|
|
196
|
+
return shadowsGenerateMainRecordSK(recordId);
|
|
208
197
|
}
|
|
209
198
|
/**
|
|
210
199
|
* レコードからシャドウレコードを自動生成する(更新版)
|
|
@@ -256,9 +245,9 @@ export function generateShadowRecords(record, resourceName, config) {
|
|
|
256
245
|
if (!type) {
|
|
257
246
|
continue;
|
|
258
247
|
}
|
|
259
|
-
//
|
|
248
|
+
// server層固有の設定を適用してフィールド値をフォーマット
|
|
260
249
|
const formattedValue = formatFieldValue(type, value, config);
|
|
261
|
-
//
|
|
250
|
+
// シャドウキーを生成(server層固有の形式)
|
|
262
251
|
const sk = `${fieldName}#${formattedValue}#id#${record.id}`;
|
|
263
252
|
shadows.push({
|
|
264
253
|
PK: resourceName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../src/server/shadow/generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../src/server/shadow/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* DynamoDB Single-Table設計における動的シャドーレコード管理を提供します。
|
|
5
5
|
*/
|
|
6
|
-
export type { ShadowFieldType, ShadowFieldConfig,
|
|
6
|
+
export type { ShadowFieldType, ShadowFieldConfig, ShadowDiff, } from './types.js';
|
|
7
|
+
export type { ShadowConfig } from './config.js';
|
|
7
8
|
export type { ShadowRecord } from './generator.js';
|
|
8
9
|
export { escapeString, formatDatetime, formatBoolean, formatFieldValue, generateMainRecordSK, generateShadowRecords, formatNumberWithOffset, truncateString, normalizeJson, } from './generator.js';
|
|
9
10
|
export { calculateShadowDiff, isDiffEmpty, mergeShadowDiffs } from './differ.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/shadow/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/shadow/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,aAAa,GACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGjF,OAAO,EACL,eAAe,EACf,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,cAAc,EACd,uBAAuB,GACxB,MAAM,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/shadow/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/shadow/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,aAAa,GACd,MAAM,gBAAgB,CAAC;AAExB,gBAAgB;AAChB,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjF,gBAAgB;AAChB,OAAO,EACL,eAAe,EACf,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAErB,eAAe;AACf,OAAO,EACL,cAAc,EACd,uBAAuB,GACxB,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,44 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* シャドー管理の型定義
|
|
3
|
+
*
|
|
4
|
+
* shadows層の型定義を再エクスポートし、server層固有の型を追加します。
|
|
3
5
|
*/
|
|
4
|
-
export type ShadowFieldType
|
|
5
|
-
/**
|
|
6
|
-
* シャドー設定のフィールド定義
|
|
7
|
-
*/
|
|
8
|
-
export interface ShadowFieldConfig {
|
|
9
|
-
type: ShadowFieldType;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* リソースごとのシャドー設定
|
|
13
|
-
*/
|
|
14
|
-
export interface ResourceShadowConfig {
|
|
15
|
-
sortDefaults: {
|
|
16
|
-
field: string;
|
|
17
|
-
order: 'ASC' | 'DESC';
|
|
18
|
-
};
|
|
19
|
-
shadows: {
|
|
20
|
-
[fieldName: string]: ShadowFieldConfig;
|
|
21
|
-
};
|
|
22
|
-
ttl?: {
|
|
23
|
-
days: number;
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* shadow.config.jsonの全体構造
|
|
28
|
-
*/
|
|
29
|
-
export interface ShadowConfig {
|
|
30
|
-
$schemaVersion: string;
|
|
31
|
-
resources: {
|
|
32
|
-
[resourceName: string]: ResourceShadowConfig;
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* シャドー差分計算の結果
|
|
37
|
-
*/
|
|
38
|
-
export interface ShadowDiff {
|
|
39
|
-
/** 削除すべきシャドーSKのリスト */
|
|
40
|
-
toDelete: string[];
|
|
41
|
-
/** 追加すべきシャドーSKのリスト */
|
|
42
|
-
toAdd: string[];
|
|
43
|
-
}
|
|
6
|
+
export type { ShadowFieldType, ShadowFieldConfig, ShadowDiff, } from '../../shadows/index.js';
|
|
44
7
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/shadow/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/shadow/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,UAAU,GACX,MAAM,wBAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/server/shadow/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/server/shadow/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -1,18 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lambda実行時間制限(ミリ秒)
|
|
3
|
-
* AWS Lambdaの最大実行時間は15分(900秒)
|
|
4
|
-
*/
|
|
5
|
-
export declare const LAMBDA_TIMEOUT_MS: number;
|
|
6
|
-
/**
|
|
7
|
-
* 警告を出すレコード数の閾値
|
|
8
|
-
* この数を超えるとタイムアウトリスクの警告を出力
|
|
9
|
-
*/
|
|
10
|
-
export declare const LARGE_BATCH_WARNING_THRESHOLD = 1000;
|
|
11
|
-
/**
|
|
12
|
-
* タイムアウトリスク判定の閾値(残り時間の割合)
|
|
13
|
-
* 残り時間がこの割合未満になると高リスクと判定
|
|
14
|
-
*/
|
|
15
|
-
export declare const TIMEOUT_RISK_THRESHOLD = 0.2;
|
|
16
1
|
/**
|
|
17
2
|
* バルク操作のタイムアウトリスク情報
|
|
18
3
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulkOperations.d.ts","sourceRoot":"","sources":["../../../src/server/utils/bulkOperations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bulkOperations.d.ts","sourceRoot":"","sources":["../../../src/server/utils/bulkOperations.ts"],"names":[],"mappings":"AAiBA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,wBAAwB;IACxB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,IAAI,CAYN;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CAYvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,eAAe,GACxB,IAAI,CAsBN;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,eAAe,EACzB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvC,IAAI,CAeN;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAAE,EACpB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvC,IAAI,CAaN"}
|
|
@@ -6,23 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* 要件: 13.12
|
|
8
8
|
*/
|
|
9
|
-
import { createLogger } from '../../index.js';
|
|
9
|
+
import { createLogger, LAMBDA_TIMEOUT_MS, LARGE_BATCH_WARNING_THRESHOLD, TIMEOUT_RISK_THRESHOLD } from '../../shared/index.js';
|
|
10
10
|
const logger = createLogger({ service: 'records-lambda' });
|
|
11
|
-
/**
|
|
12
|
-
* Lambda実行時間制限(ミリ秒)
|
|
13
|
-
* AWS Lambdaの最大実行時間は15分(900秒)
|
|
14
|
-
*/
|
|
15
|
-
export const LAMBDA_TIMEOUT_MS = 15 * 60 * 1000; // 15分
|
|
16
|
-
/**
|
|
17
|
-
* 警告を出すレコード数の閾値
|
|
18
|
-
* この数を超えるとタイムアウトリスクの警告を出力
|
|
19
|
-
*/
|
|
20
|
-
export const LARGE_BATCH_WARNING_THRESHOLD = 1000;
|
|
21
|
-
/**
|
|
22
|
-
* タイムアウトリスク判定の閾値(残り時間の割合)
|
|
23
|
-
* 残り時間がこの割合未満になると高リスクと判定
|
|
24
|
-
*/
|
|
25
|
-
export const TIMEOUT_RISK_THRESHOLD = 0.2; // 20%
|
|
26
11
|
/**
|
|
27
12
|
* 大量レコード処理時の警告ログを出力する
|
|
28
13
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulkOperations.js","sourceRoot":"","sources":["../../../src/server/utils/bulkOperations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"bulkOperations.js","sourceRoot":"","sources":["../../../src/server/utils/bulkOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DynamoDB TransactWriteItemsの最大アイテム数制限
|
|
3
|
-
*
|
|
4
|
-
* DynamoDBのTransactWriteItemsは最大100アイテムまでしか処理できない。
|
|
5
|
-
* この制限を超える場合は、複数のトランザクションに分割する必要がある。
|
|
6
|
-
*
|
|
7
|
-
* 参考: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transaction-apis.html
|
|
8
|
-
*/
|
|
9
|
-
export declare const DYNAMODB_TRANSACT_WRITE_MAX_ITEMS = 100;
|
|
10
1
|
/**
|
|
11
2
|
* チャンク分割結果
|
|
12
3
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunking.d.ts","sourceRoot":"","sources":["../../../src/server/utils/chunking.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chunking.d.ts","sourceRoot":"","sources":["../../../src/server/utils/chunking.ts"],"names":[],"mappings":"AAgBA;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,8BAA8B;IAC9B,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;IACd,kBAAkB;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAC/B,OAAO,EAAE,CAAC,EAAE,EACZ,YAAY,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,GAClC,WAAW,CAAC,CAAC,CAAC,CAsDhB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,eAAe;IACf,cAAc,EAAE,CAAC,EAAE,CAAC;IACpB,kBAAkB;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY;IACZ,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,aAAa;IACb,EAAE,EAAE,MAAM,CAAC;IACX,aAAa;IACb,IAAI,EAAE,MAAM,CAAC;IACb,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,aAAa,CAAC,CAAC,EACnC,MAAM,EAAE,CAAC,EAAE,EAAE,EACb,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EAC1C,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,GACjC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CA8FlC"}
|
|
@@ -7,17 +7,8 @@
|
|
|
7
7
|
*
|
|
8
8
|
* 要件: 13.1, 13.2, 13.7, 13.8, 13.9
|
|
9
9
|
*/
|
|
10
|
-
import { createLogger } from '../../index.js';
|
|
10
|
+
import { createLogger, DYNAMODB_TRANSACT_WRITE_MAX_ITEMS } from '../../shared/index.js';
|
|
11
11
|
const logger = createLogger({ service: 'records-lambda' });
|
|
12
|
-
/**
|
|
13
|
-
* DynamoDB TransactWriteItemsの最大アイテム数制限
|
|
14
|
-
*
|
|
15
|
-
* DynamoDBのTransactWriteItemsは最大100アイテムまでしか処理できない。
|
|
16
|
-
* この制限を超える場合は、複数のトランザクションに分割する必要がある。
|
|
17
|
-
*
|
|
18
|
-
* 参考: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transaction-apis.html
|
|
19
|
-
*/
|
|
20
|
-
export const DYNAMODB_TRANSACT_WRITE_MAX_ITEMS = 100;
|
|
21
12
|
/**
|
|
22
13
|
* バルク操作のチャンクサイズを動的に計算する
|
|
23
14
|
*
|