@exabugs/dynamodb-client 0.8.1 → 0.9.1
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 +40 -0
- package/dist/client/Collection.d.ts +6 -2
- package/dist/client/Collection.d.ts.map +1 -1
- package/dist/client/Collection.js +9 -7
- package/dist/client/Collection.js.map +1 -1
- package/dist/server/handler.cjs +99 -19
- package/dist/server/handler.cjs.map +3 -3
- package/dist/server/operations/find/utils.d.ts +1 -4
- package/dist/server/operations/find/utils.d.ts.map +1 -1
- package/dist/server/operations/find/utils.js +35 -6
- package/dist/server/operations/find/utils.js.map +1 -1
- package/dist/server/operations/updateOne.d.ts +5 -6
- package/dist/server/operations/updateOne.d.ts.map +1 -1
- package/dist/server/operations/updateOne.js +110 -21
- package/dist/server/operations/updateOne.js.map +1 -1
- package/dist/server/types.d.ts +10 -0
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/utils/filter.d.ts +1 -1
- package/dist/server/utils/filter.d.ts.map +1 -1
- package/dist/server/utils/filter.js +14 -1
- package/dist/server/utils/filter.js.map +1 -1
- package/dist/shared/types/index.d.ts +14 -0
- package/dist/shared/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Find操作のユーティリティ関数
|
|
3
|
-
*/
|
|
4
1
|
import type { FindParams } from '../../types.js';
|
|
5
|
-
import type {
|
|
2
|
+
import type { NormalizedFindParams, OptimizableFilter, ParsedFilter } from './types.js';
|
|
6
3
|
/**
|
|
7
4
|
* Find操作の設定を初期化する
|
|
8
5
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/server/operations/find/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/server/operations/find/utils.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAOxF;;;;GAIG;AACH,wBAAgB,oBAAoB,0CAEnC;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,UAAU,GACjB,oBAAoB,CAetB;AAgDD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,YAAY,EAAE,GAC5B,iBAAiB,GAAG,SAAS,CAI/B;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,aAAa,EAAE,YAAY,EAAE,GAC5B,OAAO,CAiDT"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Find操作のユーティリティ関数
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { ConfigError } from '../../../shared/errors/index.js';
|
|
5
5
|
import { createLogger } from '../../../shared/index.js';
|
|
6
|
+
import { getShadowConfig } from '../../shadow/index.js';
|
|
6
7
|
import { parseFilterField } from '../../utils/filter.js';
|
|
7
|
-
import {
|
|
8
|
-
import { normalizeSort as originalNormalizeSort, normalizePagination as originalNormalizePagination } from '../../utils/validation.js';
|
|
8
|
+
import { normalizePagination as originalNormalizePagination, normalizeSort as originalNormalizeSort, } from '../../utils/validation.js';
|
|
9
9
|
const logger = createLogger({
|
|
10
10
|
service: 'find-utils',
|
|
11
11
|
level: process.env.LOG_LEVEL || 'info',
|
|
@@ -42,6 +42,10 @@ export function normalizeFindParams(config, resource, params) {
|
|
|
42
42
|
/**
|
|
43
43
|
* フィルター条件を解析する
|
|
44
44
|
*
|
|
45
|
+
* 2つの形式をサポート:
|
|
46
|
+
* 1. フィールド名に演算子を含める形式: { "id:in": ["value1", "value2"] }
|
|
47
|
+
* 2. ネストされたオブジェクト形式: { id: { in: ["value1", "value2"] } }
|
|
48
|
+
*
|
|
45
49
|
* @param filter - フィルター条件
|
|
46
50
|
* @returns 解析済みフィルター条件の配列
|
|
47
51
|
*/
|
|
@@ -52,8 +56,19 @@ function parseFilters(filter) {
|
|
|
52
56
|
}
|
|
53
57
|
for (const [fieldKey, value] of Object.entries(filter)) {
|
|
54
58
|
try {
|
|
55
|
-
|
|
56
|
-
|
|
59
|
+
// 値がオブジェクトの場合、ネストされた演算子形式として処理
|
|
60
|
+
if (value && typeof value === 'object' && !Array.isArray(value)) {
|
|
61
|
+
// { id: { in: ["value1", "value2"] } } 形式
|
|
62
|
+
for (const [operator, operatorValue] of Object.entries(value)) {
|
|
63
|
+
const parsed = parseFilterField(`${fieldKey}:${operator}`);
|
|
64
|
+
parsedFilters.push({ parsed, value: operatorValue });
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
// { "id:in": ["value1", "value2"] } 形式または { id: "value" } 形式
|
|
69
|
+
const parsed = parseFilterField(fieldKey);
|
|
70
|
+
parsedFilters.push({ parsed, value });
|
|
71
|
+
}
|
|
57
72
|
}
|
|
58
73
|
catch (error) {
|
|
59
74
|
logger.error('Invalid filter field syntax', {
|
|
@@ -108,7 +123,21 @@ export function matchesAllFilters(record, parsedFilters) {
|
|
|
108
123
|
case 'nin':
|
|
109
124
|
return Array.isArray(filterValue) && !filterValue.includes(recordValue);
|
|
110
125
|
case 'starts':
|
|
111
|
-
return typeof recordValue === 'string' &&
|
|
126
|
+
return (typeof recordValue === 'string' &&
|
|
127
|
+
typeof filterValue === 'string' &&
|
|
128
|
+
recordValue.startsWith(filterValue));
|
|
129
|
+
case 'ends':
|
|
130
|
+
return (typeof recordValue === 'string' &&
|
|
131
|
+
typeof filterValue === 'string' &&
|
|
132
|
+
recordValue.endsWith(filterValue));
|
|
133
|
+
case 'contains':
|
|
134
|
+
return (typeof recordValue === 'string' &&
|
|
135
|
+
typeof filterValue === 'string' &&
|
|
136
|
+
recordValue.includes(filterValue));
|
|
137
|
+
case 'exists':
|
|
138
|
+
return filterValue
|
|
139
|
+
? recordValue !== undefined && recordValue !== null
|
|
140
|
+
: recordValue === undefined || recordValue === null;
|
|
112
141
|
default:
|
|
113
142
|
return true;
|
|
114
143
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/server/operations/find/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/server/operations/find/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,17 +4,16 @@ import type { UpdateOneParams, UpdateOneResult } from '../types.js';
|
|
|
4
4
|
*
|
|
5
5
|
* 処理フロー:
|
|
6
6
|
* 1. GetItemで既存レコードを取得
|
|
7
|
-
* 2.
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* 6. TransactWriteItemsでメインレコード更新 + 旧シャドー削除 + 新シャドー追加
|
|
7
|
+
* 2. レコードが存在しない場合:
|
|
8
|
+
* - upsert=falseの場合はエラー
|
|
9
|
+
* - upsert=trueの場合は新規作成
|
|
10
|
+
* 3. レコードが存在する場合は更新
|
|
12
11
|
*
|
|
13
12
|
* @param resource - リソース名
|
|
14
13
|
* @param params - updateOneパラメータ
|
|
15
14
|
* @param requestId - リクエストID
|
|
16
15
|
* @returns 更新されたレコード
|
|
17
|
-
* @throws {ItemNotFoundError}
|
|
16
|
+
* @throws {ItemNotFoundError} レコードが存在しない場合(upsert=falseの場合)
|
|
18
17
|
*/
|
|
19
18
|
export declare function handleUpdateOne(resource: string, params: UpdateOneParams, requestId: string): Promise<UpdateOneResult>;
|
|
20
19
|
//# sourceMappingURL=updateOne.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateOne.d.ts","sourceRoot":"","sources":["../../../src/server/operations/updateOne.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAuDpE
|
|
1
|
+
{"version":3,"file":"updateOne.d.ts","sourceRoot":"","sources":["../../../src/server/operations/updateOne.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAuDpE;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,CA4C1B"}
|
|
@@ -9,7 +9,7 @@ import { ItemNotFoundError, createLogger } from '../../shared/index.js';
|
|
|
9
9
|
import { generateShadowRecords, getShadowConfig } from '../shadow/index.js';
|
|
10
10
|
import { calculateShadowDiff, generateMainRecordSK, isDiffEmpty } from '../shadow/index.js';
|
|
11
11
|
import { executeDynamoDBOperation, getDBClient, getTableName, removeShadowKeys, } from '../utils/dynamodb.js';
|
|
12
|
-
import { addUpdateTimestamp } from '../utils/timestamps.js';
|
|
12
|
+
import { addCreateTimestamps, addUpdateTimestamp } from '../utils/timestamps.js';
|
|
13
13
|
const logger = createLogger({ service: 'records-lambda' });
|
|
14
14
|
/**
|
|
15
15
|
* JSON Merge Patch (RFC 7396) を適用する
|
|
@@ -51,28 +51,28 @@ function applyJsonMergePatch(target, patch) {
|
|
|
51
51
|
*
|
|
52
52
|
* 処理フロー:
|
|
53
53
|
* 1. GetItemで既存レコードを取得
|
|
54
|
-
* 2.
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* 6. TransactWriteItemsでメインレコード更新 + 旧シャドー削除 + 新シャドー追加
|
|
54
|
+
* 2. レコードが存在しない場合:
|
|
55
|
+
* - upsert=falseの場合はエラー
|
|
56
|
+
* - upsert=trueの場合は新規作成
|
|
57
|
+
* 3. レコードが存在する場合は更新
|
|
59
58
|
*
|
|
60
59
|
* @param resource - リソース名
|
|
61
60
|
* @param params - updateOneパラメータ
|
|
62
61
|
* @param requestId - リクエストID
|
|
63
62
|
* @returns 更新されたレコード
|
|
64
|
-
* @throws {ItemNotFoundError}
|
|
63
|
+
* @throws {ItemNotFoundError} レコードが存在しない場合(upsert=falseの場合)
|
|
65
64
|
*/
|
|
66
65
|
export async function handleUpdateOne(resource, params, requestId) {
|
|
67
|
-
const { id, data: patchData } = params;
|
|
66
|
+
const { id, data: patchData, options } = params;
|
|
67
|
+
const upsert = options?.upsert ?? false;
|
|
68
68
|
logger.debug('Executing updateOne', {
|
|
69
69
|
requestId,
|
|
70
70
|
resource,
|
|
71
71
|
id,
|
|
72
|
+
upsert,
|
|
72
73
|
});
|
|
73
74
|
const dbClient = getDBClient();
|
|
74
75
|
const tableName = getTableName();
|
|
75
|
-
// メインレコードのSKを生成
|
|
76
76
|
const mainSK = generateMainRecordSK(id);
|
|
77
77
|
// 既存レコードを取得
|
|
78
78
|
const getResult = await executeDynamoDBOperation(() => dbClient.send(new GetCommand({
|
|
@@ -83,21 +83,111 @@ export async function handleUpdateOne(resource, params, requestId) {
|
|
|
83
83
|
},
|
|
84
84
|
ConsistentRead: true,
|
|
85
85
|
})), 'GetItem');
|
|
86
|
+
// レコードが存在しない場合の処理
|
|
86
87
|
if (!getResult.Item) {
|
|
87
|
-
|
|
88
|
+
if (!upsert) {
|
|
89
|
+
// upsert=falseの場合はエラー
|
|
90
|
+
throw new ItemNotFoundError(`Record not found: ${id}`, { resource, id });
|
|
91
|
+
}
|
|
92
|
+
// upsert=trueの場合は新規作成
|
|
93
|
+
return await handleUpsertCreate(resource, id, patchData, requestId);
|
|
94
|
+
}
|
|
95
|
+
// レコードが存在する場合は更新
|
|
96
|
+
return await handleUpsertUpdate(resource, id, getResult.Item, patchData, requestId);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* upsertで新規作成
|
|
100
|
+
*
|
|
101
|
+
* 処理フロー:
|
|
102
|
+
* 1. createdAt と updatedAt を自動設定
|
|
103
|
+
* 2. シャドーレコードを生成
|
|
104
|
+
* 3. TransactWriteItemsでメインレコード + シャドーレコードを一括作成
|
|
105
|
+
*
|
|
106
|
+
* @param resource - リソース名
|
|
107
|
+
* @param id - レコードID
|
|
108
|
+
* @param data - レコードデータ
|
|
109
|
+
* @param requestId - リクエストID
|
|
110
|
+
* @returns 作成されたレコード(__upsertedIdフラグ付き)
|
|
111
|
+
*/
|
|
112
|
+
async function handleUpsertCreate(resource, id, data, requestId) {
|
|
113
|
+
// createdAt と updatedAt を自動設定
|
|
114
|
+
const recordData = addCreateTimestamps({ ...data, id });
|
|
115
|
+
// シャドー設定を取得
|
|
116
|
+
const shadowConfig = getShadowConfig();
|
|
117
|
+
// シャドウレコードを生成
|
|
118
|
+
const shadowRecords = generateShadowRecords(recordData, resource, shadowConfig);
|
|
119
|
+
const shadowKeys = shadowRecords.map((shadow) => shadow.SK);
|
|
120
|
+
// TransactWriteItemsで一括作成
|
|
121
|
+
const transactItems = [];
|
|
122
|
+
// メインレコードを作成
|
|
123
|
+
transactItems.push({
|
|
124
|
+
Put: {
|
|
125
|
+
TableName: getTableName(),
|
|
126
|
+
Item: {
|
|
127
|
+
PK: resource,
|
|
128
|
+
SK: generateMainRecordSK(id),
|
|
129
|
+
data: {
|
|
130
|
+
...recordData,
|
|
131
|
+
__shadowKeys: shadowKeys,
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
});
|
|
136
|
+
// シャドウレコードを作成
|
|
137
|
+
for (const shadowRecord of shadowRecords) {
|
|
138
|
+
transactItems.push({
|
|
139
|
+
Put: {
|
|
140
|
+
TableName: getTableName(),
|
|
141
|
+
Item: shadowRecord,
|
|
142
|
+
},
|
|
143
|
+
});
|
|
88
144
|
}
|
|
89
|
-
|
|
145
|
+
// トランザクション実行
|
|
146
|
+
await executeDynamoDBOperation(() => getDBClient().send(new TransactWriteCommand({
|
|
147
|
+
TransactItems: transactItems,
|
|
148
|
+
})), 'TransactWriteItems');
|
|
149
|
+
logger.info('updateOne upsert created', {
|
|
150
|
+
requestId,
|
|
151
|
+
resource,
|
|
152
|
+
id,
|
|
153
|
+
shadowsCreated: shadowKeys.length,
|
|
154
|
+
});
|
|
155
|
+
// upsertedIdフラグを付けて返す(クライアント側で変換)
|
|
156
|
+
return {
|
|
157
|
+
...removeShadowKeys(recordData),
|
|
158
|
+
__upsertedId: id,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* upsertで更新
|
|
163
|
+
*
|
|
164
|
+
* 処理フロー:
|
|
165
|
+
* 1. JSON Merge Patchを適用
|
|
166
|
+
* 2. updatedAt を更新
|
|
167
|
+
* 3. 新しいシャドーSKを生成
|
|
168
|
+
* 4. 旧シャドーと新シャドーの差分を計算
|
|
169
|
+
* 5. TransactWriteItemsでメインレコード更新 + 旧シャドー削除 + 新シャドー追加
|
|
170
|
+
*
|
|
171
|
+
* @param resource - リソース名
|
|
172
|
+
* @param id - レコードID
|
|
173
|
+
* @param existingItem - 既存のDynamoDBアイテム
|
|
174
|
+
* @param patchData - パッチデータ
|
|
175
|
+
* @param requestId - リクエストID
|
|
176
|
+
* @returns 更新されたレコード
|
|
177
|
+
*/
|
|
178
|
+
async function handleUpsertUpdate(resource, id, existingItem, patchData, requestId) {
|
|
179
|
+
const existingData = existingItem.data;
|
|
90
180
|
const oldShadowKeys = existingData.__shadowKeys || [];
|
|
91
181
|
// JSON Merge Patchを適用
|
|
92
182
|
const mergedData = applyJsonMergePatch(removeShadowKeys(existingData), patchData);
|
|
93
|
-
// updatedAt
|
|
183
|
+
// updatedAt を更新
|
|
94
184
|
const updatedData = addUpdateTimestamp({
|
|
95
185
|
...mergedData,
|
|
96
186
|
id, // IDは変更不可
|
|
97
187
|
});
|
|
98
|
-
//
|
|
188
|
+
// シャドー設定を取得
|
|
99
189
|
const shadowConfig = getShadowConfig();
|
|
100
|
-
//
|
|
190
|
+
// 新しいシャドーレコードを生成
|
|
101
191
|
const newShadowRecords = generateShadowRecords(updatedData, resource, shadowConfig);
|
|
102
192
|
const newShadowKeys = newShadowRecords.map((shadow) => shadow.SK);
|
|
103
193
|
// シャドー差分を計算
|
|
@@ -107,10 +197,10 @@ export async function handleUpdateOne(resource, params, requestId) {
|
|
|
107
197
|
// メインレコードを更新
|
|
108
198
|
transactItems.push({
|
|
109
199
|
Put: {
|
|
110
|
-
TableName:
|
|
200
|
+
TableName: getTableName(),
|
|
111
201
|
Item: {
|
|
112
202
|
PK: resource,
|
|
113
|
-
SK:
|
|
203
|
+
SK: generateMainRecordSK(id),
|
|
114
204
|
data: {
|
|
115
205
|
...updatedData,
|
|
116
206
|
__shadowKeys: newShadowKeys,
|
|
@@ -122,7 +212,7 @@ export async function handleUpdateOne(resource, params, requestId) {
|
|
|
122
212
|
for (const shadowSK of shadowDiff.toDelete) {
|
|
123
213
|
transactItems.push({
|
|
124
214
|
Delete: {
|
|
125
|
-
TableName:
|
|
215
|
+
TableName: getTableName(),
|
|
126
216
|
Key: {
|
|
127
217
|
PK: resource,
|
|
128
218
|
SK: shadowSK,
|
|
@@ -135,17 +225,17 @@ export async function handleUpdateOne(resource, params, requestId) {
|
|
|
135
225
|
if (shadowDiff.toAdd.includes(shadowRecord.SK)) {
|
|
136
226
|
transactItems.push({
|
|
137
227
|
Put: {
|
|
138
|
-
TableName:
|
|
228
|
+
TableName: getTableName(),
|
|
139
229
|
Item: shadowRecord,
|
|
140
230
|
},
|
|
141
231
|
});
|
|
142
232
|
}
|
|
143
233
|
}
|
|
144
234
|
// トランザクション実行
|
|
145
|
-
await executeDynamoDBOperation(() =>
|
|
235
|
+
await executeDynamoDBOperation(() => getDBClient().send(new TransactWriteCommand({
|
|
146
236
|
TransactItems: transactItems,
|
|
147
237
|
})), 'TransactWriteItems');
|
|
148
|
-
logger.info('updateOne
|
|
238
|
+
logger.info('updateOne upsert updated', {
|
|
149
239
|
requestId,
|
|
150
240
|
resource,
|
|
151
241
|
id,
|
|
@@ -153,7 +243,6 @@ export async function handleUpdateOne(resource, params, requestId) {
|
|
|
153
243
|
shadowsDeleted: shadowDiff.toDelete.length,
|
|
154
244
|
shadowsAdded: shadowDiff.toAdd.length,
|
|
155
245
|
});
|
|
156
|
-
// __shadowKeysを除外してレスポンスを返す
|
|
157
246
|
return removeShadowKeys(updatedData);
|
|
158
247
|
}
|
|
159
248
|
//# sourceMappingURL=updateOne.js.map
|
|
@@ -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,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE5F,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,YAAY,EACZ,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"updateOne.js","sourceRoot":"","sources":["../../../src/server/operations/updateOne.ts"],"names":[],"mappings":"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"}
|
package/dist/server/types.d.ts
CHANGED
|
@@ -92,6 +92,11 @@ export interface UpdateOneParams {
|
|
|
92
92
|
id: string;
|
|
93
93
|
/** 更新データ(JSON Merge Patch形式) */
|
|
94
94
|
data: Record<string, unknown>;
|
|
95
|
+
/** 更新オプション */
|
|
96
|
+
options?: {
|
|
97
|
+
/** レコードが存在しない場合に新規作成するか(デフォルト: false) */
|
|
98
|
+
upsert?: boolean;
|
|
99
|
+
};
|
|
95
100
|
}
|
|
96
101
|
/**
|
|
97
102
|
* updateMany パラメータ
|
|
@@ -101,6 +106,11 @@ export interface UpdateManyParams {
|
|
|
101
106
|
ids: string[];
|
|
102
107
|
/** 更新データ(JSON Merge Patch形式) */
|
|
103
108
|
data: Record<string, unknown>;
|
|
109
|
+
/** 更新オプション */
|
|
110
|
+
options?: {
|
|
111
|
+
/** レコードが存在しない場合に新規作成するか(デフォルト: false) */
|
|
112
|
+
upsert?: boolean;
|
|
113
|
+
};
|
|
104
114
|
}
|
|
105
115
|
/**
|
|
106
116
|
* deleteOne パラメータ
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,MAAM,YAAY,GAEpB,MAAM,GACN,SAAS,GACT,UAAU,GACV,mBAAmB,GAEnB,WAAW,GACX,WAAW,GACX,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,UAAU;IACV,EAAE,EAAE,YAAY,CAAC;IACjB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc;IACd,MAAM,EAAE,CAAC,CAAC;CACX;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,YAAY;IACZ,IAAI,CAAC,EAAE;QACL,yBAAyB;QACzB,KAAK,EAAE,MAAM,CAAC;QACd,+BAA+B;QAC/B,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;KACvB,CAAC;IACF,iBAAiB;IACjB,UAAU,CAAC,EAAE;QACX,kBAAkB;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,wBAAwB;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,gCAAgC;QAChC,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,kBAAkB;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,GAAG,EAAE,MAAM,EAAE,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,YAAY;IACZ,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;KACvB,CAAC;IACF,iBAAiB;IACjB,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kBAAkB;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* 要件: 12.2
|
|
11
11
|
*/
|
|
12
|
-
export type FilterOperator = 'eq' | 'lt' | 'lte' | 'gt' | 'gte' | 'starts' | 'ends';
|
|
12
|
+
export type FilterOperator = 'eq' | 'ne' | 'lt' | 'lte' | 'gt' | 'gte' | 'in' | 'nin' | 'starts' | 'ends' | 'contains' | 'exists';
|
|
13
13
|
/**
|
|
14
14
|
* フィルター型
|
|
15
15
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/server/utils/filter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,MAAM,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/server/utils/filter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,MAAM,MAAM,cAAc,GACtB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,QAAQ,GACR,MAAM,GACN,UAAU,GACV,QAAQ,CAAC;AAEb;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAElE;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU;IACV,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW;IACX,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAiCpE;AA6BD;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,IAAI,sBAAsB,CAWpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,sBAAsB,GAAG,IAAI,CA4B/B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,CAAC,sBAAsB,GAAG,IAAI,CAAC,EAAE,GACzC,sBAAsB,GAAG,IAAI,CA6B/B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrE,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,sBAAsB,GAAG,IAAI,GACpC,CAAC,CAiBH;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAe9F;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,OAAO,GACb,OAAO,CA+BT;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,aAAa,EAAE,KAAK,CAAC;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,GAClE,OAAO,CAET;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,KAAK,CAAC;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,GAClE;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAUtD"}
|
|
@@ -54,7 +54,20 @@ export function parseFilterField(fieldKey) {
|
|
|
54
54
|
* 演算子が有効かチェックする
|
|
55
55
|
*/
|
|
56
56
|
function isValidOperator(operator) {
|
|
57
|
-
return [
|
|
57
|
+
return [
|
|
58
|
+
'eq',
|
|
59
|
+
'ne',
|
|
60
|
+
'lt',
|
|
61
|
+
'lte',
|
|
62
|
+
'gt',
|
|
63
|
+
'gte',
|
|
64
|
+
'in',
|
|
65
|
+
'nin',
|
|
66
|
+
'starts',
|
|
67
|
+
'ends',
|
|
68
|
+
'contains',
|
|
69
|
+
'exists',
|
|
70
|
+
].includes(operator);
|
|
58
71
|
}
|
|
59
72
|
/**
|
|
60
73
|
* 型が有効かチェックする
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/server/utils/filter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/server/utils/filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -118,6 +118,20 @@ export interface FindOptions {
|
|
|
118
118
|
/** ページネーショントークン(カーソルベースのページネーション用) */
|
|
119
119
|
nextToken?: string;
|
|
120
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* updateOneのオプション
|
|
123
|
+
*/
|
|
124
|
+
export interface UpdateOneOptions {
|
|
125
|
+
/** レコードが存在しない場合に新規作成するか(デフォルト: false) */
|
|
126
|
+
upsert?: boolean;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* updateManyのオプション
|
|
130
|
+
*/
|
|
131
|
+
export interface UpdateManyOptions {
|
|
132
|
+
/** レコードが存在しない場合に新規作成するか(デフォルト: false) */
|
|
133
|
+
upsert?: boolean;
|
|
134
|
+
}
|
|
121
135
|
/**
|
|
122
136
|
* 挿入結果
|
|
123
137
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/types/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/types/index.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": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
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",
|