@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.
Files changed (118) hide show
  1. package/README.md +313 -178
  2. package/dist/cjs/fieldTypes/file.js +6 -6
  3. package/dist/cjs/fieldTypes/gallery.js +7 -7
  4. package/dist/cjs/fieldTypes/rich_text.js +14 -12
  5. package/dist/cjs/fieldTypes/rich_text.js.map +1 -1
  6. package/dist/cjs/fieldTypes/schema.js +3 -0
  7. package/dist/cjs/fieldTypes/schema.js.map +1 -0
  8. package/dist/cjs/fieldTypes/single_block.js +13 -12
  9. package/dist/cjs/fieldTypes/single_block.js.map +1 -1
  10. package/dist/cjs/fieldTypes/structured_text.js +13 -12
  11. package/dist/cjs/fieldTypes/structured_text.js.map +1 -1
  12. package/dist/cjs/generated/Client.js +1 -1
  13. package/dist/cjs/generated/resources/Item.js.map +1 -1
  14. package/dist/cjs/generated/resources/ScheduledPublication.js.map +1 -1
  15. package/dist/cjs/generated/resources/ScheduledUnpublishing.js.map +1 -1
  16. package/dist/cjs/generated/resources/Upload.js.map +1 -1
  17. package/dist/cjs/index.js +1 -0
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/utilities/buildBlockRecord.js +1 -46
  20. package/dist/cjs/utilities/buildBlockRecord.js.map +1 -1
  21. package/dist/cjs/utilities/duplicateBlockRecord.js +50 -0
  22. package/dist/cjs/utilities/duplicateBlockRecord.js.map +1 -0
  23. package/dist/cjs/utilities/inspectItem.js +50 -20
  24. package/dist/cjs/utilities/inspectItem.js.map +1 -1
  25. package/dist/cjs/utilities/nonRecursiveBlocks.js +1 -170
  26. package/dist/cjs/utilities/nonRecursiveBlocks.js.map +1 -1
  27. package/dist/cjs/utilities/recursiveBlocks.js +52 -112
  28. package/dist/cjs/utilities/recursiveBlocks.js.map +1 -1
  29. package/dist/esm/fieldTypes/file.d.ts +3 -3
  30. package/dist/esm/fieldTypes/file.js +3 -3
  31. package/dist/esm/fieldTypes/gallery.d.ts +5 -5
  32. package/dist/esm/fieldTypes/gallery.js +5 -5
  33. package/dist/esm/fieldTypes/rich_text.d.ts +8 -9
  34. package/dist/esm/fieldTypes/rich_text.js +9 -7
  35. package/dist/esm/fieldTypes/rich_text.js.map +1 -1
  36. package/dist/esm/fieldTypes/schema.d.ts +59 -0
  37. package/dist/esm/fieldTypes/schema.js +2 -0
  38. package/dist/esm/fieldTypes/schema.js.map +1 -0
  39. package/dist/esm/fieldTypes/single_block.d.ts +30 -15
  40. package/dist/esm/fieldTypes/single_block.js +8 -7
  41. package/dist/esm/fieldTypes/single_block.js.map +1 -1
  42. package/dist/esm/fieldTypes/structured_text.d.ts +14 -15
  43. package/dist/esm/fieldTypes/structured_text.js +8 -7
  44. package/dist/esm/fieldTypes/structured_text.js.map +1 -1
  45. package/dist/esm/generated/ApiTypes.d.ts +94 -980
  46. package/dist/esm/generated/Client.js +1 -1
  47. package/dist/esm/generated/RawApiTypes.d.ts +160 -999
  48. package/dist/esm/generated/resources/Field.d.ts +300 -300
  49. package/dist/esm/generated/resources/Item.d.ts +34 -34
  50. package/dist/esm/generated/resources/Item.js.map +1 -1
  51. package/dist/esm/generated/resources/ItemVersion.d.ts +3 -1
  52. package/dist/esm/generated/resources/ScheduledPublication.d.ts +3 -3
  53. package/dist/esm/generated/resources/ScheduledPublication.js.map +1 -1
  54. package/dist/esm/generated/resources/ScheduledUnpublishing.d.ts +3 -3
  55. package/dist/esm/generated/resources/ScheduledUnpublishing.js.map +1 -1
  56. package/dist/esm/generated/resources/Upload.d.ts +6 -6
  57. package/dist/esm/generated/resources/Upload.js.map +1 -1
  58. package/dist/esm/index.d.ts +1 -0
  59. package/dist/esm/index.js +1 -0
  60. package/dist/esm/index.js.map +1 -1
  61. package/dist/esm/utilities/buildBlockRecord.d.ts +11 -5
  62. package/dist/esm/utilities/buildBlockRecord.js +0 -44
  63. package/dist/esm/utilities/buildBlockRecord.js.map +1 -1
  64. package/dist/esm/utilities/duplicateBlockRecord.d.ts +6 -0
  65. package/dist/esm/utilities/duplicateBlockRecord.js +46 -0
  66. package/dist/esm/utilities/duplicateBlockRecord.js.map +1 -0
  67. package/dist/esm/utilities/inspectItem.d.ts +3 -3
  68. package/dist/esm/utilities/inspectItem.js +28 -21
  69. package/dist/esm/utilities/inspectItem.js.map +1 -1
  70. package/dist/esm/utilities/itemDefinition.d.ts +25 -27
  71. package/dist/esm/utilities/nonRecursiveBlocks.d.ts +10 -75
  72. package/dist/esm/utilities/nonRecursiveBlocks.js +1 -164
  73. package/dist/esm/utilities/nonRecursiveBlocks.js.map +1 -1
  74. package/dist/esm/utilities/recursiveBlocks.d.ts +53 -23
  75. package/dist/esm/utilities/recursiveBlocks.js +52 -112
  76. package/dist/esm/utilities/recursiveBlocks.js.map +1 -1
  77. package/dist/types/fieldTypes/file.d.ts +3 -3
  78. package/dist/types/fieldTypes/gallery.d.ts +5 -5
  79. package/dist/types/fieldTypes/rich_text.d.ts +8 -9
  80. package/dist/types/fieldTypes/schema.d.ts +59 -0
  81. package/dist/types/fieldTypes/single_block.d.ts +30 -15
  82. package/dist/types/fieldTypes/structured_text.d.ts +14 -15
  83. package/dist/types/generated/ApiTypes.d.ts +94 -980
  84. package/dist/types/generated/RawApiTypes.d.ts +160 -999
  85. package/dist/types/generated/resources/Field.d.ts +300 -300
  86. package/dist/types/generated/resources/Item.d.ts +34 -34
  87. package/dist/types/generated/resources/ItemVersion.d.ts +3 -1
  88. package/dist/types/generated/resources/ScheduledPublication.d.ts +3 -3
  89. package/dist/types/generated/resources/ScheduledUnpublishing.d.ts +3 -3
  90. package/dist/types/generated/resources/Upload.d.ts +6 -6
  91. package/dist/types/index.d.ts +1 -0
  92. package/dist/types/utilities/buildBlockRecord.d.ts +11 -5
  93. package/dist/types/utilities/duplicateBlockRecord.d.ts +6 -0
  94. package/dist/types/utilities/inspectItem.d.ts +3 -3
  95. package/dist/types/utilities/itemDefinition.d.ts +25 -27
  96. package/dist/types/utilities/nonRecursiveBlocks.d.ts +10 -75
  97. package/dist/types/utilities/recursiveBlocks.d.ts +53 -23
  98. package/package.json +4 -4
  99. package/src/fieldTypes/file.ts +6 -6
  100. package/src/fieldTypes/gallery.ts +10 -10
  101. package/src/fieldTypes/rich_text.ts +26 -24
  102. package/src/fieldTypes/schema.ts +657 -0
  103. package/src/fieldTypes/single_block.ts +61 -38
  104. package/src/fieldTypes/structured_text.ts +57 -51
  105. package/src/generated/ApiTypes.ts +221 -1880
  106. package/src/generated/Client.ts +1 -1
  107. package/src/generated/RawApiTypes.ts +276 -2113
  108. package/src/generated/resources/Item.ts +93 -187
  109. package/src/generated/resources/ScheduledPublication.ts +4 -15
  110. package/src/generated/resources/ScheduledUnpublishing.ts +4 -15
  111. package/src/generated/resources/Upload.ts +9 -32
  112. package/src/index.ts +1 -0
  113. package/src/utilities/buildBlockRecord.ts +16 -56
  114. package/src/utilities/duplicateBlockRecord.ts +53 -0
  115. package/src/utilities/inspectItem.ts +64 -52
  116. package/src/utilities/itemDefinition.ts +109 -98
  117. package/src/utilities/nonRecursiveBlocks.ts +25 -279
  118. package/src/utilities/recursiveBlocks.ts +337 -72
