@exabugs/dynamodb-client 0.9.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +82 -0
- package/dist/integrations/react-admin/dataProvider.js +5 -5
- package/dist/integrations/react-admin/dataProvider.js.map +1 -1
- package/dist/scripts/utils/repairUtils.js +1 -1
- package/dist/scripts/utils/repairUtils.js.map +1 -1
- package/dist/server/handler.cjs +7 -7
- package/dist/server/handler.cjs.map +2 -2
- package/dist/server/operations/parameterConverter.d.ts +2 -2
- package/dist/server/operations/parameterConverter.d.ts.map +1 -1
- package/dist/server/operations/parameterConverter.js +13 -7
- package/dist/server/operations/parameterConverter.js.map +1 -1
- package/dist/server/query/converter.js +28 -17
- package/dist/server/query/converter.js.map +1 -1
- package/dist/shared/types/index.d.ts +31 -31
- package/dist/shared/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -21,7 +21,7 @@ interface MongoFindParams {
|
|
|
21
21
|
interface MongoFilterParams {
|
|
22
22
|
filter?: {
|
|
23
23
|
id?: string | {
|
|
24
|
-
in?: string[];
|
|
24
|
+
$in?: string[];
|
|
25
25
|
};
|
|
26
26
|
};
|
|
27
27
|
}
|
|
@@ -30,7 +30,7 @@ interface MongoFilterParams {
|
|
|
30
30
|
*/
|
|
31
31
|
interface MongoUpdateParams extends MongoFilterParams {
|
|
32
32
|
update?: {
|
|
33
|
-
set?: Record<string, unknown>;
|
|
33
|
+
$set?: Record<string, unknown>;
|
|
34
34
|
} | Record<string, unknown>;
|
|
35
35
|
options?: {
|
|
36
36
|
upsert?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameterConverter.d.ts","sourceRoot":"","sources":["../../../src/server/operations/parameterConverter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EAChB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,UAAU,iBAAiB;IACzB,MAAM,CAAC,EAAE;QACP,EAAE,CAAC,EAAE,MAAM,GAAG;YAAE,
|
|
1
|
+
{"version":3,"file":"parameterConverter.d.ts","sourceRoot":"","sources":["../../../src/server/operations/parameterConverter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EAChB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,UAAU,iBAAiB;IACzB,MAAM,CAAC,EAAE;QACP,EAAE,CAAC,EAAE,MAAM,GAAG;YAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;KAClC,CAAC;CACH;AAED;;GAEG;AACH,UAAU,iBAAkB,SAAQ,iBAAiB;IACnD,MAAM,CAAC,EACH;QACE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GACD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,UAAU,oBAAoB;IAC5B,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC5C;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,eAAe,GAAG,UAAU,CAsB1E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,iBAAiB,GAAG,aAAa,CAMlF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,iBAAiB,GAAG,cAAc,CAOpF;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,mBAAmB,GAAG,eAAe,CAOxF;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,iBAAiB,GAAG,eAAe,CAgBtF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,iBAAiB,GAAG,gBAAgB,CAiBxF;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,iBAAiB,GAAG,eAAe,CAMtF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,iBAAiB,GAAG,gBAAgB,CAOxF;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,oBAAoB,GAAG,gBAAgB,CAO3F"}
|
|
@@ -47,7 +47,9 @@ export function convertFindOneParams(mongoParams) {
|
|
|
47
47
|
*/
|
|
48
48
|
export function convertFindManyParams(mongoParams) {
|
|
49
49
|
const idFilter = mongoParams.filter?.id;
|
|
50
|
-
const ids = typeof idFilter === 'object' && idFilter !== null && 'in' in idFilter
|
|
50
|
+
const ids = typeof idFilter === 'object' && idFilter !== null && '$in' in idFilter
|
|
51
|
+
? idFilter.$in || []
|
|
52
|
+
: [];
|
|
51
53
|
return { ids };
|
|
52
54
|
}
|
|
53
55
|
/**
|
|
@@ -78,8 +80,8 @@ export function convertUpdateOneParams(mongoParams) {
|
|
|
78
80
|
throw new Error('updateOne requires filter.id');
|
|
79
81
|
}
|
|
80
82
|
const updateData = mongoParams.update && typeof mongoParams.update === 'object'
|
|
81
|
-
? 'set' in mongoParams.update
|
|
82
|
-
? mongoParams.update
|
|
83
|
+
? '$set' in mongoParams.update
|
|
84
|
+
? mongoParams.update.$set || {}
|
|
83
85
|
: mongoParams.update
|
|
84
86
|
: {};
|
|
85
87
|
return {
|
|
@@ -96,10 +98,12 @@ export function convertUpdateOneParams(mongoParams) {
|
|
|
96
98
|
*/
|
|
97
99
|
export function convertUpdateManyParams(mongoParams) {
|
|
98
100
|
const idFilter = mongoParams.filter?.id;
|
|
99
|
-
const ids = typeof idFilter === 'object' && idFilter !== null && 'in' in idFilter
|
|
101
|
+
const ids = typeof idFilter === 'object' && idFilter !== null && '$in' in idFilter
|
|
102
|
+
? idFilter.$in || []
|
|
103
|
+
: [];
|
|
100
104
|
const updateData = mongoParams.update && typeof mongoParams.update === 'object'
|
|
101
|
-
? 'set' in mongoParams.update
|
|
102
|
-
? mongoParams.update
|
|
105
|
+
? '$set' in mongoParams.update
|
|
106
|
+
? mongoParams.update.$set || {}
|
|
103
107
|
: mongoParams.update
|
|
104
108
|
: {};
|
|
105
109
|
return {
|
|
@@ -130,7 +134,9 @@ export function convertDeleteOneParams(mongoParams) {
|
|
|
130
134
|
*/
|
|
131
135
|
export function convertDeleteManyParams(mongoParams) {
|
|
132
136
|
const idFilter = mongoParams.filter?.id;
|
|
133
|
-
const ids = typeof idFilter === 'object' && idFilter !== null && 'in' in idFilter
|
|
137
|
+
const ids = typeof idFilter === 'object' && idFilter !== null && '$in' in idFilter
|
|
138
|
+
? idFilter.$in || []
|
|
139
|
+
: [];
|
|
134
140
|
return { ids };
|
|
135
141
|
}
|
|
136
142
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameterConverter.js","sourceRoot":"","sources":["../../../src/server/operations/parameterConverter.ts"],"names":[],"mappings":"AAkEA;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAA4B;IAC5D,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,WAAW,CAAC;IAClD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE3C,MAAM,cAAc,GAAe;QACjC,MAAM;QACN,GAAG,CAAC,IAAI;YACN,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI;YAC9B,IAAI,EAAE;gBACJ,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;aAC1D;SACF,CAAC;QACJ,GAAG,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI;YAC1B,UAAU,EAAE;gBACV,GAAG,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gBAChC,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;aAChC;SACF,CAAC;KACH,CAAC;IAEF,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAA8B;IACjE,MAAM,EAAE,GAAG,OAAO,WAAW,CAAC,MAAM,EAAE,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAA8B;IAClE,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;IACxC,MAAM,GAAG,GACP,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"parameterConverter.js","sourceRoot":"","sources":["../../../src/server/operations/parameterConverter.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,17 +55,17 @@ export function convertFilterToDynamo(collection, filter) {
|
|
|
55
55
|
return { pk: collection, conditions };
|
|
56
56
|
}
|
|
57
57
|
// 論理演算子の処理
|
|
58
|
-
if ('and' in filter && Array.isArray(filter
|
|
58
|
+
if ('$and' in filter && Array.isArray(filter.$and)) {
|
|
59
59
|
// AND条件: 各フィルタを再帰的に変換して結合
|
|
60
|
-
for (const subFilter of filter
|
|
60
|
+
for (const subFilter of filter.$and) {
|
|
61
61
|
const subQuery = convertFilterToDynamo(collection, subFilter);
|
|
62
62
|
conditions.push(...subQuery.conditions);
|
|
63
63
|
}
|
|
64
64
|
logicalOperator = 'AND';
|
|
65
65
|
}
|
|
66
|
-
else if ('or' in filter && Array.isArray(filter
|
|
66
|
+
else if ('$or' in filter && Array.isArray(filter.$or)) {
|
|
67
67
|
// OR条件: 各フィルタを再帰的に変換して結合
|
|
68
|
-
for (const subFilter of filter
|
|
68
|
+
for (const subFilter of filter.$or) {
|
|
69
69
|
const subQuery = convertFilterToDynamo(collection, subFilter);
|
|
70
70
|
conditions.push(...subQuery.conditions);
|
|
71
71
|
}
|
|
@@ -74,7 +74,7 @@ export function convertFilterToDynamo(collection, filter) {
|
|
|
74
74
|
// 通常のフィールド条件を処理
|
|
75
75
|
for (const [key, value] of Object.entries(filter)) {
|
|
76
76
|
// 論理演算子はスキップ
|
|
77
|
-
if (key === 'and' || key === 'or') {
|
|
77
|
+
if (key === '$and' || key === '$or') {
|
|
78
78
|
continue;
|
|
79
79
|
}
|
|
80
80
|
// 値がnullまたはundefinedの場合はスキップ
|
|
@@ -120,7 +120,18 @@ function isFilterOperators(value) {
|
|
|
120
120
|
if (typeof value !== 'object' || value === null) {
|
|
121
121
|
return false;
|
|
122
122
|
}
|
|
123
|
-
const validOperators = [
|
|
123
|
+
const validOperators = [
|
|
124
|
+
'$eq',
|
|
125
|
+
'$ne',
|
|
126
|
+
'$gt',
|
|
127
|
+
'$gte',
|
|
128
|
+
'$lt',
|
|
129
|
+
'$lte',
|
|
130
|
+
'$in',
|
|
131
|
+
'$nin',
|
|
132
|
+
'$exists',
|
|
133
|
+
'$regex',
|
|
134
|
+
];
|
|
124
135
|
const keys = Object.keys(value);
|
|
125
136
|
// 少なくとも1つの有効な演算子キーを持つ場合はFilterOperatorsとみなす
|
|
126
137
|
return keys.some((key) => validOperators.includes(key));
|
|
@@ -128,30 +139,30 @@ function isFilterOperators(value) {
|
|
|
128
139
|
/**
|
|
129
140
|
* MongoDB風の演算子をDynamoDB演算子にマッピングする
|
|
130
141
|
*
|
|
131
|
-
* @param operator - MongoDB
|
|
142
|
+
* @param operator - MongoDB風の演算子($プレフィックス付き)
|
|
132
143
|
* @returns DynamoDB演算子
|
|
133
144
|
*/
|
|
134
145
|
function mapOperatorToDynamo(operator) {
|
|
135
146
|
switch (operator) {
|
|
136
|
-
case 'eq':
|
|
147
|
+
case '$eq':
|
|
137
148
|
return 'eq';
|
|
138
|
-
case 'ne':
|
|
149
|
+
case '$ne':
|
|
139
150
|
return 'ne';
|
|
140
|
-
case 'gt':
|
|
151
|
+
case '$gt':
|
|
141
152
|
return 'gt';
|
|
142
|
-
case 'gte':
|
|
153
|
+
case '$gte':
|
|
143
154
|
return 'gte';
|
|
144
|
-
case 'lt':
|
|
155
|
+
case '$lt':
|
|
145
156
|
return 'lt';
|
|
146
|
-
case 'lte':
|
|
157
|
+
case '$lte':
|
|
147
158
|
return 'lte';
|
|
148
|
-
case 'in':
|
|
159
|
+
case '$in':
|
|
149
160
|
return 'in';
|
|
150
|
-
case 'nin':
|
|
161
|
+
case '$nin':
|
|
151
162
|
return 'nin';
|
|
152
|
-
case 'exists':
|
|
163
|
+
case '$exists':
|
|
153
164
|
return 'exists';
|
|
154
|
-
case 'regex':
|
|
165
|
+
case '$regex':
|
|
155
166
|
// 正規表現は部分一致(contains)として扱う(簡易実装)
|
|
156
167
|
return 'contains';
|
|
157
168
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../src/server/query/converter.ts"],"names":[],"mappings":"AAiDA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,MAAM,UAAU,qBAAqB,CAAU,UAAkB,EAAE,MAAiB;IAClF,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,IAAI,eAAe,GAAiB,KAAK,CAAC;IAE1C,YAAY;IACZ,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IACxC,CAAC;IAED,WAAW;IACX,IAAI,
|
|
1
|
+
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../src/server/query/converter.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,32 +5,32 @@
|
|
|
5
5
|
* MongoDB風のクエリ演算子、更新演算子、結果型などを提供します。
|
|
6
6
|
*/
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* フィルタ演算子($プレフィックス付き - MongoDB互換)
|
|
9
9
|
*
|
|
10
10
|
* MongoDB風のクエリ演算子を提供します。
|
|
11
|
-
*
|
|
11
|
+
* すべての演算子は$プレフィックス付きで使用します(MongoDB互換)。
|
|
12
12
|
*/
|
|
13
13
|
export interface FilterOperators<T> {
|
|
14
14
|
/** 等しい */
|
|
15
|
-
eq?: T;
|
|
15
|
+
$eq?: T;
|
|
16
16
|
/** 等しくない */
|
|
17
|
-
ne?: T;
|
|
17
|
+
$ne?: T;
|
|
18
18
|
/** より大きい */
|
|
19
|
-
gt?: T;
|
|
19
|
+
$gt?: T;
|
|
20
20
|
/** 以上 */
|
|
21
|
-
gte?: T;
|
|
21
|
+
$gte?: T;
|
|
22
22
|
/** より小さい */
|
|
23
|
-
lt?: T;
|
|
23
|
+
$lt?: T;
|
|
24
24
|
/** 以下 */
|
|
25
|
-
lte?: T;
|
|
25
|
+
$lte?: T;
|
|
26
26
|
/** いずれかに一致 */
|
|
27
|
-
in?: T[];
|
|
27
|
+
$in?: T[];
|
|
28
28
|
/** いずれにも一致しない */
|
|
29
|
-
nin?: T[];
|
|
29
|
+
$nin?: T[];
|
|
30
30
|
/** フィールドの存在チェック */
|
|
31
|
-
exists?: boolean;
|
|
31
|
+
$exists?: boolean;
|
|
32
32
|
/** 正規表現マッチ */
|
|
33
|
-
regex?: string | RegExp;
|
|
33
|
+
$regex?: string | RegExp;
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* フィルタ定義
|
|
@@ -43,17 +43,17 @@ export interface FilterOperators<T> {
|
|
|
43
43
|
* // 直接値を指定
|
|
44
44
|
* const filter: Filter<Product> = { status: 'active' };
|
|
45
45
|
*
|
|
46
|
-
* //
|
|
46
|
+
* // 演算子を使用($プレフィックス付き)
|
|
47
47
|
* const filter: Filter<Product> = {
|
|
48
|
-
* price: { gte: 1000, lte: 5000 },
|
|
49
|
-
* status: { in: ['active', 'pending'] }
|
|
48
|
+
* price: { $gte: 1000, $lte: 5000 },
|
|
49
|
+
* status: { $in: ['active', 'pending'] }
|
|
50
50
|
* };
|
|
51
51
|
*
|
|
52
|
-
* //
|
|
52
|
+
* // 論理演算子を使用($プレフィックス付き)
|
|
53
53
|
* const filter: Filter<Product> = {
|
|
54
|
-
* or: [
|
|
54
|
+
* $or: [
|
|
55
55
|
* { status: 'active' },
|
|
56
|
-
* { priority: { gte: 5 } }
|
|
56
|
+
* { priority: { $gte: 5 } }
|
|
57
57
|
* ]
|
|
58
58
|
* };
|
|
59
59
|
* ```
|
|
@@ -62,48 +62,48 @@ export type Filter<T> = {
|
|
|
62
62
|
[P in keyof T]?: T[P] | FilterOperators<T[P]>;
|
|
63
63
|
} & {
|
|
64
64
|
/** AND条件(すべての条件を満たす) */
|
|
65
|
-
and?: Filter<T>[];
|
|
65
|
+
$and?: Filter<T>[];
|
|
66
66
|
/** OR条件(いずれかの条件を満たす) */
|
|
67
|
-
or?: Filter<T>[];
|
|
67
|
+
$or?: Filter<T>[];
|
|
68
68
|
};
|
|
69
69
|
/**
|
|
70
|
-
*
|
|
70
|
+
* 更新演算子($プレフィックス付き - MongoDB互換)
|
|
71
71
|
*
|
|
72
72
|
* MongoDB風の更新演算子を提供します。
|
|
73
|
-
*
|
|
73
|
+
* すべての演算子は$プレフィックス付きで使用します(MongoDB互換)。
|
|
74
74
|
*
|
|
75
75
|
* @example
|
|
76
76
|
* ```typescript
|
|
77
77
|
* // フィールドを設定
|
|
78
78
|
* const update: UpdateOperators<Product> = {
|
|
79
|
-
* set: { status: 'published', updatedAt: new Date().toISOString() }
|
|
79
|
+
* $set: { status: 'published', updatedAt: new Date().toISOString() }
|
|
80
80
|
* };
|
|
81
81
|
*
|
|
82
82
|
* // フィールドを削除
|
|
83
83
|
* const update: UpdateOperators<Product> = {
|
|
84
|
-
* unset: ['description', 'tags']
|
|
84
|
+
* $unset: ['description', 'tags']
|
|
85
85
|
* };
|
|
86
86
|
*
|
|
87
87
|
* // 数値をインクリメント
|
|
88
88
|
* const update: UpdateOperators<Product> = {
|
|
89
|
-
* inc: { stock: -1, viewCount: 1 }
|
|
89
|
+
* $inc: { stock: -1, viewCount: 1 }
|
|
90
90
|
* };
|
|
91
91
|
*
|
|
92
92
|
* // 複数の演算子を組み合わせ
|
|
93
93
|
* const update: UpdateOperators<Product> = {
|
|
94
|
-
* set: { status: 'published' },
|
|
95
|
-
* inc: { viewCount: 1 },
|
|
96
|
-
* unset: ['draft']
|
|
94
|
+
* $set: { status: 'published' },
|
|
95
|
+
* $inc: { viewCount: 1 },
|
|
96
|
+
* $unset: ['draft']
|
|
97
97
|
* };
|
|
98
98
|
* ```
|
|
99
99
|
*/
|
|
100
100
|
export interface UpdateOperators<T> {
|
|
101
101
|
/** フィールドを設定 */
|
|
102
|
-
set?: Partial<T>;
|
|
102
|
+
$set?: Partial<T>;
|
|
103
103
|
/** フィールドを削除 */
|
|
104
|
-
unset?: (keyof T)[];
|
|
104
|
+
$unset?: (keyof T)[];
|
|
105
105
|
/** 数値をインクリメント(負の値でデクリメント) */
|
|
106
|
-
inc?: Partial<Record<keyof T, number>>;
|
|
106
|
+
$inc?: Partial<Record<keyof T, number>>;
|
|
107
107
|
}
|
|
108
108
|
/**
|
|
109
109
|
* 検索オプション
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,UAAU;IACV,
|
|
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": "1.0.0",
|
|
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",
|