@datocms/cma-client 5.0.1 → 5.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/BaseResource.js +3 -4
- package/dist/cjs/BaseResource.js.map +1 -1
- package/dist/cjs/buildClient.js +1 -1
- package/dist/cjs/buildClient.js.map +1 -1
- package/dist/cjs/fieldTypes/appearance/boolean.js +3 -0
- package/dist/cjs/fieldTypes/appearance/boolean.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/boolean_radio_group.js +3 -0
- package/dist/cjs/fieldTypes/appearance/boolean_radio_group.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/color_picker.js +3 -0
- package/dist/cjs/fieldTypes/appearance/color_picker.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/date_picker.js +3 -0
- package/dist/cjs/fieldTypes/appearance/date_picker.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/date_time_picker.js +3 -0
- package/dist/cjs/fieldTypes/appearance/date_time_picker.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/file.js +3 -0
- package/dist/cjs/fieldTypes/appearance/file.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/float.js +3 -0
- package/dist/cjs/fieldTypes/appearance/float.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/framed_single_block.js +3 -0
- package/dist/cjs/fieldTypes/appearance/framed_single_block.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/frameless_single_block.js +3 -0
- package/dist/cjs/fieldTypes/appearance/frameless_single_block.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/gallery.js +3 -0
- package/dist/cjs/fieldTypes/appearance/gallery.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/index.js +47 -0
- package/dist/cjs/fieldTypes/appearance/index.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/integer.js +3 -0
- package/dist/cjs/fieldTypes/appearance/integer.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/json.js +3 -0
- package/dist/cjs/fieldTypes/appearance/json.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/link_embed.js +3 -0
- package/dist/cjs/fieldTypes/appearance/link_embed.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/link_select.js +3 -0
- package/dist/cjs/fieldTypes/appearance/link_select.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/links_embed.js +3 -0
- package/dist/cjs/fieldTypes/appearance/links_embed.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/links_select.js +3 -0
- package/dist/cjs/fieldTypes/appearance/links_select.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/map.js +3 -0
- package/dist/cjs/fieldTypes/appearance/map.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/markdown.js +3 -0
- package/dist/cjs/fieldTypes/appearance/markdown.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/rich_text.js +3 -0
- package/dist/cjs/fieldTypes/appearance/rich_text.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/seo.js +3 -0
- package/dist/cjs/fieldTypes/appearance/seo.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/single_line.js +3 -0
- package/dist/cjs/fieldTypes/appearance/single_line.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/slug.js +3 -0
- package/dist/cjs/fieldTypes/appearance/slug.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/string_checkbox_group.js +3 -0
- package/dist/cjs/fieldTypes/appearance/string_checkbox_group.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/string_multi_select.js +3 -0
- package/dist/cjs/fieldTypes/appearance/string_multi_select.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/string_radio_group.js +3 -0
- package/dist/cjs/fieldTypes/appearance/string_radio_group.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/string_select.js +3 -0
- package/dist/cjs/fieldTypes/appearance/string_select.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/structured_text.js +3 -0
- package/dist/cjs/fieldTypes/appearance/structured_text.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/textarea.js +3 -0
- package/dist/cjs/fieldTypes/appearance/textarea.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/video.js +3 -0
- package/dist/cjs/fieldTypes/appearance/video.js.map +1 -0
- package/dist/cjs/fieldTypes/appearance/wysiwyg.js +3 -0
- package/dist/cjs/fieldTypes/appearance/wysiwyg.js.map +1 -0
- package/dist/cjs/fieldTypes/boolean.js +8 -0
- package/dist/cjs/fieldTypes/boolean.js.map +1 -0
- package/dist/cjs/fieldTypes/color.js +15 -0
- package/dist/cjs/fieldTypes/color.js.map +1 -0
- package/dist/cjs/fieldTypes/date.js +10 -0
- package/dist/cjs/fieldTypes/date.js.map +1 -0
- package/dist/cjs/fieldTypes/date_time.js +11 -0
- package/dist/cjs/fieldTypes/date_time.js.map +1 -0
- package/dist/cjs/fieldTypes/file.js +10 -0
- package/dist/cjs/fieldTypes/file.js.map +1 -0
- package/dist/cjs/fieldTypes/float.js +8 -0
- package/dist/cjs/fieldTypes/float.js.map +1 -0
- package/dist/cjs/fieldTypes/gallery.js +11 -0
- package/dist/cjs/fieldTypes/gallery.js.map +1 -0
- package/dist/cjs/fieldTypes/index.js +39 -0
- package/dist/cjs/fieldTypes/index.js.map +1 -0
- package/dist/cjs/fieldTypes/integer.js +8 -0
- package/dist/cjs/fieldTypes/integer.js.map +1 -0
- package/dist/cjs/fieldTypes/json.js +18 -0
- package/dist/cjs/fieldTypes/json.js.map +1 -0
- package/dist/cjs/fieldTypes/lat_lon.js +13 -0
- package/dist/cjs/fieldTypes/lat_lon.js.map +1 -0
- package/dist/cjs/fieldTypes/link.js +8 -0
- package/dist/cjs/fieldTypes/link.js.map +1 -0
- package/dist/cjs/fieldTypes/links.js +10 -0
- package/dist/cjs/fieldTypes/links.js.map +1 -0
- package/dist/cjs/fieldTypes/rich_text.js +53 -0
- package/dist/cjs/fieldTypes/rich_text.js.map +1 -0
- package/dist/cjs/fieldTypes/seo.js +16 -0
- package/dist/cjs/fieldTypes/seo.js.map +1 -0
- package/dist/cjs/fieldTypes/single_block.js +72 -0
- package/dist/cjs/fieldTypes/single_block.js.map +1 -0
- package/dist/cjs/fieldTypes/slug.js +10 -0
- package/dist/cjs/fieldTypes/slug.js.map +1 -0
- package/dist/cjs/fieldTypes/string.js +8 -0
- package/dist/cjs/fieldTypes/string.js.map +1 -0
- package/dist/cjs/fieldTypes/structured_text.js +87 -0
- package/dist/cjs/fieldTypes/structured_text.js.map +1 -0
- package/dist/cjs/fieldTypes/text.js +8 -0
- package/dist/cjs/fieldTypes/text.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/date_range.js +3 -0
- package/dist/cjs/fieldTypes/validators/date_range.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/date_time_range.js +3 -0
- package/dist/cjs/fieldTypes/validators/date_time_range.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/description_length.js +3 -0
- package/dist/cjs/fieldTypes/validators/description_length.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/enum.js +3 -0
- package/dist/cjs/fieldTypes/validators/enum.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/extension.js +3 -0
- package/dist/cjs/fieldTypes/validators/extension.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/file_size.js +3 -0
- package/dist/cjs/fieldTypes/validators/file_size.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/format.js +3 -0
- package/dist/cjs/fieldTypes/validators/format.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/image_aspect_ratio.js +3 -0
- package/dist/cjs/fieldTypes/validators/image_aspect_ratio.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/image_dimensions.js +3 -0
- package/dist/cjs/fieldTypes/validators/image_dimensions.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/index.js +44 -0
- package/dist/cjs/fieldTypes/validators/index.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/item_item_type.js +3 -0
- package/dist/cjs/fieldTypes/validators/item_item_type.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/items_item_type.js +3 -0
- package/dist/cjs/fieldTypes/validators/items_item_type.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/length.js +3 -0
- package/dist/cjs/fieldTypes/validators/length.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/number_range.js +3 -0
- package/dist/cjs/fieldTypes/validators/number_range.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/required.js +3 -0
- package/dist/cjs/fieldTypes/validators/required.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/required_alt_title.js +3 -0
- package/dist/cjs/fieldTypes/validators/required_alt_title.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/required_seo_fields.js +3 -0
- package/dist/cjs/fieldTypes/validators/required_seo_fields.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/rich_text_blocks.js +3 -0
- package/dist/cjs/fieldTypes/validators/rich_text_blocks.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/sanitization.js +3 -0
- package/dist/cjs/fieldTypes/validators/sanitization.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/single_block_blocks.js +3 -0
- package/dist/cjs/fieldTypes/validators/single_block_blocks.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/size.js +3 -0
- package/dist/cjs/fieldTypes/validators/size.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/slug_format.js +3 -0
- package/dist/cjs/fieldTypes/validators/slug_format.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/slug_title_field.js +3 -0
- package/dist/cjs/fieldTypes/validators/slug_title_field.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/structured_text_blocks.js +3 -0
- package/dist/cjs/fieldTypes/validators/structured_text_blocks.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/structured_text_inline_blocks.js +3 -0
- package/dist/cjs/fieldTypes/validators/structured_text_inline_blocks.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/structured_text_links.js +3 -0
- package/dist/cjs/fieldTypes/validators/structured_text_links.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/title_length.js +3 -0
- package/dist/cjs/fieldTypes/validators/title_length.js.map +1 -0
- package/dist/cjs/fieldTypes/validators/unique.js +3 -0
- package/dist/cjs/fieldTypes/validators/unique.js.map +1 -0
- package/dist/cjs/fieldTypes/video.js +14 -0
- package/dist/cjs/fieldTypes/video.js.map +1 -0
- package/dist/cjs/generated/Client.js +27 -79
- package/dist/cjs/generated/Client.js.map +1 -1
- package/dist/cjs/generated/SchemaTypes.js +0 -4
- package/dist/cjs/generated/SchemaTypes.js.map +1 -1
- package/dist/cjs/generated/SimpleSchemaTypes.js +0 -4
- package/dist/cjs/generated/SimpleSchemaTypes.js.map +1 -1
- package/dist/cjs/generated/resources/AccessToken.js +42 -74
- package/dist/cjs/generated/resources/AccessToken.js.map +1 -1
- package/dist/cjs/generated/resources/AuditLogEvent.js +11 -33
- package/dist/cjs/generated/resources/AuditLogEvent.js.map +1 -1
- package/dist/cjs/generated/resources/BuildEvent.js +43 -133
- package/dist/cjs/generated/resources/BuildEvent.js.map +1 -1
- package/dist/cjs/generated/resources/BuildTrigger.js +55 -85
- package/dist/cjs/generated/resources/BuildTrigger.js.map +1 -1
- package/dist/cjs/generated/resources/DailyUsage.js +10 -32
- package/dist/cjs/generated/resources/DailyUsage.js.map +1 -1
- package/dist/cjs/generated/resources/EditingSession.js +20 -44
- package/dist/cjs/generated/resources/EditingSession.js.map +1 -1
- package/dist/cjs/generated/resources/EmojiSuggestions.js +11 -33
- package/dist/cjs/generated/resources/EmojiSuggestions.js.map +1 -1
- package/dist/cjs/generated/resources/Environment.js +43 -75
- package/dist/cjs/generated/resources/Environment.js.map +1 -1
- package/dist/cjs/generated/resources/Field.js +57 -93
- package/dist/cjs/generated/resources/Field.js.map +1 -1
- package/dist/cjs/generated/resources/Fieldset.js +39 -69
- package/dist/cjs/generated/resources/Fieldset.js.map +1 -1
- package/dist/cjs/generated/resources/Item.js +133 -247
- package/dist/cjs/generated/resources/Item.js.map +1 -1
- package/dist/cjs/generated/resources/ItemType.js +47 -79
- package/dist/cjs/generated/resources/ItemType.js.map +1 -1
- package/dist/cjs/generated/resources/ItemTypeFilter.js +35 -65
- package/dist/cjs/generated/resources/ItemTypeFilter.js.map +1 -1
- package/dist/cjs/generated/resources/ItemVersion.js +50 -142
- package/dist/cjs/generated/resources/ItemVersion.js.map +1 -1
- package/dist/cjs/generated/resources/JobResult.js +11 -33
- package/dist/cjs/generated/resources/JobResult.js.map +1 -1
- package/dist/cjs/generated/resources/MaintenanceMode.js +21 -47
- package/dist/cjs/generated/resources/MaintenanceMode.js.map +1 -1
- package/dist/cjs/generated/resources/MenuItem.js +42 -74
- package/dist/cjs/generated/resources/MenuItem.js.map +1 -1
- package/dist/cjs/generated/resources/Plugin.js +41 -73
- package/dist/cjs/generated/resources/Plugin.js.map +1 -1
- package/dist/cjs/generated/resources/PublicInfo.js +10 -32
- package/dist/cjs/generated/resources/PublicInfo.js.map +1 -1
- package/dist/cjs/generated/resources/Role.js +41 -73
- package/dist/cjs/generated/resources/Role.js.map +1 -1
- package/dist/cjs/generated/resources/ScheduledPublication.js +18 -42
- package/dist/cjs/generated/resources/ScheduledPublication.js.map +1 -1
- package/dist/cjs/generated/resources/ScheduledUnpublishing.js +18 -42
- package/dist/cjs/generated/resources/ScheduledUnpublishing.js.map +1 -1
- package/dist/cjs/generated/resources/SchemaMenuItem.js +42 -74
- package/dist/cjs/generated/resources/SchemaMenuItem.js.map +1 -1
- package/dist/cjs/generated/resources/SearchResult.js +37 -125
- package/dist/cjs/generated/resources/SearchResult.js.map +1 -1
- package/dist/cjs/generated/resources/Session.js +11 -33
- package/dist/cjs/generated/resources/Session.js.map +1 -1
- package/dist/cjs/generated/resources/Site.js +63 -105
- package/dist/cjs/generated/resources/Site.js.map +1 -1
- package/dist/cjs/generated/resources/SiteInvitation.js +41 -73
- package/dist/cjs/generated/resources/SiteInvitation.js.map +1 -1
- package/dist/cjs/generated/resources/SsoGroup.js +29 -57
- package/dist/cjs/generated/resources/SsoGroup.js.map +1 -1
- package/dist/cjs/generated/resources/SsoSettings.js +21 -47
- package/dist/cjs/generated/resources/SsoSettings.js.map +1 -1
- package/dist/cjs/generated/resources/SsoUser.js +28 -56
- package/dist/cjs/generated/resources/SsoUser.js.map +1 -1
- package/dist/cjs/generated/resources/SubscriptionFeature.js +10 -32
- package/dist/cjs/generated/resources/SubscriptionFeature.js.map +1 -1
- package/dist/cjs/generated/resources/SubscriptionLimit.js +16 -40
- package/dist/cjs/generated/resources/SubscriptionLimit.js.map +1 -1
- package/dist/cjs/generated/resources/Upload.js +87 -191
- package/dist/cjs/generated/resources/Upload.js.map +1 -1
- package/dist/cjs/generated/resources/UploadCollection.js +42 -74
- package/dist/cjs/generated/resources/UploadCollection.js.map +1 -1
- package/dist/cjs/generated/resources/UploadFilter.js +35 -65
- package/dist/cjs/generated/resources/UploadFilter.js.map +1 -1
- package/dist/cjs/generated/resources/UploadRequest.js +11 -33
- package/dist/cjs/generated/resources/UploadRequest.js.map +1 -1
- package/dist/cjs/generated/resources/UploadSmartTag.js +37 -125
- package/dist/cjs/generated/resources/UploadSmartTag.js.map +1 -1
- package/dist/cjs/generated/resources/UploadTag.js +43 -133
- package/dist/cjs/generated/resources/UploadTag.js.map +1 -1
- package/dist/cjs/generated/resources/UploadTrack.js +31 -59
- package/dist/cjs/generated/resources/UploadTrack.js.map +1 -1
- package/dist/cjs/generated/resources/UsageCounter.js +12 -34
- package/dist/cjs/generated/resources/UsageCounter.js.map +1 -1
- package/dist/cjs/generated/resources/User.js +37 -67
- package/dist/cjs/generated/resources/User.js.map +1 -1
- package/dist/cjs/generated/resources/Webhook.js +35 -65
- package/dist/cjs/generated/resources/Webhook.js.map +1 -1
- package/dist/cjs/generated/resources/WebhookCall.js +48 -138
- package/dist/cjs/generated/resources/WebhookCall.js.map +1 -1
- package/dist/cjs/generated/resources/WhiteLabelSettings.js +16 -40
- package/dist/cjs/generated/resources/WhiteLabelSettings.js.map +1 -1
- package/dist/cjs/generated/resources/Workflow.js +34 -62
- package/dist/cjs/generated/resources/Workflow.js.map +1 -1
- package/dist/cjs/index.js +8 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/resources/Role.js +42 -124
- package/dist/cjs/resources/Role.js.map +1 -1
- package/dist/cjs/utilities/blocks.js +597 -0
- package/dist/cjs/utilities/blocks.js.map +1 -0
- package/dist/cjs/{buildBlockRecord.js → utilities/buildBlockRecord.js} +2 -2
- package/dist/cjs/utilities/buildBlockRecord.js.map +1 -0
- package/dist/cjs/utilities/fieldValueLocalization.js +253 -0
- package/dist/cjs/utilities/fieldValueLocalization.js.map +1 -0
- package/dist/cjs/utilities/fieldsContainingReferences.js +45 -0
- package/dist/cjs/utilities/fieldsContainingReferences.js.map +1 -0
- package/dist/cjs/{idUtils.js → utilities/id.js} +14 -14
- package/dist/cjs/utilities/id.js.map +1 -0
- package/dist/cjs/utilities/recursiveBlocks.js +187 -0
- package/dist/cjs/utilities/recursiveBlocks.js.map +1 -0
- package/dist/cjs/utilities/schemaRepository.js +354 -0
- package/dist/cjs/utilities/schemaRepository.js.map +1 -0
- package/dist/cjs/utilities/structuredText.js +371 -0
- package/dist/cjs/utilities/structuredText.js.map +1 -0
- package/dist/esm/BaseResource.js +3 -5
- package/dist/esm/BaseResource.js.map +1 -1
- package/dist/esm/fieldTypes/appearance/boolean.d.ts +4 -0
- package/dist/esm/fieldTypes/appearance/boolean.js +2 -0
- package/dist/esm/fieldTypes/appearance/boolean.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/boolean_radio_group.d.ts +15 -0
- package/dist/esm/fieldTypes/appearance/boolean_radio_group.js +2 -0
- package/dist/esm/fieldTypes/appearance/boolean_radio_group.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/color_picker.d.ts +9 -0
- package/dist/esm/fieldTypes/appearance/color_picker.js +2 -0
- package/dist/esm/fieldTypes/appearance/color_picker.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/date_picker.d.ts +4 -0
- package/dist/esm/fieldTypes/appearance/date_picker.js +2 -0
- package/dist/esm/fieldTypes/appearance/date_picker.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/date_time_picker.d.ts +4 -0
- package/dist/esm/fieldTypes/appearance/date_time_picker.js +2 -0
- package/dist/esm/fieldTypes/appearance/date_time_picker.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/file.d.ts +4 -0
- package/dist/esm/fieldTypes/appearance/file.js +2 -0
- package/dist/esm/fieldTypes/appearance/file.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/float.d.ts +7 -0
- package/dist/esm/fieldTypes/appearance/float.js +2 -0
- package/dist/esm/fieldTypes/appearance/float.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/framed_single_block.d.ts +7 -0
- package/dist/esm/fieldTypes/appearance/framed_single_block.js +2 -0
- package/dist/esm/fieldTypes/appearance/framed_single_block.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/frameless_single_block.d.ts +7 -0
- package/dist/esm/fieldTypes/appearance/frameless_single_block.js +2 -0
- package/dist/esm/fieldTypes/appearance/frameless_single_block.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/gallery.d.ts +4 -0
- package/dist/esm/fieldTypes/appearance/gallery.js +2 -0
- package/dist/esm/fieldTypes/appearance/gallery.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/index.d.ts +30 -0
- package/dist/esm/fieldTypes/appearance/index.js +31 -0
- package/dist/esm/fieldTypes/appearance/index.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/integer.d.ts +7 -0
- package/dist/esm/fieldTypes/appearance/integer.js +2 -0
- package/dist/esm/fieldTypes/appearance/integer.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/json.d.ts +4 -0
- package/dist/esm/fieldTypes/appearance/json.js +2 -0
- package/dist/esm/fieldTypes/appearance/json.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/link_embed.d.ts +5 -0
- package/dist/esm/fieldTypes/appearance/link_embed.js +2 -0
- package/dist/esm/fieldTypes/appearance/link_embed.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/link_select.d.ts +5 -0
- package/dist/esm/fieldTypes/appearance/link_select.js +2 -0
- package/dist/esm/fieldTypes/appearance/link_select.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/links_embed.d.ts +5 -0
- package/dist/esm/fieldTypes/appearance/links_embed.js +2 -0
- package/dist/esm/fieldTypes/appearance/links_embed.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/links_select.d.ts +5 -0
- package/dist/esm/fieldTypes/appearance/links_select.js +2 -0
- package/dist/esm/fieldTypes/appearance/links_select.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/map.d.ts +4 -0
- package/dist/esm/fieldTypes/appearance/map.js +2 -0
- package/dist/esm/fieldTypes/appearance/map.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/markdown.d.ts +7 -0
- package/dist/esm/fieldTypes/appearance/markdown.js +2 -0
- package/dist/esm/fieldTypes/appearance/markdown.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/rich_text.d.ts +7 -0
- package/dist/esm/fieldTypes/appearance/rich_text.js +2 -0
- package/dist/esm/fieldTypes/appearance/rich_text.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/seo.d.ts +9 -0
- package/dist/esm/fieldTypes/appearance/seo.js +2 -0
- package/dist/esm/fieldTypes/appearance/seo.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/single_line.d.ts +9 -0
- package/dist/esm/fieldTypes/appearance/single_line.js +2 -0
- package/dist/esm/fieldTypes/appearance/single_line.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/slug.d.ts +9 -0
- package/dist/esm/fieldTypes/appearance/slug.js +2 -0
- package/dist/esm/fieldTypes/appearance/slug.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/string_checkbox_group.d.ts +15 -0
- package/dist/esm/fieldTypes/appearance/string_checkbox_group.js +2 -0
- package/dist/esm/fieldTypes/appearance/string_checkbox_group.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/string_multi_select.d.ts +15 -0
- package/dist/esm/fieldTypes/appearance/string_multi_select.js +2 -0
- package/dist/esm/fieldTypes/appearance/string_multi_select.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/string_radio_group.d.ts +15 -0
- package/dist/esm/fieldTypes/appearance/string_radio_group.js +2 -0
- package/dist/esm/fieldTypes/appearance/string_radio_group.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/string_select.d.ts +15 -0
- package/dist/esm/fieldTypes/appearance/string_select.js +2 -0
- package/dist/esm/fieldTypes/appearance/string_select.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/structured_text.d.ts +17 -0
- package/dist/esm/fieldTypes/appearance/structured_text.js +2 -0
- package/dist/esm/fieldTypes/appearance/structured_text.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/textarea.d.ts +7 -0
- package/dist/esm/fieldTypes/appearance/textarea.js +2 -0
- package/dist/esm/fieldTypes/appearance/textarea.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/video.d.ts +4 -0
- package/dist/esm/fieldTypes/appearance/video.js +2 -0
- package/dist/esm/fieldTypes/appearance/video.js.map +1 -0
- package/dist/esm/fieldTypes/appearance/wysiwyg.d.ts +7 -0
- package/dist/esm/fieldTypes/appearance/wysiwyg.js +2 -0
- package/dist/esm/fieldTypes/appearance/wysiwyg.js.map +1 -0
- package/dist/esm/fieldTypes/boolean.d.ts +17 -0
- package/dist/esm/fieldTypes/boolean.js +4 -0
- package/dist/esm/fieldTypes/boolean.js.map +1 -0
- package/dist/esm/fieldTypes/color.d.ts +22 -0
- package/dist/esm/fieldTypes/color.js +11 -0
- package/dist/esm/fieldTypes/color.js.map +1 -0
- package/dist/esm/fieldTypes/date.d.ts +20 -0
- package/dist/esm/fieldTypes/date.js +6 -0
- package/dist/esm/fieldTypes/date.js.map +1 -0
- package/dist/esm/fieldTypes/date_time.d.ts +20 -0
- package/dist/esm/fieldTypes/date_time.js +7 -0
- package/dist/esm/fieldTypes/date_time.js.map +1 -0
- package/dist/esm/fieldTypes/file.d.ts +41 -0
- package/dist/esm/fieldTypes/file.js +6 -0
- package/dist/esm/fieldTypes/file.js.map +1 -0
- package/dist/esm/fieldTypes/float.d.ts +20 -0
- package/dist/esm/fieldTypes/float.js +4 -0
- package/dist/esm/fieldTypes/float.js.map +1 -0
- package/dist/esm/fieldTypes/gallery.d.ts +41 -0
- package/dist/esm/fieldTypes/gallery.js +7 -0
- package/dist/esm/fieldTypes/gallery.js.map +1 -0
- package/dist/esm/fieldTypes/index.d.ts +22 -0
- package/dist/esm/fieldTypes/index.js +23 -0
- package/dist/esm/fieldTypes/index.js.map +1 -0
- package/dist/esm/fieldTypes/integer.d.ts +20 -0
- package/dist/esm/fieldTypes/integer.js +4 -0
- package/dist/esm/fieldTypes/integer.js.map +1 -0
- package/dist/esm/fieldTypes/json.d.ts +25 -0
- package/dist/esm/fieldTypes/json.js +14 -0
- package/dist/esm/fieldTypes/json.js.map +1 -0
- package/dist/esm/fieldTypes/lat_lon.d.ts +20 -0
- package/dist/esm/fieldTypes/lat_lon.js +9 -0
- package/dist/esm/fieldTypes/lat_lon.js.map +1 -0
- package/dist/esm/fieldTypes/link.d.ts +27 -0
- package/dist/esm/fieldTypes/link.js +4 -0
- package/dist/esm/fieldTypes/link.js.map +1 -0
- package/dist/esm/fieldTypes/links.d.ts +24 -0
- package/dist/esm/fieldTypes/links.js +6 -0
- package/dist/esm/fieldTypes/links.js.map +1 -0
- package/dist/esm/fieldTypes/rich_text.d.ts +100 -0
- package/dist/esm/fieldTypes/rich_text.js +47 -0
- package/dist/esm/fieldTypes/rich_text.js.map +1 -0
- package/dist/esm/fieldTypes/seo.d.ts +38 -0
- package/dist/esm/fieldTypes/seo.js +12 -0
- package/dist/esm/fieldTypes/seo.js.map +1 -0
- package/dist/esm/fieldTypes/single_block.d.ts +134 -0
- package/dist/esm/fieldTypes/single_block.js +63 -0
- package/dist/esm/fieldTypes/single_block.js.map +1 -0
- package/dist/esm/fieldTypes/slug.d.ts +26 -0
- package/dist/esm/fieldTypes/slug.js +6 -0
- package/dist/esm/fieldTypes/slug.js.map +1 -0
- package/dist/esm/fieldTypes/string.d.ts +37 -0
- package/dist/esm/fieldTypes/string.js +4 -0
- package/dist/esm/fieldTypes/string.js.map +1 -0
- package/dist/esm/fieldTypes/structured_text.d.ts +181 -0
- package/dist/esm/fieldTypes/structured_text.js +81 -0
- package/dist/esm/fieldTypes/structured_text.js.map +1 -0
- package/dist/esm/fieldTypes/text.d.ts +34 -0
- package/dist/esm/fieldTypes/text.js +4 -0
- package/dist/esm/fieldTypes/text.js.map +1 -0
- package/dist/esm/fieldTypes/validators/date_range.d.ts +14 -0
- package/dist/esm/fieldTypes/validators/date_range.js +2 -0
- package/dist/esm/fieldTypes/validators/date_range.js.map +1 -0
- package/dist/esm/fieldTypes/validators/date_time_range.d.ts +12 -0
- package/dist/esm/fieldTypes/validators/date_time_range.js +2 -0
- package/dist/esm/fieldTypes/validators/date_time_range.js.map +1 -0
- package/dist/esm/fieldTypes/validators/description_length.d.ts +11 -0
- package/dist/esm/fieldTypes/validators/description_length.js +2 -0
- package/dist/esm/fieldTypes/validators/description_length.js.map +1 -0
- package/dist/esm/fieldTypes/validators/enum.d.ts +7 -0
- package/dist/esm/fieldTypes/validators/enum.js +2 -0
- package/dist/esm/fieldTypes/validators/enum.js.map +1 -0
- package/dist/esm/fieldTypes/validators/extension.d.ts +12 -0
- package/dist/esm/fieldTypes/validators/extension.js +2 -0
- package/dist/esm/fieldTypes/validators/extension.js.map +1 -0
- package/dist/esm/fieldTypes/validators/file_size.d.ts +16 -0
- package/dist/esm/fieldTypes/validators/file_size.js +2 -0
- package/dist/esm/fieldTypes/validators/file_size.js.map +1 -0
- package/dist/esm/fieldTypes/validators/format.d.ts +18 -0
- package/dist/esm/fieldTypes/validators/format.js +2 -0
- package/dist/esm/fieldTypes/validators/format.js.map +1 -0
- package/dist/esm/fieldTypes/validators/image_aspect_ratio.d.ts +28 -0
- package/dist/esm/fieldTypes/validators/image_aspect_ratio.js +2 -0
- package/dist/esm/fieldTypes/validators/image_aspect_ratio.js.map +1 -0
- package/dist/esm/fieldTypes/validators/image_dimensions.d.ts +28 -0
- package/dist/esm/fieldTypes/validators/image_dimensions.js +2 -0
- package/dist/esm/fieldTypes/validators/image_dimensions.js.map +1 -0
- package/dist/esm/fieldTypes/validators/index.d.ts +27 -0
- package/dist/esm/fieldTypes/validators/index.js +28 -0
- package/dist/esm/fieldTypes/validators/index.js.map +1 -0
- package/dist/esm/fieldTypes/validators/item_item_type.d.ts +29 -0
- package/dist/esm/fieldTypes/validators/item_item_type.js +2 -0
- package/dist/esm/fieldTypes/validators/item_item_type.js.map +1 -0
- package/dist/esm/fieldTypes/validators/items_item_type.d.ts +29 -0
- package/dist/esm/fieldTypes/validators/items_item_type.js +2 -0
- package/dist/esm/fieldTypes/validators/items_item_type.js.map +1 -0
- package/dist/esm/fieldTypes/validators/length.d.ts +19 -0
- package/dist/esm/fieldTypes/validators/length.js +2 -0
- package/dist/esm/fieldTypes/validators/length.js.map +1 -0
- package/dist/esm/fieldTypes/validators/number_range.d.ts +10 -0
- package/dist/esm/fieldTypes/validators/number_range.js +2 -0
- package/dist/esm/fieldTypes/validators/number_range.js.map +1 -0
- package/dist/esm/fieldTypes/validators/required.d.ts +4 -0
- package/dist/esm/fieldTypes/validators/required.js +2 -0
- package/dist/esm/fieldTypes/validators/required.js.map +1 -0
- package/dist/esm/fieldTypes/validators/required_alt_title.d.ts +12 -0
- package/dist/esm/fieldTypes/validators/required_alt_title.js +2 -0
- package/dist/esm/fieldTypes/validators/required_alt_title.js.map +1 -0
- package/dist/esm/fieldTypes/validators/required_seo_fields.d.ts +28 -0
- package/dist/esm/fieldTypes/validators/required_seo_fields.js +2 -0
- package/dist/esm/fieldTypes/validators/required_seo_fields.js.map +1 -0
- package/dist/esm/fieldTypes/validators/rich_text_blocks.d.ts +7 -0
- package/dist/esm/fieldTypes/validators/rich_text_blocks.js +2 -0
- package/dist/esm/fieldTypes/validators/rich_text_blocks.js.map +1 -0
- package/dist/esm/fieldTypes/validators/sanitization.d.ts +7 -0
- package/dist/esm/fieldTypes/validators/sanitization.js +2 -0
- package/dist/esm/fieldTypes/validators/sanitization.js.map +1 -0
- package/dist/esm/fieldTypes/validators/single_block_blocks.d.ts +7 -0
- package/dist/esm/fieldTypes/validators/single_block_blocks.js +2 -0
- package/dist/esm/fieldTypes/validators/single_block_blocks.js.map +1 -0
- package/dist/esm/fieldTypes/validators/size.d.ts +28 -0
- package/dist/esm/fieldTypes/validators/size.js +2 -0
- package/dist/esm/fieldTypes/validators/size.js.map +1 -0
- package/dist/esm/fieldTypes/validators/slug_format.d.ts +12 -0
- package/dist/esm/fieldTypes/validators/slug_format.js +2 -0
- package/dist/esm/fieldTypes/validators/slug_format.js.map +1 -0
- package/dist/esm/fieldTypes/validators/slug_title_field.d.ts +7 -0
- package/dist/esm/fieldTypes/validators/slug_title_field.js +2 -0
- package/dist/esm/fieldTypes/validators/slug_title_field.js.map +1 -0
- package/dist/esm/fieldTypes/validators/structured_text_blocks.d.ts +7 -0
- package/dist/esm/fieldTypes/validators/structured_text_blocks.js +2 -0
- package/dist/esm/fieldTypes/validators/structured_text_blocks.js.map +1 -0
- package/dist/esm/fieldTypes/validators/structured_text_inline_blocks.d.ts +7 -0
- package/dist/esm/fieldTypes/validators/structured_text_inline_blocks.js +2 -0
- package/dist/esm/fieldTypes/validators/structured_text_inline_blocks.js.map +1 -0
- package/dist/esm/fieldTypes/validators/structured_text_links.d.ts +29 -0
- package/dist/esm/fieldTypes/validators/structured_text_links.js +2 -0
- package/dist/esm/fieldTypes/validators/structured_text_links.js.map +1 -0
- package/dist/esm/fieldTypes/validators/title_length.d.ts +11 -0
- package/dist/esm/fieldTypes/validators/title_length.js +2 -0
- package/dist/esm/fieldTypes/validators/title_length.js.map +1 -0
- package/dist/esm/fieldTypes/validators/unique.d.ts +4 -0
- package/dist/esm/fieldTypes/validators/unique.js +2 -0
- package/dist/esm/fieldTypes/validators/unique.js.map +1 -0
- package/dist/esm/fieldTypes/video.d.ts +25 -0
- package/dist/esm/fieldTypes/video.js +10 -0
- package/dist/esm/fieldTypes/video.js.map +1 -0
- package/dist/esm/generated/Client.js +25 -78
- package/dist/esm/generated/Client.js.map +1 -1
- package/dist/esm/generated/SchemaTypes.d.ts +74 -4
- package/dist/esm/generated/SchemaTypes.js +0 -4
- package/dist/esm/generated/SchemaTypes.js.map +1 -1
- package/dist/esm/generated/SimpleSchemaTypes.d.ts +66 -4
- package/dist/esm/generated/SimpleSchemaTypes.js +0 -4
- package/dist/esm/generated/SimpleSchemaTypes.js.map +1 -1
- package/dist/esm/generated/resources/AccessToken.js +40 -73
- package/dist/esm/generated/resources/AccessToken.js.map +1 -1
- package/dist/esm/generated/resources/AuditLogEvent.js +9 -32
- package/dist/esm/generated/resources/AuditLogEvent.js.map +1 -1
- package/dist/esm/generated/resources/BuildEvent.js +41 -132
- package/dist/esm/generated/resources/BuildEvent.js.map +1 -1
- package/dist/esm/generated/resources/BuildTrigger.js +53 -84
- package/dist/esm/generated/resources/BuildTrigger.js.map +1 -1
- package/dist/esm/generated/resources/DailyUsage.js +8 -31
- package/dist/esm/generated/resources/DailyUsage.js.map +1 -1
- package/dist/esm/generated/resources/EditingSession.js +18 -43
- package/dist/esm/generated/resources/EditingSession.js.map +1 -1
- package/dist/esm/generated/resources/EmojiSuggestions.js +9 -32
- package/dist/esm/generated/resources/EmojiSuggestions.js.map +1 -1
- package/dist/esm/generated/resources/Environment.js +41 -74
- package/dist/esm/generated/resources/Environment.js.map +1 -1
- package/dist/esm/generated/resources/Field.d.ts +4207 -7
- package/dist/esm/generated/resources/Field.js +55 -92
- package/dist/esm/generated/resources/Field.js.map +1 -1
- package/dist/esm/generated/resources/Fieldset.d.ts +2 -2
- package/dist/esm/generated/resources/Fieldset.js +37 -68
- package/dist/esm/generated/resources/Fieldset.js.map +1 -1
- package/dist/esm/generated/resources/Item.js +131 -246
- package/dist/esm/generated/resources/Item.js.map +1 -1
- package/dist/esm/generated/resources/ItemType.js +45 -78
- package/dist/esm/generated/resources/ItemType.js.map +1 -1
- package/dist/esm/generated/resources/ItemTypeFilter.js +33 -64
- package/dist/esm/generated/resources/ItemTypeFilter.js.map +1 -1
- package/dist/esm/generated/resources/ItemVersion.js +48 -141
- package/dist/esm/generated/resources/ItemVersion.js.map +1 -1
- package/dist/esm/generated/resources/JobResult.js +9 -32
- package/dist/esm/generated/resources/JobResult.js.map +1 -1
- package/dist/esm/generated/resources/MaintenanceMode.js +19 -46
- package/dist/esm/generated/resources/MaintenanceMode.js.map +1 -1
- package/dist/esm/generated/resources/MenuItem.js +40 -73
- package/dist/esm/generated/resources/MenuItem.js.map +1 -1
- package/dist/esm/generated/resources/Plugin.js +39 -72
- package/dist/esm/generated/resources/Plugin.js.map +1 -1
- package/dist/esm/generated/resources/PublicInfo.js +8 -31
- package/dist/esm/generated/resources/PublicInfo.js.map +1 -1
- package/dist/esm/generated/resources/Role.js +39 -72
- package/dist/esm/generated/resources/Role.js.map +1 -1
- package/dist/esm/generated/resources/ScheduledPublication.js +16 -41
- package/dist/esm/generated/resources/ScheduledPublication.js.map +1 -1
- package/dist/esm/generated/resources/ScheduledUnpublishing.js +16 -41
- package/dist/esm/generated/resources/ScheduledUnpublishing.js.map +1 -1
- package/dist/esm/generated/resources/SchemaMenuItem.js +40 -73
- package/dist/esm/generated/resources/SchemaMenuItem.js.map +1 -1
- package/dist/esm/generated/resources/SearchResult.js +35 -124
- package/dist/esm/generated/resources/SearchResult.js.map +1 -1
- package/dist/esm/generated/resources/Session.js +9 -32
- package/dist/esm/generated/resources/Session.js.map +1 -1
- package/dist/esm/generated/resources/Site.js +61 -104
- package/dist/esm/generated/resources/Site.js.map +1 -1
- package/dist/esm/generated/resources/SiteInvitation.js +39 -72
- package/dist/esm/generated/resources/SiteInvitation.js.map +1 -1
- package/dist/esm/generated/resources/SsoGroup.js +27 -56
- package/dist/esm/generated/resources/SsoGroup.js.map +1 -1
- package/dist/esm/generated/resources/SsoSettings.js +19 -46
- package/dist/esm/generated/resources/SsoSettings.js.map +1 -1
- package/dist/esm/generated/resources/SsoUser.js +26 -55
- package/dist/esm/generated/resources/SsoUser.js.map +1 -1
- package/dist/esm/generated/resources/SubscriptionFeature.js +8 -31
- package/dist/esm/generated/resources/SubscriptionFeature.js.map +1 -1
- package/dist/esm/generated/resources/SubscriptionLimit.js +14 -39
- package/dist/esm/generated/resources/SubscriptionLimit.js.map +1 -1
- package/dist/esm/generated/resources/Upload.js +85 -190
- package/dist/esm/generated/resources/Upload.js.map +1 -1
- package/dist/esm/generated/resources/UploadCollection.js +40 -73
- package/dist/esm/generated/resources/UploadCollection.js.map +1 -1
- package/dist/esm/generated/resources/UploadFilter.js +33 -64
- package/dist/esm/generated/resources/UploadFilter.js.map +1 -1
- package/dist/esm/generated/resources/UploadRequest.js +9 -32
- package/dist/esm/generated/resources/UploadRequest.js.map +1 -1
- package/dist/esm/generated/resources/UploadSmartTag.js +35 -124
- package/dist/esm/generated/resources/UploadSmartTag.js.map +1 -1
- package/dist/esm/generated/resources/UploadTag.js +41 -132
- package/dist/esm/generated/resources/UploadTag.js.map +1 -1
- package/dist/esm/generated/resources/UploadTrack.js +29 -58
- package/dist/esm/generated/resources/UploadTrack.js.map +1 -1
- package/dist/esm/generated/resources/UsageCounter.js +10 -33
- package/dist/esm/generated/resources/UsageCounter.js.map +1 -1
- package/dist/esm/generated/resources/User.js +35 -66
- package/dist/esm/generated/resources/User.js.map +1 -1
- package/dist/esm/generated/resources/Webhook.js +33 -64
- package/dist/esm/generated/resources/Webhook.js.map +1 -1
- package/dist/esm/generated/resources/WebhookCall.js +46 -137
- package/dist/esm/generated/resources/WebhookCall.js.map +1 -1
- package/dist/esm/generated/resources/WhiteLabelSettings.js +14 -39
- package/dist/esm/generated/resources/WhiteLabelSettings.js.map +1 -1
- package/dist/esm/generated/resources/Workflow.js +32 -61
- package/dist/esm/generated/resources/Workflow.js.map +1 -1
- package/dist/esm/index.d.ts +8 -2
- package/dist/esm/index.js +8 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/resources/Role.js +41 -124
- package/dist/esm/resources/Role.js.map +1 -1
- package/dist/esm/utilities/blocks.d.ts +180 -0
- package/dist/esm/utilities/blocks.js +580 -0
- package/dist/esm/utilities/blocks.js.map +1 -0
- package/dist/esm/{buildBlockRecord.d.ts → utilities/buildBlockRecord.d.ts} +2 -2
- package/dist/esm/{buildBlockRecord.js → utilities/buildBlockRecord.js} +1 -1
- package/dist/esm/utilities/buildBlockRecord.js.map +1 -0
- package/dist/esm/utilities/fieldValueLocalization.d.ts +165 -0
- package/dist/esm/utilities/fieldValueLocalization.js +237 -0
- package/dist/esm/utilities/fieldValueLocalization.js.map +1 -0
- package/dist/esm/utilities/fieldsContainingReferences.d.ts +4 -0
- package/dist/esm/utilities/fieldsContainingReferences.js +40 -0
- package/dist/esm/utilities/fieldsContainingReferences.js.map +1 -0
- package/dist/esm/{idUtils.js → utilities/id.js} +13 -13
- package/dist/esm/utilities/id.js.map +1 -0
- package/dist/esm/utilities/recursiveBlocks.d.ts +15 -0
- package/dist/esm/utilities/recursiveBlocks.js +177 -0
- package/dist/esm/utilities/recursiveBlocks.js.map +1 -0
- package/dist/esm/utilities/schemaRepository.d.ts +181 -0
- package/dist/esm/utilities/schemaRepository.js +350 -0
- package/dist/esm/utilities/schemaRepository.js.map +1 -0
- package/dist/esm/utilities/structuredText.d.ts +177 -0
- package/dist/esm/utilities/structuredText.js +354 -0
- package/dist/esm/utilities/structuredText.js.map +1 -0
- package/dist/types/fieldTypes/appearance/boolean.d.ts +4 -0
- package/dist/types/fieldTypes/appearance/boolean_radio_group.d.ts +15 -0
- package/dist/types/fieldTypes/appearance/color_picker.d.ts +9 -0
- package/dist/types/fieldTypes/appearance/date_picker.d.ts +4 -0
- package/dist/types/fieldTypes/appearance/date_time_picker.d.ts +4 -0
- package/dist/types/fieldTypes/appearance/file.d.ts +4 -0
- package/dist/types/fieldTypes/appearance/float.d.ts +7 -0
- package/dist/types/fieldTypes/appearance/framed_single_block.d.ts +7 -0
- package/dist/types/fieldTypes/appearance/frameless_single_block.d.ts +7 -0
- package/dist/types/fieldTypes/appearance/gallery.d.ts +4 -0
- package/dist/types/fieldTypes/appearance/index.d.ts +30 -0
- package/dist/types/fieldTypes/appearance/integer.d.ts +7 -0
- package/dist/types/fieldTypes/appearance/json.d.ts +4 -0
- package/dist/types/fieldTypes/appearance/link_embed.d.ts +5 -0
- package/dist/types/fieldTypes/appearance/link_select.d.ts +5 -0
- package/dist/types/fieldTypes/appearance/links_embed.d.ts +5 -0
- package/dist/types/fieldTypes/appearance/links_select.d.ts +5 -0
- package/dist/types/fieldTypes/appearance/map.d.ts +4 -0
- package/dist/types/fieldTypes/appearance/markdown.d.ts +7 -0
- package/dist/types/fieldTypes/appearance/rich_text.d.ts +7 -0
- package/dist/types/fieldTypes/appearance/seo.d.ts +9 -0
- package/dist/types/fieldTypes/appearance/single_line.d.ts +9 -0
- package/dist/types/fieldTypes/appearance/slug.d.ts +9 -0
- package/dist/types/fieldTypes/appearance/string_checkbox_group.d.ts +15 -0
- package/dist/types/fieldTypes/appearance/string_multi_select.d.ts +15 -0
- package/dist/types/fieldTypes/appearance/string_radio_group.d.ts +15 -0
- package/dist/types/fieldTypes/appearance/string_select.d.ts +15 -0
- package/dist/types/fieldTypes/appearance/structured_text.d.ts +17 -0
- package/dist/types/fieldTypes/appearance/textarea.d.ts +7 -0
- package/dist/types/fieldTypes/appearance/video.d.ts +4 -0
- package/dist/types/fieldTypes/appearance/wysiwyg.d.ts +7 -0
- package/dist/types/fieldTypes/boolean.d.ts +17 -0
- package/dist/types/fieldTypes/color.d.ts +22 -0
- package/dist/types/fieldTypes/date.d.ts +20 -0
- package/dist/types/fieldTypes/date_time.d.ts +20 -0
- package/dist/types/fieldTypes/file.d.ts +41 -0
- package/dist/types/fieldTypes/float.d.ts +20 -0
- package/dist/types/fieldTypes/gallery.d.ts +41 -0
- package/dist/types/fieldTypes/index.d.ts +22 -0
- package/dist/types/fieldTypes/integer.d.ts +20 -0
- package/dist/types/fieldTypes/json.d.ts +25 -0
- package/dist/types/fieldTypes/lat_lon.d.ts +20 -0
- package/dist/types/fieldTypes/link.d.ts +27 -0
- package/dist/types/fieldTypes/links.d.ts +24 -0
- package/dist/types/fieldTypes/rich_text.d.ts +100 -0
- package/dist/types/fieldTypes/seo.d.ts +38 -0
- package/dist/types/fieldTypes/single_block.d.ts +134 -0
- package/dist/types/fieldTypes/slug.d.ts +26 -0
- package/dist/types/fieldTypes/string.d.ts +37 -0
- package/dist/types/fieldTypes/structured_text.d.ts +181 -0
- package/dist/types/fieldTypes/text.d.ts +34 -0
- package/dist/types/fieldTypes/validators/date_range.d.ts +14 -0
- package/dist/types/fieldTypes/validators/date_time_range.d.ts +12 -0
- package/dist/types/fieldTypes/validators/description_length.d.ts +11 -0
- package/dist/types/fieldTypes/validators/enum.d.ts +7 -0
- package/dist/types/fieldTypes/validators/extension.d.ts +12 -0
- package/dist/types/fieldTypes/validators/file_size.d.ts +16 -0
- package/dist/types/fieldTypes/validators/format.d.ts +18 -0
- package/dist/types/fieldTypes/validators/image_aspect_ratio.d.ts +28 -0
- package/dist/types/fieldTypes/validators/image_dimensions.d.ts +28 -0
- package/dist/types/fieldTypes/validators/index.d.ts +27 -0
- package/dist/types/fieldTypes/validators/item_item_type.d.ts +29 -0
- package/dist/types/fieldTypes/validators/items_item_type.d.ts +29 -0
- package/dist/types/fieldTypes/validators/length.d.ts +19 -0
- package/dist/types/fieldTypes/validators/number_range.d.ts +10 -0
- package/dist/types/fieldTypes/validators/required.d.ts +4 -0
- package/dist/types/fieldTypes/validators/required_alt_title.d.ts +12 -0
- package/dist/types/fieldTypes/validators/required_seo_fields.d.ts +28 -0
- package/dist/types/fieldTypes/validators/rich_text_blocks.d.ts +7 -0
- package/dist/types/fieldTypes/validators/sanitization.d.ts +7 -0
- package/dist/types/fieldTypes/validators/single_block_blocks.d.ts +7 -0
- package/dist/types/fieldTypes/validators/size.d.ts +28 -0
- package/dist/types/fieldTypes/validators/slug_format.d.ts +12 -0
- package/dist/types/fieldTypes/validators/slug_title_field.d.ts +7 -0
- package/dist/types/fieldTypes/validators/structured_text_blocks.d.ts +7 -0
- package/dist/types/fieldTypes/validators/structured_text_inline_blocks.d.ts +7 -0
- package/dist/types/fieldTypes/validators/structured_text_links.d.ts +29 -0
- package/dist/types/fieldTypes/validators/title_length.d.ts +11 -0
- package/dist/types/fieldTypes/validators/unique.d.ts +4 -0
- package/dist/types/fieldTypes/video.d.ts +25 -0
- package/dist/types/generated/SchemaTypes.d.ts +74 -4
- package/dist/types/generated/SimpleSchemaTypes.d.ts +66 -4
- package/dist/types/generated/resources/Field.d.ts +4207 -7
- package/dist/types/generated/resources/Fieldset.d.ts +2 -2
- package/dist/types/index.d.ts +8 -2
- package/dist/types/utilities/blocks.d.ts +180 -0
- package/dist/types/{buildBlockRecord.d.ts → utilities/buildBlockRecord.d.ts} +2 -2
- package/dist/types/utilities/fieldValueLocalization.d.ts +165 -0
- package/dist/types/utilities/fieldsContainingReferences.d.ts +4 -0
- package/dist/types/utilities/recursiveBlocks.d.ts +15 -0
- package/dist/types/utilities/schemaRepository.d.ts +181 -0
- package/dist/types/utilities/structuredText.d.ts +177 -0
- package/package.json +5 -4
- package/resources.json +2 -2
- package/src/fieldTypes/appearance/boolean.ts +4 -0
- package/src/fieldTypes/appearance/boolean_radio_group.ts +16 -0
- package/src/fieldTypes/appearance/color_picker.ts +9 -0
- package/src/fieldTypes/appearance/date_picker.ts +4 -0
- package/src/fieldTypes/appearance/date_time_picker.ts +4 -0
- package/src/fieldTypes/appearance/file.ts +4 -0
- package/src/fieldTypes/appearance/float.ts +7 -0
- package/src/fieldTypes/appearance/framed_single_block.ts +7 -0
- package/src/fieldTypes/appearance/frameless_single_block.ts +7 -0
- package/src/fieldTypes/appearance/gallery.ts +4 -0
- package/src/fieldTypes/appearance/index.ts +30 -0
- package/src/fieldTypes/appearance/integer.ts +7 -0
- package/src/fieldTypes/appearance/json.ts +4 -0
- package/src/fieldTypes/appearance/link_embed.ts +5 -0
- package/src/fieldTypes/appearance/link_select.ts +5 -0
- package/src/fieldTypes/appearance/links_embed.ts +5 -0
- package/src/fieldTypes/appearance/links_select.ts +5 -0
- package/src/fieldTypes/appearance/map.ts +4 -0
- package/src/fieldTypes/appearance/markdown.ts +19 -0
- package/src/fieldTypes/appearance/rich_text.ts +7 -0
- package/src/fieldTypes/appearance/seo.ts +19 -0
- package/src/fieldTypes/appearance/single_line.ts +9 -0
- package/src/fieldTypes/appearance/slug.ts +9 -0
- package/src/fieldTypes/appearance/string_checkbox_group.ts +16 -0
- package/src/fieldTypes/appearance/string_multi_select.ts +16 -0
- package/src/fieldTypes/appearance/string_radio_group.ts +16 -0
- package/src/fieldTypes/appearance/string_select.ts +16 -0
- package/src/fieldTypes/appearance/structured_text.ts +21 -0
- package/src/fieldTypes/appearance/textarea.ts +7 -0
- package/src/fieldTypes/appearance/video.ts +4 -0
- package/src/fieldTypes/appearance/wysiwyg.ts +29 -0
- package/src/fieldTypes/boolean.ts +25 -0
- package/src/fieldTypes/color.ts +35 -0
- package/src/fieldTypes/date.ts +26 -0
- package/src/fieldTypes/date_time.ts +34 -0
- package/src/fieldTypes/file.ts +47 -0
- package/src/fieldTypes/float.ts +25 -0
- package/src/fieldTypes/gallery.ts +55 -0
- package/src/fieldTypes/index.ts +23 -0
- package/src/fieldTypes/integer.ts +27 -0
- package/src/fieldTypes/json.ts +39 -0
- package/src/fieldTypes/lat_lon.ts +33 -0
- package/src/fieldTypes/link.ts +30 -0
- package/src/fieldTypes/links.ts +30 -0
- package/src/fieldTypes/rich_text.ts +151 -0
- package/src/fieldTypes/seo.ts +52 -0
- package/src/fieldTypes/single_block.ts +201 -0
- package/src/fieldTypes/slug.ts +32 -0
- package/src/fieldTypes/string.ts +41 -0
- package/src/fieldTypes/structured_text.ts +328 -0
- package/src/fieldTypes/text.ts +35 -0
- package/src/fieldTypes/validators/date_range.ts +16 -0
- package/src/fieldTypes/validators/date_time_range.ts +14 -0
- package/src/fieldTypes/validators/description_length.ts +13 -0
- package/src/fieldTypes/validators/enum.ts +7 -0
- package/src/fieldTypes/validators/extension.ts +14 -0
- package/src/fieldTypes/validators/file_size.ts +18 -0
- package/src/fieldTypes/validators/format.ts +18 -0
- package/src/fieldTypes/validators/image_aspect_ratio.ts +31 -0
- package/src/fieldTypes/validators/image_dimensions.ts +32 -0
- package/src/fieldTypes/validators/index.ts +27 -0
- package/src/fieldTypes/validators/item_item_type.ts +31 -0
- package/src/fieldTypes/validators/items_item_type.ts +31 -0
- package/src/fieldTypes/validators/length.ts +22 -0
- package/src/fieldTypes/validators/number_range.ts +12 -0
- package/src/fieldTypes/validators/required.ts +4 -0
- package/src/fieldTypes/validators/required_alt_title.ts +14 -0
- package/src/fieldTypes/validators/required_seo_fields.ts +32 -0
- package/src/fieldTypes/validators/rich_text_blocks.ts +7 -0
- package/src/fieldTypes/validators/sanitization.ts +7 -0
- package/src/fieldTypes/validators/single_block_blocks.ts +7 -0
- package/src/fieldTypes/validators/size.ts +32 -0
- package/src/fieldTypes/validators/slug_format.ts +14 -0
- package/src/fieldTypes/validators/slug_title_field.ts +7 -0
- package/src/fieldTypes/validators/structured_text_blocks.ts +7 -0
- package/src/fieldTypes/validators/structured_text_inline_blocks.ts +7 -0
- package/src/fieldTypes/validators/structured_text_links.ts +31 -0
- package/src/fieldTypes/validators/title_length.ts +13 -0
- package/src/fieldTypes/validators/unique.ts +4 -0
- package/src/fieldTypes/video.ts +37 -0
- package/src/generated/Client.ts +1 -1
- package/src/generated/SchemaTypes.ts +677 -4
- package/src/generated/SimpleSchemaTypes.ts +669 -4
- package/src/generated/resources/Field.ts +2 -2
- package/src/generated/resources/Fieldset.ts +2 -2
- package/src/index.ts +8 -2
- package/src/utilities/blocks.ts +626 -0
- package/src/{buildBlockRecord.ts → utilities/buildBlockRecord.ts} +3 -3
- package/src/utilities/fieldValueLocalization.ts +368 -0
- package/src/utilities/fieldsContainingReferences.ts +49 -0
- package/src/utilities/recursiveBlocks.ts +392 -0
- package/src/utilities/schemaRepository.ts +379 -0
- package/src/utilities/structuredText.ts +590 -0
- package/dist/cjs/buildBlockRecord.js.map +0 -1
- package/dist/cjs/idUtils.js.map +0 -1
- package/dist/esm/buildBlockRecord.js.map +0 -1
- package/dist/esm/idUtils.js.map +0 -1
- /package/dist/esm/{idUtils.d.ts → utilities/id.d.ts} +0 -0
- /package/dist/types/{idUtils.d.ts → utilities/id.d.ts} +0 -0
- /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 SingleBlockFieldValueWithNestedBlocks = 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 isSingleBlockFieldValueWithNestedBlocks(
|
|
163
|
+
value: unknown,
|
|
164
|
+
): value is SingleBlockFieldValueWithNestedBlocks {
|
|
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 BlockWithNestedBlocks = 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 InlineBlockWithNestedBlocks = 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 NodeWithNestedBlocks<T> = WithMappedChildren<
|
|
112
|
+
T,
|
|
113
|
+
DeepMapVariants<
|
|
114
|
+
T extends { children: infer C } ? C : never,
|
|
115
|
+
BlockWithNestedBlocks,
|
|
116
|
+
InlineBlockWithNestedBlocks
|
|
117
|
+
>
|
|
118
|
+
>;
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Variant of Structured Text document for ?nested=true API responses
|
|
122
|
+
*/
|
|
123
|
+
export type DocumentWithNestedBlocks = {
|
|
124
|
+
schema: 'dast';
|
|
125
|
+
document: NodeWithNestedBlocks<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 StructuredTextFieldValueWithNestedBlocks =
|
|
141
|
+
DocumentWithNestedBlocks | 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
|
+
| BlockWithNestedBlocks
|
|
169
|
+
| InlineBlock
|
|
170
|
+
| InlineBlockAsRequest
|
|
171
|
+
| InlineBlockWithNestedBlocks,
|
|
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 isStructuredTextFieldValueWithNestedBlocks(
|
|
236
|
+
value: unknown,
|
|
237
|
+
): value is StructuredTextFieldValueWithNestedBlocks {
|
|
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
|
+
};
|