@exabugs/dynamodb-client 1.25.1 → 1.27.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.
Files changed (147) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/__generated__/models/apiOperation.d.ts +1 -0
  3. package/dist/__generated__/models/apiOperation.d.ts.map +1 -1
  4. package/dist/__generated__/models/apiOperation.js +1 -0
  5. package/dist/__generated__/models/apiOperation.js.map +1 -1
  6. package/dist/__generated__/models/bulkOperationResult.d.ts +2 -0
  7. package/dist/__generated__/models/bulkOperationResult.d.ts.map +1 -1
  8. package/dist/__generated__/models/countParams.d.ts +31 -0
  9. package/dist/__generated__/models/countParams.d.ts.map +1 -0
  10. package/dist/__generated__/models/countParams.js +2 -0
  11. package/dist/__generated__/models/countParams.js.map +1 -0
  12. package/dist/__generated__/models/countResult.d.ts +37 -0
  13. package/dist/__generated__/models/countResult.d.ts.map +1 -0
  14. package/dist/__generated__/models/countResult.js +2 -0
  15. package/dist/__generated__/models/countResult.js.map +1 -0
  16. package/dist/__generated__/models/countResultConsumedCapacity.d.ts +35 -0
  17. package/dist/__generated__/models/countResultConsumedCapacity.d.ts.map +1 -0
  18. package/dist/__generated__/models/countResultConsumedCapacity.js +25 -0
  19. package/dist/__generated__/models/countResultConsumedCapacity.js.map +1 -0
  20. package/dist/__generated__/models/executeOperationBodyOp.d.ts +1 -0
  21. package/dist/__generated__/models/executeOperationBodyOp.d.ts.map +1 -1
  22. package/dist/__generated__/models/executeOperationBodyOp.js +1 -0
  23. package/dist/__generated__/models/executeOperationBodyOp.js.map +1 -1
  24. package/dist/__generated__/models/index.d.ts +3 -0
  25. package/dist/__generated__/models/index.d.ts.map +1 -1
  26. package/dist/__generated__/models/index.js +3 -0
  27. package/dist/__generated__/models/index.js.map +1 -1
  28. package/dist/client/Collection.d.ts +7 -0
  29. package/dist/client/Collection.d.ts.map +1 -1
  30. package/dist/client/Collection.js +20 -1
  31. package/dist/client/Collection.js.map +1 -1
  32. package/dist/scripts/repair-shadows.js +86 -42
  33. package/dist/scripts/repair-shadows.js.map +1 -1
  34. package/dist/scripts/utils/cliParser.d.ts +9 -22
  35. package/dist/scripts/utils/cliParser.d.ts.map +1 -1
  36. package/dist/scripts/utils/cliParser.js +14 -37
  37. package/dist/scripts/utils/cliParser.js.map +1 -1
  38. package/dist/scripts/utils/shadowAudit.d.ts +49 -0
  39. package/dist/scripts/utils/shadowAudit.d.ts.map +1 -0
  40. package/dist/scripts/utils/shadowAudit.js +84 -0
  41. package/dist/scripts/utils/shadowAudit.js.map +1 -0
  42. package/dist/scripts/utils/shadowRepair.d.ts +42 -0
  43. package/dist/scripts/utils/shadowRepair.d.ts.map +1 -0
  44. package/dist/scripts/utils/shadowRepair.js +110 -0
  45. package/dist/scripts/utils/shadowRepair.js.map +1 -0
  46. package/dist/server/handler.cjs +1264 -1088
  47. package/dist/server/handler.cjs.map +4 -4
  48. package/dist/server/handler.js +2 -2
  49. package/dist/server/handler.js.map +1 -1
  50. package/dist/server/media-handler.cjs +2 -2
  51. package/dist/server/media-process-handler-dlq.cjs +19 -3
  52. package/dist/server/media-process-handler-dlq.cjs.map +2 -2
  53. package/dist/server/media-process-handler.cjs +19 -3
  54. package/dist/server/media-process-handler.cjs.map +2 -2
  55. package/dist/server/operations/count.d.ts +3 -0
  56. package/dist/server/operations/count.d.ts.map +1 -0
  57. package/dist/server/operations/count.js +81 -0
  58. package/dist/server/operations/count.js.map +1 -0
  59. package/dist/server/operations/deleteMany.d.ts.map +1 -1
  60. package/dist/server/operations/deleteMany.js +13 -1
  61. package/dist/server/operations/deleteMany.js.map +1 -1
  62. package/dist/server/operations/deleteOne.d.ts.map +1 -1
  63. package/dist/server/operations/deleteOne.js +7 -13
  64. package/dist/server/operations/deleteOne.js.map +1 -1
  65. package/dist/server/operations/find/idQuery.d.ts.map +1 -1
  66. package/dist/server/operations/find/idQuery.js +31 -22
  67. package/dist/server/operations/find/idQuery.js.map +1 -1
  68. package/dist/server/operations/find/keyCondition.d.ts +38 -0
  69. package/dist/server/operations/find/keyCondition.d.ts.map +1 -0
  70. package/dist/server/operations/find/keyCondition.js +184 -0
  71. package/dist/server/operations/find/keyCondition.js.map +1 -0
  72. package/dist/server/operations/find/shadowQuery.d.ts.map +1 -1
  73. package/dist/server/operations/find/shadowQuery.js +16 -143
  74. package/dist/server/operations/find/shadowQuery.js.map +1 -1
  75. package/dist/server/operations/find/utils.d.ts +11 -0
  76. package/dist/server/operations/find/utils.d.ts.map +1 -1
  77. package/dist/server/operations/find/utils.js +1 -6
  78. package/dist/server/operations/find/utils.js.map +1 -1
  79. package/dist/server/operations/findMany.d.ts.map +1 -1
  80. package/dist/server/operations/findMany.js +4 -1
  81. package/dist/server/operations/findMany.js.map +1 -1
  82. package/dist/server/operations/findOne.d.ts.map +1 -1
  83. package/dist/server/operations/findOne.js +1 -1
  84. package/dist/server/operations/findOne.js.map +1 -1
  85. package/dist/server/operations/insertMany.d.ts.map +1 -1
  86. package/dist/server/operations/insertMany.js +1 -4
  87. package/dist/server/operations/insertMany.js.map +1 -1
  88. package/dist/server/operations/insertOne.d.ts.map +1 -1
  89. package/dist/server/operations/insertOne.js +2 -6
  90. package/dist/server/operations/insertOne.js.map +1 -1
  91. package/dist/server/operations/operationDispatcher.d.ts.map +1 -1
  92. package/dist/server/operations/operationDispatcher.js +3 -0
  93. package/dist/server/operations/operationDispatcher.js.map +1 -1
  94. package/dist/server/operations/parameterConverter.d.ts +1 -0
  95. package/dist/server/operations/parameterConverter.d.ts.map +1 -1
  96. package/dist/server/operations/parameterConverter.js +34 -41
  97. package/dist/server/operations/parameterConverter.js.map +1 -1
  98. package/dist/server/operations/updateMany.d.ts.map +1 -1
  99. package/dist/server/operations/updateMany.js +37 -16
  100. package/dist/server/operations/updateMany.js.map +1 -1
  101. package/dist/server/operations/updateOne.d.ts.map +1 -1
  102. package/dist/server/operations/updateOne.js +18 -22
  103. package/dist/server/operations/updateOne.js.map +1 -1
  104. package/dist/server/types.d.ts +22 -7
  105. package/dist/server/types.d.ts.map +1 -1
  106. package/dist/server/utils/bulkError.d.ts +12 -0
  107. package/dist/server/utils/bulkError.d.ts.map +1 -0
  108. package/dist/server/utils/bulkError.js +21 -0
  109. package/dist/server/utils/bulkError.js.map +1 -0
  110. package/dist/server/utils/chunking.d.ts +9 -1
  111. package/dist/server/utils/chunking.d.ts.map +1 -1
  112. package/dist/server/utils/chunking.js +20 -3
  113. package/dist/server/utils/chunking.js.map +1 -1
  114. package/dist/server/utils/filter.d.ts +3 -105
  115. package/dist/server/utils/filter.d.ts.map +1 -1
  116. package/dist/server/utils/filter.js +14 -218
  117. package/dist/server/utils/filter.js.map +1 -1
  118. package/dist/server/utils/idFilter.d.ts +15 -0
  119. package/dist/server/utils/idFilter.d.ts.map +1 -0
  120. package/dist/server/utils/idFilter.js +32 -0
  121. package/dist/server/utils/idFilter.js.map +1 -0
  122. package/docs/README.md +9 -12
  123. package/package.json +1 -1
  124. package/dist/scripts/operations/bulkRecordRepair.d.ts +0 -17
  125. package/dist/scripts/operations/bulkRecordRepair.d.ts.map +0 -1
  126. package/dist/scripts/operations/bulkRecordRepair.js +0 -76
  127. package/dist/scripts/operations/bulkRecordRepair.js.map +0 -1
  128. package/dist/scripts/operations/singleRecordRepair.d.ts +0 -18
  129. package/dist/scripts/operations/singleRecordRepair.d.ts.map +0 -1
  130. package/dist/scripts/operations/singleRecordRepair.js +0 -46
  131. package/dist/scripts/operations/singleRecordRepair.js.map +0 -1
  132. package/dist/scripts/utils/awsUtils.d.ts +0 -15
  133. package/dist/scripts/utils/awsUtils.d.ts.map +0 -1
  134. package/dist/scripts/utils/awsUtils.js +0 -31
  135. package/dist/scripts/utils/awsUtils.js.map +0 -1
  136. package/dist/scripts/utils/clientFactory.d.ts +0 -22
  137. package/dist/scripts/utils/clientFactory.d.ts.map +0 -1
  138. package/dist/scripts/utils/clientFactory.js +0 -36
  139. package/dist/scripts/utils/clientFactory.js.map +0 -1
  140. package/dist/scripts/utils/repairUtils.d.ts +0 -58
  141. package/dist/scripts/utils/repairUtils.d.ts.map +0 -1
  142. package/dist/scripts/utils/repairUtils.js +0 -52
  143. package/dist/scripts/utils/repairUtils.js.map +0 -1
  144. package/dist/server/utils/ttl.d.ts +0 -17
  145. package/dist/server/utils/ttl.d.ts.map +0 -1
  146. package/dist/server/utils/ttl.js +0 -64
  147. package/dist/server/utils/ttl.js.map +0 -1
