@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.
Files changed (253) hide show
  1. package/README.md +569 -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 +18 -18
  29. package/dist/cjs/fieldTypes/rich_text.js.map +1 -1
  30. package/dist/cjs/fieldTypes/schema.js +3 -0
  31. package/dist/cjs/fieldTypes/schema.js.map +1 -0
  32. package/dist/cjs/fieldTypes/seo.js +2 -3
  33. package/dist/cjs/fieldTypes/seo.js.map +1 -1
  34. package/dist/cjs/fieldTypes/single_block.js +20 -19
  35. package/dist/cjs/fieldTypes/single_block.js.map +1 -1
  36. package/dist/cjs/fieldTypes/slug.js +2 -3
  37. package/dist/cjs/fieldTypes/slug.js.map +1 -1
  38. package/dist/cjs/fieldTypes/string.js +2 -2
  39. package/dist/cjs/fieldTypes/string.js.map +1 -1
  40. package/dist/cjs/fieldTypes/structured_text.js +17 -18
  41. package/dist/cjs/fieldTypes/structured_text.js.map +1 -1
  42. package/dist/cjs/fieldTypes/text.js +2 -3
  43. package/dist/cjs/fieldTypes/text.js.map +1 -1
  44. package/dist/cjs/fieldTypes/video.js +2 -2
  45. package/dist/cjs/fieldTypes/video.js.map +1 -1
  46. package/dist/cjs/generated/Client.js +1 -1
  47. package/dist/cjs/generated/resources/Item.js.map +1 -1
  48. package/dist/cjs/generated/resources/ScheduledPublication.js.map +1 -1
  49. package/dist/cjs/generated/resources/ScheduledUnpublishing.js.map +1 -1
  50. package/dist/cjs/generated/resources/Upload.js.map +1 -1
  51. package/dist/cjs/index.js +5 -4
  52. package/dist/cjs/index.js.map +1 -1
  53. package/dist/cjs/utilities/buildBlockRecord.js +1 -45
  54. package/dist/cjs/utilities/buildBlockRecord.js.map +1 -1
  55. package/dist/cjs/utilities/duplicateBlockRecord.js +49 -0
  56. package/dist/cjs/utilities/duplicateBlockRecord.js.map +1 -0
  57. package/dist/cjs/utilities/inspectItem.js +427 -0
  58. package/dist/cjs/utilities/inspectItem.js.map +1 -0
  59. package/dist/cjs/utilities/{blocks.js → nonRecursiveBlocks.js} +60 -234
  60. package/dist/cjs/utilities/nonRecursiveBlocks.js.map +1 -0
  61. package/dist/cjs/utilities/{fieldValue.js → normalizedFieldValues.js} +53 -41
  62. package/dist/cjs/utilities/normalizedFieldValues.js.map +1 -0
  63. package/dist/cjs/utilities/recursiveBlocks.js +73 -92
  64. package/dist/cjs/utilities/recursiveBlocks.js.map +1 -1
  65. package/dist/cjs/utilities/schemaRepository.js +2 -2
  66. package/dist/esm/fieldTypes/boolean.d.ts +1 -1
  67. package/dist/esm/fieldTypes/boolean.js +2 -2
  68. package/dist/esm/fieldTypes/boolean.js.map +1 -1
  69. package/dist/esm/fieldTypes/color.d.ts +1 -1
  70. package/dist/esm/fieldTypes/color.js +2 -2
  71. package/dist/esm/fieldTypes/color.js.map +1 -1
  72. package/dist/esm/fieldTypes/date.d.ts +1 -1
  73. package/dist/esm/fieldTypes/date.js +2 -3
  74. package/dist/esm/fieldTypes/date.js.map +1 -1
  75. package/dist/esm/fieldTypes/date_time.d.ts +1 -1
  76. package/dist/esm/fieldTypes/date_time.js +2 -2
  77. package/dist/esm/fieldTypes/date_time.js.map +1 -1
  78. package/dist/esm/fieldTypes/file.d.ts +68 -1
  79. package/dist/esm/fieldTypes/file.js +29 -3
  80. package/dist/esm/fieldTypes/file.js.map +1 -1
  81. package/dist/esm/fieldTypes/float.d.ts +1 -1
  82. package/dist/esm/fieldTypes/float.js +2 -2
  83. package/dist/esm/fieldTypes/float.js.map +1 -1
  84. package/dist/esm/fieldTypes/gallery.d.ts +27 -11
  85. package/dist/esm/fieldTypes/gallery.js +17 -4
  86. package/dist/esm/fieldTypes/gallery.js.map +1 -1
  87. package/dist/esm/fieldTypes/index.d.ts +2 -2
  88. package/dist/esm/fieldTypes/index.js +2 -2
  89. package/dist/esm/fieldTypes/index.js.map +1 -1
  90. package/dist/esm/fieldTypes/integer.d.ts +1 -1
  91. package/dist/esm/fieldTypes/integer.js +2 -2
  92. package/dist/esm/fieldTypes/integer.js.map +1 -1
  93. package/dist/esm/fieldTypes/json.d.ts +1 -1
  94. package/dist/esm/fieldTypes/json.js +2 -3
  95. package/dist/esm/fieldTypes/json.js.map +1 -1
  96. package/dist/esm/fieldTypes/lat_lon.d.ts +1 -1
  97. package/dist/esm/fieldTypes/lat_lon.js +2 -2
  98. package/dist/esm/fieldTypes/lat_lon.js.map +1 -1
  99. package/dist/esm/fieldTypes/link.d.ts +1 -1
  100. package/dist/esm/fieldTypes/link.js +4 -4
  101. package/dist/esm/fieldTypes/link.js.map +1 -1
  102. package/dist/esm/fieldTypes/links.d.ts +1 -1
  103. package/dist/esm/fieldTypes/links.js +5 -3
  104. package/dist/esm/fieldTypes/links.js.map +1 -1
  105. package/dist/esm/fieldTypes/rich_text.d.ts +9 -10
  106. package/dist/esm/fieldTypes/rich_text.js +13 -13
  107. package/dist/esm/fieldTypes/rich_text.js.map +1 -1
  108. package/dist/esm/fieldTypes/schema.d.ts +59 -0
  109. package/dist/esm/fieldTypes/schema.js +2 -0
  110. package/dist/esm/fieldTypes/schema.js.map +1 -0
  111. package/dist/esm/fieldTypes/seo.d.ts +1 -1
  112. package/dist/esm/fieldTypes/seo.js +2 -3
  113. package/dist/esm/fieldTypes/seo.js.map +1 -1
  114. package/dist/esm/fieldTypes/single_block.d.ts +31 -16
  115. package/dist/esm/fieldTypes/single_block.js +15 -14
  116. package/dist/esm/fieldTypes/single_block.js.map +1 -1
  117. package/dist/esm/fieldTypes/slug.d.ts +1 -1
  118. package/dist/esm/fieldTypes/slug.js +2 -3
  119. package/dist/esm/fieldTypes/slug.js.map +1 -1
  120. package/dist/esm/fieldTypes/string.d.ts +1 -1
  121. package/dist/esm/fieldTypes/string.js +2 -2
  122. package/dist/esm/fieldTypes/string.js.map +1 -1
  123. package/dist/esm/fieldTypes/structured_text.d.ts +15 -16
  124. package/dist/esm/fieldTypes/structured_text.js +12 -13
  125. package/dist/esm/fieldTypes/structured_text.js.map +1 -1
  126. package/dist/esm/fieldTypes/text.d.ts +1 -1
  127. package/dist/esm/fieldTypes/text.js +2 -3
  128. package/dist/esm/fieldTypes/text.js.map +1 -1
  129. package/dist/esm/fieldTypes/video.d.ts +1 -1
  130. package/dist/esm/fieldTypes/video.js +2 -2
  131. package/dist/esm/fieldTypes/video.js.map +1 -1
  132. package/dist/esm/generated/ApiTypes.d.ts +90 -980
  133. package/dist/esm/generated/Client.js +1 -1
  134. package/dist/esm/generated/RawApiTypes.d.ts +156 -999
  135. package/dist/esm/generated/resources/Field.d.ts +200 -200
  136. package/dist/esm/generated/resources/Item.d.ts +34 -34
  137. package/dist/esm/generated/resources/Item.js.map +1 -1
  138. package/dist/esm/generated/resources/ItemVersion.d.ts +3 -1
  139. package/dist/esm/generated/resources/ScheduledPublication.d.ts +3 -3
  140. package/dist/esm/generated/resources/ScheduledPublication.js.map +1 -1
  141. package/dist/esm/generated/resources/ScheduledUnpublishing.d.ts +3 -3
  142. package/dist/esm/generated/resources/ScheduledUnpublishing.js.map +1 -1
  143. package/dist/esm/generated/resources/Upload.d.ts +6 -6
  144. package/dist/esm/generated/resources/Upload.js.map +1 -1
  145. package/dist/esm/index.d.ts +5 -4
  146. package/dist/esm/index.js +5 -4
  147. package/dist/esm/index.js.map +1 -1
  148. package/dist/esm/utilities/buildBlockRecord.d.ts +3 -5
  149. package/dist/esm/utilities/buildBlockRecord.js +0 -43
  150. package/dist/esm/utilities/buildBlockRecord.js.map +1 -1
  151. package/dist/esm/utilities/duplicateBlockRecord.d.ts +6 -0
  152. package/dist/esm/utilities/duplicateBlockRecord.js +45 -0
  153. package/dist/esm/utilities/duplicateBlockRecord.js.map +1 -0
  154. package/dist/esm/utilities/inspectItem.d.ts +8 -0
  155. package/dist/esm/utilities/inspectItem.js +400 -0
  156. package/dist/esm/utilities/inspectItem.js.map +1 -0
  157. package/dist/esm/utilities/itemDefinition.d.ts +45 -23
  158. package/dist/esm/utilities/nonRecursiveBlocks.d.ts +114 -0
  159. package/dist/esm/utilities/{blocks.js → nonRecursiveBlocks.js} +52 -220
  160. package/dist/esm/utilities/nonRecursiveBlocks.js.map +1 -0
  161. package/dist/{types/utilities/fieldValue.d.ts → esm/utilities/normalizedFieldValues.d.ts} +15 -14
  162. package/dist/esm/utilities/{fieldValue.js → normalizedFieldValues.js} +39 -28
  163. package/dist/esm/utilities/normalizedFieldValues.js.map +1 -0
  164. package/dist/esm/utilities/recursiveBlocks.d.ts +124 -11
  165. package/dist/esm/utilities/recursiveBlocks.js +65 -84
  166. package/dist/esm/utilities/recursiveBlocks.js.map +1 -1
  167. package/dist/esm/utilities/schemaRepository.d.ts +2 -2
  168. package/dist/esm/utilities/schemaRepository.js +2 -2
  169. package/dist/types/fieldTypes/boolean.d.ts +1 -1
  170. package/dist/types/fieldTypes/color.d.ts +1 -1
  171. package/dist/types/fieldTypes/date.d.ts +1 -1
  172. package/dist/types/fieldTypes/date_time.d.ts +1 -1
  173. package/dist/types/fieldTypes/file.d.ts +68 -1
  174. package/dist/types/fieldTypes/float.d.ts +1 -1
  175. package/dist/types/fieldTypes/gallery.d.ts +27 -11
  176. package/dist/types/fieldTypes/index.d.ts +2 -2
  177. package/dist/types/fieldTypes/integer.d.ts +1 -1
  178. package/dist/types/fieldTypes/json.d.ts +1 -1
  179. package/dist/types/fieldTypes/lat_lon.d.ts +1 -1
  180. package/dist/types/fieldTypes/link.d.ts +1 -1
  181. package/dist/types/fieldTypes/links.d.ts +1 -1
  182. package/dist/types/fieldTypes/rich_text.d.ts +9 -10
  183. package/dist/types/fieldTypes/schema.d.ts +59 -0
  184. package/dist/types/fieldTypes/seo.d.ts +1 -1
  185. package/dist/types/fieldTypes/single_block.d.ts +31 -16
  186. package/dist/types/fieldTypes/slug.d.ts +1 -1
  187. package/dist/types/fieldTypes/string.d.ts +1 -1
  188. package/dist/types/fieldTypes/structured_text.d.ts +15 -16
  189. package/dist/types/fieldTypes/text.d.ts +1 -1
  190. package/dist/types/fieldTypes/video.d.ts +1 -1
  191. package/dist/types/generated/ApiTypes.d.ts +90 -980
  192. package/dist/types/generated/RawApiTypes.d.ts +156 -999
  193. package/dist/types/generated/resources/Field.d.ts +200 -200
  194. package/dist/types/generated/resources/Item.d.ts +34 -34
  195. package/dist/types/generated/resources/ItemVersion.d.ts +3 -1
  196. package/dist/types/generated/resources/ScheduledPublication.d.ts +3 -3
  197. package/dist/types/generated/resources/ScheduledUnpublishing.d.ts +3 -3
  198. package/dist/types/generated/resources/Upload.d.ts +6 -6
  199. package/dist/types/index.d.ts +5 -4
  200. package/dist/types/utilities/buildBlockRecord.d.ts +3 -5
  201. package/dist/types/utilities/duplicateBlockRecord.d.ts +6 -0
  202. package/dist/types/utilities/inspectItem.d.ts +8 -0
  203. package/dist/types/utilities/itemDefinition.d.ts +45 -23
  204. package/dist/types/utilities/nonRecursiveBlocks.d.ts +114 -0
  205. package/dist/{esm/utilities/fieldValue.d.ts → types/utilities/normalizedFieldValues.d.ts} +15 -14
  206. package/dist/types/utilities/recursiveBlocks.d.ts +124 -11
  207. package/dist/types/utilities/schemaRepository.d.ts +2 -2
  208. package/package.json +4 -4
  209. package/src/fieldTypes/boolean.ts +5 -3
  210. package/src/fieldTypes/color.ts +5 -3
  211. package/src/fieldTypes/date.ts +5 -4
  212. package/src/fieldTypes/date_time.ts +5 -3
  213. package/src/fieldTypes/file.ts +98 -4
  214. package/src/fieldTypes/float.ts +5 -3
  215. package/src/fieldTypes/gallery.ts +53 -20
  216. package/src/fieldTypes/index.ts +2 -3
  217. package/src/fieldTypes/integer.ts +5 -3
  218. package/src/fieldTypes/json.ts +5 -4
  219. package/src/fieldTypes/lat_lon.ts +5 -3
  220. package/src/fieldTypes/link.ts +7 -5
  221. package/src/fieldTypes/links.ts +8 -4
  222. package/src/fieldTypes/rich_text.ts +33 -31
  223. package/src/fieldTypes/schema.ts +657 -0
  224. package/src/fieldTypes/seo.ts +5 -4
  225. package/src/fieldTypes/single_block.ts +71 -46
  226. package/src/fieldTypes/slug.ts +5 -4
  227. package/src/fieldTypes/string.ts +5 -3
  228. package/src/fieldTypes/structured_text.ts +64 -58
  229. package/src/fieldTypes/text.ts +5 -4
  230. package/src/fieldTypes/video.ts +5 -3
  231. package/src/generated/ApiTypes.ts +217 -1880
  232. package/src/generated/Client.ts +1 -1
  233. package/src/generated/RawApiTypes.ts +272 -2113
  234. package/src/generated/resources/Item.ts +93 -187
  235. package/src/generated/resources/ScheduledPublication.ts +4 -15
  236. package/src/generated/resources/ScheduledUnpublishing.ts +4 -15
  237. package/src/generated/resources/Upload.ts +9 -32
  238. package/src/index.ts +5 -4
  239. package/src/utilities/buildBlockRecord.ts +4 -59
  240. package/src/utilities/duplicateBlockRecord.ts +52 -0
  241. package/src/utilities/inspectItem.ts +602 -0
  242. package/src/utilities/itemDefinition.ts +130 -92
  243. package/src/utilities/nonRecursiveBlocks.ts +406 -0
  244. package/src/utilities/{fieldValue.ts → normalizedFieldValues.ts} +70 -30
  245. package/src/utilities/recursiveBlocks.ts +484 -204
  246. package/src/utilities/schemaRepository.ts +2 -2
  247. package/dist/cjs/utilities/blocks.js.map +0 -1
  248. package/dist/cjs/utilities/fieldValue.js.map +0 -1
  249. package/dist/esm/utilities/blocks.d.ts +0 -180
  250. package/dist/esm/utilities/blocks.js.map +0 -1
  251. package/dist/esm/utilities/fieldValue.js.map +0 -1
  252. package/dist/types/utilities/blocks.d.ts +0 -180
  253. package/src/utilities/blocks.ts +0 -626
