@datocms/cma-client 5.1.9 → 5.1.11

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 (226) hide show
  1. package/README.md +575 -0
  2. package/dist/cjs/fieldTypes/boolean.js +2 -2
  3. package/dist/cjs/fieldTypes/boolean.js.map +1 -1
  4. package/dist/cjs/fieldTypes/color.js +2 -2
  5. package/dist/cjs/fieldTypes/color.js.map +1 -1
  6. package/dist/cjs/fieldTypes/date.js +2 -3
  7. package/dist/cjs/fieldTypes/date.js.map +1 -1
  8. package/dist/cjs/fieldTypes/date_time.js +2 -2
  9. package/dist/cjs/fieldTypes/date_time.js.map +1 -1
  10. package/dist/cjs/fieldTypes/file.js +33 -5
  11. package/dist/cjs/fieldTypes/file.js.map +1 -1
  12. package/dist/cjs/fieldTypes/float.js +2 -2
  13. package/dist/cjs/fieldTypes/float.js.map +1 -1
  14. package/dist/cjs/fieldTypes/gallery.js +20 -5
  15. package/dist/cjs/fieldTypes/gallery.js.map +1 -1
  16. package/dist/cjs/fieldTypes/index.js +2 -2
  17. package/dist/cjs/fieldTypes/index.js.map +1 -1
  18. package/dist/cjs/fieldTypes/integer.js +2 -2
  19. package/dist/cjs/fieldTypes/integer.js.map +1 -1
  20. package/dist/cjs/fieldTypes/json.js +2 -3
  21. package/dist/cjs/fieldTypes/json.js.map +1 -1
  22. package/dist/cjs/fieldTypes/lat_lon.js +2 -2
  23. package/dist/cjs/fieldTypes/lat_lon.js.map +1 -1
  24. package/dist/cjs/fieldTypes/link.js +4 -4
  25. package/dist/cjs/fieldTypes/link.js.map +1 -1
  26. package/dist/cjs/fieldTypes/links.js +5 -3
  27. package/dist/cjs/fieldTypes/links.js.map +1 -1
  28. package/dist/cjs/fieldTypes/rich_text.js +4 -6
  29. package/dist/cjs/fieldTypes/rich_text.js.map +1 -1
  30. package/dist/cjs/fieldTypes/seo.js +2 -3
  31. package/dist/cjs/fieldTypes/seo.js.map +1 -1
  32. package/dist/cjs/fieldTypes/single_block.js +7 -7
  33. package/dist/cjs/fieldTypes/single_block.js.map +1 -1
  34. package/dist/cjs/fieldTypes/slug.js +2 -3
  35. package/dist/cjs/fieldTypes/slug.js.map +1 -1
  36. package/dist/cjs/fieldTypes/string.js +2 -2
  37. package/dist/cjs/fieldTypes/string.js.map +1 -1
  38. package/dist/cjs/fieldTypes/structured_text.js +4 -6
  39. package/dist/cjs/fieldTypes/structured_text.js.map +1 -1
  40. package/dist/cjs/fieldTypes/text.js +2 -3
  41. package/dist/cjs/fieldTypes/text.js.map +1 -1
  42. package/dist/cjs/fieldTypes/video.js +2 -2
  43. package/dist/cjs/fieldTypes/video.js.map +1 -1
  44. package/dist/cjs/generated/Client.js +1 -1
  45. package/dist/cjs/generated/Client.js.map +1 -1
  46. package/dist/cjs/generated/resources/Item.js.map +1 -1
  47. package/dist/cjs/generated/resources/Upload.js.map +1 -1
  48. package/dist/cjs/index.js +4 -4
  49. package/dist/cjs/index.js.map +1 -1
  50. package/dist/cjs/utilities/buildBlockRecord.js +8 -7
  51. package/dist/cjs/utilities/buildBlockRecord.js.map +1 -1
  52. package/dist/cjs/utilities/inspectItem.js +397 -0
  53. package/dist/cjs/utilities/inspectItem.js.map +1 -0
  54. package/dist/cjs/utilities/{blocks.js → nonRecursiveBlocks.js} +106 -111
  55. package/dist/cjs/utilities/nonRecursiveBlocks.js.map +1 -0
  56. package/dist/cjs/utilities/{fieldValue.js → normalizedFieldValues.js} +53 -41
  57. package/dist/cjs/utilities/normalizedFieldValues.js.map +1 -0
  58. package/dist/cjs/utilities/recursiveBlocks.js +121 -80
  59. package/dist/cjs/utilities/recursiveBlocks.js.map +1 -1
  60. package/dist/cjs/utilities/schemaRepository.js +2 -2
  61. package/dist/esm/fieldTypes/boolean.d.ts +1 -1
  62. package/dist/esm/fieldTypes/boolean.js +2 -2
  63. package/dist/esm/fieldTypes/boolean.js.map +1 -1
  64. package/dist/esm/fieldTypes/color.d.ts +1 -1
  65. package/dist/esm/fieldTypes/color.js +2 -2
  66. package/dist/esm/fieldTypes/color.js.map +1 -1
  67. package/dist/esm/fieldTypes/date.d.ts +1 -1
  68. package/dist/esm/fieldTypes/date.js +2 -3
  69. package/dist/esm/fieldTypes/date.js.map +1 -1
  70. package/dist/esm/fieldTypes/date_time.d.ts +1 -1
  71. package/dist/esm/fieldTypes/date_time.js +2 -2
  72. package/dist/esm/fieldTypes/date_time.js.map +1 -1
  73. package/dist/esm/fieldTypes/file.d.ts +68 -1
  74. package/dist/esm/fieldTypes/file.js +29 -3
  75. package/dist/esm/fieldTypes/file.js.map +1 -1
  76. package/dist/esm/fieldTypes/float.d.ts +1 -1
  77. package/dist/esm/fieldTypes/float.js +2 -2
  78. package/dist/esm/fieldTypes/float.js.map +1 -1
  79. package/dist/esm/fieldTypes/gallery.d.ts +27 -11
  80. package/dist/esm/fieldTypes/gallery.js +17 -4
  81. package/dist/esm/fieldTypes/gallery.js.map +1 -1
  82. package/dist/esm/fieldTypes/index.d.ts +2 -2
  83. package/dist/esm/fieldTypes/index.js +2 -2
  84. package/dist/esm/fieldTypes/index.js.map +1 -1
  85. package/dist/esm/fieldTypes/integer.d.ts +1 -1
  86. package/dist/esm/fieldTypes/integer.js +2 -2
  87. package/dist/esm/fieldTypes/integer.js.map +1 -1
  88. package/dist/esm/fieldTypes/json.d.ts +1 -1
  89. package/dist/esm/fieldTypes/json.js +2 -3
  90. package/dist/esm/fieldTypes/json.js.map +1 -1
  91. package/dist/esm/fieldTypes/lat_lon.d.ts +1 -1
  92. package/dist/esm/fieldTypes/lat_lon.js +2 -2
  93. package/dist/esm/fieldTypes/lat_lon.js.map +1 -1
  94. package/dist/esm/fieldTypes/link.d.ts +1 -1
  95. package/dist/esm/fieldTypes/link.js +4 -4
  96. package/dist/esm/fieldTypes/link.js.map +1 -1
  97. package/dist/esm/fieldTypes/links.d.ts +1 -1
  98. package/dist/esm/fieldTypes/links.js +5 -3
  99. package/dist/esm/fieldTypes/links.js.map +1 -1
  100. package/dist/esm/fieldTypes/rich_text.d.ts +1 -1
  101. package/dist/esm/fieldTypes/rich_text.js +4 -6
  102. package/dist/esm/fieldTypes/rich_text.js.map +1 -1
  103. package/dist/esm/fieldTypes/seo.d.ts +1 -1
  104. package/dist/esm/fieldTypes/seo.js +2 -3
  105. package/dist/esm/fieldTypes/seo.js.map +1 -1
  106. package/dist/esm/fieldTypes/single_block.d.ts +3 -3
  107. package/dist/esm/fieldTypes/single_block.js +7 -7
  108. package/dist/esm/fieldTypes/single_block.js.map +1 -1
  109. package/dist/esm/fieldTypes/slug.d.ts +1 -1
  110. package/dist/esm/fieldTypes/slug.js +2 -3
  111. package/dist/esm/fieldTypes/slug.js.map +1 -1
  112. package/dist/esm/fieldTypes/string.d.ts +1 -1
  113. package/dist/esm/fieldTypes/string.js +2 -2
  114. package/dist/esm/fieldTypes/string.js.map +1 -1
  115. package/dist/esm/fieldTypes/structured_text.d.ts +1 -1
  116. package/dist/esm/fieldTypes/structured_text.js +4 -6
  117. package/dist/esm/fieldTypes/structured_text.js.map +1 -1
  118. package/dist/esm/fieldTypes/text.d.ts +1 -1
  119. package/dist/esm/fieldTypes/text.js +2 -3
  120. package/dist/esm/fieldTypes/text.js.map +1 -1
  121. package/dist/esm/fieldTypes/video.d.ts +1 -1
  122. package/dist/esm/fieldTypes/video.js +2 -2
  123. package/dist/esm/fieldTypes/video.js.map +1 -1
  124. package/dist/esm/generated/Client.js +1 -1
  125. package/dist/esm/generated/Client.js.map +1 -1
  126. package/dist/esm/generated/resources/Item.d.ts +46 -28
  127. package/dist/esm/generated/resources/Item.js.map +1 -1
  128. package/dist/esm/generated/resources/ScheduledPublication.d.ts +3 -3
  129. package/dist/esm/generated/resources/ScheduledUnpublishing.d.ts +3 -3
  130. package/dist/esm/generated/resources/Upload.d.ts +10 -4
  131. package/dist/esm/generated/resources/Upload.js.map +1 -1
  132. package/dist/esm/index.d.ts +4 -4
  133. package/dist/esm/index.js +4 -4
  134. package/dist/esm/index.js.map +1 -1
  135. package/dist/esm/utilities/buildBlockRecord.d.ts +3 -3
  136. package/dist/esm/utilities/buildBlockRecord.js +9 -8
  137. package/dist/esm/utilities/buildBlockRecord.js.map +1 -1
  138. package/dist/esm/utilities/inspectItem.d.ts +8 -0
  139. package/dist/esm/utilities/inspectItem.js +393 -0
  140. package/dist/esm/utilities/inspectItem.js.map +1 -0
  141. package/dist/esm/utilities/itemDefinition.d.ts +36 -12
  142. package/dist/esm/utilities/nonRecursiveBlocks.d.ts +179 -0
  143. package/dist/esm/utilities/{blocks.js → nonRecursiveBlocks.js} +91 -96
  144. package/dist/esm/utilities/nonRecursiveBlocks.js.map +1 -0
  145. package/dist/{types/utilities/fieldValue.d.ts → esm/utilities/normalizedFieldValues.d.ts} +15 -14
  146. package/dist/esm/utilities/{fieldValue.js → normalizedFieldValues.js} +39 -28
  147. package/dist/esm/utilities/normalizedFieldValues.js.map +1 -0
  148. package/dist/esm/utilities/recursiveBlocks.d.ts +92 -9
  149. package/dist/esm/utilities/recursiveBlocks.js +113 -72
  150. package/dist/esm/utilities/recursiveBlocks.js.map +1 -1
  151. package/dist/esm/utilities/schemaRepository.d.ts +2 -2
  152. package/dist/esm/utilities/schemaRepository.js +2 -2
  153. package/dist/types/fieldTypes/boolean.d.ts +1 -1
  154. package/dist/types/fieldTypes/color.d.ts +1 -1
  155. package/dist/types/fieldTypes/date.d.ts +1 -1
  156. package/dist/types/fieldTypes/date_time.d.ts +1 -1
  157. package/dist/types/fieldTypes/file.d.ts +68 -1
  158. package/dist/types/fieldTypes/float.d.ts +1 -1
  159. package/dist/types/fieldTypes/gallery.d.ts +27 -11
  160. package/dist/types/fieldTypes/index.d.ts +2 -2
  161. package/dist/types/fieldTypes/integer.d.ts +1 -1
  162. package/dist/types/fieldTypes/json.d.ts +1 -1
  163. package/dist/types/fieldTypes/lat_lon.d.ts +1 -1
  164. package/dist/types/fieldTypes/link.d.ts +1 -1
  165. package/dist/types/fieldTypes/links.d.ts +1 -1
  166. package/dist/types/fieldTypes/rich_text.d.ts +1 -1
  167. package/dist/types/fieldTypes/seo.d.ts +1 -1
  168. package/dist/types/fieldTypes/single_block.d.ts +3 -3
  169. package/dist/types/fieldTypes/slug.d.ts +1 -1
  170. package/dist/types/fieldTypes/string.d.ts +1 -1
  171. package/dist/types/fieldTypes/structured_text.d.ts +1 -1
  172. package/dist/types/fieldTypes/text.d.ts +1 -1
  173. package/dist/types/fieldTypes/video.d.ts +1 -1
  174. package/dist/types/generated/resources/Item.d.ts +46 -28
  175. package/dist/types/generated/resources/ScheduledPublication.d.ts +3 -3
  176. package/dist/types/generated/resources/ScheduledUnpublishing.d.ts +3 -3
  177. package/dist/types/generated/resources/Upload.d.ts +10 -4
  178. package/dist/types/index.d.ts +4 -4
  179. package/dist/types/utilities/buildBlockRecord.d.ts +3 -3
  180. package/dist/types/utilities/inspectItem.d.ts +8 -0
  181. package/dist/types/utilities/itemDefinition.d.ts +36 -12
  182. package/dist/types/utilities/nonRecursiveBlocks.d.ts +179 -0
  183. package/dist/{esm/utilities/fieldValue.d.ts → types/utilities/normalizedFieldValues.d.ts} +15 -14
  184. package/dist/types/utilities/recursiveBlocks.d.ts +92 -9
  185. package/dist/types/utilities/schemaRepository.d.ts +2 -2
  186. package/package.json +4 -4
  187. package/src/fieldTypes/boolean.ts +5 -3
  188. package/src/fieldTypes/color.ts +5 -3
  189. package/src/fieldTypes/date.ts +5 -4
  190. package/src/fieldTypes/date_time.ts +5 -3
  191. package/src/fieldTypes/file.ts +98 -4
  192. package/src/fieldTypes/float.ts +5 -3
  193. package/src/fieldTypes/gallery.ts +53 -20
  194. package/src/fieldTypes/index.ts +2 -3
  195. package/src/fieldTypes/integer.ts +5 -3
  196. package/src/fieldTypes/json.ts +5 -4
  197. package/src/fieldTypes/lat_lon.ts +5 -3
  198. package/src/fieldTypes/link.ts +7 -5
  199. package/src/fieldTypes/links.ts +8 -4
  200. package/src/fieldTypes/rich_text.ts +7 -7
  201. package/src/fieldTypes/seo.ts +5 -4
  202. package/src/fieldTypes/single_block.ts +12 -10
  203. package/src/fieldTypes/slug.ts +5 -4
  204. package/src/fieldTypes/string.ts +5 -3
  205. package/src/fieldTypes/structured_text.ts +7 -7
  206. package/src/fieldTypes/text.ts +5 -4
  207. package/src/fieldTypes/video.ts +5 -3
  208. package/src/generated/Client.ts +1 -1
  209. package/src/generated/resources/Item.ts +129 -92
  210. package/src/generated/resources/ScheduledPublication.ts +6 -6
  211. package/src/generated/resources/ScheduledUnpublishing.ts +6 -6
  212. package/src/generated/resources/Upload.ts +36 -10
  213. package/src/index.ts +4 -4
  214. package/src/utilities/buildBlockRecord.ts +24 -31
  215. package/src/utilities/inspectItem.ts +590 -0
  216. package/src/utilities/itemDefinition.ts +53 -35
  217. package/src/utilities/{blocks.ts → nonRecursiveBlocks.ts} +170 -136
  218. package/src/utilities/{fieldValue.ts → normalizedFieldValues.ts} +70 -30
  219. package/src/utilities/recursiveBlocks.ts +186 -171
  220. package/src/utilities/schemaRepository.ts +2 -2
  221. package/dist/cjs/utilities/blocks.js.map +0 -1
  222. package/dist/cjs/utilities/fieldValue.js.map +0 -1
  223. package/dist/esm/utilities/blocks.d.ts +0 -180
  224. package/dist/esm/utilities/blocks.js.map +0 -1
  225. package/dist/esm/utilities/fieldValue.js.map +0 -1
  226. package/dist/types/utilities/blocks.d.ts +0 -180