@@ -1,6 +1,6 @@
1
1
  import * as Utils from '@datocms/rest-client-utils';
2
2
  import BaseResource from '../../BaseResource';
3
- import type { ItemTypeDefinition, ToItemDefinition, ToItemDefinitionAsRequest, ToItemDefinitionWithNestedBlocks } from '../../utilities/itemDefinition';
3
+ import type { ItemTypeDefinition } from '../../utilities/itemDefinition';
4
4
  import type * as ApiTypes from '../ApiTypes';
5
5
  import type * as RawApiTypes from '../RawApiTypes';
6
6
  type NoInfer<T> = [T][T extends any ? 0 : never];
@@ -16,10 +16,10 @@ export default class Item extends BaseResource {
16
16
  */
17
17
  list<D extends ItemTypeDefinition = ItemTypeDefinition>(queryParams: ApiTypes.ItemInstancesHrefSchema & {
18
18
  nested: true;
19
- }): Promise<ApiTypes.ItemInstancesTargetSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
19
+ }): Promise<ApiTypes.ItemInstancesTargetSchema<NoInfer<D>, true>>;
20
20
  list<D extends ItemTypeDefinition = ItemTypeDefinition>(queryParams?: ApiTypes.ItemInstancesHrefSchema & {
21
21
  nested?: false | undefined;
22
- }): Promise<ApiTypes.ItemInstancesTargetSchema<ToItemDefinition<NoInfer<D>>>>;
22
+ }): Promise<ApiTypes.ItemInstancesTargetSchema<NoInfer<D>, false>>;
23
23
  /**
24
24
  * List all records
25
25
  *
@@ -30,11 +30,11 @@ export default class Item extends BaseResource {
30
30
  */
31
31
  rawList<D extends ItemTypeDefinition = ItemTypeDefinition>(queryParams: RawApiTypes.ItemInstancesHrefSchema & {
32
32
  nested: true;
33
- }): Promise<RawApiTypes.ItemInstancesTargetSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
33
+ }): Promise<RawApiTypes.ItemInstancesTargetSchema<NoInfer<D>, true>>;
34
34
  rawList<D extends ItemTypeDefinition = ItemTypeDefinition>(queryParams?: RawApiTypes.ItemInstancesHrefSchema & {
35
35
  nested?: false | undefined;
36
- }): Promise<RawApiTypes.ItemInstancesTargetSchema<ToItemDefinition<NoInfer<D>>>>;
37
- rawList<D extends ItemTypeDefinition = ItemTypeDefinition>(queryParams?: RawApiTypes.ItemInstancesHrefSchema): Promise<RawApiTypes.ItemInstancesTargetSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
36
+ }): Promise<RawApiTypes.ItemInstancesTargetSchema<NoInfer<D>, false>>;
37
+ rawList<D extends ItemTypeDefinition = ItemTypeDefinition>(queryParams?: RawApiTypes.ItemInstancesHrefSchema): Promise<RawApiTypes.ItemInstancesTargetSchema<NoInfer<D>, true>>;
38
38
  /**
39
39
  * Async iterator to auto-paginate over elements returned by list()
40
40
  *
@@ -43,7 +43,7 @@ export default class Item extends BaseResource {
43
43
  * @throws {ApiError}
44
44
  * @throws {TimeoutError}
45
45
  */
46
- listPagedIterator<D extends ItemTypeDefinition = ItemTypeDefinition>(queryParams?: Utils.OmitFromKnownKeys<ApiTypes.ItemInstancesHrefSchema, 'page'>, iteratorOptions?: Utils.IteratorOptions): AsyncGenerator<ApiTypes.ApplyItemDefinitionToSchema<ApiTypes.RawItem, ToItemDefinitionWithNestedBlocks<NoInfer<D>>>, void, unknown>;
46
+ listPagedIterator<D extends ItemTypeDefinition = ItemTypeDefinition>(queryParams?: Utils.OmitFromKnownKeys<ApiTypes.ItemInstancesHrefSchema, 'page'>, iteratorOptions?: Utils.IteratorOptions): AsyncGenerator<ApiTypes.ItemInNestedResponse<NoInfer<D>>, void, unknown>;
47
47
  /**
48
48
  * Async iterator to auto-paginate over elements returned by rawList()
49
49
  *
@@ -52,7 +52,7 @@ export default class Item extends BaseResource {
52
52
  * @throws {ApiError}
53
53
  * @throws {TimeoutError}
54
54
  */
