@datocms/cma-client 5.1.10 → 5.1.12
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 +569 -0
- package/dist/cjs/fieldTypes/boolean.js +2 -2
- package/dist/cjs/fieldTypes/boolean.js.map +1 -1
- package/dist/cjs/fieldTypes/color.js +2 -2
- package/dist/cjs/fieldTypes/color.js.map +1 -1
- package/dist/cjs/fieldTypes/date.js +2 -3
- package/dist/cjs/fieldTypes/date.js.map +1 -1
- package/dist/cjs/fieldTypes/date_time.js +2 -2
- package/dist/cjs/fieldTypes/date_time.js.map +1 -1
- package/dist/cjs/fieldTypes/file.js +33 -5
- package/dist/cjs/fieldTypes/file.js.map +1 -1
- package/dist/cjs/fieldTypes/float.js +2 -2
- package/dist/cjs/fieldTypes/float.js.map +1 -1
- package/dist/cjs/fieldTypes/gallery.js +20 -5
- package/dist/cjs/fieldTypes/gallery.js.map +1 -1
- package/dist/cjs/fieldTypes/index.js +2 -2
- package/dist/cjs/fieldTypes/index.js.map +1 -1
- package/dist/cjs/fieldTypes/integer.js +2 -2
- package/dist/cjs/fieldTypes/integer.js.map +1 -1
- package/dist/cjs/fieldTypes/json.js +2 -3
- package/dist/cjs/fieldTypes/json.js.map +1 -1
- package/dist/cjs/fieldTypes/lat_lon.js +2 -2
- package/dist/cjs/fieldTypes/lat_lon.js.map +1 -1
- package/dist/cjs/fieldTypes/link.js +4 -4
- package/dist/cjs/fieldTypes/link.js.map +1 -1
- package/dist/cjs/fieldTypes/links.js +5 -3
- package/dist/cjs/fieldTypes/links.js.map +1 -1
- package/dist/cjs/fieldTypes/rich_text.js +18 -18
- 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/seo.js +2 -3
- package/dist/cjs/fieldTypes/seo.js.map +1 -1
- package/dist/cjs/fieldTypes/single_block.js +20 -19
- package/dist/cjs/fieldTypes/single_block.js.map +1 -1
- package/dist/cjs/fieldTypes/slug.js +2 -3
- package/dist/cjs/fieldTypes/slug.js.map +1 -1
- package/dist/cjs/fieldTypes/string.js +2 -2
- package/dist/cjs/fieldTypes/string.js.map +1 -1
- package/dist/cjs/fieldTypes/structured_text.js +17 -18
- package/dist/cjs/fieldTypes/structured_text.js.map +1 -1
- package/dist/cjs/fieldTypes/text.js +2 -3
- package/dist/cjs/fieldTypes/text.js.map +1 -1
- package/dist/cjs/fieldTypes/video.js +2 -2
- package/dist/cjs/fieldTypes/video.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 +5 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utilities/buildBlockRecord.js +1 -45
- package/dist/cjs/utilities/buildBlockRecord.js.map +1 -1
- package/dist/cjs/utilities/duplicateBlockRecord.js +49 -0
- package/dist/cjs/utilities/duplicateBlockRecord.js.map +1 -0
- package/dist/cjs/utilities/inspectItem.js +427 -0
- package/dist/cjs/utilities/inspectItem.js.map +1 -0
- package/dist/cjs/utilities/{blocks.js → nonRecursiveBlocks.js} +60 -234
- package/dist/cjs/utilities/nonRecursiveBlocks.js.map +1 -0
- package/dist/cjs/utilities/{fieldValue.js → normalizedFieldValues.js} +53 -41
- package/dist/cjs/utilities/normalizedFieldValues.js.map +1 -0
- package/dist/cjs/utilities/recursiveBlocks.js +73 -92
- package/dist/cjs/utilities/recursiveBlocks.js.map +1 -1
- package/dist/cjs/utilities/schemaRepository.js +2 -2
- package/dist/esm/fieldTypes/boolean.d.ts +1 -1
- package/dist/esm/fieldTypes/boolean.js +2 -2
- package/dist/esm/fieldTypes/boolean.js.map +1 -1
- package/dist/esm/fieldTypes/color.d.ts +1 -1
- package/dist/esm/fieldTypes/color.js +2 -2
- package/dist/esm/fieldTypes/color.js.map +1 -1
- package/dist/esm/fieldTypes/date.d.ts +1 -1
- package/dist/esm/fieldTypes/date.js +2 -3
- package/dist/esm/fieldTypes/date.js.map +1 -1
- package/dist/esm/fieldTypes/date_time.d.ts +1 -1
- package/dist/esm/fieldTypes/date_time.js +2 -2
- package/dist/esm/fieldTypes/date_time.js.map +1 -1
- package/dist/esm/fieldTypes/file.d.ts +68 -1
- package/dist/esm/fieldTypes/file.js +29 -3
- package/dist/esm/fieldTypes/file.js.map +1 -1
- package/dist/esm/fieldTypes/float.d.ts +1 -1
- package/dist/esm/fieldTypes/float.js +2 -2
- package/dist/esm/fieldTypes/float.js.map +1 -1
- package/dist/esm/fieldTypes/gallery.d.ts +27 -11
- package/dist/esm/fieldTypes/gallery.js +17 -4
- package/dist/esm/fieldTypes/gallery.js.map +1 -1
- package/dist/esm/fieldTypes/index.d.ts +2 -2
- package/dist/esm/fieldTypes/index.js +2 -2
- package/dist/esm/fieldTypes/index.js.map +1 -1
- package/dist/esm/fieldTypes/integer.d.ts +1 -1
- package/dist/esm/fieldTypes/integer.js +2 -2
- package/dist/esm/fieldTypes/integer.js.map +1 -1
- package/dist/esm/fieldTypes/json.d.ts +1 -1
- package/dist/esm/fieldTypes/json.js +2 -3
- package/dist/esm/fieldTypes/json.js.map +1 -1
- package/dist/esm/fieldTypes/lat_lon.d.ts +1 -1
- package/dist/esm/fieldTypes/lat_lon.js +2 -2
- package/dist/esm/fieldTypes/lat_lon.js.map +1 -1
- package/dist/esm/fieldTypes/link.d.ts +1 -1
- package/dist/esm/fieldTypes/link.js +4 -4
- package/dist/esm/fieldTypes/link.js.map +1 -1
- package/dist/esm/fieldTypes/links.d.ts +1 -1
- package/dist/esm/fieldTypes/links.js +5 -3
- package/dist/esm/fieldTypes/links.js.map +1 -1
- package/dist/esm/fieldTypes/rich_text.d.ts +9 -10
- package/dist/esm/fieldTypes/rich_text.js +13 -13
- 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/seo.d.ts +1 -1
- package/dist/esm/fieldTypes/seo.js +2 -3
- package/dist/esm/fieldTypes/seo.js.map +1 -1
- package/dist/esm/fieldTypes/single_block.d.ts +31 -16
- package/dist/esm/fieldTypes/single_block.js +15 -14
- package/dist/esm/fieldTypes/single_block.js.map +1 -1
- package/dist/esm/fieldTypes/slug.d.ts +1 -1
- package/dist/esm/fieldTypes/slug.js +2 -3
- package/dist/esm/fieldTypes/slug.js.map +1 -1
- package/dist/esm/fieldTypes/string.d.ts +1 -1
- package/dist/esm/fieldTypes/string.js +2 -2
- package/dist/esm/fieldTypes/string.js.map +1 -1
- package/dist/esm/fieldTypes/structured_text.d.ts +15 -16
- package/dist/esm/fieldTypes/structured_text.js +12 -13
- package/dist/esm/fieldTypes/structured_text.js.map +1 -1
- package/dist/esm/fieldTypes/text.d.ts +1 -1
- package/dist/esm/fieldTypes/text.js +2 -3
- package/dist/esm/fieldTypes/text.js.map +1 -1
- package/dist/esm/fieldTypes/video.d.ts +1 -1
- package/dist/esm/fieldTypes/video.js +2 -2
- package/dist/esm/fieldTypes/video.js.map +1 -1
- package/dist/esm/generated/ApiTypes.d.ts +90 -980
- package/dist/esm/generated/Client.js +1 -1
- package/dist/esm/generated/RawApiTypes.d.ts +156 -999
- package/dist/esm/generated/resources/Field.d.ts +200 -200
- 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 +5 -4
- package/dist/esm/index.js +5 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utilities/buildBlockRecord.d.ts +3 -5
- package/dist/esm/utilities/buildBlockRecord.js +0 -43
- package/dist/esm/utilities/buildBlockRecord.js.map +1 -1
- package/dist/esm/utilities/duplicateBlockRecord.d.ts +6 -0
- package/dist/esm/utilities/duplicateBlockRecord.js +45 -0
- package/dist/esm/utilities/duplicateBlockRecord.js.map +1 -0
- package/dist/esm/utilities/inspectItem.d.ts +8 -0
- package/dist/esm/utilities/inspectItem.js +400 -0
- package/dist/esm/utilities/inspectItem.js.map +1 -0
- package/dist/esm/utilities/itemDefinition.d.ts +45 -23
- package/dist/esm/utilities/nonRecursiveBlocks.d.ts +114 -0
- package/dist/esm/utilities/{blocks.js → nonRecursiveBlocks.js} +52 -220
- package/dist/esm/utilities/nonRecursiveBlocks.js.map +1 -0
- package/dist/{types/utilities/fieldValue.d.ts → esm/utilities/normalizedFieldValues.d.ts} +15 -14
- package/dist/esm/utilities/{fieldValue.js → normalizedFieldValues.js} +39 -28
- package/dist/esm/utilities/normalizedFieldValues.js.map +1 -0
- package/dist/esm/utilities/recursiveBlocks.d.ts +124 -11
- package/dist/esm/utilities/recursiveBlocks.js +65 -84
- package/dist/esm/utilities/recursiveBlocks.js.map +1 -1
- package/dist/esm/utilities/schemaRepository.d.ts +2 -2
- package/dist/esm/utilities/schemaRepository.js +2 -2
- package/dist/types/fieldTypes/boolean.d.ts +1 -1
- package/dist/types/fieldTypes/color.d.ts +1 -1
- package/dist/types/fieldTypes/date.d.ts +1 -1
- package/dist/types/fieldTypes/date_time.d.ts +1 -1
- package/dist/types/fieldTypes/file.d.ts +68 -1
- package/dist/types/fieldTypes/float.d.ts +1 -1
- package/dist/types/fieldTypes/gallery.d.ts +27 -11
- package/dist/types/fieldTypes/index.d.ts +2 -2
- package/dist/types/fieldTypes/integer.d.ts +1 -1
- package/dist/types/fieldTypes/json.d.ts +1 -1
- package/dist/types/fieldTypes/lat_lon.d.ts +1 -1
- package/dist/types/fieldTypes/link.d.ts +1 -1
- package/dist/types/fieldTypes/links.d.ts +1 -1
- package/dist/types/fieldTypes/rich_text.d.ts +9 -10
- package/dist/types/fieldTypes/schema.d.ts +59 -0
- package/dist/types/fieldTypes/seo.d.ts +1 -1
- package/dist/types/fieldTypes/single_block.d.ts +31 -16
- package/dist/types/fieldTypes/slug.d.ts +1 -1
- package/dist/types/fieldTypes/string.d.ts +1 -1
- package/dist/types/fieldTypes/structured_text.d.ts +15 -16
- package/dist/types/fieldTypes/text.d.ts +1 -1
- package/dist/types/fieldTypes/video.d.ts +1 -1
- package/dist/types/generated/ApiTypes.d.ts +90 -980
- package/dist/types/generated/RawApiTypes.d.ts +156 -999
- package/dist/types/generated/resources/Field.d.ts +200 -200
- 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 +5 -4
- package/dist/types/utilities/buildBlockRecord.d.ts +3 -5
- package/dist/types/utilities/duplicateBlockRecord.d.ts +6 -0
- package/dist/types/utilities/inspectItem.d.ts +8 -0
- package/dist/types/utilities/itemDefinition.d.ts +45 -23
- package/dist/types/utilities/nonRecursiveBlocks.d.ts +114 -0
- package/dist/{esm/utilities/fieldValue.d.ts → types/utilities/normalizedFieldValues.d.ts} +15 -14
- package/dist/types/utilities/recursiveBlocks.d.ts +124 -11
- package/dist/types/utilities/schemaRepository.d.ts +2 -2
- package/package.json +4 -4
- package/src/fieldTypes/boolean.ts +5 -3
- package/src/fieldTypes/color.ts +5 -3
- package/src/fieldTypes/date.ts +5 -4
- package/src/fieldTypes/date_time.ts +5 -3
- package/src/fieldTypes/file.ts +98 -4
- package/src/fieldTypes/float.ts +5 -3
- package/src/fieldTypes/gallery.ts +53 -20
- package/src/fieldTypes/index.ts +2 -3
- package/src/fieldTypes/integer.ts +5 -3
- package/src/fieldTypes/json.ts +5 -4
- package/src/fieldTypes/lat_lon.ts +5 -3
- package/src/fieldTypes/link.ts +7 -5
- package/src/fieldTypes/links.ts +8 -4
- package/src/fieldTypes/rich_text.ts +33 -31
- package/src/fieldTypes/schema.ts +657 -0
- package/src/fieldTypes/seo.ts +5 -4
- package/src/fieldTypes/single_block.ts +71 -46
- package/src/fieldTypes/slug.ts +5 -4
- package/src/fieldTypes/string.ts +5 -3
- package/src/fieldTypes/structured_text.ts +64 -58
- package/src/fieldTypes/text.ts +5 -4
- package/src/fieldTypes/video.ts +5 -3
- package/src/generated/ApiTypes.ts +217 -1880
- package/src/generated/Client.ts +1 -1
- package/src/generated/RawApiTypes.ts +272 -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 +5 -4
- package/src/utilities/buildBlockRecord.ts +4 -59
- package/src/utilities/duplicateBlockRecord.ts +52 -0
- package/src/utilities/inspectItem.ts +602 -0
- package/src/utilities/itemDefinition.ts +130 -92
- package/src/utilities/nonRecursiveBlocks.ts +406 -0
- package/src/utilities/{fieldValue.ts → normalizedFieldValues.ts} +70 -30
- package/src/utilities/recursiveBlocks.ts +484 -204
- package/src/utilities/schemaRepository.ts +2 -2
- package/dist/cjs/utilities/blocks.js.map +0 -1
- package/dist/cjs/utilities/fieldValue.js.map +0 -1
- package/dist/esm/utilities/blocks.d.ts +0 -180
- package/dist/esm/utilities/blocks.js.map +0 -1
- package/dist/esm/utilities/fieldValue.js.map +0 -1
- package/dist/types/utilities/blocks.d.ts +0 -180
- package/src/utilities/blocks.ts +0 -626
|
@@ -1,32 +1,36 @@
|
|
|
1
1
|
import type {
|
|
2
|
+
BlockInNestedResponse,
|
|
3
|
+
BlockInRequest,
|
|
2
4
|
BooleanFieldValue,
|
|
3
5
|
ColorFieldValue,
|
|
4
6
|
DateFieldValue,
|
|
5
7
|
DateTimeFieldValue,
|
|
6
8
|
FileFieldValue,
|
|
9
|
+
FileFieldValueInRequest,
|
|
7
10
|
FloatFieldValue,
|
|
8
11
|
GalleryFieldValue,
|
|
12
|
+
GalleryFieldValueInRequest,
|
|
9
13
|
IntegerFieldValue,
|
|
10
14
|
JsonFieldValue,
|
|
11
15
|
LatLonFieldValue,
|
|
12
16
|
LinkFieldValue,
|
|
13
17
|
LinksFieldValue,
|
|
14
18
|
RichTextFieldValue,
|
|
15
|
-
|
|
16
|
-
|
|
19
|
+
RichTextFieldValueInNestedResponse,
|
|
20
|
+
RichTextFieldValueInRequest,
|
|
17
21
|
SeoFieldValue,
|
|
18
22
|
SingleBlockFieldValue,
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
SingleBlockFieldValueInNestedResponse,
|
|
24
|
+
SingleBlockFieldValueInRequest,
|
|
21
25
|
SlugFieldValue,
|
|
22
26
|
StringFieldValue,
|
|
23
27
|
StructuredTextFieldValue,
|
|
24
|
-
|
|
25
|
-
|
|
28
|
+
StructuredTextFieldValueInNestedResponse,
|
|
29
|
+
StructuredTextFieldValueInRequest,
|
|
26
30
|
TextFieldValue,
|
|
27
31
|
VideoFieldValue,
|
|
28
32
|
} from '../fieldTypes';
|
|
29
|
-
import type { LocalizedFieldValue } from './
|
|
33
|
+
import type { LocalizedFieldValue } from './normalizedFieldValues';
|
|
30
34
|
|
|
31
35
|
/** Base field definition */
|
|
32
36
|
type BaseFieldDefinition<Type extends string> = {
|
|
@@ -85,16 +89,7 @@ export type ItemTypeDefinition<
|
|
|
85
89
|
fields: FieldDefinitions;
|
|
86
90
|
};
|
|
87
91
|
|
|
88
|
-
/**
|
|
89
|
-
export type ItemDefinition<
|
|
90
|
-
ItemTypeId extends string = string,
|
|
91
|
-
FieldValues extends Record<string, unknown> = Record<string, unknown>,
|
|
92
|
-
> = {
|
|
93
|
-
itemTypeId: ItemTypeId;
|
|
94
|
-
fields: FieldValues;
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
/** Standard field values */
|
|
92
|
+
/** Standard field values (response format) */
|
|
98
93
|
type FieldTypeToValue = {
|
|
99
94
|
boolean: BooleanFieldValue;
|
|
100
95
|
color: ColorFieldValue;
|
|
@@ -119,6 +114,31 @@ type FieldTypeToValue = {
|
|
|
119
114
|
unknown: unknown;
|
|
120
115
|
};
|
|
121
116
|
|
|
117
|
+
/** Request field values (request format with optional metadata) */
|
|
118
|
+
type FieldTypeToValueInRequest = {
|
|
119
|
+
boolean: BooleanFieldValue;
|
|
120
|
+
color: ColorFieldValue;
|
|
121
|
+
date: DateFieldValue;
|
|
122
|
+
date_time: DateTimeFieldValue;
|
|
123
|
+
file: FileFieldValueInRequest;
|
|
124
|
+
float: FloatFieldValue;
|
|
125
|
+
gallery: GalleryFieldValueInRequest;
|
|
126
|
+
integer: IntegerFieldValue;
|
|
127
|
+
json: JsonFieldValue;
|
|
128
|
+
lat_lon: LatLonFieldValue;
|
|
129
|
+
link: LinkFieldValue;
|
|
130
|
+
links: LinksFieldValue;
|
|
131
|
+
rich_text: RichTextFieldValueInRequest;
|
|
132
|
+
seo: SeoFieldValue;
|
|
133
|
+
single_block: SingleBlockFieldValueInRequest;
|
|
134
|
+
slug: SlugFieldValue;
|
|
135
|
+
string: StringFieldValue;
|
|
136
|
+
structured_text: StructuredTextFieldValueInRequest;
|
|
137
|
+
text: TextFieldValue;
|
|
138
|
+
video: VideoFieldValue;
|
|
139
|
+
unknown: unknown;
|
|
140
|
+
};
|
|
141
|
+
|
|
122
142
|
/** Localized wrapper */
|
|
123
143
|
type LocalizeIfNeeded<
|
|
124
144
|
T extends FieldDefinition,
|
|
@@ -132,116 +152,134 @@ type FieldDefinitionToFieldValue<
|
|
|
132
152
|
Locales extends string,
|
|
133
153
|
> = LocalizeIfNeeded<T, FieldTypeToValue[T['type']], Locales>;
|
|
134
154
|
|
|
135
|
-
/**
|
|
136
|
-
type
|
|
155
|
+
/** InRequest mapping (block fields become generic over allowed blocks) */
|
|
156
|
+
type FieldDefinitionToFieldValueInRequest<
|
|
137
157
|
T extends FieldDefinition,
|
|
138
158
|
Locales extends string,
|
|
139
159
|
> = T extends RichTextFieldDefinition<infer B>
|
|
140
|
-
? LocalizeIfNeeded<
|
|
141
|
-
T,
|
|
142
|
-
RichTextFieldValueAsRequest<ToItemDefinitionAsRequest<B>>,
|
|
143
|
-
Locales
|
|
144
|
-
>
|
|
160
|
+
? LocalizeIfNeeded<T, RichTextFieldValueInRequest<B>, Locales>
|
|
145
161
|
: T extends SingleBlockFieldDefinition<infer B>
|
|
146
|
-
? LocalizeIfNeeded<
|
|
147
|
-
T,
|
|
148
|
-
SingleBlockFieldValueAsRequest<ToItemDefinitionAsRequest<B>>,
|
|
149
|
-
Locales
|
|
150
|
-
>
|
|
162
|
+
? LocalizeIfNeeded<T, SingleBlockFieldValueInRequest<B>, Locales>
|
|
151
163
|
: T extends StructuredTextFieldDefinition<infer B, infer I>
|
|
152
164
|
? LocalizeIfNeeded<
|
|
153
165
|
T,
|
|
154
|
-
|
|
155
|
-
T extends { blocks: any } ?
|
|
156
|
-
T extends { inline_blocks: any }
|
|
157
|
-
? ToItemDefinitionAsRequest<I>
|
|
158
|
-
: never
|
|
166
|
+
StructuredTextFieldValueInRequest<
|
|
167
|
+
T extends { blocks: any } ? B : never,
|
|
168
|
+
T extends { inline_blocks: any } ? I : never
|
|
159
169
|
>,
|
|
160
170
|
Locales
|
|
161
171
|
>
|
|
162
|
-
: LocalizeIfNeeded<T,
|
|
172
|
+
: LocalizeIfNeeded<T, FieldTypeToValueInRequest[T['type']], Locales>;
|
|
163
173
|
|
|
164
|
-
type
|
|
174
|
+
type FieldDefinitionToFieldValueInNestedResponse<
|
|
165
175
|
T extends FieldDefinition,
|
|
166
176
|
Locales extends string,
|
|
167
177
|
> = T extends RichTextFieldDefinition<infer B>
|
|
168
|
-
? LocalizeIfNeeded<
|
|
169
|
-
T,
|
|
170
|
-
RichTextFieldValueWithNestedBlocks<ToItemDefinitionWithNestedBlocks<B>>,
|
|
171
|
-
Locales
|
|
172
|
-
>
|
|
178
|
+
? LocalizeIfNeeded<T, RichTextFieldValueInNestedResponse<B>, Locales>
|
|
173
179
|
: T extends SingleBlockFieldDefinition<infer B>
|
|
174
|
-
? LocalizeIfNeeded<
|
|
175
|
-
T,
|
|
176
|
-
SingleBlockFieldValueWithNestedBlocks<
|
|
177
|
-
ToItemDefinitionWithNestedBlocks<B>
|
|
178
|
-
>,
|
|
179
|
-
Locales
|
|
180
|
-
>
|
|
180
|
+
? LocalizeIfNeeded<T, SingleBlockFieldValueInNestedResponse<B>, Locales>
|
|
181
181
|
: T extends StructuredTextFieldDefinition<infer B, infer I>
|
|
182
182
|
? LocalizeIfNeeded<
|
|
183
183
|
T,
|
|
184
|
-
|
|
185
|
-
T extends { blocks: any }
|
|
186
|
-
|
|
187
|
-
: never,
|
|
188
|
-
T extends { inline_blocks: any }
|
|
189
|
-
? ToItemDefinitionWithNestedBlocks<I>
|
|
190
|
-
: never
|
|
184
|
+
StructuredTextFieldValueInNestedResponse<
|
|
185
|
+
T extends { blocks: any } ? B : never,
|
|
186
|
+
T extends { inline_blocks: any } ? I : never
|
|
191
187
|
>,
|
|
192
188
|
Locales
|
|
193
189
|
>
|
|
194
190
|
: LocalizeIfNeeded<T, FieldTypeToValue[T['type']], Locales>;
|
|
195
191
|
|
|
196
192
|
/** Transformers */
|
|
197
|
-
export type
|
|
193
|
+
export type ToItemAttributes<T extends ItemTypeDefinition<any, any, any>> =
|
|
198
194
|
T extends ItemTypeDefinition<infer Settings, infer ItemTypeId, infer Fields>
|
|
199
195
|
? keyof Fields extends never
|
|
200
|
-
?
|
|
201
|
-
:
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
: never;
|
|
207
|
-
}
|
|
208
|
-
>
|
|
196
|
+
? Record<string, unknown>
|
|
197
|
+
: {
|
|
198
|
+
[K in keyof Fields]: Fields[K] extends FieldDefinition
|
|
199
|
+
? FieldDefinitionToFieldValue<Fields[K], Settings['locales']>
|
|
200
|
+
: never;
|
|
201
|
+
}
|
|
209
202
|
: never;
|
|
210
203
|
|
|
211
|
-
export type
|
|
204
|
+
export type ToItemAttributesInRequest<
|
|
212
205
|
T extends ItemTypeDefinition<any, any, any>,
|
|
213
206
|
> = T extends ItemTypeDefinition<infer Settings, infer ItemTypeId, infer Fields>
|
|
214
207
|
? keyof Fields extends never
|
|
215
|
-
?
|
|
216
|
-
:
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
Fields[K],
|
|
222
|
-
Settings['locales']
|
|
223
|
-
>
|
|
224
|
-
: never;
|
|
225
|
-
}>
|
|
226
|
-
>
|
|
208
|
+
? Record<string, unknown>
|
|
209
|
+
: Partial<{
|
|
210
|
+
[K in keyof Fields]: Fields[K] extends FieldDefinition
|
|
211
|
+
? FieldDefinitionToFieldValueInRequest<Fields[K], Settings['locales']>
|
|
212
|
+
: never;
|
|
213
|
+
}>
|
|
227
214
|
: never;
|
|
228
215
|
|
|
229
|
-
export type
|
|
216
|
+
export type ToItemAttributesInNestedResponse<
|
|
230
217
|
T extends ItemTypeDefinition<any, any, any>,
|
|
231
218
|
> = T extends ItemTypeDefinition<infer Settings, infer ItemTypeId, infer Fields>
|
|
232
219
|
? keyof Fields extends never
|
|
233
|
-
?
|
|
234
|
-
:
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
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]
|
|
245
250
|
: never;
|
|
246
251
|
|
|
247
|
-
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;
|