@exabugs/dynamodb-client 1.3.28 → 1.3.30
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 +26 -0
- package/dist/integrations/react-admin/components/ReferenceManyToManyField.d.ts +3 -0
- package/dist/integrations/react-admin/components/ReferenceManyToManyField.d.ts.map +1 -1
- package/dist/integrations/react-admin/components/ReferenceManyToManyField.js +26 -4
- package/dist/integrations/react-admin/components/ReferenceManyToManyField.js.map +1 -1
- package/dist/server/handler.cjs +2647 -1323
- package/dist/server/handler.cjs.map +4 -4
- package/dist/server/operations/deleteMany.d.ts +6 -5
- package/dist/server/operations/deleteMany.d.ts.map +1 -1
- package/dist/server/operations/deleteMany.js +34 -11
- package/dist/server/operations/deleteMany.js.map +1 -1
- package/dist/server/operations/deleteOne.d.ts +4 -3
- package/dist/server/operations/deleteOne.d.ts.map +1 -1
- package/dist/server/operations/deleteOne.js +38 -13
- package/dist/server/operations/deleteOne.js.map +1 -1
- package/dist/server/operations/find/utils.d.ts.map +1 -1
- package/dist/server/operations/find/utils.js +5 -0
- package/dist/server/operations/find/utils.js.map +1 -1
- package/dist/server/operations/updateMany.d.ts +8 -7
- package/dist/server/operations/updateMany.d.ts.map +1 -1
- package/dist/server/operations/updateMany.js +37 -13
- package/dist/server/operations/updateMany.js.map +1 -1
- package/dist/server/operations/updateOne.d.ts +1 -1
- package/dist/server/operations/updateOne.d.ts.map +1 -1
- package/dist/server/operations/updateOne.js +73 -24
- package/dist/server/operations/updateOne.js.map +1 -1
- package/dist/server/types.d.ts +26 -16
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/utils/filter.d.ts +1 -1
- package/dist/server/utils/filter.d.ts.map +1 -1
- package/dist/server/utils/filter.js +1 -0
- package/dist/server/utils/filter.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.3.30] - 2026-01-08
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **filterによるレコード特定**: `updateOne`、`updateMany`、`deleteOne`、`deleteMany`操作で`filter`を使用したレコード特定をサポート
|
|
15
|
+
- `updateOne({ filter: { token: 'xxx' } }, ...)`のように任意のフィールドでレコードを特定可能
|
|
16
|
+
- `id`または`filter`のどちらか一方を必須とするUnion型を導入(DRY原則に基づく型定義の改善)
|
|
17
|
+
- デバイストークンの一意性制約など、ID以外のフィールドでのupsert操作に対応
|
|
18
|
+
- 既存の`id`/`ids`による操作は完全に後方互換
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- **型定義の改善**: `SingleRecordSelector`と`MultipleRecordsSelector`型を導入し、共通部分を抽出
|
|
23
|
+
- `UpdateOneParams`、`DeleteOneParams`: `{ id: string } | { filter: Record<string, unknown> }`
|
|
24
|
+
- `UpdateManyParams`、`DeleteManyParams`: `{ ids: string[] } | { filter: Record<string, unknown> }`
|
|
25
|
+
|
|
26
|
+
## [1.3.29] - 2026-01-08
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
|
|
30
|
+
- **React-Admin多対多関係コンポーネント**: `ReferenceManyToManyField`に`_through`フィールドを追加
|
|
31
|
+
- 各ターゲットレコードに中間テーブルのデータを`_through`フィールドとして追加
|
|
32
|
+
- 中間テーブルのフィールドに直接アクセス可能(例: `source="_through.status"`)
|
|
33
|
+
- N+1問題を解消し、パフォーマンスを向上
|
|
34
|
+
- 使用例: `<StatusField source="_through.status" label="管理者ステータス" />`
|
|
35
|
+
|
|
10
36
|
## [1.3.28] - 2026-01-07
|
|
11
37
|
|
|
12
38
|
### Added
|
|
@@ -5,6 +5,9 @@ import type { ReferenceManyToManyFieldProps } from '../types.js';
|
|
|
5
5
|
*
|
|
6
6
|
* 多対多関係を表示するためのフィールドコンポーネント。
|
|
7
7
|
* 中間テーブルを経由して関連レコードを取得し、子コンポーネントに渡します。
|
|
8
|
+
*
|
|
9
|
+
* 各ターゲットレコードには `_through` フィールドが追加され、
|
|
10
|
+
* 中間テーブルのデータにアクセスできます。
|
|
8
11
|
*/
|
|
9
12
|
export declare const ReferenceManyToManyField: (props: ReferenceManyToManyFieldProps) => ReactElement;
|
|
10
13
|
//# sourceMappingURL=ReferenceManyToManyField.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReferenceManyToManyField.d.ts","sourceRoot":"","sources":["../../../../src/integrations/react-admin/components/ReferenceManyToManyField.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReferenceManyToManyField.d.ts","sourceRoot":"","sources":["../../../../src/integrations/react-admin/components/ReferenceManyToManyField.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAmBjE;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,GAAI,OAAO,6BAA6B,KAAG,YA2K/E,CAAC"}
|
|
@@ -15,6 +15,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
15
15
|
* >
|
|
16
16
|
* <Datagrid>
|
|
17
17
|
* <TextField source="nickname" />
|
|
18
|
+
* <StatusField source="_through.status" label="管理者ステータス" />
|
|
18
19
|
* </Datagrid>
|
|
19
20
|
* </ReferenceManyToManyField>
|
|
20
21
|
* ```
|
|
@@ -26,6 +27,9 @@ import { ListContextProvider, useDataProvider, useRecordContext } from 'react-ad
|
|
|
26
27
|
*
|
|
27
28
|
* 多対多関係を表示するためのフィールドコンポーネント。
|
|
28
29
|
* 中間テーブルを経由して関連レコードを取得し、子コンポーネントに渡します。
|
|
30
|
+
*
|
|
31
|
+
* 各ターゲットレコードには `_through` フィールドが追加され、
|
|
32
|
+
* 中間テーブルのデータにアクセスできます。
|
|
29
33
|
*/
|
|
30
34
|
export const ReferenceManyToManyField = (props) => {
|
|
31
35
|
const { reference, through, using, source = 'id', children, sort = { field: 'id', order: 'ASC' }, } = props;
|
|
@@ -74,8 +78,18 @@ export const ReferenceManyToManyField = (props) => {
|
|
|
74
78
|
setTotal(0);
|
|
75
79
|
return;
|
|
76
80
|
}
|
|
77
|
-
// 2. ターゲットID
|
|
78
|
-
const targetIds = junctionRecords
|
|
81
|
+
// 2. ターゲットIDを抽出し、中間レコードとのマッピングを作成
|
|
82
|
+
const targetIds = junctionRecords
|
|
83
|
+
.map((r) => r[targetKey])
|
|
84
|
+
.filter(Boolean);
|
|
85
|
+
// 中間レコードをターゲットIDでマッピング
|
|
86
|
+
const junctionMap = new Map();
|
|
87
|
+
junctionRecords.forEach((junction) => {
|
|
88
|
+
const targetId = junction[targetKey];
|
|
89
|
+
if (targetId) {
|
|
90
|
+
junctionMap.set(String(targetId), junction);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
79
93
|
if (targetIds.length === 0) {
|
|
80
94
|
setData([]);
|
|
81
95
|
setTotal(0);
|
|
@@ -85,8 +99,16 @@ export const ReferenceManyToManyField = (props) => {
|
|
|
85
99
|
const { data: targetRecords } = await dataProvider.getMany(reference, {
|
|
86
100
|
ids: targetIds,
|
|
87
101
|
});
|
|
88
|
-
|
|
89
|
-
|
|
102
|
+
// 4. ターゲットレコードに中間テーブルのデータを追加
|
|
103
|
+
const enrichedRecords = targetRecords.map((targetRecord) => {
|
|
104
|
+
const junction = junctionMap.get(String(targetRecord.id));
|
|
105
|
+
return {
|
|
106
|
+
...targetRecord,
|
|
107
|
+
_through: junction || null, // 中間テーブルのデータを _through フィールドに追加
|
|
108
|
+
};
|
|
109
|
+
});
|
|
110
|
+
setData(enrichedRecords);
|
|
111
|
+
setTotal(enrichedRecords.length);
|
|
90
112
|
}
|
|
91
113
|
catch (err) {
|
|
92
114
|
// リクエストがキャンセルされた場合はエラーを無視
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReferenceManyToManyField.js","sourceRoot":"","sources":["../../../../src/integrations/react-admin/components/ReferenceManyToManyField.tsx"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"ReferenceManyToManyField.js","sourceRoot":"","sources":["../../../../src/integrations/react-admin/components/ReferenceManyToManyField.tsx"],"names":[],"mappings":"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"}
|