55
- rawListPagedIterator<D extends ItemTypeDefinition = ItemTypeDefinition>(queryParams?: Utils.OmitFromKnownKeys<RawApiTypes.ItemInstancesHrefSchema, 'page'>, iteratorOptions?: Utils.IteratorOptions): AsyncGenerator<Awaited<RawApiTypes.ApplyItemDefinitionToSchema<RawApiTypes.RawItem, ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>, void, unknown>;
55
+ rawListPagedIterator<D extends ItemTypeDefinition = ItemTypeDefinition>(queryParams?: Utils.OmitFromKnownKeys<RawApiTypes.ItemInstancesHrefSchema, 'page'>, iteratorOptions?: Utils.IteratorOptions): AsyncGenerator<RawApiTypes.ItemInNestedResponse<NoInfer<D>>, void, unknown>;
56
56
  /**
57
57
  * Validates an existing record field
58
58
  *
@@ -63,7 +63,7 @@ export default class Item extends BaseResource {
63
63
  *
64
64
  * @deprecated This API call is to be considered private and might change without notice
65
65
  */
66
- validateExisting<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData, body: ApiTypes.ItemValidateExistingSchema<ToItemDefinitionAsRequest<NoInfer<D>>>): Promise<void>;
66
+ validateExisting<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData, body: ApiTypes.ItemValidateExistingSchema<NoInfer<D>>): Promise<void>;
67
67
  /**
68
68
  * Validates an existing record field
69
69
  *
@@ -74,7 +74,7 @@ export default class Item extends BaseResource {
74
74
  *
75
75
  * @deprecated This API call is to be considered private and might change without notice
76
76
  */
77
- rawValidateExisting<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string, body: RawApiTypes.ItemValidateExistingSchema<ToItemDefinitionAsRequest<NoInfer<D>>>): Promise<void>;
77
+ rawValidateExisting<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string, body: RawApiTypes.ItemValidateExistingSchema<NoInfer<D>>): Promise<void>;
78
78
  /**
79
79
  * Validates a record field
80
80
  *
@@ -85,7 +85,7 @@ export default class Item extends BaseResource {
85
85
  *
86
86
  * @deprecated This API call is to be considered private and might change without notice
87
87
  */
88
- validateNew<D extends ItemTypeDefinition = ItemTypeDefinition>(body: ApiTypes.ItemValidateNewSchema<ToItemDefinitionAsRequest<NoInfer<D>>>): Promise<void>;
88
+ validateNew<D extends ItemTypeDefinition = ItemTypeDefinition>(body: ApiTypes.ItemValidateNewSchema<NoInfer<D>>): Promise<void>;
89
89
  /**
90
90
  * Validates a record field
91
91
  *
@@ -96,7 +96,7 @@ export default class Item extends BaseResource {
96
96
  *
97
97
  * @deprecated This API call is to be considered private and might change without notice
98
98
  */
99
- rawValidateNew<D extends ItemTypeDefinition = ItemTypeDefinition>(body: RawApiTypes.ItemValidateNewSchema<ToItemDefinitionAsRequest<NoInfer<D>>>): Promise<void>;
99
+ rawValidateNew<D extends ItemTypeDefinition = ItemTypeDefinition>(body: RawApiTypes.ItemValidateNewSchema<NoInfer<D>>): Promise<void>;
100
100
  /**
101
101
  * Create a new record
102
102
  *
@@ -105,7 +105,7 @@ export default class Item extends BaseResource {
105
105
  * @throws {ApiError}
106
106
  * @throws {TimeoutError}
107
107
  */
108
- create<D extends ItemTypeDefinition = ItemTypeDefinition>(body: ApiTypes.ItemCreateSchema<ToItemDefinitionAsRequest<NoInfer<D>>>): Promise<ApiTypes.ApplyItemDefinitionToSchema<ApiTypes.RawItem, ToItemDefinition<NoInfer<D>>>>;
108
+ create<D extends ItemTypeDefinition = ItemTypeDefinition>(body: ApiTypes.ItemCreateSchema<NoInfer<D>>): Promise<ApiTypes.Item<NoInfer<D>>>;
109
109
  /**
110
110
  * Create a new record
111
111
  *
@@ -114,7 +114,7 @@ export default class Item extends BaseResource {
114
114
  * @throws {ApiError}
115
115
  * @throws {TimeoutError}
116
116
  */
117
- rawCreate<D extends ItemTypeDefinition = ItemTypeDefinition>(body: RawApiTypes.ItemCreateSchema<ToItemDefinitionAsRequest<NoInfer<D>>>): Promise<RawApiTypes.ItemCreateTargetSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
117
+ rawCreate<D extends ItemTypeDefinition = ItemTypeDefinition>(body: RawApiTypes.ItemCreateSchema<NoInfer<D>>): Promise<RawApiTypes.ItemCreateTargetSchema<NoInfer<D>, true>>;
118
118
  /**
119
119
  * Duplicate a record
120
120
  *
@@ -123,7 +123,7 @@ export default class Item extends BaseResource {
123
123
  * @throws {ApiError}
124
124
  * @throws {TimeoutError}
125
125
  */
126
- duplicate<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData): Promise<ApiTypes.ApplyItemDefinitionToSchema<ApiTypes.RawItem, ToItemDefinition<NoInfer<D>>>>;
126
+ duplicate<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData): Promise<ApiTypes.Item<NoInfer<D>>>;
127
127
  /**
128
128
  * Duplicate a record
129
129
  *
@@ -132,7 +132,7 @@ export default class Item extends BaseResource {
132
132
  * @throws {ApiError}
133
133
  * @throws {TimeoutError}
134
134
  */
135
- rawDuplicate<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string): Promise<RawApiTypes.ItemDuplicateJobSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
135
+ rawDuplicate<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string): Promise<RawApiTypes.ItemDuplicateJobSchema<NoInfer<D>, true>>;
136
136
  /**
137
137
  * Update a record
138
138
  *
@@ -141,7 +141,7 @@ export default class Item extends BaseResource {
141
141
  * @throws {ApiError}
142
142
  * @throws {TimeoutError}
143
143
  */
144
- update<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData, body: ApiTypes.ItemUpdateSchema<ToItemDefinitionAsRequest<NoInfer<D>>>): Promise<ApiTypes.ApplyItemDefinitionToSchema<ApiTypes.RawItem, ToItemDefinition<NoInfer<D>>>>;
144
+ update<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData, body: ApiTypes.ItemUpdateSchema<NoInfer<D>>): Promise<ApiTypes.Item<NoInfer<D>>>;
145
145
  /**
146
146
  * Update a record
147
147
  *
@@ -150,7 +150,7 @@ export default class Item extends BaseResource {
150
150
  * @throws {ApiError}
151
151
  * @throws {TimeoutError}
152
152
  */
