@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,184 @@
1
+ /**
2
+ * シャドーの KeyConditionExpression の組み立て
3
+ *
4
+ * find(ページを読む)と count(件数だけ数える)が同じキー条件を使うため、ここに 1 つだけ置く。
5
+ */
6
+ import { escapeString, formatFieldValue, getShadowConfig, inferFieldType, } from '../../shadow/index.js';
7
+ /**
8
+ * DynamoDBのKeyConditionExpressionで実際に絞り込める演算子
9
+ *
10
+ * buildKeyCondition()のswitch文で個別実装されている演算子のみ。
11
+ * これ以外($contains, $ends, $ne, $in, $nin, $exists等)は
12
+ * begins_with(SK, sortField#)による全件プレフィックスマッチにフォールバックし、
13
+ * DB側では一切絞り込まれない(メモリ内フィルタでのみ判定される)。
14
+ */
15
+ export const KEY_CONDITION_OPERATORS = new Set(['$eq', '$gt', '$gte', '$lt', '$lte', '$starts']);
16
+ /**
17
+ * KeyConditionExpressionを構築する
18
+ *
19
+ * @param resource - リソース名
20
+ * @param sortField - ソートフィールド
21
+ * @param optimizableFilter - 最適化可能なフィルター
22
+ * @returns KeyConditionExpressionと属性値
23
+ */
24
+ export function buildKeyCondition(resource, sortField, optimizableFilter, secondFilter) {
25
+ const expressionAttributeValues = {
26
+ ':pk': resource,
27
+ };
28
+ if (!optimizableFilter) {
29
+ // 最適化なし: プレフィックスマッチ
30
+ return {
31
+ keyConditionExpression: 'PK = :pk AND begins_with(SK, :skPrefix)',
32
+ expressionAttributeValues: {
33
+ ...expressionAttributeValues,
34
+ ':skPrefix': `${sortField}#`,
35
+ },
36
+ };
37
+ }
38
+ // 両側の範囲(下限 + 上限)は 1 つの BETWEEN にする
39
+ if (secondFilter) {
40
+ const first = rangeBounds(sortField, optimizableFilter);
41
+ const second = rangeBounds(sortField, secondFilter);
42
+ const low = first.low ?? second.low;
43
+ const high = first.high ?? second.high;
44
+ if (low !== undefined && high !== undefined) {
45
+ return rangeCondition(expressionAttributeValues, low, high);
46
+ }
47
+ }
48
+ // 最適化あり: フィルター条件をKeyConditionExpressionに含める
49
+ const { operator, type } = optimizableFilter.parsed;
50
+ const value = optimizableFilter.value;
51
+ // 値を、書き込み側と同じ形に符号化する
52
+ const { encoded, exact } = encodeValueForShadowSK(value, type, operator);
53
+ const skValue = `${sortField}#${encoded}`;
54
+ // 符号化で情報が落ちたとき(exact = false)は、同じ符号になる値をすべて読み、メモリの絞り込みに任せる
55
+ const afterValue = `${skValue}#id#~`; // この値のシャドーすべてより後ろ
56
+ const beforeValue = `${skValue}#id#`; // この値のシャドーすべてより前
57
+ switch (operator) {
58
+ case '$eq':
59
+ return {
60
+ keyConditionExpression: 'PK = :pk AND begins_with(SK, :skValue)',
61
+ expressionAttributeValues: {
62
+ ...expressionAttributeValues,
63
+ ':skValue': beforeValue,
64
+ },
65
+ };
66
+ // 範囲検索は SK BETWEEN の 1 条件にする。
67
+ // - DynamoDB はソートキーに 1 つの条件しか許さない(begins_with と比較を並べると ValidationException)
68
+ // - 上限・下限を sortField の範囲に閉じないと、他の項目のシャドー(や本体 id#…)まで読む
69
+ // BETWEEN は両端を含むが、端の値(`…#id#`、`…#id#~`、`{sortField}$`)と一致する SK は実在しない
70
+ case '$gt':
71
+ return rangeCondition(expressionAttributeValues, exact ? afterValue : beforeValue, fieldUpperBound(sortField));
72
+ case '$gte':
73
+ return rangeCondition(expressionAttributeValues, beforeValue, fieldUpperBound(sortField));
74
+ case '$lt':
75
+ return rangeCondition(expressionAttributeValues, `${sortField}#`, exact ? beforeValue : afterValue);
76
+ case '$lte':
77
+ return rangeCondition(expressionAttributeValues, `${sortField}#`, afterValue);
78
+ case '$starts':
79
+ // プレフィックスマッチ: begins_with(SK, '{sortField}#{prefix}')
80
+ // 例: typeDate: { $starts: 'day:2026-03-14:' }
81
+ // → begins_with(SK, 'typeDate#day:2026-03-14:')
82
+ return {
83
+ keyConditionExpression: 'PK = :pk AND begins_with(SK, :skValue)',
84
+ expressionAttributeValues: {
85
+ ...expressionAttributeValues,
86
+ ':skValue': skValue,
87
+ },
88
+ };
89
+ default:
90
+ // 未対応の演算子の場合はプレフィックスマッチにフォールバック
91
+ return {
92
+ keyConditionExpression: 'PK = :pk AND begins_with(SK, :skPrefix)',
93
+ expressionAttributeValues: {
94
+ ...expressionAttributeValues,
95
+ ':skPrefix': `${sortField}#`,
96
+ },
97
+ };
98
+ }
99
+ }
100
+ const LOWER_BOUND_OPERATORS = new Set(['$gt', '$gte']);
101
+ const UPPER_BOUND_OPERATORS = new Set(['$lt', '$lte']);
102
+ /** 範囲演算子の、SK の下限・上限(`buildKeyCondition` の単独の範囲と同じ値) */
103
+ function rangeBounds(sortField, filter) {
104
+ const { operator, type } = filter.parsed;
105
+ const { encoded, exact } = encodeValueForShadowSK(filter.value, type, operator);
106
+ const skValue = `${sortField}#${encoded}`;
107
+ const afterValue = `${skValue}#id#~`;
108
+ const beforeValue = `${skValue}#id#`;
109
+ switch (operator) {
110
+ case '$gt':
111
+ return { low: exact ? afterValue : beforeValue };
112
+ case '$gte':
113
+ return { low: beforeValue };
114
+ case '$lt':
115
+ return { high: exact ? beforeValue : afterValue };
116
+ case '$lte':
117
+ return { high: afterValue };
118
+ default:
119
+ return {};
120
+ }
121
+ }
122
+ /** 同じ項目の、反対側の範囲条件(下限に対する上限、上限に対する下限)を探す */
123
+ export function findComplementaryBound(primary, parsedFilters) {
124
+ const op = primary.parsed.operator;
125
+ const wanted = LOWER_BOUND_OPERATORS.has(op)
126
+ ? UPPER_BOUND_OPERATORS
127
+ : UPPER_BOUND_OPERATORS.has(op)
128
+ ? LOWER_BOUND_OPERATORS
129
+ : undefined;
130
+ if (!wanted)
131
+ return undefined;
132
+ return parsedFilters.find((f) => f !== primary && f.parsed.field === primary.parsed.field && wanted.has(f.parsed.operator));
133
+ }
134
+ /**
135
+ * sortField のシャドーの SK(`{sortField}#…`)すべてより大きい、最小の文字列
136
+ *
137
+ * '$'(0x24)は '#'(0x23)の次の文字。`{sortField}#` で始まる SK は、どれも `{sortField}$` より小さい。
138
+ */
139
+ function fieldUpperBound(sortField) {
140
+ return `${sortField}$`;
141
+ }
142
+ /** `PK = :pk AND SK BETWEEN :skLow AND :skHigh` を組み立てる */
143
+ function rangeCondition(base, low, high) {
144
+ return {
145
+ keyConditionExpression: 'PK = :pk AND SK BETWEEN :skLow AND :skHigh',
146
+ expressionAttributeValues: { ...base, ':skLow': low, ':skHigh': high },
147
+ };
148
+ }
149
+ /**
150
+ * 検索の値を、書き込み側(generateShadowRecords)と同じ形に符号化する
151
+ *
152
+ * 書き込み側と別の実装にしない(数値のオフセット・文字列の切り詰め・日時の正規化がずれると、
153
+ * 一致するはずのシャドーに当たらず、結果が黙って空になる)。
154
+ *
155
+ * @returns encoded: 符号化した値。exact: 符号化で情報が落ちていないか
156
+ * (false = 数値の小数の切り捨て、文字列の切り詰め。同じ符号になる別の値がありうる)
157
+ */
158
+ export function encodeValueForShadowSK(value, type, operator) {
159
+ const config = getShadowConfig();
160
+ if (type === 'number' || typeof value === 'number') {
161
+ const num = Number(value);
162
+ // シャドーは小数を切り捨てる。整数 2 の検索でも、保存された 2.5 が同じ符号になるので、常に exact = false
163
+ return { encoded: formatFieldValue('number', num, config), exact: false };
164
+ }
165
+ if (type === 'boolean' || typeof value === 'boolean') {
166
+ const bool = typeof value === 'boolean' ? value : String(value).toLowerCase() === 'true';
167
+ return { encoded: formatFieldValue('boolean', bool, config), exact: true };
168
+ }
169
+ const str = String(value);
170
+ // 日時は、書き込み側と同じ推定で ISO 8601(UTC)に正規化する。
171
+ // 前方一致($starts)は途中までの指定がありうるので、正規化しない
172
+ if (operator !== '$starts' && (type === 'date' || inferFieldType(str) === 'datetime')) {
173
+ return { encoded: formatFieldValue('datetime', str, config), exact: true };
174
+ }
175
+ const encoded = formatFieldValue('string', str, config);
176
+ // 切り詰めの境界(UTF-8 の 1 文字は最大 4 バイト)に届く長さの値は、
177
+ // 切り詰められた保存値と同じ符号になりうる
178
+ const bytes = new TextEncoder().encode(str).length;
179
+ return {
180
+ encoded,
181
+ exact: encoded === escapeString(str) && bytes < config.stringMaxBytes - 3,
182
+ };
183
+ }
184
+ //# sourceMappingURL=keyCondition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyCondition.js","sourceRoot":"","sources":["../../../../src/server/operations/find/keyCondition.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shadowQuery.d.ts","sourceRoot":"","sources":["../../../../src/server/operations/find/shadowQuery.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAmC,MAAM,YAAY,CAAC;AAkBpG;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,oBAAoB,EACtC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC,CAgJrB;AA0iBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,CAWnF"}
1
+ {"version":3,"file":"shadowQuery.d.ts","sourceRoot":"","sources":["../../../../src/server/operations/find/shadowQuery.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAmC,MAAM,YAAY,CAAC;AAQpG;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,oBAAoB,EACtC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC,CAqJrB;AAiZD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,CAWnF"}
@@ -5,26 +5,17 @@
5
5
  */
6
6
  import { QueryCommand } from '@aws-sdk/lib-dynamodb';
7
7
  import { AppError, ErrorCode, createLogger } from '../../../shared/index.js';
8
- import { escapeString, formatFieldValue, getShadowConfig, inferFieldType, } from '../../shadow/index.js';
9
8
  import { batchGetAll } from '../../utils/batchGet.js';
10
9
  import { CostTracker } from '../../utils/cost-tracker.js';
11
10
  import { executeDynamoDBOperation, extractCleanRecord, getDBClient, getTableName, } from '../../utils/dynamodb.js';
12
11
  import { decodeNextToken, decodeOffsetToken, encodeNextToken, encodeOffsetToken, } from '../../utils/pagination.js';
13
12
  import { ScanWatcher } from '../../utils/scanWarning.js';
13
+ import { KEY_CONDITION_OPERATORS, buildKeyCondition, findComplementaryBound, } from './keyCondition.js';
14
14
  import { findOptimizableFilter, matchesAllFilters } from './utils.js';
15
15
  const logger = createLogger({
16
16
  service: 'shadow-query',
17
17
  level: process.env.LOG_LEVEL || 'info',
18
18
  });
19
- /**
20
- * DynamoDBのKeyConditionExpressionで実際に絞り込める演算子
21
- *
22
- * buildKeyCondition()のswitch文で個別実装されている演算子のみ。
23
- * これ以外($contains, $ends, $ne, $in, $nin, $exists, $regex等)は
24
- * begins_with(SK, sortField#)による全件プレフィックスマッチにフォールバックし、
25
- * DB側では一切絞り込まれない(メモリ内フィルタでのみ判定される)。
26
- */
27
- const KEY_CONDITION_OPERATORS = new Set(['$eq', '$gt', '$gte', '$lt', '$lte', '$starts']);
28
19
  /**
29
20
  * シャドウレコードクエリを実行する
30
21
  *
@@ -54,7 +45,11 @@ export async function executeShadowQuery(resource, normalizedParams, requestId)
54
45
  // これが1件でもあると、Limit付き単発クエリでは「取得したLimit件の中にだけ」
55
46
  // フィルタが適用され、ページの外にある本来マッチすべきレコードが漏れてしまう。
56
47
  // 正確性を優先し、全件フルスキャン(Limitなしループ取得)にフォールバックする。
57
- const residualFilters = parsedFilters.filter((f) => !(isKeyConditionOptimized && f === optimizableFilter));
48
+ // 同じ項目の下限・上限は 1 つの BETWEEN にまとめる
49
+ const upperFilter = isKeyConditionOptimized
50
+ ? findComplementaryBound(optimizableFilter, parsedFilters)
51
+ : undefined;
52
+ const residualFilters = parsedFilters.filter((f) => !(isKeyConditionOptimized && (f === optimizableFilter || f === upperFilter)));
58
53
  if (residualFilters.length > 0) {
59
54
  logger.debug('Residual filters detected, falling back to full scan', {
60
55
  requestId,
@@ -72,7 +67,7 @@ export async function executeShadowQuery(resource, normalizedParams, requestId)
72
67
  hasFilters: parsedFilters.length > 0,
73
68
  });
74
69
  // シャドウクエリを実行
75
- const shadowRecords = await executeShadowRecordQuery(resource, sort, perPage, nextToken, isKeyConditionOptimized ? optimizableFilter : undefined, costTracker, requestId);
70
+ const shadowRecords = await executeShadowRecordQuery(resource, sort, perPage, nextToken, isKeyConditionOptimized ? optimizableFilter : undefined, costTracker, requestId, upperFilter);
76
71
  // シャドウレコードから本体レコードのIDを抽出
77
72
  const recordIds = extractRecordIds(shadowRecords.Items || []);
78
73
  if (recordIds.length === 0) {
@@ -145,7 +140,8 @@ async function executeFilterFirstQuery(resource, normalizedParams, filterCandida
145
140
  // nextToken からオフセットを復元(filter-first 用オフセットトークン)
146
141
  const offset = nextToken ? (decodeOffsetToken(nextToken) ?? 0) : 0;
147
142
  const filterSort = { field: filterCandidate.parsed.field, order: 'ASC' };
148
- const remainingFilters = parsedFilters.filter((f) => f !== filterCandidate);
143
+ // 候補の条件も本体で再確認する(シャドーの符号化で情報が落ちる値がある: 小数・長い文字列)
144
+ const remainingFilters = parsedFilters;
149
145
  logger.debug('Executing filter-first query', {
150
146
  requestId,
151
147
  resource,
@@ -185,7 +181,7 @@ async function executeFilterFirstQuery(resource, normalizedParams, filterCandida
185
181
  * フルスキャンクエリを実行する(フィルタ候補なし、正確性優先のフォールバック経路)
186
182
  *
187
183
  * sort.field に対する残存フィルタが KeyConditionExpression で絞り込めない演算子
188
- * ($contains, $ends, $ne, $in, $nin, $exists, $regex 等)の場合に使用する。
184
+ * ($contains, $ends, $ne, $in, $nin, $exists 等)の場合に使用する。
189
185
  * Limit 付き単発クエリでは「取得した1ページの中にだけ」フィルタが適用され、
190
186
  * ページの外にある本来マッチすべきレコードが漏れてしまうため、
191
187
  * ソートシャドウインデックスを Limit なしで全件ループ取得し、
@@ -317,7 +313,7 @@ async function fetchAllRecordsViaShadowIndex(resource, indexSort, indexFilter, c
317
313
  * 例: perPage=50, prefecture=47 → 47 > 25 → filter-first 有利
318
314
  * perPage=50, status=3 → 3 > 25 → 対象外(sort-first の方が効率的)
319
315
  *
320
- * cardinality 未指定の場合: 閾値チェックなしで最初の $eq フィルタを使用
316
+ * cardinality 未指定の場合: 閾値チェックなしで最初の $eq フィルタを使用(全件走査より必ず少ないか同じ)
321
317
  *
322
318
  * @param parsedFilters - 解析済みフィルタ
323
319
  * @param sortField - ソートフィールド(これと一致するフィルタは最適化済みのため除外)
@@ -330,8 +326,9 @@ function selectFilterFirstCandidate(parsedFilters, sortField, schema, perPage) {
330
326
  return undefined;
331
327
  const cardinality = schema?.cardinality;
332
328
  if (!cardinality) {
333
- // schema なし: filter-first 無効(カーディナリティ不明では効率が保証できない)
334
- return undefined;
329
+ // cardinality なし: 最初の $eq を使う。読む件数は「一致する件数」で、
330
+ // 代わりになる全件走査(コレクション全件)より多くならない
331
+ return eqFilters[0];
335
332
  }
336
333
  // cardinality > 0 のフィールドを対象に、最も高いものを優先
337
334
  // 閾値は perPage の半分: sort-first より filter-first が有利になる目安
@@ -379,7 +376,7 @@ function sortInMemory(items, sort) {
379
376
  * @param requestId - リクエストID
380
377
  * @returns DynamoDBクエリ結果
381
378
  */
382
- async function executeShadowRecordQuery(resource, sort, perPage, nextToken, optimizableFilter, costTracker, _requestId) {
379
+ async function executeShadowRecordQuery(resource, sort, perPage, nextToken, optimizableFilter, costTracker, _requestId, secondFilter) {
383
380
  const dbClient = getDBClient();
384
381
  const tableName = getTableName();
385
382
  // ExclusiveStartKeyの設定
@@ -392,7 +389,7 @@ async function executeShadowRecordQuery(resource, sort, perPage, nextToken, opti
392
389
  };
393
390
  }
394
391
  // KeyConditionExpressionを構築
395
- const { keyConditionExpression, expressionAttributeValues } = buildKeyCondition(resource, sort.field, optimizableFilter);
392
+ const { keyConditionExpression, expressionAttributeValues } = buildKeyCondition(resource, sort.field, optimizableFilter, secondFilter);
396
393
  const result = await executeDynamoDBOperation(() => dbClient.send(new QueryCommand({
397
394
  TableName: tableName,
398
395
  KeyConditionExpression: keyConditionExpression,
@@ -407,130 +404,6 @@ async function executeShadowRecordQuery(resource, sort, perPage, nextToken, opti
407
404
  costTracker.add(result.ConsumedCapacity);
408
405
  return result;
409
406
  }
410
- /**
411
- * KeyConditionExpressionを構築する
412
- *
413
- * @param resource - リソース名
414
- * @param sortField - ソートフィールド
415
- * @param optimizableFilter - 最適化可能なフィルター
416
- * @returns KeyConditionExpressionと属性値
417
- */
418
- function buildKeyCondition(resource, sortField, optimizableFilter) {
419
- const expressionAttributeValues = {
420
- ':pk': resource,
421
- };
422
- if (!optimizableFilter) {
423
- // 最適化なし: プレフィックスマッチ
424
- return {
425
- keyConditionExpression: 'PK = :pk AND begins_with(SK, :skPrefix)',
426
- expressionAttributeValues: {
427
- ...expressionAttributeValues,
428
- ':skPrefix': `${sortField}#`,
429
- },
430
- };
431
- }
432
- // 最適化あり: フィルター条件をKeyConditionExpressionに含める
433
- const { operator, type } = optimizableFilter.parsed;
434
- const value = optimizableFilter.value;
435
- // 値を、書き込み側と同じ形に符号化する
436
- const { encoded, exact } = encodeValueForShadowSK(value, type, operator);
437
- const skValue = `${sortField}#${encoded}`;
438
- // 符号化で情報が落ちたとき(exact = false)は、同じ符号になる値をすべて読み、メモリの絞り込みに任せる
439
- const afterValue = `${skValue}#id#~`; // この値のシャドーすべてより後ろ
440
- const beforeValue = `${skValue}#id#`; // この値のシャドーすべてより前
441
- switch (operator) {
442
- case '$eq':
443
- return {
444
- keyConditionExpression: 'PK = :pk AND begins_with(SK, :skValue)',
445
- expressionAttributeValues: {
446
- ...expressionAttributeValues,
447
- ':skValue': beforeValue,
448
- },
449
- };
450
- // 範囲検索は SK BETWEEN の 1 条件にする。
451
- // - DynamoDB はソートキーに 1 つの条件しか許さない(begins_with と比較を並べると ValidationException)
452
- // - 上限・下限を sortField の範囲に閉じないと、他の項目のシャドー(や本体 id#…)まで読む
453
- // BETWEEN は両端を含むが、端の値(`…#id#`、`…#id#~`、`{sortField}$`)と一致する SK は実在しない
454
- case '$gt':
455
- return rangeCondition(expressionAttributeValues, exact ? afterValue : beforeValue, fieldUpperBound(sortField));
456
- case '$gte':
457
- return rangeCondition(expressionAttributeValues, beforeValue, fieldUpperBound(sortField));
458
- case '$lt':
459
- return rangeCondition(expressionAttributeValues, `${sortField}#`, exact ? beforeValue : afterValue);
460
- case '$lte':
461
- return rangeCondition(expressionAttributeValues, `${sortField}#`, afterValue);
462
- case '$starts':
463
- // プレフィックスマッチ: begins_with(SK, '{sortField}#{prefix}')
464
- // 例: typeDate: { $starts: 'day:2026-03-14:' }
465
- // → begins_with(SK, 'typeDate#day:2026-03-14:')
466
- return {
467
- keyConditionExpression: 'PK = :pk AND begins_with(SK, :skValue)',
468
- expressionAttributeValues: {
469
- ...expressionAttributeValues,
470
- ':skValue': skValue,
471
- },
472
- };
473
- default:
474
- // 未対応の演算子の場合はプレフィックスマッチにフォールバック
475
- return {
476
- keyConditionExpression: 'PK = :pk AND begins_with(SK, :skPrefix)',
477
- expressionAttributeValues: {
478
- ...expressionAttributeValues,
479
- ':skPrefix': `${sortField}#`,
480
- },
481
- };
482
- }
483
- }
484
- /**
485
- * sortField のシャドーの SK(`{sortField}#…`)すべてより大きい、最小の文字列
486
- *
487
- * '$'(0x24)は '#'(0x23)の次の文字。`{sortField}#` で始まる SK は、どれも `{sortField}$` より小さい。
488
- */
489
- function fieldUpperBound(sortField) {
490
- return `${sortField}$`;
491
- }
492
- /** `PK = :pk AND SK BETWEEN :skLow AND :skHigh` を組み立てる */
493
- function rangeCondition(base, low, high) {
494
- return {
495
- keyConditionExpression: 'PK = :pk AND SK BETWEEN :skLow AND :skHigh',
496
- expressionAttributeValues: { ...base, ':skLow': low, ':skHigh': high },
497
- };
498
- }
499
- /**
500
- * 検索の値を、書き込み側(generateShadowRecords)と同じ形に符号化する
501
- *
502
- * 書き込み側と別の実装にしない(数値のオフセット・文字列の切り詰め・日時の正規化がずれると、
503
- * 一致するはずのシャドーに当たらず、結果が黙って空になる)。
504
- *
505
- * @returns encoded: 符号化した値。exact: 符号化で情報が落ちていないか
506
- * (false = 数値の小数の切り捨て、文字列の切り詰め。同じ符号になる別の値がありうる)
507
- */
508
- function encodeValueForShadowSK(value, type, operator) {
509
- const config = getShadowConfig();
510
- if (type === 'number' || typeof value === 'number') {
511
- const num = Number(value);
512
- // シャドーは小数を切り捨てる。整数 2 の検索でも、保存された 2.5 が同じ符号になるので、常に exact = false
513
- return { encoded: formatFieldValue('number', num, config), exact: false };
514
- }
515
- if (type === 'boolean' || typeof value === 'boolean') {
516
- const bool = typeof value === 'boolean' ? value : String(value).toLowerCase() === 'true';
517
- return { encoded: formatFieldValue('boolean', bool, config), exact: true };
518
- }
519
- const str = String(value);
520
- // 日時は、書き込み側と同じ推定で ISO 8601(UTC)に正規化する。
521
- // 前方一致($starts)は途中までの指定がありうるので、正規化しない
522
- if (operator !== '$starts' && (type === 'date' || inferFieldType(str) === 'datetime')) {
523
- return { encoded: formatFieldValue('datetime', str, config), exact: true };
524
- }
525
- const encoded = formatFieldValue('string', str, config);
526
- // 切り詰めの境界(UTF-8 の 1 文字は最大 4 バイト)に届く長さの値は、
527
- // 切り詰められた保存値と同じ符号になりうる
528
- const bytes = new TextEncoder().encode(str).length;
529
- return {
530
- encoded,
531
- exact: encoded === escapeString(str) && bytes < config.stringMaxBytes - 3,
532
- };
533
- }
534
407
  /**
535
408
  * シャドウレコードから本体レコードのIDを抽出する
536
409
  *
@@ -1 +1 @@
1
- {"version":3,"file":"shadowQuery.js","sourceRoot":"","sources":["../../../../src/server/operations/find/shadowQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shadowQuery.js","sourceRoot":"","sources":["../../../../src/server/operations/find/shadowQuery.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,17 @@ export declare function initializeFindConfig(): ShadowConfig;
20
20
  export declare function normalizeFindParams(config: ShadowConfig, resource: string, params: FindParams & {
21
21
  schema?: ResourceSchema;
22
22
  }): NormalizedFindParams;
23
+ /**
24
+ * フィルター条件を解析する
25
+ *
26
+ * 2つの形式をサポート:
27
+ * 1. フィールド名に演算子を含める形式: { "id:$in": ["value1", "value2"] }
28
+ * 2. ネストされたオブジェクト形式: { id: { $in: ["value1", "value2"] } }
29
+ *
30
+ * @param filter - フィルター条件
31
+ * @returns 解析済みフィルター条件の配列
32
+ */
33
+ export declare function parseFilters(filter?: Record<string, unknown>): ParsedFilter[];
23
34
  /**
24
35
  * 最適化可能なフィルター条件を検索する
25
36
  *
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/server/operations/find/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,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,iBAEnC;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,UAAU,GAAG;IAAE,MAAM,CAAC,EAAE,cAAc,CAAA;CAAE,GAC/C,oBAAoB,CAgBtB;AAmED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,YAAY,EAAE,GAC5B,iBAAiB,GAAG,SAAS,CAG/B;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,aAAa,EAAE,YAAY,EAAE,GAC5B,OAAO,CA4ET;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,eAAe,CAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GAAG,IAAI,CAmBpD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/server/operations/find/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,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,iBAEnC;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,UAAU,GAAG;IAAE,MAAM,CAAC,EAAE,cAAc,CAAA;CAAE,GAC/C,oBAAoB,CAgBtB;AAkBD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,EAAE,CAqC7E;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,YAAY,EAAE,GAC5B,iBAAiB,GAAG,SAAS,CAG/B;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,aAAa,EAAE,YAAY,EAAE,GAC5B,OAAO,CAqET;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,eAAe,CAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GAAG,IAAI,CAmBpD"}
@@ -64,7 +64,7 @@ function withInferredType(parsed, fieldKey, value) {
64
64
  * @param filter - フィルター条件
65
65
  * @returns 解析済みフィルター条件の配列
66
66
  */
67
- function parseFilters(filter) {
67
+ export function parseFilters(filter) {
68
68
  const parsedFilters = [];
69
69
  if (!filter || Object.keys(filter).length === 0) {
70
70
  return parsedFilters;
@@ -164,11 +164,6 @@ export function matchesAllFilters(record, parsedFilters) {
164
164
  return (typeof recordValue === 'string' &&
165
165
  typeof filterValue === 'string' &&
166
166
  recordValue.includes(filterValue));
167
- case '$regex':
168
- // $regexは部分一致として扱う($containsと同じ動作)
169
- return (typeof recordValue === 'string' &&
170
- typeof filterValue === 'string' &&
171
- recordValue.includes(filterValue));
172
167
  case '$exists':
173
168
  return filterValue
174
169
  ? recordValue !== undefined && recordValue !== null
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/server/operations/find/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/server/operations/find/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,mBAAmB,IAAI,2BAA2B,EAClD,aAAa,IAAI,qBAAqB,GACvC,MAAM,2BAA2B,CAAC;AAGnC,MAAM,MAAM,GAAG,YAAY,CAAC;IAC1B,OAAO,EAAE,YAAY;IACrB,KAAK,EAAG,OAAO,CAAC,GAAG,CAAC,SAAiD,IAAI,MAAM;CAChF,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,eAAe,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAoB,EACpB,QAAgB,EAChB,MAAgD;IAEhD,YAAY;IACZ,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAElE,iBAAiB;IACjB,MAAM,UAAU,GAAG,2BAA2B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAElE,aAAa;IACb,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAElD,OAAO;QACL,IAAI;QACJ,UAAU;QACV,aAAa;QACb,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CACvB,MAA8B,EAC9B,QAAgB,EAChB,KAAc;IAEd,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACpE,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACtE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAC,MAAgC;IAC3D,MAAM,aAAa,GAAmB,EAAE,CAAC;IAEzC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,+BAA+B;YAC/B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChE,2CAA2C;gBAC3C,KAAK,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9D,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC;oBAC3D,aAAa,CAAC,IAAI,CAAC;wBACjB,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC;wBACzD,KAAK,EAAE,aAAa;qBACrB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,8DAA8D;gBAC9D,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAC1C,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE;gBAC1C,QAAQ;gBACR,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,MAAM,IAAI,kBAAkB,CAAC,gCAAgC,QAAQ,EAAE,EAAE;gBACvE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAiB,EACjB,aAA6B;IAE7B,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CACxC,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA+B,EAC/B,aAA6B;IAE7B,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE;QACpC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;QAC1C,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;QAEjC,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,KAAK;gBACR,OAAO,WAAW,KAAK,WAAW,CAAC;YACrC,KAAK,KAAK;gBACR,OAAO,WAAW,KAAK,WAAW,CAAC;YACrC,KAAK,KAAK;gBACR,OAAO,CACL,WAAW,IAAI,IAAI;oBACnB,OAAO,WAAW,KAAK,OAAO,WAAW;oBACzC,CAAC,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,CAAC;oBACpE,WAAW,GAAI,WAA+B,CAC/C,CAAC;YACJ,KAAK,MAAM;gBACT,OAAO,CACL,WAAW,IAAI,IAAI;oBACnB,OAAO,WAAW,KAAK,OAAO,WAAW;oBACzC,CAAC,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,CAAC;oBACpE,WAAW,IAAK,WAA+B,CAChD,CAAC;YACJ,KAAK,KAAK;gBACR,OAAO,CACL,WAAW,IAAI,IAAI;oBACnB,OAAO,WAAW,KAAK,OAAO,WAAW;oBACzC,CAAC,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,CAAC;oBACpE,WAAW,GAAI,WAA+B,CAC/C,CAAC;YACJ,KAAK,MAAM;gBACT,OAAO,CACL,WAAW,IAAI,IAAI;oBACnB,OAAO,WAAW,KAAK,OAAO,WAAW;oBACzC,CAAC,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,CAAC;oBACpE,WAAW,IAAK,WAA+B,CAChD,CAAC;YACJ,KAAK,KAAK;gBACR,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACzE,KAAK,MAAM;gBACT,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC1E,KAAK,SAAS;gBACZ,OAAO,CACL,OAAO,WAAW,KAAK,QAAQ;oBAC/B,OAAO,WAAW,KAAK,QAAQ;oBAC/B,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CACpC,CAAC;YACJ,KAAK,OAAO;gBACV,OAAO,CACL,OAAO,WAAW,KAAK,QAAQ;oBAC/B,OAAO,WAAW,KAAK,QAAQ;oBAC/B,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAClC,CAAC;YACJ,KAAK,WAAW;gBACd,OAAO,CACL,OAAO,WAAW,KAAK,QAAQ;oBAC/B,OAAO,WAAW,KAAK,QAAQ;oBAC/B,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAClC,CAAC;YACJ,KAAK,SAAS;gBACZ,OAAO,WAAW;oBAChB,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI;oBACnD,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,CAAC;YACxD;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAgC;IAEhC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,4BAA4B;QAC5B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,MAAM,SAAS,GAAI,KAAiC,CAAC,KAAK,CAAC;YAC3D,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC/C,OAAO;oBACL,SAAS;oBACT,SAAS,EAAE,SAAsB;iBAClC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"findMany.d.ts","sourceRoot":"","sources":["../../../src/server/operations/findMany.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOlE;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,CA4DzB"}
1
+ {"version":3,"file":"findMany.d.ts","sourceRoot":"","sources":["../../../src/server/operations/findMany.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAQlE;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,CA8DzB"}
@@ -8,6 +8,7 @@ import { createLogger } from '../../shared/index.js';
8
8
  import { generateMainRecordSK } from '../shadow/index.js';
9
9
  import { batchGetAll } from '../utils/batchGet.js';
10
10
  import { extractCleanRecord } from '../utils/dynamodb.js';
11
+ import { conditionMatcher } from '../utils/idFilter.js';
11
12
  import { findAllByFilter } from './findAll.js';
12
13
  const logger = createLogger({ service: 'records-lambda' });
13
14
  /**
@@ -38,7 +39,9 @@ export async function handleFindMany(resource, params, requestId) {
38
39
  // BatchGetItemでレコードを取得(ConsistentRead=true。100件ごとに分割し、UnprocessedKeys は再試行する)
39
40
  const items = await batchGetAll(ids.map((id) => ({ PK: resource, SK: generateMainRecordSK(id) })), { consistentRead: true, requestId });
40
41
  // data属性から__shadowKeysを除外
41
- const records = items.map((item) => extractCleanRecord(item));
42
+ // id 以外の条件(condition)は、引いたレコードに対してここで確かめる(一致しなければ「無い」)
43
+ const matches = conditionMatcher(params.condition);
44
+ const records = items.map((item) => extractCleanRecord(item)).filter(matches);
42
45
  logger.info('findMany by ids succeeded', {
43
46
  requestId,
44
47
  resource,
@@ -1 +1 @@
1
- {"version":3,"file":"findMany.js","sourceRoot":"","sources":["../../../src/server/operations/findMany.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAE3D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,MAAsB,EACtB,SAAiB;IAEjB,kCAAkC;IAClC,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;QACpB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;QAEvB,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE;YACxC,SAAS;YACT,QAAQ;YACR,KAAK,EAAE,GAAG,CAAC,MAAM;SAClB,CAAC,CAAC;QAEH,iBAAiB;QACjB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,8EAA8E;QAC9E,MAAM,KAAK,GAAG,MAAM,WAAW,CAC7B,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,SAAS,EAAE,CACpC,CAAC;QAEF,0BAA0B;QAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9D,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;YACvC,SAAS;YACT,QAAQ;YACR,SAAS,EAAE,GAAG,CAAC,MAAM;YACrB,KAAK,EAAE,OAAO,CAAC,MAAM;SACtB,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,2BAA2B;IAC3B,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAE1B,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;YAC3C,SAAS;YACT,QAAQ;YACR,MAAM;SACP,CAAC,CAAC;QAEH,0CAA0C;QAC1C,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,MAAiC,EAAE,SAAS,CAAC,CAAC;QAE5F,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;YAC1C,SAAS;YACT,QAAQ;YACR,MAAM;YACN,KAAK,EAAE,KAAK,CAAC,MAAM;SACpB,CAAC,CAAC;QAEH,OAAO,KAAuB,CAAC;IACjC,CAAC;IAED,wCAAwC;IACxC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"findMany.js","sourceRoot":"","sources":["../../../src/server/operations/findMany.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAE3D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,MAAsB,EACtB,SAAiB;IAEjB,kCAAkC;IAClC,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;QACpB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;QAEvB,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE;YACxC,SAAS;YACT,QAAQ;YACR,KAAK,EAAE,GAAG,CAAC,MAAM;SAClB,CAAC,CAAC;QAEH,iBAAiB;QACjB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,8EAA8E;QAC9E,MAAM,KAAK,GAAG,MAAM,WAAW,CAC7B,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,SAAS,EAAE,CACpC,CAAC;QAEF,0BAA0B;QAC1B,uDAAuD;QACvD,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE9E,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;YACvC,SAAS;YACT,QAAQ;YACR,SAAS,EAAE,GAAG,CAAC,MAAM;YACrB,KAAK,EAAE,OAAO,CAAC,MAAM;SACtB,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,2BAA2B;IAC3B,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAE1B,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;YAC3C,SAAS;YACT,QAAQ;YACR,MAAM;SACP,CAAC,CAAC;QAEH,0CAA0C;QAC1C,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,MAAiC,EAAE,SAAS,CAAC,CAAC;QAE5F,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;YAC1C,SAAS;YACT,QAAQ;YACR,MAAM;YACN,KAAK,EAAE,KAAK,CAAC,MAAM;SACpB,CAAC,CAAC;QAEH,OAAO,KAAuB,CAAC;IACjC,CAAC;IAED,wCAAwC;IACxC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAC5D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"findOne.d.ts","sourceRoot":"","sources":["../../../src/server/operations/findOne.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKhE;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC,CA2DxB"}
1
+ {"version":3,"file":"findOne.d.ts","sourceRoot":"","sources":["../../../src/server/operations/findOne.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKhE;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC,CA+DxB"}