@@ -0,0 +1,45 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __rest = (this && this.__rest) || function (s, e) {
11
+ var t = {};
12
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13
+ t[p] = s[p];
14
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
15
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
16
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17
+ t[p[i]] = s[p[i]];
18
+ }
19
+ return t;
20
+ };
21
+ import { mapBlocksInNonLocalizedFieldValue } from './recursiveBlocks';
22
+ export function duplicateBlockRecord(existingBlock, schemaRepository) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ const { type, attributes, relationships } = existingBlock;
25
+ const itemType = yield schemaRepository.getRawItemTypeById(existingBlock.relationships.item_type.data.id);
26
+ const newBlock = {
27
+ type,
28
+ relationships,
29
+ attributes,
30
+ };
31
+ const fields = yield schemaRepository.getRawItemTypeFields(itemType);
32
+ for (const field of fields) {
33
+ newBlock.attributes[field.attributes.api_key] =
34
+ yield mapBlocksInNonLocalizedFieldValue(newBlock.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, (block, path) => {
35
+ if (typeof block === 'string') {
36
+ throw new Error(`Block cannot be duplicated as it contains nested block at ${path.join('.')} that is expressed as ID (${block}) instead of full object!`);
37
+ }
38
+ const { id, meta } = block, blockWithoutIdAndMeta = __rest(block, ["id", "meta"]);
39
+ return blockWithoutIdAndMeta;
40
+ });
41
+ }
42
+ return newBlock;
43
+ });
44
+ }
45
+ //# sourceMappingURL=duplicateBlockRecord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duplicateBlockRecord.js","sourceRoot":"","sources":["../../../src/utilities/duplicateBlockRecord.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAKA,OAAO,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AAKtE,MAAM,UAAgB,oBAAoB,CAGxC,aAAoD,EACpD,gBAAkC;;QAElC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,aAAa,CAAC;QAE1D,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,kBAAkB,CACxD,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAC9C,CAAC;QAEF,MAAM,QAAQ,GAAG;YACf,IAAI;YACJ,aAAa;YACb,UAAU;SACU,CAAC;QAEvB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAErE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC3C,MAAM,iCAAiC,CACrC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAC7C,KAAK,CAAC,UAAU,CAAC,UAAU,EAC3B,gBAAgB,EAChB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;oBACd,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;wBAC7B,MAAM,IAAI,KAAK,CACb,6DAA6D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,KAAK,2BAA2B,CACzI,CAAC;qBACH;oBAED,MAAM,EAAE,EAAE,EAAE,IAAI,KAA+B,KAAK,EAA/B,qBAAqB,UAAK,KAAK,EAA9C,cAAsC,CAAQ,CAAC;oBAErD,OAAO,qBAA0C,CAAC;gBACpD,CAAC,CACF,CAAC;SACL;QAED,OAAO,QAAyC,CAAC;IACnD,CAAC;CAAA"}
@@ -0,0 +1,8 @@
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
+ export type InspectItemOptions = {
5
+ maxWidth?: number;
6
+ };
7
+ export declare function inspectItem(item: Item, options?: InspectItemOptions): string;
8
+ export {};
@@ -0,0 +1,400 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import * as Utils from '@datocms/rest-client-utils';
13
+ import { formatAsTree, inspectionTreeNodes, } from 'datocms-structured-text-utils';
14
+ import { isBooleanFieldValue, isColorFieldValue, isDateFieldValue, isDateTimeFieldValue, isFileFieldValue, isFileFieldValueInRequest, isFloatFieldValue, isGalleryFieldValue, isGalleryFieldValueInRequest, isIntegerFieldValue, isJsonFieldValue, isLatLonFieldValue, isLinkFieldValue, isLinksFieldValue, isRichTextFieldValue, isRichTextFieldValueInNestedResponse, isRichTextFieldValueInRequest, isSeoFieldValue, isSingleBlockFieldValue, isSingleBlockFieldValueInNestedResponse, isSingleBlockFieldValueInRequest, isSlugFieldValue, isStringFieldValue, isStructuredTextFieldValue, isStructuredTextFieldValueInNestedResponse, isStructuredTextFieldValueInRequest, isTextFieldValue, isVideoFieldValue, } from '../fieldTypes';
15
+ import { Item as ItemResource } from '../generated/resources';
16
+ import { isLocalizedFieldValue } from './normalizedFieldValues';
17
+ const fieldTypeHandlers = [
18
+ { guard: isBooleanFieldValue, inspect: booleanInspectionTreeNodes },
19
+ { guard: isFloatFieldValue, inspect: floatInspectionTreeNodes },
20
+ { guard: isIntegerFieldValue, inspect: integerInspectionTreeNodes },
21
+ { guard: isColorFieldValue, inspect: colorInspectionTreeNodes },
22
+ { guard: isDateFieldValue, inspect: dateInspectionTreeNodes },
23
+ { guard: isDateTimeFieldValue, inspect: dateTimeInspectionTreeNodes },
24
+ { guard: isGalleryFieldValue, inspect: galleryInspectionTreeNodes },
25
+ { guard: isGalleryFieldValueInRequest, inspect: galleryInspectionTreeNodes },
26
+ { guard: isFileFieldValue, inspect: fileInspectionTreeNodes },
27
+ { guard: isFileFieldValueInRequest, inspect: fileInspectionTreeNodes },
28
+ { guard: isJsonFieldValue, inspect: jsonInspectionTreeNodes },
29
+ { guard: isSlugFieldValue, inspect: slugInspectionTreeNodes },
30
+ { guard: isStringFieldValue, inspect: stringInspectionTreeNodes },
31
+ { guard: isTextFieldValue, inspect: textInspectionTreeNodes },
32
+ { guard: isLatLonFieldValue, inspect: latLonInspectionTreeNodes },
33
+ { guard: isLinkFieldValue, inspect: linkInspectionTreeNodes },
34
+ { guard: isLinksFieldValue, inspect: linksInspectionTreeNodes },
35
+ { guard: isSeoFieldValue, inspect: seoFieldInspectionTreeNodes },
36
+ { guard: isVideoFieldValue, inspect: videoFieldInspectionTreeNodes },
37
+ {
38
+ guard: isStructuredTextFieldValue,
39
+ inspect: structuredTextInspectionTreeNodes,
40
+ },
41
+ {
42
+ guard: isStructuredTextFieldValueInRequest,
43
+ inspect: structuredTextInspectionTreeNodes,
44
+ },
45
+ {
46
+ guard: isStructuredTextFieldValueInNestedResponse,
47
+ inspect: structuredTextInspectionTreeNodes,
48
+ },
49
+ { guard: isSingleBlockFieldValue, inspect: singleBlockInspectionTreeNodes },
50
+ {
51
+ guard: isSingleBlockFieldValueInRequest,
52
+ inspect: singleBlockInspectionTreeNodes,
53
+ },
54
+ {
55
+ guard: isSingleBlockFieldValueInNestedResponse,
56
+ inspect: singleBlockInspectionTreeNodes,
57
+ },
58
+ { guard: isRichTextFieldValue, inspect: richTextInspectionTreeNodes },
59
+ {
60
+ guard: isRichTextFieldValueInRequest,
61
+ inspect: richTextInspectionTreeNodes,
62
+ },
63
+ {
64
+ guard: isRichTextFieldValueInNestedResponse,
65
+ inspect: richTextInspectionTreeNodes,
66
+ },
67
+ ];
68
+ function createChildNode(attributeName, inspectResult) {
69
+ if (typeof inspectResult === 'string') {
70
+ return { label: `${attributeName}: ${inspectResult}` };
71
+ }
72
+ if (Array.isArray(inspectResult)) {
73
+ return {
74
+ label: attributeName,
75
+ nodes: inspectResult,
76
+ };
77
+ }
78
+ // Single TreeNode
79
+ return {
80
+ label: attributeName,
81
+ nodes: [inspectResult],
82
+ };
83
+ }
84
+ function inspectFieldValue(value, options) {
85
+ if (isLocalizedFieldValue(value)) {
86
+ for (const handler of fieldTypeHandlers) {
87
+ if (Object.values(value).every((localeValue) => handler.guard(localeValue))) {
88
+ const localeEntries = Object.entries(value).sort(([a], [b]) => a.localeCompare(b));
89
+ return localeEntries.map(([locale, localeValue]) => {
90
+ const inspectResult = handler.inspect(localeValue, options);
91
+ if (typeof inspectResult === 'string') {
92
+ return { label: `${locale}: ${inspectResult}` };
93
+ }
94
+ if (Array.isArray(inspectResult)) {
95
+ return {
96
+ label: locale,
97
+ nodes: inspectResult,
98
+ };
99
+ }
100
+ // Single TreeNode
101
+ return {
102
+ label: locale,
103
+ nodes: [inspectResult],
104
+ };
105
+ });
106
+ }
107
+ }
108
+ }
109
+ for (const handler of fieldTypeHandlers) {
110
+ if (handler.guard(value)) {
111
+ return handler.inspect(value, options);
112
+ }
113
+ }
114
+ // Fallback for unknown field types
115
+ return `UNKNOWN: ${JSON.stringify(value)}`;
116
+ }
117
+ function normalizeItem(item) {
118
+ if ('attributes' in item) {
119
+ return item;
120
+ }
121
+ const { __itemTypeId } = item, itemWithoutItemTypeId = __rest(item, ["__itemTypeId"]);
122
+ return Utils.serializeRequestBody(itemWithoutItemTypeId, {
123
+ type: ItemResource.TYPE,
124
+ attributes: '*',
125
+ relationships: ['item_type', 'creator'],
126
+ }).data;
127
+ }
128
+ export function inspectItem(item, options) {
129
+ return formatAsTree(itemInspectionTreeNodes(item, options));
130
+ }
131
+ function itemInspectionTreeNodes(item, options) {
132
+ var _a, _b;
133
+ let itemTypeId;
134
+ const normalizedItem = normalizeItem(item);
135
+ if ('relationships' in normalizedItem && normalizedItem.relationships) {
136
+ const relationships = normalizedItem.relationships;
137
+ if ((_b = (_a = relationships.item_type) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.id) {
138
+ itemTypeId = relationships.item_type.data.id;
139
+ }
140
+ }
141
+ const rootLabel = [
142
+ 'Item',
143
+ 'id' in item ? JSON.stringify(normalizedItem.id) : null,
144
+ itemTypeId ? `(item_type: ${JSON.stringify(itemTypeId)})` : null,
145
+ ]
146
+ .filter(Boolean)
147
+ .join(' ');
148
+ const nodes = [];
149
+ if ('attributes' in normalizedItem) {
150
+ for (const [attributeName, attributeValue] of Object.entries(normalizedItem.attributes)) {
151
+ const inspectResult = inspectFieldValue(attributeValue, options);
152
+ nodes.push(createChildNode(attributeName, inspectResult));
153
+ }
154
+ }
155
+ return {
156
+ label: rootLabel,
157
+ nodes: nodes.length > 0 ? nodes : undefined,
158
+ };
159
+ }
160
+ function structuredTextInspectionTreeNodes(value, options) {
161
+ if (value === null)
162
+ return 'null';
163
+ return inspectionTreeNodes(value, {
164
+ maxWidth: (options === null || options === void 0 ? void 0 : options.maxWidth) || 80,
165
+ blockFormatter: (block, maxWidth) => {
166
+ if (typeof block === 'string') {
167
+ return JSON.stringify(block);
168
+ }
169
+ return itemInspectionTreeNodes(block, options);
170
+ },
171
+ });
172
+ }
173
+ function singleBlockInspectionTreeNodes(value, options) {
174
+ if (value === null)
175
+ return 'null';
176
+ if (typeof value === 'string')
177
+ return JSON.stringify(value);
178
+ return itemInspectionTreeNodes(value, options);
179
+ }
180
+ function richTextInspectionTreeNodes(value, options) {
181
+ if (value === null)
182
+ return 'null';
183
+ return value.map((item, index) => {
184
+ const result = singleBlockInspectionTreeNodes(item, options);
185
+ if (typeof result === 'string') {
186
+ return { label: `[${index}] ${result}` };
187
+ }
188
+ result.label = `[${index}] ${result.label}`;
189
+ return result;
190
+ });
191
+ }
192
+ function booleanInspectionTreeNodes(value) {
193
+ return JSON.stringify(value);
194
+ }
195
+ function colorInspectionTreeNodes(value) {
196
+ if (value === null)
197
+ return 'null';
198
+ const { red, green, blue, alpha } = value;
199
+ const hex = `#${red.toString(16).padStart(2, '0').toUpperCase()}${green.toString(16).padStart(2, '0').toUpperCase()}${blue.toString(16).padStart(2, '0').toUpperCase()}`;
200
+ if (alpha === 255) {
201
+ return hex;
202
+ }
203
+ const alphaPercent = Math.round((alpha / 255) * 100);
204
+ return `${hex} ${alphaPercent}%`;
205
+ }
206
+ function dateInspectionTreeNodes(value) {
207
+ if (value === null)
208
+ return 'null';
209
+ return value;
210
+ }
211
+ function dateTimeInspectionTreeNodes(value) {
212
+ if (value === null)
213
+ return 'null';
214
+ return value;
215
+ }
216
+ function fileInspectionTreeNodes(value, options) {
217
+ if (value === null)
218
+ return 'null';
219
+ const nodes = [];
220
+ nodes.push({ label: `upload_id: ${JSON.stringify(value.upload_id)}` });
221
+ if (value.alt) {
222
+ nodes.push({
223
+ label: `alt: ${JSON.stringify(truncate(value.alt, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
224
+ });
225
+ }
226
+ if (value.title) {
227
+ nodes.push({
228
+ label: `title: ${JSON.stringify(truncate(value.title, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
229
+ });
230
+ }
231
+ if (value.custom_data && Object.keys(value.custom_data).length > 0) {
232
+ nodes.push({
233
+ label: `custom_data: ${truncate(JSON.stringify(value.custom_data), (options === null || options === void 0 ? void 0 : options.maxWidth) || 80)}`,
234
+ });
235
+ }
236
+ if (value.focal_point) {
237
+ const x = value.focal_point.x * 100;
238
+ const y = value.focal_point.y * 100;
239
+ nodes.push({ label: `focal_point: x=${x}% y=${y}%` });
240
+ }
241
+ return nodes;
242
+ }
243
+ function floatInspectionTreeNodes(value) {
244
+ if (value === null)
245
+ return 'null';
246
+ return value.toString();
247
+ }
248
+ function galleryInspectionTreeNodes(value, options) {
249
+ if (!value || value.length === 0)
250
+ return '[]';
251
+ const itemNodes = value.map((item, index) => {
252
+ const nodes = [];
253
+ nodes.push({
254
+ label: `upload_id: ${JSON.stringify(item.upload_id)}`,
255
+ });
256
+ if (item.alt) {
257
+ nodes.push({
258
+ label: `alt: ${JSON.stringify(truncate(item.alt, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
259
+ });
260
+ }
261
+ if (item.title) {
262
+ nodes.push({
263
+ label: `title: ${JSON.stringify(truncate(item.title, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
264
+ });
265
+ }
266
+ if (item.custom_data && Object.keys(item.custom_data).length > 0) {
267
+ nodes.push({
268
+ label: `custom_data: ${truncate(JSON.stringify(item.custom_data), (options === null || options === void 0 ? void 0 : options.maxWidth) || 80)}`,
269
+ });
270
+ }
271
+ if (item.focal_point) {
272
+ const x = item.focal_point.x * 100;
273
+ const y = item.focal_point.y * 100;
274
+ nodes.push({ label: `focal_point: x=${x}% y=${y}%` });
275
+ }
276
+ return {
277
+ label: `[${index}]`,
278
+ nodes: nodes,
279
+ };
280
+ });
281
+ return itemNodes;
282
+ }
283
+ function integerInspectionTreeNodes(value) {
284
+ if (value === null)
285
+ return 'null';
286
+ return value.toString();
287
+ }
288
+ function jsonInspectionTreeNodes(value, options) {
289
+ if (value === null)
290
+ return 'null';
291
+ return truncate(JSON.stringify(JSON.parse(value)), (options === null || options === void 0 ? void 0 : options.maxWidth) || 80);
292
+ }
293
+ function latLonInspectionTreeNodes(value) {
294
+ if (value === null)
295
+ return 'null';
296
+ return [
297
+ { label: `latitude: ${value.latitude}` },
298
+ { label: `longitude: ${value.longitude}` },
299
+ ];
300
+ }
301
+ function linkInspectionTreeNodes(value) {
302
+ if (value === null)
303
+ return 'null';
304
+ return JSON.stringify(value);
305
+ }
306
+ function linksInspectionTreeNodes(value) {
307
+ if (value === null)
308
+ return 'null';
309
+ return value.map((itemId, index) => ({
310
+ label: `[${index}]: ${JSON.stringify(itemId)}`,
311
+ }));
312
+ }
313
+ function seoFieldInspectionTreeNodes(value, options) {
314
+ if (value === null)
315
+ return 'null';
316
+ const nodes = [];
317
+ if (value.title) {
318
+ nodes.push({
319
+ label: `title: ${JSON.stringify(truncate(value.title, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
320
+ });
321
+ }
322
+ if (value.description) {
323
+ nodes.push({
324
+ label: `description: ${JSON.stringify(truncate(value.description, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
325
+ });
326
+ }
327
+ if (value.image) {
328
+ nodes.push({
329
+ label: `image: ${value.image}`,
330
+ });
331
+ }
332
+ if (value.twitter_card) {
333
+ nodes.push({
334
+ label: `twitter_card: ${value.twitter_card}`,
335
+ });
336
+ }
337
+ if (value.no_index !== undefined) {
338
+ nodes.push({
339
+ label: `no_index: ${value.no_index}`,
340
+ });
341
+ }
342
+ return nodes;
343
+ }
344
+ function slugInspectionTreeNodes(value, options) {
345
+ if (value === null)
346
+ return 'null';
347
+ return JSON.stringify(truncate(value, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80));
348
+ }
349
+ function stringInspectionTreeNodes(value, options) {
350
+ if (value === null)
351
+ return 'null';
352
+ return JSON.stringify(truncate(value, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80));
353
+ }
354
+ function textInspectionTreeNodes(value, options) {
355
+ if (value === null)
356
+ return 'null';
357
+ return JSON.stringify(truncate(value, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80));
358
+ }
359
+ function videoFieldInspectionTreeNodes(value, options) {
360
+ if (value === null)
361
+ return 'null';
362
+ const nodes = [];
363
+ nodes.push({ label: `provider: ${value.provider}` });
364
+ nodes.push({ label: `provider_uid: ${value.provider_uid}` });
365
+ nodes.push({ label: `url: ${value.url}` });
366
+ nodes.push({ label: `size: ${value.width}⨯${value.height}px` });
367
+ nodes.push({ label: `thumbnail_url: ${value.thumbnail_url}` });
368
+ if (value.title) {
369
+ nodes.push({
370
+ label: `title: ${JSON.stringify(truncate(value.title, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
371
+ });
372
+ }
373
+ return nodes;
374
+ }
375
+ function localizedFieldValueInspectionTreeNodes(value, options) {
376
+ const localeEntries = Object.entries(value).sort(([a], [b]) => a.localeCompare(b));
377
+ return localeEntries.map(([locale, localeValue]) => {
378
+ const inspectResult = inspectFieldValue(localeValue, options);
379
+ if (typeof inspectResult === 'string') {
380
+ return { label: `${locale}: ${inspectResult}` };
381
+ }
382
+ if (Array.isArray(inspectResult)) {
383
+ return {
384
+ label: locale,
385
+ nodes: inspectResult,
386
+ };
387
+ }
388
+ // Single TreeNode
389
+ return {
390
+ label: locale,
391
+ nodes: [inspectResult],
392
+ };
393
+ });
394
+ }
395
+ function truncate(text, maxWidth) {
396
+ if (text.length <= maxWidth)
397
+ return text;
398
+ return `${text.slice(0, maxWidth - 3)}...`;
399
+ }
400
+ //# sourceMappingURL=inspectItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspectItem.js","sourceRoot":"","sources":["../../../src/utilities/inspectItem.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { BooleanFieldValue, ColorFieldValue, DateFieldValue, DateTimeFieldValue, FileFieldValue, FloatFieldValue, GalleryFieldValue, IntegerFieldValue, JsonFieldValue, LatLonFieldValue, LinkFieldValue, LinksFieldValue, RichTextFieldValue, RichTextFieldValueAsRequest, RichTextFieldValueWithNestedBlocks, SeoFieldValue, SingleBlockFieldValue, SingleBlockFieldValueAsRequest, SingleBlockFieldValueWithNestedBlocks, SlugFieldValue, StringFieldValue, StructuredTextFieldValue, StructuredTextFieldValueAsRequest, StructuredTextFieldValueWithNestedBlocks, TextFieldValue, VideoFieldValue } from '../fieldTypes';
2
- import type { LocalizedFieldValue } from './fieldValue';
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
+ import type { LocalizedFieldValue } from './normalizedFieldValues';
3
3
  /** Base field definition */
4
4
  type BaseFieldDefinition<Type extends string> = {
5
5
  type: Type;
@@ -27,12 +27,7 @@ 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
- /** Standard field values */
30
+ /** Standard field values (response format) */
36
31
  type FieldTypeToValue = {
37
32
  boolean: BooleanFieldValue;
38
33
  color: ColorFieldValue;
@@ -56,32 +51,59 @@ type FieldTypeToValue = {
56
51
  video: VideoFieldValue;
57
52
  unknown: unknown;
58
53
  };
54
+ /** Request field values (request format with optional metadata) */
55
+ type FieldTypeToValueInRequest = {
56
+ boolean: BooleanFieldValue;
57
+ color: ColorFieldValue;
58
+ date: DateFieldValue;
59
+ date_time: DateTimeFieldValue;
60
+ file: FileFieldValueInRequest;
61
+ float: FloatFieldValue;
62
+ gallery: GalleryFieldValueInRequest;
63
+ integer: IntegerFieldValue;
64
+ json: JsonFieldValue;
65
+ lat_lon: LatLonFieldValue;
66
+ link: LinkFieldValue;
67
+ links: LinksFieldValue;
68
+ rich_text: RichTextFieldValueInRequest;
69
+ seo: SeoFieldValue;
70
+ single_block: SingleBlockFieldValueInRequest;
71
+ slug: SlugFieldValue;
72
+ string: StringFieldValue;
73
+ structured_text: StructuredTextFieldValueInRequest;
74
+ text: TextFieldValue;
75
+ video: VideoFieldValue;
76
+ unknown: unknown;
77
+ };
59
78
  /** Localized wrapper */
60
79
  type LocalizeIfNeeded<T extends FieldDefinition, Value, Locales extends string> = T extends {
61
80
  localized: true;
62
81
  } ? LocalizedFieldValue<Value, Locales> : Value;
63
82
  /** Standard mapping */
64
83
  type FieldDefinitionToFieldValue<T extends FieldDefinition, Locales extends string> = LocalizeIfNeeded<T, FieldTypeToValue[T['type']], Locales>;
65
- /** AsRequest mapping (block fields become generic over allowed blocks) */
66
- 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 {
67
86
  blocks: any;
68
- } ? ToItemDefinitionAsRequest<B> : never, T extends {
87
+ } ? B : never, T extends {
69
88
  inline_blocks: any;
70
- } ? ToItemDefinitionAsRequest<I> : never>, Locales> : LocalizeIfNeeded<T, FieldTypeToValue[T['type']], Locales>;
71
- 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 {
72
91
  blocks: any;
73
- } ? ToItemDefinitionWithNestedBlocks<B> : never, T extends {
92
+ } ? B : never, T extends {
74
93
  inline_blocks: any;
75
- } ? ToItemDefinitionWithNestedBlocks<I> : never>, Locales> : LocalizeIfNeeded<T, FieldTypeToValue[T['type']], Locales>;
94
+ } ? I : never>, Locales> : LocalizeIfNeeded<T, FieldTypeToValue[T['type']], Locales>;
76
95
  /** Transformers */
77
- 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> : {
78
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;
79
101
  }> : never;
80
- 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<{
81
- [K in keyof Fields]: Fields[K] extends FieldDefinition ? FieldDefinitionToFieldValueAsRequest<Fields[K], Settings['locales']> : never;
82
- }>> : never;
83
- 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, {
84
- [K in keyof Fields]: Fields[K] extends FieldDefinition ? FieldDefinitionToFieldValueWithNestedBlocks<Fields[K], Settings['locales']> : never;
85
- }> : never;
86
- 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;
87
109
  export {};