153
- rawUpdate<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string, body: RawApiTypes.ItemUpdateSchema<ToItemDefinitionAsRequest<NoInfer<D>>>): Promise<RawApiTypes.ItemUpdateTargetSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
153
+ rawUpdate<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string, body: RawApiTypes.ItemUpdateSchema<NoInfer<D>>): Promise<RawApiTypes.ItemUpdateTargetSchema<NoInfer<D>, true>>;
154
154
  /**
155
155
  * Referenced records
156
156
  *
@@ -161,10 +161,10 @@ export default class Item extends BaseResource {
161
161
  */
162
162
  references<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData, queryParams: ApiTypes.ItemReferencesHrefSchema & {
163
163
  nested: true;
164
- }): Promise<ApiTypes.ItemReferencesTargetSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
164
+ }): Promise<ApiTypes.ItemReferencesTargetSchema<NoInfer<D>, true>>;
165
165
  references<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData, queryParams?: ApiTypes.ItemReferencesHrefSchema & {
166
166
  nested?: false | undefined;
167
- }): Promise<ApiTypes.ItemReferencesTargetSchema<ToItemDefinition<NoInfer<D>>>>;
167
+ }): Promise<ApiTypes.ItemReferencesTargetSchema<NoInfer<D>, false>>;
168
168
  /**
169
169
  * Referenced records
170
170
  *
@@ -175,11 +175,11 @@ export default class Item extends BaseResource {
175
175
  */
176
176
  rawReferences<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string, queryParams: RawApiTypes.ItemReferencesHrefSchema & {
177
177
  nested: true;
178
- }): Promise<RawApiTypes.ItemReferencesTargetSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
178
+ }): Promise<RawApiTypes.ItemReferencesTargetSchema<NoInfer<D>, true>>;
179
179
  rawReferences<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string, queryParams?: RawApiTypes.ItemReferencesHrefSchema & {
180
180
  nested?: false | undefined;
181
- }): Promise<RawApiTypes.ItemReferencesTargetSchema<ToItemDefinition<NoInfer<D>>>>;
182
- rawReferences<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string, queryParams?: RawApiTypes.ItemReferencesHrefSchema): Promise<RawApiTypes.ItemReferencesTargetSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
181
+ }): Promise<RawApiTypes.ItemReferencesTargetSchema<NoInfer<D>, false>>;
182
+ rawReferences<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string, queryParams?: RawApiTypes.ItemReferencesHrefSchema): Promise<RawApiTypes.ItemReferencesTargetSchema<NoInfer<D>, true>>;
183
183
  /**
184
184
  * Retrieve a record
185
185
  *
@@ -190,10 +190,10 @@ export default class Item extends BaseResource {
190
190
  */
191
191
  find<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData, queryParams: ApiTypes.ItemSelfHrefSchema & {
192
192
  nested: true;
193
- }): Promise<ApiTypes.ItemSelfTargetSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
193
+ }): Promise<ApiTypes.ItemSelfTargetSchema<NoInfer<D>, true>>;
194
194
  find<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData, queryParams?: ApiTypes.ItemSelfHrefSchema & {
195
195
  nested?: false | undefined;
196
- }): Promise<ApiTypes.ItemSelfTargetSchema<ToItemDefinition<NoInfer<D>>>>;
196
+ }): Promise<ApiTypes.ItemSelfTargetSchema<NoInfer<D>, false>>;
197
197
  /**
198
198
  * Retrieve a record
199
199
  *
@@ -204,11 +204,11 @@ export default class Item extends BaseResource {
204
204
  */
205
205
  rawFind<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string, queryParams: RawApiTypes.ItemSelfHrefSchema & {
206
206
  nested: true;
207
- }): Promise<RawApiTypes.ItemSelfTargetSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
207
+ }): Promise<RawApiTypes.ItemSelfTargetSchema<NoInfer<D>, true>>;
208
208
  rawFind<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string, queryParams?: RawApiTypes.ItemSelfHrefSchema & {
209
209
  nested?: false | undefined;
210
- }): Promise<RawApiTypes.ItemSelfTargetSchema<ToItemDefinition<NoInfer<D>>>>;
211
- rawFind<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string, queryParams?: RawApiTypes.ItemSelfHrefSchema): Promise<RawApiTypes.ItemSelfTargetSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
210
+ }): Promise<RawApiTypes.ItemSelfTargetSchema<NoInfer<D>, false>>;
211
+ rawFind<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string, queryParams?: RawApiTypes.ItemSelfHrefSchema): Promise<RawApiTypes.ItemSelfTargetSchema<NoInfer<D>, true>>;
212
212
  /**
213
213
  * Retrieve information regarding changes between current and published versions of the record
214
214
  *
@@ -239,7 +239,7 @@ export default class Item extends BaseResource {
239
239
  * @throws {ApiError}
240
240
  * @throws {TimeoutError}
241
241
  */
242
- destroy<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData): Promise<ApiTypes.ApplyItemDefinitionToSchema<ApiTypes.RawItem, ToItemDefinition<NoInfer<D>>>>;
242
+ destroy<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData): Promise<ApiTypes.Item<NoInfer<D>>>;
243
243
  /**
244
244
  * Delete a record
245
245
  *
@@ -248,7 +248,7 @@ export default class Item extends BaseResource {
248
248
  * @throws {ApiError}
249
249
  * @throws {TimeoutError}
250
250
  */
251
- rawDestroy<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string): Promise<RawApiTypes.ItemDestroyJobSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
251
+ rawDestroy<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string): Promise<RawApiTypes.ItemDestroyJobSchema<NoInfer<D>, true>>;
252
252
  /**
253
253
  * Publish a record
254
254
  *
@@ -257,7 +257,7 @@ export default class Item extends BaseResource {
257
257
  * @throws {ApiError}
258
258
  * @throws {TimeoutError}
259
259
  */
260
- publish<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData, body?: ApiTypes.ItemPublishSchema, queryParams?: ApiTypes.ItemPublishHrefSchema): Promise<ApiTypes.ApplyItemDefinitionToSchema<ApiTypes.RawItem, ToItemDefinition<NoInfer<D>>>>;
260
+ publish<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData, body?: ApiTypes.ItemPublishSchema, queryParams?: ApiTypes.ItemPublishHrefSchema): Promise<ApiTypes.Item<NoInfer<D>>>;
261
261
  /**
262
262
  * Publish a record
263
263
  *
@@ -266,7 +266,7 @@ export default class Item extends BaseResource {
266
266
  * @throws {ApiError}
267
267
  * @throws {TimeoutError}
268
268
  */
