@sanity/schema 5.0.0-next.0-9b570ece82-202507150640 → 5.0.0-next.6

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/lib/index.mjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/legacy/types/utils.ts","../src/legacy/types/any.ts","../src/legacy/types/array.ts","../src/legacy/preview/deprecationUtils.ts","../src/legacy/preview/JSONStringifyHuman.ts","../src/legacy/preview/fallbackPrepare.ts","../src/legacy/preview/portableText.ts","../src/legacy/preview/guessPreviewConfig.ts","../src/legacy/preview/createPreviewGetter.ts","../src/legacy/types/blocks/defaults.ts","../src/legacy/types/blocks/block.ts","../src/legacy/types/blocks/span.ts","../src/legacy/preview/primitivePreview.ts","../src/legacy/types/boolean.ts","../src/legacy/types/crossDatasetReference.ts","../src/legacy/types/date.ts","../src/legacy/types/datetime.ts","../src/legacy/ordering/guessOrderingConfig.ts","../src/legacy/searchConfig/normalize.ts","../src/legacy/types/object.ts","../src/legacy/types/document.ts","../src/legacy/types/email.ts","../src/legacy/types/file.ts","../src/legacy/types/globalDocumentReference.ts","../src/legacy/types/image/fieldDefs.ts","../src/legacy/types/image.ts","../src/legacy/types/number.ts","../src/legacy/types/reference.ts","../src/legacy/types/string.ts","../src/legacy/types/text.ts","../src/legacy/types/url.ts","../src/legacy/Schema.ts","../src/_exports/index.ts"],"sourcesContent":["interface Config {\n enumerable?: boolean\n writable?: boolean\n}\nexport function lazyGetter(target: any, key: any, getter: any, config: Config = {}) {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: config.enumerable !== false,\n get() {\n const val = getter()\n Object.defineProperty(target, key, {\n value: val,\n writable: Boolean(config.writable),\n configurable: false,\n })\n return val\n },\n })\n return target\n}\n\nexport function hiddenGetter(target: any, key: string, value: unknown) {\n Object.defineProperty(target, key, {\n enumerable: false,\n writable: false,\n configurable: false,\n value,\n })\n}\n\n//\n// const o = lazyGetter({}, 'expensive', function() {\n// console.log('doing expensive calculations')\n// return 'RESULT OF EXPENSIVE'\n// })\n//\n// console.log(o.expensive)\n// console.log(o.expensive)\n// console.log(o.expensive)\n","import {omit, pick} from 'lodash'\n\nimport {DEFAULT_OVERRIDEABLE_FIELDS, OWN_PROPS_NAME} from './constants'\nimport {hiddenGetter} from './utils'\n\nconst OVERRIDABLE_FIELDS = [...DEFAULT_OVERRIDEABLE_FIELDS]\n\nconst ANY_CORE = {\n name: 'any',\n type: null,\n jsonType: 'any',\n}\n\nexport const AnyType = {\n get() {\n return ANY_CORE\n },\n extend(subTypeDef: any, extendMember: any) {\n const ownProps = {\n ...subTypeDef,\n of: subTypeDef.of.map((fieldDef: any) => {\n return {\n name: fieldDef.name,\n type: extendMember(omit(fieldDef, 'name')),\n }\n }),\n }\n\n const parsed = Object.assign(pick(ANY_CORE, OVERRIDABLE_FIELDS), ownProps, {\n type: ANY_CORE,\n })\n\n hiddenGetter(parsed, OWN_PROPS_NAME, ownProps)\n\n return subtype(parsed)\n\n function subtype(parent: any) {\n return {\n get() {\n return parent\n },\n extend: (extensionDef: any) => {\n if (extensionDef.of) {\n throw new Error('Cannot override `of` property of subtypes of \"array\"')\n }\n const subOwnProps = pick(extensionDef, OVERRIDABLE_FIELDS)\n const current = Object.assign({}, parent, subOwnProps, {\n type: parent,\n })\n hiddenGetter(current, OWN_PROPS_NAME, subOwnProps)\n return subtype(current)\n },\n }\n }\n },\n}\n","import {pick} from 'lodash'\n\nimport {DEFAULT_OVERRIDEABLE_FIELDS, OWN_PROPS_NAME} from './constants'\nimport {hiddenGetter, lazyGetter} from './utils'\n\nconst OVERRIDABLE_FIELDS = [...DEFAULT_OVERRIDEABLE_FIELDS]\n\nconst ARRAY_CORE = {\n name: 'array',\n type: null,\n jsonType: 'array',\n of: [],\n}\n\nexport const ArrayType = {\n get() {\n return ARRAY_CORE\n },\n extend(subTypeDef: any, createMemberType: any) {\n const parsed = Object.assign(pick(ARRAY_CORE, OVERRIDABLE_FIELDS), subTypeDef, {\n type: ARRAY_CORE,\n })\n lazyGetter(parsed, 'of', () => {\n return subTypeDef.of.map((ofTypeDef: any) => {\n return createMemberType(ofTypeDef)\n })\n })\n lazyGetter(parsed, OWN_PROPS_NAME, () => ({...subTypeDef, of: parsed.of}), {\n enumerable: false,\n writable: false,\n })\n\n return subtype(parsed)\n\n function subtype(parent: any) {\n return {\n get() {\n return parent\n },\n extend: (extensionDef: any) => {\n if (extensionDef.of) {\n throw new Error('Cannot override `of` property of subtypes of \"array\"')\n }\n const ownProps = pick(extensionDef, OVERRIDABLE_FIELDS)\n const current = Object.assign({}, parent, ownProps, {\n type: parent,\n })\n hiddenGetter(current, OWN_PROPS_NAME, ownProps)\n return subtype(current)\n },\n }\n }\n },\n}\n","export function warnIfPreviewOnOptions(type: any) {\n if (type.options && type.options.preview) {\n console.warn(`Heads up! The preview config is no longer defined on \"options\", but instead on the type/field itself.\nPlease move {options: {preview: ...}} to {..., preview: ...} on the type/field definition of \"${type.name}\".\n`)\n }\n}\n\nexport function warnIfPreviewHasFields(type: any) {\n const preview = type.preview || (type.options || {}).preview\n if (preview && 'fields' in preview) {\n console.warn(`Heads up! \"preview.fields\" should be renamed to \"preview.select\". Please update the preview config for \"${type.name}\".\n`)\n }\n}\n","import {pick} from 'lodash'\n\nfunction isEmpty(object: any) {\n for (const key in object) {\n if (object.hasOwnProperty(key)) {\n return false\n }\n }\n return true\n}\n\nfunction _stringify(value: any, options: any, depth: any): any {\n if (depth > options.maxDepth) {\n return '...'\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[empty]'\n }\n const capLength = Math.max(value.length - options.maxBreadth)\n const asString: any = value\n .slice(0, options.maxBreadth)\n .map((item, index) => _stringify(item, options, depth + 1))\n .concat(capLength > 0 ? `…+${capLength}` : [])\n .join(', ')\n\n return depth === 0 ? asString : `[${asString}]`\n }\n if (typeof value === 'object' && value !== null) {\n const keys = Object.keys(value).filter(\n (key) => !options.ignoreKeys.includes(key) && typeof value[key] !== 'undefined',\n )\n\n if (isEmpty(pick(value, keys))) {\n return '{empty}'\n }\n\n const asString = keys\n .slice(0, options.maxBreadth)\n .map((key) => `${key}: ${_stringify(value[key], options, depth + 1)}`)\n .join(', ')\n\n return depth === 0 ? asString : `{${asString}}`\n }\n const asString = String(value)\n return asString === '' ? '\"\"' : asString\n}\n\nexport default function stringify(\n value: any,\n options: {maxDepth?: number; maxBreadth?: number; ignoreKeys?: string[]} = {},\n) {\n const opts = {\n maxDepth: 'maxDepth' in options ? options.maxDepth : 2,\n maxBreadth: 'maxBreadth' in options ? options.maxBreadth : 2,\n ignoreKeys: 'ignoreKeys' in options ? options.ignoreKeys : [],\n }\n return _stringify(value, opts, 0)\n}\n","import {pick} from 'lodash'\n\nimport stringify from './JSONStringifyHuman'\n\nconst OPTIONS = {\n maxEntries: 2,\n maxDepth: 2,\n maxBreadth: 2,\n ignoreKeys: ['_id', '_type', '_key', '_ref'],\n}\n\nexport function createFallbackPrepare(fieldNames: any) {\n return (value: any) => ({\n title: stringify(pick(value, fieldNames), OPTIONS),\n })\n}\n","type FieldDef = {\n type: string\n name: string\n of?: {type: string}[]\n}\n\nexport function isBlockField(field: FieldDef): boolean {\n return (\n (field.type === 'array' && field.of && field.of.some((member) => member.type === 'block')) ||\n false\n )\n}\n","import arrify from 'arrify'\nimport {isUndefined, omitBy} from 'lodash'\n\nimport {createFallbackPrepare} from './fallbackPrepare'\nimport {isBlockField} from './portableText'\n\nconst TITLE_CANDIDATES = ['title', 'name', 'label', 'heading', 'header', 'caption']\nconst DESCRIPTION_CANDIDATES = ['description', ...TITLE_CANDIDATES]\n\nfunction fieldHasReferenceTo(fieldDef: any, refType: any) {\n return arrify(fieldDef.to || []).some((memberTypeDef: any) => memberTypeDef.type === refType)\n}\n\nfunction isImageAssetField(fieldDef: any) {\n return fieldHasReferenceTo(fieldDef, 'sanity.imageAsset')\n}\n\nfunction resolveImageAssetPath(typeDef: any) {\n const fields = typeDef.fields || []\n const imageAssetField = fields.find(isImageAssetField)\n if (imageAssetField) {\n return imageAssetField.name\n }\n const fieldWithImageAsset = fields.find((fieldDef: any) =>\n (fieldDef.fields || []).some(isImageAssetField),\n )\n\n return fieldWithImageAsset ? `${fieldWithImageAsset.name}.asset` : undefined\n}\n\nfunction isFileAssetField(fieldDef: any) {\n return fieldHasReferenceTo(fieldDef, 'sanity.fileAsset')\n}\n\nfunction resolveFileAssetPath(typeDef: any) {\n const fields = typeDef.fields || []\n const assetField = fields.find(isFileAssetField)\n if (assetField) {\n return assetField.name\n }\n const fieldWithFileAsset = fields.find((fieldDef: any) =>\n (fieldDef.fields || []).some(isFileAssetField),\n )\n return fieldWithFileAsset ? `${fieldWithFileAsset.name}.asset` : undefined\n}\n\nexport default function guessPreviewFields(rawObjectTypeDef: any) {\n const objectTypeDef = {fields: [], ...rawObjectTypeDef}\n\n const stringFieldNames = objectTypeDef.fields\n .filter((field: any) => field.type === 'string')\n .map((field: any) => field.name)\n\n const blockFieldNames = objectTypeDef.fields.filter(isBlockField).map((field: any) => field.name)\n\n // Check if we have fields with names that is listed in candidate fields\n let titleField = TITLE_CANDIDATES.find(\n (candidate) => stringFieldNames.includes(candidate) || blockFieldNames.includes(candidate),\n )\n\n let descField = DESCRIPTION_CANDIDATES.find(\n (candidate) =>\n candidate !== titleField &&\n (stringFieldNames.includes(candidate) || blockFieldNames.includes(candidate)),\n )\n\n if (!titleField) {\n // Pick first defined string field\n titleField = stringFieldNames[0] || blockFieldNames[0]\n // Pick next as desc\n descField = stringFieldNames[1] || blockFieldNames[1]\n }\n\n const mediaField = objectTypeDef.fields.find((field: any) => field.type === 'image')\n\n const imageAssetPath = resolveImageAssetPath(objectTypeDef)\n\n if (!titleField) {\n const fileAssetPath = resolveFileAssetPath(objectTypeDef)\n if (fileAssetPath) {\n titleField = `${fileAssetPath}.originalFilename`\n }\n if (imageAssetPath) {\n titleField = `${imageAssetPath}.originalFilename`\n }\n }\n\n if (!titleField && !imageAssetPath) {\n // last resort, pick all fields and concat them\n const fieldNames = objectTypeDef.fields.map((field: any) => field.name)\n const fieldMapping = fieldNames.reduce((acc: any, fieldName: any) => {\n acc[fieldName] = fieldName\n return acc\n }, {})\n\n return {\n select: fieldMapping,\n prepare: createFallbackPrepare(fieldNames),\n }\n }\n\n const select = omitBy(\n {\n title: titleField,\n description: descField,\n media: mediaField ? mediaField.name : imageAssetPath,\n },\n isUndefined,\n )\n\n return {\n select: select,\n }\n}\n","import {pick} from 'lodash'\n\nimport {warnIfPreviewHasFields, warnIfPreviewOnOptions} from './deprecationUtils'\nimport guessPreviewConfig from './guessPreviewConfig'\n\nfunction parseSelection(selection: any) {\n return selection.reduce((acc: any, field: any) => {\n acc[field] = field\n return acc\n }, {})\n}\n\nfunction parsePreview(preview: any) {\n if (!preview) {\n return preview\n }\n const select = preview.select || preview.fields || {}\n if (Array.isArray(select)) {\n return {\n ...pick(preview, ['prepare', 'component']),\n select: parseSelection(select),\n }\n }\n return {\n ...pick(preview, ['prepare', 'component']),\n select,\n }\n}\n\nexport default function createPreviewGetter(objectTypeDef: any) {\n return function previewGetter() {\n warnIfPreviewOnOptions(objectTypeDef)\n warnIfPreviewHasFields(objectTypeDef)\n const preview = parsePreview(objectTypeDef.preview || (objectTypeDef.options || {}).preview)\n return preview || guessPreviewConfig(objectTypeDef)\n }\n}\n","export const DEFAULT_LINK_ANNOTATION = {\n type: 'object',\n name: 'link',\n title: 'Link',\n i18nTitleKey: 'inputs.portable-text.annotation.link',\n options: {\n modal: {type: 'popover'},\n },\n fields: [\n {\n name: 'href',\n type: 'url',\n title: 'Link',\n description: 'A valid web, email, phone, or relative link.',\n validation: (Rule: any) =>\n Rule.uri({\n scheme: ['http', 'https', 'tel', 'mailto'],\n allowRelative: true,\n }),\n },\n ],\n}\n\nexport const DEFAULT_TEXT_FIELD = {\n type: 'text',\n name: 'text',\n title: 'Text',\n}\n\nexport const DEFAULT_MARKS_FIELD = {\n name: 'marks',\n type: 'array',\n of: [{type: 'string'}],\n title: 'Marks',\n}\n\nexport const LIST_TYPES = {\n bullet: {\n title: 'Bulleted list',\n value: 'bullet',\n i18nTitleKey: 'inputs.portable-text.list-type.bullet',\n },\n numbered: {\n title: 'Numbered list',\n value: 'number',\n i18nTitleKey: 'inputs.portable-text.list-type.number',\n },\n}\n\nexport const DEFAULT_LIST_TYPES = [LIST_TYPES.bullet, LIST_TYPES.numbered]\n\nexport const BLOCK_STYLES = {\n normal: {title: 'Normal', value: 'normal', i18nTitleKey: 'inputs.portable-text.style.normal'},\n h1: {title: 'Heading 1', value: 'h1', i18nTitleKey: 'inputs.portable-text.style.h1'},\n h2: {title: 'Heading 2', value: 'h2', i18nTitleKey: 'inputs.portable-text.style.h2'},\n h3: {title: 'Heading 3', value: 'h3', i18nTitleKey: 'inputs.portable-text.style.h3'},\n h4: {title: 'Heading 4', value: 'h4', i18nTitleKey: 'inputs.portable-text.style.h4'},\n h5: {title: 'Heading 5', value: 'h5', i18nTitleKey: 'inputs.portable-text.style.h5'},\n h6: {title: 'Heading 6', value: 'h6', i18nTitleKey: 'inputs.portable-text.style.h6'},\n blockquote: {\n title: 'Quote',\n value: 'blockquote',\n i18nTitleKey: 'inputs.portable-text.style.quote',\n },\n}\n\nexport const DEFAULT_BLOCK_STYLES = [\n BLOCK_STYLES.normal,\n BLOCK_STYLES.h1,\n BLOCK_STYLES.h2,\n BLOCK_STYLES.h3,\n BLOCK_STYLES.h4,\n BLOCK_STYLES.h5,\n BLOCK_STYLES.h6,\n BLOCK_STYLES.blockquote,\n]\n\nexport const DECORATOR_STRONG = {\n title: 'Strong',\n value: 'strong',\n i18nTitleKey: 'inputs.portable-text.decorator.strong',\n}\nexport const DECORATOR_EMPHASIS = {\n title: 'Italic',\n value: 'em',\n i18nTitleKey: 'inputs.portable-text.decorator.emphasis',\n}\nexport const DECORATOR_CODE = {\n title: 'Code',\n value: 'code',\n i18nTitleKey: 'inputs.portable-text.decorator.code',\n}\nexport const DECORATOR_UNDERLINE = {\n title: 'Underline',\n value: 'underline',\n i18nTitleKey: 'inputs.portable-text.decorator.underline',\n}\nexport const DECORATOR_STRIKE = {\n title: 'Strike',\n value: 'strike-through',\n i18nTitleKey: 'inputs.portable-text.decorator.strike-through',\n}\n\nexport const DECORATORS = {\n strong: DECORATOR_STRONG,\n em: DECORATOR_EMPHASIS,\n code: DECORATOR_CODE,\n underline: DECORATOR_UNDERLINE,\n strikeThrough: DECORATOR_STRIKE,\n}\n\nexport const DEFAULT_DECORATORS = [\n DECORATORS.strong,\n DECORATORS.em,\n DECORATORS.code,\n DECORATORS.underline,\n DECORATORS.strikeThrough,\n]\n","import {pick} from 'lodash'\n\nimport createPreviewGetter from '../../preview/createPreviewGetter'\nimport {OWN_PROPS_NAME} from '../constants'\nimport {hiddenGetter, lazyGetter} from '../utils'\nimport {\n BLOCK_STYLES,\n DEFAULT_BLOCK_STYLES,\n DEFAULT_DECORATORS,\n DEFAULT_LINK_ANNOTATION,\n DEFAULT_LIST_TYPES,\n DEFAULT_MARKS_FIELD,\n DEFAULT_TEXT_FIELD,\n} from './defaults'\n\nconst INHERITED_FIELDS = [\n 'type',\n 'name',\n 'title',\n 'jsonType',\n 'description',\n 'options',\n 'fieldsets',\n 'icon',\n]\n\nconst BLOCK_CORE = {\n name: 'block',\n title: 'Block',\n type: null,\n jsonType: 'object',\n}\n\nconst DEFAULT_OPTIONS = {}\n\nexport const BlockType = {\n get() {\n return BLOCK_CORE\n },\n extend(subTypeDef: any, extendMember: any) {\n const options = {...(subTypeDef.options || DEFAULT_OPTIONS)}\n\n const {marks, styles, lists, of, ...rest} = subTypeDef\n\n const childrenField = createChildrenField(marks, of)\n const styleField = createStyleField(styles)\n const listItemField = createListItemField(lists)\n\n const markDefsField = {\n name: 'markDefs',\n title: 'Mark definitions',\n type: 'array',\n of: marks?.annotations || DEFAULT_ANNOTATIONS,\n }\n\n const levelField = {\n name: 'level',\n title: 'Indentation',\n type: 'number',\n }\n\n // NOTE: if you update this (EVEN THE ORDER OF FIELDS) you _NEED TO_ also\n // update `BlockSchemaType`, `isBlockSchemaType` and similar in `@sanity/types`\n const fields = [childrenField, styleField, listItemField, markDefsField, levelField].concat(\n subTypeDef.fields || [],\n )\n\n const ownProps = {...rest, options}\n\n const parsed = Object.assign(pick(BLOCK_CORE, INHERITED_FIELDS), ownProps, {\n type: BLOCK_CORE,\n })\n\n lazyGetter(parsed, 'fields', () => {\n return fields.map((fieldDef) => {\n const {name, ...type} = fieldDef\n return {\n name: name,\n type: extendMember(type),\n }\n })\n })\n\n lazyGetter(parsed, 'preview', createPreviewGetter(subTypeDef))\n\n lazyGetter(\n parsed,\n OWN_PROPS_NAME,\n () => ({\n ...ownProps,\n fields: parsed.fields,\n preview: parsed.preview,\n }),\n {enumerable: false, writable: false},\n )\n\n return subtype(parsed)\n\n function subtype(parent: any) {\n return {\n get() {\n return parent\n },\n extend: (extensionDef: any) => {\n if (extensionDef.fields) {\n throw new Error('Cannot override `fields` of subtypes of \"block\"')\n }\n const subOwnProps = pick(extensionDef, INHERITED_FIELDS)\n const current = Object.assign({}, parent, subOwnProps, {\n type: parent,\n })\n hiddenGetter(current, OWN_PROPS_NAME, subOwnProps)\n return subtype(current)\n },\n }\n }\n },\n}\n\nfunction ensureNormalStyle(styles: any) {\n return styles.some((style: any) => style.value === 'normal')\n ? styles\n : [BLOCK_STYLES.normal, ...styles]\n}\n\nfunction createStyleField(styles: any) {\n return {\n name: 'style',\n title: 'Style',\n type: 'string',\n options: {\n list: ensureNormalStyle(styles || DEFAULT_BLOCK_STYLES),\n },\n }\n}\n\nfunction createListItemField(lists: any) {\n return {\n name: 'listItem',\n title: 'List type',\n type: 'string',\n options: {\n list: lists || DEFAULT_LIST_TYPES,\n },\n }\n}\n\nconst DEFAULT_ANNOTATIONS = [DEFAULT_LINK_ANNOTATION]\n\nfunction createChildrenField(marks: any, of = []) {\n return {\n name: 'children',\n title: 'Content',\n type: 'array',\n of: [\n {\n type: 'span',\n fields: [DEFAULT_TEXT_FIELD, DEFAULT_MARKS_FIELD],\n annotations: marks && marks.annotations ? marks.annotations : DEFAULT_ANNOTATIONS,\n decorators: marks && marks.decorators ? marks.decorators : DEFAULT_DECORATORS,\n },\n ...of.filter((memberType: any) => memberType.type !== 'span'),\n ],\n }\n}\n","import {pick} from 'lodash'\n\nimport createPreviewGetter from '../../preview/createPreviewGetter'\nimport {OWN_PROPS_NAME} from '../constants'\nimport {hiddenGetter, lazyGetter} from '../utils'\n\nconst INHERITED_FIELDS = [\n 'type',\n 'name',\n 'title',\n 'jsonType',\n 'description',\n 'options',\n 'fieldsets',\n 'icon',\n]\n\nconst SPAN_CORE = {\n name: 'span',\n title: 'Span',\n type: null,\n jsonType: 'object',\n}\n\nconst MARKS_FIELD = {\n name: 'marks',\n title: 'Marks',\n type: 'array',\n of: [{type: 'string'}],\n}\n\nconst TEXT_FIELD = {\n name: 'text',\n title: 'Text',\n type: 'string',\n}\n\nconst DEFAULT_OPTIONS = {}\n\nexport const SpanType = {\n get() {\n return SPAN_CORE\n },\n extend(subTypeDef: any, extendMember: any) {\n const options = {...(subTypeDef.options || DEFAULT_OPTIONS)}\n\n const {annotations = [], marks = []} = subTypeDef\n\n // NOTE: if you update this please also update `SpanSchemaType` in`@sanity/types`\n const fields = [MARKS_FIELD, TEXT_FIELD]\n\n const ownProps = {...subTypeDef, options}\n\n const parsed = Object.assign(pick(SPAN_CORE, INHERITED_FIELDS), ownProps, {\n type: SPAN_CORE,\n })\n\n lazyGetter(parsed, 'fields', () => {\n return fields.map((fieldDef) => {\n const {name, ...type} = fieldDef\n return {\n name: name,\n type: extendMember(type),\n }\n })\n })\n\n lazyGetter(parsed, 'annotations', () => annotations.map(extendMember))\n lazyGetter(parsed, 'marks', () => marks.map(extendMember))\n\n lazyGetter(parsed, 'preview', createPreviewGetter(subTypeDef))\n\n lazyGetter(\n parsed,\n OWN_PROPS_NAME,\n () => ({\n ...ownProps,\n fields: parsed.fields,\n annotations: parsed.annotations,\n marks: parsed.marks,\n preview: parsed.preview,\n }),\n {enumerable: false, writable: false},\n )\n\n return subtype(parsed)\n\n function subtype(parent: any) {\n return {\n get() {\n return parent\n },\n extend: (extensionDef: any) => {\n if (extensionDef.fields) {\n throw new Error('Cannot override `fields` of subtypes of \"span\"')\n }\n const subOwnProps = pick(extensionDef, INHERITED_FIELDS)\n const current = Object.assign({}, parent, subOwnProps, {\n type: parent,\n })\n hiddenGetter(current, OWN_PROPS_NAME, subOwnProps)\n return subtype(current)\n },\n }\n }\n },\n}\n","export default {\n prepare: (val: any) => ({title: String(val)}),\n}\n","import {pick} from 'lodash'\n\nimport primitivePreview from '../preview/primitivePreview'\nimport {DEFAULT_OVERRIDEABLE_FIELDS, OWN_PROPS_NAME} from './constants'\nimport {hiddenGetter} from './utils'\n\nconst OVERRIDABLE_FIELDS = [...DEFAULT_OVERRIDEABLE_FIELDS]\n\nconst BOOLEAN_CORE = {\n name: 'boolean',\n title: 'Boolean',\n type: null,\n jsonType: 'boolean',\n}\n\nexport const BooleanType = {\n get() {\n return BOOLEAN_CORE\n },\n extend(subTypeDef: any) {\n const ownProps = {\n ...subTypeDef,\n preview: primitivePreview,\n }\n const parsed = Object.assign(pick(BOOLEAN_CORE, OVERRIDABLE_FIELDS), ownProps, {\n type: BOOLEAN_CORE,\n })\n\n hiddenGetter(parsed, OWN_PROPS_NAME, ownProps)\n\n return subtype(parsed)\n\n function subtype(parent: any) {\n return {\n get() {\n return parent\n },\n extend: (extensionDef: any) => {\n const subOwnProps = pick(extensionDef, OVERRIDABLE_FIELDS)\n const current = Object.assign({}, parent, subOwnProps, {\n type: parent,\n })\n hiddenGetter(current, OWN_PROPS_NAME, subOwnProps)\n return subtype(current)\n },\n }\n }\n },\n}\n","import arrify from 'arrify'\nimport {capitalize, pick} from 'lodash'\n\nimport {resolveSearchConfigForBaseFieldPaths} from '../searchConfig/resolve'\nimport {DEFAULT_OVERRIDEABLE_FIELDS, OWN_PROPS_NAME} from './constants'\nimport {hiddenGetter, lazyGetter} from './utils'\n\nexport const REF_FIELD = {\n name: '_ref',\n title: 'Referenced document ID',\n type: 'string',\n}\n\nexport const WEAK_FIELD = {\n name: '_weak',\n title: 'Weak reference marker',\n type: 'boolean',\n}\n\nconst DATASET_FIELD = {\n name: '_dataset',\n title: 'Target dataset',\n type: 'string',\n}\n\nconst PROJECT_ID_FIELD = {\n name: '_projectId',\n title: 'Target project ID',\n type: 'string',\n hidden: true,\n}\n\nconst REFERENCE_FIELDS = [REF_FIELD, WEAK_FIELD, DATASET_FIELD, PROJECT_ID_FIELD]\n\nconst OVERRIDABLE_FIELDS = [...DEFAULT_OVERRIDEABLE_FIELDS]\n\nconst CROSS_DATASET_REFERENCE_CORE = {\n name: 'crossDatasetReference',\n type: null,\n jsonType: 'object',\n}\n\nfunction humanize(arr: any, conjunction: any) {\n const len = arr.length\n if (len === 1) {\n return arr[0]\n }\n const first = arr.slice(0, len - 1)\n const last = arr[len - 1]\n return `${first.join(', ')} ${conjunction} ${last}`\n}\n\nfunction buildTitle(type: any) {\n if (!type.to || type.to.length === 0) {\n return 'Cross dataset Reference'\n }\n return `Cross dataset reference to ${humanize(\n arrify(type.to).map((toType: any) => toType.title || capitalize(toType.type)),\n 'or',\n ).toLowerCase()}`\n}\n\nexport const CrossDatasetReferenceType = {\n get() {\n return CROSS_DATASET_REFERENCE_CORE\n },\n extend(subTypeDef: any, createMemberType: any) {\n if (!subTypeDef.to) {\n throw new Error(\n `Missing \"to\" field in cross dataset reference definition. Check the type ${subTypeDef.name}`,\n )\n }\n const parsed = Object.assign(\n pick(CROSS_DATASET_REFERENCE_CORE, OVERRIDABLE_FIELDS),\n subTypeDef,\n {\n type: CROSS_DATASET_REFERENCE_CORE,\n },\n )\n\n lazyGetter(parsed, 'fields', () => {\n return REFERENCE_FIELDS.map((fieldDef) => {\n const {name, ...type} = fieldDef\n return {\n name: name,\n type: createMemberType(type),\n }\n })\n })\n\n lazyGetter(parsed, 'to', () => {\n return arrify(subTypeDef.to).map((toType: any) => {\n return {\n ...toType,\n // eslint-disable-next-line camelcase\n __experimental_search: resolveSearchConfigForBaseFieldPaths(toType),\n }\n })\n })\n\n lazyGetter(parsed, 'title', () => subTypeDef.title || buildTitle(parsed))\n\n lazyGetter(\n parsed,\n OWN_PROPS_NAME,\n () => ({\n ...subTypeDef,\n fields: parsed.fields,\n to: parsed.to,\n title: parsed.title,\n }),\n {enumerable: false, writable: false},\n )\n\n return subtype(parsed)\n\n function subtype(parent: any) {\n return {\n get() {\n return parent\n },\n extend: (extensionDef: any) => {\n if (extensionDef.of) {\n throw new Error('Cannot override `of` of subtypes of \"reference\"')\n }\n const ownProps = pick(extensionDef, OVERRIDABLE_FIELDS)\n const current = Object.assign({}, parent, ownProps, {\n type: parent,\n })\n hiddenGetter(current, OWN_PROPS_NAME, ownProps)\n return subtype(current)\n },\n }\n }\n },\n}\n","import {pick} from 'lodash'\n\nimport primitivePreview from '../preview/primitivePreview'\nimport {DEFAULT_OVERRIDEABLE_FIELDS, OWN_PROPS_NAME} from './constants'\nimport {hiddenGetter} from './utils'\n\nconst OVERRIDABLE_FIELDS = [...DEFAULT_OVERRIDEABLE_FIELDS]\n\nconst DATE_CORE = {\n name: 'date',\n title: 'Datetime',\n type: null,\n jsonType: 'string',\n}\n\nexport const DateType = {\n get() {\n return DATE_CORE\n },\n extend(subTypeDef: any) {\n const ownProps = {\n ...subTypeDef,\n preview: primitivePreview,\n }\n const parsed = Object.assign(pick(DATE_CORE, OVERRIDABLE_FIELDS), ownProps, {\n type: DATE_CORE,\n })\n\n hiddenGetter(parsed, OWN_PROPS_NAME, ownProps)\n\n return subtype(parsed)\n\n function subtype(parent: any) {\n return {\n get() {\n return parent\n },\n extend: (extensionDef: any) => {\n const subOwnProps = pick(extensionDef, OVERRIDABLE_FIELDS)\n const current = Object.assign({}, parent, subOwnProps, {\n type: parent,\n })\n hiddenGetter(current, OWN_PROPS_NAME, subOwnProps)\n return subtype(current)\n },\n }\n }\n },\n}\n","import {pick} from 'lodash'\n\nimport primitivePreview from '../preview/primitivePreview'\nimport {DEFAULT_OVERRIDEABLE_FIELDS, OWN_PROPS_NAME} from './constants'\nimport {hiddenGetter} from './utils'\n\nconst OVERRIDABLE_FIELDS = [...DEFAULT_OVERRIDEABLE_FIELDS]\n\nconst DATETIME_CORE = {\n name: 'datetime',\n title: 'Datetime',\n type: null,\n jsonType: 'string',\n}\n\nexport const DateTimeType = {\n get() {\n return DATETIME_CORE\n },\n extend(subTypeDef: any) {\n const ownProps = {\n ...subTypeDef,\n preview: primitivePreview,\n }\n const parsed = Object.assign(pick(DATETIME_CORE, OVERRIDABLE_FIELDS), ownProps, {\n type: DATETIME_CORE,\n })\n hiddenGetter(parsed, OWN_PROPS_NAME, ownProps)\n return subtype(parsed)\n\n function subtype(parent: any) {\n return {\n get() {\n return parent\n },\n extend: (extensionDef: any) => {\n const subOwnProps = pick(extensionDef, OVERRIDABLE_FIELDS)\n const current = Object.assign({}, parent, subOwnProps, {\n type: parent,\n })\n hiddenGetter(current, OWN_PROPS_NAME, subOwnProps)\n return subtype(current)\n },\n }\n }\n },\n}\n","import {type SortOrdering} from '@sanity/types'\nimport {capitalize, startCase} from 'lodash'\n\nconst CANDIDATES = ['title', 'name', 'label', 'heading', 'header', 'caption', 'description']\n\nconst PRIMITIVES = ['string', 'boolean', 'number']\n\nconst isPrimitive = (field: any) => PRIMITIVES.includes(field.type)\n\nexport default function guessOrderingConfig(objectTypeDef: any): SortOrdering[] {\n let candidates = CANDIDATES.filter((candidate) =>\n objectTypeDef.fields.some((field: any) => isPrimitive(field) && field.name === candidate),\n )\n\n // None of the candidates were found, fallback to all fields\n if (candidates.length === 0) {\n candidates = objectTypeDef.fields.filter(isPrimitive).map((field: any) => field.name)\n }\n\n return candidates.map(\n (name): SortOrdering => ({\n name: name,\n i18n: {\n title: {key: `default-orderings.${name}`, ns: 'studio'},\n },\n title: capitalize(startCase(name)),\n by: [{field: name, direction: 'asc'}],\n }),\n )\n}\n","import {isPlainObject, toPath} from 'lodash'\n\nexport function normalizeSearchConfigs(configs: any) {\n if (!Array.isArray(configs)) {\n throw new Error(\n 'The search config of a document type must be an array of search config objects',\n )\n }\n return configs.map((conf) => {\n if (conf === 'defaults') {\n return conf\n }\n if (!isPlainObject(conf)) {\n throw new Error('Search config must be an object of {path: string, weight: number}')\n }\n return {\n weight: 'weight' in conf ? conf.weight : 1,\n path: toPath(conf.path),\n mapWith: typeof conf.mapWith === 'string' ? conf.mapWith : undefined,\n }\n })\n}\n","import {\n type FieldGroup,\n type FieldGroupDefinition,\n type Fieldset,\n type FieldsetDefinition,\n type ObjectDefinition,\n type ObjectField,\n} from '@sanity/types'\nimport {castArray, flatMap, pick, startCase} from 'lodash'\n\nimport guessOrderingConfig from '../ordering/guessOrderingConfig'\nimport createPreviewGetter from '../preview/createPreviewGetter'\nimport {normalizeSearchConfigs} from '../searchConfig/normalize'\nimport {resolveSearchConfig} from '../searchConfig/resolve'\nimport {DEFAULT_OVERRIDEABLE_FIELDS, OWN_PROPS_NAME} from './constants'\nimport {hiddenGetter, lazyGetter} from './utils'\n\nconst OVERRIDABLE_FIELDS = [\n ...DEFAULT_OVERRIDEABLE_FIELDS,\n 'orderings',\n '__experimental_search',\n 'blockEditor',\n 'icon',\n]\n\nexport const ObjectType = {\n get() {\n return {\n name: 'object',\n title: 'Object',\n type: null,\n jsonType: 'object',\n }\n },\n extend(rawSubTypeDef: any, createMemberType: any) {\n const subTypeDef = {fields: [], ...rawSubTypeDef}\n\n const options = {...subTypeDef.options}\n\n const ownProps = {\n ...subTypeDef,\n title: subTypeDef.title || (subTypeDef.name ? startCase(subTypeDef.name) : 'Object'),\n options: options,\n orderings: subTypeDef.orderings || guessOrderingConfig(subTypeDef),\n fields: subTypeDef.fields.map((fieldDef: any) => {\n const {name, fieldset, group, ...rest} = fieldDef\n\n const compiledField = {\n name,\n group,\n fieldset,\n }\n\n return lazyGetter(compiledField, 'type', () => {\n return createMemberType({\n ...rest,\n title: fieldDef.title || startCase(name),\n })\n })\n }),\n }\n\n const parsed = Object.assign(pick(this.get(), OVERRIDABLE_FIELDS), ownProps, {\n type: this.get(),\n })\n\n lazyGetter(parsed, 'fieldsets', () => {\n return createFieldsets(subTypeDef, parsed.fields)\n })\n\n lazyGetter(parsed, 'groups', () => {\n return createFieldsGroups(subTypeDef, parsed.fields)\n })\n\n lazyGetter(parsed, 'preview', createPreviewGetter(subTypeDef))\n\n lazyGetter(\n parsed,\n OWN_PROPS_NAME,\n () => ({\n ...ownProps,\n preview: parsed.preview,\n }),\n {enumerable: false, writable: false},\n )\n\n lazyGetter(\n parsed,\n '__experimental_search',\n () => {\n const userProvidedSearchConfig = subTypeDef.__experimental_search\n ? normalizeSearchConfigs(subTypeDef.__experimental_search)\n : null\n\n if (userProvidedSearchConfig) {\n return userProvidedSearchConfig.map((entry) =>\n entry === 'defaults' ? normalizeSearchConfigs(subTypeDef) : entry,\n )\n }\n return resolveSearchConfig(parsed)\n },\n {\n enumerable: false,\n },\n )\n\n return subtype(parsed)\n\n function subtype(parent: any) {\n return {\n get() {\n return parent\n },\n extend: (extensionDef: any) => {\n if (extensionDef.fields) {\n throw new Error('Cannot override `fields` of subtypes of \"object\"')\n }\n\n const subOwnProps = pick(extensionDef, OVERRIDABLE_FIELDS)\n subOwnProps.title =\n extensionDef.title ||\n subTypeDef.title ||\n (subTypeDef.name ? startCase(subTypeDef.name) : 'Object')\n\n const current = Object.assign({}, parent, pick(extensionDef, OVERRIDABLE_FIELDS), {\n type: parent,\n })\n lazyGetter(current, '__experimental_search', () => parent.__experimental_search)\n hiddenGetter(current, OWN_PROPS_NAME, subOwnProps)\n return subtype(current)\n },\n }\n }\n },\n}\n\nexport function createFieldsets(typeDef: ObjectDefinition, fields: ObjectField[]): Fieldset[] {\n const fieldsetsByName: Record<string, FieldsetDefinition & {fields: ObjectField[]}> = {}\n\n for (const fieldset of typeDef.fieldsets || []) {\n if (fieldsetsByName[fieldset.name]) {\n throw new Error(\n `Duplicate fieldset name \"${fieldset.name}\" found for type '${\n typeDef.title ? typeDef.title : startCase(typeDef.name)\n }'`,\n )\n }\n\n fieldsetsByName[fieldset.name] = {title: startCase(fieldset.name), ...fieldset, fields: []}\n }\n\n const fieldsets = new Set<Fieldset>()\n\n for (const field of fields) {\n if (!field.fieldset) {\n fieldsets.add({single: true, field})\n continue\n }\n\n const fieldset = fieldsetsByName[field.fieldset]\n if (!fieldset) {\n throw new Error(\n `Fieldset '${field.fieldset}' is not defined in schema for type '${typeDef.name}'`,\n )\n }\n\n fieldset.fields.push(field)\n\n // The Set will prevent duplicates\n fieldsets.add(fieldset)\n }\n\n return Array.from(fieldsets)\n}\n\nfunction createFieldsGroups(typeDef: ObjectDefinition, fields: ObjectField[]): FieldGroup[] {\n const groupsByName: Record<string, FieldGroupDefinition & {fields: ObjectField[]}> = {}\n\n let numDefaultGroups = 0\n for (const group of typeDef.groups || []) {\n if (groupsByName[group.name]) {\n throw new Error(\n `Duplicate group name \"${group.name}\" found for type '${\n typeDef.title ? typeDef.title : startCase(typeDef.name)\n }'`,\n )\n }\n\n groupsByName[group.name] = {title: startCase(group.name), ...group, fields: []}\n\n if (group.default && ++numDefaultGroups > 1) {\n // Throw if you have multiple default field groups defined\n throw new Error(\n `More than one field group defined as default for type '${\n typeDef.title ? typeDef.title : startCase(typeDef.name)\n }' - only 1 is supported`,\n )\n }\n }\n\n fields.forEach((field) => {\n const fieldGroupNames = castArray(field.group || [])\n if (fieldGroupNames.length === 0) {\n return\n }\n\n fieldGroupNames.forEach((fieldGroupName) => {\n const currentGroup = groupsByName[fieldGroupName]\n\n if (!currentGroup) {\n throw new Error(\n `Field group '${fieldGroupName}' is not defined in schema for type '${\n typeDef.title ? typeDef.name : startCase(typeDef.name)\n }'`,\n )\n }\n\n currentGroup.fields.push(field)\n })\n })\n\n return flatMap(groupsByName).filter((group) => group.fields.length > 0)\n}\n","import {ObjectType} from './object'\n\nconst DOCUMENT_CORE = {\n name: 'document',\n title: 'Document',\n type: null,\n jsonType: 'object',\n}\n\nexport const DocumentType = {\n get() {\n return DOCUMENT_CORE\n },\n extend: ObjectType.extend,\n}\n","import {pick} from 'lodash'\n\nimport primitivePreview from '../preview/primitivePreview'\nimport {DEFAULT_OVERRIDEABLE_FIELDS, OWN_PROPS_NAME} from './constants'\nimport {hiddenGetter, lazyGetter} from './utils'\n\nconst OVERRIDABLE_FIELDS = [...DEFAULT_OVERRIDEABLE_FIELDS]\n\nconst EMAIL_CORE = {\n name: 'email',\n title: 'Email',\n type: null,\n jsonType: 'string',\n}\n\nlazyGetter(\n EMAIL_CORE,\n OWN_PROPS_NAME,\n () => ({\n ...EMAIL_CORE,\n validation: (Rule: any) => Rule.email(),\n }),\n {enumerable: false},\n)\n\nexport const EmailType = {\n get() {\n return EMAIL_CORE\n },\n extend(subTypeDef: any) {\n const ownProps = {\n ...subTypeDef,\n preview: primitivePreview,\n }\n const parsed = Object.assign(pick(EMAIL_CORE, OVERRIDABLE_FIELDS), ownProps, {\n type: EMAIL_CORE,\n })\n hiddenGetter(parsed, OWN_PROPS_NAME, ownProps)\n return subtype(parsed)\n\n function subtype(parent: any) {\n return {\n get() {\n return parent\n },\n extend: (extensionDef: any) => {\n const subOwnProps = pick(extensionDef, OVERRIDABLE_FIELDS)\n const current = Object.assign({}, parent, subOwnProps, {\n type: parent,\n })\n hiddenGetter(current, OWN_PROPS_NAME, subOwnProps)\n return subtype(current)\n },\n }\n }\n },\n}\n","import {pick, startCase} from 'lodash'\n\nimport createPreviewGetter from '../preview/createPreviewGetter'\nimport {DEFAULT_OVERRIDEABLE_FIELDS, OWN_PROPS_NAME} from './constants'\nimport {createFieldsets} from './object'\nimport {hiddenGetter, lazyGetter} from './utils'\n\nexport const ASSET_FIELD = {\n name: 'asset',\n type: 'reference',\n to: {type: 'sanity.fileAsset'},\n}\n\nexport const MEDIA_LIBRARY_ASSET_FIELD = {\n name: 'media',\n type: 'globalDocumentReference',\n hidden: true,\n to: [{type: 'sanity.asset'}],\n}\n\nconst OVERRIDABLE_FIELDS = [...DEFAULT_OVERRIDEABLE_FIELDS]\n\nconst FILE_CORE = {\n name: 'file',\n title: 'File',\n type: null,\n jsonType: 'object',\n}\n\nconst DEFAULT_OPTIONS = {\n accept: '',\n}\n\nexport const FileType = {\n get() {\n return FILE_CORE\n },\n extend(rawSubTypeDef: any, createMemberType: any) {\n const options = {...(rawSubTypeDef.options || DEFAULT_OPTIONS)}\n\n const fields = [ASSET_FIELD, MEDIA_LIBRARY_ASSET_FIELD, ...(rawSubTypeDef.fields || [])]\n\n const subTypeDef = {...rawSubTypeDef, fields}\n\n const parsed = Object.assign(pick(FILE_CORE, OVERRIDABLE_FIELDS), subTypeDef, {\n type: FILE_CORE,\n title: subTypeDef.title || (subTypeDef.name ? startCase(subTypeDef.name) : FILE_CORE.title),\n options: options,\n fields: subTypeDef.fields.map((fieldDef: any) => {\n const {name, fieldset, ...rest} = fieldDef\n\n const compiledField = {\n name,\n fieldset,\n isCustomized: Boolean(rawSubTypeDef.fields),\n }\n\n return lazyGetter(compiledField, 'type', () => {\n return createMemberType({\n ...rest,\n title: fieldDef.title || startCase(name),\n })\n })\n }),\n })\n\n lazyGetter(parsed, 'fieldsets', () => {\n return createFieldsets(subTypeDef, parsed.fields)\n })\n\n lazyGetter(parsed, 'preview', createPreviewGetter(Object.assign({}, subTypeDef, {fields})))\n\n lazyGetter(\n parsed,\n OWN_PROPS_NAME,\n () => ({\n ...subTypeDef,\n options,\n fields: parsed.fields,\n title: parsed.title,\n fieldsets: parsed.fieldsets,\n preview: parsed.preview,\n }),\n {enumerable: false, writable: false},\n )\n\n return subtype(parsed)\n\n function subtype(parent: any) {\n return {\n get() {\n return parent\n },\n extend: (extensionDef: any) => {\n if (extensionDef.fields) {\n throw new Error('Cannot override `fields` of subtypes of \"file\"')\n }\n const ownProps = pick(extensionDef, OVERRIDABLE_FIELDS)\n const current = Object.assign({}, parent, ownProps, {\n type: parent,\n })\n hiddenGetter(current, OWN_PROPS_NAME, ownProps)\n return subtype(current)\n },\n }\n }\n },\n}\n","import arrify from 'arrify'\nimport {pick} from 'lodash'\n\nimport {DEFAULT_OVERRIDEABLE_FIELDS, OWN_PROPS_NAME} from './constants'\nimport {hiddenGetter, lazyGetter} from './utils'\n\nexport const REF_FIELD = {\n name: '_ref',\n title: 'Referenced document ID',\n type: 'string',\n}\n\nexport const WEAK_FIELD = {\n name: '_weak',\n title: 'Weak reference',\n type: 'boolean',\n}\n\nconst REFERENCE_FIELDS = [REF_FIELD, WEAK_FIELD]\n\nconst OVERRIDABLE_FIELDS = [...DEFAULT_OVERRIDEABLE_FIELDS]\n\nconst GLOBAL_DOCUMENT_REFERENCE_CORE = {\n name: 'globalDocumentReference',\n title: 'Global Document Reference',\n type: null,\n jsonType: 'object',\n}\n\nfunction humanize(arr: any, conjunction: any) {\n const len = arr.length\n if (len === 1) {\n return arr[0]\n }\n const first = arr.slice(0, len - 1)\n const last = arr[len - 1]\n return `${first.join(', ')} ${conjunction} ${last}`\n}\n\nfunction buildTitle(type: any) {\n if (!type.to || type.to.length === 0) {\n return 'Global Document Reference'\n }\n return `Global Document Reference to ${humanize(\n arrify(type.to).map((toType: any) => toType.title),\n 'or',\n ).toLowerCase()}`\n}\n\nexport const GlobalDocumentReferenceType = {\n get() {\n return GLOBAL_DOCUMENT_REFERENCE_CORE\n },\n extend(subTypeDef: any, createMemberType: any) {\n if (!subTypeDef.to) {\n throw new Error(\n `Missing \"to\" field in global document reference definition. Check the type ${subTypeDef.name}`,\n )\n }\n const parsed = Object.assign(\n pick(GLOBAL_DOCUMENT_REFERENCE_CORE, OVERRIDABLE_FIELDS),\n subTypeDef,\n {\n type: GLOBAL_DOCUMENT_REFERENCE_CORE,\n },\n )\n\n lazyGetter(parsed, 'fields', () => {\n return REFERENCE_FIELDS.map((fieldDef) => {\n const {name, ...type} = fieldDef\n return {\n name: name,\n type: createMemberType(type),\n }\n })\n })\n\n lazyGetter(parsed, 'to', () => {\n return arrify(subTypeDef.to).map((toType: any) => {\n return {\n ...toType,\n }\n })\n })\n\n lazyGetter(parsed, 'title', () => subTypeDef.title || buildTitle(parsed))\n\n lazyGetter(\n parsed,\n OWN_PROPS_NAME,\n () => ({\n ...subTypeDef,\n fields: parsed.fields,\n to: parsed.to,\n title: parsed.title,\n }),\n {enumerable: false, writable: false},\n )\n\n return subtype(parsed)\n\n function subtype(parent: any) {\n return {\n get() {\n return parent\n },\n extend: (extensionDef: any) => {\n if (extensionDef.of) {\n throw new Error('Cannot override `of` of subtypes of \"globalDocumentReference\"')\n }\n const ownProps = pick(extensionDef, OVERRIDABLE_FIELDS)\n const current = Object.assign({}, parent, ownProps, {\n type: parent,\n })\n hiddenGetter(current, OWN_PROPS_NAME, ownProps)\n return subtype(current)\n },\n }\n }\n },\n}\n","export const ASSET_FIELD = {\n name: 'asset',\n type: 'reference',\n to: [{type: 'sanity.imageAsset'}],\n}\n\nexport const HOTSPOT_FIELD = {\n name: 'hotspot',\n type: 'sanity.imageHotspot',\n}\n\nexport const CROP_FIELD = {\n name: 'crop',\n type: 'sanity.imageCrop',\n}\n\nexport const MEDIA_LIBRARY_ASSET_FIELD = {\n name: 'media',\n type: 'globalDocumentReference',\n hidden: true,\n to: [{type: 'sanity.asset'}],\n}\n","import {pick, startCase} from 'lodash'\n\nimport createPreviewGetter from '../preview/createPreviewGetter'\nimport {DEFAULT_OVERRIDEABLE_FIELDS, OWN_PROPS_NAME} from './constants'\nimport {ASSET_FIELD, CROP_FIELD, HOTSPOT_FIELD, MEDIA_LIBRARY_ASSET_FIELD} from './image/fieldDefs'\nimport {createFieldsets} from './object'\nimport {hiddenGetter, lazyGetter} from './utils'\n\nconst OVERRIDABLE_FIELDS = [...DEFAULT_OVERRIDEABLE_FIELDS]\n\nconst IMAGE_CORE = {\n name: 'image',\n title: 'Image',\n type: null,\n jsonType: 'object',\n}\n\nconst DEFAULT_OPTIONS = {}\n\nexport const ImageType = {\n get() {\n return IMAGE_CORE\n },\n extend(rawSubTypeDef: any, createMemberType: any) {\n const options = {...(rawSubTypeDef.options || DEFAULT_OPTIONS)}\n\n let hotspotFields = [HOTSPOT_FIELD, CROP_FIELD]\n if (!options.hotspot) {\n hotspotFields = hotspotFields.map((field) => ({...field, hidden: true}))\n }\n\n const fields = [\n ASSET_FIELD,\n MEDIA_LIBRARY_ASSET_FIELD,\n ...hotspotFields,\n ...(rawSubTypeDef.fields || []),\n ]\n const subTypeDef = {...rawSubTypeDef, fields}\n\n const parsed = Object.assign(pick(this.get(), OVERRIDABLE_FIELDS), subTypeDef, {\n type: IMAGE_CORE,\n title: subTypeDef.title || (subTypeDef.name ? startCase(subTypeDef.name) : IMAGE_CORE.title),\n options: options,\n fields: subTypeDef.fields.map((fieldDef: any) => {\n const {name, fieldset, ...rest} = fieldDef\n\n const compiledField = {\n name,\n fieldset,\n isCustomized: Boolean(rawSubTypeDef.fields),\n }\n\n return lazyGetter(compiledField, 'type', () => {\n return createMemberType({\n ...rest,\n title: fieldDef.title || startCase(name),\n })\n })\n }),\n })\n\n lazyGetter(parsed, 'fieldsets', () => {\n return createFieldsets(subTypeDef, parsed.fields)\n })\n\n lazyGetter(parsed, 'preview', createPreviewGetter(Object.assign({}, subTypeDef, {fields})))\n\n lazyGetter(\n parsed,\n OWN_PROPS_NAME,\n () => ({\n ...subTypeDef,\n options,\n fields: parsed.fields,\n title: parsed.title,\n fieldsets: parsed.fieldsets,\n preview: parsed.preview,\n }),\n {enumerable: false, writable: false},\n )\n\n return subtype(parsed)\n\n function subtype(parent: any) {\n return {\n get() {\n return parent\n },\n extend: (extensionDef: any) => {\n if (extensionDef.fields) {\n throw new Error('Cannot override `fields` of subtypes of \"image\"')\n }\n const ownProps = pick(extensionDef, OVERRIDABLE_FIELDS)\n const current = Object.assign({}, parent, ownProps, {\n type: parent,\n })\n hiddenGetter(current, OWN_PROPS_NAME, ownProps)\n return subtype(current)\n },\n }\n }\n },\n}\n","import {pick} from 'lodash'\n\nimport primitivePreview from '../preview/primitivePreview'\nimport {DEFAULT_OVERRIDEABLE_FIELDS, OWN_PROPS_NAME} from './constants'\nimport {hiddenGetter} from './utils'\n\nconst OVERRIDABLE_FIELDS = [...DEFAULT_OVERRIDEABLE_FIELDS]\n\nconst NUMBER_CORE = {\n name: 'number',\n title: 'Number',\n type: null,\n jsonType: 'number',\n}\n\nexport const NumberType = {\n get() {\n return NUMBER_CORE\n },\n extend(subTypeDef: any) {\n const ownProps = {\n ...subTypeDef,\n preview: primitivePreview,\n }\n\n const parsed = Object.assign(pick(NUMBER_CORE, OVERRIDABLE_FIELDS), ownProps, {\n type: NUMBER_CORE,\n })\n\n hiddenGetter(parsed, OWN_PROPS_NAME, ownProps)\n\n return subtype(parsed)\n\n function subtype(parent: any) {\n return {\n get() {\n return parent\n },\n extend: (extensionDef: any) => {\n const subOwnProps = pick(extensionDef, OVERRIDABLE_FIELDS)\n const current = Object.assign({}, parent, subOwnProps, {\n type: parent,\n })\n hiddenGetter(current, OWN_PROPS_NAME, subOwnProps)\n return subtype(current)\n },\n }\n }\n },\n}\n","import arrify from 'arrify'\nimport {pick} from 'lodash'\n\nimport {DEFAULT_OVERRIDEABLE_FIELDS, OWN_PROPS_NAME} from './constants'\nimport {createFieldsets} from './object'\nimport {hiddenGetter, lazyGetter} from './utils'\n\nexport const REF_FIELD = {\n name: '_ref',\n title: 'Referenced document ID',\n type: 'string',\n}\n\nexport const WEAK_FIELD = {\n name: '_weak',\n title: 'Weak reference',\n type: 'boolean',\n}\n\nconst REFERENCE_FIELDS = [REF_FIELD, WEAK_FIELD]\n\nconst OVERRIDABLE_FIELDS = [...DEFAULT_OVERRIDEABLE_FIELDS]\n\nconst REFERENCE_CORE = {\n name: 'reference',\n title: 'Reference',\n type: null,\n jsonType: 'object',\n}\n\nfunction humanize(arr: any, conjunction: any) {\n const len = arr.length\n if (len === 1) {\n return arr[0]\n }\n const first = arr.slice(0, len - 1)\n const last = arr[len - 1]\n return `${first.join(', ')} ${conjunction} ${last}`\n}\n\nfunction buildTitle(type: any) {\n if (!type.to || type.to.length === 0) {\n return 'Reference'\n }\n return `Reference to ${humanize(\n arrify(type.to).map((toType: any) => toType.title),\n 'or',\n ).toLowerCase()}`\n}\n\nexport const ReferenceType = {\n get() {\n return REFERENCE_CORE\n },\n extend(subTypeDef: any, createMemberType: any) {\n if (!subTypeDef.to) {\n throw new Error(\n `Missing \"to\" field in reference definition. Check the type ${subTypeDef.name}`,\n )\n }\n const parsed = Object.assign(pick(REFERENCE_CORE, OVERRIDABLE_FIELDS), subTypeDef, {\n type: REFERENCE_CORE,\n })\n\n lazyGetter(parsed, 'fields', () => {\n return REFERENCE_FIELDS.map((fieldDef) => {\n const {name, ...type} = fieldDef\n return {\n name: name,\n type: createMemberType(type),\n }\n })\n })\n\n lazyGetter(parsed, 'fieldsets', () => {\n return createFieldsets(subTypeDef, parsed.fields)\n })\n\n lazyGetter(parsed, 'to', () => {\n return arrify(subTypeDef.to).map((toType: any) => createMemberType(toType))\n })\n\n lazyGetter(parsed, 'title', () => subTypeDef.title || buildTitle(parsed))\n\n lazyGetter(\n parsed,\n OWN_PROPS_NAME,\n () => ({\n ...subTypeDef,\n fields: parsed.fields,\n fieldsets: parsed.fieldsets,\n to: parsed.to,\n title: parsed.title,\n }),\n {enumerable: false, writable: false},\n )\n\n return subtype(parsed)\n\n function subtype(parent: any) {\n return {\n get() {\n return parent\n },\n extend: (extensionDef: any) => {\n if (extensionDef.of) {\n throw new Error('Cannot override `of` of subtypes of \"reference\"')\n }\n const ownProps = pick(extensionDef, OVERRIDABLE_FIELDS)\n const current = Object.assign({}, parent, ownProps, {\n type: parent,\n })\n hiddenGetter(current, OWN_PROPS_NAME, ownProps)\n return subtype(current)\n },\n }\n }\n },\n}\n","import {pick} from 'lodash'\n\nimport primitivePreview from '../preview/primitivePreview'\nimport {DEFAULT_OVERRIDEABLE_FIELDS, OWN_PROPS_NAME} from './constants'\nimport {hiddenGetter} from './utils'\n\nconst OVERRIDABLE_FIELDS = [...DEFAULT_OVERRIDEABLE_FIELDS]\n\nconst STRING_CORE = {\n name: 'string',\n title: 'String',\n type: null,\n jsonType: 'string',\n}\n\nexport const StringType = {\n get() {\n return STRING_CORE\n },\n extend(subTypeDef: any) {\n const ownProps = {\n ...subTypeDef,\n preview: primitivePreview,\n }\n\n const parsed = Object.assign(pick(STRING_CORE, OVERRIDABLE_FIELDS), ownProps, {\n type: STRING_CORE,\n })\n\n hiddenGetter(parsed, OWN_PROPS_NAME, ownProps)\n\n return subtype(parsed)\n\n function subtype(parent: any) {\n return {\n get() {\n return parent\n },\n extend: (extensionDef: any) => {\n const subOwnProps = pick(extensionDef, OVERRIDABLE_FIELDS)\n const current = Object.assign({}, parent, subOwnProps, {\n type: parent,\n })\n hiddenGetter(current, OWN_PROPS_NAME, subOwnProps)\n return subtype(current)\n },\n }\n }\n },\n}\n","import {pick} from 'lodash'\n\nimport primitivePreview from '../preview/primitivePreview'\nimport {DEFAULT_OVERRIDEABLE_FIELDS, OWN_PROPS_NAME} from './constants'\nimport {hiddenGetter} from './utils'\n\nconst OVERRIDABLE_FIELDS = [...DEFAULT_OVERRIDEABLE_FIELDS, 'rows']\n\nconst TEXT_CORE = {\n name: 'text',\n title: 'Text',\n type: null,\n jsonType: 'string',\n}\n\nexport const TextType = {\n get() {\n return TEXT_CORE\n },\n extend(subTypeDef: any) {\n const ownProps = {\n ...subTypeDef,\n preview: primitivePreview,\n }\n\n const parsed = Object.assign(pick(TEXT_CORE, OVERRIDABLE_FIELDS), ownProps, {\n type: TEXT_CORE,\n })\n\n hiddenGetter(parsed, OWN_PROPS_NAME, ownProps)\n\n return subtype(parsed)\n\n function subtype(parent: any) {\n return {\n get() {\n return parent\n },\n extend: (extensionDef: any) => {\n const subOwnProps = pick(extensionDef, OVERRIDABLE_FIELDS)\n const current = Object.assign({}, parent, subOwnProps, {\n type: parent,\n })\n hiddenGetter(current, OWN_PROPS_NAME, subOwnProps)\n return subtype(current)\n },\n }\n }\n },\n}\n","import {pick} from 'lodash'\n\nimport primitivePreview from '../preview/primitivePreview'\nimport {DEFAULT_OVERRIDEABLE_FIELDS, OWN_PROPS_NAME} from './constants'\nimport {hiddenGetter} from './utils'\n\nconst OVERRIDABLE_FIELDS = [...DEFAULT_OVERRIDEABLE_FIELDS]\n\nconst URL_CORE = {\n name: 'url',\n title: 'Url',\n type: null,\n jsonType: 'string',\n}\n\nexport const UrlType = {\n get() {\n return URL_CORE\n },\n extend(subTypeDef: any) {\n const ownProps = {\n ...subTypeDef,\n preview: primitivePreview,\n }\n\n const parsed = Object.assign(pick(URL_CORE, OVERRIDABLE_FIELDS), ownProps, {\n type: URL_CORE,\n })\n\n hiddenGetter(parsed, OWN_PROPS_NAME, ownProps)\n\n return subtype(parsed)\n\n function subtype(parent: any) {\n return {\n get() {\n return parent\n },\n extend: (extensionDef: any) => {\n const subOwnownProps = pick(extensionDef, OVERRIDABLE_FIELDS)\n const current = Object.assign({}, parent, subOwnownProps, {\n type: parent,\n })\n hiddenGetter(current, OWN_PROPS_NAME, subOwnownProps)\n return subtype(current)\n },\n }\n }\n },\n}\n","import * as types from './types'\n\nfunction compileRegistry(schemaDef: any) {\n const registry = Object.create(null)\n let localTypeNames: string[]\n\n if (schemaDef.parent) {\n Object.assign(registry, schemaDef.parent._registry)\n localTypeNames = []\n } else {\n // For the root schema we inherit from the core types and also register these as the \"local\" ones.\n Object.assign(registry, types)\n localTypeNames = Object.keys(types)\n }\n\n const defsByName = schemaDef.types.reduce((acc: any, def: any) => {\n if (acc[def.name]) {\n throw new Error(`Duplicate type name added to schema: ${def.name}`)\n }\n acc[def.name] = def\n return acc\n }, {})\n\n schemaDef.types.forEach(add)\n\n return {\n registry,\n localTypeNames,\n }\n\n function ensure(typeName: any) {\n if (!registry[typeName]) {\n if (!defsByName[typeName]) {\n throw new Error(`Unknown type: ${typeName}`)\n }\n add(defsByName[typeName])\n }\n }\n\n function extendMember(memberDef: any) {\n ensure(memberDef.type)\n return registry[memberDef.type].extend(memberDef, extendMember).get()\n }\n\n function add(typeDef: any) {\n ensure(typeDef.type)\n if (registry[typeDef.name]) {\n return\n }\n localTypeNames.push(typeDef.name)\n registry[typeDef.name] = registry[typeDef.type].extend(typeDef, extendMember)\n }\n}\n\n/**\n * @beta\n */\nexport class Schema {\n _original: {name: string; types: any[]; parent?: Schema}\n _registry: {[typeName: string]: any}\n #localTypeNames: string[]\n\n static compile(schemaDef: any): Schema {\n return new Schema(schemaDef)\n }\n\n constructor(schemaDef: any) {\n this._original = schemaDef\n\n const {registry, localTypeNames} = compileRegistry(schemaDef)\n this._registry = registry\n this.#localTypeNames = localTypeNames\n }\n\n get name(): string {\n return this._original.name\n }\n\n /**\n * Returns the parent schema.\n */\n get parent(): Schema | undefined {\n return this._original.parent\n }\n\n get(name: string): any {\n return this._registry[name] && this._registry[name].get()\n }\n\n has(name: string): boolean {\n return name in this._registry\n }\n\n getTypeNames(): string[] {\n return Object.keys(this._registry)\n }\n\n getLocalTypeNames(): string[] {\n return this.#localTypeNames\n }\n}\n\n/**\n * @deprecated Use `import {Schema} from \"@sanity/schema\"` instead\n */\nexport class DeprecatedDefaultSchema extends Schema {\n static compile(schemaDef: any): Schema {\n return new DeprecatedDefaultSchema(schemaDef)\n }\n\n constructor(schemaDef: any) {\n super(schemaDef)\n\n const stack = new Error(\n 'The default export of `@sanity/schema` is deprecated. Use `import {Schema} from \"@sanity/schema\"` instead.',\n ).stack!.replace(/^Error/, 'Warning')\n\n console.warn(stack)\n }\n}\n","import {DeprecatedDefaultSchema, Schema as NamedSchema} from '../legacy/Schema'\n\nexport default DeprecatedDefaultSchema\nexport const Schema = NamedSchema\nexport {type SchemaValidationResult} from '../sanity/typedefs'\n"],"names":["OVERRIDABLE_FIELDS","asString","guessPreviewConfig","INHERITED_FIELDS","DEFAULT_OPTIONS","REF_FIELD","WEAK_FIELD","REFERENCE_FIELDS","humanize","buildTitle","ASSET_FIELD","MEDIA_LIBRARY_ASSET_FIELD","Schema","NamedSchema"],"mappings":"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"}