@datocms/cma-client 5.1.11 → 5.1.13
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/README.md +313 -178
- package/dist/cjs/fieldTypes/file.js +6 -6
- package/dist/cjs/fieldTypes/gallery.js +7 -7
- package/dist/cjs/fieldTypes/rich_text.js +14 -12
- package/dist/cjs/fieldTypes/rich_text.js.map +1 -1
- package/dist/cjs/fieldTypes/schema.js +3 -0
- package/dist/cjs/fieldTypes/schema.js.map +1 -0
- package/dist/cjs/fieldTypes/single_block.js +13 -12
- package/dist/cjs/fieldTypes/single_block.js.map +1 -1
- package/dist/cjs/fieldTypes/structured_text.js +13 -12
- package/dist/cjs/fieldTypes/structured_text.js.map +1 -1
- package/dist/cjs/generated/Client.js +1 -1
- package/dist/cjs/generated/resources/Item.js.map +1 -1
- package/dist/cjs/generated/resources/ScheduledPublication.js.map +1 -1
- package/dist/cjs/generated/resources/ScheduledUnpublishing.js.map +1 -1
- package/dist/cjs/generated/resources/Upload.js.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utilities/buildBlockRecord.js +1 -46
- package/dist/cjs/utilities/buildBlockRecord.js.map +1 -1
- package/dist/cjs/utilities/duplicateBlockRecord.js +50 -0
- package/dist/cjs/utilities/duplicateBlockRecord.js.map +1 -0
- package/dist/cjs/utilities/inspectItem.js +50 -20
- package/dist/cjs/utilities/inspectItem.js.map +1 -1
- package/dist/cjs/utilities/nonRecursiveBlocks.js +1 -170
- package/dist/cjs/utilities/nonRecursiveBlocks.js.map +1 -1
- package/dist/cjs/utilities/recursiveBlocks.js +52 -112
- package/dist/cjs/utilities/recursiveBlocks.js.map +1 -1
- package/dist/esm/fieldTypes/file.d.ts +3 -3
- package/dist/esm/fieldTypes/file.js +3 -3
- package/dist/esm/fieldTypes/gallery.d.ts +5 -5
- package/dist/esm/fieldTypes/gallery.js +5 -5
- package/dist/esm/fieldTypes/rich_text.d.ts +8 -9
- package/dist/esm/fieldTypes/rich_text.js +9 -7
- package/dist/esm/fieldTypes/rich_text.js.map +1 -1
- package/dist/esm/fieldTypes/schema.d.ts +59 -0
- package/dist/esm/fieldTypes/schema.js +2 -0
- package/dist/esm/fieldTypes/schema.js.map +1 -0
- package/dist/esm/fieldTypes/single_block.d.ts +30 -15
- package/dist/esm/fieldTypes/single_block.js +8 -7
- package/dist/esm/fieldTypes/single_block.js.map +1 -1
- package/dist/esm/fieldTypes/structured_text.d.ts +14 -15
- package/dist/esm/fieldTypes/structured_text.js +8 -7
- package/dist/esm/fieldTypes/structured_text.js.map +1 -1
- package/dist/esm/generated/ApiTypes.d.ts +94 -980
- package/dist/esm/generated/Client.js +1 -1
- package/dist/esm/generated/RawApiTypes.d.ts +160 -999
- package/dist/esm/generated/resources/Field.d.ts +300 -300
- package/dist/esm/generated/resources/Item.d.ts +34 -34
- package/dist/esm/generated/resources/Item.js.map +1 -1
- package/dist/esm/generated/resources/ItemVersion.d.ts +3 -1
- package/dist/esm/generated/resources/ScheduledPublication.d.ts +3 -3
- package/dist/esm/generated/resources/ScheduledPublication.js.map +1 -1
- package/dist/esm/generated/resources/ScheduledUnpublishing.d.ts +3 -3
- package/dist/esm/generated/resources/ScheduledUnpublishing.js.map +1 -1
- package/dist/esm/generated/resources/Upload.d.ts +6 -6
- package/dist/esm/generated/resources/Upload.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utilities/buildBlockRecord.d.ts +11 -5
- package/dist/esm/utilities/buildBlockRecord.js +0 -44
- package/dist/esm/utilities/buildBlockRecord.js.map +1 -1
- package/dist/esm/utilities/duplicateBlockRecord.d.ts +6 -0
- package/dist/esm/utilities/duplicateBlockRecord.js +46 -0
- package/dist/esm/utilities/duplicateBlockRecord.js.map +1 -0
- package/dist/esm/utilities/inspectItem.d.ts +3 -3
- package/dist/esm/utilities/inspectItem.js +28 -21
- package/dist/esm/utilities/inspectItem.js.map +1 -1
- package/dist/esm/utilities/itemDefinition.d.ts +25 -27
- package/dist/esm/utilities/nonRecursiveBlocks.d.ts +10 -75
- package/dist/esm/utilities/nonRecursiveBlocks.js +1 -164
- package/dist/esm/utilities/nonRecursiveBlocks.js.map +1 -1
- package/dist/esm/utilities/recursiveBlocks.d.ts +53 -23
- package/dist/esm/utilities/recursiveBlocks.js +52 -112
- package/dist/esm/utilities/recursiveBlocks.js.map +1 -1
- package/dist/types/fieldTypes/file.d.ts +3 -3
- package/dist/types/fieldTypes/gallery.d.ts +5 -5
- package/dist/types/fieldTypes/rich_text.d.ts +8 -9
- package/dist/types/fieldTypes/schema.d.ts +59 -0
- package/dist/types/fieldTypes/single_block.d.ts +30 -15
- package/dist/types/fieldTypes/structured_text.d.ts +14 -15
- package/dist/types/generated/ApiTypes.d.ts +94 -980
- package/dist/types/generated/RawApiTypes.d.ts +160 -999
- package/dist/types/generated/resources/Field.d.ts +300 -300
- package/dist/types/generated/resources/Item.d.ts +34 -34
- package/dist/types/generated/resources/ItemVersion.d.ts +3 -1
- package/dist/types/generated/resources/ScheduledPublication.d.ts +3 -3
- package/dist/types/generated/resources/ScheduledUnpublishing.d.ts +3 -3
- package/dist/types/generated/resources/Upload.d.ts +6 -6
- package/dist/types/index.d.ts +1 -0
- package/dist/types/utilities/buildBlockRecord.d.ts +11 -5
- package/dist/types/utilities/duplicateBlockRecord.d.ts +6 -0
- package/dist/types/utilities/inspectItem.d.ts +3 -3
- package/dist/types/utilities/itemDefinition.d.ts +25 -27
- package/dist/types/utilities/nonRecursiveBlocks.d.ts +10 -75
- package/dist/types/utilities/recursiveBlocks.d.ts +53 -23
- package/package.json +4 -4
- package/src/fieldTypes/file.ts +6 -6
- package/src/fieldTypes/gallery.ts +10 -10
- package/src/fieldTypes/rich_text.ts +26 -24
- package/src/fieldTypes/schema.ts +657 -0
- package/src/fieldTypes/single_block.ts +61 -38
- package/src/fieldTypes/structured_text.ts +57 -51
- package/src/generated/ApiTypes.ts +221 -1880
- package/src/generated/Client.ts +1 -1
- package/src/generated/RawApiTypes.ts +276 -2113
- package/src/generated/resources/Item.ts +93 -187
- package/src/generated/resources/ScheduledPublication.ts +4 -15
- package/src/generated/resources/ScheduledUnpublishing.ts +4 -15
- package/src/generated/resources/Upload.ts +9 -32
- package/src/index.ts +1 -0
- package/src/utilities/buildBlockRecord.ts +16 -56
- package/src/utilities/duplicateBlockRecord.ts +53 -0
- package/src/utilities/inspectItem.ts +64 -52
- package/src/utilities/itemDefinition.ts +109 -98
- package/src/utilities/nonRecursiveBlocks.ts +25 -279
- package/src/utilities/recursiveBlocks.ts +337 -72
|
@@ -1,30 +1,32 @@
|
|
|
1
1
|
import type {
|
|
2
|
+
BlockInNestedResponse,
|
|
3
|
+
BlockInRequest,
|
|
2
4
|
BooleanFieldValue,
|
|
3
5
|
ColorFieldValue,
|
|
4
6
|
DateFieldValue,
|
|
5
7
|
DateTimeFieldValue,
|
|
6
8
|
FileFieldValue,
|
|
7
|
-
|
|
9
|
+
FileFieldValueInRequest,
|
|
8
10
|
FloatFieldValue,
|
|
9
11
|
GalleryFieldValue,
|
|
10
|
-
|
|
12
|
+
GalleryFieldValueInRequest,
|
|
11
13
|
IntegerFieldValue,
|
|
12
14
|
JsonFieldValue,
|
|
13
15
|
LatLonFieldValue,
|
|
14
16
|
LinkFieldValue,
|
|
15
17
|
LinksFieldValue,
|
|
16
18
|
RichTextFieldValue,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
RichTextFieldValueInNestedResponse,
|
|
20
|
+
RichTextFieldValueInRequest,
|
|
19
21
|
SeoFieldValue,
|
|
20
22
|
SingleBlockFieldValue,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
+
SingleBlockFieldValueInNestedResponse,
|
|
24
|
+
SingleBlockFieldValueInRequest,
|
|
23
25
|
SlugFieldValue,
|
|
24
26
|
StringFieldValue,
|
|
25
27
|
StructuredTextFieldValue,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
StructuredTextFieldValueInNestedResponse,
|
|
29
|
+
StructuredTextFieldValueInRequest,
|
|
28
30
|
TextFieldValue,
|
|
29
31
|
VideoFieldValue,
|
|
30
32
|
} from '../fieldTypes';
|
|
@@ -87,15 +89,6 @@ export type ItemTypeDefinition<
|
|
|
87
89
|
fields: FieldDefinitions;
|
|
88
90
|
};
|
|
89
91
|
|
|
90
|
-
/** Item definition */
|
|
91
|
-
export type ItemDefinition<
|
|
92
|
-
ItemTypeId extends string = string,
|
|
93
|
-
FieldValues extends Record<string, unknown> = Record<string, unknown>,
|
|
94
|
-
> = {
|
|
95
|
-
itemTypeId: ItemTypeId;
|
|
96
|
-
fields: FieldValues;
|
|
97
|
-
};
|
|
98
|
-
|
|
99
92
|
/** Standard field values (response format) */
|
|
100
93
|
type FieldTypeToValue = {
|
|
101
94
|
boolean: BooleanFieldValue;
|
|
@@ -122,25 +115,25 @@ type FieldTypeToValue = {
|
|
|
122
115
|
};
|
|
123
116
|
|
|
124
117
|
/** Request field values (request format with optional metadata) */
|
|
125
|
-
type
|
|
118
|
+
type FieldTypeToValueInRequest = {
|
|
126
119
|
boolean: BooleanFieldValue;
|
|
127
120
|
color: ColorFieldValue;
|
|
128
121
|
date: DateFieldValue;
|
|
129
122
|
date_time: DateTimeFieldValue;
|
|
130
|
-
file:
|
|
123
|
+
file: FileFieldValueInRequest;
|
|
131
124
|
float: FloatFieldValue;
|
|
132
|
-
gallery:
|
|
125
|
+
gallery: GalleryFieldValueInRequest;
|
|
133
126
|
integer: IntegerFieldValue;
|
|
134
127
|
json: JsonFieldValue;
|
|
135
128
|
lat_lon: LatLonFieldValue;
|
|
136
129
|
link: LinkFieldValue;
|
|
137
130
|
links: LinksFieldValue;
|
|
138
|
-
rich_text:
|
|
131
|
+
rich_text: RichTextFieldValueInRequest;
|
|
139
132
|
seo: SeoFieldValue;
|
|
140
|
-
single_block:
|
|
133
|
+
single_block: SingleBlockFieldValueInRequest;
|
|
141
134
|
slug: SlugFieldValue;
|
|
142
135
|
string: StringFieldValue;
|
|
143
|
-
structured_text:
|
|
136
|
+
structured_text: StructuredTextFieldValueInRequest;
|
|
144
137
|
text: TextFieldValue;
|
|
145
138
|
video: VideoFieldValue;
|
|
146
139
|
unknown: unknown;
|
|
@@ -159,116 +152,134 @@ type FieldDefinitionToFieldValue<
|
|
|
159
152
|
Locales extends string,
|
|
160
153
|
> = LocalizeIfNeeded<T, FieldTypeToValue[T['type']], Locales>;
|
|
161
154
|
|
|
162
|
-
/**
|
|
163
|
-
type
|
|
155
|
+
/** InRequest mapping (block fields become generic over allowed blocks) */
|
|
156
|
+
type FieldDefinitionToFieldValueInRequest<
|
|
164
157
|
T extends FieldDefinition,
|
|
165
158
|
Locales extends string,
|
|
166
159
|
> = T extends RichTextFieldDefinition<infer B>
|
|
167
|
-
? LocalizeIfNeeded<
|
|
168
|
-
T,
|
|
169
|
-
RichTextFieldValueAsRequest<ToItemDefinitionAsRequest<B>>,
|
|
170
|
-
Locales
|
|
171
|
-
>
|
|
160
|
+
? LocalizeIfNeeded<T, RichTextFieldValueInRequest<B>, Locales>
|
|
172
161
|
: T extends SingleBlockFieldDefinition<infer B>
|
|
173
|
-
? LocalizeIfNeeded<
|
|
174
|
-
T,
|
|
175
|
-
SingleBlockFieldValueAsRequest<ToItemDefinitionAsRequest<B>>,
|
|
176
|
-
Locales
|
|
177
|
-
>
|
|
162
|
+
? LocalizeIfNeeded<T, SingleBlockFieldValueInRequest<B>, Locales>
|
|
178
163
|
: T extends StructuredTextFieldDefinition<infer B, infer I>
|
|
179
164
|
? LocalizeIfNeeded<
|
|
180
165
|
T,
|
|
181
|
-
|
|
182
|
-
T extends { blocks: any } ?
|
|
183
|
-
T extends { inline_blocks: any }
|
|
184
|
-
? ToItemDefinitionAsRequest<I>
|
|
185
|
-
: never
|
|
166
|
+
StructuredTextFieldValueInRequest<
|
|
167
|
+
T extends { blocks: any } ? B : never,
|
|
168
|
+
T extends { inline_blocks: any } ? I : never
|
|
186
169
|
>,
|
|
187
170
|
Locales
|
|
188
171
|
>
|
|
189
|
-
: LocalizeIfNeeded<T,
|
|
172
|
+
: LocalizeIfNeeded<T, FieldTypeToValueInRequest[T['type']], Locales>;
|
|
190
173
|
|
|
191
|
-
type
|
|
174
|
+
type FieldDefinitionToFieldValueInNestedResponse<
|
|
192
175
|
T extends FieldDefinition,
|
|
193
176
|
Locales extends string,
|
|
194
177
|
> = T extends RichTextFieldDefinition<infer B>
|
|
195
|
-
? LocalizeIfNeeded<
|
|
196
|
-
T,
|
|
197
|
-
RichTextFieldValueWithNestedBlocks<ToItemDefinitionWithNestedBlocks<B>>,
|
|
198
|
-
Locales
|
|
199
|
-
>
|
|
178
|
+
? LocalizeIfNeeded<T, RichTextFieldValueInNestedResponse<B>, Locales>
|
|
200
179
|
: T extends SingleBlockFieldDefinition<infer B>
|
|
201
|
-
? LocalizeIfNeeded<
|
|
202
|
-
T,
|
|
203
|
-
SingleBlockFieldValueWithNestedBlocks<
|
|
204
|
-
ToItemDefinitionWithNestedBlocks<B>
|
|
205
|
-
>,
|
|
206
|
-
Locales
|
|
207
|
-
>
|
|
180
|
+
? LocalizeIfNeeded<T, SingleBlockFieldValueInNestedResponse<B>, Locales>
|
|
208
181
|
: T extends StructuredTextFieldDefinition<infer B, infer I>
|
|
209
182
|
? LocalizeIfNeeded<
|
|
210
183
|
T,
|
|
211
|
-
|
|
212
|
-
T extends { blocks: any }
|
|
213
|
-
|
|
214
|
-
: never,
|
|
215
|
-
T extends { inline_blocks: any }
|
|
216
|
-
? ToItemDefinitionWithNestedBlocks<I>
|
|
217
|
-
: never
|
|
184
|
+
StructuredTextFieldValueInNestedResponse<
|
|
185
|
+
T extends { blocks: any } ? B : never,
|
|
186
|
+
T extends { inline_blocks: any } ? I : never
|
|
218
187
|
>,
|
|
219
188
|
Locales
|
|
220
189
|
>
|
|
221
190
|
: LocalizeIfNeeded<T, FieldTypeToValue[T['type']], Locales>;
|
|
222
191
|
|
|
223
192
|
/** Transformers */
|
|
224
|
-
export type
|
|
193
|
+
export type ToItemAttributes<T extends ItemTypeDefinition<any, any, any>> =
|
|
225
194
|
T extends ItemTypeDefinition<infer Settings, infer ItemTypeId, infer Fields>
|
|
226
195
|
? keyof Fields extends never
|
|
227
|
-
?
|
|
228
|
-
:
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
: never;
|
|
234
|
-
}
|
|
235
|
-
>
|
|
196
|
+
? Record<string, unknown>
|
|
197
|
+
: {
|
|
198
|
+
[K in keyof Fields]: Fields[K] extends FieldDefinition
|
|
199
|
+
? FieldDefinitionToFieldValue<Fields[K], Settings['locales']>
|
|
200
|
+
: never;
|
|
201
|
+
}
|
|
236
202
|
: never;
|
|
237
203
|
|
|
238
|
-
export type
|
|
204
|
+
export type ToItemAttributesInRequest<
|
|
239
205
|
T extends ItemTypeDefinition<any, any, any>,
|
|
240
206
|
> = T extends ItemTypeDefinition<infer Settings, infer ItemTypeId, infer Fields>
|
|
241
207
|
? keyof Fields extends never
|
|
242
|
-
?
|
|
243
|
-
:
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
Fields[K],
|
|
249
|
-
Settings['locales']
|
|
250
|
-
>
|
|
251
|
-
: never;
|
|
252
|
-
}>
|
|
253
|
-
>
|
|
208
|
+
? Record<string, unknown>
|
|
209
|
+
: Partial<{
|
|
210
|
+
[K in keyof Fields]: Fields[K] extends FieldDefinition
|
|
211
|
+
? FieldDefinitionToFieldValueInRequest<Fields[K], Settings['locales']>
|
|
212
|
+
: never;
|
|
213
|
+
}>
|
|
254
214
|
: never;
|
|
255
215
|
|
|
256
|
-
export type
|
|
216
|
+
export type ToItemAttributesInNestedResponse<
|
|
257
217
|
T extends ItemTypeDefinition<any, any, any>,
|
|
258
218
|
> = T extends ItemTypeDefinition<infer Settings, infer ItemTypeId, infer Fields>
|
|
259
219
|
? keyof Fields extends never
|
|
260
|
-
?
|
|
261
|
-
:
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
220
|
+
? Record<string, unknown>
|
|
221
|
+
: {
|
|
222
|
+
[K in keyof Fields]: Fields[K] extends FieldDefinition
|
|
223
|
+
? FieldDefinitionToFieldValueInNestedResponse<
|
|
224
|
+
Fields[K],
|
|
225
|
+
Settings['locales']
|
|
226
|
+
>
|
|
227
|
+
: never;
|
|
228
|
+
}
|
|
229
|
+
: never;
|
|
230
|
+
|
|
231
|
+
type NestedItemTypeDefinitions<
|
|
232
|
+
T extends ItemTypeDefinition<any, any, any>,
|
|
233
|
+
Seen extends string = never,
|
|
234
|
+
> = T extends ItemTypeDefinition<any, infer Id, infer Fields>
|
|
235
|
+
? Id extends Seen
|
|
236
|
+
? never // we already visited this item type -> stop recursing
|
|
237
|
+
: {
|
|
238
|
+
[K in keyof Fields]: Fields[K] extends RichTextFieldDefinition<infer B>
|
|
239
|
+
? B | NestedItemTypeDefinitions<B, Seen | Id>
|
|
240
|
+
: Fields[K] extends SingleBlockFieldDefinition<infer B>
|
|
241
|
+
? B | NestedItemTypeDefinitions<B, Seen | Id>
|
|
242
|
+
: Fields[K] extends StructuredTextFieldDefinition<infer B, infer I>
|
|
243
|
+
?
|
|
244
|
+
| B
|
|
245
|
+
| I
|
|
246
|
+
| NestedItemTypeDefinitions<B, Seen | Id>
|
|
247
|
+
| NestedItemTypeDefinitions<I, Seen | Id>
|
|
248
|
+
: never;
|
|
249
|
+
}[keyof Fields]
|
|
272
250
|
: never;
|
|
273
251
|
|
|
274
|
-
export type
|
|
252
|
+
export type ExtractNestedBlocksFromFieldValue<T> =
|
|
253
|
+
T extends RichTextFieldValueInNestedResponse<infer D>
|
|
254
|
+
?
|
|
255
|
+
| BlockInNestedResponse<D>
|
|
256
|
+
| BlockInNestedResponse<NestedItemTypeDefinitions<D>>
|
|
257
|
+
: T extends SingleBlockFieldValueInNestedResponse<infer D>
|
|
258
|
+
?
|
|
259
|
+
| BlockInNestedResponse<D>
|
|
260
|
+
| BlockInNestedResponse<NestedItemTypeDefinitions<D>>
|
|
261
|
+
: T extends StructuredTextFieldValueInNestedResponse<infer DB, infer DI>
|
|
262
|
+
?
|
|
263
|
+
| BlockInNestedResponse<DB>
|
|
264
|
+
| BlockInNestedResponse<NestedItemTypeDefinitions<DB>>
|
|
265
|
+
| BlockInNestedResponse<DI>
|
|
266
|
+
| BlockInNestedResponse<NestedItemTypeDefinitions<DI>>
|
|
267
|
+
: T extends StructuredTextFieldValueInNestedResponse<infer D>
|
|
268
|
+
?
|
|
269
|
+
| BlockInNestedResponse<D>
|
|
270
|
+
| BlockInNestedResponse<NestedItemTypeDefinitions<D>>
|
|
271
|
+
: T extends RichTextFieldValueInRequest<infer D>
|
|
272
|
+
? BlockInRequest<D> | BlockInRequest<NestedItemTypeDefinitions<D>>
|
|
273
|
+
: T extends SingleBlockFieldValueInRequest<infer D>
|
|
274
|
+
? BlockInRequest<D> | BlockInRequest<NestedItemTypeDefinitions<D>>
|
|
275
|
+
: T extends StructuredTextFieldValueInRequest<infer DB, infer DI>
|
|
276
|
+
?
|
|
277
|
+
| BlockInRequest<DB>
|
|
278
|
+
| BlockInRequest<NestedItemTypeDefinitions<DB>>
|
|
279
|
+
| BlockInRequest<DI>
|
|
280
|
+
| BlockInRequest<NestedItemTypeDefinitions<DI>>
|
|
281
|
+
: T extends StructuredTextFieldValueInRequest<infer D>
|
|
282
|
+
?
|
|
283
|
+
| BlockInRequest<D>
|
|
284
|
+
| BlockInRequest<NestedItemTypeDefinitions<D>>
|
|
285
|
+
: never;
|