269
- rawPublish<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string, body?: RawApiTypes.ItemPublishSchema, queryParams?: RawApiTypes.ItemPublishHrefSchema): Promise<RawApiTypes.ItemPublishTargetSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
269
+ rawPublish<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string, body?: RawApiTypes.ItemPublishSchema, queryParams?: RawApiTypes.ItemPublishHrefSchema): Promise<RawApiTypes.ItemPublishTargetSchema<NoInfer<D>, true>>;
270
270
  /**
271
271
  * Unpublish a record
272
272
  *
@@ -275,7 +275,7 @@ export default class Item extends BaseResource {
275
275
  * @throws {ApiError}
276
276
  * @throws {TimeoutError}
277
277
  */
278
- unpublish<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData, body?: ApiTypes.ItemUnpublishSchema, queryParams?: ApiTypes.ItemUnpublishHrefSchema): Promise<ApiTypes.ApplyItemDefinitionToSchema<ApiTypes.RawItem, ToItemDefinition<NoInfer<D>>>>;
278
+ unpublish<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData, body?: ApiTypes.ItemUnpublishSchema, queryParams?: ApiTypes.ItemUnpublishHrefSchema): Promise<ApiTypes.Item<NoInfer<D>>>;
279
279
  /**
280
280
  * Unpublish a record
281
281
  *
@@ -284,7 +284,7 @@ export default class Item extends BaseResource {
284
284
  * @throws {ApiError}
285
285
  * @throws {TimeoutError}
286
286
  */
287
- rawUnpublish<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string, body?: RawApiTypes.ItemUnpublishSchema, queryParams?: RawApiTypes.ItemUnpublishHrefSchema): Promise<RawApiTypes.ItemUnpublishTargetSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
287
+ rawUnpublish<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string, body?: RawApiTypes.ItemUnpublishSchema, queryParams?: RawApiTypes.ItemUnpublishHrefSchema): Promise<RawApiTypes.ItemUnpublishTargetSchema<NoInfer<D>, true>>;
288
288
  /**
289
289
  * Publish items in bulk
290
290
  *
@@ -12,7 +12,9 @@ export default class ItemVersion extends BaseResource {
12
12
  * @throws {ApiError}
13
13
  * @throws {TimeoutError}
14
14
  */
15
- restore(itemVersionId: string | ApiTypes.ItemVersionData): Promise<ApiTypes.ItemVersionRestoreJobSchema<import("../..").ItemDefinition<string, Record<string, unknown>>>>;
15
+ restore(itemVersionId: string | ApiTypes.ItemVersionData): Promise<[ApiTypes.Item<import("../..").ItemTypeDefinition<{
16
+ locales: string;
17
+ }, string, {}>>, ApiTypes.ItemVersion]>;
16
18
  /**
17
19
  * Restore an old record version
18
20
  *
@@ -1,5 +1,5 @@
1
1
  import BaseResource from '../../BaseResource';
2
- import type { ItemTypeDefinition, ToItemDefinition, ToItemDefinitionWithNestedBlocks } from '../../utilities/itemDefinition';
2
+ import type { ItemTypeDefinition } from '../../utilities/itemDefinition';
3
3
  import type * as ApiTypes from '../ApiTypes';
4
4
  import type * as RawApiTypes from '../RawApiTypes';
5
5
  type NoInfer<T> = [T][T extends any ? 0 : never];
@@ -31,7 +31,7 @@ export default class ScheduledPublication extends BaseResource {
31
31
  * @throws {ApiError}
32
32
  * @throws {TimeoutError}
33
33
  */
34
- destroy<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData): Promise<ApiTypes.ApplyItemDefinitionToSchema<ApiTypes.RawItem, ToItemDefinition<NoInfer<D>>>>;
34
+ destroy<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData): Promise<ApiTypes.Item<NoInfer<D>>>;
35
35
  /**
36
36
  * Delete a scheduled publication
37
37
  *
@@ -40,6 +40,6 @@ export default class ScheduledPublication extends BaseResource {
40
40
  * @throws {ApiError}
41
41
  * @throws {TimeoutError}
42
42
  */
43
- rawDestroy<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string): Promise<RawApiTypes.ScheduledPublicationDestroyTargetSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
43
+ rawDestroy<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string): Promise<RawApiTypes.ScheduledPublicationDestroyTargetSchema<NoInfer<D>, true>>;
44
44
  }
45
45
  export {};
@@ -1,5 +1,5 @@
1
1
  import BaseResource from '../../BaseResource';
2
- import type { ItemTypeDefinition, ToItemDefinition, ToItemDefinitionWithNestedBlocks } from '../../utilities/itemDefinition';
2
+ import type { ItemTypeDefinition } from '../../utilities/itemDefinition';
3
3
  import type * as ApiTypes from '../ApiTypes';
4
4
  import type * as RawApiTypes from '../RawApiTypes';
5
5
  type NoInfer<T> = [T][T extends any ? 0 : never];
@@ -31,7 +31,7 @@ export default class ScheduledUnpublishing extends BaseResource {
31
31
  * @throws {ApiError}
32
32
  * @throws {TimeoutError}
33
33
  */
34
- destroy<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData): Promise<ApiTypes.ApplyItemDefinitionToSchema<ApiTypes.RawItem, ToItemDefinition<NoInfer<D>>>>;
34
+ destroy<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string | ApiTypes.ItemData): Promise<ApiTypes.Item<NoInfer<D>>>;
35
35
  /**
36
36
  * Delete a scheduled unpublishing
37
37
  *
@@ -40,6 +40,6 @@ export default class ScheduledUnpublishing extends BaseResource {
40
40
  * @throws {ApiError}
41
41
  * @throws {TimeoutError}
42
42
  */
43
- rawDestroy<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string): Promise<RawApiTypes.ScheduledUnpublishingDestroyTargetSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
43
+ rawDestroy<D extends ItemTypeDefinition = ItemTypeDefinition>(itemId: string): Promise<RawApiTypes.ScheduledUnpublishingDestroyTargetSchema<NoInfer<D>, true>>;
44
44
  }
45
45
  export {};
@@ -1,6 +1,6 @@
1
1
  import * as Utils from '@datocms/rest-client-utils';
2
2
  import BaseResource from '../../BaseResource';
3
- import type { ItemTypeDefinition, ToItemDefinition, ToItemDefinitionWithNestedBlocks } from '../../utilities/itemDefinition';
3
+ import type { ItemTypeDefinition } from '../../utilities/itemDefinition';
4
4
  import type * as ApiTypes from '../ApiTypes';
5
5
  import type * as RawApiTypes from '../RawApiTypes';
6
6
  type NoInfer<T> = [T][T extends any ? 0 : never];
