@storyblok/schema 0.1.0-alpha.1 → 0.1.0-alpha.2
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/field-plugins/index.cjs +4 -0
- package/dist/field-plugins/index.d.cts +2 -0
- package/dist/field-plugins/index.d.mts +2 -0
- package/dist/field-plugins/index.mjs +3 -0
- package/dist/field-plugins/storyblok-color-field.cjs +32 -0
- package/dist/field-plugins/storyblok-color-field.cjs.map +1 -0
- package/dist/field-plugins/storyblok-color-field.d.cts +16 -0
- package/dist/field-plugins/storyblok-color-field.d.mts +16 -0
- package/dist/field-plugins/storyblok-color-field.mjs +32 -0
- package/dist/field-plugins/storyblok-color-field.mjs.map +1 -0
- package/dist/generated/overlay/zod.gen.cjs +0 -2
- package/dist/generated/overlay/zod.gen.cjs.map +1 -1
- package/dist/generated/overlay/zod.gen.mjs +228 -229
- package/dist/generated/overlay/zod.gen.mjs.map +1 -1
- package/dist/generated/types/field.d.cts +31 -15
- package/dist/generated/types/field.d.mts +31 -15
- package/dist/generated/types/mapi-story.d.cts +4 -4
- package/dist/generated/types/mapi-story.d.mts +4 -4
- package/dist/generated/types/story.d.cts +3 -3
- package/dist/generated/types/story.d.mts +3 -3
- package/dist/helpers/define-field-plugin.cjs +21 -0
- package/dist/helpers/define-field-plugin.cjs.map +1 -0
- package/dist/helpers/define-field-plugin.d.cts +33 -0
- package/dist/helpers/define-field-plugin.d.mts +33 -0
- package/dist/helpers/define-field-plugin.mjs +20 -0
- package/dist/helpers/define-field-plugin.mjs.map +1 -0
- package/dist/helpers/define-schema.cjs +22 -0
- package/dist/helpers/define-schema.cjs.map +1 -0
- package/dist/helpers/define-schema.d.cts +28 -0
- package/dist/helpers/define-schema.d.mts +28 -0
- package/dist/helpers/define-schema.mjs +21 -0
- package/dist/helpers/define-schema.mjs.map +1 -0
- package/dist/helpers/schema-type.d.cts +16 -8
- package/dist/helpers/schema-type.d.mts +16 -8
- package/dist/index.cjs +4 -0
- package/dist/index.d.cts +3 -1
- package/dist/index.d.mts +3 -1
- package/dist/index.mjs +3 -1
- package/dist/validators/internal-schemas.mjs +1 -1
- package/dist/validators/shapes.cjs.map +1 -1
- package/dist/validators/shapes.d.cts +10 -1
- package/dist/validators/shapes.d.mts +10 -1
- package/dist/validators/shapes.mjs.map +1 -1
- package/dist/validators/validate-schema.cjs +21 -1
- package/dist/validators/validate-schema.cjs.map +1 -1
- package/dist/validators/validate-schema.d.cts +2 -1
- package/dist/validators/validate-schema.d.mts +2 -1
- package/dist/validators/validate-schema.mjs +21 -1
- package/dist/validators/validate-schema.mjs.map +1 -1
- package/dist/validators/validate-story.cjs +40 -12
- package/dist/validators/validate-story.cjs.map +1 -1
- package/dist/validators/validate-story.mjs +40 -13
- package/dist/validators/validate-story.mjs.map +1 -1
- package/package.json +13 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod.gen.mjs","names":[],"sources":["../../../src/generated/overlay/zod.gen.ts"],"sourcesContent":["// Generated by @storyblok/openapi-codegen. Do not edit by hand.\n// Internal Zod v4 schemas — imported only by runtime validators, never by public types.\n\n// This file is auto-generated by @hey-api/openapi-ts\n\nimport * as z from 'zod';\n\n/**\n * Universal identity and display properties shared by every field type\n */\nexport const zBaseFieldRoot = z.object({\n type: z.optional(z.string()),\n id: z.optional(z.string()),\n display_name: z.optional(z.string()),\n description: z.optional(z.string()),\n tooltip: z.optional(z.boolean()),\n pos: z.optional(z.int()),\n conditional_settings: z.optional(z.array(z.record(z.string(), z.unknown())))\n});\n\nexport const zSectionFieldRoot = zBaseFieldRoot.and(z.object({\n type: z.enum(['section']),\n keys: z.optional(z.array(z.string())),\n fieldset: z.optional(z.object({\n title: z.optional(z.string()),\n description: z.optional(z.string()),\n collapsible: z.optional(z.boolean()),\n collapsed: z.optional(z.boolean())\n }))\n}));\n\nexport const zTabFieldRoot = zBaseFieldRoot.and(z.object({\n type: z.enum(['tab']),\n keys: z.optional(z.array(z.string()))\n}));\n\n/**\n * Properties shared by content-bearing fields (i.e. fields that hold a value).\n * Layout-only field types like `section` and `tab` do not include these.\n *\n */\nexport const zValueFieldRoot = z.object({\n required: z.optional(z.boolean()),\n regex: z.optional(z.string()),\n default_value: z.optional(z.string()),\n translatable: z.optional(z.boolean()),\n no_translate: z.optional(z.boolean()),\n exclude_from_ai_translation: z.optional(z.boolean()),\n exclude_from_merge: z.optional(z.boolean()),\n exclude_from_overwrite: z.optional(z.boolean()),\n force_merge: z.optional(z.boolean())\n});\n\nexport const zAssetFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['asset']),\n filetypes: z.optional(z.array(z.string())),\n asset_folder_id: z.optional(z.int()),\n allow_external_url: z.optional(z.boolean()),\n height: z.optional(z.int()),\n width: z.optional(z.int()),\n restrict_assets: z.optional(z.boolean()),\n asset_whitelist: z.optional(z.array(z.string()))\n}));\n\nexport const zBloksFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['bloks']),\n restrict_type: z.optional(z.string()),\n restrict_components: z.optional(z.boolean()),\n component_whitelist: z.optional(z.array(z.string())),\n component_denylist: z.optional(z.array(z.string())),\n component_tag_whitelist: z.optional(z.array(z.int())),\n component_tag_denylist: z.optional(z.array(z.int())),\n component_group_whitelist: z.optional(z.array(z.string())),\n component_group_denylist: z.optional(z.array(z.string())),\n minimum: z.optional(z.int()),\n maximum: z.optional(z.int()),\n maximum_entries: z.optional(z.int()),\n minimum_entries: z.optional(z.int())\n}));\n\nexport const zBooleanFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['boolean']),\n inline_label: z.optional(z.boolean())\n}));\n\nexport const zCustomFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['custom']),\n field_type: z.optional(z.string()),\n options: z.optional(z.array(z.object({\n name: z.optional(z.string()),\n value: z.optional(z.string())\n }))),\n required_fields: z.optional(z.string()),\n source: z.optional(z.enum(['self', 'internal'])),\n datasource_slug: z.optional(z.string()),\n external_datasource: z.optional(z.string())\n}));\n\nexport const zDatetimeFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['datetime']),\n disable_time: z.optional(z.boolean())\n}));\n\nexport const zMarkdownFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['markdown']),\n rich_markdown: z.optional(z.boolean()),\n rtl: z.optional(z.boolean()),\n customize_toolbar: z.optional(z.boolean()),\n toolbar: z.optional(z.array(z.enum([\n 'bold',\n 'italic',\n 'inlinecode',\n 'code',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'list',\n 'olist',\n 'quote',\n 'hrule',\n 'link',\n 'image',\n 'paragraph',\n 'help',\n 'toggle-richtext',\n 'auto',\n 'ltr',\n 'rtl'\n ]))),\n allow_multiline: z.optional(z.boolean()),\n max_length: z.optional(z.int())\n}));\n\nexport const zMultiassetFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['multiasset']),\n filetypes: z.optional(z.array(z.string())),\n asset_folder_id: z.optional(z.int()),\n allow_external_url: z.optional(z.boolean()),\n height: z.optional(z.int()),\n width: z.optional(z.int()),\n restrict_assets: z.optional(z.boolean()),\n asset_whitelist: z.optional(z.array(z.string())),\n maximum_entries: z.optional(z.int()),\n minimum_entries: z.optional(z.int())\n}));\n\nexport const zMultilinkFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['multilink']),\n restrict_content_types: z.optional(z.boolean()),\n component_whitelist: z.optional(z.array(z.string())),\n allow_target_blank: z.optional(z.boolean()),\n allow_custom_attributes: z.optional(z.boolean()),\n force_link_scope: z.optional(z.boolean()),\n link_scope: z.optional(z.string()),\n show_anchor: z.optional(z.boolean()),\n email_link_type: z.optional(z.boolean()),\n asset_link_type: z.optional(z.boolean())\n}));\n\nexport const zNumberFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['number']),\n min_value: z.optional(z.number()),\n max_value: z.optional(z.number()),\n decimals: z.optional(z.int()),\n steps: z.optional(z.number())\n}));\n\nexport const zOptionFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['option']),\n options: z.optional(z.array(z.object({\n _uid: z.optional(z.string()),\n name: z.optional(z.string()),\n value: z.optional(z.string())\n }))),\n source: z.optional(z.string()),\n datasource_slug: z.optional(z.string()),\n external_datasource: z.optional(z.string()),\n folder_slug: z.optional(z.string()),\n filter_content_type: z.optional(z.array(z.string())),\n exclude_empty_option: z.optional(z.boolean()),\n include_empty_option: z.optional(z.boolean()),\n use_uuid: z.optional(z.boolean()),\n entry_appearance: z.optional(z.string()),\n allow_advanced_search: z.optional(z.boolean()),\n max_options: z.optional(z.string()),\n min_options: z.optional(z.string()),\n multiple: z.optional(z.boolean())\n}));\n\nexport const zOptionsFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['options']),\n options: z.optional(z.array(z.object({\n _uid: z.optional(z.string()),\n name: z.optional(z.string()),\n value: z.optional(z.string())\n }))),\n source: z.optional(z.string()),\n datasource_slug: z.optional(z.string()),\n external_datasource: z.optional(z.string()),\n folder_slug: z.optional(z.string()),\n filter_content_type: z.optional(z.array(z.string())),\n use_uuid: z.optional(z.boolean()),\n is_reference_type: z.optional(z.boolean()),\n entry_appearance: z.optional(z.string()),\n allow_advanced_search: z.optional(z.boolean()),\n max_options: z.optional(z.string()),\n min_options: z.optional(z.string()),\n multiple: z.optional(z.boolean())\n}));\n\nexport const zRichtextFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['richtext']),\n customize_toolbar: z.optional(z.boolean()),\n toolbar: z.optional(z.array(z.enum([\n 'ai-complete',\n 'ai-shorten',\n 'ai-extend',\n 'ai-rephrase',\n 'ai-summarize',\n 'ai-simplify',\n 'ai-tone',\n 'ai-emoji',\n 'ai-translate',\n 'ai-tldr',\n 'ai-spelling',\n 'blok',\n 'ltr',\n 'rtl',\n 'export',\n 'import',\n 'bold',\n 'list',\n 'inlinecode',\n 'code',\n 'color',\n 'copy',\n 'cut',\n 'emoji',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'highlight',\n 'unset',\n 'hrule',\n 'image',\n 'italic',\n 'link',\n 'anchor',\n 'olist',\n 'paragraph',\n 'paste-action',\n 'paste',\n 'quote',\n 'redo',\n 'strike',\n 'subscript',\n 'superscript',\n 'underline',\n 'undo',\n 'align-left',\n 'align-center',\n 'align-right',\n 'align-justify'\n ]))),\n style_options: z.optional(z.array(z.object({\n _uid: z.optional(z.string()),\n name: z.optional(z.string()),\n value: z.optional(z.string())\n }))),\n restrict_type: z.optional(z.string()),\n restrict_components: z.optional(z.boolean()),\n component_whitelist: z.optional(z.array(z.string())),\n component_denylist: z.optional(z.array(z.string())),\n component_tag_whitelist: z.optional(z.array(z.int())),\n component_tag_denylist: z.optional(z.array(z.int())),\n component_group_whitelist: z.optional(z.array(z.string())),\n component_group_denylist: z.optional(z.array(z.string())),\n allow_target_blank: z.optional(z.boolean()),\n allow_custom_attributes: z.optional(z.boolean())\n}));\n\nexport const zTableFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['table'])\n}));\n\nexport const zTextFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['text']),\n max_length: z.optional(z.int()),\n maxlength: z.optional(z.int()),\n minlength: z.optional(z.int()),\n size: z.optional(z.string()),\n rtl: z.optional(z.boolean())\n}));\n\nexport const zTextareaFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['textarea']),\n max_length: z.optional(z.int()),\n maxlength: z.optional(z.int()),\n minlength: z.optional(z.int()),\n size: z.optional(z.string()),\n rtl: z.optional(z.boolean()),\n rich_text: z.optional(z.boolean()),\n markdown: z.optional(z.boolean())\n}));\n\n/**\n * A component schema field. Discriminated by the literal `type` enum on each variant.\n */\nexport const zComponentSchemaField = z.union([\n zTextFieldRoot,\n zTextareaFieldRoot,\n zRichtextFieldRoot,\n zMarkdownFieldRoot,\n zNumberFieldRoot,\n zDatetimeFieldRoot,\n zBooleanFieldRoot,\n zOptionFieldRoot,\n zOptionsFieldRoot,\n zAssetFieldRoot,\n zMultiassetFieldRoot,\n zMultilinkFieldRoot,\n zBloksFieldRoot,\n zTableFieldRoot,\n zSectionFieldRoot,\n zTabFieldRoot,\n zCustomFieldRoot\n]);\n\n/**\n * Asset field type - single asset (image, video, audio, or document)\n */\nexport const zAssetFieldValueRoot = z.object({\n fieldtype: z.enum(['asset']),\n id: z.union([\n z.int(),\n z.null()\n ]),\n alt: z.union([\n z.string(),\n z.null()\n ]),\n name: z.optional(z.string()),\n focus: z.optional(z.union([\n z.string(),\n z.null()\n ])),\n title: z.optional(z.union([\n z.string(),\n z.null()\n ])),\n source: z.optional(z.union([\n z.string(),\n z.null()\n ])),\n filename: z.string(),\n copyright: z.optional(z.union([\n z.string(),\n z.null()\n ])),\n meta_data: z.optional(z.record(z.string(), z.unknown())),\n is_external_url: z.optional(z.boolean())\n});\n\nexport const zAssetFieldValue = zAssetFieldValueRoot;\n\n/**\n * Multilink field type - link to internal stories, external URLs, emails, etc.\n */\nexport const zMultilinkFieldValueRoot = z.object({\n fieldtype: z.enum(['multilink']),\n id: z.string(),\n url: z.string(),\n linktype: z.enum([\n 'story',\n 'url',\n 'email',\n 'asset'\n ]),\n cached_url: z.string(),\n anchor: z.optional(z.union([\n z.string(),\n z.null()\n ])),\n target: z.optional(z.union([\n z.literal('_self'),\n z.literal('_blank'),\n z.null()\n ]))\n});\n\nexport const zMultilinkFieldValue = zMultilinkFieldValueRoot;\n\n/**\n * Plugin/Custom field type - field plugin with custom structure\n */\nexport const zPluginFieldValueRoot = z.object({\n plugin: z.string(),\n _uid: z.optional(z.uuid())\n});\n\nexport const zPluginFieldValue = zPluginFieldValueRoot;\n\n/**\n * Richtext field type - structured rich text document (ProseMirror format)\n */\nexport const zRichtextFieldValueRoot = z.object({\n type: z.enum(['doc']),\n content: z.optional(z.array(z.record(z.string(), z.unknown())))\n});\n\nexport const zRichtextFieldValue = zRichtextFieldValueRoot;\n\n/**\n * Table field type - structured table data\n */\nexport const zTableFieldValueRoot = z.object({\n thead: z.array(z.object({\n _uid: z.string(),\n component: z.enum(['_table_head']),\n value: z.optional(z.string())\n })),\n tbody: z.array(z.object({\n _uid: z.string(),\n component: z.enum(['_table_row']),\n body: z.optional(z.array(z.object({\n _uid: z.string(),\n component: z.enum(['_table_col']),\n value: z.optional(z.string())\n })))\n }))\n});\n\nexport const zTableFieldValue = zTableFieldValueRoot;\n\n/**\n * Content object for creating or updating a component instance. Contains a component technical name and dynamic fields whose values depend on the component's schema field types. The _uid is optional — Storyblok will auto-generate one if not provided.\n */\nexport const zBlockContentInputRoot = z.object({\n _uid: z.optional(z.string()),\n component: z.string(),\n _editable: z.optional(z.string())\n});\n\nexport const zBlockContentInput = zBlockContentInputRoot;\n\n/**\n * Content object representing a component instance. Contains a _uid, a component technical name, and dynamic fields whose values depend on the component's schema field types (text, textarea, richtext, markdown, number, datetime, boolean, option, options, asset, multiasset, multilink, bloks, table, section, custom/plugin).\n */\nexport const zBlockContentRoot = z.object({\n _uid: z.string(),\n component: z.string(),\n _editable: z.optional(z.string())\n});\n\nexport const zBlockContent = zBlockContentRoot;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"zod.gen.mjs","names":["z"],"sources":["../../../src/generated/overlay/zod.gen.ts"],"sourcesContent":["// Generated by @storyblok/openapi-codegen. Do not edit by hand.\n// Internal Zod v4 schemas — imported only by runtime validators, never by public types.\n\n// This file is auto-generated by @hey-api/openapi-ts\n\nimport * as z from 'zod';\n\n/**\n * Universal identity and display properties shared by every field type\n */\nexport const zBaseFieldRoot = z.object({\n type: z.optional(z.string()),\n id: z.optional(z.string()),\n display_name: z.optional(z.string()),\n description: z.optional(z.string()),\n tooltip: z.optional(z.boolean()),\n pos: z.optional(z.int()),\n conditional_settings: z.optional(z.array(z.record(z.string(), z.unknown())))\n});\n\nexport const zSectionFieldRoot = zBaseFieldRoot.and(z.object({\n type: z.enum(['section']),\n keys: z.optional(z.array(z.string())),\n fieldset: z.optional(z.object({\n title: z.optional(z.string()),\n description: z.optional(z.string()),\n collapsible: z.optional(z.boolean()),\n collapsed: z.optional(z.boolean())\n }))\n}));\n\nexport const zTabFieldRoot = zBaseFieldRoot.and(z.object({\n type: z.enum(['tab']),\n keys: z.optional(z.array(z.string()))\n}));\n\n/**\n * Properties shared by content-bearing fields (i.e. fields that hold a value).\n * Layout-only field types like `section` and `tab` do not include these.\n *\n */\nexport const zValueFieldRoot = z.object({\n required: z.optional(z.boolean()),\n regex: z.optional(z.string()),\n default_value: z.optional(z.string()),\n translatable: z.optional(z.boolean()),\n no_translate: z.optional(z.boolean()),\n exclude_from_ai_translation: z.optional(z.boolean()),\n exclude_from_merge: z.optional(z.boolean()),\n exclude_from_overwrite: z.optional(z.boolean()),\n force_merge: z.optional(z.boolean())\n});\n\nexport const zAssetFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['asset']),\n filetypes: z.optional(z.array(z.string())),\n asset_folder_id: z.optional(z.int()),\n allow_external_url: z.optional(z.boolean()),\n height: z.optional(z.int()),\n width: z.optional(z.int()),\n restrict_assets: z.optional(z.boolean()),\n asset_whitelist: z.optional(z.array(z.string()))\n}));\n\nexport const zBloksFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['bloks']),\n restrict_type: z.optional(z.string()),\n restrict_components: z.optional(z.boolean()),\n component_whitelist: z.optional(z.array(z.string())),\n component_denylist: z.optional(z.array(z.string())),\n component_tag_whitelist: z.optional(z.array(z.int())),\n component_tag_denylist: z.optional(z.array(z.int())),\n component_group_whitelist: z.optional(z.array(z.string())),\n component_group_denylist: z.optional(z.array(z.string())),\n minimum: z.optional(z.int()),\n maximum: z.optional(z.int()),\n maximum_entries: z.optional(z.int()),\n minimum_entries: z.optional(z.int())\n}));\n\nexport const zBooleanFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['boolean']),\n inline_label: z.optional(z.boolean())\n}));\n\nexport const zCustomFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['custom']),\n field_type: z.optional(z.string()),\n options: z.optional(z.array(z.object({\n name: z.optional(z.string()),\n value: z.optional(z.string())\n }))),\n required_fields: z.optional(z.string()),\n source: z.optional(z.enum(['self', 'internal'])),\n datasource_slug: z.optional(z.string()),\n external_datasource: z.optional(z.string())\n}));\n\nexport const zDatetimeFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['datetime']),\n disable_time: z.optional(z.boolean())\n}));\n\nexport const zMarkdownFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['markdown']),\n rich_markdown: z.optional(z.boolean()),\n rtl: z.optional(z.boolean()),\n customize_toolbar: z.optional(z.boolean()),\n toolbar: z.optional(z.array(z.enum([\n 'bold',\n 'italic',\n 'inlinecode',\n 'code',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'list',\n 'olist',\n 'quote',\n 'hrule',\n 'link',\n 'image',\n 'paragraph',\n 'help',\n 'toggle-richtext',\n 'auto',\n 'ltr',\n 'rtl'\n ]))),\n allow_multiline: z.optional(z.boolean()),\n max_length: z.optional(z.int())\n}));\n\nexport const zMultiassetFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['multiasset']),\n filetypes: z.optional(z.array(z.string())),\n asset_folder_id: z.optional(z.int()),\n allow_external_url: z.optional(z.boolean()),\n height: z.optional(z.int()),\n width: z.optional(z.int()),\n restrict_assets: z.optional(z.boolean()),\n asset_whitelist: z.optional(z.array(z.string())),\n maximum_entries: z.optional(z.int()),\n minimum_entries: z.optional(z.int())\n}));\n\nexport const zMultilinkFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['multilink']),\n restrict_content_types: z.optional(z.boolean()),\n component_whitelist: z.optional(z.array(z.string())),\n allow_target_blank: z.optional(z.boolean()),\n allow_custom_attributes: z.optional(z.boolean()),\n force_link_scope: z.optional(z.boolean()),\n link_scope: z.optional(z.string()),\n show_anchor: z.optional(z.boolean()),\n email_link_type: z.optional(z.boolean()),\n asset_link_type: z.optional(z.boolean())\n}));\n\nexport const zNumberFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['number']),\n min_value: z.optional(z.number()),\n max_value: z.optional(z.number()),\n decimals: z.optional(z.int()),\n steps: z.optional(z.number())\n}));\n\nexport const zOptionFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['option']),\n options: z.optional(z.array(z.object({\n _uid: z.optional(z.string()),\n name: z.optional(z.string()),\n value: z.optional(z.string())\n }))),\n source: z.optional(z.string()),\n datasource_slug: z.optional(z.string()),\n external_datasource: z.optional(z.string()),\n folder_slug: z.optional(z.string()),\n filter_content_type: z.optional(z.array(z.string())),\n exclude_empty_option: z.optional(z.boolean()),\n include_empty_option: z.optional(z.boolean()),\n use_uuid: z.optional(z.boolean()),\n entry_appearance: z.optional(z.string()),\n allow_advanced_search: z.optional(z.boolean()),\n max_options: z.optional(z.string()),\n min_options: z.optional(z.string()),\n multiple: z.optional(z.boolean())\n}));\n\nexport const zOptionsFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['options']),\n options: z.optional(z.array(z.object({\n _uid: z.optional(z.string()),\n name: z.optional(z.string()),\n value: z.optional(z.string())\n }))),\n source: z.optional(z.string()),\n datasource_slug: z.optional(z.string()),\n external_datasource: z.optional(z.string()),\n folder_slug: z.optional(z.string()),\n filter_content_type: z.optional(z.array(z.string())),\n use_uuid: z.optional(z.boolean()),\n is_reference_type: z.optional(z.boolean()),\n entry_appearance: z.optional(z.string()),\n allow_advanced_search: z.optional(z.boolean()),\n max_options: z.optional(z.string()),\n min_options: z.optional(z.string()),\n multiple: z.optional(z.boolean())\n}));\n\nexport const zRichtextFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['richtext']),\n customize_toolbar: z.optional(z.boolean()),\n toolbar: z.optional(z.array(z.enum([\n 'ai-complete',\n 'ai-shorten',\n 'ai-extend',\n 'ai-rephrase',\n 'ai-summarize',\n 'ai-simplify',\n 'ai-tone',\n 'ai-emoji',\n 'ai-translate',\n 'ai-tldr',\n 'ai-spelling',\n 'blok',\n 'ltr',\n 'rtl',\n 'export',\n 'import',\n 'bold',\n 'list',\n 'inlinecode',\n 'code',\n 'color',\n 'copy',\n 'cut',\n 'emoji',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'highlight',\n 'unset',\n 'hrule',\n 'image',\n 'italic',\n 'link',\n 'anchor',\n 'olist',\n 'paragraph',\n 'paste-action',\n 'paste',\n 'quote',\n 'redo',\n 'strike',\n 'subscript',\n 'superscript',\n 'underline',\n 'undo',\n 'align-left',\n 'align-center',\n 'align-right',\n 'align-justify'\n ]))),\n style_options: z.optional(z.array(z.object({\n _uid: z.optional(z.string()),\n name: z.optional(z.string()),\n value: z.optional(z.string())\n }))),\n restrict_type: z.optional(z.string()),\n restrict_components: z.optional(z.boolean()),\n component_whitelist: z.optional(z.array(z.string())),\n component_denylist: z.optional(z.array(z.string())),\n component_tag_whitelist: z.optional(z.array(z.int())),\n component_tag_denylist: z.optional(z.array(z.int())),\n component_group_whitelist: z.optional(z.array(z.string())),\n component_group_denylist: z.optional(z.array(z.string())),\n allow_target_blank: z.optional(z.boolean()),\n allow_custom_attributes: z.optional(z.boolean())\n}));\n\nexport const zTableFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['table'])\n}));\n\nexport const zTextFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['text']),\n max_length: z.optional(z.int()),\n maxlength: z.optional(z.int()),\n minlength: z.optional(z.int()),\n size: z.optional(z.string()),\n rtl: z.optional(z.boolean())\n}));\n\nexport const zTextareaFieldRoot = zBaseFieldRoot.and(zValueFieldRoot).and(z.object({\n type: z.enum(['textarea']),\n max_length: z.optional(z.int()),\n maxlength: z.optional(z.int()),\n minlength: z.optional(z.int()),\n size: z.optional(z.string()),\n rtl: z.optional(z.boolean()),\n rich_text: z.optional(z.boolean()),\n markdown: z.optional(z.boolean())\n}));\n\n/**\n * A component schema field. Discriminated by the literal `type` enum on each variant.\n */\nexport const zComponentSchemaField = z.union([\n zTextFieldRoot,\n zTextareaFieldRoot,\n zRichtextFieldRoot,\n zMarkdownFieldRoot,\n zNumberFieldRoot,\n zDatetimeFieldRoot,\n zBooleanFieldRoot,\n zOptionFieldRoot,\n zOptionsFieldRoot,\n zAssetFieldRoot,\n zMultiassetFieldRoot,\n zMultilinkFieldRoot,\n zBloksFieldRoot,\n zTableFieldRoot,\n zSectionFieldRoot,\n zTabFieldRoot,\n zCustomFieldRoot\n]);\n\n/**\n * Asset field type - single asset (image, video, audio, or document)\n */\nexport const zAssetFieldValueRoot = z.object({\n fieldtype: z.enum(['asset']),\n id: z.union([\n z.int(),\n z.null()\n ]),\n alt: z.union([\n z.string(),\n z.null()\n ]),\n name: z.optional(z.string()),\n focus: z.optional(z.union([\n z.string(),\n z.null()\n ])),\n title: z.optional(z.union([\n z.string(),\n z.null()\n ])),\n source: z.optional(z.union([\n z.string(),\n z.null()\n ])),\n filename: z.string(),\n copyright: z.optional(z.union([\n z.string(),\n z.null()\n ])),\n meta_data: z.optional(z.record(z.string(), z.unknown())),\n is_external_url: z.optional(z.boolean())\n});\n\nexport const zAssetFieldValue = zAssetFieldValueRoot;\n\n/**\n * Multilink field type - link to internal stories, external URLs, emails, etc.\n */\nexport const zMultilinkFieldValueRoot = z.object({\n fieldtype: z.enum(['multilink']),\n id: z.string(),\n url: z.string(),\n linktype: z.enum([\n 'story',\n 'url',\n 'email',\n 'asset'\n ]),\n cached_url: z.string(),\n anchor: z.optional(z.union([\n z.string(),\n z.null()\n ])),\n target: z.optional(z.union([\n z.literal('_self'),\n z.literal('_blank'),\n z.null()\n ]))\n});\n\nexport const zMultilinkFieldValue = zMultilinkFieldValueRoot;\n\n/**\n * Plugin/Custom field type - field plugin with custom structure\n */\nexport const zPluginFieldValueRoot = z.object({\n plugin: z.string(),\n _uid: z.optional(z.uuid())\n});\n\nexport const zPluginFieldValue = zPluginFieldValueRoot;\n\n/**\n * Richtext field type - structured rich text document (ProseMirror format)\n */\nexport const zRichtextFieldValueRoot = z.object({\n type: z.enum(['doc']),\n content: z.optional(z.array(z.record(z.string(), z.unknown())))\n});\n\nexport const zRichtextFieldValue = zRichtextFieldValueRoot;\n\n/**\n * Table field type - structured table data\n */\nexport const zTableFieldValueRoot = z.object({\n thead: z.array(z.object({\n _uid: z.string(),\n component: z.enum(['_table_head']),\n value: z.optional(z.string())\n })),\n tbody: z.array(z.object({\n _uid: z.string(),\n component: z.enum(['_table_row']),\n body: z.optional(z.array(z.object({\n _uid: z.string(),\n component: z.enum(['_table_col']),\n value: z.optional(z.string())\n })))\n }))\n});\n\nexport const zTableFieldValue = zTableFieldValueRoot;\n\n/**\n * Content object for creating or updating a component instance. Contains a component technical name and dynamic fields whose values depend on the component's schema field types. The _uid is optional — Storyblok will auto-generate one if not provided.\n */\nexport const zBlockContentInputRoot = z.object({\n _uid: z.optional(z.string()),\n component: z.string(),\n _editable: z.optional(z.string())\n});\n\nexport const zBlockContentInput = zBlockContentInputRoot;\n\n/**\n * Content object representing a component instance. Contains a _uid, a component technical name, and dynamic fields whose values depend on the component's schema field types (text, textarea, richtext, markdown, number, datetime, boolean, option, options, asset, multiasset, multilink, bloks, table, section, custom/plugin).\n */\nexport const zBlockContentRoot = z.object({\n _uid: z.string(),\n component: z.string(),\n _editable: z.optional(z.string())\n});\n\nexport const zBlockContent = zBlockContentRoot;\n"],"mappings":"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"}
|
|
@@ -16,35 +16,35 @@ type IsBaseBlock<T> = [Block] extends [T] ? true : false;
|
|
|
16
16
|
* required (`required: true`) from optional fields. Each `F` is a member of the
|
|
17
17
|
* field union, so it provably satisfies `FieldValue`'s `Field` constraint.
|
|
18
18
|
*/
|
|
19
|
-
type ContentFields<TFields extends BlockFields, TBlocks
|
|
19
|
+
type ContentFields<TFields extends BlockFields, TBlocks, TFieldPlugins = Record<never, never>> = Prettify<{ [F in TFields[number] as F extends {
|
|
20
20
|
required: true;
|
|
21
|
-
} ? F['name'] : never]: FieldValue<F, TBlocks> } & { [F in TFields[number] as F extends {
|
|
21
|
+
} ? F['name'] : never]: FieldValue<F, TBlocks, TFieldPlugins> } & { [F in TFields[number] as F extends {
|
|
22
22
|
required: true;
|
|
23
|
-
} ? never : F['name']]?: FieldValue<F, TBlocks> | null }>;
|
|
23
|
+
} ? never : F['name']]?: FieldValue<F, TBlocks, TFieldPlugins> | null }>;
|
|
24
24
|
/** Input (write) variant of {@link ContentFields}, resolving each field via {@link FieldValueInput}. */
|
|
25
|
-
type ContentFieldsInput<TFields extends BlockFields, TBlocks
|
|
25
|
+
type ContentFieldsInput<TFields extends BlockFields, TBlocks, TFieldPlugins = Record<never, never>> = Prettify<{ [F in TFields[number] as F extends {
|
|
26
26
|
required: true;
|
|
27
|
-
} ? F['name'] : never]: FieldValueInput<F, TBlocks> } & { [F in TFields[number] as F extends {
|
|
27
|
+
} ? F['name'] : never]: FieldValueInput<F, TBlocks, TFieldPlugins> } & { [F in TFields[number] as F extends {
|
|
28
28
|
required: true;
|
|
29
|
-
} ? never : F['name']]?: FieldValueInput<F, TBlocks> | null }>;
|
|
29
|
+
} ? never : F['name']]?: FieldValueInput<F, TBlocks, TFieldPlugins> | null }>;
|
|
30
30
|
/**
|
|
31
31
|
* Content object for a single block instance as returned by the Storyblok
|
|
32
32
|
* Content Delivery API. Without a `TBlock` argument, this is the loose
|
|
33
33
|
* runtime shape (any block, `_editable` optional). With a schema-typed
|
|
34
34
|
* `TBlock`, fields are narrowed per the block's `fields`.
|
|
35
35
|
*/
|
|
36
|
-
type BlockContent<TBlock extends Block = Block, TBlocks = NoBlocks
|
|
36
|
+
type BlockContent<TBlock extends Block = Block, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = IsBaseBlock<TBlock> extends true ? BlockContentBase : TBlock extends any ? Prettify<{
|
|
37
37
|
_uid: string;
|
|
38
38
|
component: TBlock['name'];
|
|
39
39
|
_editable?: string;
|
|
40
|
-
} & ContentFields<TBlock['fields'], TBlocks>> : never;
|
|
40
|
+
} & ContentFields<TBlock['fields'], TBlocks, TFieldPlugins>> : never;
|
|
41
41
|
/** Input variant of {@link BlockContent} for write operations (creating/updating stories via the MAPI). `_uid` is optional. */
|
|
42
|
-
type BlockContentInput<TBlock extends Block = Block, TBlocks = NoBlocks
|
|
42
|
+
type BlockContentInput<TBlock extends Block = Block, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = IsBaseBlock<TBlock> extends true ? BlockContentInputBase : TBlock extends any ? Prettify<{
|
|
43
43
|
_uid?: string;
|
|
44
44
|
component: TBlock['name'];
|
|
45
45
|
_editable?: string;
|
|
46
|
-
} & ContentFieldsInput<TBlock['fields'], TBlocks>> : never;
|
|
47
|
-
type BlocksFieldValue<TBlock extends Block = Block, TBlocks = NoBlocks
|
|
46
|
+
} & ContentFieldsInput<TBlock['fields'], TBlocks, TFieldPlugins>> : never;
|
|
47
|
+
type BlocksFieldValue<TBlock extends Block = Block, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = BlockContent<TBlock, TBlocks, TFieldPlugins>[];
|
|
48
48
|
/** Union of all valid Storyblok field type discriminants (e.g., `text`, `bloks`). */
|
|
49
49
|
type FieldType = Field['type'];
|
|
50
50
|
interface FieldTypeValueMap {
|
|
@@ -76,14 +76,30 @@ type ApplyAllow<TField, TBlocks> = TField extends {
|
|
|
76
76
|
} ? Extract<TBlocks, {
|
|
77
77
|
name: TAllowed;
|
|
78
78
|
}> : TBlocks extends any ? IsNestable<TBlocks> extends true ? TBlocks : never : never;
|
|
79
|
+
/**
|
|
80
|
+
* Resolves a `custom` field to its registered plugin value. When the field's
|
|
81
|
+
* `field_type` is a key of `TFieldPlugins`, the validator output is merged with
|
|
82
|
+
* the plugin envelope (`plugin`, optional `_uid`); otherwise it falls back to
|
|
83
|
+
* the untyped {@link PluginFieldValue}. Same shape for read and write.
|
|
84
|
+
*/
|
|
85
|
+
type ResolveCustom<TField, TFieldPlugins> = TField extends {
|
|
86
|
+
field_type: infer F extends string;
|
|
87
|
+
} ? F extends keyof TFieldPlugins ? Prettify<TFieldPlugins[F] & {
|
|
88
|
+
plugin: string;
|
|
89
|
+
_uid?: string;
|
|
90
|
+
}> : PluginFieldValue : PluginFieldValue;
|
|
79
91
|
/** Resolves a field definition to its runtime content value type (read). */
|
|
80
|
-
type FieldValue<TField extends Field = Field, TBlocks = NoBlocks
|
|
92
|
+
type FieldValue<TField extends Field = Field, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = Prettify<TField extends {
|
|
81
93
|
type: 'bloks';
|
|
82
|
-
} ? [TBlocks] extends [never] ? BlockContentBase[] : [TBlocks] extends [Block] ? BlockContent<ApplyAllow<TField, TBlocks>, TBlocks>[] : BlockContentBase[] :
|
|
94
|
+
} ? [TBlocks] extends [never] ? BlockContentBase[] : [TBlocks] extends [Block] ? BlockContent<ApplyAllow<TField, TBlocks>, TBlocks, TFieldPlugins>[] : BlockContentBase[] : TField extends {
|
|
95
|
+
type: 'custom';
|
|
96
|
+
} ? ResolveCustom<TField, TFieldPlugins> : FieldTypeValueMap[TField['type']]>;
|
|
83
97
|
/** Resolves a field definition to its input value type (write). */
|
|
84
|
-
type FieldValueInput<TField extends Field = Field, TBlocks = NoBlocks
|
|
98
|
+
type FieldValueInput<TField extends Field = Field, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = Prettify<TField extends {
|
|
85
99
|
type: 'bloks';
|
|
86
|
-
} ? [TBlocks] extends [never] ? BlockContentInputBase[] : [TBlocks] extends [Block] ? BlockContentInput<ApplyAllow<TField, TBlocks>, TBlocks>[] : BlockContentInputBase[] :
|
|
100
|
+
} ? [TBlocks] extends [never] ? BlockContentInputBase[] : [TBlocks] extends [Block] ? BlockContentInput<ApplyAllow<TField, TBlocks>, TBlocks, TFieldPlugins>[] : BlockContentInputBase[] : TField extends {
|
|
101
|
+
type: 'custom';
|
|
102
|
+
} ? ResolveCustom<TField, TFieldPlugins> : FieldTypeValueMap[TField['type']]>;
|
|
87
103
|
//#endregion
|
|
88
104
|
export { BlockContent, BlockContentInput, BlocksFieldValue, FieldType, FieldValue, FieldValueInput };
|
|
89
105
|
//# sourceMappingURL=field.d.cts.map
|
|
@@ -16,35 +16,35 @@ type IsBaseBlock<T> = [Block] extends [T] ? true : false;
|
|
|
16
16
|
* required (`required: true`) from optional fields. Each `F` is a member of the
|
|
17
17
|
* field union, so it provably satisfies `FieldValue`'s `Field` constraint.
|
|
18
18
|
*/
|
|
19
|
-
type ContentFields<TFields extends BlockFields, TBlocks
|
|
19
|
+
type ContentFields<TFields extends BlockFields, TBlocks, TFieldPlugins = Record<never, never>> = Prettify<{ [F in TFields[number] as F extends {
|
|
20
20
|
required: true;
|
|
21
|
-
} ? F['name'] : never]: FieldValue<F, TBlocks> } & { [F in TFields[number] as F extends {
|
|
21
|
+
} ? F['name'] : never]: FieldValue<F, TBlocks, TFieldPlugins> } & { [F in TFields[number] as F extends {
|
|
22
22
|
required: true;
|
|
23
|
-
} ? never : F['name']]?: FieldValue<F, TBlocks> | null }>;
|
|
23
|
+
} ? never : F['name']]?: FieldValue<F, TBlocks, TFieldPlugins> | null }>;
|
|
24
24
|
/** Input (write) variant of {@link ContentFields}, resolving each field via {@link FieldValueInput}. */
|
|
25
|
-
type ContentFieldsInput<TFields extends BlockFields, TBlocks
|
|
25
|
+
type ContentFieldsInput<TFields extends BlockFields, TBlocks, TFieldPlugins = Record<never, never>> = Prettify<{ [F in TFields[number] as F extends {
|
|
26
26
|
required: true;
|
|
27
|
-
} ? F['name'] : never]: FieldValueInput<F, TBlocks> } & { [F in TFields[number] as F extends {
|
|
27
|
+
} ? F['name'] : never]: FieldValueInput<F, TBlocks, TFieldPlugins> } & { [F in TFields[number] as F extends {
|
|
28
28
|
required: true;
|
|
29
|
-
} ? never : F['name']]?: FieldValueInput<F, TBlocks> | null }>;
|
|
29
|
+
} ? never : F['name']]?: FieldValueInput<F, TBlocks, TFieldPlugins> | null }>;
|
|
30
30
|
/**
|
|
31
31
|
* Content object for a single block instance as returned by the Storyblok
|
|
32
32
|
* Content Delivery API. Without a `TBlock` argument, this is the loose
|
|
33
33
|
* runtime shape (any block, `_editable` optional). With a schema-typed
|
|
34
34
|
* `TBlock`, fields are narrowed per the block's `fields`.
|
|
35
35
|
*/
|
|
36
|
-
type BlockContent<TBlock extends Block = Block, TBlocks = NoBlocks
|
|
36
|
+
type BlockContent<TBlock extends Block = Block, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = IsBaseBlock<TBlock> extends true ? BlockContentBase : TBlock extends any ? Prettify<{
|
|
37
37
|
_uid: string;
|
|
38
38
|
component: TBlock['name'];
|
|
39
39
|
_editable?: string;
|
|
40
|
-
} & ContentFields<TBlock['fields'], TBlocks>> : never;
|
|
40
|
+
} & ContentFields<TBlock['fields'], TBlocks, TFieldPlugins>> : never;
|
|
41
41
|
/** Input variant of {@link BlockContent} for write operations (creating/updating stories via the MAPI). `_uid` is optional. */
|
|
42
|
-
type BlockContentInput<TBlock extends Block = Block, TBlocks = NoBlocks
|
|
42
|
+
type BlockContentInput<TBlock extends Block = Block, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = IsBaseBlock<TBlock> extends true ? BlockContentInputBase : TBlock extends any ? Prettify<{
|
|
43
43
|
_uid?: string;
|
|
44
44
|
component: TBlock['name'];
|
|
45
45
|
_editable?: string;
|
|
46
|
-
} & ContentFieldsInput<TBlock['fields'], TBlocks>> : never;
|
|
47
|
-
type BlocksFieldValue<TBlock extends Block = Block, TBlocks = NoBlocks
|
|
46
|
+
} & ContentFieldsInput<TBlock['fields'], TBlocks, TFieldPlugins>> : never;
|
|
47
|
+
type BlocksFieldValue<TBlock extends Block = Block, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = BlockContent<TBlock, TBlocks, TFieldPlugins>[];
|
|
48
48
|
/** Union of all valid Storyblok field type discriminants (e.g., `text`, `bloks`). */
|
|
49
49
|
type FieldType = Field['type'];
|
|
50
50
|
interface FieldTypeValueMap {
|
|
@@ -76,14 +76,30 @@ type ApplyAllow<TField, TBlocks> = TField extends {
|
|
|
76
76
|
} ? Extract<TBlocks, {
|
|
77
77
|
name: TAllowed;
|
|
78
78
|
}> : TBlocks extends any ? IsNestable<TBlocks> extends true ? TBlocks : never : never;
|
|
79
|
+
/**
|
|
80
|
+
* Resolves a `custom` field to its registered plugin value. When the field's
|
|
81
|
+
* `field_type` is a key of `TFieldPlugins`, the validator output is merged with
|
|
82
|
+
* the plugin envelope (`plugin`, optional `_uid`); otherwise it falls back to
|
|
83
|
+
* the untyped {@link PluginFieldValue}. Same shape for read and write.
|
|
84
|
+
*/
|
|
85
|
+
type ResolveCustom<TField, TFieldPlugins> = TField extends {
|
|
86
|
+
field_type: infer F extends string;
|
|
87
|
+
} ? F extends keyof TFieldPlugins ? Prettify<TFieldPlugins[F] & {
|
|
88
|
+
plugin: string;
|
|
89
|
+
_uid?: string;
|
|
90
|
+
}> : PluginFieldValue : PluginFieldValue;
|
|
79
91
|
/** Resolves a field definition to its runtime content value type (read). */
|
|
80
|
-
type FieldValue<TField extends Field = Field, TBlocks = NoBlocks
|
|
92
|
+
type FieldValue<TField extends Field = Field, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = Prettify<TField extends {
|
|
81
93
|
type: 'bloks';
|
|
82
|
-
} ? [TBlocks] extends [never] ? BlockContentBase[] : [TBlocks] extends [Block] ? BlockContent<ApplyAllow<TField, TBlocks>, TBlocks>[] : BlockContentBase[] :
|
|
94
|
+
} ? [TBlocks] extends [never] ? BlockContentBase[] : [TBlocks] extends [Block] ? BlockContent<ApplyAllow<TField, TBlocks>, TBlocks, TFieldPlugins>[] : BlockContentBase[] : TField extends {
|
|
95
|
+
type: 'custom';
|
|
96
|
+
} ? ResolveCustom<TField, TFieldPlugins> : FieldTypeValueMap[TField['type']]>;
|
|
83
97
|
/** Resolves a field definition to its input value type (write). */
|
|
84
|
-
type FieldValueInput<TField extends Field = Field, TBlocks = NoBlocks
|
|
98
|
+
type FieldValueInput<TField extends Field = Field, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = Prettify<TField extends {
|
|
85
99
|
type: 'bloks';
|
|
86
|
-
} ? [TBlocks] extends [never] ? BlockContentInputBase[] : [TBlocks] extends [Block] ? BlockContentInput<ApplyAllow<TField, TBlocks>, TBlocks>[] : BlockContentInputBase[] :
|
|
100
|
+
} ? [TBlocks] extends [never] ? BlockContentInputBase[] : [TBlocks] extends [Block] ? BlockContentInput<ApplyAllow<TField, TBlocks>, TBlocks, TFieldPlugins>[] : BlockContentInputBase[] : TField extends {
|
|
101
|
+
type: 'custom';
|
|
102
|
+
} ? ResolveCustom<TField, TFieldPlugins> : FieldTypeValueMap[TField['type']]>;
|
|
87
103
|
//#endregion
|
|
88
104
|
export { BlockContent, BlockContentInput, BlocksFieldValue, FieldType, FieldValue, FieldValueInput };
|
|
89
105
|
//# sourceMappingURL=field.d.mts.map
|
|
@@ -14,12 +14,12 @@ type NoBlocks = false;
|
|
|
14
14
|
* Base (un-narrowed) `RootBlock` means no schema was supplied, so the generated
|
|
15
15
|
* story passes through unchanged.
|
|
16
16
|
*/
|
|
17
|
-
type MapiStoryWithSchemaContent<TStory extends MapiStory$1 | StoryCreate | StoryUpdate, TBlock extends RootBlock = RootBlock, TBlocks = NoBlocks
|
|
18
|
-
content: TStory extends StoryCreate | StoryUpdate ? BlockContentInput<TBlock, TBlocks> : BlockContent<TBlock, TBlocks>;
|
|
17
|
+
type MapiStoryWithSchemaContent<TStory extends MapiStory$1 | StoryCreate | StoryUpdate, TBlock extends RootBlock = RootBlock, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = RootBlock extends TBlock ? TStory : Override<TStory, {
|
|
18
|
+
content: TStory extends StoryCreate | StoryUpdate ? BlockContentInput<TBlock, TBlocks, TFieldPlugins> : BlockContent<TBlock, TBlocks, TFieldPlugins>;
|
|
19
19
|
}>;
|
|
20
|
-
type MakeMapiStory<TStory extends MapiStory$1 | StoryCreate | StoryUpdate, TBlockOrBlocks extends RootBlock | Block = RootBlock, TBlocks = NoBlocks> = Prettify<[TBlockOrBlocks] extends [RootBlock] ? MapiStoryWithSchemaContent<TStory, TBlockOrBlocks, TBlocks> : TBlocks extends NoBlocks ? MapiStoryWithSchemaContent<TStory, Extract<TBlockOrBlocks, RootBlock>, TBlockOrBlocks> : never>;
|
|
20
|
+
type MakeMapiStory<TStory extends MapiStory$1 | StoryCreate | StoryUpdate, TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = Prettify<[TBlockOrBlocks] extends [RootBlock] ? MapiStoryWithSchemaContent<TStory, TBlockOrBlocks, TBlocks, TFieldPlugins> : TBlocks extends NoBlocks ? MapiStoryWithSchemaContent<TStory, Extract<TBlockOrBlocks, RootBlock>, TBlockOrBlocks, TFieldPlugins> : never>;
|
|
21
21
|
/** A Storyblok MAPI story. */
|
|
22
|
-
type MapiStory<TBlockOrBlocks extends RootBlock | Block = RootBlock, TBlocks = NoBlocks> = MakeMapiStory<MapiStory$1, TBlockOrBlocks, TBlocks>;
|
|
22
|
+
type MapiStory<TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = MakeMapiStory<MapiStory$1, TBlockOrBlocks, TFieldPlugins, TBlocks>;
|
|
23
23
|
//#endregion
|
|
24
24
|
export { MapiStory };
|
|
25
25
|
//# sourceMappingURL=mapi-story.d.cts.map
|
|
@@ -14,12 +14,12 @@ type NoBlocks = false;
|
|
|
14
14
|
* Base (un-narrowed) `RootBlock` means no schema was supplied, so the generated
|
|
15
15
|
* story passes through unchanged.
|
|
16
16
|
*/
|
|
17
|
-
type MapiStoryWithSchemaContent<TStory extends MapiStory$1 | StoryCreate | StoryUpdate, TBlock extends RootBlock = RootBlock, TBlocks = NoBlocks
|
|
18
|
-
content: TStory extends StoryCreate | StoryUpdate ? BlockContentInput<TBlock, TBlocks> : BlockContent<TBlock, TBlocks>;
|
|
17
|
+
type MapiStoryWithSchemaContent<TStory extends MapiStory$1 | StoryCreate | StoryUpdate, TBlock extends RootBlock = RootBlock, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = RootBlock extends TBlock ? TStory : Override<TStory, {
|
|
18
|
+
content: TStory extends StoryCreate | StoryUpdate ? BlockContentInput<TBlock, TBlocks, TFieldPlugins> : BlockContent<TBlock, TBlocks, TFieldPlugins>;
|
|
19
19
|
}>;
|
|
20
|
-
type MakeMapiStory<TStory extends MapiStory$1 | StoryCreate | StoryUpdate, TBlockOrBlocks extends RootBlock | Block = RootBlock, TBlocks = NoBlocks> = Prettify<[TBlockOrBlocks] extends [RootBlock] ? MapiStoryWithSchemaContent<TStory, TBlockOrBlocks, TBlocks> : TBlocks extends NoBlocks ? MapiStoryWithSchemaContent<TStory, Extract<TBlockOrBlocks, RootBlock>, TBlockOrBlocks> : never>;
|
|
20
|
+
type MakeMapiStory<TStory extends MapiStory$1 | StoryCreate | StoryUpdate, TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = Prettify<[TBlockOrBlocks] extends [RootBlock] ? MapiStoryWithSchemaContent<TStory, TBlockOrBlocks, TBlocks, TFieldPlugins> : TBlocks extends NoBlocks ? MapiStoryWithSchemaContent<TStory, Extract<TBlockOrBlocks, RootBlock>, TBlockOrBlocks, TFieldPlugins> : never>;
|
|
21
21
|
/** A Storyblok MAPI story. */
|
|
22
|
-
type MapiStory<TBlockOrBlocks extends RootBlock | Block = RootBlock, TBlocks = NoBlocks> = MakeMapiStory<MapiStory$1, TBlockOrBlocks, TBlocks>;
|
|
22
|
+
type MapiStory<TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = MakeMapiStory<MapiStory$1, TBlockOrBlocks, TFieldPlugins, TBlocks>;
|
|
23
23
|
//#endregion
|
|
24
24
|
export { MapiStory };
|
|
25
25
|
//# sourceMappingURL=mapi-story.d.mts.map
|
|
@@ -9,11 +9,11 @@ import { BlockContent } from "./field.cjs";
|
|
|
9
9
|
* `NoBlocks` (the default) leaves nested content loose (`BlockContentBase`).
|
|
10
10
|
*/
|
|
11
11
|
type NoBlocks = false;
|
|
12
|
-
type CapiStoryWithSchemaContent<TBlock extends RootBlock = RootBlock, TBlocks = NoBlocks
|
|
13
|
-
content: BlockContent<TBlock, TBlocks>;
|
|
12
|
+
type CapiStoryWithSchemaContent<TBlock extends RootBlock = RootBlock, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = Override<CapiStory, {
|
|
13
|
+
content: BlockContent<TBlock, TBlocks, TFieldPlugins>;
|
|
14
14
|
}>;
|
|
15
15
|
/** A Storyblok CDN (CAPI) story. */
|
|
16
|
-
type Story<TBlockOrBlocks extends RootBlock | Block = RootBlock, TBlocks = NoBlocks> = Prettify<[TBlockOrBlocks] extends [RootBlock] ? CapiStoryWithSchemaContent<TBlockOrBlocks, TBlocks> : TBlocks extends NoBlocks ? CapiStoryWithSchemaContent<Extract<TBlockOrBlocks, RootBlock>, TBlockOrBlocks> : never>;
|
|
16
|
+
type Story<TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = Prettify<[TBlockOrBlocks] extends [RootBlock] ? CapiStoryWithSchemaContent<TBlockOrBlocks, TBlocks, TFieldPlugins> : TBlocks extends NoBlocks ? CapiStoryWithSchemaContent<Extract<TBlockOrBlocks, RootBlock>, TBlockOrBlocks, TFieldPlugins> : never>;
|
|
17
17
|
//#endregion
|
|
18
18
|
export { Story };
|
|
19
19
|
//# sourceMappingURL=story.d.cts.map
|
|
@@ -9,11 +9,11 @@ import { BlockContent } from "./field.mjs";
|
|
|
9
9
|
* `NoBlocks` (the default) leaves nested content loose (`BlockContentBase`).
|
|
10
10
|
*/
|
|
11
11
|
type NoBlocks = false;
|
|
12
|
-
type CapiStoryWithSchemaContent<TBlock extends RootBlock = RootBlock, TBlocks = NoBlocks
|
|
13
|
-
content: BlockContent<TBlock, TBlocks>;
|
|
12
|
+
type CapiStoryWithSchemaContent<TBlock extends RootBlock = RootBlock, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = Override<CapiStory, {
|
|
13
|
+
content: BlockContent<TBlock, TBlocks, TFieldPlugins>;
|
|
14
14
|
}>;
|
|
15
15
|
/** A Storyblok CDN (CAPI) story. */
|
|
16
|
-
type Story<TBlockOrBlocks extends RootBlock | Block = RootBlock, TBlocks = NoBlocks> = Prettify<[TBlockOrBlocks] extends [RootBlock] ? CapiStoryWithSchemaContent<TBlockOrBlocks, TBlocks> : TBlocks extends NoBlocks ? CapiStoryWithSchemaContent<Extract<TBlockOrBlocks, RootBlock>, TBlockOrBlocks> : never>;
|
|
16
|
+
type Story<TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = Prettify<[TBlockOrBlocks] extends [RootBlock] ? CapiStoryWithSchemaContent<TBlockOrBlocks, TBlocks, TFieldPlugins> : TBlocks extends NoBlocks ? CapiStoryWithSchemaContent<Extract<TBlockOrBlocks, RootBlock>, TBlockOrBlocks, TFieldPlugins> : never>;
|
|
17
17
|
//#endregion
|
|
18
18
|
export { Story };
|
|
19
19
|
//# sourceMappingURL=story.d.mts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/helpers/define-field-plugin.ts
|
|
3
|
+
/**
|
|
4
|
+
* Declares a custom field plugin: both the `fieldType` literal and the value
|
|
5
|
+
* type infer from the single argument. `value` accepts any Standard Schema
|
|
6
|
+
* validator (Zod, Valibot, ArkType, or hand-written) and is retained for
|
|
7
|
+
* runtime use. A thin, strongly-typed identity helper — it does not validate.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* const colorPicker = defineFieldPlugin({
|
|
11
|
+
* fieldType: 'my-custom-color-picker',
|
|
12
|
+
* value: z.object({ color: z.string(), alpha: z.number() }),
|
|
13
|
+
* });
|
|
14
|
+
*/
|
|
15
|
+
function defineFieldPlugin(config) {
|
|
16
|
+
return config;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
exports.defineFieldPlugin = defineFieldPlugin;
|
|
21
|
+
//# sourceMappingURL=define-field-plugin.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-field-plugin.cjs","names":[],"sources":["../../src/helpers/define-field-plugin.ts"],"sourcesContent":["import type { StandardSchemaV1 } from '@standard-schema/spec';\n\n/**\n * Binds a Storyblok custom field `field_type` to a\n * [Standard Schema](https://standardschema.dev) validator. The validator (`S`,\n * retained on `value`) supplies both the static value type\n * (`StandardSchemaV1.InferOutput<S>`) and a runtime handle, so a single\n * declaration serves types and (future) runtime validation.\n */\nexport interface FieldPlugin<\n F extends string = string,\n S extends StandardSchemaV1 = StandardSchemaV1,\n> {\n fieldType: F;\n value: S;\n}\n\n/**\n * Declares a custom field plugin: both the `fieldType` literal and the value\n * type infer from the single argument. `value` accepts any Standard Schema\n * validator (Zod, Valibot, ArkType, or hand-written) and is retained for\n * runtime use. A thin, strongly-typed identity helper — it does not validate.\n *\n * @example\n * const colorPicker = defineFieldPlugin({\n * fieldType: 'my-custom-color-picker',\n * value: z.object({ color: z.string(), alpha: z.number() }),\n * });\n */\nexport function defineFieldPlugin<\n const F extends string,\n S extends StandardSchemaV1,\n>(config: { fieldType: F; value: S }): FieldPlugin<F, S> {\n return config;\n}\n"],"mappings":";;;;;;;;;;;;;;AA6BA,SAAgB,kBAGd,QAAuD;AACvD,QAAO"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
2
|
+
|
|
3
|
+
//#region src/helpers/define-field-plugin.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Binds a Storyblok custom field `field_type` to a
|
|
6
|
+
* [Standard Schema](https://standardschema.dev) validator. The validator (`S`,
|
|
7
|
+
* retained on `value`) supplies both the static value type
|
|
8
|
+
* (`StandardSchemaV1.InferOutput<S>`) and a runtime handle, so a single
|
|
9
|
+
* declaration serves types and (future) runtime validation.
|
|
10
|
+
*/
|
|
11
|
+
interface FieldPlugin<F extends string = string, S extends StandardSchemaV1 = StandardSchemaV1> {
|
|
12
|
+
fieldType: F;
|
|
13
|
+
value: S;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Declares a custom field plugin: both the `fieldType` literal and the value
|
|
17
|
+
* type infer from the single argument. `value` accepts any Standard Schema
|
|
18
|
+
* validator (Zod, Valibot, ArkType, or hand-written) and is retained for
|
|
19
|
+
* runtime use. A thin, strongly-typed identity helper — it does not validate.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* const colorPicker = defineFieldPlugin({
|
|
23
|
+
* fieldType: 'my-custom-color-picker',
|
|
24
|
+
* value: z.object({ color: z.string(), alpha: z.number() }),
|
|
25
|
+
* });
|
|
26
|
+
*/
|
|
27
|
+
declare function defineFieldPlugin<const F extends string, S extends StandardSchemaV1>(config: {
|
|
28
|
+
fieldType: F;
|
|
29
|
+
value: S;
|
|
30
|
+
}): FieldPlugin<F, S>;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { FieldPlugin, defineFieldPlugin };
|
|
33
|
+
//# sourceMappingURL=define-field-plugin.d.cts.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
2
|
+
|
|
3
|
+
//#region src/helpers/define-field-plugin.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Binds a Storyblok custom field `field_type` to a
|
|
6
|
+
* [Standard Schema](https://standardschema.dev) validator. The validator (`S`,
|
|
7
|
+
* retained on `value`) supplies both the static value type
|
|
8
|
+
* (`StandardSchemaV1.InferOutput<S>`) and a runtime handle, so a single
|
|
9
|
+
* declaration serves types and (future) runtime validation.
|
|
10
|
+
*/
|
|
11
|
+
interface FieldPlugin<F extends string = string, S extends StandardSchemaV1 = StandardSchemaV1> {
|
|
12
|
+
fieldType: F;
|
|
13
|
+
value: S;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Declares a custom field plugin: both the `fieldType` literal and the value
|
|
17
|
+
* type infer from the single argument. `value` accepts any Standard Schema
|
|
18
|
+
* validator (Zod, Valibot, ArkType, or hand-written) and is retained for
|
|
19
|
+
* runtime use. A thin, strongly-typed identity helper — it does not validate.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* const colorPicker = defineFieldPlugin({
|
|
23
|
+
* fieldType: 'my-custom-color-picker',
|
|
24
|
+
* value: z.object({ color: z.string(), alpha: z.number() }),
|
|
25
|
+
* });
|
|
26
|
+
*/
|
|
27
|
+
declare function defineFieldPlugin<const F extends string, S extends StandardSchemaV1>(config: {
|
|
28
|
+
fieldType: F;
|
|
29
|
+
value: S;
|
|
30
|
+
}): FieldPlugin<F, S>;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { FieldPlugin, defineFieldPlugin };
|
|
33
|
+
//# sourceMappingURL=define-field-plugin.d.mts.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/helpers/define-field-plugin.ts
|
|
2
|
+
/**
|
|
3
|
+
* Declares a custom field plugin: both the `fieldType` literal and the value
|
|
4
|
+
* type infer from the single argument. `value` accepts any Standard Schema
|
|
5
|
+
* validator (Zod, Valibot, ArkType, or hand-written) and is retained for
|
|
6
|
+
* runtime use. A thin, strongly-typed identity helper — it does not validate.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* const colorPicker = defineFieldPlugin({
|
|
10
|
+
* fieldType: 'my-custom-color-picker',
|
|
11
|
+
* value: z.object({ color: z.string(), alpha: z.number() }),
|
|
12
|
+
* });
|
|
13
|
+
*/
|
|
14
|
+
function defineFieldPlugin(config) {
|
|
15
|
+
return config;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
//#endregion
|
|
19
|
+
export { defineFieldPlugin };
|
|
20
|
+
//# sourceMappingURL=define-field-plugin.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-field-plugin.mjs","names":[],"sources":["../../src/helpers/define-field-plugin.ts"],"sourcesContent":["import type { StandardSchemaV1 } from '@standard-schema/spec';\n\n/**\n * Binds a Storyblok custom field `field_type` to a\n * [Standard Schema](https://standardschema.dev) validator. The validator (`S`,\n * retained on `value`) supplies both the static value type\n * (`StandardSchemaV1.InferOutput<S>`) and a runtime handle, so a single\n * declaration serves types and (future) runtime validation.\n */\nexport interface FieldPlugin<\n F extends string = string,\n S extends StandardSchemaV1 = StandardSchemaV1,\n> {\n fieldType: F;\n value: S;\n}\n\n/**\n * Declares a custom field plugin: both the `fieldType` literal and the value\n * type infer from the single argument. `value` accepts any Standard Schema\n * validator (Zod, Valibot, ArkType, or hand-written) and is retained for\n * runtime use. A thin, strongly-typed identity helper — it does not validate.\n *\n * @example\n * const colorPicker = defineFieldPlugin({\n * fieldType: 'my-custom-color-picker',\n * value: z.object({ color: z.string(), alpha: z.number() }),\n * });\n */\nexport function defineFieldPlugin<\n const F extends string,\n S extends StandardSchemaV1,\n>(config: { fieldType: F; value: S }): FieldPlugin<F, S> {\n return config;\n}\n"],"mappings":";;;;;;;;;;;;;AA6BA,SAAgB,kBAGd,QAAuD;AACvD,QAAO"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/helpers/define-schema.ts
|
|
3
|
+
/**
|
|
4
|
+
* Typed identity wrapper for a schema object, consistent with the other
|
|
5
|
+
* `define*` helpers. Preserves the exact literal shape via `const` inference so
|
|
6
|
+
* {@link Schema} can derive block, datasource, and field-plugin types from
|
|
7
|
+
* `typeof schema`. Does not validate or transform.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* export const schema = defineSchema({
|
|
11
|
+
* blocks: { pageBlock, heroBlock },
|
|
12
|
+
* datasources: { colorsDatasource },
|
|
13
|
+
* fieldPlugins: { colorPicker },
|
|
14
|
+
* });
|
|
15
|
+
*/
|
|
16
|
+
function defineSchema(schema) {
|
|
17
|
+
return schema;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
exports.defineSchema = defineSchema;
|
|
22
|
+
//# sourceMappingURL=define-schema.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-schema.cjs","names":[],"sources":["../../src/helpers/define-schema.ts"],"sourcesContent":["import type { Block } from './define-block';\nimport type { Datasource } from './define-datasource';\nimport type { FieldPlugin } from './define-field-plugin';\n\n/** Minimal shape accepted by {@link defineSchema}; extra keys pass through unchanged. */\nexport interface SchemaConfig {\n blocks: Record<string, Block>;\n datasources?: Record<string, Datasource>;\n fieldPlugins?: Record<string, FieldPlugin>;\n}\n\n/**\n * Typed identity wrapper for a schema object, consistent with the other\n * `define*` helpers. Preserves the exact literal shape via `const` inference so\n * {@link Schema} can derive block, datasource, and field-plugin types from\n * `typeof schema`. Does not validate or transform.\n *\n * @example\n * export const schema = defineSchema({\n * blocks: { pageBlock, heroBlock },\n * datasources: { colorsDatasource },\n * fieldPlugins: { colorPicker },\n * });\n */\nexport function defineSchema<const T extends SchemaConfig>(schema: T): T {\n return schema;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAwBA,SAAgB,aAA2C,QAAc;AACvE,QAAO"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Block } from "../generated/types/block.cjs";
|
|
2
|
+
import { Datasource } from "./define-datasource.cjs";
|
|
3
|
+
import { FieldPlugin } from "./define-field-plugin.cjs";
|
|
4
|
+
|
|
5
|
+
//#region src/helpers/define-schema.d.ts
|
|
6
|
+
/** Minimal shape accepted by {@link defineSchema}; extra keys pass through unchanged. */
|
|
7
|
+
interface SchemaConfig {
|
|
8
|
+
blocks: Record<string, Block>;
|
|
9
|
+
datasources?: Record<string, Datasource>;
|
|
10
|
+
fieldPlugins?: Record<string, FieldPlugin>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Typed identity wrapper for a schema object, consistent with the other
|
|
14
|
+
* `define*` helpers. Preserves the exact literal shape via `const` inference so
|
|
15
|
+
* {@link Schema} can derive block, datasource, and field-plugin types from
|
|
16
|
+
* `typeof schema`. Does not validate or transform.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* export const schema = defineSchema({
|
|
20
|
+
* blocks: { pageBlock, heroBlock },
|
|
21
|
+
* datasources: { colorsDatasource },
|
|
22
|
+
* fieldPlugins: { colorPicker },
|
|
23
|
+
* });
|
|
24
|
+
*/
|
|
25
|
+
declare function defineSchema<const T extends SchemaConfig>(schema: T): T;
|
|
26
|
+
//#endregion
|
|
27
|
+
export { SchemaConfig, defineSchema };
|
|
28
|
+
//# sourceMappingURL=define-schema.d.cts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Block } from "../generated/types/block.mjs";
|
|
2
|
+
import { Datasource } from "./define-datasource.mjs";
|
|
3
|
+
import { FieldPlugin } from "./define-field-plugin.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/helpers/define-schema.d.ts
|
|
6
|
+
/** Minimal shape accepted by {@link defineSchema}; extra keys pass through unchanged. */
|
|
7
|
+
interface SchemaConfig {
|
|
8
|
+
blocks: Record<string, Block>;
|
|
9
|
+
datasources?: Record<string, Datasource>;
|
|
10
|
+
fieldPlugins?: Record<string, FieldPlugin>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Typed identity wrapper for a schema object, consistent with the other
|
|
14
|
+
* `define*` helpers. Preserves the exact literal shape via `const` inference so
|
|
15
|
+
* {@link Schema} can derive block, datasource, and field-plugin types from
|
|
16
|
+
* `typeof schema`. Does not validate or transform.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* export const schema = defineSchema({
|
|
20
|
+
* blocks: { pageBlock, heroBlock },
|
|
21
|
+
* datasources: { colorsDatasource },
|
|
22
|
+
* fieldPlugins: { colorPicker },
|
|
23
|
+
* });
|
|
24
|
+
*/
|
|
25
|
+
declare function defineSchema<const T extends SchemaConfig>(schema: T): T;
|
|
26
|
+
//#endregion
|
|
27
|
+
export { SchemaConfig, defineSchema };
|
|
28
|
+
//# sourceMappingURL=define-schema.d.mts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/helpers/define-schema.ts
|
|
2
|
+
/**
|
|
3
|
+
* Typed identity wrapper for a schema object, consistent with the other
|
|
4
|
+
* `define*` helpers. Preserves the exact literal shape via `const` inference so
|
|
5
|
+
* {@link Schema} can derive block, datasource, and field-plugin types from
|
|
6
|
+
* `typeof schema`. Does not validate or transform.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* export const schema = defineSchema({
|
|
10
|
+
* blocks: { pageBlock, heroBlock },
|
|
11
|
+
* datasources: { colorsDatasource },
|
|
12
|
+
* fieldPlugins: { colorPicker },
|
|
13
|
+
* });
|
|
14
|
+
*/
|
|
15
|
+
function defineSchema(schema) {
|
|
16
|
+
return schema;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
export { defineSchema };
|
|
21
|
+
//# sourceMappingURL=define-schema.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-schema.mjs","names":[],"sources":["../../src/helpers/define-schema.ts"],"sourcesContent":["import type { Block } from './define-block';\nimport type { Datasource } from './define-datasource';\nimport type { FieldPlugin } from './define-field-plugin';\n\n/** Minimal shape accepted by {@link defineSchema}; extra keys pass through unchanged. */\nexport interface SchemaConfig {\n blocks: Record<string, Block>;\n datasources?: Record<string, Datasource>;\n fieldPlugins?: Record<string, FieldPlugin>;\n}\n\n/**\n * Typed identity wrapper for a schema object, consistent with the other\n * `define*` helpers. Preserves the exact literal shape via `const` inference so\n * {@link Schema} can derive block, datasource, and field-plugin types from\n * `typeof schema`. Does not validate or transform.\n *\n * @example\n * export const schema = defineSchema({\n * blocks: { pageBlock, heroBlock },\n * datasources: { colorsDatasource },\n * fieldPlugins: { colorPicker },\n * });\n */\nexport function defineSchema<const T extends SchemaConfig>(schema: T): T {\n return schema;\n}\n"],"mappings":";;;;;;;;;;;;;;AAwBA,SAAgB,aAA2C,QAAc;AACvE,QAAO"}
|