@@ -4,8 +4,10 @@ import type {
4
4
  DateFieldValue,
5
5
  DateTimeFieldValue,
6
6
  FileFieldValue,
7
+ FileFieldValueAsRequest,
7
8
  FloatFieldValue,
8
9
  GalleryFieldValue,
10
+ GalleryFieldValueAsRequest,
9
11
  IntegerFieldValue,
10
12
  JsonFieldValue,
11
13
  LatLonFieldValue,
@@ -26,7 +28,7 @@ import type {
26
28
  TextFieldValue,
27
29
  VideoFieldValue,
28
30
  } from '../fieldTypes';
29
- import type { LocalizedFieldValue } from './fieldValue';
31
+ import type { LocalizedFieldValue } from './normalizedFieldValues';
30
32
 
31
33
  /** Base field definition */
32
34
  type BaseFieldDefinition<Type extends string> = {
@@ -94,7 +96,7 @@ export type ItemDefinition<
94
96
  fields: FieldValues;
95
97
  };
96
98
 
97
- /** Standard field values */
99
+ /** Standard field values (response format) */
98
100
  type FieldTypeToValue = {
99
101
  boolean: BooleanFieldValue;
100
102
  color: ColorFieldValue;
@@ -119,6 +121,31 @@ type FieldTypeToValue = {
119
121
  unknown: unknown;
120
122
  };
121
123
 
124
+ /** Request field values (request format with optional metadata) */
125
+ type FieldTypeToValueAsRequest = {
126
+ boolean: BooleanFieldValue;
127
+ color: ColorFieldValue;
128
+ date: DateFieldValue;
129
+ date_time: DateTimeFieldValue;
130
+ file: FileFieldValueAsRequest;
131
+ float: FloatFieldValue;
132
+ gallery: GalleryFieldValueAsRequest;
133
+ integer: IntegerFieldValue;
134
+ json: JsonFieldValue;
135
+ lat_lon: LatLonFieldValue;
136
+ link: LinkFieldValue;
137
+ links: LinksFieldValue;
138
+ rich_text: RichTextFieldValueAsRequest;
139
+ seo: SeoFieldValue;
140
+ single_block: SingleBlockFieldValueAsRequest;
141
+ slug: SlugFieldValue;
142
+ string: StringFieldValue;
143
+ structured_text: StructuredTextFieldValueAsRequest;
144
+ text: TextFieldValue;
145
+ video: VideoFieldValue;
146
+ unknown: unknown;
147
+ };
148
+
122
149
  /** Localized wrapper */
123
150
  type LocalizeIfNeeded<
124
151
  T extends FieldDefinition,
@@ -139,33 +166,27 @@ type FieldDefinitionToFieldValueAsRequest<
139
166
  > = T extends RichTextFieldDefinition<infer B>
140
167
  ? LocalizeIfNeeded<
141
168
  T,
142
- RichTextFieldValueAsRequest<
143
- ItemTypeDefinitionToItemDefinitionAsRequest<B>
144
- >,
169
+ RichTextFieldValueAsRequest<ToItemDefinitionAsRequest<B>>,
145
170
  Locales
146
171
  >
147
172
  : T extends SingleBlockFieldDefinition<infer B>
148
173
  ? LocalizeIfNeeded<
149
174
  T,
150
- SingleBlockFieldValueAsRequest<
151
- ItemTypeDefinitionToItemDefinitionAsRequest<B>
152
- >,
175
+ SingleBlockFieldValueAsRequest<ToItemDefinitionAsRequest<B>>,
153
176
  Locales
154
177
  >
155
178
  : T extends StructuredTextFieldDefinition<infer B, infer I>
156
179
  ? LocalizeIfNeeded<
157
180
  T,
158
181
  StructuredTextFieldValueAsRequest<
159
- T extends { blocks: any }
160
- ? ItemTypeDefinitionToItemDefinitionAsRequest<B>
161
- : never,
182
+ T extends { blocks: any } ? ToItemDefinitionAsRequest<B> : never,
162
183
  T extends { inline_blocks: any }
163
- ? ItemTypeDefinitionToItemDefinitionAsRequest<I>
184
+ ? ToItemDefinitionAsRequest<I>
164
185
  : never
165
186
  >,
166
187
  Locales
167
188
  >
168
- : LocalizeIfNeeded<T, FieldTypeToValue[T['type']], Locales>;
189
+ : LocalizeIfNeeded<T, FieldTypeToValueAsRequest[T['type']], Locales>;
169
190
 
170
191
  type FieldDefinitionToFieldValueWithNestedBlocks<
171
192
  T extends FieldDefinition,
@@ -173,16 +194,14 @@ type FieldDefinitionToFieldValueWithNestedBlocks<
173
194
  > = T extends RichTextFieldDefinition<infer B>
174
195
  ? LocalizeIfNeeded<
175
196
  T,
176
- RichTextFieldValueWithNestedBlocks<
177
- ItemTypeDefinitionToItemDefinitionWithNestedBlocks<B>
178
- >,
197
+ RichTextFieldValueWithNestedBlocks<ToItemDefinitionWithNestedBlocks<B>>,
179
198
  Locales
180
199
  >
181
200
  : T extends SingleBlockFieldDefinition<infer B>
182
201
  ? LocalizeIfNeeded<
183
202
  T,
184
203
  SingleBlockFieldValueWithNestedBlocks<
185
- ItemTypeDefinitionToItemDefinitionWithNestedBlocks<B>
204
+ ToItemDefinitionWithNestedBlocks<B>
186
205
  >,
187
206
  Locales
188
207
  >
@@ -191,10 +210,10 @@ type FieldDefinitionToFieldValueWithNestedBlocks<
191
210
  T,
192
211
  StructuredTextFieldValueWithNestedBlocks<
193
212
  T extends { blocks: any }
194
- ? ItemTypeDefinitionToItemDefinitionWithNestedBlocks<B>
213
+ ? ToItemDefinitionWithNestedBlocks<B>
195
214
  : never,
196
215
  T extends { inline_blocks: any }
197
- ? ItemTypeDefinitionToItemDefinitionWithNestedBlocks<I>
216
+ ? ToItemDefinitionWithNestedBlocks<I>
198
217
  : never
199
218
  >,
200
219
  Locales
@@ -202,22 +221,21 @@ type FieldDefinitionToFieldValueWithNestedBlocks<
202
221
  : LocalizeIfNeeded<T, FieldTypeToValue[T['type']], Locales>;
203
222
 
204
223
  /** Transformers */
205
- export type ItemTypeDefinitionToItemDefinition<
206
- T extends ItemTypeDefinition<any, any, any>,
207
- > = T extends ItemTypeDefinition<infer Settings, infer ItemTypeId, infer Fields>
208
- ? keyof Fields extends never
209
- ? ItemDefinition<ItemTypeId>
210
- : ItemDefinition<
211
- ItemTypeId,
212
- {
213
- [K in keyof Fields]: Fields[K] extends FieldDefinition
214
- ? FieldDefinitionToFieldValue<Fields[K], Settings['locales']>
215
- : never;
216
- }
217
- >
218
- : never;
224
+ export type ToItemDefinition<T extends ItemTypeDefinition<any, any, any>> =
225
+ T extends ItemTypeDefinition<infer Settings, infer ItemTypeId, infer Fields>
226
+ ? keyof Fields extends never
227
+ ? ItemDefinition<ItemTypeId>
228
+ : ItemDefinition<
229
+ ItemTypeId,
230
+ {
231
+ [K in keyof Fields]: Fields[K] extends FieldDefinition
232
+ ? FieldDefinitionToFieldValue<Fields[K], Settings['locales']>
233
+ : never;
234
+ }
235
+ >
236
+ : never;
219
237
 
220
- export type ItemTypeDefinitionToItemDefinitionAsRequest<
238
+ export type ToItemDefinitionAsRequest<
221
239
  T extends ItemTypeDefinition<any, any, any>,
222
240
  > = T extends ItemTypeDefinition<infer Settings, infer ItemTypeId, infer Fields>
223
241
  ? keyof Fields extends never
@@ -235,7 +253,7 @@ export type ItemTypeDefinitionToItemDefinitionAsRequest<
235
253
  >
236
254
  : never;
237
255
 
238
- export type ItemTypeDefinitionToItemDefinitionWithNestedBlocks<
256
+ export type ToItemDefinitionWithNestedBlocks<
239
257
  T extends ItemTypeDefinition<any, any, any>,
240
258
  > = T extends ItemTypeDefinition<infer Settings, infer ItemTypeId, infer Fields>
241
259
  ? keyof Fields extends never