@@ -124,10 +124,10 @@ export default class Upload extends BaseResource {
124
124
  */
125
125
  references<D extends ItemTypeDefinition = ItemTypeDefinition>(uploadId: string | ApiTypes.UploadData, queryParams: ApiTypes.UploadReferencesHrefSchema & {
126
126
  nested: true;
127
- }): Promise<ApiTypes.UploadReferencesTargetSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
127
+ }): Promise<ApiTypes.UploadReferencesTargetSchema<NoInfer<D>, true>>;
128
128
  references<D extends ItemTypeDefinition = ItemTypeDefinition>(uploadId: string | ApiTypes.UploadData, queryParams?: ApiTypes.UploadReferencesHrefSchema & {
129
129
  nested?: false | undefined;
130
- }): Promise<ApiTypes.UploadReferencesTargetSchema<ToItemDefinition<NoInfer<D>>>>;
130
+ }): Promise<ApiTypes.UploadReferencesTargetSchema<NoInfer<D>, false>>;
131
131
  /**
132
132
  * Referenced records
133
133
  *
@@ -138,11 +138,11 @@ export default class Upload extends BaseResource {
138
138
  */
139
139
  rawReferences<D extends ItemTypeDefinition = ItemTypeDefinition>(uploadId: string, queryParams: RawApiTypes.UploadReferencesHrefSchema & {
140
140
  nested: true;
141
- }): Promise<RawApiTypes.UploadReferencesTargetSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
141
+ }): Promise<RawApiTypes.UploadReferencesTargetSchema<NoInfer<D>, true>>;
142
142
  rawReferences<D extends ItemTypeDefinition = ItemTypeDefinition>(uploadId: string, queryParams?: RawApiTypes.UploadReferencesHrefSchema & {
143
143
  nested?: false | undefined;
144
- }): Promise<RawApiTypes.UploadReferencesTargetSchema<ToItemDefinition<NoInfer<D>>>>;
145
- rawReferences<D extends ItemTypeDefinition = ItemTypeDefinition>(uploadId: string, queryParams?: RawApiTypes.UploadReferencesHrefSchema): Promise<RawApiTypes.UploadReferencesTargetSchema<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>>;
144
+ }): Promise<RawApiTypes.UploadReferencesTargetSchema<NoInfer<D>, false>>;
145
+ rawReferences<D extends ItemTypeDefinition = ItemTypeDefinition>(uploadId: string, queryParams?: RawApiTypes.UploadReferencesHrefSchema): Promise<RawApiTypes.UploadReferencesTargetSchema<NoInfer<D>, true>>;
146
146
  /**
147
147
  * Add tags to assets in bulk
148
148
  *
@@ -5,6 +5,7 @@ export { Client } from './generated/Client';
5
5
  export type { ClientConfigOptions } from './generated/Client';
6
6
  export * as Resources from './generated/resources';
7
7
  export * from './utilities/buildBlockRecord';
8
+ export * from './utilities/duplicateBlockRecord';
8
9
  export * from './utilities/fieldsContainingReferences';
9
10
  export * from './utilities/id';
10
11
  export * from './utilities/inspectItem';
@@ -1,8 +1,14 @@
1
- import type { ItemWithOptionalIdAndMeta, NewBlockInARequest } from '../fieldTypes';
1
+ import type { NewBlockInRequest } from '../fieldTypes';
2
2
  import type * as ApiTypes from '../generated/ApiTypes';
3
- import type { ItemTypeDefinition, ToItemDefinitionAsRequest, ToItemDefinitionWithNestedBlocks } from './itemDefinition';
4
- import type { SchemaRepository } from './schemaRepository';
3
+ import type { ItemTypeDefinition, ToItemAttributesInRequest } from './itemDefinition';
5
4
  type NoInfer<T> = [T][T extends any ? 0 : never];
6
- export declare function buildBlockRecord<D extends ItemTypeDefinition = ItemTypeDefinition>(body: ApiTypes.ItemUpdateSchema<ToItemDefinitionAsRequest<NoInfer<D>>>): NewBlockInARequest<ToItemDefinitionAsRequest<NoInfer<D>>>;
7
- export declare function duplicateBlockRecord<D extends ItemTypeDefinition = ItemTypeDefinition>(existingBlock: ItemWithOptionalIdAndMeta<ToItemDefinitionWithNestedBlocks<NoInfer<D>>>, schemaRepository: SchemaRepository): Promise<NewBlockInARequest<ToItemDefinitionAsRequest<NoInfer<D>>>>;
5
+ type UpdateOrCreateBlockRecordSchema<D extends ItemTypeDefinition = ItemTypeDefinition> = {
6
+ id?: ApiTypes.ItemIdentity;
7
+ type?: ApiTypes.ItemType1;
8
+ item_type: ApiTypes.ItemTypeData<D>;
9
+ meta?: ApiTypes.ItemUpdateSchema['meta'];
10
+ creator?: ApiTypes.ItemUpdateSchema['creator'];
11
+ __itemTypeId?: D['itemTypeId'];
12
+ } & ToItemAttributesInRequest<D>;
13
+ export declare function buildBlockRecord<D extends ItemTypeDefinition = ItemTypeDefinition>(body: UpdateOrCreateBlockRecordSchema<NoInfer<D>>): NewBlockInRequest<NoInfer<D>>;
8
14
  export {};
@@ -0,0 +1,6 @@
1
+ import type { ItemWithOptionalIdAndMeta, NewBlockInRequest } from '../fieldTypes';
2
+ import type { ItemTypeDefinition } from './itemDefinition';
3
+ import type { SchemaRepository } from './schemaRepository';
4
+ type NoInfer<T> = [T][T extends any ? 0 : never];
5
+ export declare function duplicateBlockRecord<D extends ItemTypeDefinition = ItemTypeDefinition>(existingBlock: ItemWithOptionalIdAndMeta<NoInfer<D>>, schemaRepository: SchemaRepository): Promise<NewBlockInRequest<NoInfer<D>>>;
6
+ export {};
@@ -1,6 +1,6 @@
1
- import { type NewBlockInARequest, type UpdatedBlockInARequest } from '../fieldTypes';
2
- import { type ApiTypes, type RawApiTypes } from '../index';
3
- type Item = ApiTypes.Item | RawApiTypes.Item | NewBlockInARequest | UpdatedBlockInARequest | RawApiTypes.ItemCreateSchema | RawApiTypes.ItemUpdateSchema | ApiTypes.ItemCreateSchema | ApiTypes.ItemUpdateSchema;
1
+ import { type NewBlockInRequest, type UpdatedBlockInRequest } from '../fieldTypes';
2
+ import type { ApiTypes, RawApiTypes } from '../index';
3
+ type Item = ApiTypes.Item | RawApiTypes.Item | NewBlockInRequest | UpdatedBlockInRequest | RawApiTypes.ItemCreateSchema | RawApiTypes.ItemUpdateSchema | ApiTypes.ItemCreateSchema | ApiTypes.ItemUpdateSchema;
4
4
  export type InspectItemOptions = {
5
5
  maxWidth?: number;
6
6
  };
@@ -1,4 +1,4 @@
1
- import type { BooleanFieldValue, ColorFieldValue, DateFieldValue, DateTimeFieldValue, FileFieldValue, FileFieldValueAsRequest, FloatFieldValue, GalleryFieldValue, GalleryFieldValueAsRequest, IntegerFieldValue, JsonFieldValue, LatLonFieldValue, LinkFieldValue, LinksFieldValue, RichTextFieldValue, RichTextFieldValueAsRequest, RichTextFieldValueWithNestedBlocks, SeoFieldValue, SingleBlockFieldValue, SingleBlockFieldValueAsRequest, SingleBlockFieldValueWithNestedBlocks, SlugFieldValue, StringFieldValue, StructuredTextFieldValue, StructuredTextFieldValueAsRequest, StructuredTextFieldValueWithNestedBlocks, TextFieldValue, VideoFieldValue } from '../fieldTypes';
1
+ import type { BlockInNestedResponse, BlockInRequest, BooleanFieldValue, ColorFieldValue, DateFieldValue, DateTimeFieldValue, FileFieldValue, FileFieldValueInRequest, FloatFieldValue, GalleryFieldValue, GalleryFieldValueInRequest, IntegerFieldValue, JsonFieldValue, LatLonFieldValue, LinkFieldValue, LinksFieldValue, RichTextFieldValue, RichTextFieldValueInNestedResponse, RichTextFieldValueInRequest, SeoFieldValue, SingleBlockFieldValue, SingleBlockFieldValueInNestedResponse, SingleBlockFieldValueInRequest, SlugFieldValue, StringFieldValue, StructuredTextFieldValue, StructuredTextFieldValueInNestedResponse, StructuredTextFieldValueInRequest, TextFieldValue, VideoFieldValue } from '../fieldTypes';
2
2
  import type { LocalizedFieldValue } from './normalizedFieldValues';
3
3
  /** Base field definition */