@@ -0,0 +1,3 @@
1
+ import type { CountParams, CountResult } from '../types.js';
2
+ export declare function handleCount(resource: string, params: CountParams, requestId: string): Promise<CountResult>;
3
+ //# sourceMappingURL=count.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"count.d.ts","sourceRoot":"","sources":["../../../src/server/operations/count.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAkE5D,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,CAAC,CAqCtB"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * count 操作
3
+ *
4
+ * 条件に一致するレコードの件数を返す。キー条件にできる条件は、シャドーだけを数える
5
+ * (Query に Select: 'COUNT' を付ける。本体は読まない)。
6
+ *
7
+ * 数え方:
8
+ * - 条件なし: 本体(`id#…`)の件数
9
+ * - 1 つの項目への $eq・$starts・範囲($gt・$gte・$lt・$lte。同じ項目の下限と上限の組を含む)で、
10
+ * 符号化で情報が落ちない値(exact): find と同じキー条件でシャドーを数える
11
+ * - それ以外(2 項目以上、キー条件にできない演算子、広めになる値): find と同じ経路で絞ってから数える
12
+ * (正しさを優先する。件数だけのために本体を読むので遅いが、find と一致する)
13
+ */
14
+ import { QueryCommand } from '@aws-sdk/lib-dynamodb';
15
+ import { InvalidFilterError } from '../../shared/errors/index.js';
16
+ import { CostTracker } from '../utils/cost-tracker.js';
17
+ import { executeDynamoDBOperation, getDBClient, getTableName } from '../utils/dynamodb.js';
18
+ import { KEY_CONDITION_OPERATORS, buildKeyCondition, encodeValueForShadowSK, findComplementaryBound, } from './find/keyCondition.js';
19
+ import { detectNearQuery, parseFilters } from './find/utils.js';
20
+ import { findAllByFilter } from './findAll.js';
21
+ /** キー条件だけで数えられる条件か(1 つの項目で、値の符号化に曖昧さが無い) */
22
+ function planKeyCountFilters(parsedFilters) {
23
+ const [first] = parsedFilters;
24
+ if (!first || first.parsed.field === 'id')
25
+ return undefined;
26
+ if (!KEY_CONDITION_OPERATORS.has(first.parsed.operator))
27
+ return undefined;
28
+ const second = parsedFilters.length === 2 ? findComplementaryBound(first, parsedFilters) : undefined;
29
+ if (parsedFilters.length > 1 && !second)
30
+ return undefined;
31
+ if (parsedFilters.length > 2)
32
+ return undefined;
33
+ const planned = second ? [first, second] : [first];
34
+ const allExact = planned.every((f) => encodeValueForShadowSK(f.value, f.parsed.type, f.parsed.operator).exact);
35
+ return allExact ? { first, second } : undefined;
36
+ }
37
+ /** キー条件の Query を、LastEvaluatedKey が無くなるまで繰り返して件数を足す */
38
+ async function countByKeyCondition(keyConditionExpression, expressionAttributeValues, costTracker) {
39
+ const dbClient = getDBClient();
40
+ const tableName = getTableName();
41
+ let total = 0;
42
+ let exclusiveStartKey;
43
+ do {
44
+ const result = await executeDynamoDBOperation(() => dbClient.send(new QueryCommand({
45
+ TableName: tableName,
46
+ KeyConditionExpression: keyConditionExpression,
47
+ ExpressionAttributeValues: expressionAttributeValues,
48
+ Select: 'COUNT',
49
+ ExclusiveStartKey: exclusiveStartKey,
50
+ ConsistentRead: true,
51
+ ReturnConsumedCapacity: 'TOTAL',
52
+ })), 'Query');
53
+ costTracker.add(result.ConsumedCapacity);
54
+ total += result.Count ?? 0;
55
+ exclusiveStartKey = result.LastEvaluatedKey;
56
+ } while (exclusiveStartKey);
57
+ return total;
58
+ }
59
+ export async function handleCount(resource, params, requestId) {
60
+ const filter = (params.filter ?? {});
61
+ if (detectNearQuery(filter)) {
62
+ throw new InvalidFilterError('count does not support $near', { filter });
63
+ }
64
+ const parsedFilters = parseFilters(filter);
65
+ const costTracker = new CostTracker();
66
+ // 条件なし: 本体(id#…)の件数
67
+ if (parsedFilters.length === 0) {
68
+ const count = await countByKeyCondition('PK = :pk AND begins_with(SK, :skPrefix)', { ':pk': resource, ':skPrefix': 'id#' }, costTracker);
69
+ return { count, consumedCapacity: costTracker.getAggregated() };
70
+ }
71
+ const plan = planKeyCountFilters(parsedFilters);
72
+ if (plan) {
73
+ const { keyConditionExpression, expressionAttributeValues } = buildKeyCondition(resource, plan.first.parsed.field, plan.first, plan.second);
74
+ const count = await countByKeyCondition(keyConditionExpression, expressionAttributeValues, costTracker);
75
+ return { count, consumedCapacity: costTracker.getAggregated() };
76
+ }
77
+ // 正しさを優先する経路: find と同じ読み方で絞ってから数える
78
+ const items = await findAllByFilter(resource, filter, requestId);
79
+ return { count: items.length };
80
+ }
81
+ //# sourceMappingURL=count.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"count.js","sourceRoot":"","sources":["../../../src/server/operations/count.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"deleteMany.d.ts","sourceRoot":"","sources":["../../../src/server/operations/deleteMany.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAkB,MAAM,aAAa,CAAC;AAiCtF;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CA4U3B"}
1
+ {"version":3,"file":"deleteMany.d.ts","sourceRoot":"","sources":["../../../src/server/operations/deleteMany.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAkB,MAAM,aAAa,CAAC;AAkCtF;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAuV3B"}
@@ -12,6 +12,7 @@ import { calculateTimeoutRisk, logBulkOperationComplete, logLargeBatchWarning, l
12
12
  import { calculateChunks, executeChunks } from '../utils/chunking.js';
13
13
  import { CostTracker } from '../utils/cost-tracker.js';
14
14
  import { executeDynamoDBOperation, getDBClient, getTableName } from '../utils/dynamodb.js';
15
+ import { conditionMatcher } from '../utils/idFilter.js';
15
16
  import { revisionOf, unchangedCondition, writeWithConflictRetry } from '../utils/revision.js';
16
17
  import { findAllByFilter } from './findAll.js';
17
18
  const logger = createLogger({ service: 'records-lambda' });
@@ -36,9 +37,13 @@ export async function handleDeleteMany(resource, params, requestId) {
36
37
  const costTracker = new CostTracker();
37
38
  // idsまたはfilterから対象レコードIDリストを取得
38
39
  let ids;
40
+ // id 以外の条件。対象を読んだ時点(楽観ロックの読み取りの中)で確かめる
41
+ let condition;
39
42
  if ('ids' in params) {
40
43
  // idsが指定されている場合
41
- ids = params.ids;
44
+ // 重複 id は 1 つにする(同じ項目への操作が 1 トランザクションに 2 つ入るのを防ぐ)
45
+ ids = [...new Set(params.ids)];
46
+ condition = params.condition;
42
47
  logger.debug('Executing deleteMany with ids', {
43
48
  requestId,
44
49
  resource,
@@ -60,6 +65,8 @@ export async function handleDeleteMany(resource, params, requestId) {
60
65
  // filterに一致する全件を取得する(1ページだけでは対象の一部が漏れる)
61
66
  const matched = await findAllByFilter(resource, params.filter, requestId);
62
67
  ids = matched.map((item) => item.id);
68
+ // 検索から削除までの間に条件から外れたレコードを消さない
69
+ condition = params.filter;
63
70
  logger.debug('Found records with filter', {
64
71
  requestId,
65
72
  resource,
@@ -86,9 +93,14 @@ export async function handleDeleteMany(resource, params, requestId) {
86
93
  // 存在しないIDを特定
87
94
  const existingIds = new Set();
88
95
  const preparedRecords = [];
96
+ const matches = conditionMatcher(condition);
89
97
  for (const item of existingItems) {
90
98
  const existingData = item.data;
91
99
  const id = existingData.id;
100
+ // 条件に一致しないレコードは「無い」と同じ扱い(existingIds に入れず、ITEM_NOT_FOUND にする)
101
+ if (!matches(existingData)) {
102
+ continue;
103
+ }
92
104
  // 新構造(トップレベル)→ 旧構造(data内)の順でフォールバック
93
105
  const shadowKeys = (item.__shadowKeys ?? existingData.__shadowKeys) ?? [];
94
106
  existingIds.add(id);
@@ -1 +1 @@
1
- {"version":3,"file":"deleteMany.js","sourceRoot":"","sources":["../../../src/server/operations/deleteMany.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAkB3D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,MAAwB,EACxB,SAAiB;IAEjB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEtC,+BAA+B;IAC/B,IAAI,GAAa,CAAC;IAElB,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;QACpB,gBAAgB;QAChB,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QAEjB,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE;YAC5C,SAAS;YACT,QAAQ;YACR,KAAK,EAAE,GAAG,CAAC,MAAM;SAClB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,mBAAmB;QACnB,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;YAC/C,SAAS;YACT,QAAQ;YACR,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QAEH,wCAAwC;QACxC,2CAA2C;QAC3C,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAiC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,gBAAgB,EAC1B,+CAA+C,EAC/C,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,MAAM,OAAO,GAAG,MAAM,eAAe,CACnC,QAAQ,EACR,MAAM,CAAC,MAAiC,EACxC,SAAS,CACV,CAAC;QAEF,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAY,CAAC,CAAC;QAE/C,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE;YACxC,SAAS;YACT,QAAQ;YACR,KAAK,EAAE,GAAG,CAAC,MAAM;SAClB,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;IACpB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,EAAE;YACV,gBAAgB,EAAE,WAAW,CAAC,aAAa,EAAE;SAC9C,CAAC;IACJ,CAAC;IAED,8BAA8B;IAC9B,oBAAoB,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,4DAA4D;IAC5D,mDAAmD;IACnD,MAAM,aAAa,GAAG,MAAM,WAAW,CACrC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,oBAAoB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACjE,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CACjD,CAAC;IAEF,aAAa;IACb,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,eAAe,GAA2B,EAAE,CAAC;IAEnD,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,IAA+B,CAAC;QAC1D,MAAM,EAAE,GAAG,YAAY,CAAC,EAAY,CAAC;QACrC,oCAAoC;QACpC,MAAM,UAAU,GAAI,CAAC,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,YAAY,CAAc,IAAI,EAAE,CAAC;QAExF,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEpB,eAAe,CAAC,IAAI,CAAC;YACnB,EAAE;YACF,MAAM,EAAE,oBAAoB,CAAC,EAAE,CAAC;YAChC,UAAU;YACV,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7D,mBAAmB;IACnB,MAAM,cAAc,GAAqB,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAChE,EAAE;QACF,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,qBAAqB,EAAE,EAAE;KACnC,CAAC,CAAC,CAAC;IAEJ,uBAAuB;IACvB,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE;YACrD,SAAS;YACT,QAAQ;YACR,SAAS,EAAE,GAAG,CAAC,MAAM;YACrB,QAAQ,EAAE,WAAW,CAAC,MAAM;SAC7B,CAAC,CAAC;QAEH,eAAe;QACf,MAAM,YAAY,GAA2B,EAAE,CAAC;QAChD,MAAM,SAAS,GAAmC,EAAE,CAAC;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7B,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBACrB,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBACtD,IAAI,KAAK,EAAE,CAAC;oBACV,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,YAAY;YACvB,MAAM,EAAE,SAAS;YACjB,gBAAgB,EAAE,WAAW,CAAC,aAAa,EAAE;SAC9C,CAAC;IACJ,CAAC;IAED,uBAAuB;IACvB,MAAM,YAAY,GAAG,CAAC,MAA4B,EAAU,EAAE;QAC5D,OAAO,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;IACtC,CAAC,CAAC;IAEF,+BAA+B;IAC/B,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IAElE,4BAA4B;IAC5B,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC5D,yBAAyB,CACvB,SAAS,EACT,QAAQ,EACR,eAAe,CAAC,MAAM,EACtB,MAAM,CAAC,MAAM,EACb,mBAAmB,CACpB,CAAC;IAEF,qBAAqB;IACrB,MAAM,UAAU,GAAG,KAAK,EAAE,KAA6B,EAAiB,EAAE;QACxE,MAAM,aAAa,GAEd,EAAE,CAAC;QAER,+BAA+B;QAC/B,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,IAAI,MAAM,CAAC,IAAI;gBAAE,SAAS;YAC1B,aAAa;YACb,aAAa,CAAC,IAAI,CAAC;gBACjB,MAAM,EAAE;oBACN,SAAS,EAAE,SAAS;oBACpB,GAAG,EAAE;wBACH,EAAE,EAAE,QAAQ;wBACZ,EAAE,EAAE,MAAM,CAAC,MAAM;qBAClB;oBACD,wCAAwC;oBACxC,gCAAgC;oBAChC,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC;iBACvC;aACF,CAAC,CAAC;YAEH,eAAe;YACf,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACzC,aAAa,CAAC,IAAI,CAAC;oBACjB,MAAM,EAAE;wBACN,SAAS,EAAE,SAAS;wBACpB,GAAG,EAAE;4BACH,EAAE,EAAE,QAAQ;4BACZ,EAAE,EAAE,QAAQ;yBACb;qBACF;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEvC,wBAAwB;QACxB,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAC3C,GAAG,EAAE,CACH,QAAQ,CAAC,IAAI,CACX,IAAI,oBAAoB,CAAC;YACvB,aAAa,EAAE,aAAa;YAC5B,sBAAsB,EAAE,OAAO;SAChC,CAAC,CACH,EACH,oBAAoB,CACrB,CAAC;QAEF,0CAA0C;QAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC3C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC/C,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC3C,CAAC;QAED,cAAc;IAChB,CAAC,CAAC;IAEF,kCAAkC;IAClC,MAAM,YAAY,GAAG,CAAC,KAA6B,EAAmC,EAAE,CACtF,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACxD,MAAM,KAAK,GAAG,MAAM,WAAW,CAC7B,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAC5D,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CACjD,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACtE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAA+B,CAAC;YAClD,OAAO;gBACL,GAAG,MAAM;gBACT,UAAU,EAAG,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAc,IAAI,EAAE;gBACxE,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;aAC3B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,wCAAwC;IACxC,MAAM,EACJ,cAAc,EACd,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,WAAW,GACpB,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAErE,eAAe;IACf,mDAAmD;IACnD,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,MAAM,YAAY,GAA2B,EAAE,CAAC;IAChD,MAAM,SAAS,GAAmC,EAAE,CAAC;IAErD,qBAAqB;IACrB,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7B,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACtD,IAAI,KAAK,EAAE,CAAC;gBACV,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAChC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACnD,IAAI,KAAK,EAAE,CAAC;gBACV,SAAS,CAAC,CAAC,CAAC,GAAG;oBACb,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAEjD,sBAAsB;IACtB,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAE3D,wBAAwB,CACtB,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,GAAG,CAAC,MAAM,EACV,KAAK,EACL,YAAY,CAAC,MAAM,EACnB,kBAAkB,EAClB;QACE,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,WAAW,CAAC,MAAM;QAC5B,oBAAoB,EAAE,cAAc,CAAC,MAAM;KAC5C,CACF,CAAC;IAEF,qCAAqC;IACrC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,iBAAiB,CACf,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,GAAG,CAAC,MAAM,EACV,KAAK,EACL,YAAY,CAAC,MAAM,EACnB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAC3C;YACE,gBAAgB,EAAE,WAAW,CAAC,MAAM;YACpC,sBAAsB,EAAE,cAAc,CAAC,MAAM;SAC9C,CACF,CAAC;IACJ,CAAC;IAED,eAAe;IACf,OAAO;QACL,KAAK;QACL,UAAU;QACV,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE,SAAS;QACjB,gBAAgB,EAAE,WAAW,CAAC,aAAa,EAAE;KAC9C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"deleteMany.js","sourceRoot":"","sources":["../../../src/server/operations/deleteMany.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"deleteOne.d.ts","sourceRoot":"","sources":["../../../src/server/operations/deleteOne.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAKpE;;;;;;;;;;;;;GAaG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,CA8F1B"}
1
+ {"version":3,"file":"deleteOne.d.ts","sourceRoot":"","sources":["../../../src/server/operations/deleteOne.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAMpE;;;;;;;;;;;;;GAaG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,CA4F1B"}
@@ -7,6 +7,7 @@
7
7
  * リファクタリング: deleteManyを内部で使用
8
8
  */
9
9
  import { createLogger } from '../../shared/index.js';
10
+ import { toAppError } from '../utils/bulkError.js';
10
11
  import { findOneByFilter } from './findAll.js';
11
12
  const logger = createLogger({ service: 'records-lambda' });
12
13
  /**
@@ -39,17 +40,13 @@ export async function handleDeleteOne(resource, params, requestId) {
39
40
  // deleteMany([id])を呼び出す
40
41
  const deleteManyResult = await handleDeleteMany(resource, {
41
42
  ids: [targetId],
43
+ condition: params.condition,
42
44
  }, requestId);
43
45
  // 結果を検証
44
46
  if (deleteManyResult.count === 0) {
45
47
  // 削除に失敗した場合
46
48
  const error = Object.values(deleteManyResult.errors || {})[0];
47
- if (error) {
48
- throw new Error(`Failed to delete record: ${error.message}`);
49
- }
50
- else {
51
- throw new Error(`Failed to delete record: ${targetId}`);
52
- }
49
+ throw toAppError(error, `Failed to delete record: ${targetId}`);
53
50
  }
54
51
  // 既存のインターフェースを維持: { id } を返す
55
52
  return {
@@ -70,18 +67,15 @@ export async function handleDeleteOne(resource, params, requestId) {
70
67
  // (filter のまま deleteMany に渡すと、一致する全件が削除されてしまう)
71
68
  const target = await findOneByFilter(resource, params.filter, requestId);
72
69
  const deleteManyResult = target
73
- ? await handleDeleteMany(resource, { ids: [target.id] }, requestId)
70
+ ? await handleDeleteMany(resource,
71
+ // 選んでから消すまでの間に条件から外れたレコードを消さない
72
+ { ids: [target.id], condition: params.filter }, requestId)
74
73
  : await handleDeleteMany(resource, { ids: [] }, requestId);
75
74
  // 結果を検証
76
75
  if (deleteManyResult.count === 0) {
77
76
  // 削除に失敗した場合
78
77
  const error = Object.values(deleteManyResult.errors || {})[0];
79
- if (error) {
80
- throw new Error(`Failed to delete record: ${error.message}`);
81
- }
82
- else {
83
- throw new Error(`No records found matching filter`);
84
- }
78
+ throw toAppError(error ?? { code: 'ITEM_NOT_FOUND' }, 'No records found matching filter');
85
79
  }
86
80
  // 成功した場合は削除されたレコードのIDを取得
87
81
  const deletedId = Object.values(deleteManyResult.successIds || {})[0];
@@ -1 +1 @@
1
- {"version":3,"file":"deleteOne.js","sourceRoot":"","sources":["../../../src/server/operations/deleteOne.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deleteOne.js","sourceRoot":"","sources":["../../../src/server/operations/deleteOne.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"idQuery.d.ts","sourceRoot":"","sources":["../../../../src/server/operations/find/idQuery.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAgB,MAAM,YAAY,CAAC;AAQjF;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,oBAAoB,EACtC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC,CAwBrB"}
1
+ {"version":3,"file":"idQuery.d.ts","sourceRoot":"","sources":["../../../../src/server/operations/find/idQuery.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAgB,MAAM,YAAY,CAAC;AAQjF;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,oBAAoB,EACtC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC,CAgCrB"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { QueryCommand } from '@aws-sdk/lib-dynamodb';
7
7
  import { AppError, ErrorCode, createLogger } from '../../../shared/index.js';
8
+ import { batchGetAll } from '../../utils/batchGet.js';
8
9
  import { CostTracker } from '../../utils/cost-tracker.js';
9
10
  import { executeDynamoDBOperation, extractCleanRecord, getDBClient, getTableName, } from '../../utils/dynamodb.js';
10
11
  import { decodeNextToken, encodeNextToken } from '../../utils/pagination.js';
@@ -33,16 +34,28 @@ export async function executeIdQuery(resource, normalizedParams, requestId) {
33
34
  });
34
35
  // 特定のIDフィルターがある場合の処理
35
36
  const idFilter = parsedFilters.find((f) => f.parsed.field === 'id');
37
+ // id 以外の条件は捨てずに、引いたレコードに対して確かめる
38
+ const otherFilters = parsedFilters.filter((f) => f !== idFilter);
36
39
  if (idFilter && idFilter.parsed.operator === '$eq') {
37
- return await executeSpecificIdQuery(resource, String(idFilter.value), requestId);
40
+ return withOtherFilters(await executeSpecificIdQuery(resource, String(idFilter.value), requestId), otherFilters);
38
41
  }
39
42
  // $in フィルターがある場合は各IDを個別取得(ページネーションで欠落しないように)
40
43
  if (idFilter && idFilter.parsed.operator === '$in' && Array.isArray(idFilter.value)) {
41
- return await executeInQuery(resource, idFilter.value.map(String), sort, requestId);
44
+ return withOtherFilters(await executeInQuery(resource, idFilter.value.map(String), sort, requestId), otherFilters);
42
45
  }
43
46
  // 全レコード取得の場合の処理
44
47
  return await executeAllRecordsQuery(resource, sort, perPage, nextToken, parsedFilters, requestId);
45
48
  }
49
+ /** id 以外の条件に一致するレコードだけに絞る(条件なしならそのまま) */
50
+ function withOtherFilters(result, otherFilters) {
51
+ if (otherFilters.length === 0) {
52
+ return result;
53
+ }
54
+ return {
55
+ ...result,
56
+ items: result.items.filter((item) => matchesAllFilters(item, otherFilters)),
57
+ };
58
+ }
46
59
  /**
47
60
  * 特定のIDのレコードを取得する
48
61
  *
@@ -90,28 +103,24 @@ async function executeSpecificIdQuery(resource, targetId, requestId) {
90
103
  * ページネーションで欠落しないよう、各IDを個別にQueryで取得する。
91
104
  */
92
105
  async function executeInQuery(resource, targetIds, sort, requestId) {
93
- const dbClient = getDBClient();
94
- const tableName = getTableName();
95
106
  const costTracker = new CostTracker();
96
- const results = await Promise.all(targetIds.map((id) => executeDynamoDBOperation(() => dbClient.send(new QueryCommand({
97
- TableName: tableName,
98
- KeyConditionExpression: 'PK = :pk AND SK = :sk',
99
- ExpressionAttributeValues: {
100
- ':pk': resource,
101
- ':sk': `id#${id}`,
102
- },
103
- ConsistentRead: true,
104
- ReturnConsumedCapacity: 'TOTAL',
105
- })), 'Query').then((result) => {
106
- costTracker.add(result.ConsumedCapacity);
107
- return result.Items || [];
108
- })));
109
- let items = results.flat().map((item) => extractCleanRecord(item));
110
- // ソート適用
107
+ // batchGetAll は 100 件ごとに分割し、UnprocessedKeys を再試行する(同時実行にも上限がある)
108
+ const found = await batchGetAll(targetIds.map((id) => ({ PK: resource, SK: `id#${id}` })), { consistentRead: true, costTracker, requestId });
109
+ const items = found.map((item) => extractCleanRecord(item));
110
+ // 並べ替え: 指定された項目で行う(欠けている値は後ろ)
111
+ const direction = sort.order === 'ASC' ? 1 : -1;
111
112
  items.sort((a, b) => {
112
- const aVal = String(a.id ?? '');
113
- const bVal = String(b.id ?? '');
114
- return sort.order === 'ASC' ? aVal.localeCompare(bVal) : bVal.localeCompare(aVal);
113
+ const aVal = a[sort.field];
114
+ const bVal = b[sort.field];
115
+ if (aVal === bVal)
116
+ return 0;
117
+ if (aVal === undefined || aVal === null)
118
+ return 1;
119
+ if (bVal === undefined || bVal === null)
120
+ return -1;
121
+ if (typeof aVal === 'number' && typeof bVal === 'number')
122
+ return (aVal - bVal) * direction;
123
+ return String(aVal).localeCompare(String(bVal)) * direction;
115
124
  });
116
125
  logger.info('ID $in query succeeded', {
117
126
  requestId,
@@ -1 +1 @@
1
- {"version":3,"file":"idQuery.js","sourceRoot":"","sources":["../../../../src/server/operations/find/idQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"idQuery.js","sourceRoot":"","sources":["../../../../src/server/operations/find/idQuery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { OptimizableFilter, ParsedFilter } from './types.js';
2
+ /**
3
+ * DynamoDBのKeyConditionExpressionで実際に絞り込める演算子
4
+ *
5
+ * buildKeyCondition()のswitch文で個別実装されている演算子のみ。
6
+ * これ以外($contains, $ends, $ne, $in, $nin, $exists等)は
7
+ * begins_with(SK, sortField#)による全件プレフィックスマッチにフォールバックし、
8
+ * DB側では一切絞り込まれない(メモリ内フィルタでのみ判定される)。
9
+ */
10
+ export declare const KEY_CONDITION_OPERATORS: Set<string>;
11
+ /**
12
+ * KeyConditionExpressionを構築する
13
+ *
14
+ * @param resource - リソース名
15
+ * @param sortField - ソートフィールド
16
+ * @param optimizableFilter - 最適化可能なフィルター
17
+ * @returns KeyConditionExpressionと属性値
18
+ */
19
+ export declare function buildKeyCondition(resource: string, sortField: string, optimizableFilter: OptimizableFilter | undefined, secondFilter?: OptimizableFilter): {
20
+ keyConditionExpression: string;
21
+ expressionAttributeValues: Record<string, unknown>;
22
+ };
23
+ /** 同じ項目の、反対側の範囲条件(下限に対する上限、上限に対する下限)を探す */
24
+ export declare function findComplementaryBound(primary: OptimizableFilter, parsedFilters: ParsedFilter[]): OptimizableFilter | undefined;
25
+ /**
26
+ * 検索の値を、書き込み側(generateShadowRecords)と同じ形に符号化する
27
+ *
28
+ * 書き込み側と別の実装にしない(数値のオフセット・文字列の切り詰め・日時の正規化がずれると、
29
+ * 一致するはずのシャドーに当たらず、結果が黙って空になる)。
30
+ *
31
+ * @returns encoded: 符号化した値。exact: 符号化で情報が落ちていないか
32
+ * (false = 数値の小数の切り捨て、文字列の切り詰め。同じ符号になる別の値がありうる)
33
+ */
34
+ export declare function encodeValueForShadowSK(value: unknown, type: string | undefined, operator: string): {
35
+ encoded: string;
36
+ exact: boolean;
37
+ };
38
+ //# sourceMappingURL=keyCondition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyCondition.d.ts","sourceRoot":"","sources":["../../../../src/server/operations/find/keyCondition.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAElE;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,aAA4D,CAAC;AAEjG;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,EAChD,YAAY,CAAC,EAAE,iBAAiB,GAC/B;IACD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpD,CAwFA;AA6BD,2CAA2C;AAC3C,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,iBAAiB,EAC1B,aAAa,EAAE,YAAY,EAAE,GAC5B,iBAAiB,GAAG,SAAS,CAW/B;AAuBD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,QAAQ,EAAE,MAAM,GACf;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CA2BrC"}