@datocms/cma-client 5.0.0 → 5.1.0

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 (847) hide show
  1. package/dist/cjs/BaseResource.js +3 -4
  2. package/dist/cjs/BaseResource.js.map +1 -1
  3. package/dist/cjs/buildClient.js +1 -1
  4. package/dist/cjs/buildClient.js.map +1 -1
  5. package/dist/cjs/fieldTypes/appearance/boolean.js +3 -0
  6. package/dist/cjs/fieldTypes/appearance/boolean.js.map +1 -0
  7. package/dist/cjs/fieldTypes/appearance/boolean_radio_group.js +3 -0
  8. package/dist/cjs/fieldTypes/appearance/boolean_radio_group.js.map +1 -0
  9. package/dist/cjs/fieldTypes/appearance/color_picker.js +3 -0
  10. package/dist/cjs/fieldTypes/appearance/color_picker.js.map +1 -0
  11. package/dist/cjs/fieldTypes/appearance/date_picker.js +3 -0
  12. package/dist/cjs/fieldTypes/appearance/date_picker.js.map +1 -0
  13. package/dist/cjs/fieldTypes/appearance/date_time_picker.js +3 -0
  14. package/dist/cjs/fieldTypes/appearance/date_time_picker.js.map +1 -0
  15. package/dist/cjs/fieldTypes/appearance/file.js +3 -0
  16. package/dist/cjs/fieldTypes/appearance/file.js.map +1 -0
  17. package/dist/cjs/fieldTypes/appearance/float.js +3 -0
  18. package/dist/cjs/fieldTypes/appearance/float.js.map +1 -0
  19. package/dist/cjs/fieldTypes/appearance/framed_single_block.js +3 -0
  20. package/dist/cjs/fieldTypes/appearance/framed_single_block.js.map +1 -0
  21. package/dist/cjs/fieldTypes/appearance/frameless_single_block.js +3 -0
  22. package/dist/cjs/fieldTypes/appearance/frameless_single_block.js.map +1 -0
  23. package/dist/cjs/fieldTypes/appearance/gallery.js +3 -0
  24. package/dist/cjs/fieldTypes/appearance/gallery.js.map +1 -0
  25. package/dist/cjs/fieldTypes/appearance/index.js +47 -0
  26. package/dist/cjs/fieldTypes/appearance/index.js.map +1 -0
  27. package/dist/cjs/fieldTypes/appearance/integer.js +3 -0
  28. package/dist/cjs/fieldTypes/appearance/integer.js.map +1 -0
  29. package/dist/cjs/fieldTypes/appearance/json.js +3 -0
  30. package/dist/cjs/fieldTypes/appearance/json.js.map +1 -0
  31. package/dist/cjs/fieldTypes/appearance/link_embed.js +3 -0
  32. package/dist/cjs/fieldTypes/appearance/link_embed.js.map +1 -0
  33. package/dist/cjs/fieldTypes/appearance/link_select.js +3 -0
  34. package/dist/cjs/fieldTypes/appearance/link_select.js.map +1 -0
  35. package/dist/cjs/fieldTypes/appearance/links_embed.js +3 -0
  36. package/dist/cjs/fieldTypes/appearance/links_embed.js.map +1 -0
  37. package/dist/cjs/fieldTypes/appearance/links_select.js +3 -0
  38. package/dist/cjs/fieldTypes/appearance/links_select.js.map +1 -0
  39. package/dist/cjs/fieldTypes/appearance/map.js +3 -0
  40. package/dist/cjs/fieldTypes/appearance/map.js.map +1 -0
  41. package/dist/cjs/fieldTypes/appearance/markdown.js +3 -0
  42. package/dist/cjs/fieldTypes/appearance/markdown.js.map +1 -0
  43. package/dist/cjs/fieldTypes/appearance/rich_text.js +3 -0
  44. package/dist/cjs/fieldTypes/appearance/rich_text.js.map +1 -0
  45. package/dist/cjs/fieldTypes/appearance/seo.js +3 -0
  46. package/dist/cjs/fieldTypes/appearance/seo.js.map +1 -0
  47. package/dist/cjs/fieldTypes/appearance/single_line.js +3 -0
  48. package/dist/cjs/fieldTypes/appearance/single_line.js.map +1 -0
  49. package/dist/cjs/fieldTypes/appearance/slug.js +3 -0
  50. package/dist/cjs/fieldTypes/appearance/slug.js.map +1 -0
  51. package/dist/cjs/fieldTypes/appearance/string_checkbox_group.js +3 -0
  52. package/dist/cjs/fieldTypes/appearance/string_checkbox_group.js.map +1 -0
  53. package/dist/cjs/fieldTypes/appearance/string_multi_select.js +3 -0
  54. package/dist/cjs/fieldTypes/appearance/string_multi_select.js.map +1 -0
  55. package/dist/cjs/fieldTypes/appearance/string_radio_group.js +3 -0
  56. package/dist/cjs/fieldTypes/appearance/string_radio_group.js.map +1 -0
  57. package/dist/cjs/fieldTypes/appearance/string_select.js +3 -0
  58. package/dist/cjs/fieldTypes/appearance/string_select.js.map +1 -0
  59. package/dist/cjs/fieldTypes/appearance/structured_text.js +3 -0
  60. package/dist/cjs/fieldTypes/appearance/structured_text.js.map +1 -0
  61. package/dist/cjs/fieldTypes/appearance/textarea.js +3 -0
  62. package/dist/cjs/fieldTypes/appearance/textarea.js.map +1 -0
  63. package/dist/cjs/fieldTypes/appearance/video.js +3 -0
  64. package/dist/cjs/fieldTypes/appearance/video.js.map +1 -0
  65. package/dist/cjs/fieldTypes/appearance/wysiwyg.js +3 -0
  66. package/dist/cjs/fieldTypes/appearance/wysiwyg.js.map +1 -0
  67. package/dist/cjs/fieldTypes/boolean.js +8 -0
  68. package/dist/cjs/fieldTypes/boolean.js.map +1 -0
  69. package/dist/cjs/fieldTypes/color.js +15 -0
  70. package/dist/cjs/fieldTypes/color.js.map +1 -0
  71. package/dist/cjs/fieldTypes/date.js +10 -0
  72. package/dist/cjs/fieldTypes/date.js.map +1 -0
  73. package/dist/cjs/fieldTypes/date_time.js +11 -0
  74. package/dist/cjs/fieldTypes/date_time.js.map +1 -0
  75. package/dist/cjs/fieldTypes/file.js +10 -0
  76. package/dist/cjs/fieldTypes/file.js.map +1 -0
  77. package/dist/cjs/fieldTypes/float.js +8 -0
  78. package/dist/cjs/fieldTypes/float.js.map +1 -0
  79. package/dist/cjs/fieldTypes/gallery.js +11 -0
  80. package/dist/cjs/fieldTypes/gallery.js.map +1 -0
  81. package/dist/cjs/fieldTypes/index.js +39 -0
  82. package/dist/cjs/fieldTypes/index.js.map +1 -0
  83. package/dist/cjs/fieldTypes/integer.js +8 -0
  84. package/dist/cjs/fieldTypes/integer.js.map +1 -0
  85. package/dist/cjs/fieldTypes/json.js +18 -0
  86. package/dist/cjs/fieldTypes/json.js.map +1 -0
  87. package/dist/cjs/fieldTypes/lat_lon.js +13 -0
  88. package/dist/cjs/fieldTypes/lat_lon.js.map +1 -0
  89. package/dist/cjs/fieldTypes/link.js +8 -0
  90. package/dist/cjs/fieldTypes/link.js.map +1 -0
  91. package/dist/cjs/fieldTypes/links.js +10 -0
  92. package/dist/cjs/fieldTypes/links.js.map +1 -0
  93. package/dist/cjs/fieldTypes/rich_text.js +53 -0
  94. package/dist/cjs/fieldTypes/rich_text.js.map +1 -0
  95. package/dist/cjs/fieldTypes/seo.js +16 -0
  96. package/dist/cjs/fieldTypes/seo.js.map +1 -0
  97. package/dist/cjs/fieldTypes/single_block.js +72 -0
  98. package/dist/cjs/fieldTypes/single_block.js.map +1 -0
  99. package/dist/cjs/fieldTypes/slug.js +10 -0
  100. package/dist/cjs/fieldTypes/slug.js.map +1 -0
  101. package/dist/cjs/fieldTypes/string.js +8 -0
  102. package/dist/cjs/fieldTypes/string.js.map +1 -0
  103. package/dist/cjs/fieldTypes/structured_text.js +87 -0
  104. package/dist/cjs/fieldTypes/structured_text.js.map +1 -0
  105. package/dist/cjs/fieldTypes/text.js +8 -0
  106. package/dist/cjs/fieldTypes/text.js.map +1 -0
  107. package/dist/cjs/fieldTypes/validators/date_range.js +3 -0
  108. package/dist/cjs/fieldTypes/validators/date_range.js.map +1 -0
  109. package/dist/cjs/fieldTypes/validators/date_time_range.js +3 -0
  110. package/dist/cjs/fieldTypes/validators/date_time_range.js.map +1 -0
  111. package/dist/cjs/fieldTypes/validators/description_length.js +3 -0
  112. package/dist/cjs/fieldTypes/validators/description_length.js.map +1 -0
  113. package/dist/cjs/fieldTypes/validators/enum.js +3 -0
  114. package/dist/cjs/fieldTypes/validators/enum.js.map +1 -0
  115. package/dist/cjs/fieldTypes/validators/extension.js +3 -0
  116. package/dist/cjs/fieldTypes/validators/extension.js.map +1 -0
  117. package/dist/cjs/fieldTypes/validators/file_size.js +3 -0
  118. package/dist/cjs/fieldTypes/validators/file_size.js.map +1 -0
  119. package/dist/cjs/fieldTypes/validators/format.js +3 -0
  120. package/dist/cjs/fieldTypes/validators/format.js.map +1 -0
  121. package/dist/cjs/fieldTypes/validators/image_aspect_ratio.js +3 -0
  122. package/dist/cjs/fieldTypes/validators/image_aspect_ratio.js.map +1 -0
  123. package/dist/cjs/fieldTypes/validators/image_dimensions.js +3 -0
  124. package/dist/cjs/fieldTypes/validators/image_dimensions.js.map +1 -0
  125. package/dist/cjs/fieldTypes/validators/index.js +44 -0
  126. package/dist/cjs/fieldTypes/validators/index.js.map +1 -0
  127. package/dist/cjs/fieldTypes/validators/item_item_type.js +3 -0
  128. package/dist/cjs/fieldTypes/validators/item_item_type.js.map +1 -0
  129. package/dist/cjs/fieldTypes/validators/items_item_type.js +3 -0
  130. package/dist/cjs/fieldTypes/validators/items_item_type.js.map +1 -0
  131. package/dist/cjs/fieldTypes/validators/length.js +3 -0
  132. package/dist/cjs/fieldTypes/validators/length.js.map +1 -0
  133. package/dist/cjs/fieldTypes/validators/number_range.js +3 -0
  134. package/dist/cjs/fieldTypes/validators/number_range.js.map +1 -0
  135. package/dist/cjs/fieldTypes/validators/required.js +3 -0
  136. package/dist/cjs/fieldTypes/validators/required.js.map +1 -0
  137. package/dist/cjs/fieldTypes/validators/required_alt_title.js +3 -0
  138. package/dist/cjs/fieldTypes/validators/required_alt_title.js.map +1 -0
  139. package/dist/cjs/fieldTypes/validators/required_seo_fields.js +3 -0
  140. package/dist/cjs/fieldTypes/validators/required_seo_fields.js.map +1 -0
  141. package/dist/cjs/fieldTypes/validators/rich_text_blocks.js +3 -0
  142. package/dist/cjs/fieldTypes/validators/rich_text_blocks.js.map +1 -0
  143. package/dist/cjs/fieldTypes/validators/sanitization.js +3 -0
  144. package/dist/cjs/fieldTypes/validators/sanitization.js.map +1 -0
  145. package/dist/cjs/fieldTypes/validators/single_block_blocks.js +3 -0
  146. package/dist/cjs/fieldTypes/validators/single_block_blocks.js.map +1 -0
  147. package/dist/cjs/fieldTypes/validators/size.js +3 -0
  148. package/dist/cjs/fieldTypes/validators/size.js.map +1 -0
  149. package/dist/cjs/fieldTypes/validators/slug_format.js +3 -0
  150. package/dist/cjs/fieldTypes/validators/slug_format.js.map +1 -0
  151. package/dist/cjs/fieldTypes/validators/slug_title_field.js +3 -0
  152. package/dist/cjs/fieldTypes/validators/slug_title_field.js.map +1 -0
  153. package/dist/cjs/fieldTypes/validators/structured_text_blocks.js +3 -0
  154. package/dist/cjs/fieldTypes/validators/structured_text_blocks.js.map +1 -0
  155. package/dist/cjs/fieldTypes/validators/structured_text_inline_blocks.js +3 -0
  156. package/dist/cjs/fieldTypes/validators/structured_text_inline_blocks.js.map +1 -0
  157. package/dist/cjs/fieldTypes/validators/structured_text_links.js +3 -0
  158. package/dist/cjs/fieldTypes/validators/structured_text_links.js.map +1 -0
  159. package/dist/cjs/fieldTypes/validators/title_length.js +3 -0
  160. package/dist/cjs/fieldTypes/validators/title_length.js.map +1 -0
  161. package/dist/cjs/fieldTypes/validators/unique.js +3 -0
  162. package/dist/cjs/fieldTypes/validators/unique.js.map +1 -0
  163. package/dist/cjs/fieldTypes/video.js +14 -0
  164. package/dist/cjs/fieldTypes/video.js.map +1 -0
  165. package/dist/cjs/generated/Client.js +27 -79
  166. package/dist/cjs/generated/Client.js.map +1 -1
  167. package/dist/cjs/generated/SchemaTypes.js +0 -4
  168. package/dist/cjs/generated/SchemaTypes.js.map +1 -1
  169. package/dist/cjs/generated/SimpleSchemaTypes.js +0 -4
  170. package/dist/cjs/generated/SimpleSchemaTypes.js.map +1 -1
  171. package/dist/cjs/generated/resources/AccessToken.js +42 -74
  172. package/dist/cjs/generated/resources/AccessToken.js.map +1 -1
  173. package/dist/cjs/generated/resources/AuditLogEvent.js +11 -33
  174. package/dist/cjs/generated/resources/AuditLogEvent.js.map +1 -1
  175. package/dist/cjs/generated/resources/BuildEvent.js +43 -133
  176. package/dist/cjs/generated/resources/BuildEvent.js.map +1 -1
  177. package/dist/cjs/generated/resources/BuildTrigger.js +55 -85
  178. package/dist/cjs/generated/resources/BuildTrigger.js.map +1 -1
  179. package/dist/cjs/generated/resources/DailyUsage.js +10 -32
  180. package/dist/cjs/generated/resources/DailyUsage.js.map +1 -1
  181. package/dist/cjs/generated/resources/EditingSession.js +20 -44
  182. package/dist/cjs/generated/resources/EditingSession.js.map +1 -1
  183. package/dist/cjs/generated/resources/EmojiSuggestions.js +11 -33
  184. package/dist/cjs/generated/resources/EmojiSuggestions.js.map +1 -1
  185. package/dist/cjs/generated/resources/Environment.js +43 -75
  186. package/dist/cjs/generated/resources/Environment.js.map +1 -1
  187. package/dist/cjs/generated/resources/Field.js +57 -93
  188. package/dist/cjs/generated/resources/Field.js.map +1 -1
  189. package/dist/cjs/generated/resources/Fieldset.js +39 -69
  190. package/dist/cjs/generated/resources/Fieldset.js.map +1 -1
  191. package/dist/cjs/generated/resources/Item.js +133 -247
  192. package/dist/cjs/generated/resources/Item.js.map +1 -1
  193. package/dist/cjs/generated/resources/ItemType.js +47 -79
  194. package/dist/cjs/generated/resources/ItemType.js.map +1 -1
  195. package/dist/cjs/generated/resources/ItemTypeFilter.js +35 -65
  196. package/dist/cjs/generated/resources/ItemTypeFilter.js.map +1 -1
  197. package/dist/cjs/generated/resources/ItemVersion.js +50 -142
  198. package/dist/cjs/generated/resources/ItemVersion.js.map +1 -1
  199. package/dist/cjs/generated/resources/JobResult.js +11 -33
  200. package/dist/cjs/generated/resources/JobResult.js.map +1 -1
  201. package/dist/cjs/generated/resources/MaintenanceMode.js +21 -47
  202. package/dist/cjs/generated/resources/MaintenanceMode.js.map +1 -1
  203. package/dist/cjs/generated/resources/MenuItem.js +42 -74
  204. package/dist/cjs/generated/resources/MenuItem.js.map +1 -1
  205. package/dist/cjs/generated/resources/Plugin.js +41 -73
  206. package/dist/cjs/generated/resources/Plugin.js.map +1 -1
  207. package/dist/cjs/generated/resources/PublicInfo.js +10 -32
  208. package/dist/cjs/generated/resources/PublicInfo.js.map +1 -1
  209. package/dist/cjs/generated/resources/Role.js +41 -73
  210. package/dist/cjs/generated/resources/Role.js.map +1 -1
  211. package/dist/cjs/generated/resources/ScheduledPublication.js +18 -42
  212. package/dist/cjs/generated/resources/ScheduledPublication.js.map +1 -1
  213. package/dist/cjs/generated/resources/ScheduledUnpublishing.js +18 -42
  214. package/dist/cjs/generated/resources/ScheduledUnpublishing.js.map +1 -1
  215. package/dist/cjs/generated/resources/SchemaMenuItem.js +42 -74
  216. package/dist/cjs/generated/resources/SchemaMenuItem.js.map +1 -1
  217. package/dist/cjs/generated/resources/SearchResult.js +37 -125
  218. package/dist/cjs/generated/resources/SearchResult.js.map +1 -1
  219. package/dist/cjs/generated/resources/Session.js +11 -33
  220. package/dist/cjs/generated/resources/Session.js.map +1 -1
  221. package/dist/cjs/generated/resources/Site.js +63 -105
  222. package/dist/cjs/generated/resources/Site.js.map +1 -1
  223. package/dist/cjs/generated/resources/SiteInvitation.js +41 -73
  224. package/dist/cjs/generated/resources/SiteInvitation.js.map +1 -1
  225. package/dist/cjs/generated/resources/SsoGroup.js +29 -57
  226. package/dist/cjs/generated/resources/SsoGroup.js.map +1 -1
  227. package/dist/cjs/generated/resources/SsoSettings.js +21 -47
  228. package/dist/cjs/generated/resources/SsoSettings.js.map +1 -1
  229. package/dist/cjs/generated/resources/SsoUser.js +28 -56
  230. package/dist/cjs/generated/resources/SsoUser.js.map +1 -1
  231. package/dist/cjs/generated/resources/SubscriptionFeature.js +10 -32
  232. package/dist/cjs/generated/resources/SubscriptionFeature.js.map +1 -1
  233. package/dist/cjs/generated/resources/SubscriptionLimit.js +16 -40
  234. package/dist/cjs/generated/resources/SubscriptionLimit.js.map +1 -1
  235. package/dist/cjs/generated/resources/Upload.js +87 -191
  236. package/dist/cjs/generated/resources/Upload.js.map +1 -1
  237. package/dist/cjs/generated/resources/UploadCollection.js +42 -74
  238. package/dist/cjs/generated/resources/UploadCollection.js.map +1 -1
  239. package/dist/cjs/generated/resources/UploadFilter.js +35 -65
  240. package/dist/cjs/generated/resources/UploadFilter.js.map +1 -1
  241. package/dist/cjs/generated/resources/UploadRequest.js +13 -35
  242. package/dist/cjs/generated/resources/UploadRequest.js.map +1 -1
  243. package/dist/cjs/generated/resources/UploadSmartTag.js +37 -125
  244. package/dist/cjs/generated/resources/UploadSmartTag.js.map +1 -1
  245. package/dist/cjs/generated/resources/UploadTag.js +43 -133
  246. package/dist/cjs/generated/resources/UploadTag.js.map +1 -1
  247. package/dist/cjs/generated/resources/UploadTrack.js +31 -59
  248. package/dist/cjs/generated/resources/UploadTrack.js.map +1 -1
  249. package/dist/cjs/generated/resources/UsageCounter.js +12 -34
  250. package/dist/cjs/generated/resources/UsageCounter.js.map +1 -1
  251. package/dist/cjs/generated/resources/User.js +37 -67
  252. package/dist/cjs/generated/resources/User.js.map +1 -1
  253. package/dist/cjs/generated/resources/Webhook.js +35 -65
  254. package/dist/cjs/generated/resources/Webhook.js.map +1 -1
  255. package/dist/cjs/generated/resources/WebhookCall.js +48 -138
  256. package/dist/cjs/generated/resources/WebhookCall.js.map +1 -1
  257. package/dist/cjs/generated/resources/WhiteLabelSettings.js +16 -40
  258. package/dist/cjs/generated/resources/WhiteLabelSettings.js.map +1 -1
  259. package/dist/cjs/generated/resources/Workflow.js +34 -62
  260. package/dist/cjs/generated/resources/Workflow.js.map +1 -1
  261. package/dist/cjs/index.js +8 -2
  262. package/dist/cjs/index.js.map +1 -1
  263. package/dist/cjs/resources/Role.js +42 -124
  264. package/dist/cjs/resources/Role.js.map +1 -1
  265. package/dist/cjs/utilities/blocks.js +597 -0
  266. package/dist/cjs/utilities/blocks.js.map +1 -0
  267. package/dist/cjs/{buildBlockRecord.js → utilities/buildBlockRecord.js} +2 -2
  268. package/dist/cjs/utilities/buildBlockRecord.js.map +1 -0
  269. package/dist/cjs/utilities/fieldValueLocalization.js +218 -0
  270. package/dist/cjs/utilities/fieldValueLocalization.js.map +1 -0
  271. package/dist/cjs/utilities/fieldsContainingReferences.js +45 -0
  272. package/dist/cjs/utilities/fieldsContainingReferences.js.map +1 -0
  273. package/dist/cjs/{idUtils.js → utilities/id.js} +14 -14
  274. package/dist/cjs/utilities/id.js.map +1 -0
  275. package/dist/cjs/utilities/recursiveBlocks.js +187 -0
  276. package/dist/cjs/utilities/recursiveBlocks.js.map +1 -0
  277. package/dist/cjs/utilities/schemaRepository.js +354 -0
  278. package/dist/cjs/utilities/schemaRepository.js.map +1 -0
  279. package/dist/cjs/utilities/structuredText.js +371 -0
  280. package/dist/cjs/utilities/structuredText.js.map +1 -0
  281. package/dist/esm/BaseResource.js +3 -5
  282. package/dist/esm/BaseResource.js.map +1 -1
  283. package/dist/esm/fieldTypes/appearance/boolean.d.ts +4 -0
  284. package/dist/esm/fieldTypes/appearance/boolean.js +2 -0
  285. package/dist/esm/fieldTypes/appearance/boolean.js.map +1 -0
  286. package/dist/esm/fieldTypes/appearance/boolean_radio_group.d.ts +15 -0
  287. package/dist/esm/fieldTypes/appearance/boolean_radio_group.js +2 -0
  288. package/dist/esm/fieldTypes/appearance/boolean_radio_group.js.map +1 -0
  289. package/dist/esm/fieldTypes/appearance/color_picker.d.ts +9 -0
  290. package/dist/esm/fieldTypes/appearance/color_picker.js +2 -0
  291. package/dist/esm/fieldTypes/appearance/color_picker.js.map +1 -0
  292. package/dist/esm/fieldTypes/appearance/date_picker.d.ts +4 -0
  293. package/dist/esm/fieldTypes/appearance/date_picker.js +2 -0
  294. package/dist/esm/fieldTypes/appearance/date_picker.js.map +1 -0
  295. package/dist/esm/fieldTypes/appearance/date_time_picker.d.ts +4 -0
  296. package/dist/esm/fieldTypes/appearance/date_time_picker.js +2 -0
  297. package/dist/esm/fieldTypes/appearance/date_time_picker.js.map +1 -0
  298. package/dist/esm/fieldTypes/appearance/file.d.ts +4 -0
  299. package/dist/esm/fieldTypes/appearance/file.js +2 -0
  300. package/dist/esm/fieldTypes/appearance/file.js.map +1 -0
  301. package/dist/esm/fieldTypes/appearance/float.d.ts +7 -0
  302. package/dist/esm/fieldTypes/appearance/float.js +2 -0
  303. package/dist/esm/fieldTypes/appearance/float.js.map +1 -0
  304. package/dist/esm/fieldTypes/appearance/framed_single_block.d.ts +7 -0
  305. package/dist/esm/fieldTypes/appearance/framed_single_block.js +2 -0
  306. package/dist/esm/fieldTypes/appearance/framed_single_block.js.map +1 -0
  307. package/dist/esm/fieldTypes/appearance/frameless_single_block.d.ts +7 -0
  308. package/dist/esm/fieldTypes/appearance/frameless_single_block.js +2 -0
  309. package/dist/esm/fieldTypes/appearance/frameless_single_block.js.map +1 -0
  310. package/dist/esm/fieldTypes/appearance/gallery.d.ts +4 -0
  311. package/dist/esm/fieldTypes/appearance/gallery.js +2 -0
  312. package/dist/esm/fieldTypes/appearance/gallery.js.map +1 -0
  313. package/dist/esm/fieldTypes/appearance/index.d.ts +30 -0
  314. package/dist/esm/fieldTypes/appearance/index.js +31 -0
  315. package/dist/esm/fieldTypes/appearance/index.js.map +1 -0
  316. package/dist/esm/fieldTypes/appearance/integer.d.ts +7 -0
  317. package/dist/esm/fieldTypes/appearance/integer.js +2 -0
  318. package/dist/esm/fieldTypes/appearance/integer.js.map +1 -0
  319. package/dist/esm/fieldTypes/appearance/json.d.ts +4 -0
  320. package/dist/esm/fieldTypes/appearance/json.js +2 -0
  321. package/dist/esm/fieldTypes/appearance/json.js.map +1 -0
  322. package/dist/esm/fieldTypes/appearance/link_embed.d.ts +5 -0
  323. package/dist/esm/fieldTypes/appearance/link_embed.js +2 -0
  324. package/dist/esm/fieldTypes/appearance/link_embed.js.map +1 -0
  325. package/dist/esm/fieldTypes/appearance/link_select.d.ts +5 -0
  326. package/dist/esm/fieldTypes/appearance/link_select.js +2 -0
  327. package/dist/esm/fieldTypes/appearance/link_select.js.map +1 -0
  328. package/dist/esm/fieldTypes/appearance/links_embed.d.ts +5 -0
  329. package/dist/esm/fieldTypes/appearance/links_embed.js +2 -0
  330. package/dist/esm/fieldTypes/appearance/links_embed.js.map +1 -0
  331. package/dist/esm/fieldTypes/appearance/links_select.d.ts +5 -0
  332. package/dist/esm/fieldTypes/appearance/links_select.js +2 -0
  333. package/dist/esm/fieldTypes/appearance/links_select.js.map +1 -0
  334. package/dist/esm/fieldTypes/appearance/map.d.ts +4 -0
  335. package/dist/esm/fieldTypes/appearance/map.js +2 -0
  336. package/dist/esm/fieldTypes/appearance/map.js.map +1 -0
  337. package/dist/esm/fieldTypes/appearance/markdown.d.ts +7 -0
  338. package/dist/esm/fieldTypes/appearance/markdown.js +2 -0
  339. package/dist/esm/fieldTypes/appearance/markdown.js.map +1 -0
  340. package/dist/esm/fieldTypes/appearance/rich_text.d.ts +7 -0
  341. package/dist/esm/fieldTypes/appearance/rich_text.js +2 -0
  342. package/dist/esm/fieldTypes/appearance/rich_text.js.map +1 -0
  343. package/dist/esm/fieldTypes/appearance/seo.d.ts +9 -0
  344. package/dist/esm/fieldTypes/appearance/seo.js +2 -0
  345. package/dist/esm/fieldTypes/appearance/seo.js.map +1 -0
  346. package/dist/esm/fieldTypes/appearance/single_line.d.ts +9 -0
  347. package/dist/esm/fieldTypes/appearance/single_line.js +2 -0
  348. package/dist/esm/fieldTypes/appearance/single_line.js.map +1 -0
  349. package/dist/esm/fieldTypes/appearance/slug.d.ts +9 -0
  350. package/dist/esm/fieldTypes/appearance/slug.js +2 -0
  351. package/dist/esm/fieldTypes/appearance/slug.js.map +1 -0
  352. package/dist/esm/fieldTypes/appearance/string_checkbox_group.d.ts +15 -0
  353. package/dist/esm/fieldTypes/appearance/string_checkbox_group.js +2 -0
  354. package/dist/esm/fieldTypes/appearance/string_checkbox_group.js.map +1 -0
  355. package/dist/esm/fieldTypes/appearance/string_multi_select.d.ts +15 -0
  356. package/dist/esm/fieldTypes/appearance/string_multi_select.js +2 -0
  357. package/dist/esm/fieldTypes/appearance/string_multi_select.js.map +1 -0
  358. package/dist/esm/fieldTypes/appearance/string_radio_group.d.ts +15 -0
  359. package/dist/esm/fieldTypes/appearance/string_radio_group.js +2 -0
  360. package/dist/esm/fieldTypes/appearance/string_radio_group.js.map +1 -0
  361. package/dist/esm/fieldTypes/appearance/string_select.d.ts +15 -0
  362. package/dist/esm/fieldTypes/appearance/string_select.js +2 -0
  363. package/dist/esm/fieldTypes/appearance/string_select.js.map +1 -0
  364. package/dist/esm/fieldTypes/appearance/structured_text.d.ts +17 -0
  365. package/dist/esm/fieldTypes/appearance/structured_text.js +2 -0
  366. package/dist/esm/fieldTypes/appearance/structured_text.js.map +1 -0
  367. package/dist/esm/fieldTypes/appearance/textarea.d.ts +7 -0
  368. package/dist/esm/fieldTypes/appearance/textarea.js +2 -0
  369. package/dist/esm/fieldTypes/appearance/textarea.js.map +1 -0
  370. package/dist/esm/fieldTypes/appearance/video.d.ts +4 -0
  371. package/dist/esm/fieldTypes/appearance/video.js +2 -0
  372. package/dist/esm/fieldTypes/appearance/video.js.map +1 -0
  373. package/dist/esm/fieldTypes/appearance/wysiwyg.d.ts +7 -0
  374. package/dist/esm/fieldTypes/appearance/wysiwyg.js +2 -0
  375. package/dist/esm/fieldTypes/appearance/wysiwyg.js.map +1 -0
  376. package/dist/esm/fieldTypes/boolean.d.ts +17 -0
  377. package/dist/esm/fieldTypes/boolean.js +4 -0
  378. package/dist/esm/fieldTypes/boolean.js.map +1 -0
  379. package/dist/esm/fieldTypes/color.d.ts +22 -0
  380. package/dist/esm/fieldTypes/color.js +11 -0
  381. package/dist/esm/fieldTypes/color.js.map +1 -0
  382. package/dist/esm/fieldTypes/date.d.ts +20 -0
  383. package/dist/esm/fieldTypes/date.js +6 -0
  384. package/dist/esm/fieldTypes/date.js.map +1 -0
  385. package/dist/esm/fieldTypes/date_time.d.ts +20 -0
  386. package/dist/esm/fieldTypes/date_time.js +7 -0
  387. package/dist/esm/fieldTypes/date_time.js.map +1 -0
  388. package/dist/esm/fieldTypes/file.d.ts +41 -0
  389. package/dist/esm/fieldTypes/file.js +6 -0
  390. package/dist/esm/fieldTypes/file.js.map +1 -0
  391. package/dist/esm/fieldTypes/float.d.ts +20 -0
  392. package/dist/esm/fieldTypes/float.js +4 -0
  393. package/dist/esm/fieldTypes/float.js.map +1 -0
  394. package/dist/esm/fieldTypes/gallery.d.ts +41 -0
  395. package/dist/esm/fieldTypes/gallery.js +7 -0
  396. package/dist/esm/fieldTypes/gallery.js.map +1 -0
  397. package/dist/esm/fieldTypes/index.d.ts +22 -0
  398. package/dist/esm/fieldTypes/index.js +23 -0
  399. package/dist/esm/fieldTypes/index.js.map +1 -0
  400. package/dist/esm/fieldTypes/integer.d.ts +20 -0
  401. package/dist/esm/fieldTypes/integer.js +4 -0
  402. package/dist/esm/fieldTypes/integer.js.map +1 -0
  403. package/dist/esm/fieldTypes/json.d.ts +25 -0
  404. package/dist/esm/fieldTypes/json.js +14 -0
  405. package/dist/esm/fieldTypes/json.js.map +1 -0
  406. package/dist/esm/fieldTypes/lat_lon.d.ts +20 -0
  407. package/dist/esm/fieldTypes/lat_lon.js +9 -0
  408. package/dist/esm/fieldTypes/lat_lon.js.map +1 -0
  409. package/dist/esm/fieldTypes/link.d.ts +27 -0
  410. package/dist/esm/fieldTypes/link.js +4 -0
  411. package/dist/esm/fieldTypes/link.js.map +1 -0
  412. package/dist/esm/fieldTypes/links.d.ts +24 -0
  413. package/dist/esm/fieldTypes/links.js +6 -0
  414. package/dist/esm/fieldTypes/links.js.map +1 -0
  415. package/dist/esm/fieldTypes/rich_text.d.ts +100 -0
  416. package/dist/esm/fieldTypes/rich_text.js +47 -0
  417. package/dist/esm/fieldTypes/rich_text.js.map +1 -0
  418. package/dist/esm/fieldTypes/seo.d.ts +38 -0
  419. package/dist/esm/fieldTypes/seo.js +12 -0
  420. package/dist/esm/fieldTypes/seo.js.map +1 -0
  421. package/dist/esm/fieldTypes/single_block.d.ts +134 -0
  422. package/dist/esm/fieldTypes/single_block.js +63 -0
  423. package/dist/esm/fieldTypes/single_block.js.map +1 -0
  424. package/dist/esm/fieldTypes/slug.d.ts +26 -0
  425. package/dist/esm/fieldTypes/slug.js +6 -0
  426. package/dist/esm/fieldTypes/slug.js.map +1 -0
  427. package/dist/esm/fieldTypes/string.d.ts +37 -0
  428. package/dist/esm/fieldTypes/string.js +4 -0
  429. package/dist/esm/fieldTypes/string.js.map +1 -0
  430. package/dist/esm/fieldTypes/structured_text.d.ts +181 -0
  431. package/dist/esm/fieldTypes/structured_text.js +81 -0
  432. package/dist/esm/fieldTypes/structured_text.js.map +1 -0
  433. package/dist/esm/fieldTypes/text.d.ts +34 -0
  434. package/dist/esm/fieldTypes/text.js +4 -0
  435. package/dist/esm/fieldTypes/text.js.map +1 -0
  436. package/dist/esm/fieldTypes/validators/date_range.d.ts +14 -0
  437. package/dist/esm/fieldTypes/validators/date_range.js +2 -0
  438. package/dist/esm/fieldTypes/validators/date_range.js.map +1 -0
  439. package/dist/esm/fieldTypes/validators/date_time_range.d.ts +12 -0
  440. package/dist/esm/fieldTypes/validators/date_time_range.js +2 -0
  441. package/dist/esm/fieldTypes/validators/date_time_range.js.map +1 -0
  442. package/dist/esm/fieldTypes/validators/description_length.d.ts +11 -0
  443. package/dist/esm/fieldTypes/validators/description_length.js +2 -0
  444. package/dist/esm/fieldTypes/validators/description_length.js.map +1 -0
  445. package/dist/esm/fieldTypes/validators/enum.d.ts +7 -0
  446. package/dist/esm/fieldTypes/validators/enum.js +2 -0
  447. package/dist/esm/fieldTypes/validators/enum.js.map +1 -0
  448. package/dist/esm/fieldTypes/validators/extension.d.ts +12 -0
  449. package/dist/esm/fieldTypes/validators/extension.js +2 -0
  450. package/dist/esm/fieldTypes/validators/extension.js.map +1 -0
  451. package/dist/esm/fieldTypes/validators/file_size.d.ts +16 -0
  452. package/dist/esm/fieldTypes/validators/file_size.js +2 -0
  453. package/dist/esm/fieldTypes/validators/file_size.js.map +1 -0
  454. package/dist/esm/fieldTypes/validators/format.d.ts +18 -0
  455. package/dist/esm/fieldTypes/validators/format.js +2 -0
  456. package/dist/esm/fieldTypes/validators/format.js.map +1 -0
  457. package/dist/esm/fieldTypes/validators/image_aspect_ratio.d.ts +28 -0
  458. package/dist/esm/fieldTypes/validators/image_aspect_ratio.js +2 -0
  459. package/dist/esm/fieldTypes/validators/image_aspect_ratio.js.map +1 -0
  460. package/dist/esm/fieldTypes/validators/image_dimensions.d.ts +28 -0
  461. package/dist/esm/fieldTypes/validators/image_dimensions.js +2 -0
  462. package/dist/esm/fieldTypes/validators/image_dimensions.js.map +1 -0
  463. package/dist/esm/fieldTypes/validators/index.d.ts +27 -0
  464. package/dist/esm/fieldTypes/validators/index.js +28 -0
  465. package/dist/esm/fieldTypes/validators/index.js.map +1 -0
  466. package/dist/esm/fieldTypes/validators/item_item_type.d.ts +29 -0
  467. package/dist/esm/fieldTypes/validators/item_item_type.js +2 -0
  468. package/dist/esm/fieldTypes/validators/item_item_type.js.map +1 -0
  469. package/dist/esm/fieldTypes/validators/items_item_type.d.ts +29 -0
  470. package/dist/esm/fieldTypes/validators/items_item_type.js +2 -0
  471. package/dist/esm/fieldTypes/validators/items_item_type.js.map +1 -0
  472. package/dist/esm/fieldTypes/validators/length.d.ts +19 -0
  473. package/dist/esm/fieldTypes/validators/length.js +2 -0
  474. package/dist/esm/fieldTypes/validators/length.js.map +1 -0
  475. package/dist/esm/fieldTypes/validators/number_range.d.ts +10 -0
  476. package/dist/esm/fieldTypes/validators/number_range.js +2 -0
  477. package/dist/esm/fieldTypes/validators/number_range.js.map +1 -0
  478. package/dist/esm/fieldTypes/validators/required.d.ts +4 -0
  479. package/dist/esm/fieldTypes/validators/required.js +2 -0
  480. package/dist/esm/fieldTypes/validators/required.js.map +1 -0
  481. package/dist/esm/fieldTypes/validators/required_alt_title.d.ts +12 -0
  482. package/dist/esm/fieldTypes/validators/required_alt_title.js +2 -0
  483. package/dist/esm/fieldTypes/validators/required_alt_title.js.map +1 -0
  484. package/dist/esm/fieldTypes/validators/required_seo_fields.d.ts +28 -0
  485. package/dist/esm/fieldTypes/validators/required_seo_fields.js +2 -0
  486. package/dist/esm/fieldTypes/validators/required_seo_fields.js.map +1 -0
  487. package/dist/esm/fieldTypes/validators/rich_text_blocks.d.ts +7 -0
  488. package/dist/esm/fieldTypes/validators/rich_text_blocks.js +2 -0
  489. package/dist/esm/fieldTypes/validators/rich_text_blocks.js.map +1 -0
  490. package/dist/esm/fieldTypes/validators/sanitization.d.ts +7 -0
  491. package/dist/esm/fieldTypes/validators/sanitization.js +2 -0
  492. package/dist/esm/fieldTypes/validators/sanitization.js.map +1 -0
  493. package/dist/esm/fieldTypes/validators/single_block_blocks.d.ts +7 -0
  494. package/dist/esm/fieldTypes/validators/single_block_blocks.js +2 -0
  495. package/dist/esm/fieldTypes/validators/single_block_blocks.js.map +1 -0
  496. package/dist/esm/fieldTypes/validators/size.d.ts +28 -0
  497. package/dist/esm/fieldTypes/validators/size.js +2 -0
  498. package/dist/esm/fieldTypes/validators/size.js.map +1 -0
  499. package/dist/esm/fieldTypes/validators/slug_format.d.ts +12 -0
  500. package/dist/esm/fieldTypes/validators/slug_format.js +2 -0
  501. package/dist/esm/fieldTypes/validators/slug_format.js.map +1 -0
  502. package/dist/esm/fieldTypes/validators/slug_title_field.d.ts +7 -0
  503. package/dist/esm/fieldTypes/validators/slug_title_field.js +2 -0
  504. package/dist/esm/fieldTypes/validators/slug_title_field.js.map +1 -0
  505. package/dist/esm/fieldTypes/validators/structured_text_blocks.d.ts +7 -0
  506. package/dist/esm/fieldTypes/validators/structured_text_blocks.js +2 -0
  507. package/dist/esm/fieldTypes/validators/structured_text_blocks.js.map +1 -0
  508. package/dist/esm/fieldTypes/validators/structured_text_inline_blocks.d.ts +7 -0
  509. package/dist/esm/fieldTypes/validators/structured_text_inline_blocks.js +2 -0
  510. package/dist/esm/fieldTypes/validators/structured_text_inline_blocks.js.map +1 -0
  511. package/dist/esm/fieldTypes/validators/structured_text_links.d.ts +29 -0
  512. package/dist/esm/fieldTypes/validators/structured_text_links.js +2 -0
  513. package/dist/esm/fieldTypes/validators/structured_text_links.js.map +1 -0
  514. package/dist/esm/fieldTypes/validators/title_length.d.ts +11 -0
  515. package/dist/esm/fieldTypes/validators/title_length.js +2 -0
  516. package/dist/esm/fieldTypes/validators/title_length.js.map +1 -0
  517. package/dist/esm/fieldTypes/validators/unique.d.ts +4 -0
  518. package/dist/esm/fieldTypes/validators/unique.js +2 -0
  519. package/dist/esm/fieldTypes/validators/unique.js.map +1 -0
  520. package/dist/esm/fieldTypes/video.d.ts +25 -0
  521. package/dist/esm/fieldTypes/video.js +10 -0
  522. package/dist/esm/fieldTypes/video.js.map +1 -0
  523. package/dist/esm/generated/Client.js +25 -78
  524. package/dist/esm/generated/Client.js.map +1 -1
  525. package/dist/esm/generated/SchemaTypes.d.ts +72 -7
  526. package/dist/esm/generated/SchemaTypes.js +0 -4
  527. package/dist/esm/generated/SchemaTypes.js.map +1 -1
  528. package/dist/esm/generated/SimpleSchemaTypes.d.ts +65 -8
  529. package/dist/esm/generated/SimpleSchemaTypes.js +0 -4
  530. package/dist/esm/generated/SimpleSchemaTypes.js.map +1 -1
  531. package/dist/esm/generated/resources/AccessToken.js +40 -73
  532. package/dist/esm/generated/resources/AccessToken.js.map +1 -1
  533. package/dist/esm/generated/resources/AuditLogEvent.js +9 -32
  534. package/dist/esm/generated/resources/AuditLogEvent.js.map +1 -1
  535. package/dist/esm/generated/resources/BuildEvent.js +41 -132
  536. package/dist/esm/generated/resources/BuildEvent.js.map +1 -1
  537. package/dist/esm/generated/resources/BuildTrigger.js +53 -84
  538. package/dist/esm/generated/resources/BuildTrigger.js.map +1 -1
  539. package/dist/esm/generated/resources/DailyUsage.js +8 -31
  540. package/dist/esm/generated/resources/DailyUsage.js.map +1 -1
  541. package/dist/esm/generated/resources/EditingSession.js +18 -43
  542. package/dist/esm/generated/resources/EditingSession.js.map +1 -1
  543. package/dist/esm/generated/resources/EmojiSuggestions.js +9 -32
  544. package/dist/esm/generated/resources/EmojiSuggestions.js.map +1 -1
  545. package/dist/esm/generated/resources/Environment.js +41 -74
  546. package/dist/esm/generated/resources/Environment.js.map +1 -1
  547. package/dist/esm/generated/resources/Field.d.ts +4207 -7
  548. package/dist/esm/generated/resources/Field.js +55 -92
  549. package/dist/esm/generated/resources/Field.js.map +1 -1
  550. package/dist/esm/generated/resources/Fieldset.d.ts +2 -2
  551. package/dist/esm/generated/resources/Fieldset.js +37 -68
  552. package/dist/esm/generated/resources/Fieldset.js.map +1 -1
  553. package/dist/esm/generated/resources/Item.js +131 -246
  554. package/dist/esm/generated/resources/Item.js.map +1 -1
  555. package/dist/esm/generated/resources/ItemType.js +45 -78
  556. package/dist/esm/generated/resources/ItemType.js.map +1 -1
  557. package/dist/esm/generated/resources/ItemTypeFilter.js +33 -64
  558. package/dist/esm/generated/resources/ItemTypeFilter.js.map +1 -1
  559. package/dist/esm/generated/resources/ItemVersion.js +48 -141
  560. package/dist/esm/generated/resources/ItemVersion.js.map +1 -1
  561. package/dist/esm/generated/resources/JobResult.js +9 -32
  562. package/dist/esm/generated/resources/JobResult.js.map +1 -1
  563. package/dist/esm/generated/resources/MaintenanceMode.js +19 -46
  564. package/dist/esm/generated/resources/MaintenanceMode.js.map +1 -1
  565. package/dist/esm/generated/resources/MenuItem.js +40 -73
  566. package/dist/esm/generated/resources/MenuItem.js.map +1 -1
  567. package/dist/esm/generated/resources/Plugin.js +39 -72
  568. package/dist/esm/generated/resources/Plugin.js.map +1 -1
  569. package/dist/esm/generated/resources/PublicInfo.js +8 -31
  570. package/dist/esm/generated/resources/PublicInfo.js.map +1 -1
  571. package/dist/esm/generated/resources/Role.js +39 -72
  572. package/dist/esm/generated/resources/Role.js.map +1 -1
  573. package/dist/esm/generated/resources/ScheduledPublication.js +16 -41
  574. package/dist/esm/generated/resources/ScheduledPublication.js.map +1 -1
  575. package/dist/esm/generated/resources/ScheduledUnpublishing.js +16 -41
  576. package/dist/esm/generated/resources/ScheduledUnpublishing.js.map +1 -1
  577. package/dist/esm/generated/resources/SchemaMenuItem.js +40 -73
  578. package/dist/esm/generated/resources/SchemaMenuItem.js.map +1 -1
  579. package/dist/esm/generated/resources/SearchResult.js +35 -124
  580. package/dist/esm/generated/resources/SearchResult.js.map +1 -1
  581. package/dist/esm/generated/resources/Session.js +9 -32
  582. package/dist/esm/generated/resources/Session.js.map +1 -1
  583. package/dist/esm/generated/resources/Site.js +61 -104
  584. package/dist/esm/generated/resources/Site.js.map +1 -1
  585. package/dist/esm/generated/resources/SiteInvitation.js +39 -72
  586. package/dist/esm/generated/resources/SiteInvitation.js.map +1 -1
  587. package/dist/esm/generated/resources/SsoGroup.js +27 -56
  588. package/dist/esm/generated/resources/SsoGroup.js.map +1 -1
  589. package/dist/esm/generated/resources/SsoSettings.js +19 -46
  590. package/dist/esm/generated/resources/SsoSettings.js.map +1 -1
  591. package/dist/esm/generated/resources/SsoUser.js +26 -55
  592. package/dist/esm/generated/resources/SsoUser.js.map +1 -1
  593. package/dist/esm/generated/resources/SubscriptionFeature.js +8 -31
  594. package/dist/esm/generated/resources/SubscriptionFeature.js.map +1 -1
  595. package/dist/esm/generated/resources/SubscriptionLimit.js +14 -39
  596. package/dist/esm/generated/resources/SubscriptionLimit.js.map +1 -1
  597. package/dist/esm/generated/resources/Upload.js +85 -190
  598. package/dist/esm/generated/resources/Upload.js.map +1 -1
  599. package/dist/esm/generated/resources/UploadCollection.js +40 -73
  600. package/dist/esm/generated/resources/UploadCollection.js.map +1 -1
  601. package/dist/esm/generated/resources/UploadFilter.js +33 -64
  602. package/dist/esm/generated/resources/UploadFilter.js.map +1 -1
  603. package/dist/esm/generated/resources/UploadRequest.d.ts +2 -2
  604. package/dist/esm/generated/resources/UploadRequest.js +11 -34
  605. package/dist/esm/generated/resources/UploadRequest.js.map +1 -1
  606. package/dist/esm/generated/resources/UploadSmartTag.js +35 -124
  607. package/dist/esm/generated/resources/UploadSmartTag.js.map +1 -1
  608. package/dist/esm/generated/resources/UploadTag.js +41 -132
  609. package/dist/esm/generated/resources/UploadTag.js.map +1 -1
  610. package/dist/esm/generated/resources/UploadTrack.js +29 -58
  611. package/dist/esm/generated/resources/UploadTrack.js.map +1 -1
  612. package/dist/esm/generated/resources/UsageCounter.js +10 -33
  613. package/dist/esm/generated/resources/UsageCounter.js.map +1 -1
  614. package/dist/esm/generated/resources/User.js +35 -66
  615. package/dist/esm/generated/resources/User.js.map +1 -1
  616. package/dist/esm/generated/resources/Webhook.js +33 -64
  617. package/dist/esm/generated/resources/Webhook.js.map +1 -1
  618. package/dist/esm/generated/resources/WebhookCall.js +46 -137
  619. package/dist/esm/generated/resources/WebhookCall.js.map +1 -1
  620. package/dist/esm/generated/resources/WhiteLabelSettings.js +14 -39
  621. package/dist/esm/generated/resources/WhiteLabelSettings.js.map +1 -1
  622. package/dist/esm/generated/resources/Workflow.js +32 -61
  623. package/dist/esm/generated/resources/Workflow.js.map +1 -1
  624. package/dist/esm/index.d.ts +8 -2
  625. package/dist/esm/index.js +8 -2
  626. package/dist/esm/index.js.map +1 -1
  627. package/dist/esm/resources/Role.js +41 -124
  628. package/dist/esm/resources/Role.js.map +1 -1
  629. package/dist/esm/utilities/blocks.d.ts +180 -0
  630. package/dist/esm/utilities/blocks.js +580 -0
  631. package/dist/esm/utilities/blocks.js.map +1 -0
  632. package/dist/esm/{buildBlockRecord.d.ts → utilities/buildBlockRecord.d.ts} +2 -2
  633. package/dist/esm/{buildBlockRecord.js → utilities/buildBlockRecord.js} +1 -1
  634. package/dist/esm/utilities/buildBlockRecord.js.map +1 -0
  635. package/dist/esm/utilities/fieldValueLocalization.d.ts +123 -0
  636. package/dist/esm/utilities/fieldValueLocalization.js +204 -0
  637. package/dist/esm/utilities/fieldValueLocalization.js.map +1 -0
  638. package/dist/esm/utilities/fieldsContainingReferences.d.ts +4 -0
  639. package/dist/esm/utilities/fieldsContainingReferences.js +40 -0
  640. package/dist/esm/utilities/fieldsContainingReferences.js.map +1 -0
  641. package/dist/esm/{idUtils.js → utilities/id.js} +13 -13
  642. package/dist/esm/utilities/id.js.map +1 -0
  643. package/dist/esm/utilities/recursiveBlocks.d.ts +15 -0
  644. package/dist/esm/utilities/recursiveBlocks.js +177 -0
  645. package/dist/esm/utilities/recursiveBlocks.js.map +1 -0
  646. package/dist/esm/utilities/schemaRepository.d.ts +181 -0
  647. package/dist/esm/utilities/schemaRepository.js +350 -0
  648. package/dist/esm/utilities/schemaRepository.js.map +1 -0
  649. package/dist/esm/utilities/structuredText.d.ts +177 -0
  650. package/dist/esm/utilities/structuredText.js +354 -0
  651. package/dist/esm/utilities/structuredText.js.map +1 -0
  652. package/dist/types/fieldTypes/appearance/boolean.d.ts +4 -0
  653. package/dist/types/fieldTypes/appearance/boolean_radio_group.d.ts +15 -0
  654. package/dist/types/fieldTypes/appearance/color_picker.d.ts +9 -0
  655. package/dist/types/fieldTypes/appearance/date_picker.d.ts +4 -0
  656. package/dist/types/fieldTypes/appearance/date_time_picker.d.ts +4 -0
  657. package/dist/types/fieldTypes/appearance/file.d.ts +4 -0
  658. package/dist/types/fieldTypes/appearance/float.d.ts +7 -0
  659. package/dist/types/fieldTypes/appearance/framed_single_block.d.ts +7 -0
  660. package/dist/types/fieldTypes/appearance/frameless_single_block.d.ts +7 -0
  661. package/dist/types/fieldTypes/appearance/gallery.d.ts +4 -0
  662. package/dist/types/fieldTypes/appearance/index.d.ts +30 -0
  663. package/dist/types/fieldTypes/appearance/integer.d.ts +7 -0
  664. package/dist/types/fieldTypes/appearance/json.d.ts +4 -0
  665. package/dist/types/fieldTypes/appearance/link_embed.d.ts +5 -0
  666. package/dist/types/fieldTypes/appearance/link_select.d.ts +5 -0
  667. package/dist/types/fieldTypes/appearance/links_embed.d.ts +5 -0
  668. package/dist/types/fieldTypes/appearance/links_select.d.ts +5 -0
  669. package/dist/types/fieldTypes/appearance/map.d.ts +4 -0
  670. package/dist/types/fieldTypes/appearance/markdown.d.ts +7 -0
  671. package/dist/types/fieldTypes/appearance/rich_text.d.ts +7 -0
  672. package/dist/types/fieldTypes/appearance/seo.d.ts +9 -0
  673. package/dist/types/fieldTypes/appearance/single_line.d.ts +9 -0
  674. package/dist/types/fieldTypes/appearance/slug.d.ts +9 -0
  675. package/dist/types/fieldTypes/appearance/string_checkbox_group.d.ts +15 -0
  676. package/dist/types/fieldTypes/appearance/string_multi_select.d.ts +15 -0
  677. package/dist/types/fieldTypes/appearance/string_radio_group.d.ts +15 -0
  678. package/dist/types/fieldTypes/appearance/string_select.d.ts +15 -0
  679. package/dist/types/fieldTypes/appearance/structured_text.d.ts +17 -0
  680. package/dist/types/fieldTypes/appearance/textarea.d.ts +7 -0
  681. package/dist/types/fieldTypes/appearance/video.d.ts +4 -0
  682. package/dist/types/fieldTypes/appearance/wysiwyg.d.ts +7 -0
  683. package/dist/types/fieldTypes/boolean.d.ts +17 -0
  684. package/dist/types/fieldTypes/color.d.ts +22 -0
  685. package/dist/types/fieldTypes/date.d.ts +20 -0
  686. package/dist/types/fieldTypes/date_time.d.ts +20 -0
  687. package/dist/types/fieldTypes/file.d.ts +41 -0
  688. package/dist/types/fieldTypes/float.d.ts +20 -0
  689. package/dist/types/fieldTypes/gallery.d.ts +41 -0
  690. package/dist/types/fieldTypes/index.d.ts +22 -0
  691. package/dist/types/fieldTypes/integer.d.ts +20 -0
  692. package/dist/types/fieldTypes/json.d.ts +25 -0
  693. package/dist/types/fieldTypes/lat_lon.d.ts +20 -0
  694. package/dist/types/fieldTypes/link.d.ts +27 -0
  695. package/dist/types/fieldTypes/links.d.ts +24 -0
  696. package/dist/types/fieldTypes/rich_text.d.ts +100 -0
  697. package/dist/types/fieldTypes/seo.d.ts +38 -0
  698. package/dist/types/fieldTypes/single_block.d.ts +134 -0
  699. package/dist/types/fieldTypes/slug.d.ts +26 -0
  700. package/dist/types/fieldTypes/string.d.ts +37 -0
  701. package/dist/types/fieldTypes/structured_text.d.ts +181 -0
  702. package/dist/types/fieldTypes/text.d.ts +34 -0
  703. package/dist/types/fieldTypes/validators/date_range.d.ts +14 -0
  704. package/dist/types/fieldTypes/validators/date_time_range.d.ts +12 -0
  705. package/dist/types/fieldTypes/validators/description_length.d.ts +11 -0
  706. package/dist/types/fieldTypes/validators/enum.d.ts +7 -0
  707. package/dist/types/fieldTypes/validators/extension.d.ts +12 -0
  708. package/dist/types/fieldTypes/validators/file_size.d.ts +16 -0
  709. package/dist/types/fieldTypes/validators/format.d.ts +18 -0
  710. package/dist/types/fieldTypes/validators/image_aspect_ratio.d.ts +28 -0
  711. package/dist/types/fieldTypes/validators/image_dimensions.d.ts +28 -0
  712. package/dist/types/fieldTypes/validators/index.d.ts +27 -0
  713. package/dist/types/fieldTypes/validators/item_item_type.d.ts +29 -0
  714. package/dist/types/fieldTypes/validators/items_item_type.d.ts +29 -0
  715. package/dist/types/fieldTypes/validators/length.d.ts +19 -0
  716. package/dist/types/fieldTypes/validators/number_range.d.ts +10 -0
  717. package/dist/types/fieldTypes/validators/required.d.ts +4 -0
  718. package/dist/types/fieldTypes/validators/required_alt_title.d.ts +12 -0
  719. package/dist/types/fieldTypes/validators/required_seo_fields.d.ts +28 -0
  720. package/dist/types/fieldTypes/validators/rich_text_blocks.d.ts +7 -0
  721. package/dist/types/fieldTypes/validators/sanitization.d.ts +7 -0
  722. package/dist/types/fieldTypes/validators/single_block_blocks.d.ts +7 -0
  723. package/dist/types/fieldTypes/validators/size.d.ts +28 -0
  724. package/dist/types/fieldTypes/validators/slug_format.d.ts +12 -0
  725. package/dist/types/fieldTypes/validators/slug_title_field.d.ts +7 -0
  726. package/dist/types/fieldTypes/validators/structured_text_blocks.d.ts +7 -0
  727. package/dist/types/fieldTypes/validators/structured_text_inline_blocks.d.ts +7 -0
  728. package/dist/types/fieldTypes/validators/structured_text_links.d.ts +29 -0
  729. package/dist/types/fieldTypes/validators/title_length.d.ts +11 -0
  730. package/dist/types/fieldTypes/validators/unique.d.ts +4 -0
  731. package/dist/types/fieldTypes/video.d.ts +25 -0
  732. package/dist/types/generated/SchemaTypes.d.ts +72 -7
  733. package/dist/types/generated/SimpleSchemaTypes.d.ts +65 -8
  734. package/dist/types/generated/resources/Field.d.ts +4207 -7
  735. package/dist/types/generated/resources/Fieldset.d.ts +2 -2
  736. package/dist/types/generated/resources/UploadRequest.d.ts +2 -2
  737. package/dist/types/index.d.ts +8 -2
  738. package/dist/types/utilities/blocks.d.ts +180 -0
  739. package/dist/types/{buildBlockRecord.d.ts → utilities/buildBlockRecord.d.ts} +2 -2
  740. package/dist/types/utilities/fieldValueLocalization.d.ts +123 -0
  741. package/dist/types/utilities/fieldsContainingReferences.d.ts +4 -0
  742. package/dist/types/utilities/recursiveBlocks.d.ts +15 -0
  743. package/dist/types/utilities/schemaRepository.d.ts +181 -0
  744. package/dist/types/utilities/structuredText.d.ts +177 -0
  745. package/package.json +5 -4
  746. package/resources.json +3 -3
  747. package/src/fieldTypes/appearance/boolean.ts +4 -0
  748. package/src/fieldTypes/appearance/boolean_radio_group.ts +16 -0
  749. package/src/fieldTypes/appearance/color_picker.ts +9 -0
  750. package/src/fieldTypes/appearance/date_picker.ts +4 -0
  751. package/src/fieldTypes/appearance/date_time_picker.ts +4 -0
  752. package/src/fieldTypes/appearance/file.ts +4 -0
  753. package/src/fieldTypes/appearance/float.ts +7 -0
  754. package/src/fieldTypes/appearance/framed_single_block.ts +7 -0
  755. package/src/fieldTypes/appearance/frameless_single_block.ts +7 -0
  756. package/src/fieldTypes/appearance/gallery.ts +4 -0
  757. package/src/fieldTypes/appearance/index.ts +30 -0
  758. package/src/fieldTypes/appearance/integer.ts +7 -0
  759. package/src/fieldTypes/appearance/json.ts +4 -0
  760. package/src/fieldTypes/appearance/link_embed.ts +5 -0
  761. package/src/fieldTypes/appearance/link_select.ts +5 -0
  762. package/src/fieldTypes/appearance/links_embed.ts +5 -0
  763. package/src/fieldTypes/appearance/links_select.ts +5 -0
  764. package/src/fieldTypes/appearance/map.ts +4 -0
  765. package/src/fieldTypes/appearance/markdown.ts +19 -0
  766. package/src/fieldTypes/appearance/rich_text.ts +7 -0
  767. package/src/fieldTypes/appearance/seo.ts +19 -0
  768. package/src/fieldTypes/appearance/single_line.ts +9 -0
  769. package/src/fieldTypes/appearance/slug.ts +9 -0
  770. package/src/fieldTypes/appearance/string_checkbox_group.ts +16 -0
  771. package/src/fieldTypes/appearance/string_multi_select.ts +16 -0
  772. package/src/fieldTypes/appearance/string_radio_group.ts +16 -0
  773. package/src/fieldTypes/appearance/string_select.ts +16 -0
  774. package/src/fieldTypes/appearance/structured_text.ts +21 -0
  775. package/src/fieldTypes/appearance/textarea.ts +7 -0
  776. package/src/fieldTypes/appearance/video.ts +4 -0
  777. package/src/fieldTypes/appearance/wysiwyg.ts +29 -0
  778. package/src/fieldTypes/boolean.ts +25 -0
  779. package/src/fieldTypes/color.ts +35 -0
  780. package/src/fieldTypes/date.ts +26 -0
  781. package/src/fieldTypes/date_time.ts +34 -0
  782. package/src/fieldTypes/file.ts +47 -0
  783. package/src/fieldTypes/float.ts +25 -0
  784. package/src/fieldTypes/gallery.ts +55 -0
  785. package/src/fieldTypes/index.ts +23 -0
  786. package/src/fieldTypes/integer.ts +27 -0
  787. package/src/fieldTypes/json.ts +39 -0
  788. package/src/fieldTypes/lat_lon.ts +33 -0
  789. package/src/fieldTypes/link.ts +30 -0
  790. package/src/fieldTypes/links.ts +30 -0
  791. package/src/fieldTypes/rich_text.ts +151 -0
  792. package/src/fieldTypes/seo.ts +52 -0
  793. package/src/fieldTypes/single_block.ts +201 -0
  794. package/src/fieldTypes/slug.ts +32 -0
  795. package/src/fieldTypes/string.ts +41 -0
  796. package/src/fieldTypes/structured_text.ts +328 -0
  797. package/src/fieldTypes/text.ts +35 -0
  798. package/src/fieldTypes/validators/date_range.ts +16 -0
  799. package/src/fieldTypes/validators/date_time_range.ts +14 -0
  800. package/src/fieldTypes/validators/description_length.ts +13 -0
  801. package/src/fieldTypes/validators/enum.ts +7 -0
  802. package/src/fieldTypes/validators/extension.ts +14 -0
  803. package/src/fieldTypes/validators/file_size.ts +18 -0
  804. package/src/fieldTypes/validators/format.ts +18 -0
  805. package/src/fieldTypes/validators/image_aspect_ratio.ts +31 -0
  806. package/src/fieldTypes/validators/image_dimensions.ts +32 -0
  807. package/src/fieldTypes/validators/index.ts +27 -0
  808. package/src/fieldTypes/validators/item_item_type.ts +31 -0
  809. package/src/fieldTypes/validators/items_item_type.ts +31 -0
  810. package/src/fieldTypes/validators/length.ts +22 -0
  811. package/src/fieldTypes/validators/number_range.ts +12 -0
  812. package/src/fieldTypes/validators/required.ts +4 -0
  813. package/src/fieldTypes/validators/required_alt_title.ts +14 -0
  814. package/src/fieldTypes/validators/required_seo_fields.ts +32 -0
  815. package/src/fieldTypes/validators/rich_text_blocks.ts +7 -0
  816. package/src/fieldTypes/validators/sanitization.ts +7 -0
  817. package/src/fieldTypes/validators/single_block_blocks.ts +7 -0
  818. package/src/fieldTypes/validators/size.ts +32 -0
  819. package/src/fieldTypes/validators/slug_format.ts +14 -0
  820. package/src/fieldTypes/validators/slug_title_field.ts +7 -0
  821. package/src/fieldTypes/validators/structured_text_blocks.ts +7 -0
  822. package/src/fieldTypes/validators/structured_text_inline_blocks.ts +7 -0
  823. package/src/fieldTypes/validators/structured_text_links.ts +31 -0
  824. package/src/fieldTypes/validators/title_length.ts +13 -0
  825. package/src/fieldTypes/validators/unique.ts +4 -0
  826. package/src/fieldTypes/video.ts +37 -0
  827. package/src/generated/Client.ts +1 -1
  828. package/src/generated/SchemaTypes.ts +645 -7
  829. package/src/generated/SimpleSchemaTypes.ts +638 -8
  830. package/src/generated/resources/Field.ts +2 -2
  831. package/src/generated/resources/Fieldset.ts +2 -2
  832. package/src/generated/resources/UploadRequest.ts +2 -2
  833. package/src/index.ts +8 -2
  834. package/src/utilities/blocks.ts +626 -0
  835. package/src/{buildBlockRecord.ts → utilities/buildBlockRecord.ts} +3 -3
  836. package/src/utilities/fieldValueLocalization.ts +339 -0
  837. package/src/utilities/fieldsContainingReferences.ts +49 -0
  838. package/src/utilities/recursiveBlocks.ts +392 -0
  839. package/src/utilities/schemaRepository.ts +379 -0
  840. package/src/utilities/structuredText.ts +590 -0
  841. package/dist/cjs/buildBlockRecord.js.map +0 -1
  842. package/dist/cjs/idUtils.js.map +0 -1
  843. package/dist/esm/buildBlockRecord.js.map +0 -1
  844. package/dist/esm/idUtils.js.map +0 -1
  845. /package/dist/esm/{idUtils.d.ts → utilities/id.d.ts} +0 -0
  846. /package/dist/types/{idUtils.d.ts → utilities/id.d.ts} +0 -0
  847. /package/src/{idUtils.ts → utilities/id.ts} +0 -0