4
4
  type BaseFieldDefinition<Type extends string> = {
@@ -27,11 +27,6 @@ export type ItemTypeDefinition<Settings extends {
27
27
  itemTypeId: ItemTypeId;
28
28
  fields: FieldDefinitions;
29
29
  };
30
- /** Item definition */
31
- export type ItemDefinition<ItemTypeId extends string = string, FieldValues extends Record<string, unknown> = Record<string, unknown>> = {
32
- itemTypeId: ItemTypeId;
33
- fields: FieldValues;
34
- };
35
30
  /** Standard field values (response format) */
36
31
  type FieldTypeToValue = {
37
32
  boolean: BooleanFieldValue;
@@ -57,25 +52,25 @@ type FieldTypeToValue = {
57
52
  unknown: unknown;
58
53
  };
59
54
  /** Request field values (request format with optional metadata) */
60
- type FieldTypeToValueAsRequest = {
55
+ type FieldTypeToValueInRequest = {
61
56
  boolean: BooleanFieldValue;
62
57
  color: ColorFieldValue;
63
58
  date: DateFieldValue;
64
59
  date_time: DateTimeFieldValue;
65
- file: FileFieldValueAsRequest;
60
+ file: FileFieldValueInRequest;
66
61
  float: FloatFieldValue;
67
- gallery: GalleryFieldValueAsRequest;
62
+ gallery: GalleryFieldValueInRequest;
68
63
  integer: IntegerFieldValue;
69
64
  json: JsonFieldValue;
70
65
  lat_lon: LatLonFieldValue;
71
66
  link: LinkFieldValue;
72
67
  links: LinksFieldValue;
73
- rich_text: RichTextFieldValueAsRequest;
68
+ rich_text: RichTextFieldValueInRequest;
74
69
  seo: SeoFieldValue;
75
- single_block: SingleBlockFieldValueAsRequest;
70
+ single_block: SingleBlockFieldValueInRequest;
76
71
  slug: SlugFieldValue;
77
72
  string: StringFieldValue;
78
- structured_text: StructuredTextFieldValueAsRequest;
73
+ structured_text: StructuredTextFieldValueInRequest;
79
74
  text: TextFieldValue;
80
75
  video: VideoFieldValue;
81
76
  unknown: unknown;
@@ -86,26 +81,29 @@ type LocalizeIfNeeded<T extends FieldDefinition, Value, Locales extends string>
86
81
  } ? LocalizedFieldValue<Value, Locales> : Value;
87
82
  /** Standard mapping */
88
83
  type FieldDefinitionToFieldValue<T extends FieldDefinition, Locales extends string> = LocalizeIfNeeded<T, FieldTypeToValue[T['type']], Locales>;
89
- /** AsRequest mapping (block fields become generic over allowed blocks) */
90
- type FieldDefinitionToFieldValueAsRequest<T extends FieldDefinition, Locales extends string> = T extends RichTextFieldDefinition<infer B> ? LocalizeIfNeeded<T, RichTextFieldValueAsRequest<ToItemDefinitionAsRequest<B>>, Locales> : T extends SingleBlockFieldDefinition<infer B> ? LocalizeIfNeeded<T, SingleBlockFieldValueAsRequest<ToItemDefinitionAsRequest<B>>, Locales> : T extends StructuredTextFieldDefinition<infer B, infer I> ? LocalizeIfNeeded<T, StructuredTextFieldValueAsRequest<T extends {
84
+ /** InRequest mapping (block fields become generic over allowed blocks) */
85
+ type FieldDefinitionToFieldValueInRequest<T extends FieldDefinition, Locales extends string> = T extends RichTextFieldDefinition<infer B> ? LocalizeIfNeeded<T, RichTextFieldValueInRequest<B>, Locales> : T extends SingleBlockFieldDefinition<infer B> ? LocalizeIfNeeded<T, SingleBlockFieldValueInRequest<B>, Locales> : T extends StructuredTextFieldDefinition<infer B, infer I> ? LocalizeIfNeeded<T, StructuredTextFieldValueInRequest<T extends {
91
86
  blocks: any;
92
- } ? ToItemDefinitionAsRequest<B> : never, T extends {
87
+ } ? B : never, T extends {
93
88
  inline_blocks: any;
94
- } ? ToItemDefinitionAsRequest<I> : never>, Locales> : LocalizeIfNeeded<T, FieldTypeToValueAsRequest[T['type']], Locales>;
95
- type FieldDefinitionToFieldValueWithNestedBlocks<T extends FieldDefinition, Locales extends string> = T extends RichTextFieldDefinition<infer B> ? LocalizeIfNeeded<T, RichTextFieldValueWithNestedBlocks<ToItemDefinitionWithNestedBlocks<B>>, Locales> : T extends SingleBlockFieldDefinition<infer B> ? LocalizeIfNeeded<T, SingleBlockFieldValueWithNestedBlocks<ToItemDefinitionWithNestedBlocks<B>>, Locales> : T extends StructuredTextFieldDefinition<infer B, infer I> ? LocalizeIfNeeded<T, StructuredTextFieldValueWithNestedBlocks<T extends {
89
+ } ? I : never>, Locales> : LocalizeIfNeeded<T, FieldTypeToValueInRequest[T['type']], Locales>;
90
+ type FieldDefinitionToFieldValueInNestedResponse<T extends FieldDefinition, Locales extends string> = T extends RichTextFieldDefinition<infer B> ? LocalizeIfNeeded<T, RichTextFieldValueInNestedResponse<B>, Locales> : T extends SingleBlockFieldDefinition<infer B> ? LocalizeIfNeeded<T, SingleBlockFieldValueInNestedResponse<B>, Locales> : T extends StructuredTextFieldDefinition<infer B, infer I> ? LocalizeIfNeeded<T, StructuredTextFieldValueInNestedResponse<T extends {
96
91
  blocks: any;
97
- } ? ToItemDefinitionWithNestedBlocks<B> : never, T extends {
92
+ } ? B : never, T extends {
98
93
  inline_blocks: any;
99
- } ? ToItemDefinitionWithNestedBlocks<I> : never>, Locales> : LocalizeIfNeeded<T, FieldTypeToValue[T['type']], Locales>;
94
+ } ? I : never>, Locales> : LocalizeIfNeeded<T, FieldTypeToValue[T['type']], Locales>;
100
95
  /** Transformers */
101
- export type ToItemDefinition<T extends ItemTypeDefinition<any, any, any>> = T extends ItemTypeDefinition<infer Settings, infer ItemTypeId, infer Fields> ? keyof Fields extends never ? ItemDefinition<ItemTypeId> : ItemDefinition<ItemTypeId, {
96
+ export type ToItemAttributes<T extends ItemTypeDefinition<any, any, any>> = T extends ItemTypeDefinition<infer Settings, infer ItemTypeId, infer Fields> ? keyof Fields extends never ? Record<string, unknown> : {
102
97
  [K in keyof Fields]: Fields[K] extends FieldDefinition ? FieldDefinitionToFieldValue<Fields[K], Settings['locales']> : never;
98
+ } : never;
99
+ export type ToItemAttributesInRequest<T extends ItemTypeDefinition<any, any, any>> = T extends ItemTypeDefinition<infer Settings, infer ItemTypeId, infer Fields> ? keyof Fields extends never ? Record<string, unknown> : Partial<{
100
+ [K in keyof Fields]: Fields[K] extends FieldDefinition ? FieldDefinitionToFieldValueInRequest<Fields[K], Settings['locales']> : never;
103
101
  }> : never;
104
- export type ToItemDefinitionAsRequest<T extends ItemTypeDefinition<any, any, any>> = T extends ItemTypeDefinition<infer Settings, infer ItemTypeId, infer Fields> ? keyof Fields extends never ? ItemDefinition<ItemTypeId> : ItemDefinition<ItemTypeId, Partial<{
105
- [K in keyof Fields]: Fields[K] extends FieldDefinition ? FieldDefinitionToFieldValueAsRequest<Fields[K], Settings['locales']> : never;
106
- }>> : never;
107
- export type ToItemDefinitionWithNestedBlocks<T extends ItemTypeDefinition<any, any, any>> = T extends ItemTypeDefinition<infer Settings, infer ItemTypeId, infer Fields> ? keyof Fields extends never ? ItemDefinition<ItemTypeId> : ItemDefinition<ItemTypeId, {
108
- [K in keyof Fields]: Fields[K] extends FieldDefinition ? FieldDefinitionToFieldValueWithNestedBlocks<Fields[K], Settings['locales']> : never;
109
- }> : never;
110
- export type UnknownField = Record<string, unknown>;
102
+ export type ToItemAttributesInNestedResponse<T extends ItemTypeDefinition<any, any, any>> = T extends ItemTypeDefinition<infer Settings, infer ItemTypeId, infer Fields> ? keyof Fields extends never ? Record<string, unknown> : {
103
+ [K in keyof Fields]: Fields[K] extends FieldDefinition ? FieldDefinitionToFieldValueInNestedResponse<Fields[K], Settings['locales']> : never;
104
+ } : never;
105
+ type NestedItemTypeDefinitions<T extends ItemTypeDefinition<any, any, any>, Seen extends string = never> = T extends ItemTypeDefinition<any, infer Id, infer Fields> ? Id extends Seen ? never : {
106
+ [K in keyof Fields]: Fields[K] extends RichTextFieldDefinition<infer B> ? B | NestedItemTypeDefinitions<B, Seen | Id> : Fields[K] extends SingleBlockFieldDefinition<infer B> ? B | NestedItemTypeDefinitions<B, Seen | Id> : Fields[K] extends StructuredTextFieldDefinition<infer B, infer I> ? B | I | NestedItemTypeDefinitions<B, Seen | Id> | NestedItemTypeDefinitions<I, Seen | Id> : never;
107
+ }[keyof Fields] : never;
108
+ export type ExtractNestedBlocksFromFieldValue<T> = T extends RichTextFieldValueInNestedResponse<infer D> ? BlockInNestedResponse<D> | BlockInNestedResponse<NestedItemTypeDefinitions<D>> : T extends SingleBlockFieldValueInNestedResponse<infer D> ? BlockInNestedResponse<D> | BlockInNestedResponse<NestedItemTypeDefinitions<D>> : T extends StructuredTextFieldValueInNestedResponse<infer DB, infer DI> ? BlockInNestedResponse<DB> | BlockInNestedResponse<NestedItemTypeDefinitions<DB>> | BlockInNestedResponse<DI> | BlockInNestedResponse<NestedItemTypeDefinitions<DI>> : T extends StructuredTextFieldValueInNestedResponse<infer D> ? BlockInNestedResponse<D> | BlockInNestedResponse<NestedItemTypeDefinitions<D>> : T extends RichTextFieldValueInRequest<infer D> ? BlockInRequest<D> | BlockInRequest<NestedItemTypeDefinitions<D>> : T extends SingleBlockFieldValueInRequest<infer D> ? BlockInRequest<D> | BlockInRequest<NestedItemTypeDefinitions<D>> : T extends StructuredTextFieldValueInRequest<infer DB, infer DI> ? BlockInRequest<DB> | BlockInRequest<NestedItemTypeDefinitions<DB>> | BlockInRequest<DI> | BlockInRequest<NestedItemTypeDefinitions<DI>> : T extends StructuredTextFieldValueInRequest<infer D> ? BlockInRequest<D> | BlockInRequest<NestedItemTypeDefinitions<D>> : never;
111
109
  export {};