@exabugs/dynamodb-client 1.3.36 → 1.3.37
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 +23 -0
- package/dist/server/handler.cjs +13 -9
- package/dist/server/handler.cjs.map +3 -3
- package/dist/server/operations/updateOne.d.ts +6 -2
- package/dist/server/operations/updateOne.d.ts.map +1 -1
- package/dist/server/operations/updateOne.js +24 -10
- package/dist/server/operations/updateOne.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,12 +5,16 @@ import type { UpdateOneParams, UpdateOneResult } from '../types.js';
|
|
|
5
5
|
* 処理フロー:
|
|
6
6
|
* 1. updateMany([id], data)を呼び出す(idまたはfilterから対象を特定)
|
|
7
7
|
* 2. 結果を検証し、失敗した場合は通常のErrorをスロー
|
|
8
|
-
* 3.
|
|
8
|
+
* 3. 成功した場合は { id, ...更新したフィールドのみ } を返却
|
|
9
|
+
*
|
|
10
|
+
* セキュリティ: ADR 001に基づき、更新したフィールドのみを返却
|
|
11
|
+
* - read権限なしでupdate権限のみの場合の情報漏洩を防止
|
|
12
|
+
* - findOneの追加クエリを削減してパフォーマンス向上
|
|
9
13
|
*
|
|
10
14
|
* @param resource - リソース名
|
|
11
15
|
* @param params - updateOneパラメータ
|
|
12
16
|
* @param requestId - リクエストID
|
|
13
|
-
* @returns
|
|
17
|
+
* @returns 更新されたレコード(idと更新したフィールドのみ)
|
|
14
18
|
* @throws {Error} レコードが存在しない場合、または更新に失敗した場合
|
|
15
19
|
*/
|
|
16
20
|
export declare function handleUpdateOne(resource: string, params: UpdateOneParams, requestId: string): Promise<UpdateOneResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateOne.d.ts","sourceRoot":"","sources":["../../../src/server/operations/updateOne.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAIpE
|
|
1
|
+
{"version":3,"file":"updateOne.d.ts","sourceRoot":"","sources":["../../../src/server/operations/updateOne.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAIpE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,CAkG1B"}
|
|
@@ -14,12 +14,16 @@ const logger = createLogger({ service: 'records-lambda' });
|
|
|
14
14
|
* 処理フロー:
|
|
15
15
|
* 1. updateMany([id], data)を呼び出す(idまたはfilterから対象を特定)
|
|
16
16
|
* 2. 結果を検証し、失敗した場合は通常のErrorをスロー
|
|
17
|
-
* 3.
|
|
17
|
+
* 3. 成功した場合は { id, ...更新したフィールドのみ } を返却
|
|
18
|
+
*
|
|
19
|
+
* セキュリティ: ADR 001に基づき、更新したフィールドのみを返却
|
|
20
|
+
* - read権限なしでupdate権限のみの場合の情報漏洩を防止
|
|
21
|
+
* - findOneの追加クエリを削減してパフォーマンス向上
|
|
18
22
|
*
|
|
19
23
|
* @param resource - リソース名
|
|
20
24
|
* @param params - updateOneパラメータ
|
|
21
25
|
* @param requestId - リクエストID
|
|
22
|
-
* @returns
|
|
26
|
+
* @returns 更新されたレコード(idと更新したフィールドのみ)
|
|
23
27
|
* @throws {Error} レコードが存在しない場合、または更新に失敗した場合
|
|
24
28
|
*/
|
|
25
29
|
export async function handleUpdateOne(resource, params, requestId) {
|
|
@@ -53,10 +57,15 @@ export async function handleUpdateOne(resource, params, requestId) {
|
|
|
53
57
|
throw new Error(`Failed to update record: ${targetId}`);
|
|
54
58
|
}
|
|
55
59
|
}
|
|
56
|
-
//
|
|
57
|
-
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
+
// 成功した場合は { id, ...更新したフィールドのみ } を返却
|
|
61
|
+
// UpdateOperators形式の場合、$set のみを抽出($setOnInsert は無視)
|
|
62
|
+
const actualPatchData = patchData.$set
|
|
63
|
+
? patchData.$set
|
|
64
|
+
: patchData;
|
|
65
|
+
return {
|
|
66
|
+
id: targetId,
|
|
67
|
+
...actualPatchData,
|
|
68
|
+
};
|
|
60
69
|
}
|
|
61
70
|
else {
|
|
62
71
|
// filterが指定されている場合
|
|
@@ -87,10 +96,15 @@ export async function handleUpdateOne(resource, params, requestId) {
|
|
|
87
96
|
if (!updatedId) {
|
|
88
97
|
throw new Error('Failed to get updated record ID');
|
|
89
98
|
}
|
|
90
|
-
//
|
|
91
|
-
|
|
92
|
-
const
|
|
93
|
-
|
|
99
|
+
// { id, ...更新したフィールドのみ } を返却
|
|
100
|
+
// UpdateOperators形式の場合、$set のみを抽出($setOnInsert は無視)
|
|
101
|
+
const actualPatchData = patchData.$set
|
|
102
|
+
? patchData.$set
|
|
103
|
+
: patchData;
|
|
104
|
+
return {
|
|
105
|
+
id: updatedId,
|
|
106
|
+
...actualPatchData,
|
|
107
|
+
};
|
|
94
108
|
}
|
|
95
109
|
}
|
|
96
110
|
//# sourceMappingURL=updateOne.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateOne.js","sourceRoot":"","sources":["../../../src/server/operations/updateOne.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAE3D
|
|
1
|
+
{"version":3,"file":"updateOne.js","sourceRoot":"","sources":["../../../src/server/operations/updateOne.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exabugs/dynamodb-client",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.37",
|
|
4
4
|
"description": "DynamoDB Single-Table Client SDK with MongoDB-like API, Shadow Records, and Lambda implementation for serverless applications",
|
|
5
5
|
"author": "exabugs",
|
|
6
6
|
"license": "MIT",
|