{"version":3,"file":"index.mjs","sources":["../src/legacy/types/constants.ts","../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":["export const DEFAULT_OVERRIDEABLE_FIELDS = [\n  'jsonType',\n  'type',\n  'name',\n  'title',\n  'description',\n  'options',\n  'fieldsets',\n  'validation',\n  'readOnly',\n  'hidden',\n  'components',\n  'diffComponent',\n  'initialValue',\n  'deprecated',\n]\n\n/**\n * The property name used for each type where we store the \"own props\" of the type.\n * This is the set of properties which are _not_ inherited, but explicitly defined on this type.\n */\nexport const OWN_PROPS_NAME = '_internal_ownProps'\n","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    // eslint-disable-next-line no-console\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    // eslint-disable-next-line no-console\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        fieldsets: parsed.fieldsets,\n        groups: parsed.groups,\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} 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\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    // eslint-disable-next-line no-console\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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"}