@@ -0,0 +1,201 @@
1
+ import type * as SchemaTypes from '../generated/SchemaTypes';
2
+
3
+ /**
4
+ * SINGLE BLOCK FIELD TYPE SYSTEM FOR DATOCMS
5
+ *
6
+ * This module defines a comprehensive type system for handling DatoCMS Single Block fields,
7
+ * which contain a single embedded content block.
8
+ *
9
+ * The challenge we're solving:
10
+ * - DatoCMS Single Block fields contain a single "block" (embedded content item)
11
+ * - By default, API responses contain blocks as string IDs (lightweight references)
12
+ * - With ?nested=true parameter, API responses contain blocks as full block objects
13
+ * (which in turn can contain other blocks)
14
+ * - For API requests, blocks can be represented as:
15
+ * 1. String IDs (referencing existing blocks)
16
+ * 2. Full block objects with IDs (for updates)
17
+ * 3. Block objects without IDs (for creation)
18
+ *
19
+ * This creates a need for different type variants for the same conceptual data structure.
20
+ */
21
+
22
+ /**
23
+ * =============================================================================
24
+ * BASIC SINGLE BLOCK TYPE - Default API response format
25
+ * =============================================================================
26
+ *
27
+ * The standard Single Block field value containing a block reference as string ID.
28
+ * This is what you get from regular API responses without ?nested=true.
29
+ */
30
+
31
+ /**
32
+ * Basic Single Block field value - string block ID (lightweight reference)
33
+ */
34
+ export type SingleBlockFieldValue = string | null;
35
+
36
+ /**
37
+ * =============================================================================
38
+ * REQUEST VARIANT - Type for sending data TO the DatoCMS API
39
+ * =============================================================================
40
+ *
41
+ * When making API requests, we need flexibility in how we represent embedded blocks:
42
+ * - Use string ID to reference existing block that does not need to change
43
+ * - Include full block object for updates
44
+ * - Omit ID for new blocks being created
45
+ */
46
+
47
+ /**
48
+ * Union type representing the different ways a block can be specified in API requests:
49
+ * - string: Just the block ID (most common case)
50
+ * - Full block object with ID (for updates)
51
+ * - Block object without ID (for creation)
52
+ *
53
+ * Also, 'meta' can always be omitted
54
+ */
55
+ export type BlockItemInARequest =
56
+ | string
57
+ | OptionalFields<SchemaTypes.Item, 'id' | 'meta'>;
58
+
59
+ /**
60
+ * Single Block field value for API requests - allows flexible block representations:
61
+ * - string: Just the block ID (most common case)
62
+ * - SchemaTypes.Item: Full block object with ID (for updates)
63
+ * - Omit<SchemaTypes.Item, 'id'>: Block object without ID (for creation)
64
+ */
65
+ export type SingleBlockFieldValueAsRequest = BlockItemInARequest | null;
66
+
67
+ /**
68
+ * =============================================================================
69
+ * NESTED VARIANT - Type for API responses with ?nested=true parameter
70
+ * =============================================================================
71
+ *
72
+ * When using the ?nested=true query parameter, the API returns Single Block data
73
+ * with embedded block fully populated as complete SchemaTypes.Item object instead
74
+ * of just string ID. This provides type safety for working with fully resolved data.
75
+ */
76
+
77
+ /**
78
+ * Single Block field value with nested block - fully populated block object
79
+ */
80
+ export type SingleBlockFieldValueWithResolvedBlocks = SchemaTypes.Item | null;
81
+
82
+ /**
83
+ * =============================================================================
84
+ * SHARED UTILITY FUNCTIONS
85
+ * =============================================================================
86
+ * These functions are used internally and can be imported by other modules
87
+ */
88
+
89
+ /**
90
+ * Validates if a single block item is a string ID
91
+ */
92
+ export function isBlockStringId(block: unknown): block is string {
93
+ return typeof block === 'string';
94
+ }
95
+
96
+ export type ItemWithOptionalIdAndMeta = OptionalFields<
97
+ SchemaTypes.Item,
98
+ 'id' | 'meta'
99
+ >;
100
+
101
+ /**
102
+ * Validates if a single block item is a SchemaTypes.Item object (with or without ID)
103
+ */
104
+ export function isBlockObject(
105
+ block: unknown,
106
+ ): block is ItemWithOptionalIdAndMeta {
107
+ return (
108
+ typeof block === 'object' &&
109
+ block !== null &&
110
+ 'type' in block &&
111
+ 'attributes' in block
112
+ );
113
+ }
114
+
115
+ export type ItemWithOptionalMeta = OptionalFields<SchemaTypes.Item, 'meta'>;
116
+
117
+ /**
118
+ * Validates if a single block item is a complete SchemaTypes.Item object with ID
119
+ */
120
+ export function isBlockObjectWithId(
121
+ block: unknown,
122
+ ): block is ItemWithOptionalMeta {
123
+ return isBlockObject(block) && 'id' in block && typeof block.id === 'string';
124
+ }
125
+
126
+ /**
127
+ * =============================================================================
128
+ * TYPE GUARDS - Runtime validation functions
129
+ * =============================================================================
130
+ */
131
+
132
+ /**
133
+ * Type guard for basic Single Block field values (block as string ID only).
134
+ * Checks for string structure and ensures block is a string reference.
135
+ */
136
+ export function isSingleBlockFieldValue(
137
+ value: unknown,
138
+ ): value is SingleBlockFieldValue {
139
+ return typeof value === 'string' || value === null;
140
+ }
141
+
142
+ /**
143
+ * Type guard for Single Block field values in API request format.
144
+ * Allows block as string ID, full object with ID, or object without ID.
145
+ */
146
+ export function isSingleBlockFieldValueAsRequest(
147
+ value: unknown,
148
+ ): value is SingleBlockFieldValueAsRequest {
149
+ if (value === null) return true;
150
+
151
+ // String ID _ referencing existing block
152
+ if (isBlockStringId(value)) return true;
153
+
154
+ // Object (either with or without ID for updates/creation)
155
+ return isBlockObject(value);
156
+ }
157
+
158
+ /**
159
+ * Type guard for Single Block field values with nested blocks (?nested=true format).
160
+ * Ensures block is a full SchemaTypes.Item object with complete data.
161
+ */
162
+ export function isSingleBlockFieldValueWithResolvedBlocks(
163
+ value: unknown,
164
+ ): value is SingleBlockFieldValueWithResolvedBlocks {
165
+ if (value === null) return true;
166
+
167
+ // Must be a full object with ID (nested format always includes complete block objects)
168
+ return isBlockObjectWithId(value);
169
+ }
170
+
171
+ import type { FramedSingleBlockEditorConfiguration } from './appearance/framed_single_block';
172
+ import type { FramelessSingleBlockEditorConfiguration } from './appearance/frameless_single_block';
173
+ import type { RequiredValidator } from './validators/required';
174
+ import type { SingleBlockBlocksValidator } from './validators/single_block_blocks';
175
+
176
+ export type SingleBlockFieldValidators = {
177
+ /** Only accept references to block records of the specified block models */
178
+ single_block_blocks: SingleBlockBlocksValidator;
179
+ /** Value must be specified or it won't be valid */
180
+ required?: RequiredValidator;
181
+ };
182
+
183
+ export type SingleBlockFieldAppearance =
184
+ | {
185
+ editor: 'framed_single_block';
186
+ parameters: FramedSingleBlockEditorConfiguration;
187
+ }
188
+ | {
189
+ editor: 'frameless_single_block';
190
+ parameters: FramelessSingleBlockEditorConfiguration;
191
+ }
192
+ | {
193
+ /** Plugin ID */
194
+ editor: string;
195
+ /** Plugin configuration */
196
+ parameters: Record<string, unknown>;
197
+ };
198
+
199
+ // UTILITIES
200
+
201
+ type OptionalFields<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
@@ -0,0 +1,32 @@
1
+ import type { SlugEditorConfiguration } from './appearance/slug';
2
+ import type { LengthValidator } from './validators/length';
3
+ import type { RequiredValidator } from './validators/required';
4
+ import type { SlugFormatValidator } from './validators/slug_format';
5
+ import type { SlugTitleFieldValidator } from './validators/slug_title_field';
6
+
7
+ export type SlugFieldValue = string | null;
8
+
9
+ export function isSlugFieldValue(value: unknown): value is SlugFieldValue {
10
+ if (value === null) return true;
11
+ return typeof value === 'string' && /^[a-z0-9_]+(?:-[a-z0-9]+)*$/.test(value);
12
+ }
13
+
14
+ export type SlugFieldValidators = {
15
+ /** Value must be specified or it won't be valid */
16
+ required?: RequiredValidator;
17
+ /** Accept strings only with a specified number of characters */
18
+ length?: LengthValidator;
19
+ /** Only accept slugs having a specific format */
20
+ slug_format?: SlugFormatValidator;
21
+ /** Specifies the ID of the Single_line string field that will be used to generate the slug */
22
+ slug_title_field?: SlugTitleFieldValidator;
23
+ };
24
+
25
+ export type SlugFieldAppearance =
26
+ | { editor: 'slug'; parameters: SlugEditorConfiguration }
27
+ | {
28
+ /** Plugin ID */
29
+ editor: string;
30
+ /** Plugin configuration */
31
+ parameters: Record<string, unknown>;
32
+ };
@@ -0,0 +1,41 @@
1
+ import type { SingleLineEditorConfiguration } from './appearance/single_line';
2
+ import type { StringRadioGroupEditorConfiguration } from './appearance/string_radio_group';
3
+ import type { StringSelectEditorConfiguration } from './appearance/string_select';
4
+ import type { EnumValidator } from './validators/enum';
5
+ import type { FormatValidator } from './validators/format';
6
+ import type { LengthValidator } from './validators/length';
7
+ import type { RequiredValidator } from './validators/required';
8
+ import type { UniqueValidator } from './validators/unique';
9
+
10
+ export type StringFieldValue = string | null;
11
+
12
+ export function isStringFieldValue(value: unknown): value is StringFieldValue {
13
+ return typeof value === 'string' || value === null;
14
+ }
15
+
16
+ export type StringFieldValidators = {
17
+ /** Value must be specified or it won't be valid */
18
+ required?: RequiredValidator;
19
+ /** The value must be unique across the whole collection of records */
20
+ unique?: UniqueValidator;
21
+ /** Accept strings only with a specified number of characters */
22
+ length?: LengthValidator;
23
+ /** Accepts only strings that match a specified format */
24
+ format?: FormatValidator;
25
+ /** Only accept a specific set of values */
26
+ enum?: EnumValidator;
27
+ };
28
+
29
+ export type StringFieldAppearance =
30
+ | { editor: 'single_line'; parameters: SingleLineEditorConfiguration }
31
+ | {
32
+ editor: 'string_radio_group';
33
+ parameters: StringRadioGroupEditorConfiguration;
34
+ }
35
+ | { editor: 'string_select'; parameters: StringSelectEditorConfiguration }
36
+ | {
37
+ /** Plugin ID */
38
+ editor: string;
39
+ /** Plugin configuration */
40
+ parameters: Record<string, unknown>;
41
+ };
@@ -0,0 +1,328 @@
1
+ import {
2
+ type Block,
3
+ type Document,
4
+ type InlineBlock,
5
+ type Root,
6
+ isBlock,
7
+ isInlineBlock,
8
+ isNode,
9
+ } from 'datocms-structured-text-utils';
10
+ import type * as SchemaTypes from '../generated/SchemaTypes';
11
+ import { everyNode } from '../utilities/structuredText';
12
+ import {
13
+ type BlockItemInARequest,
14
+ isBlockObject,
15
+ isBlockObjectWithId,
16
+ isBlockStringId,
17
+ } from './single_block';
18
+
19
+ /**
20
+ * STRUCTURED TEXT TYPE SYSTEM FOR DATOCMS
21
+ *
22
+ * This module defines a comprehensive type system for handling DatoCMS structured text fields,
23
+ * which are rich text documents that can contain embedded blocks and inline elements.
24
+ *
25
+ * The challenge we're solving:
26
+ * - DatoCMS structured text can contain "blocks" (embedded content items) in bloth 'block'
27
+ * and 'inlineBlock' nodes
28
+ * - By default, API responses contain blocks as string IDs (lightweight references)
29
+ * - With ?nested=true parameter though, API responses contain blocks as full item objects
30
+ * (which in turn can contain other blocks)
31
+ * - For API requests, blocks can be represented as:
32
+ * 1. String IDs (referencing existing items)
33
+ * 2. Full item objects with IDs (for updates)
34
+ * 3. Item objects without IDs (for creation)
35
+ *
36
+ * This creates a need for different type variants for the same conceptual data structure.
37
+ */
38
+
39
+ /**
40
+ * =============================================================================
41
+ * REQUEST VARIANTS - Types for sending data TO the DatoCMS API
42
+ * =============================================================================
43
+ *
44
+ * When making API requests, we need flexibility in how we represent embedded blocks:
45
+ * - Use string IDs to reference existing blocks that do not need to change
46
+ * - Include full block objects for updates
47
+ * - Omit IDs for new blocks being created
48
+ */
49
+
50
+ /**
51
+ * Variant of 'block' structured text node for API requests
52
+ */
53
+ export type BlockAsRequest = Omit<Block, 'item'> & {
54
+ item: BlockItemInARequest;
55
+ };
56
+
57
+ /**
58
+ * Variant of 'inlineBlock' structured text node for API requests
59
+ */
60
+ export type InlineBlockAsRequest = Omit<InlineBlock, 'item'> & {
61
+ item: BlockItemInARequest;
62
+ };
63
+
64
+ /**
65
+ * Generic type to transform a node that might be containing a 'block' or 'inlineBlock' as a (deeply nested) children to its variant for API requests
66
+ */
67
+ export type NodeAsRequest<T> = WithMappedChildren<
68
+ T,
69
+ DeepMapVariants<
70
+ T extends { children: infer C } ? C : never,
71
+ BlockAsRequest,
72
+ InlineBlockAsRequest
73
+ >
74
+ >;
75
+
76
+ /**
77
+ * Variant of Structured Text document for API requests
78
+ */
79
+ export type DocumentAsRequest = {
80
+ schema: 'dast';
81
+ document: NodeAsRequest<Root>;
82
+ };
83
+
84
+ /**
85
+ * =============================================================================
86
+ * NESTED VARIANTS - Types for API responses with ?nested=true parameter
87
+ * =============================================================================
88
+ *
89
+ * When using the GET /items?nested=true, the API returns Structured Text documents
90
+ * with embedded blocks fully populated as complete SchemaTypes.Item objects instead
91
+ * of just string IDs.
92
+ */
93
+
94
+ /**
95
+ * Variant of 'block' structured text node for ?nested=true API responses
96
+ */
97
+ export type BlockWithResolvedBlocks = Omit<Block, 'item'> & {
98
+ item: SchemaTypes.Item;
99
+ };
100
+
101
+ /**
102
+ * Variant of 'inlineBlock' structured text node for ?nested=true API responses
103
+ */
104
+ export type InlineBlockWithResolvedBlocks = Omit<InlineBlock, 'item'> & {
105
+ item: SchemaTypes.Item;
106
+ };
107
+
108
+ /**
109
+ * Generic type to transform a node that might be containing a 'block' or 'inlineBlock' as a (deeply nested) children to it's variant for ?nested=true API responses
110
+ */
111
+ export type NodeWithResolvedBlocks<T> = WithMappedChildren<
112
+ T,
113
+ DeepMapVariants<
114
+ T extends { children: infer C } ? C : never,
115
+ BlockWithResolvedBlocks,
116
+ InlineBlockWithResolvedBlocks
117
+ >
118
+ >;
119
+
120
+ /**
121
+ * Variant of Structured Text document for ?nested=true API responses
122
+ */
123
+ export type DocumentWithResolvedBlocks = {
124
+ schema: 'dast';
125
+ document: NodeWithResolvedBlocks<Root>;
126
+ };
127
+
128
+ /**
129
+ * =============================================================================
130
+ * MAIN APPLICATION TYPES
131
+ * =============================================================================
132
+ */
133
+
134
+ /**
135
+ * The main type for structured text field values in our application.
136
+ * Can be null (empty field) or a document with blocks as string IDs
137
+ */
138
+ export type StructuredTextFieldValue = Document | null;
139
+ export type StructuredTextFieldValueAsRequest = DocumentAsRequest | null;
140
+ export type StructuredTextFieldValueWithResolvedBlocks =
141
+ DocumentWithResolvedBlocks | null;
142
+
143
+ /**
144
+ * Helper function to validate if a value has the expected structured text document structure.
145
+ * Checks for the presence of 'schema' and 'document' properties on a non-null object.
146
+ */
147
+ function isValidDocumentStructure(
148
+ value: unknown,
149
+ ): value is { schema: unknown; document: unknown } {
150
+ return (
151
+ typeof value === 'object' &&
152
+ value !== null &&
153
+ 'schema' in value &&
154
+ 'document' in value
155
+ );
156
+ }
157
+
158
+ /**
159
+ * Utility function to validate all block/inlineBlock nodes in a structured text document tree.
160
+ * Calls the provided callback for each block/inlineBlock node found and returns true only if all pass.
161
+ */
162
+ function validateAllBlockNodes(
163
+ node: unknown,
164
+ callback: (
165
+ node:
166
+ | Block
167
+ | BlockAsRequest
168
+ | BlockWithResolvedBlocks
169
+ | InlineBlock
170
+ | InlineBlockAsRequest
171
+ | InlineBlockWithResolvedBlocks,
172
+ ) => boolean,
173
+ ): boolean {
174
+ return everyNode(node, (currentNode) => {
175
+ // If this is a block or inlineBlock node, validate it with the callback
176
+ if (
177
+ isNode(currentNode) &&
178
+ (isBlock(currentNode) || isInlineBlock(currentNode))
179
+ ) {
180
+ return callback(currentNode);
181
+ }
182
+ // For all other node types, they're valid by default
183
+ return true;
184
+ });
185
+ }
186
+
187
+ /**
188
+ * Type guard for basic structured text field values (blocks as string IDs only).
189
+ * Checks for the expected structure and ensures all block/inlineBlock nodes have string IDs.
190
+ */
191
+ export function isStructuredTextFieldValue(
192
+ value: unknown,
193
+ ): value is StructuredTextFieldValue {
194
+ if (value === null) return true;
195
+
196
+ if (!isValidDocumentStructure(value)) {
197
+ return false;
198
+ }
199
+
200
+ // Check that all block/inlineBlock nodes have string item IDs
201
+ return validateAllBlockNodes(value.document, (node) => {
202
+ return typeof node.item === 'string';
203
+ });
204
+ }
205
+
206
+ /**
207
+ * Type guard for structured text field values in API request format.
208
+ * Allows blocks as string IDs, full objects with IDs, or objects without IDs.
209
+ */
210
+ export function isStructuredTextFieldValueAsRequest(
211
+ value: unknown,
212
+ ): value is StructuredTextFieldValueAsRequest {
213
+ if (value === null) return true;
214
+
215
+ if (!isValidDocumentStructure(value)) {
216
+ return false;
217
+ }
218
+
219
+ // Check that all block/inlineBlock nodes have valid request format items
220
+ return validateAllBlockNodes(value.document, (node) => {
221
+ const item = node.item;
222
+
223
+ // String ID
224
+ if (isBlockStringId(item)) return true;
225
+
226
+ // Object (either with or without ID)
227
+ return isBlockObject(item);
228
+ });
229
+ }
230
+
231
+ /**
232
+ * Type guard for structured text field values with nested blocks (?nested=true format).
233
+ * Ensures all block/inlineBlock nodes have full SchemaTypes.Item objects.
234
+ */
235
+ export function isStructuredTextFieldValueWithResolvedBlocks(
236
+ value: unknown,
237
+ ): value is StructuredTextFieldValueWithResolvedBlocks {
238
+ if (value === null) return true;
239
+
240
+ if (!isValidDocumentStructure(value)) {
241
+ return false;
242
+ }
243
+
244
+ // Check that all block/inlineBlock nodes have full item objects
245
+ return validateAllBlockNodes(value.document, (node) => {
246
+ const item = node.item;
247
+
248
+ // Must be a full object with ID (nested format always includes full items)
249
+ return isBlockObjectWithId(item);
250
+ });
251
+ }
252
+
253
+ /**
254
+ * =============================================================================
255
+ * SHARED TRANSFORMATION UTILITIES
256
+ * =============================================================================
257
+ *
258
+ * These utility types provide the machinery for automatically transforming
259
+ * structured text types between their different variants. The goal is to
260
+ * recursively walk through complex nested structures and apply the appropriate
261
+ * transformations to Block and InlineBlock nodes while preserving all other types.
262
+ */
263
+
264
+ /**
265
+ * Utility type that preserves the structure of T but replaces its children with ChildrenType.
266
+ * If T doesn't have children, it returns T unchanged.
267
+ */
268
+ type WithMappedChildren<T, ChildrenType> = T extends { children: any }
269
+ ? Omit<T, 'children'> & { children: ChildrenType }
270
+ : T;
271
+
272
+ /**
273
+ * Generic transformation type that replace 'block' and 'inlineBlock' node types to their variants.
274
+ */
275
+ type MapVariants<T, BlockVariant, InlineBlockVariant> = T extends Block
276
+ ? BlockVariant
277
+ : T extends InlineBlock
278
+ ? InlineBlockVariant
279
+ : T;
280
+
281
+ /**
282
+ * Recursively transform a Structured Text node type using the provided variants for 'block' and 'inlineBlock' nodes.
283
+ *
284
+ * This handles three cases:
285
+ * _ Arrays: Transform each array element recursively
286
+ * _ Objects with children: Transform the object itself AND recursively transform its children
287
+ * _ Leaf nodes: Apply the variant mapping
288
+ */
289
+ type DeepMapVariants<T, BlockVariant, InlineBlockVariant> =
290
+ T extends (infer U)[]
291
+ ? DeepMapVariants<U, BlockVariant, InlineBlockVariant>[]
292
+ : T extends { children: infer Children }
293
+ ? T extends { children: any }
294
+ ? Omit<T, 'children'> & {
295
+ children: DeepMapVariants<
296
+ Children,
297
+ BlockVariant,
298
+ InlineBlockVariant
299
+ >;
300
+ }
301
+ : MapVariants<T, BlockVariant, InlineBlockVariant>
302
+ : MapVariants<T, BlockVariant, InlineBlockVariant>;
303
+
304
+ import type { StructuredTextEditorConfiguration } from './appearance/structured_text';
305
+ import type { LengthValidator } from './validators/length';
306
+ import type { StructuredTextBlocksValidator } from './validators/structured_text_blocks';
307
+ import type { StructuredTextInlineBlocksValidator } from './validators/structured_text_inline_blocks';
308
+ import type { StructuredTextLinksValidator } from './validators/structured_text_links';
309
+
310
+ export type StructuredTextFieldValidators = {
311
+ /** Only accept references to block records of the specified block models */
312
+ structured_text_blocks: StructuredTextBlocksValidator;
313
+ /** Only accept itemLink to inlineItem nodes for records of the specified models */
314
+ structured_text_links: StructuredTextLinksValidator;
315
+ /** Accept strings only with a specified number of characters */
316
+ length?: LengthValidator;
317
+ /** Only accept references to block records of the specified block models for inline blocks */
318
+ structured_text_inline_blocks?: StructuredTextInlineBlocksValidator;
319
+ };
320
+
321
+ export type StructuredTextFieldAppearance =
322
+ | { editor: 'structured_text'; parameters: StructuredTextEditorConfiguration }
323
+ | {
324
+ /** Plugin ID */
325
+ editor: string;
326
+ /** Plugin configuration */
327
+ parameters: Record<string, unknown>;
328
+ };
@@ -0,0 +1,35 @@
1
+ import type { MarkdownEditorConfiguration } from './appearance/markdown';
2
+ import type { TextareaEditorConfiguration } from './appearance/textarea';
3
+ import type { WysiwygEditorConfiguration } from './appearance/wysiwyg';
4
+ import type { FormatValidator } from './validators/format';
5
+ import type { LengthValidator } from './validators/length';
6
+ import type { RequiredValidator } from './validators/required';
7
+ import type { SanitizationValidator } from './validators/sanitization';
8
+
9
+ export type TextFieldValue = string | null;
10
+
11
+ export function isTextFieldValue(value: unknown): value is TextFieldValue {
12
+ return typeof value === 'string' || value === null;
13
+ }
14
+
15
+ export type TextFieldValidators = {
16
+ /** Value must be specified or it won't be valid */
17
+ required?: RequiredValidator;
18
+ /** Accept strings only with a specified number of characters */
19
+ length?: LengthValidator;
20
+ /** Accepts only strings that match a specified format */
21
+ format?: FormatValidator;
22
+ /** Checks for the presence of malicious code in HTML fields */
23
+ sanitization?: SanitizationValidator;
24
+ };
25
+
26
+ export type TextFieldAppearance =
27
+ | { editor: 'markdown'; parameters: MarkdownEditorConfiguration }
28
+ | { editor: 'wysiwyg'; parameters: WysiwygEditorConfiguration }
29
+ | { editor: 'textarea'; parameters: TextareaEditorConfiguration }
30
+ | {
31
+ /** Plugin ID */
32
+ editor: string;
33
+ /** Plugin configuration */
34
+ parameters: Record<string, unknown>;
35
+ };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Accept dates only inside a specified date range.
3
+ */
4
+ export type DateRangeValidator =
5
+ | {
6
+ /** Minimum date (ISO 8601 date format) */
7
+ min: string;
8
+ /** Maximum date (ISO 8601 date format) */
9
+ max?: string;
10
+ }
11
+ | {
12
+ /** Minimum date (ISO 8601 date format) */
13
+ min?: string;
14
+ /** Maximum date (ISO 8601 date format) */
15
+ max: string;
16
+ };
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Accept date times only inside a specified date range.
3
+ */
4
+ export type DateTimeRangeValidator =
5
+ | {
6
+ /** Minimum datetime (ISO 8601 datetime format) */
7
+ min: string /** Maximum datetime (ISO 8601 datetime format) */;
8
+ max?: string;
9
+ }
10
+ | {
11
+ /** Minimum datetime (ISO 8601 datetime format) */
12
+ min?: string /** Maximum datetime (ISO 8601 datetime format) */;
13
+ max: string;
14
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Limits the length of the description for a SEO field.
3
+ * Search engines usually truncate description tags to 160 characters so it is a good practice to keep the description around this length.
4
+ */
5
+ export type DescriptionLengthValidator =
6
+ | {
7
+ /** Minimum value */ min: number /** Maximum value */;
8
+ max?: number;
9
+ }
10
+ | {
11
+ /** Minimum value */ min?: number /** Maximum value */;
12
+ max: number;
13
+ };
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Only accept a specific set of values.
3
+ */
4
+ export type EnumValidator = {
5
+ /** Set of allowed values */
6
+ values: string[];
7
+ };