sanity 3.26.2-canary.52 → 3.26.2-canary.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/lib/_chunks/{_internal-2CJ5wSKF.js → _internal-6Pl2wJGj.js} +422 -201
  2. package/lib/_chunks/_internal-6Pl2wJGj.js.map +1 -0
  3. package/lib/_chunks/{_internal-79flWvL8.js → _internal-yQwMw2ht.js} +419 -203
  4. package/lib/_chunks/_internal-yQwMw2ht.js.map +1 -0
  5. package/lib/_chunks/{_internalBrowser-QAFz3SKp.js → _internalBrowser-HWvRXvlU.js} +22 -22
  6. package/lib/_chunks/_internalBrowser-HWvRXvlU.js.map +1 -0
  7. package/lib/_chunks/{_internalBrowser-Y0qKZ-GA.js → _internalBrowser-TWIhitgI.js} +22 -22
  8. package/lib/_chunks/_internalBrowser-TWIhitgI.js.map +1 -0
  9. package/lib/_chunks/{deployApiAction-SHteit1G.js → deployApiAction-TZcCtXan.js} +2 -2
  10. package/lib/_chunks/{deployApiAction-SHteit1G.js.map → deployApiAction-TZcCtXan.js.map} +1 -1
  11. package/lib/_chunks/{deployApiAction-bRyJpGOS.js → deployApiAction-rVL67VYW.js} +2 -2
  12. package/lib/_chunks/{deployApiAction-bRyJpGOS.js.map → deployApiAction-rVL67VYW.js.map} +1 -1
  13. package/lib/_chunks/{getStudioConfig-JSkc4GE0.js → getStudioWorkspaces-HX9o9-hl.js} +20 -4
  14. package/lib/_chunks/getStudioWorkspaces-HX9o9-hl.js.map +1 -0
  15. package/lib/_chunks/{index-EO9iRnDS.js → index-2kSxso3r.js} +2 -2
  16. package/lib/_chunks/{index-EO9iRnDS.js.map → index-2kSxso3r.js.map} +1 -1
  17. package/lib/_chunks/{index-FQCCBbuC.js → index-751ZLh3z.js} +6 -6
  18. package/lib/_chunks/{index-FQCCBbuC.js.map → index-751ZLh3z.js.map} +1 -1
  19. package/lib/_chunks/{index-VNSHvpZr.js → index-HcF369ru.js} +2 -2
  20. package/lib/_chunks/{index-VNSHvpZr.js.map → index-HcF369ru.js.map} +1 -1
  21. package/lib/_chunks/{index-Xs2xnLUV.js → index-MAAxgUnl.js} +6 -6
  22. package/lib/_chunks/{index-Xs2xnLUV.js.map → index-MAAxgUnl.js.map} +1 -1
  23. package/lib/_chunks/{index-AaK2CidU.js → index-NweJPfGb.js} +2 -2
  24. package/lib/_chunks/{index-AaK2CidU.js.map → index-NweJPfGb.js.map} +1 -1
  25. package/lib/_chunks/{index-R7R6AyHF.js → index-zobOqko7.js} +2 -2
  26. package/lib/_chunks/{index-R7R6AyHF.js.map → index-zobOqko7.js.map} +1 -1
  27. package/lib/_chunks/{listApisAction-6lGkFZrU.js → listApisAction-IvKV4iAd.js} +2 -2
  28. package/lib/_chunks/{listApisAction-6lGkFZrU.js.map → listApisAction-IvKV4iAd.js.map} +1 -1
  29. package/lib/_chunks/{listApisAction-CqCkBz-F.js → listApisAction-oca2uykY.js} +2 -2
  30. package/lib/_chunks/{listApisAction-CqCkBz-F.js.map → listApisAction-oca2uykY.js.map} +1 -1
  31. package/lib/_chunks/pane-9HEeITpx.js +5 -0
  32. package/lib/_chunks/pane-9HEeITpx.js.map +1 -0
  33. package/lib/_chunks/pane-QyVrOLqS.js +2 -0
  34. package/lib/_chunks/pane-QyVrOLqS.js.map +1 -0
  35. package/lib/_chunks/pane-TXXUUvdc.js +5 -0
  36. package/lib/_chunks/pane-TXXUUvdc.js.map +1 -0
  37. package/lib/_chunks/pane-cQxQtBcL.js +2 -0
  38. package/lib/_chunks/pane-cQxQtBcL.js.map +1 -0
  39. package/lib/_chunks/{structure-qJLnDJXq.js → structure-iqIDIH7-.js} +3 -3
  40. package/lib/_chunks/structure-iqIDIH7-.js.map +1 -0
  41. package/lib/_chunks/{structure-588eAwLd.js → structure-o_wMXC_G.js} +3 -3
  42. package/lib/_chunks/structure-o_wMXC_G.js.map +1 -0
  43. package/lib/_chunks/validateAction-4Jl_y_iB.js +154 -0
  44. package/lib/_chunks/validateAction-4Jl_y_iB.js.map +1 -0
  45. package/lib/_chunks/{validateAction-GUvMkXiN.js → validateAction-6q8Sqwaz.js} +25 -73
  46. package/lib/_chunks/validateAction-6q8Sqwaz.js.map +1 -0
  47. package/lib/_chunks/validateAction-Bz67ApRP.js +143 -0
  48. package/lib/_chunks/validateAction-Bz67ApRP.js.map +1 -0
  49. package/lib/_chunks/{validateAction-NIrqtyYJ.js → validateAction-shi462sq.js} +27 -75
  50. package/lib/_chunks/validateAction-shi462sq.js.map +1 -0
  51. package/lib/_internal/cli/threads/getGraphQLAPIs.js +2 -2
  52. package/lib/_internal/cli/threads/getGraphQLAPIs.js.map +1 -1
  53. package/lib/_internal/cli/threads/validateDocuments.js +5 -3
  54. package/lib/_internal/cli/threads/validateDocuments.js.map +1 -1
  55. package/lib/_internal/cli/threads/validateSchema.js +55 -0
  56. package/lib/_internal/cli/threads/validateSchema.js.map +1 -0
  57. package/lib/_internal.esm.js +1 -1
  58. package/lib/_internal.js +1 -1
  59. package/lib/_internalBrowser.esm.js +1 -1
  60. package/lib/_internalBrowser.js +1 -1
  61. package/lib/desk.esm.js +1 -1
  62. package/lib/desk.js +1 -1
  63. package/lib/exports/index.d.ts +25 -0
  64. package/lib/index.cjs.mjs +1 -0
  65. package/lib/index.esm.js +2 -2
  66. package/lib/index.js +2 -1
  67. package/lib/index.js.map +1 -1
  68. package/lib/structure.esm.js +1 -1
  69. package/lib/structure.js +1 -1
  70. package/package.json +15 -15
  71. package/src/_internal/cli/actions/schema/formatSchemaValidation.ts +96 -0
  72. package/src/_internal/cli/actions/schema/validateAction.ts +120 -0
  73. package/src/_internal/cli/actions/validation/reporters/prettyReporter/formatDocumentValidation.ts +17 -95
  74. package/src/_internal/cli/commands/index.ts +2 -0
  75. package/src/_internal/cli/commands/migration/createMigrationCommand.ts +18 -10
  76. package/src/_internal/cli/commands/migration/listMigrationsCommand.ts +34 -31
  77. package/src/_internal/cli/commands/migration/prettyMutationFormatter.ts +214 -0
  78. package/src/_internal/cli/commands/migration/runMigrationCommand.ts +102 -58
  79. package/src/_internal/cli/commands/migration/templates/minimalAdvanced.ts +1 -1
  80. package/src/_internal/cli/commands/migration/templates/minimalSimple.ts +1 -1
  81. package/src/_internal/cli/commands/migration/templates/renameField.ts +3 -3
  82. package/src/_internal/cli/commands/migration/templates/renameType.ts +1 -1
  83. package/src/_internal/cli/commands/migration/templates/stringToPTE.ts +1 -1
  84. package/src/_internal/cli/commands/migration/utils/mutationFormatter.ts +1 -1
  85. package/src/_internal/cli/commands/schema/validateSchemaCommand.ts +35 -0
  86. package/src/_internal/cli/threads/getGraphQLAPIs.ts +2 -2
  87. package/src/_internal/cli/threads/validateDocuments.ts +6 -3
  88. package/src/_internal/cli/threads/validateSchema.ts +73 -0
  89. package/src/_internal/cli/util/{getStudioConfig.ts → getStudioWorkspaces.ts} +30 -8
  90. package/src/_internal/cli/util/tree.ts +110 -0
  91. package/src/core/config/index.ts +1 -0
  92. package/src/core/config/prepareConfig.ts +2 -5
  93. package/src/core/config/resolveSchemaTypes.ts +29 -0
  94. package/src/core/studio/screens/schemaErrors/SchemaProblemGroups.tsx +4 -2
  95. package/src/structure/comments/src/components/pte/blocks/MentionInlineBlock.tsx +13 -6
  96. package/lib/_chunks/_internal-2CJ5wSKF.js.map +0 -1
  97. package/lib/_chunks/_internal-79flWvL8.js.map +0 -1
  98. package/lib/_chunks/_internalBrowser-QAFz3SKp.js.map +0 -1
  99. package/lib/_chunks/_internalBrowser-Y0qKZ-GA.js.map +0 -1
  100. package/lib/_chunks/getStudioConfig-JSkc4GE0.js.map +0 -1
  101. package/lib/_chunks/pane-QmJb9ZTN.js +0 -2
  102. package/lib/_chunks/pane-QmJb9ZTN.js.map +0 -1
  103. package/lib/_chunks/pane-SK7FWNTJ.js +0 -2
  104. package/lib/_chunks/pane-SK7FWNTJ.js.map +0 -1
  105. package/lib/_chunks/pane-y4hpcKe1.js +0 -5
  106. package/lib/_chunks/pane-y4hpcKe1.js.map +0 -1
  107. package/lib/_chunks/pane-yQXBQyyI.js +0 -5
  108. package/lib/_chunks/pane-yQXBQyyI.js.map +0 -1
  109. package/lib/_chunks/structure-588eAwLd.js.map +0 -1
  110. package/lib/_chunks/structure-qJLnDJXq.js.map +0 -1
  111. package/lib/_chunks/validateAction-GUvMkXiN.js.map +0 -1
  112. package/lib/_chunks/validateAction-NIrqtyYJ.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"deployApiAction-SHteit1G.js","sources":["../../src/_internal/cli/util/getUrlHeaders.ts","../../src/_internal/cli/actions/graphql/helpUrls.ts","../../src/_internal/cli/actions/graphql/SchemaError.ts","../../src/_internal/cli/actions/graphql/extractFromSanitySchema.ts","../../src/_internal/cli/actions/graphql/helpers.ts","../../src/_internal/cli/actions/graphql/gen1/generateTypeFilters.ts","../../src/_internal/cli/actions/graphql/gen1/generateTypeQueries.ts","../../src/_internal/cli/actions/graphql/gen1/index.ts","../../src/_internal/cli/actions/graphql/gen2/filters/booleanFilters.ts","../../src/_internal/cli/actions/graphql/gen2/filters/dateFilters.ts","../../src/_internal/cli/actions/graphql/gen2/filters/dateTimeFilters.ts","../../src/_internal/cli/actions/graphql/gen2/filters/documentFilters.ts","../../src/_internal/cli/actions/graphql/gen2/filters/floatFilters.ts","../../src/_internal/cli/actions/graphql/gen2/filters/idFilters.ts","../../src/_internal/cli/actions/graphql/gen2/filters/integerFilters.ts","../../src/_internal/cli/actions/graphql/gen2/filters/stringFilters.ts","../../src/_internal/cli/actions/graphql/gen2/generateTypeFilters.ts","../../src/_internal/cli/actions/graphql/gen2/generateTypeSortings.ts","../../src/_internal/cli/actions/graphql/gen2/generateTypeQueries.ts","../../src/_internal/cli/actions/graphql/gen2/index.ts","../../src/_internal/cli/actions/graphql/gen3/filters/documentFilters.ts","../../src/_internal/cli/actions/graphql/gen3/utils.ts","../../src/_internal/cli/actions/graphql/gen3/generateTypeFilters.ts","../../src/_internal/cli/actions/graphql/gen3/generateTypeSortings.ts","../../src/_internal/cli/actions/graphql/gen3/generateTypeQueries.ts","../../src/_internal/cli/actions/graphql/gen3/index.ts","../../src/_internal/cli/actions/graphql/deployApiAction.ts"],"sourcesContent":["import {getIt} from 'get-it'\nimport {promise} from 'get-it/middleware'\n\nconst request = getIt([promise()])\n\nexport class HttpError extends Error {\n statusCode?: number\n}\n\nexport async function getUrlHeaders(url: string, headers = {}): Promise<Record<string, string>> {\n const response = await request({\n url,\n stream: true,\n maxRedirects: 0,\n method: 'HEAD',\n headers,\n })\n\n if (response.statusCode >= 400) {\n const error = new HttpError(`Request returned HTTP ${response.statusCode}`)\n error.statusCode = response.statusCode\n throw error\n }\n\n response.body.resume()\n return response.headers\n}\n","export const SCHEMA_LIFT_ANONYMOUS_OBJECT_TYPE = 'schema-lift-anonymous-object-type'\n","import {upperFirst} from 'lodash'\nimport logSymbols from 'log-symbols'\nimport {generateHelpUrl} from '@sanity/generate-help-url'\nimport type {CliOutputter} from '@sanity/cli'\nimport type {SchemaValidationProblemGroup} from '@sanity/types'\n\n// eslint-disable-next-line no-console\nconst consoleOutputter = {error: (...args: unknown[]) => console.error(...args)}\n\nexport class SchemaError extends Error {\n problemGroups: SchemaValidationProblemGroup[]\n\n constructor(problemGroups: SchemaValidationProblemGroup[]) {\n super('Schema errors encountered')\n this.problemGroups = problemGroups\n }\n\n print(output: CliOutputter): void {\n const logger = output || consoleOutputter\n logger.error('Uh oh… found errors in schema:\\n')\n\n this.problemGroups.forEach((group) => {\n group.problems.forEach((problem) => {\n const icon = logSymbols[problem.severity] || logSymbols.info\n output.error(` ${icon} ${upperFirst(problem.severity)}: ${getPath(group.path)}`)\n output.error(` ${problem.message}`)\n if (problem.helpId) {\n output.error(` See ${generateHelpUrl(problem.helpId)}`)\n }\n output.error('')\n })\n })\n }\n}\n\nfunction getPath(path: SchemaValidationProblemGroup['path']) {\n return path\n .map((segment) => {\n if (segment.kind === 'type' && segment.name && segment.type) {\n return `${segment.name} - (${segment.type})`\n }\n if (segment.kind === 'property' && segment.name) {\n return segment.name\n }\n return null\n })\n .filter(Boolean)\n .join(' / ')\n}\n","import {uniqBy, startCase} from 'lodash'\nimport {\n type SchemaType,\n type Schema as CompiledSchema,\n type ReferenceSchemaType,\n type ObjectFieldType,\n type ObjectField,\n type ObjectSchemaType,\n type ArraySchemaType,\n type IntrinsicTypeName,\n type CrossDatasetReferenceSchemaType,\n isDeprecationConfiguration,\n} from '@sanity/types'\nimport {generateHelpUrl} from '@sanity/generate-help-url'\nimport {Schema} from '@sanity/schema'\nimport oneline from 'oneline'\nimport * as helpUrls from './helpUrls'\nimport {SchemaError} from './SchemaError'\nimport type {\n ApiSpecification,\n ConvertedFieldDefinition,\n ConvertedInterface,\n ConvertedType,\n ConvertedUnion,\n Deprecation,\n} from './types'\n\nconst skipTypes = ['document', 'reference']\nconst allowedJsonTypes = ['object', 'array']\nconst disallowedCustomizedMembers = ['object', 'array', 'image', 'file', 'block']\nconst disabledBlockFields = ['markDefs']\nconst scalars = ['string', 'number', 'boolean']\n\n/**\n * Data required elsewhere in the API specification generation process, but that should not be\n * included in the generated API specification.\n */\nexport const internal = Symbol('internal')\n\nfunction getBaseType(baseSchema: CompiledSchema, typeName: IntrinsicTypeName): SchemaType {\n if (typeName === 'crossDatasetReference') {\n return Schema.compile({\n types: (baseSchema._original?.types || []).concat([\n {\n name: `__placeholder__`,\n type: 'crossDatasetReference',\n // Just needs _something_ to refer to, doesn't matter what\n to: [{type: 'sanity.imageAsset'}],\n },\n ]),\n }).get('__placeholder__')\n }\n\n return Schema.compile({\n types: (baseSchema._original?.types || []).concat([\n {name: `__placeholder__`, type: typeName, options: {hotspot: true}},\n ]),\n }).get('__placeholder__')\n}\n\nfunction getTypeName(str: string): string {\n const name = startCase(str).replace(/\\s+/g, '')\n return name === 'Number' ? 'Float' : name\n}\n\nfunction isBaseType(type: SchemaType): boolean {\n return (\n type.name !== type.jsonType &&\n allowedJsonTypes.includes(type.jsonType) &&\n !skipTypes.includes(type.name) &&\n !isReference(type)\n )\n}\n\nfunction isBlockType(typeDef: SchemaType | ObjectField): boolean {\n if (typeDef.name === 'block') {\n return true\n }\n\n if (typeDef.type) {\n return isBlockType(typeDef.type)\n }\n\n return false\n}\n\nfunction hasBlockParent(typeDef: SchemaType): boolean {\n if (typeDef.type && typeDef.type.name === 'block' && !typeDef.type.type) {\n return true\n }\n\n return Boolean(typeDef.type && hasBlockParent(typeDef.type))\n}\n\nfunction isArrayOfBlocks(typeDef: SchemaType | ObjectField): boolean {\n const type = typeDef.type || typeDef\n if (!('jsonType' in type) || type.jsonType !== 'array') {\n return false\n }\n\n return (type.of || []).some(hasBlockParent)\n}\n\nfunction isType(typeDef: SchemaType | ObjectField | ObjectFieldType, typeName: string): boolean {\n let type: SchemaType | ObjectField | ObjectFieldType | undefined = typeDef\n while (type) {\n if (type.name === typeName || (type.type && type.type.name === typeName)) {\n return true\n }\n\n type = type.type\n }\n return false\n}\n\nfunction isReference(\n typeDef: SchemaType | ObjectField | ObjectFieldType,\n): typeDef is ReferenceSchemaType {\n return isType(typeDef, 'reference')\n}\n\nfunction isCrossDatasetReference(\n typeDef: SchemaType | ObjectField | ObjectFieldType | CrossDatasetReferenceSchemaType,\n) {\n return isType(typeDef, 'crossDatasetReference')\n}\n\nfunction getCrossDatasetReferenceMetadata(\n typeDef: SchemaType | ObjectField | ObjectFieldType | CrossDatasetReferenceSchemaType,\n) {\n if (!isCrossDatasetReference(typeDef)) return undefined\n\n function getTypeNames(\n type: SchemaType | ObjectField | ObjectFieldType | CrossDatasetReferenceSchemaType | undefined,\n ) {\n if (!type) return undefined\n if (!('to' in type)) return getTypeNames(type.type)\n return type.to.map((t) => t.type).filter((t): t is string => typeof t === 'string')\n }\n\n function getDataset(\n type: SchemaType | ObjectField | ObjectFieldType | CrossDatasetReferenceSchemaType | undefined,\n ) {\n if (!type) return undefined\n if ('dataset' in type && typeof type.dataset === 'string') return type.dataset\n if (type.type) return getDataset(type.type)\n return undefined\n }\n\n const typeNames = getTypeNames(typeDef)\n if (!typeNames) return undefined\n\n const dataset = getDataset(typeDef)\n if (typeof dataset !== 'string') return undefined\n\n return {typeNames, dataset}\n}\n\nexport function extractFromSanitySchema(\n sanitySchema: CompiledSchema,\n extractOptions: {nonNullDocumentFields?: boolean; withUnionCache?: boolean} = {},\n): ApiSpecification {\n const {nonNullDocumentFields, withUnionCache} = extractOptions\n const unionRecursionGuards = new Set<string>()\n const unionDefinitionCache = new Map<string, any>()\n const hasErrors =\n sanitySchema._validation &&\n sanitySchema._validation.some((group) =>\n group.problems.some((problem) => problem.severity === 'error'),\n )\n\n if (hasErrors && Array.isArray(sanitySchema._validation)) {\n throw new SchemaError(sanitySchema._validation)\n }\n\n const sanityTypes = sanitySchema._original?.types || []\n const typeNames = sanitySchema.getTypeNames()\n const unionTypes: ConvertedUnion[] = []\n const types: ConvertedType[] = []\n\n for (const typeName of typeNames) {\n const schemaType = sanitySchema.get(typeName)\n if (schemaType === undefined) {\n continue\n }\n if (!isBaseType(schemaType)) {\n continue\n }\n\n const convertedType = convertType(schemaType)\n types.push(convertedType)\n }\n\n const withUnions = [...types, ...unionTypes]\n return {types: withUnions, interfaces: [getDocumentInterfaceDefinition()]}\n\n function isTopLevelType(typeName: string): boolean {\n return typeNames.includes(typeName)\n }\n\n function mapFieldType(field: SchemaType | ObjectField | ObjectFieldType): string {\n if (!field.type) {\n throw new Error('Field has no type!')\n }\n\n const jsonType = 'jsonType' in field ? field.jsonType : ''\n const isScalar = scalars.includes(jsonType)\n if (isScalar && jsonType === 'number') {\n return hasValidationFlag(field, 'integer') ? 'Int' : 'Float'\n } else if (isScalar) {\n return getTypeName(jsonType)\n }\n\n const type = field.type.type || field.type\n\n // In the case of nested scalars, recurse (markdown -> longText -> text -> string)\n if (type.type) {\n return mapFieldType(type)\n }\n\n switch (type.name) {\n case 'number':\n return hasValidationFlag(field, 'integer') ? 'Int' : 'Float'\n default:\n return getTypeName(type.name)\n }\n }\n\n function isArrayType(type: SchemaType | ObjectField): type is ArraySchemaType {\n return Boolean(\n ('jsonType' in type && type.jsonType === 'array') ||\n (type.type && type.type.jsonType === 'array'),\n )\n }\n\n function _convertType(\n type: SchemaType | ObjectField,\n parent: string,\n options: {isField?: boolean},\n ): ConvertedType {\n let name: string | undefined\n if (type.type) {\n name = type.type.name\n } else if ('jsonType' in type) {\n name = type.jsonType\n }\n\n if (isReference(type)) {\n return getReferenceDefinition(type, parent)\n }\n\n if (isArrayType(type)) {\n return getArrayDefinition(type, parent, options)\n }\n\n if (name === 'document') {\n return getDocumentDefinition(type as ObjectSchemaType)\n }\n\n if (name === 'block' || name === 'object') {\n return getObjectDefinition(type, parent)\n }\n\n if (hasFields(type)) {\n return getObjectDefinition(type, parent)\n }\n\n return {\n type: mapFieldType(type),\n description: getDescription(type),\n } as any\n }\n\n function convertType(\n type: SchemaType | ObjectField,\n parent?: string,\n props: {fieldName?: string} & Partial<Deprecation> = {},\n ): ConvertedType {\n const mapped = _convertType(type, parent || '', {isField: Boolean(props.fieldName)})\n const gqlName = props.fieldName || mapped.name\n const originalName = type.name\n const original = gqlName === originalName ? {} : {originalName: originalName}\n const crossDatasetReferenceMetadata = getCrossDatasetReferenceMetadata(type)\n\n return {\n ...getDeprecation(type.type),\n ...props,\n ...mapped,\n ...original,\n ...(crossDatasetReferenceMetadata && {crossDatasetReferenceMetadata}),\n }\n }\n\n function isField(def: SchemaType | ObjectField): def is ObjectField {\n return !('jsonType' in def) || !def.jsonType\n }\n\n // eslint-disable-next-line complexity\n function getObjectDefinition(def: SchemaType | ObjectField, parent?: string): ConvertedType {\n const isInline = isField(def)\n const isDocument = def.type ? def.type.name === 'document' : false\n const actualType = isInline ? def.type : def\n\n if (typeNeedsHoisting(actualType)) {\n throw createLiftTypeError(def.name, parent || '', actualType.name)\n }\n\n if (isInline && parent && def.type.name === 'object') {\n throw createLiftTypeError(def.name, parent)\n }\n\n if (parent && def.type && isTopLevelType(def.type.name)) {\n return {type: getTypeName(def.type.name)} as any\n }\n\n const name = `${parent || ''}${getTypeName(def.name)}`\n const fields = collectFields(def)\n const firstUnprefixed = Math.max(\n 0,\n fields.findIndex((field) => field.name[0] !== '_'),\n )\n\n const keyField = createStringField('_key')\n\n fields.splice(firstUnprefixed, 0, keyField)\n\n if (!isDocument) {\n fields.splice(firstUnprefixed + 1, 0, createStringField('_type'))\n }\n\n const objectIsBlock = isBlockType(def)\n const objectFields = objectIsBlock\n ? fields.filter((field) => !disabledBlockFields.includes(field.name))\n : fields\n\n return {\n kind: 'Type',\n name,\n type: 'Object',\n description: getDescription(def),\n fields: objectFields.map((field) =>\n isArrayOfBlocks(field)\n ? buildRawField(field, name)\n : (convertType(field, name, {\n fieldName: field.name,\n ...getDeprecation(def),\n }) as any),\n ),\n [internal]: {\n ...getDeprecation(def),\n },\n }\n }\n\n function buildRawField(field: ObjectField, parentName: string) {\n return {\n ...convertType(field, parentName, {fieldName: `${field.name}Raw`}),\n type: 'JSON',\n isRawAlias: true,\n }\n }\n\n function createStringField(name: string): ObjectField {\n return {\n name,\n type: {\n jsonType: 'string',\n name: 'string',\n type: {name: 'string', type: undefined, jsonType: 'string'},\n },\n }\n }\n\n function collectFields(def: SchemaType | ObjectField) {\n const fields = gatherAllFields(def)\n if (fields.length > 0) {\n return fields\n }\n\n const extended = getBaseType(sanitySchema, def.name as IntrinsicTypeName)\n return gatherAllFields(extended)\n }\n\n function getReferenceDefinition(def: SchemaType, parent: string): any {\n const base = {description: getDescription(def), isReference: true}\n const candidates = arrayify(gatherAllReferenceCandidates(def))\n if (candidates.length === 0) {\n throw new Error('No candidates for reference')\n }\n\n if (candidates.length === 1) {\n return {type: getTypeName(candidates[0].type.name), ...base}\n }\n\n const unionDefinition = getUnionDefinition(candidates, def, {grandParent: parent})\n return {...unionDefinition, ...base}\n }\n\n function getArrayDefinition(\n def: ArraySchemaType,\n parent: string,\n options: {isField?: boolean} = {},\n ): any {\n const base = {description: getDescription(def), kind: 'List'}\n const name = !options.isField && def.name ? {name: getTypeName(def.name)} : {}\n const candidates = def.type?.type && 'of' in def.type ? arrayify(def.type.of) : def.of\n\n return candidates.length === 1\n ? {\n children: getArrayChildDefinition(candidates[0], def),\n ...base,\n ...name,\n }\n : {\n children: getUnionDefinition(candidates, def, {grandParent: parent}),\n ...base,\n ...name,\n }\n }\n\n function getArrayChildDefinition(child: SchemaType, arrayDef: SchemaType) {\n if (typeNeedsHoisting(child)) {\n // Seems to be inline? Should be hoisted?\n throw createLiftTypeError(child.name, arrayDef.name)\n }\n\n if (isReference(child)) {\n return getReferenceDefinition(child, arrayDef.name)\n }\n\n // In the case of nested scalars, recurse (markdown -> longText -> text -> string)\n if (scalars.includes(child.jsonType) && !scalars.includes(child.name)) {\n return {type: mapFieldType(child)}\n }\n\n return {type: getTypeName(child.name)}\n }\n\n function typeNeedsHoisting(type: SchemaType & {isCustomized?: boolean}): boolean {\n if (type.name === 'object') {\n return true\n }\n\n if (type.jsonType === 'object' && !isTopLevelType(type.name)) {\n return true\n }\n\n if (type.isCustomized && !isTopLevelType(type.name)) {\n return true\n }\n\n if (type.isCustomized && disallowedCustomizedMembers.includes(type.name)) {\n return true\n }\n\n return false\n }\n\n function getUnionDefinition(\n candidates: ObjectSchemaType[],\n parent: SchemaType,\n options: {grandParent?: string} = {},\n ) {\n if (candidates.length < 2) {\n throw new Error('Not enough candidates for a union type')\n }\n\n // #1482: When creating union definition do not get caught in recursion loop\n // for types that reference themselves\n const guardPathName = `${typeof parent === 'object' ? parent.name : parent}`\n if (unionRecursionGuards.has(guardPathName)) {\n return {}\n }\n\n const unionCacheKey = `${options.grandParent}-${guardPathName}-${candidates\n .map((c) => c.type?.name)\n .join('-')}`\n if (withUnionCache && unionDefinitionCache.has(unionCacheKey)) {\n return unionDefinitionCache.get(unionCacheKey)\n }\n\n try {\n unionRecursionGuards.add(guardPathName)\n\n candidates.forEach((def, i) => {\n if (typeNeedsHoisting(def)) {\n throw createLiftTypeArrayError(\n i,\n parent.name,\n def.type ? def.type.name : def.name,\n options.grandParent,\n )\n }\n })\n\n const converted = candidates.map((def) => convertType(def))\n\n const getName = (def: {type: string | {name: string}}): string =>\n typeof def.type === 'string' ? def.type : def.type.name\n\n // We might end up with union types being returned - these needs to be flattened\n // so that an ImageOr(PersonOrPet) becomes ImageOrPersonOrPet\n const flattened = converted.reduce(\n (acc, candidate) => {\n const union = unionTypes.find((item) => item.name === candidate.type)\n return union\n ? acc.concat(union.types.map((type) => ({type, isReference: candidate.isReference})))\n : acc.concat(candidate)\n },\n [] as {name?: string; type: string | {name: string}; isReference?: boolean}[],\n )\n\n let allCandidatesAreDocuments = true\n const refs: (string | {name: string})[] = []\n const inlineObjs: string[] = []\n const allTypeNames: string[] = []\n for (const def of flattened) {\n if (def.isReference) {\n refs.push(def.type)\n }\n if (!isReference) {\n inlineObjs.push(def.name || '')\n }\n\n const typeName = typeof def.type === 'string' ? def.type : def.type.name\n\n // Here we remove duplicates, as they might appear twice due to in-line usage of types as well as references\n if (def.name || def.type) {\n allTypeNames.push(def.isReference ? typeName : def.name || '')\n }\n\n const typeDef = sanityTypes.find((type) => type.name === getName(def))\n if (!typeDef || typeDef.type !== 'document') {\n allCandidatesAreDocuments = false\n }\n }\n\n const interfaces = allCandidatesAreDocuments ? ['Document'] : undefined\n const possibleTypes = [...new Set(allTypeNames)].sort()\n\n if (possibleTypes.length < 2) {\n throw new Error(`Not enough types for a union type. Parent: ${parent.name}`)\n }\n\n const name = possibleTypes.join('Or')\n\n if (!unionTypes.some((item) => item.name === name)) {\n unionTypes.push({\n kind: 'Union',\n name,\n types: possibleTypes,\n interfaces,\n })\n }\n\n const references = refs.length > 0 ? refs : undefined\n const inlineObjects = inlineObjs.length > 0 ? inlineObjs : undefined\n\n const unionDefinition = isReference(parent)\n ? {type: name, references}\n : {type: name, references, inlineObjects}\n\n unionDefinitionCache.set(unionCacheKey, unionDefinition)\n return unionDefinition\n } finally {\n unionRecursionGuards.delete(guardPathName)\n }\n }\n\n function getDocumentDefinition(def: ObjectSchemaType) {\n const objectDef = getObjectDefinition(def)\n const fields = getDocumentInterfaceFields(def).concat(objectDef.fields)\n\n return {...objectDef, fields, interfaces: ['Document']}\n }\n\n function getDocumentInterfaceDefinition(): ConvertedInterface {\n return {\n kind: 'Interface',\n name: 'Document',\n description: 'A Sanity document',\n fields: getDocumentInterfaceFields(),\n }\n }\n\n function getDocumentInterfaceFields(type?: ObjectSchemaType): ConvertedFieldDefinition[] {\n const isNullable = typeof nonNullDocumentFields === 'boolean' ? !nonNullDocumentFields : true\n return [\n {\n fieldName: '_id',\n type: 'ID',\n isNullable,\n description: 'Document ID',\n ...getDeprecation(type),\n },\n {\n fieldName: '_type',\n type: 'String',\n isNullable,\n description: 'Document type',\n ...getDeprecation(type),\n },\n {\n fieldName: '_createdAt',\n type: 'Datetime',\n isNullable,\n description: 'Date the document was created',\n ...getDeprecation(type),\n },\n {\n fieldName: '_updatedAt',\n type: 'Datetime',\n isNullable,\n description: 'Date the document was last modified',\n ...getDeprecation(type),\n },\n {\n fieldName: '_rev',\n type: 'String',\n isNullable,\n description: 'Current document revision',\n ...getDeprecation(type),\n },\n ]\n }\n\n function arrayify(thing: unknown) {\n if (Array.isArray(thing)) {\n return thing\n }\n\n return thing === null || typeof thing === 'undefined' ? [] : [thing]\n }\n\n function hasValidationFlag(\n field: SchemaType | ObjectField | ObjectFieldType,\n flag: string,\n ): boolean {\n return (\n 'validation' in field &&\n Array.isArray(field.validation) &&\n field.validation.some(\n (rule) => rule && '_rules' in rule && rule._rules.some((item) => item.flag === flag),\n )\n )\n }\n\n function getDescription(type: SchemaType | ObjectField): string | undefined {\n const description = type.type && type.type.description\n return typeof description === 'string' ? description : undefined\n }\n\n function gatherAllReferenceCandidates(type: SchemaType): ObjectSchemaType[] {\n const allFields = gatherReferenceCandidates(type)\n return uniqBy(allFields, 'name')\n }\n\n function gatherReferenceCandidates(type: SchemaType): ObjectSchemaType[] {\n const refTo = 'to' in type ? type.to : []\n return 'type' in type && type.type ? [...gatherReferenceCandidates(type.type), ...refTo] : refTo\n }\n\n function gatherAllFields(type: SchemaType | ObjectField) {\n const allFields = gatherFields(type)\n return uniqBy(allFields, 'name')\n }\n\n function gatherFields(type: SchemaType | ObjectField): ObjectField[] {\n if ('fields' in type) {\n return type.type ? gatherFields(type.type).concat(type.fields) : type.fields\n }\n\n return []\n }\n\n function hasFieldsLikeShape(type: unknown): type is {fields: unknown} {\n return typeof type === 'object' && type !== null && 'fields' in type\n }\n\n function hasArrayOfFields(type: unknown): type is {fields: ObjectField[]} {\n return hasFieldsLikeShape(type) && Array.isArray(type.fields)\n }\n\n function hasFields(type: SchemaType | ObjectField): boolean {\n if (hasArrayOfFields(type)) {\n return gatherAllFields(type).length > 0\n }\n\n return 'type' in type && type.type ? hasFields(type.type) : false\n }\n}\n\nfunction createLiftTypeArrayError(\n index: number,\n parent: string,\n inlineType = 'object',\n grandParent = '',\n) {\n const helpUrl = generateHelpUrl(helpUrls.SCHEMA_LIFT_ANONYMOUS_OBJECT_TYPE)\n const context = [grandParent, parent].filter(Boolean).join('/')\n return new HelpfulError(\n oneline`\n Encountered anonymous inline ${inlineType} at index ${index} for type/field ${context}.\n To use this type with GraphQL you will need to create a top-level schema type for it.\n See ${helpUrl}`,\n helpUrl,\n )\n}\n\nfunction createLiftTypeError(typeName: string, parent: string, inlineType = 'object') {\n const helpUrl = generateHelpUrl(helpUrls.SCHEMA_LIFT_ANONYMOUS_OBJECT_TYPE)\n return new HelpfulError(\n oneline`\n Encountered anonymous inline ${inlineType} \"${typeName}\" for field/type \"${parent}\".\n To use this field with GraphQL you will need to create a top-level schema type for it.\n See ${helpUrl}`,\n helpUrl,\n )\n}\n\nclass HelpfulError extends Error {\n helpUrl?: string\n\n constructor(message: string, helpUrl?: string) {\n super(message)\n this.helpUrl = helpUrl\n }\n}\n\nfunction getDeprecation(\n type?: SchemaType | ObjectFieldType<SchemaType> | ObjectField<SchemaType>,\n): Partial<Deprecation> {\n return isDeprecationConfiguration(type)\n ? {\n deprecationReason: type.deprecated.reason,\n }\n : {}\n}\n","import type {\n ConvertedDocumentType,\n ConvertedInterface,\n ConvertedType,\n ConvertedUnion,\n} from './types'\n\nexport function isUnion(\n type: ConvertedType | ConvertedUnion | ConvertedInterface,\n): type is ConvertedUnion {\n return type.kind === 'Union'\n}\n\nexport function isNonUnion(\n type: ConvertedType | ConvertedUnion | ConvertedInterface,\n): type is ConvertedType {\n return !isUnion(type) && 'type' in type\n}\n\nexport function isDocumentType(\n type: ConvertedType | ConvertedUnion | ConvertedInterface,\n): type is ConvertedDocumentType {\n return (\n isNonUnion(type) &&\n type.type === 'Object' &&\n Array.isArray(type.interfaces) &&\n type.interfaces.includes('Document')\n )\n}\n","import {flatten} from 'lodash'\nimport {isNonUnion} from '../helpers'\nimport type {\n ConvertedField,\n ConvertedFieldDefinition,\n ConvertedType,\n ConvertedUnion,\n InputFilterField,\n InputObjectType,\n} from '../types'\n\ntype FilterCreator = (field: ConvertedField) => InputFilterField[]\n\nconst filterCreators: Record<string, FilterCreator> = {\n ID: createIdFilters,\n String: createStringFilters,\n Url: createStringFilters,\n Float: createNumberFilters,\n Integer: createNumberFilters,\n Boolean: createBooleanFilters,\n Datetime: createDateFilters,\n Date: createDateFilters,\n Object: createObjectFilters,\n}\n\nexport function generateTypeFilters(types: (ConvertedType | ConvertedUnion)[]): InputObjectType[] {\n const queryable = types\n .filter(isNonUnion)\n .filter(\n (type) => type.type === 'Object' && type.interfaces && type.interfaces.includes('Document'),\n )\n\n return queryable.map((type) => {\n const name = `${type.name}Filter`\n const fields = flatten(type.fields.map(createFieldFilters)).filter(Boolean)\n return {name, kind: 'InputObject', fields: [...fields, ...getDocumentFilters()]}\n })\n}\n\nfunction createFieldFilters(field: ConvertedField) {\n if (filterCreators[field.type]) {\n return filterCreators[field.type](field)\n }\n\n if (field.kind === 'List') {\n return createListFilters()\n }\n\n if (field.isReference) {\n return createReferenceFilters(field)\n }\n\n return createInlineTypeFilters()\n}\n\nfunction getFieldName(field: ConvertedField, modifier = '') {\n const suffix = modifier ? `_${modifier}` : ''\n return `${field.fieldName}${suffix}`\n}\n\nfunction getDocumentFilters(): InputFilterField[] {\n return [\n {\n fieldName: 'references',\n type: 'ID',\n description: 'All documents references the given document ID',\n constraint: {\n comparator: 'REFERENCES',\n },\n },\n {\n fieldName: 'is_draft',\n type: 'Boolean',\n description: 'All documents that are drafts',\n constraint: {\n field: '_id',\n comparator: 'IS_DRAFT',\n },\n },\n ]\n}\n\nfunction createIsDefinedFilter(field: ConvertedFieldDefinition): InputFilterField {\n return {\n fieldName: getFieldName(field, 'is_defined'),\n type: 'Boolean',\n description: 'All documents that have a value for this field',\n constraint: {\n field: field.fieldName,\n comparator: 'IS_DEFINED',\n },\n }\n}\n\nfunction createEqualityFilter(field: ConvertedFieldDefinition): InputFilterField {\n return {\n fieldName: getFieldName(field),\n type: field.type,\n description: 'All documents that are equal to given value',\n constraint: {\n field: field.fieldName,\n comparator: 'EQUALS',\n },\n }\n}\n\nfunction createInequalityFilter(field: ConvertedFieldDefinition): InputFilterField {\n return {\n fieldName: getFieldName(field, 'not'),\n type: field.type,\n description: 'All documents that are not equal to given value',\n constraint: {\n field: field.fieldName,\n comparator: 'NOT_EQUALS',\n },\n }\n}\n\nfunction createDefaultFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return [createEqualityFilter(field), createInequalityFilter(field), createIsDefinedFilter(field)]\n}\n\nfunction createGtLtFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return [\n {\n fieldName: getFieldName(field, 'lt'),\n type: field.type,\n description: 'All documents are less than given value',\n constraint: {\n field: field.fieldName,\n comparator: 'LT',\n },\n },\n {\n fieldName: getFieldName(field, 'lte'),\n type: field.type,\n description: 'All documents are less than or equal to given value',\n constraint: {\n field: field.fieldName,\n comparator: 'LTE',\n },\n },\n {\n fieldName: getFieldName(field, 'gt'),\n type: field.type,\n description: 'All documents are greater than given value',\n constraint: {\n field: field.fieldName,\n comparator: 'GT',\n },\n },\n {\n fieldName: getFieldName(field, 'gte'),\n type: field.type,\n description: 'All documents are greater than or equal to given value',\n constraint: {\n field: field.fieldName,\n comparator: 'GTE',\n },\n },\n ]\n}\n\nfunction createBooleanFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return createDefaultFilters(field)\n}\n\nfunction createIdFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return createStringFilters(field)\n}\n\nfunction createDateFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return createDefaultFilters(field).concat(createGtLtFilters(field))\n}\n\nfunction createStringFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return [\n ...createDefaultFilters(field),\n {\n fieldName: getFieldName(field, 'matches'),\n type: 'String',\n description: 'All documents contain (match) the given word/words',\n constraint: {\n field: field.fieldName,\n comparator: 'MATCHES',\n },\n },\n {\n fieldName: getFieldName(field, 'in'),\n kind: 'List',\n children: {\n type: 'String',\n isNullable: false,\n },\n description: 'All documents match one of the given values',\n constraint: {\n field: field.fieldName,\n comparator: 'IN',\n },\n },\n {\n fieldName: getFieldName(field, 'not_in'),\n kind: 'List',\n children: {\n type: 'String',\n isNullable: false,\n },\n description: 'None of the values match any of the given values',\n constraint: {\n field: field.fieldName,\n comparator: 'NOT_IN',\n },\n },\n ]\n}\n\nfunction createNumberFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return createDefaultFilters(field).concat(createGtLtFilters(field))\n}\n\nfunction createObjectFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return []\n}\n\nfunction createListFilters(): InputFilterField[] {\n return []\n}\n\nfunction createInlineTypeFilters(): InputFilterField[] {\n return []\n}\n\nfunction createReferenceFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return [\n {\n fieldName: getFieldName(field),\n type: 'ID',\n constraint: {\n field: `${field.fieldName}._ref`,\n comparator: 'EQUALS',\n },\n },\n ]\n}\n","import pluralize from 'pluralize-esm'\nimport {startCase, upperFirst} from 'lodash'\nimport type {ConvertedType, ConvertedUnion, InputObjectType, QueryDefinition} from '../types'\nimport {isNonUnion} from '../helpers'\n\nfunction pluralizeTypeName(name: string): string {\n const words = startCase(name).split(' ')\n const last = words[words.length - 1]\n // `pluralize` previously incorrectly cased the S to uppercase after numbers,\n // which we need to maintain for backwards compatibility\n const plural = pluralize(last.toLowerCase()).replace(/(\\d)s$/g, '$1S')\n words[words.length - 1] = upperFirst(plural)\n return words.join('')\n}\n\nexport function generateTypeQueries(\n types: (ConvertedType | ConvertedUnion)[],\n filters: InputObjectType[],\n): QueryDefinition[] {\n const queries: QueryDefinition[] = []\n const queryable = types\n .filter(isNonUnion)\n .filter(\n (type) => type.type === 'Object' && type.interfaces && type.interfaces.includes('Document'),\n )\n\n // Single ID-based result lookup queries\n queryable.forEach((type) => {\n queries.push({\n fieldName: type.name,\n type: type.name,\n constraints: [\n {\n field: '_id',\n comparator: 'EQUALS',\n value: {kind: 'argumentValue', argName: 'id'},\n },\n ],\n args: [\n {\n name: 'id',\n description: `${type.name} document ID`,\n type: 'ID',\n isNullable: false,\n },\n ],\n })\n })\n\n // Fetch all of type\n queryable.forEach((type) => {\n const filterName = `${type.name}Filter`\n const hasFilter = filters.find((filter) => filter.name === filterName)\n queries.push({\n fieldName: `all${pluralizeTypeName(type.name)}`,\n filter: `_type == \"${type.originalName || type.name}\"`,\n type: {\n kind: 'List',\n isNullable: false,\n children: {type: type.name, isNullable: false},\n },\n args: hasFilter\n ? [{name: 'where', type: filterName, isFieldFilter: true}, ...getLimitOffsetArgs()]\n : getLimitOffsetArgs(),\n })\n })\n\n return queries\n}\n\nfunction getLimitOffsetArgs(): QueryDefinition['args'] {\n return [\n {\n name: 'limit',\n type: 'Int',\n description: 'Max documents to return',\n isFieldFilter: false,\n },\n {\n name: 'offset',\n type: 'Int',\n description: 'Offset at which to start returning documents from',\n isFieldFilter: false,\n },\n ]\n}\n","import {ApiSpecification, GeneratedApiSpecification} from '../types'\nimport {generateTypeFilters} from './generateTypeFilters'\nimport {generateTypeQueries} from './generateTypeQueries'\n\nexport default (extracted: ApiSpecification): GeneratedApiSpecification => {\n const filters = generateTypeFilters(extracted.types)\n const queries = generateTypeQueries(extracted.types, filters)\n const types = [...extracted.types, ...filters]\n return {types, queries, interfaces: extracted.interfaces, generation: 'gen1'}\n}\n","import type {InputObjectType} from '../../types'\n\nexport function createBooleanFilters(): InputObjectType {\n return {\n name: 'BooleanFilter',\n kind: 'InputObject',\n isConstraintFilter: true,\n fields: [\n {\n fieldName: 'eq',\n type: 'Boolean',\n description: 'Checks if the value is equal to the given input.',\n },\n {\n fieldName: 'neq',\n type: 'Boolean',\n description: 'Checks if the value is not equal to the given input.',\n },\n {\n fieldName: 'is_defined',\n type: 'Boolean',\n description: 'Checks if the value is defined.',\n },\n ],\n }\n}\n","import type {InputObjectType} from '../../types'\n\nexport function createDateFilters(): InputObjectType {\n return {\n name: 'DateFilter',\n kind: 'InputObject',\n isConstraintFilter: true,\n fields: [\n {\n fieldName: 'eq',\n type: 'Date',\n description: 'Checks if the value is equal to the given input.',\n },\n {\n fieldName: 'neq',\n type: 'Date',\n description: 'Checks if the value is not equal to the given input.',\n },\n {\n fieldName: 'gt',\n type: 'Date',\n description: 'Checks if the value is greater than the given input.',\n },\n {\n fieldName: 'gte',\n type: 'Date',\n description: 'Checks if the value is greater than or equal to the given input.',\n },\n {\n fieldName: 'lt',\n type: 'Date',\n description: 'Checks if the value is lesser than the given input.',\n },\n {\n fieldName: 'lte',\n type: 'Date',\n description: 'Checks if the value is lesser than or equal to the given input.',\n },\n {\n fieldName: 'is_defined',\n type: 'Boolean',\n description: 'Checks if the value is defined.',\n },\n ],\n }\n}\n","import type {InputObjectType} from '../../types'\n\nexport function createDateTimeFilters(): InputObjectType {\n return {\n name: 'DatetimeFilter',\n kind: 'InputObject',\n isConstraintFilter: true,\n fields: [\n {\n fieldName: 'eq',\n type: 'Datetime',\n description: 'Checks if the value is equal to the given input.',\n },\n {\n fieldName: 'neq',\n type: 'Datetime',\n description: 'Checks if the value is not equal to the given input.',\n },\n {\n fieldName: 'gt',\n type: 'Datetime',\n description: 'Checks if the value is greater than the given input.',\n },\n {\n fieldName: 'gte',\n type: 'Datetime',\n description: 'Checks if the value is greater than or equal to the given input.',\n },\n {\n fieldName: 'lt',\n type: 'Datetime',\n description: 'Checks if the value is lesser than the given input.',\n },\n {\n fieldName: 'lte',\n type: 'Datetime',\n description: 'Checks if the value is lesser than or equal to the given input.',\n },\n {\n fieldName: 'is_defined',\n type: 'Boolean',\n description: 'Checks if the value is defined.',\n },\n ],\n }\n}\n","import type {InputObjectType} from '../../types'\n\nexport function createDocumentFilters(): InputObjectType {\n return {\n name: 'DocumentFilter',\n kind: 'InputObject',\n isConstraintFilter: true,\n fields: [\n {\n fieldName: 'references',\n type: 'ID',\n description: 'All documents referencing the given document ID.',\n },\n {\n fieldName: 'is_draft',\n type: 'Boolean',\n description: 'All documents that are drafts.',\n },\n ],\n }\n}\n","import type {InputObjectType} from '../../types'\n\nexport function createFloatFilters(): InputObjectType {\n return {\n name: 'FloatFilter',\n kind: 'InputObject',\n isConstraintFilter: true,\n fields: [\n {\n fieldName: 'eq',\n type: 'Float',\n description: 'Checks if the value is equal to the given input.',\n },\n {\n fieldName: 'neq',\n type: 'Float',\n description: 'Checks if the value is not equal to the given input.',\n },\n {\n fieldName: 'gt',\n type: 'Float',\n description: 'Checks if the value is greater than the given input.',\n },\n {\n fieldName: 'gte',\n type: 'Float',\n description: 'Checks if the value is greater than or equal to the given input.',\n },\n {\n fieldName: 'lt',\n type: 'Float',\n description: 'Checks if the value is lesser than the given input.',\n },\n {\n fieldName: 'lte',\n type: 'Float',\n description: 'Checks if the value is lesser than or equal to the given input.',\n },\n {\n fieldName: 'is_defined',\n type: 'Boolean',\n description: 'Checks if the value is defined.',\n },\n ],\n }\n}\n","import type {InputObjectType} from '../../types'\n\nexport function createIdFilters(): InputObjectType {\n return {\n name: 'IDFilter',\n kind: 'InputObject',\n isConstraintFilter: true,\n fields: [\n {\n fieldName: 'eq',\n type: 'ID',\n description: 'Checks if the value is equal to the given input.',\n },\n {\n fieldName: 'neq',\n type: 'ID',\n description: 'Checks if the value is not equal to the given input.',\n },\n {\n fieldName: 'matches',\n type: 'ID',\n description: 'Checks if the value matches the given word/words.',\n },\n {\n fieldName: 'in',\n kind: 'List',\n children: {\n type: 'ID',\n isNullable: false,\n },\n description: 'Checks if the value is equal to one of the given values.',\n },\n {\n fieldName: 'nin',\n kind: 'List',\n children: {\n type: 'ID',\n isNullable: false,\n },\n description: 'Checks if the value is not equal to one of the given values.',\n },\n ],\n }\n}\n","import type {InputObjectType} from '../../types'\n\nexport function createIntegerFilters(): InputObjectType {\n return {\n name: 'IntFilter',\n kind: 'InputObject',\n isConstraintFilter: true,\n fields: [\n {\n fieldName: 'eq',\n type: 'Int',\n description: 'Checks if the value is equal to the given input.',\n },\n {\n fieldName: 'neq',\n type: 'Int',\n description: 'Checks if the value is not equal to the given input.',\n },\n {\n fieldName: 'gt',\n type: 'Int',\n description: 'Checks if the value is greater than the given input.',\n },\n {\n fieldName: 'gte',\n type: 'Int',\n description: 'Checks if the value is greater than or equal to the given input.',\n },\n {\n fieldName: 'lt',\n type: 'Int',\n description: 'Checks if the value is lesser than the given input.',\n },\n {\n fieldName: 'lte',\n type: 'Int',\n description: 'Checks if the value is lesser than or equal to the given input.',\n },\n {\n fieldName: 'is_defined',\n type: 'Boolean',\n description: 'Checks if the value is defined.',\n },\n ],\n }\n}\n","import type {InputObjectType} from '../../types'\n\nexport function createStringFilters(): InputObjectType {\n return {\n name: 'StringFilter',\n kind: 'InputObject',\n isConstraintFilter: true,\n fields: [\n {\n fieldName: 'eq',\n type: 'String',\n description: 'Checks if the value is equal to the given input.',\n },\n {\n fieldName: 'neq',\n type: 'String',\n description: 'Checks if the value is not equal to the given input.',\n },\n {\n fieldName: 'matches',\n type: 'String',\n description: 'Checks if the value matches the given word/words.',\n },\n {\n fieldName: 'in',\n kind: 'List',\n children: {\n type: 'String',\n isNullable: false,\n },\n description: 'Checks if the value is equal to one of the given values.',\n },\n {\n fieldName: 'nin',\n kind: 'List',\n children: {\n type: 'String',\n isNullable: false,\n },\n description: 'Checks if the value is not equal to one of the given values.',\n },\n {\n fieldName: 'is_defined',\n type: 'Boolean',\n description: 'Checks if the value is defined.',\n },\n ],\n }\n}\n","import type {ConvertedType, ConvertedUnion, InputObjectType} from '../types'\nimport {isNonUnion, isUnion} from '../helpers'\nimport {createBooleanFilters} from './filters/booleanFilters'\nimport {createDateFilters} from './filters/dateFilters'\nimport {createDateTimeFilters} from './filters/dateTimeFilters'\nimport {createDocumentFilters} from './filters/documentFilters'\nimport {createFloatFilters} from './filters/floatFilters'\nimport {createIdFilters} from './filters/idFilters'\nimport {createIntegerFilters} from './filters/integerFilters'\nimport {createStringFilters} from './filters/stringFilters'\n\nconst typeAliases: Record<string, string | undefined> = {\n Url: 'String',\n Text: 'String',\n Email: 'String',\n}\n\ntype FilterCreator = () => InputObjectType\n\nconst filterCreators: Record<string, FilterCreator> = {\n ID: createIdFilters,\n String: createStringFilters,\n Float: createFloatFilters,\n Integer: createIntegerFilters,\n Boolean: createBooleanFilters,\n Datetime: createDateTimeFilters,\n Date: createDateFilters,\n Document: createDocumentFilters,\n}\n\nexport function generateTypeFilters(types: (ConvertedType | ConvertedUnion)[]): InputObjectType[] {\n const builtInTypeKeys = Object.keys(filterCreators)\n const builtinTypeValues = Object.values(filterCreators)\n const objectTypes = types\n .filter(isNonUnion)\n .filter(\n (type) =>\n type.type === 'Object' &&\n !['Block', 'Span'].includes(type.name) &&\n !type.interfaces &&\n !builtInTypeKeys.includes(type.type),\n )\n\n const unionTypes = types.filter(isUnion).map((type) => type.name)\n const documentTypes = types\n .filter(isNonUnion)\n .filter(\n (type) => type.type === 'Object' && type.interfaces && type.interfaces.includes('Document'),\n )\n\n const builtinTypeFilters = createBuiltinTypeFilters(builtinTypeValues)\n const objectTypeFilters = createObjectTypeFilters(objectTypes, {unionTypes})\n const documentTypeFilters = createDocumentTypeFilters(documentTypes, {unionTypes})\n\n return [...builtinTypeFilters, ...objectTypeFilters, ...documentTypeFilters]\n}\n\nfunction createBuiltinTypeFilters(builtinTypeValues: FilterCreator[]): InputObjectType[] {\n return builtinTypeValues.map((filterCreator) => filterCreator())\n}\n\nfunction createObjectTypeFilters(\n objectTypes: ConvertedType[],\n options: {unionTypes: string[]},\n): InputObjectType[] {\n return objectTypes.map((objectType) => ({\n name: `${objectType.name}Filter`,\n kind: 'InputObject',\n fields: createFieldFilters(objectType, options),\n }))\n}\n\nfunction createDocumentTypeFilters(\n documentTypes: ConvertedType[],\n options: {unionTypes: string[]},\n): InputObjectType[] {\n return documentTypes.map((documentType) => ({\n name: `${documentType.name}Filter`,\n kind: 'InputObject',\n fields: [...getDocumentFilters(), ...createFieldFilters(documentType, options)],\n }))\n}\n\nfunction createFieldFilters(objectType: ConvertedType, options: {unionTypes: string[]}) {\n const {unionTypes} = options\n return objectType.fields\n .filter(\n (field) => field.type !== 'JSON' && field.kind !== 'List' && !unionTypes.includes(field.type),\n )\n .map((field) => ({\n fieldName: field.fieldName,\n type: `${typeAliases[field.type] || field.type}Filter`,\n isReference: field.isReference,\n }))\n}\n\nfunction getDocumentFilters() {\n return [\n {\n fieldName: '_',\n type: 'DocumentFilter',\n description: 'Apply filters on document level',\n },\n ]\n}\n","import {isDocumentType, isNonUnion} from '../helpers'\nimport type {ConvertedEnum, ConvertedType, ConvertedUnion, InputObjectType} from '../types'\n\nconst builtInTypes = [\n 'Boolean',\n 'Date',\n 'Datetime',\n 'Email',\n 'Float',\n 'ID',\n 'Integer',\n 'String',\n 'Text',\n 'Url',\n]\n\nconst builtInSortingEnum: ConvertedEnum = {\n name: 'SortOrder',\n kind: 'Enum',\n values: [\n {\n name: 'ASC',\n description: 'Sorts on the value in ascending order.',\n value: 1,\n },\n {\n name: 'DESC',\n description: 'Sorts on the value in descending order.',\n value: 2,\n },\n ],\n}\n\nexport function generateTypeSortings(\n types: (ConvertedType | ConvertedUnion)[],\n): (InputObjectType | ConvertedEnum)[] {\n const objectTypes = types.filter(isNonUnion).filter(\n (type) =>\n type.type === 'Object' &&\n !['Block', 'Span'].includes(type.name) && // TODO: What do we do with blocks?\n !type.interfaces &&\n !builtInTypes.includes(type.name),\n )\n\n const documentTypes = types.filter(isDocumentType)\n\n const hasFields = (type: InputObjectType) => type.fields.length > 0\n\n const objectTypeSortings = createObjectTypeSortings(objectTypes)\n const documentTypeSortings = createDocumentTypeSortings(documentTypes)\n const allSortings = [...objectTypeSortings, ...documentTypeSortings].filter(hasFields)\n\n return [...allSortings, builtInSortingEnum]\n}\n\nfunction createObjectTypeSortings(objectTypes: ConvertedType[]): InputObjectType[] {\n return objectTypes.map((objectType) => ({\n name: `${objectType.name}Sorting`,\n kind: 'InputObject',\n fields: objectType.fields\n .filter((field) => field.type !== 'JSON' && field.kind !== 'List')\n .filter((field) => !field.isReference)\n .map((field) => ({\n fieldName: field.fieldName,\n type: builtInTypes.includes(field.type) ? builtInSortingEnum.name : `${field.type}Sorting`,\n })),\n }))\n}\n\nfunction createDocumentTypeSortings(documentTypes: ConvertedType[]): InputObjectType[] {\n return documentTypes.map((documentType) => ({\n name: `${documentType.name}Sorting`,\n kind: 'InputObject',\n fields: documentType.fields\n .filter((field) => field.type !== 'JSON' && field.kind !== 'List')\n .filter((field) => !field.isReference)\n .map((field) => ({\n fieldName: field.fieldName,\n type: builtInTypes.includes(field.type) ? builtInSortingEnum.name : `${field.type}Sorting`,\n })),\n }))\n}\n","import {upperFirst} from 'lodash'\nimport {isDocumentType} from '../helpers'\nimport type {ConvertedType, ConvertedUnion, InputObjectType, QueryDefinition} from '../types'\n\nexport function generateTypeQueries(\n types: (ConvertedType | ConvertedUnion)[],\n sortings: InputObjectType[],\n): QueryDefinition[] {\n const queries: QueryDefinition[] = []\n const queryable = types.filter(isDocumentType)\n const isSortable = (type: ConvertedType) =>\n sortings.some((sorting) => sorting.name === `${type.name}Sorting`)\n\n // A document of any type\n queries.push({\n fieldName: 'Document',\n type: 'Document',\n constraints: [\n {\n field: '_id',\n comparator: 'eq',\n value: {kind: 'argumentValue', argName: 'id'},\n },\n ],\n args: [\n {\n name: 'id',\n description: 'Document ID',\n type: 'ID',\n isNullable: false,\n },\n ],\n })\n\n // Single ID-based result lookup queries\n queryable.forEach((type) => {\n queries.push({\n fieldName: type.name,\n type: type.name,\n constraints: [\n {\n field: '_id',\n comparator: 'eq',\n value: {kind: 'argumentValue', argName: 'id'},\n },\n ],\n args: [\n {\n name: 'id',\n description: `${type.name} document ID`,\n type: 'ID',\n isNullable: false,\n },\n ],\n })\n })\n\n // Fetch all of type\n queryable.forEach((type) => {\n const sorting: QueryDefinition['args'] = []\n if (isSortable(type)) {\n sorting.push({\n name: 'sort',\n type: {\n kind: 'List',\n isNullable: true,\n children: {\n type: `${type.name}Sorting`,\n isNullable: false,\n },\n },\n })\n }\n\n queries.push({\n fieldName: `all${upperFirst(type.name)}`,\n filter: `_type == \"${type.originalName || type.name}\"`,\n type: {\n kind: 'List',\n isNullable: false,\n children: {type: type.name, isNullable: false},\n },\n args: [\n {\n name: 'where',\n type: `${type.name}Filter`,\n isFieldFilter: true,\n },\n ...sorting,\n {\n name: 'limit',\n type: 'Int',\n description: 'Max documents to return',\n isFieldFilter: false,\n },\n {\n name: 'offset',\n type: 'Int',\n description: 'Offset at which to start returning documents from',\n isFieldFilter: false,\n },\n ],\n })\n })\n\n return queries\n}\n","import type {ApiSpecification, GeneratedApiSpecification, InputObjectType} from '../types'\nimport {generateTypeFilters} from './generateTypeFilters'\nimport {generateTypeSortings} from './generateTypeSortings'\nimport {generateTypeQueries} from './generateTypeQueries'\n\nexport default (extracted: ApiSpecification): GeneratedApiSpecification => {\n const filters = generateTypeFilters(extracted.types)\n const sortings = generateTypeSortings(extracted.types)\n const queries = generateTypeQueries(\n extracted.types,\n sortings.filter((node): node is InputObjectType => node.kind === 'InputObject'),\n )\n const types = [...extracted.types, ...filters, ...sortings]\n\n return {types, queries, interfaces: extracted.interfaces, generation: 'gen2'}\n}\n","import type {InputObjectType} from '../../types'\n\nexport function createDocumentFilters(): InputObjectType {\n return {\n name: 'Sanity_DocumentFilter',\n kind: 'InputObject',\n isConstraintFilter: true,\n fields: [\n {\n fieldName: 'references',\n type: 'ID',\n description: 'All documents referencing the given document ID.',\n },\n {\n fieldName: 'is_draft',\n type: 'Boolean',\n description: 'All documents that are drafts.',\n },\n ],\n }\n}\n","/**\n * Generates a filter field name for a given field name.\n *\n * @internal\n *\n * @param fieldName - The field name to generate a filter field name for.\n * @param suffix - The suffix to append to the field name. Default is `Filter`.\n */\nexport function getFilterFieldName(fieldName: string, suffix = 'Filter'): string {\n return `${fieldName}${suffix}`\n}\n","import type {\n ApiCustomizationOptions,\n ConvertedDocumentType,\n ConvertedType,\n ConvertedUnion,\n InputObjectType,\n} from '../types'\nimport {isDocumentType, isNonUnion, isUnion} from '../helpers'\nimport {createBooleanFilters} from '../gen2/filters/booleanFilters'\nimport {createDateFilters} from '../gen2/filters/dateFilters'\nimport {createDateTimeFilters} from '../gen2/filters/dateTimeFilters'\nimport {createFloatFilters} from '../gen2/filters/floatFilters'\nimport {createIdFilters} from '../gen2/filters/idFilters'\nimport {createIntegerFilters} from '../gen2/filters/integerFilters'\nimport {createStringFilters} from '../gen2/filters/stringFilters'\nimport {createDocumentFilters} from './filters/documentFilters'\nimport {getFilterFieldName} from './utils'\n\nconst typeAliases: Record<string, string | undefined> = {\n Url: 'String',\n Text: 'String',\n Email: 'String',\n}\n\ntype FilterCreator = () => InputObjectType\n\nconst filterCreators: Record<string, FilterCreator> = {\n ID: createIdFilters,\n String: createStringFilters,\n Float: createFloatFilters,\n Integer: createIntegerFilters,\n Boolean: createBooleanFilters,\n Datetime: createDateTimeFilters,\n Date: createDateFilters,\n Document: createDocumentFilters,\n}\n\nexport function generateTypeFilters(\n types: (ConvertedType | ConvertedUnion)[],\n options?: ApiCustomizationOptions,\n): InputObjectType[] {\n const {filterSuffix} = options || {}\n const builtInTypeKeys = Object.keys(filterCreators)\n const builtinTypeValues = Object.values(filterCreators)\n const objectTypes = types.filter(isNonUnion).filter(\n (type) =>\n type.type === 'Object' &&\n !['Block', 'Span'].includes(type.name) && // TODO: What do we do with blocks?\n !type.interfaces &&\n !builtInTypeKeys.includes(type.type),\n )\n\n const unionTypes = types.filter(isUnion).map((type) => type.name)\n const documentTypes = types.filter(\n (type): type is ConvertedDocumentType => type.name === 'Document' || isDocumentType(type),\n )\n\n const builtinTypeFilters = createBuiltinTypeFilters(builtinTypeValues)\n const objectTypeFilters = createObjectTypeFilters(objectTypes, {unionTypes, filterSuffix})\n const documentTypeFilters = createDocumentTypeFilters(documentTypes, {unionTypes, filterSuffix})\n\n return builtinTypeFilters.concat(objectTypeFilters).concat(documentTypeFilters)\n}\n\nfunction createBuiltinTypeFilters(builtinTypeValues: FilterCreator[]): InputObjectType[] {\n return builtinTypeValues.map((filterCreator) => filterCreator())\n}\n\nfunction createObjectTypeFilters(\n objectTypes: ConvertedType[],\n options: {unionTypes: string[]; filterSuffix?: string},\n): InputObjectType[] {\n return objectTypes.map((objectType) => ({\n name: getFilterFieldName(objectType.name, options.filterSuffix),\n kind: 'InputObject',\n fields: createFieldFilters(objectType, options),\n }))\n}\n\nfunction createDocumentTypeFilters(\n documentTypes: ConvertedType[],\n options: {unionTypes: string[]; filterSuffix?: string},\n): InputObjectType[] {\n return documentTypes.map((documentType) => ({\n name: getFilterFieldName(documentType.name, options.filterSuffix),\n kind: 'InputObject',\n fields: [...getDocumentFilters(), ...createFieldFilters(documentType, options)],\n }))\n}\n\nfunction createFieldFilters(\n objectType: ConvertedType,\n options: {unionTypes: string[]; filterSuffix?: string},\n) {\n const {unionTypes} = options\n if (!objectType.fields) {\n return []\n }\n\n return objectType.fields\n .filter(\n (field) => field.type !== 'JSON' && field.kind !== 'List' && !unionTypes.includes(field.type),\n )\n .map((field) => {\n const typeName = typeAliases[field.type] || field.type\n // If the type is default type than don't add a custom suffix\n const filterSuffix = Object.keys({...typeAliases, ...filterCreators}).includes(typeName)\n ? undefined\n : options.filterSuffix\n\n return {\n fieldName: field.fieldName,\n type: getFilterFieldName(typeAliases[field.type] || field.type, filterSuffix),\n isReference: field.isReference,\n }\n })\n}\n\nfunction getDocumentFilters() {\n return [\n {\n fieldName: '_',\n type: 'Sanity_DocumentFilter',\n description: 'Apply filters on document level',\n },\n ]\n}\n","import {isDocumentType, isNonUnion} from '../helpers'\nimport type {\n ConvertedDocumentType,\n ConvertedEnum,\n ConvertedType,\n ConvertedUnion,\n InputObjectType,\n} from '../types'\n\nconst builtInTypes = [\n 'Boolean',\n 'Date',\n 'Datetime',\n 'Email',\n 'Float',\n 'ID',\n 'Integer',\n 'String',\n 'Text',\n 'Url',\n]\n\nconst builtInSortingEnum: ConvertedEnum = {\n name: 'SortOrder',\n kind: 'Enum',\n values: [\n {\n name: 'ASC',\n description: 'Sorts on the value in ascending order.',\n value: 1,\n },\n {\n name: 'DESC',\n description: 'Sorts on the value in descending order.',\n value: 2,\n },\n ],\n}\n\nexport function generateTypeSortings(\n types: (ConvertedType | ConvertedUnion)[],\n): (InputObjectType | ConvertedEnum)[] {\n const objectTypes = types.filter(isNonUnion).filter(\n (type) =>\n type.type === 'Object' &&\n !['Block', 'Span'].includes(type.name) && // TODO: What do we do with blocks?\n !type.interfaces &&\n !builtInTypes.includes(type.name),\n )\n const documentTypes = types.filter(\n (type): type is ConvertedDocumentType => type.name === 'Document' || isDocumentType(type),\n )\n\n const hasFields = (type: InputObjectType) => type.fields.length > 0\n\n const objectTypeSortings = createObjectTypeSortings(objectTypes)\n const documentTypeSortings = createDocumentTypeSortings(documentTypes)\n const allSortings = [...objectTypeSortings, ...documentTypeSortings].filter(hasFields)\n\n return [...allSortings, builtInSortingEnum]\n}\n\nfunction createObjectTypeSortings(objectTypes: ConvertedType[]): InputObjectType[] {\n return objectTypes.map((objectType) => ({\n name: `${objectType.name}Sorting`,\n kind: 'InputObject',\n fields: objectType.fields\n .filter((field) => field.type !== 'JSON' && field.kind !== 'List')\n .filter((field) => !field.isReference)\n .map((field) => ({\n fieldName: field.fieldName,\n type: builtInTypes.includes(field.type) ? builtInSortingEnum.name : `${field.type}Sorting`,\n })),\n }))\n}\n\nfunction createDocumentTypeSortings(documentTypes: ConvertedType[]): InputObjectType[] {\n return documentTypes.map((documentType) => ({\n name: `${documentType.name}Sorting`,\n kind: 'InputObject',\n fields: documentType.fields\n .filter((field) => field.type !== 'JSON' && field.kind !== 'List')\n .filter((field) => !field.isReference)\n .map((field) => ({\n fieldName: field.fieldName,\n type: builtInTypes.includes(field.type) ? builtInSortingEnum.name : `${field.type}Sorting`,\n })),\n }))\n}\n","import {upperFirst} from 'lodash'\nimport {isDocumentType, isUnion} from '../helpers'\nimport type {\n ApiCustomizationOptions,\n ConvertedType,\n ConvertedUnion,\n Deprecation,\n InputObjectType,\n QueryDefinition,\n} from '../types'\nimport {internal} from '../extractFromSanitySchema'\nimport {getFilterFieldName} from './utils'\n\nexport function generateTypeQueries(\n types: (ConvertedType | ConvertedUnion)[],\n sortings: InputObjectType[],\n options?: ApiCustomizationOptions,\n): QueryDefinition[] {\n const {filterSuffix} = options || {}\n const queries: QueryDefinition[] = []\n const documentTypes = types.filter(isDocumentType)\n\n const documentTypeNames = documentTypes.map((docType) =>\n JSON.stringify(docType.originalName || docType.name),\n )\n const documentsFilter = `_type in [${documentTypeNames.join(', ')}]`\n\n const documentInterface = types.find((type) => type.name === 'Document')\n if (!documentInterface || isUnion(documentInterface)) {\n throw new Error('Failed to find document interface')\n }\n\n const queryable = [...documentTypes, documentInterface]\n const isSortable = (type: ConvertedType) =>\n sortings.some((sorting) => sorting.name === `${type.name}Sorting`)\n\n // Single ID-based result lookup queries\n queryable.forEach((type) => {\n queries.push({\n fieldName: type.name,\n type: type.name,\n constraints: [\n {\n field: '_id',\n comparator: 'eq',\n value: {kind: 'argumentValue', argName: 'id'},\n },\n ],\n args: [\n {\n name: 'id',\n description: `${type.name} document ID`,\n type: 'ID',\n isNullable: false,\n },\n ],\n ...getDeprecation(type),\n })\n })\n\n // Fetch all of type\n queryable.forEach((type) => {\n const sorting: QueryDefinition['args'] = []\n if (isSortable(type)) {\n sorting.push({\n name: 'sort',\n type: {\n kind: 'List',\n isNullable: true,\n children: {\n type: `${type.name}Sorting`,\n isNullable: false,\n },\n },\n })\n }\n\n queries.push({\n fieldName: `all${upperFirst(type.name)}`,\n filter:\n type.name === 'Document' && type.kind === 'Interface'\n ? documentsFilter\n : `_type == ${JSON.stringify(type.originalName || type.name)}`,\n type: {\n kind: 'List',\n isNullable: false,\n children: {type: type.name, isNullable: false},\n },\n args: [\n {\n name: 'where',\n type: getFilterFieldName(type.name, filterSuffix),\n isFieldFilter: true,\n },\n ...sorting,\n {\n name: 'limit',\n type: 'Int',\n description: 'Max documents to return',\n isFieldFilter: false,\n },\n {\n name: 'offset',\n type: 'Int',\n description: 'Offset at which to start returning documents from',\n isFieldFilter: false,\n },\n ],\n ...getDeprecation(type),\n })\n })\n\n return queries\n}\n\nfunction getDeprecation(type: ConvertedType): Partial<Deprecation> {\n return type[internal]?.deprecationReason\n ? {\n deprecationReason: type[internal].deprecationReason,\n }\n : {}\n}\n","import util from 'util'\n\nimport {isUnion} from '../helpers'\nimport type {\n ApiCustomizationOptions,\n ApiSpecification,\n ConvertedType,\n GeneratedApiSpecification,\n InputObjectType,\n} from '../types'\nimport {generateTypeFilters} from './generateTypeFilters'\nimport {generateTypeSortings} from './generateTypeSortings'\nimport {generateTypeQueries} from './generateTypeQueries'\n\nexport default (\n extracted: ApiSpecification,\n options?: ApiCustomizationOptions,\n): GeneratedApiSpecification => {\n const documentInterface = extracted.interfaces.find((iface) => iface.name === 'Document')\n if (!documentInterface || isUnion(documentInterface)) {\n throw new Error('Failed to find document interface')\n }\n\n const types = [...extracted.types, documentInterface as ConvertedType]\n\n const filters = generateTypeFilters(types, options)\n const sortings = generateTypeSortings(types)\n const queries = generateTypeQueries(\n types,\n sortings.filter((node): node is InputObjectType => node.kind === 'InputObject'),\n options,\n )\n const graphqlTypes = [...extracted.types, ...filters, ...sortings]\n\n return {types: graphqlTypes, queries, interfaces: extracted.interfaces, generation: 'gen3'}\n}\n","/* eslint-disable no-process-env, no-process-exit, max-statements */\nimport {get} from 'lodash'\nimport yargs from 'yargs/yargs'\nimport type {SanityClient} from '@sanity/client'\nimport type {CliCommandContext, CliOutputter, CliPrompter} from '@sanity/cli'\nimport {hideBin} from 'yargs/helpers'\nimport oneline from 'oneline'\n\nimport {debug} from '../../debug'\nimport {getClientUrl} from '../../util/getClientUrl'\nimport {getUrlHeaders} from '../../util/getUrlHeaders'\nimport {extractFromSanitySchema} from './extractFromSanitySchema'\nimport {SchemaError} from './SchemaError'\nimport {DeployResponse, GeneratedApiSpecification, ValidationResponse} from './types'\nimport {getGraphQLAPIs} from './getGraphQLAPIs'\n\nimport gen1 from './gen1'\nimport gen2 from './gen2'\nimport gen3 from './gen3'\n\nconst latestGeneration = 'gen3'\nconst generations = {\n gen1,\n gen2,\n gen3,\n}\n\nconst apiIdRegex = /^[a-z0-9_-]+$/\nconst isInteractive = process.stdout.isTTY && process.env.TERM !== 'dumb' && !('CI' in process.env)\n\nconst ignoredWarnings: string[] = ['OPTIONAL_INPUT_FIELD_ADDED']\nconst ignoredBreaking: string[] = []\n\ninterface DeployTask {\n dataset: string\n projectId: string\n tag: string\n enablePlayground: boolean\n schema: GeneratedApiSpecification\n}\n\n// eslint-disable-next-line complexity\nexport default async function deployGraphQLApiAction(\n args: {argv?: string[]},\n context: CliCommandContext,\n): Promise<void> {\n // Reparsing CLI flags for better control of binary flags\n const flags = await parseCliFlags(args)\n const {\n force,\n dryRun,\n api: onlyApis,\n dataset: datasetFlag,\n tag: tagFlag,\n playground: playgroundFlag,\n generation: generationFlag,\n 'non-null-document-fields': nonNullDocumentFieldsFlag,\n withUnionCache,\n } = flags\n\n const {apiClient, output, prompt} = context\n\n let spinner\n\n const client = apiClient({\n requireUser: true,\n // Don't throw if we do not have a project ID defined, as we will infer it from the\n // source/ workspace of each configured API later\n requireProject: false,\n }).config({apiVersion: '2023-08-01'})\n\n const apiDefs = await getGraphQLAPIs(context)\n const hasMultipleApis = apiDefs.length > 1 || (flags.api && flags.api.length > 1)\n const usedFlags = [\n datasetFlag && '--dataset',\n tagFlag && '--tag',\n typeof playgroundFlag !== 'undefined' && '--playground',\n typeof generationFlag !== 'undefined' && '--generation',\n typeof nonNullDocumentFieldsFlag !== 'undefined' && '--non-null-document-fields',\n ].filter(Boolean)\n\n if (hasMultipleApis && usedFlags.length > 0) {\n output.warn(`WARN: More than one API defined, and ${usedFlags.join('/')} is specified`)\n output.warn(`WARN: This will use the specified flag(s) for ALL APIs, overriding config!`)\n\n if (flags.force) {\n output.warn(`WARN: --force specified, continuing...`)\n } else if (\n !(await prompt.single({\n type: 'confirm',\n message: 'Continue with flag overrides for all APIs?',\n default: false,\n }))\n ) {\n process.exit(1)\n }\n }\n\n const deployTasks: DeployTask[] = []\n\n const apiNames = new Set<string>()\n const apiIds = new Set<string>()\n for (const apiDef of apiDefs) {\n const dataset = datasetFlag || apiDef.dataset\n const tag = tagFlag || apiDef.tag || 'default'\n const apiName = [dataset, tag].join('/')\n if (apiNames.has(apiName)) {\n throw new Error(`Multiple GraphQL APIs with the same dataset and tag found (${apiName})`)\n }\n\n if (apiDef.id) {\n if (typeof apiDef.id !== 'string' || !apiIdRegex.test(apiDef.id)) {\n throw new Error(\n `Invalid GraphQL API id \"${apiDef.id}\" - only a-z, 0-9, underscore and dashes are allowed`,\n )\n }\n\n if (apiIds.has(apiDef.id)) {\n throw new Error(`Multiple GraphQL APIs with the same ID found (${apiDef.id})`)\n }\n\n apiIds.add(apiDef.id)\n }\n\n apiNames.add(apiName)\n }\n\n for (const apiId of onlyApis || []) {\n if (!apiDefs.some((apiDef) => apiDef.id === apiId)) {\n throw new Error(`GraphQL API with id \"${apiId}\" not found`)\n }\n }\n\n if (onlyApis) {\n output.warn(`Deploying only specified APIs: ${onlyApis.join(', ')}`)\n }\n\n let index = -1\n for (const apiDef of apiDefs) {\n if (onlyApis && (!apiDef.id || !onlyApis.includes(apiDef.id))) {\n continue\n }\n\n index++\n\n const dataset = datasetFlag || apiDef.dataset\n const tag = tagFlag || apiDef.tag || 'default'\n const {projectId, playground, nonNullDocumentFields, schema} = apiDef\n const apiName = [dataset, tag].join('/')\n spinner = output.spinner(`Generating GraphQL API: ${apiName}`).start()\n\n if (!dataset) {\n throw new Error(`No dataset specified for API at index ${index}`)\n }\n\n const projectClient = client.clone().config({projectId, useProjectHostname: true})\n const {currentGeneration, playgroundEnabled} = await getCurrentSchemaProps(\n projectClient,\n dataset,\n tag,\n )\n\n // CLI flag trumps configuration\n const specifiedGeneration =\n typeof generationFlag === 'undefined' ? apiDef.generation : generationFlag\n\n const generation = await resolveApiGeneration({\n currentGeneration,\n specifiedGeneration,\n index,\n force,\n output,\n prompt,\n })\n\n if (!generation) {\n // User cancelled\n spinner.fail()\n continue\n }\n\n if (!isRecognizedApiGeneration(generation)) {\n throw new Error(`Unknown API generation \"${generation}\" for API at index ${index}`)\n }\n\n const enablePlayground = await shouldEnablePlayground({\n dryRun,\n spinner,\n playgroundCliFlag: playgroundFlag,\n playgroundConfiguration: playground,\n playgroundCurrentlyEnabled: playgroundEnabled,\n prompt,\n })\n\n let apiSpec: GeneratedApiSpecification\n try {\n const generateSchema = generations[generation]\n const extracted = extractFromSanitySchema(schema, {\n // Allow CLI flag to override configured setting\n nonNullDocumentFields:\n typeof nonNullDocumentFieldsFlag === 'undefined'\n ? nonNullDocumentFields\n : nonNullDocumentFieldsFlag,\n withUnionCache,\n })\n\n apiSpec = generateSchema(extracted, {filterSuffix: apiDef.filterSuffix})\n } catch (err) {\n spinner.fail()\n\n if (err instanceof SchemaError) {\n err.print(output)\n process.exit(1) // eslint-disable-line no-process-exit\n }\n\n throw err\n }\n\n let valid: ValidationResponse | undefined\n try {\n valid = await projectClient.request<ValidationResponse>({\n url: `/apis/graphql/${dataset}/${tag}/validate`,\n method: 'POST',\n body: {enablePlayground, schema: apiSpec},\n maxRedirects: 0,\n })\n } catch (err) {\n const validationError = get(err, 'response.body.validationError')\n spinner.fail()\n throw validationError ? new Error(validationError) : err\n }\n\n // when the result is not valid and there are breaking changes afoot!\n if (!isResultValid(valid, {spinner, force})) {\n // not valid and a dry run? then it can exit with a error\n if (dryRun) {\n spinner.fail()\n renderBreakingChanges(valid, output)\n process.exit(1)\n }\n\n if (!isInteractive) {\n spinner.fail()\n renderBreakingChanges(valid, output)\n throw new Error(\n 'Dangerous changes found - falling back. Re-run the command with the `--force` flag to force deployment.',\n )\n }\n\n spinner.stop()\n renderBreakingChanges(valid, output)\n const shouldDeploy = await prompt.single({\n type: 'confirm',\n message: 'Do you want to deploy a new API despite the dangerous changes?',\n default: false,\n })\n\n if (!shouldDeploy) {\n spinner.fail()\n continue\n }\n\n spinner.succeed()\n } else if (dryRun) {\n spinner.succeed()\n output.print('GraphQL API is valid and has no breaking changes')\n process.exit(0)\n }\n\n deployTasks.push({\n projectId,\n dataset,\n tag,\n enablePlayground,\n schema: apiSpec,\n })\n }\n\n // Give some space for deployment tasks\n output.print('')\n\n for (const task of deployTasks) {\n const {dataset, tag, schema, projectId, enablePlayground} = task\n\n output.print(`Project: ${projectId}`)\n output.print(`Dataset: ${dataset}`)\n output.print(`Tag: ${tag}`)\n\n spinner = output.spinner('Deploying GraphQL API').start()\n\n try {\n const projectClient = client.clone().config({projectId, useProjectHostname: true})\n const response = await projectClient.request<DeployResponse>({\n url: `/apis/graphql/${dataset}/${tag}`,\n method: 'PUT',\n body: {enablePlayground, schema},\n maxRedirects: 0,\n })\n\n spinner.stop()\n const apiUrl = getClientUrl(\n projectClient,\n response.location.replace(/^\\/(v1|v\\d{4}-\\d{2}-\\d{2})\\//, '/'),\n )\n output.print(`URL: ${apiUrl}`)\n spinner.start('Deployed!').succeed()\n output.print('')\n } catch (err) {\n spinner.fail()\n throw err\n }\n }\n\n // Because of side effects when loading the schema, we can end up in situations where\n // the API has been successfully deployed, but some timer or other handle is keeping\n // the process from naturally exiting.\n process.exit(0)\n}\n\nasync function shouldEnablePlayground({\n dryRun,\n spinner,\n playgroundCliFlag,\n playgroundConfiguration,\n playgroundCurrentlyEnabled,\n prompt,\n}: {\n dryRun: boolean\n spinner: ReturnType<CliCommandContext['output']['spinner']>\n playgroundCliFlag?: boolean\n playgroundConfiguration?: boolean\n playgroundCurrentlyEnabled?: boolean\n prompt: CliCommandContext['prompt']\n}): Promise<boolean> {\n // On a dry run, it doesn't matter, return true 🤷‍♂️\n if (dryRun) {\n return true\n }\n\n // Prioritize CLI flag if set\n if (typeof playgroundCliFlag !== 'undefined') {\n return playgroundCliFlag\n }\n\n // If explicitly set true/false in configuration, use that\n if (typeof playgroundConfiguration !== 'undefined') {\n return playgroundConfiguration\n }\n\n // If API is already deployed, use the current state\n if (typeof playgroundCurrentlyEnabled !== 'undefined') {\n return playgroundCurrentlyEnabled\n }\n\n // If no API is deployed, default to true if non-interactive\n if (!isInteractive) {\n return true\n }\n\n // Interactive environment, so prompt the user\n const prevText = spinner.text\n spinner.warn()\n const shouldDeploy = await prompt.single<boolean>({\n type: 'confirm',\n message: 'Do you want to enable a GraphQL playground?',\n default: true,\n })\n spinner.clear().start(prevText)\n\n return shouldDeploy\n}\n\nasync function getCurrentSchemaProps(\n client: SanityClient,\n dataset: string,\n tag: string,\n): Promise<{\n currentGeneration?: string\n playgroundEnabled?: boolean\n}> {\n try {\n const apiUrl = getClientUrl(client, `/apis/graphql/${dataset}/${tag}`)\n const res = await getUrlHeaders(apiUrl, {\n Authorization: `Bearer ${client.config().token}`,\n })\n\n return {\n currentGeneration: res['x-sanity-graphql-generation'],\n playgroundEnabled: res['x-sanity-graphql-playground'] === 'true',\n }\n } catch (err) {\n if (err.statusCode === 404) {\n return {}\n }\n\n throw err\n }\n}\n\nfunction parseCliFlags(args: {argv?: string[]}) {\n return yargs(hideBin(args.argv || process.argv).slice(2))\n .option('tag', {type: 'string'})\n .option('dataset', {type: 'string'})\n .option('api', {type: 'string', array: true})\n .option('dry-run', {type: 'boolean', default: false})\n .option('generation', {type: 'string'})\n .option('non-null-document-fields', {type: 'boolean'})\n .option('playground', {type: 'boolean'})\n .option('with-union-cache', {type: 'boolean'})\n .option('force', {type: 'boolean'}).argv\n}\n\nfunction isResultValid(\n valid: ValidationResponse,\n {spinner, force}: {spinner: any; force?: boolean},\n) {\n const {validationError, breakingChanges: breaking, dangerousChanges: dangerous} = valid\n if (validationError) {\n spinner.fail()\n throw new Error(`GraphQL schema is not valid:\\n\\n${validationError}`)\n }\n\n const breakingChanges = breaking.filter((change) => !ignoredBreaking.includes(change.type))\n const dangerousChanges = dangerous.filter((change) => !ignoredWarnings.includes(change.type))\n\n const hasProblematicChanges = breakingChanges.length > 0 || dangerousChanges.length > 0\n if (force && hasProblematicChanges) {\n spinner.text = 'Validating GraphQL API: Dangerous changes. Forced with `--force`.'\n spinner.warn()\n return true\n } else if (force || !hasProblematicChanges) {\n spinner.succeed()\n return true\n }\n\n spinner.warn()\n return false\n}\n\nfunction renderBreakingChanges(valid: ValidationResponse, output: CliOutputter) {\n const {breakingChanges: breaking, dangerousChanges: dangerous} = valid\n\n const breakingChanges = breaking.filter((change) => !ignoredBreaking.includes(change.type))\n const dangerousChanges = dangerous.filter((change) => !ignoredWarnings.includes(change.type))\n\n if (dangerousChanges.length > 0) {\n output.print('\\nFound potentially dangerous changes from previous schema:')\n dangerousChanges.forEach((change) => output.print(` - ${change.description}`))\n }\n\n if (breakingChanges.length > 0) {\n output.print('\\nFound BREAKING changes from previous schema:')\n breakingChanges.forEach((change) => output.print(` - ${change.description}`))\n }\n\n output.print('')\n}\n\nasync function resolveApiGeneration({\n currentGeneration,\n specifiedGeneration,\n index,\n force,\n output,\n prompt,\n}: {\n index: number\n currentGeneration?: string\n specifiedGeneration?: string\n force?: boolean\n output: CliOutputter\n prompt: CliPrompter\n}): Promise<string | undefined> {\n // a) If no API is currently deployed:\n // use the specificed one from config, or use whichever generation is the latest\n // b) If an API generation is specified explicitly:\n // use the given one, but _prompt_ if it differs from the current one\n // c) If no API generation is specified explicitly:\n // use whichever is already deployed, but warn if differs from latest\n if (!currentGeneration) {\n const generation = specifiedGeneration || latestGeneration\n debug(\n 'There is no current generation deployed, using %s (%s)',\n generation,\n specifiedGeneration ? 'specified' : 'default',\n )\n return generation\n }\n\n if (specifiedGeneration && specifiedGeneration !== currentGeneration) {\n if (!force && !isInteractive) {\n throw new Error(oneline`\n Specified generation (${specifiedGeneration}) for API at index ${index} differs from the one currently deployed (${currentGeneration}).\n Re-run the command with \\`--force\\` to force deployment.\n `)\n }\n\n output.warn(\n `Specified generation (${specifiedGeneration}) for API at index ${index} differs from the one currently deployed (${currentGeneration}).`,\n )\n\n const confirmDeploy =\n force ||\n (await prompt.single({\n type: 'confirm',\n message: 'Are you sure you want to deploy?',\n default: false,\n }))\n\n return confirmDeploy ? specifiedGeneration : undefined\n }\n\n if (specifiedGeneration) {\n debug('Using specified (%s) generation', specifiedGeneration)\n return specifiedGeneration\n }\n\n debug('Using the currently deployed version (%s)', currentGeneration)\n return currentGeneration\n}\n\nfunction isRecognizedApiGeneration(generation: string): generation is 'gen1' | 'gen2' | 'gen3' {\n return generations.hasOwnProperty(generation)\n}\n"],"names":["request","getIt","promise","HttpError","Error","getUrlHeaders","url","headers","arguments","length","undefined","response","stream","maxRedirects","method","statusCode","error","concat","body","resume","SCHEMA_LIFT_ANONYMOUS_OBJECT_TYPE","consoleOutputter","console","SchemaError","constructor","problemGroups","print","output","logger","forEach","group","problems","problem","icon","logSymbols","severity","info","upperFirst","getPath","path","message","helpId","generateHelpUrl","map","segment","kind","name","type","filter","Boolean","join","_a","_b","skipTypes","allowedJsonTypes","disallowedCustomizedMembers","disabledBlockFields","scalars","internal","Symbol","getBaseType","baseSchema","typeName","Schema","compile","types","_original","to","get","options","hotspot","getTypeName","str","startCase","replace","isBaseType","jsonType","includes","isReference","isBlockType","typeDef","hasBlockParent","isArrayOfBlocks","of","some","isType","isCrossDatasetReference","getCrossDatasetReferenceMetadata","getTypeNames","t","getDataset","dataset","typeNames","extractFromSanitySchema","sanitySchema","extractOptions","nonNullDocumentFields","withUnionCache","unionRecursionGuards","Set","unionDefinitionCache","Map","hasErrors","_validation","Array","isArray","sanityTypes","unionTypes","schemaType","convertedType","convertType","push","withUnions","interfaces","getDocumentInterfaceDefinition","isTopLevelType","mapFieldType","field","isScalar","hasValidationFlag","isArrayType","_convertType","parent","getReferenceDefinition","getArrayDefinition","getDocumentDefinition","getObjectDefinition","hasFields","description","getDescription","props","mapped","isField","fieldName","gqlName","originalName","original","crossDatasetReferenceMetadata","getDeprecation","def","isInline","isDocument","actualType","typeNeedsHoisting","createLiftTypeError","fields","collectFields","firstUnprefixed","Math","max","findIndex","keyField","createStringField","splice","objectIsBlock","objectFields","buildRawField","parentName","isRawAlias","gatherAllFields","extended","base","candidates","arrayify","gatherAllReferenceCandidates","unionDefinition","getUnionDefinition","grandParent","children","getArrayChildDefinition","child","arrayDef","isCustomized","guardPathName","has","unionCacheKey","c","add","i","createLiftTypeArrayError","converted","getName","flattened","reduce","acc","candidate","union","find","item","allCandidatesAreDocuments","refs","inlineObjs","allTypeNames","possibleTypes","sort","references","inlineObjects","set","delete","objectDef","getDocumentInterfaceFields","isNullable","thing","flag","validation","rule","_rules","allFields","gatherReferenceCandidates","uniqBy","refTo","gatherFields","hasFieldsLikeShape","hasArrayOfFields","index","inlineType","helpUrl","helpUrls.SCHEMA_LIFT_ANONYMOUS_OBJECT_TYPE","context","HelpfulError","oneline","__template","isDeprecationConfiguration","deprecationReason","deprecated","reason","isUnion","isNonUnion","isDocumentType","filterCreators","ID","createIdFilters","String","createStringFilters","Url","Float","createNumberFilters","Integer","createBooleanFilters","Datetime","createDateFilters","Date","Object","createObjectFilters","generateTypeFilters","queryable","flatten","createFieldFilters","getDocumentFilters","createListFilters","createReferenceFilters","createInlineTypeFilters","getFieldName","modifier","suffix","getDocumentFilters$2","constraint","comparator","createIsDefinedFilter","createEqualityFilter","createInequalityFilter","createDefaultFilters","createGtLtFilters","pluralizeTypeName","words","split","last","plural","pluralize","toLowerCase","generateTypeQueries","generateTypeQueries$2","filters","queries","constraints","value","argName","args","filterName","hasFilter","isFieldFilter","getLimitOffsetArgs","gen1","extracted","generation","isConstraintFilter","createDateTimeFilters","createDocumentFilters","createDocumentFilters$1","createFloatFilters","createIntegerFilters","typeAliases","Text","Email","Document","builtInTypeKeys","keys","builtinTypeValues","values","objectTypes","documentTypes","builtinTypeFilters","createBuiltinTypeFilters","objectTypeFilters","createObjectTypeFilters","documentTypeFilters","createDocumentTypeFilters","filterCreator","createObjectTypeFilters$1","objectType","createDocumentTypeFilters$1","documentType","createFieldFilters$1","getDocumentFilters$1","builtInTypes","builtInSortingEnum","generateTypeSortings","objectTypeSortings","createObjectTypeSortings","documentTypeSortings","createDocumentTypeSortings","allSortings","generateTypeQueries$1","sortings","isSortable","sorting","gen2","node","getFilterFieldName","filterSuffix","documentTypeNames","docType","JSON","stringify","documentsFilter","documentInterface","gen3","iface","graphqlTypes","latestGeneration","generations","apiIdRegex","isInteractive","process","stdout","isTTY","env","TERM","ignoredWarnings","ignoredBreaking","deployGraphQLApiAction","flags","parseCliFlags","force","dryRun","api","onlyApis","datasetFlag","tag","tagFlag","playground","playgroundFlag","generationFlag","nonNullDocumentFieldsFlag","apiClient","prompt","spinner","client","requireUser","requireProject","config","apiVersion","apiDefs","getGraphQLAPIs","hasMultipleApis","usedFlags","warn","single","default","exit","deployTasks","apiNames","apiIds","apiDef","apiName","id","test","apiId","projectId","schema","start","projectClient","clone","useProjectHostname","currentGeneration","playgroundEnabled","getCurrentSchemaProps","specifiedGeneration","resolveApiGeneration","fail","isRecognizedApiGeneration","enablePlayground","shouldEnablePlayground","playgroundCliFlag","playgroundConfiguration","playgroundCurrentlyEnabled","apiSpec","generateSchema","err","valid","validationError","isResultValid","renderBreakingChanges","stop","shouldDeploy","succeed","task","apiUrl","getClientUrl","location","_ref","prevText","text","clear","res","Authorization","token","yargs","hideBin","argv","slice","option","array","_ref2","breakingChanges","breaking","dangerousChanges","dangerous","change","hasProblematicChanges","_ref3","debug","confirmDeploy","hasOwnProperty"],"mappings":"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"}
1
+ {"version":3,"file":"deployApiAction-TZcCtXan.js","sources":["../../src/_internal/cli/util/getUrlHeaders.ts","../../src/_internal/cli/actions/graphql/helpUrls.ts","../../src/_internal/cli/actions/graphql/SchemaError.ts","../../src/_internal/cli/actions/graphql/extractFromSanitySchema.ts","../../src/_internal/cli/actions/graphql/helpers.ts","../../src/_internal/cli/actions/graphql/gen1/generateTypeFilters.ts","../../src/_internal/cli/actions/graphql/gen1/generateTypeQueries.ts","../../src/_internal/cli/actions/graphql/gen1/index.ts","../../src/_internal/cli/actions/graphql/gen2/filters/booleanFilters.ts","../../src/_internal/cli/actions/graphql/gen2/filters/dateFilters.ts","../../src/_internal/cli/actions/graphql/gen2/filters/dateTimeFilters.ts","../../src/_internal/cli/actions/graphql/gen2/filters/documentFilters.ts","../../src/_internal/cli/actions/graphql/gen2/filters/floatFilters.ts","../../src/_internal/cli/actions/graphql/gen2/filters/idFilters.ts","../../src/_internal/cli/actions/graphql/gen2/filters/integerFilters.ts","../../src/_internal/cli/actions/graphql/gen2/filters/stringFilters.ts","../../src/_internal/cli/actions/graphql/gen2/generateTypeFilters.ts","../../src/_internal/cli/actions/graphql/gen2/generateTypeSortings.ts","../../src/_internal/cli/actions/graphql/gen2/generateTypeQueries.ts","../../src/_internal/cli/actions/graphql/gen2/index.ts","../../src/_internal/cli/actions/graphql/gen3/filters/documentFilters.ts","../../src/_internal/cli/actions/graphql/gen3/utils.ts","../../src/_internal/cli/actions/graphql/gen3/generateTypeFilters.ts","../../src/_internal/cli/actions/graphql/gen3/generateTypeSortings.ts","../../src/_internal/cli/actions/graphql/gen3/generateTypeQueries.ts","../../src/_internal/cli/actions/graphql/gen3/index.ts","../../src/_internal/cli/actions/graphql/deployApiAction.ts"],"sourcesContent":["import {getIt} from 'get-it'\nimport {promise} from 'get-it/middleware'\n\nconst request = getIt([promise()])\n\nexport class HttpError extends Error {\n statusCode?: number\n}\n\nexport async function getUrlHeaders(url: string, headers = {}): Promise<Record<string, string>> {\n const response = await request({\n url,\n stream: true,\n maxRedirects: 0,\n method: 'HEAD',\n headers,\n })\n\n if (response.statusCode >= 400) {\n const error = new HttpError(`Request returned HTTP ${response.statusCode}`)\n error.statusCode = response.statusCode\n throw error\n }\n\n response.body.resume()\n return response.headers\n}\n","export const SCHEMA_LIFT_ANONYMOUS_OBJECT_TYPE = 'schema-lift-anonymous-object-type'\n","import {upperFirst} from 'lodash'\nimport logSymbols from 'log-symbols'\nimport {generateHelpUrl} from '@sanity/generate-help-url'\nimport type {CliOutputter} from '@sanity/cli'\nimport type {SchemaValidationProblemGroup} from '@sanity/types'\n\n// eslint-disable-next-line no-console\nconst consoleOutputter = {error: (...args: unknown[]) => console.error(...args)}\n\nexport class SchemaError extends Error {\n problemGroups: SchemaValidationProblemGroup[]\n\n constructor(problemGroups: SchemaValidationProblemGroup[]) {\n super('Schema errors encountered')\n this.problemGroups = problemGroups\n }\n\n print(output: CliOutputter): void {\n const logger = output || consoleOutputter\n logger.error('Uh oh… found errors in schema:\\n')\n\n this.problemGroups.forEach((group) => {\n group.problems.forEach((problem) => {\n const icon = logSymbols[problem.severity] || logSymbols.info\n output.error(` ${icon} ${upperFirst(problem.severity)}: ${getPath(group.path)}`)\n output.error(` ${problem.message}`)\n if (problem.helpId) {\n output.error(` See ${generateHelpUrl(problem.helpId)}`)\n }\n output.error('')\n })\n })\n }\n}\n\nfunction getPath(path: SchemaValidationProblemGroup['path']) {\n return path\n .map((segment) => {\n if (segment.kind === 'type' && segment.name && segment.type) {\n return `${segment.name} - (${segment.type})`\n }\n if (segment.kind === 'property' && segment.name) {\n return segment.name\n }\n return null\n })\n .filter(Boolean)\n .join(' / ')\n}\n","import {uniqBy, startCase} from 'lodash'\nimport {\n type SchemaType,\n type Schema as CompiledSchema,\n type ReferenceSchemaType,\n type ObjectFieldType,\n type ObjectField,\n type ObjectSchemaType,\n type ArraySchemaType,\n type IntrinsicTypeName,\n type CrossDatasetReferenceSchemaType,\n isDeprecationConfiguration,\n} from '@sanity/types'\nimport {generateHelpUrl} from '@sanity/generate-help-url'\nimport {Schema} from '@sanity/schema'\nimport oneline from 'oneline'\nimport * as helpUrls from './helpUrls'\nimport {SchemaError} from './SchemaError'\nimport type {\n ApiSpecification,\n ConvertedFieldDefinition,\n ConvertedInterface,\n ConvertedType,\n ConvertedUnion,\n Deprecation,\n} from './types'\n\nconst skipTypes = ['document', 'reference']\nconst allowedJsonTypes = ['object', 'array']\nconst disallowedCustomizedMembers = ['object', 'array', 'image', 'file', 'block']\nconst disabledBlockFields = ['markDefs']\nconst scalars = ['string', 'number', 'boolean']\n\n/**\n * Data required elsewhere in the API specification generation process, but that should not be\n * included in the generated API specification.\n */\nexport const internal = Symbol('internal')\n\nfunction getBaseType(baseSchema: CompiledSchema, typeName: IntrinsicTypeName): SchemaType {\n if (typeName === 'crossDatasetReference') {\n return Schema.compile({\n types: (baseSchema._original?.types || []).concat([\n {\n name: `__placeholder__`,\n type: 'crossDatasetReference',\n // Just needs _something_ to refer to, doesn't matter what\n to: [{type: 'sanity.imageAsset'}],\n },\n ]),\n }).get('__placeholder__')\n }\n\n return Schema.compile({\n types: (baseSchema._original?.types || []).concat([\n {name: `__placeholder__`, type: typeName, options: {hotspot: true}},\n ]),\n }).get('__placeholder__')\n}\n\nfunction getTypeName(str: string): string {\n const name = startCase(str).replace(/\\s+/g, '')\n return name === 'Number' ? 'Float' : name\n}\n\nfunction isBaseType(type: SchemaType): boolean {\n return (\n type.name !== type.jsonType &&\n allowedJsonTypes.includes(type.jsonType) &&\n !skipTypes.includes(type.name) &&\n !isReference(type)\n )\n}\n\nfunction isBlockType(typeDef: SchemaType | ObjectField): boolean {\n if (typeDef.name === 'block') {\n return true\n }\n\n if (typeDef.type) {\n return isBlockType(typeDef.type)\n }\n\n return false\n}\n\nfunction hasBlockParent(typeDef: SchemaType): boolean {\n if (typeDef.type && typeDef.type.name === 'block' && !typeDef.type.type) {\n return true\n }\n\n return Boolean(typeDef.type && hasBlockParent(typeDef.type))\n}\n\nfunction isArrayOfBlocks(typeDef: SchemaType | ObjectField): boolean {\n const type = typeDef.type || typeDef\n if (!('jsonType' in type) || type.jsonType !== 'array') {\n return false\n }\n\n return (type.of || []).some(hasBlockParent)\n}\n\nfunction isType(typeDef: SchemaType | ObjectField | ObjectFieldType, typeName: string): boolean {\n let type: SchemaType | ObjectField | ObjectFieldType | undefined = typeDef\n while (type) {\n if (type.name === typeName || (type.type && type.type.name === typeName)) {\n return true\n }\n\n type = type.type\n }\n return false\n}\n\nfunction isReference(\n typeDef: SchemaType | ObjectField | ObjectFieldType,\n): typeDef is ReferenceSchemaType {\n return isType(typeDef, 'reference')\n}\n\nfunction isCrossDatasetReference(\n typeDef: SchemaType | ObjectField | ObjectFieldType | CrossDatasetReferenceSchemaType,\n) {\n return isType(typeDef, 'crossDatasetReference')\n}\n\nfunction getCrossDatasetReferenceMetadata(\n typeDef: SchemaType | ObjectField | ObjectFieldType | CrossDatasetReferenceSchemaType,\n) {\n if (!isCrossDatasetReference(typeDef)) return undefined\n\n function getTypeNames(\n type: SchemaType | ObjectField | ObjectFieldType | CrossDatasetReferenceSchemaType | undefined,\n ) {\n if (!type) return undefined\n if (!('to' in type)) return getTypeNames(type.type)\n return type.to.map((t) => t.type).filter((t): t is string => typeof t === 'string')\n }\n\n function getDataset(\n type: SchemaType | ObjectField | ObjectFieldType | CrossDatasetReferenceSchemaType | undefined,\n ) {\n if (!type) return undefined\n if ('dataset' in type && typeof type.dataset === 'string') return type.dataset\n if (type.type) return getDataset(type.type)\n return undefined\n }\n\n const typeNames = getTypeNames(typeDef)\n if (!typeNames) return undefined\n\n const dataset = getDataset(typeDef)\n if (typeof dataset !== 'string') return undefined\n\n return {typeNames, dataset}\n}\n\nexport function extractFromSanitySchema(\n sanitySchema: CompiledSchema,\n extractOptions: {nonNullDocumentFields?: boolean; withUnionCache?: boolean} = {},\n): ApiSpecification {\n const {nonNullDocumentFields, withUnionCache} = extractOptions\n const unionRecursionGuards = new Set<string>()\n const unionDefinitionCache = new Map<string, any>()\n const hasErrors =\n sanitySchema._validation &&\n sanitySchema._validation.some((group) =>\n group.problems.some((problem) => problem.severity === 'error'),\n )\n\n if (hasErrors && Array.isArray(sanitySchema._validation)) {\n throw new SchemaError(sanitySchema._validation)\n }\n\n const sanityTypes = sanitySchema._original?.types || []\n const typeNames = sanitySchema.getTypeNames()\n const unionTypes: ConvertedUnion[] = []\n const types: ConvertedType[] = []\n\n for (const typeName of typeNames) {\n const schemaType = sanitySchema.get(typeName)\n if (schemaType === undefined) {\n continue\n }\n if (!isBaseType(schemaType)) {\n continue\n }\n\n const convertedType = convertType(schemaType)\n types.push(convertedType)\n }\n\n const withUnions = [...types, ...unionTypes]\n return {types: withUnions, interfaces: [getDocumentInterfaceDefinition()]}\n\n function isTopLevelType(typeName: string): boolean {\n return typeNames.includes(typeName)\n }\n\n function mapFieldType(field: SchemaType | ObjectField | ObjectFieldType): string {\n if (!field.type) {\n throw new Error('Field has no type!')\n }\n\n const jsonType = 'jsonType' in field ? field.jsonType : ''\n const isScalar = scalars.includes(jsonType)\n if (isScalar && jsonType === 'number') {\n return hasValidationFlag(field, 'integer') ? 'Int' : 'Float'\n } else if (isScalar) {\n return getTypeName(jsonType)\n }\n\n const type = field.type.type || field.type\n\n // In the case of nested scalars, recurse (markdown -> longText -> text -> string)\n if (type.type) {\n return mapFieldType(type)\n }\n\n switch (type.name) {\n case 'number':\n return hasValidationFlag(field, 'integer') ? 'Int' : 'Float'\n default:\n return getTypeName(type.name)\n }\n }\n\n function isArrayType(type: SchemaType | ObjectField): type is ArraySchemaType {\n return Boolean(\n ('jsonType' in type && type.jsonType === 'array') ||\n (type.type && type.type.jsonType === 'array'),\n )\n }\n\n function _convertType(\n type: SchemaType | ObjectField,\n parent: string,\n options: {isField?: boolean},\n ): ConvertedType {\n let name: string | undefined\n if (type.type) {\n name = type.type.name\n } else if ('jsonType' in type) {\n name = type.jsonType\n }\n\n if (isReference(type)) {\n return getReferenceDefinition(type, parent)\n }\n\n if (isArrayType(type)) {\n return getArrayDefinition(type, parent, options)\n }\n\n if (name === 'document') {\n return getDocumentDefinition(type as ObjectSchemaType)\n }\n\n if (name === 'block' || name === 'object') {\n return getObjectDefinition(type, parent)\n }\n\n if (hasFields(type)) {\n return getObjectDefinition(type, parent)\n }\n\n return {\n type: mapFieldType(type),\n description: getDescription(type),\n } as any\n }\n\n function convertType(\n type: SchemaType | ObjectField,\n parent?: string,\n props: {fieldName?: string} & Partial<Deprecation> = {},\n ): ConvertedType {\n const mapped = _convertType(type, parent || '', {isField: Boolean(props.fieldName)})\n const gqlName = props.fieldName || mapped.name\n const originalName = type.name\n const original = gqlName === originalName ? {} : {originalName: originalName}\n const crossDatasetReferenceMetadata = getCrossDatasetReferenceMetadata(type)\n\n return {\n ...getDeprecation(type.type),\n ...props,\n ...mapped,\n ...original,\n ...(crossDatasetReferenceMetadata && {crossDatasetReferenceMetadata}),\n }\n }\n\n function isField(def: SchemaType | ObjectField): def is ObjectField {\n return !('jsonType' in def) || !def.jsonType\n }\n\n // eslint-disable-next-line complexity\n function getObjectDefinition(def: SchemaType | ObjectField, parent?: string): ConvertedType {\n const isInline = isField(def)\n const isDocument = def.type ? def.type.name === 'document' : false\n const actualType = isInline ? def.type : def\n\n if (typeNeedsHoisting(actualType)) {\n throw createLiftTypeError(def.name, parent || '', actualType.name)\n }\n\n if (isInline && parent && def.type.name === 'object') {\n throw createLiftTypeError(def.name, parent)\n }\n\n if (parent && def.type && isTopLevelType(def.type.name)) {\n return {type: getTypeName(def.type.name)} as any\n }\n\n const name = `${parent || ''}${getTypeName(def.name)}`\n const fields = collectFields(def)\n const firstUnprefixed = Math.max(\n 0,\n fields.findIndex((field) => field.name[0] !== '_'),\n )\n\n const keyField = createStringField('_key')\n\n fields.splice(firstUnprefixed, 0, keyField)\n\n if (!isDocument) {\n fields.splice(firstUnprefixed + 1, 0, createStringField('_type'))\n }\n\n const objectIsBlock = isBlockType(def)\n const objectFields = objectIsBlock\n ? fields.filter((field) => !disabledBlockFields.includes(field.name))\n : fields\n\n return {\n kind: 'Type',\n name,\n type: 'Object',\n description: getDescription(def),\n fields: objectFields.map((field) =>\n isArrayOfBlocks(field)\n ? buildRawField(field, name)\n : (convertType(field, name, {\n fieldName: field.name,\n ...getDeprecation(def),\n }) as any),\n ),\n [internal]: {\n ...getDeprecation(def),\n },\n }\n }\n\n function buildRawField(field: ObjectField, parentName: string) {\n return {\n ...convertType(field, parentName, {fieldName: `${field.name}Raw`}),\n type: 'JSON',\n isRawAlias: true,\n }\n }\n\n function createStringField(name: string): ObjectField {\n return {\n name,\n type: {\n jsonType: 'string',\n name: 'string',\n type: {name: 'string', type: undefined, jsonType: 'string'},\n },\n }\n }\n\n function collectFields(def: SchemaType | ObjectField) {\n const fields = gatherAllFields(def)\n if (fields.length > 0) {\n return fields\n }\n\n const extended = getBaseType(sanitySchema, def.name as IntrinsicTypeName)\n return gatherAllFields(extended)\n }\n\n function getReferenceDefinition(def: SchemaType, parent: string): any {\n const base = {description: getDescription(def), isReference: true}\n const candidates = arrayify(gatherAllReferenceCandidates(def))\n if (candidates.length === 0) {\n throw new Error('No candidates for reference')\n }\n\n if (candidates.length === 1) {\n return {type: getTypeName(candidates[0].type.name), ...base}\n }\n\n const unionDefinition = getUnionDefinition(candidates, def, {grandParent: parent})\n return {...unionDefinition, ...base}\n }\n\n function getArrayDefinition(\n def: ArraySchemaType,\n parent: string,\n options: {isField?: boolean} = {},\n ): any {\n const base = {description: getDescription(def), kind: 'List'}\n const name = !options.isField && def.name ? {name: getTypeName(def.name)} : {}\n const candidates = def.type?.type && 'of' in def.type ? arrayify(def.type.of) : def.of\n\n return candidates.length === 1\n ? {\n children: getArrayChildDefinition(candidates[0], def),\n ...base,\n ...name,\n }\n : {\n children: getUnionDefinition(candidates, def, {grandParent: parent}),\n ...base,\n ...name,\n }\n }\n\n function getArrayChildDefinition(child: SchemaType, arrayDef: SchemaType) {\n if (typeNeedsHoisting(child)) {\n // Seems to be inline? Should be hoisted?\n throw createLiftTypeError(child.name, arrayDef.name)\n }\n\n if (isReference(child)) {\n return getReferenceDefinition(child, arrayDef.name)\n }\n\n // In the case of nested scalars, recurse (markdown -> longText -> text -> string)\n if (scalars.includes(child.jsonType) && !scalars.includes(child.name)) {\n return {type: mapFieldType(child)}\n }\n\n return {type: getTypeName(child.name)}\n }\n\n function typeNeedsHoisting(type: SchemaType & {isCustomized?: boolean}): boolean {\n if (type.name === 'object') {\n return true\n }\n\n if (type.jsonType === 'object' && !isTopLevelType(type.name)) {\n return true\n }\n\n if (type.isCustomized && !isTopLevelType(type.name)) {\n return true\n }\n\n if (type.isCustomized && disallowedCustomizedMembers.includes(type.name)) {\n return true\n }\n\n return false\n }\n\n function getUnionDefinition(\n candidates: ObjectSchemaType[],\n parent: SchemaType,\n options: {grandParent?: string} = {},\n ) {\n if (candidates.length < 2) {\n throw new Error('Not enough candidates for a union type')\n }\n\n // #1482: When creating union definition do not get caught in recursion loop\n // for types that reference themselves\n const guardPathName = `${typeof parent === 'object' ? parent.name : parent}`\n if (unionRecursionGuards.has(guardPathName)) {\n return {}\n }\n\n const unionCacheKey = `${options.grandParent}-${guardPathName}-${candidates\n .map((c) => c.type?.name)\n .join('-')}`\n if (withUnionCache && unionDefinitionCache.has(unionCacheKey)) {\n return unionDefinitionCache.get(unionCacheKey)\n }\n\n try {\n unionRecursionGuards.add(guardPathName)\n\n candidates.forEach((def, i) => {\n if (typeNeedsHoisting(def)) {\n throw createLiftTypeArrayError(\n i,\n parent.name,\n def.type ? def.type.name : def.name,\n options.grandParent,\n )\n }\n })\n\n const converted = candidates.map((def) => convertType(def))\n\n const getName = (def: {type: string | {name: string}}): string =>\n typeof def.type === 'string' ? def.type : def.type.name\n\n // We might end up with union types being returned - these needs to be flattened\n // so that an ImageOr(PersonOrPet) becomes ImageOrPersonOrPet\n const flattened = converted.reduce(\n (acc, candidate) => {\n const union = unionTypes.find((item) => item.name === candidate.type)\n return union\n ? acc.concat(union.types.map((type) => ({type, isReference: candidate.isReference})))\n : acc.concat(candidate)\n },\n [] as {name?: string; type: string | {name: string}; isReference?: boolean}[],\n )\n\n let allCandidatesAreDocuments = true\n const refs: (string | {name: string})[] = []\n const inlineObjs: string[] = []\n const allTypeNames: string[] = []\n for (const def of flattened) {\n if (def.isReference) {\n refs.push(def.type)\n }\n if (!isReference) {\n inlineObjs.push(def.name || '')\n }\n\n const typeName = typeof def.type === 'string' ? def.type : def.type.name\n\n // Here we remove duplicates, as they might appear twice due to in-line usage of types as well as references\n if (def.name || def.type) {\n allTypeNames.push(def.isReference ? typeName : def.name || '')\n }\n\n const typeDef = sanityTypes.find((type) => type.name === getName(def))\n if (!typeDef || typeDef.type !== 'document') {\n allCandidatesAreDocuments = false\n }\n }\n\n const interfaces = allCandidatesAreDocuments ? ['Document'] : undefined\n const possibleTypes = [...new Set(allTypeNames)].sort()\n\n if (possibleTypes.length < 2) {\n throw new Error(`Not enough types for a union type. Parent: ${parent.name}`)\n }\n\n const name = possibleTypes.join('Or')\n\n if (!unionTypes.some((item) => item.name === name)) {\n unionTypes.push({\n kind: 'Union',\n name,\n types: possibleTypes,\n interfaces,\n })\n }\n\n const references = refs.length > 0 ? refs : undefined\n const inlineObjects = inlineObjs.length > 0 ? inlineObjs : undefined\n\n const unionDefinition = isReference(parent)\n ? {type: name, references}\n : {type: name, references, inlineObjects}\n\n unionDefinitionCache.set(unionCacheKey, unionDefinition)\n return unionDefinition\n } finally {\n unionRecursionGuards.delete(guardPathName)\n }\n }\n\n function getDocumentDefinition(def: ObjectSchemaType) {\n const objectDef = getObjectDefinition(def)\n const fields = getDocumentInterfaceFields(def).concat(objectDef.fields)\n\n return {...objectDef, fields, interfaces: ['Document']}\n }\n\n function getDocumentInterfaceDefinition(): ConvertedInterface {\n return {\n kind: 'Interface',\n name: 'Document',\n description: 'A Sanity document',\n fields: getDocumentInterfaceFields(),\n }\n }\n\n function getDocumentInterfaceFields(type?: ObjectSchemaType): ConvertedFieldDefinition[] {\n const isNullable = typeof nonNullDocumentFields === 'boolean' ? !nonNullDocumentFields : true\n return [\n {\n fieldName: '_id',\n type: 'ID',\n isNullable,\n description: 'Document ID',\n ...getDeprecation(type),\n },\n {\n fieldName: '_type',\n type: 'String',\n isNullable,\n description: 'Document type',\n ...getDeprecation(type),\n },\n {\n fieldName: '_createdAt',\n type: 'Datetime',\n isNullable,\n description: 'Date the document was created',\n ...getDeprecation(type),\n },\n {\n fieldName: '_updatedAt',\n type: 'Datetime',\n isNullable,\n description: 'Date the document was last modified',\n ...getDeprecation(type),\n },\n {\n fieldName: '_rev',\n type: 'String',\n isNullable,\n description: 'Current document revision',\n ...getDeprecation(type),\n },\n ]\n }\n\n function arrayify(thing: unknown) {\n if (Array.isArray(thing)) {\n return thing\n }\n\n return thing === null || typeof thing === 'undefined' ? [] : [thing]\n }\n\n function hasValidationFlag(\n field: SchemaType | ObjectField | ObjectFieldType,\n flag: string,\n ): boolean {\n return (\n 'validation' in field &&\n Array.isArray(field.validation) &&\n field.validation.some(\n (rule) => rule && '_rules' in rule && rule._rules.some((item) => item.flag === flag),\n )\n )\n }\n\n function getDescription(type: SchemaType | ObjectField): string | undefined {\n const description = type.type && type.type.description\n return typeof description === 'string' ? description : undefined\n }\n\n function gatherAllReferenceCandidates(type: SchemaType): ObjectSchemaType[] {\n const allFields = gatherReferenceCandidates(type)\n return uniqBy(allFields, 'name')\n }\n\n function gatherReferenceCandidates(type: SchemaType): ObjectSchemaType[] {\n const refTo = 'to' in type ? type.to : []\n return 'type' in type && type.type ? [...gatherReferenceCandidates(type.type), ...refTo] : refTo\n }\n\n function gatherAllFields(type: SchemaType | ObjectField) {\n const allFields = gatherFields(type)\n return uniqBy(allFields, 'name')\n }\n\n function gatherFields(type: SchemaType | ObjectField): ObjectField[] {\n if ('fields' in type) {\n return type.type ? gatherFields(type.type).concat(type.fields) : type.fields\n }\n\n return []\n }\n\n function hasFieldsLikeShape(type: unknown): type is {fields: unknown} {\n return typeof type === 'object' && type !== null && 'fields' in type\n }\n\n function hasArrayOfFields(type: unknown): type is {fields: ObjectField[]} {\n return hasFieldsLikeShape(type) && Array.isArray(type.fields)\n }\n\n function hasFields(type: SchemaType | ObjectField): boolean {\n if (hasArrayOfFields(type)) {\n return gatherAllFields(type).length > 0\n }\n\n return 'type' in type && type.type ? hasFields(type.type) : false\n }\n}\n\nfunction createLiftTypeArrayError(\n index: number,\n parent: string,\n inlineType = 'object',\n grandParent = '',\n) {\n const helpUrl = generateHelpUrl(helpUrls.SCHEMA_LIFT_ANONYMOUS_OBJECT_TYPE)\n const context = [grandParent, parent].filter(Boolean).join('/')\n return new HelpfulError(\n oneline`\n Encountered anonymous inline ${inlineType} at index ${index} for type/field ${context}.\n To use this type with GraphQL you will need to create a top-level schema type for it.\n See ${helpUrl}`,\n helpUrl,\n )\n}\n\nfunction createLiftTypeError(typeName: string, parent: string, inlineType = 'object') {\n const helpUrl = generateHelpUrl(helpUrls.SCHEMA_LIFT_ANONYMOUS_OBJECT_TYPE)\n return new HelpfulError(\n oneline`\n Encountered anonymous inline ${inlineType} \"${typeName}\" for field/type \"${parent}\".\n To use this field with GraphQL you will need to create a top-level schema type for it.\n See ${helpUrl}`,\n helpUrl,\n )\n}\n\nclass HelpfulError extends Error {\n helpUrl?: string\n\n constructor(message: string, helpUrl?: string) {\n super(message)\n this.helpUrl = helpUrl\n }\n}\n\nfunction getDeprecation(\n type?: SchemaType | ObjectFieldType<SchemaType> | ObjectField<SchemaType>,\n): Partial<Deprecation> {\n return isDeprecationConfiguration(type)\n ? {\n deprecationReason: type.deprecated.reason,\n }\n : {}\n}\n","import type {\n ConvertedDocumentType,\n ConvertedInterface,\n ConvertedType,\n ConvertedUnion,\n} from './types'\n\nexport function isUnion(\n type: ConvertedType | ConvertedUnion | ConvertedInterface,\n): type is ConvertedUnion {\n return type.kind === 'Union'\n}\n\nexport function isNonUnion(\n type: ConvertedType | ConvertedUnion | ConvertedInterface,\n): type is ConvertedType {\n return !isUnion(type) && 'type' in type\n}\n\nexport function isDocumentType(\n type: ConvertedType | ConvertedUnion | ConvertedInterface,\n): type is ConvertedDocumentType {\n return (\n isNonUnion(type) &&\n type.type === 'Object' &&\n Array.isArray(type.interfaces) &&\n type.interfaces.includes('Document')\n )\n}\n","import {flatten} from 'lodash'\nimport {isNonUnion} from '../helpers'\nimport type {\n ConvertedField,\n ConvertedFieldDefinition,\n ConvertedType,\n ConvertedUnion,\n InputFilterField,\n InputObjectType,\n} from '../types'\n\ntype FilterCreator = (field: ConvertedField) => InputFilterField[]\n\nconst filterCreators: Record<string, FilterCreator> = {\n ID: createIdFilters,\n String: createStringFilters,\n Url: createStringFilters,\n Float: createNumberFilters,\n Integer: createNumberFilters,\n Boolean: createBooleanFilters,\n Datetime: createDateFilters,\n Date: createDateFilters,\n Object: createObjectFilters,\n}\n\nexport function generateTypeFilters(types: (ConvertedType | ConvertedUnion)[]): InputObjectType[] {\n const queryable = types\n .filter(isNonUnion)\n .filter(\n (type) => type.type === 'Object' && type.interfaces && type.interfaces.includes('Document'),\n )\n\n return queryable.map((type) => {\n const name = `${type.name}Filter`\n const fields = flatten(type.fields.map(createFieldFilters)).filter(Boolean)\n return {name, kind: 'InputObject', fields: [...fields, ...getDocumentFilters()]}\n })\n}\n\nfunction createFieldFilters(field: ConvertedField) {\n if (filterCreators[field.type]) {\n return filterCreators[field.type](field)\n }\n\n if (field.kind === 'List') {\n return createListFilters()\n }\n\n if (field.isReference) {\n return createReferenceFilters(field)\n }\n\n return createInlineTypeFilters()\n}\n\nfunction getFieldName(field: ConvertedField, modifier = '') {\n const suffix = modifier ? `_${modifier}` : ''\n return `${field.fieldName}${suffix}`\n}\n\nfunction getDocumentFilters(): InputFilterField[] {\n return [\n {\n fieldName: 'references',\n type: 'ID',\n description: 'All documents references the given document ID',\n constraint: {\n comparator: 'REFERENCES',\n },\n },\n {\n fieldName: 'is_draft',\n type: 'Boolean',\n description: 'All documents that are drafts',\n constraint: {\n field: '_id',\n comparator: 'IS_DRAFT',\n },\n },\n ]\n}\n\nfunction createIsDefinedFilter(field: ConvertedFieldDefinition): InputFilterField {\n return {\n fieldName: getFieldName(field, 'is_defined'),\n type: 'Boolean',\n description: 'All documents that have a value for this field',\n constraint: {\n field: field.fieldName,\n comparator: 'IS_DEFINED',\n },\n }\n}\n\nfunction createEqualityFilter(field: ConvertedFieldDefinition): InputFilterField {\n return {\n fieldName: getFieldName(field),\n type: field.type,\n description: 'All documents that are equal to given value',\n constraint: {\n field: field.fieldName,\n comparator: 'EQUALS',\n },\n }\n}\n\nfunction createInequalityFilter(field: ConvertedFieldDefinition): InputFilterField {\n return {\n fieldName: getFieldName(field, 'not'),\n type: field.type,\n description: 'All documents that are not equal to given value',\n constraint: {\n field: field.fieldName,\n comparator: 'NOT_EQUALS',\n },\n }\n}\n\nfunction createDefaultFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return [createEqualityFilter(field), createInequalityFilter(field), createIsDefinedFilter(field)]\n}\n\nfunction createGtLtFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return [\n {\n fieldName: getFieldName(field, 'lt'),\n type: field.type,\n description: 'All documents are less than given value',\n constraint: {\n field: field.fieldName,\n comparator: 'LT',\n },\n },\n {\n fieldName: getFieldName(field, 'lte'),\n type: field.type,\n description: 'All documents are less than or equal to given value',\n constraint: {\n field: field.fieldName,\n comparator: 'LTE',\n },\n },\n {\n fieldName: getFieldName(field, 'gt'),\n type: field.type,\n description: 'All documents are greater than given value',\n constraint: {\n field: field.fieldName,\n comparator: 'GT',\n },\n },\n {\n fieldName: getFieldName(field, 'gte'),\n type: field.type,\n description: 'All documents are greater than or equal to given value',\n constraint: {\n field: field.fieldName,\n comparator: 'GTE',\n },\n },\n ]\n}\n\nfunction createBooleanFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return createDefaultFilters(field)\n}\n\nfunction createIdFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return createStringFilters(field)\n}\n\nfunction createDateFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return createDefaultFilters(field).concat(createGtLtFilters(field))\n}\n\nfunction createStringFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return [\n ...createDefaultFilters(field),\n {\n fieldName: getFieldName(field, 'matches'),\n type: 'String',\n description: 'All documents contain (match) the given word/words',\n constraint: {\n field: field.fieldName,\n comparator: 'MATCHES',\n },\n },\n {\n fieldName: getFieldName(field, 'in'),\n kind: 'List',\n children: {\n type: 'String',\n isNullable: false,\n },\n description: 'All documents match one of the given values',\n constraint: {\n field: field.fieldName,\n comparator: 'IN',\n },\n },\n {\n fieldName: getFieldName(field, 'not_in'),\n kind: 'List',\n children: {\n type: 'String',\n isNullable: false,\n },\n description: 'None of the values match any of the given values',\n constraint: {\n field: field.fieldName,\n comparator: 'NOT_IN',\n },\n },\n ]\n}\n\nfunction createNumberFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return createDefaultFilters(field).concat(createGtLtFilters(field))\n}\n\nfunction createObjectFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return []\n}\n\nfunction createListFilters(): InputFilterField[] {\n return []\n}\n\nfunction createInlineTypeFilters(): InputFilterField[] {\n return []\n}\n\nfunction createReferenceFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return [\n {\n fieldName: getFieldName(field),\n type: 'ID',\n constraint: {\n field: `${field.fieldName}._ref`,\n comparator: 'EQUALS',\n },\n },\n ]\n}\n","import pluralize from 'pluralize-esm'\nimport {startCase, upperFirst} from 'lodash'\nimport type {ConvertedType, ConvertedUnion, InputObjectType, QueryDefinition} from '../types'\nimport {isNonUnion} from '../helpers'\n\nfunction pluralizeTypeName(name: string): string {\n const words = startCase(name).split(' ')\n const last = words[words.length - 1]\n // `pluralize` previously incorrectly cased the S to uppercase after numbers,\n // which we need to maintain for backwards compatibility\n const plural = pluralize(last.toLowerCase()).replace(/(\\d)s$/g, '$1S')\n words[words.length - 1] = upperFirst(plural)\n return words.join('')\n}\n\nexport function generateTypeQueries(\n types: (ConvertedType | ConvertedUnion)[],\n filters: InputObjectType[],\n): QueryDefinition[] {\n const queries: QueryDefinition[] = []\n const queryable = types\n .filter(isNonUnion)\n .filter(\n (type) => type.type === 'Object' && type.interfaces && type.interfaces.includes('Document'),\n )\n\n // Single ID-based result lookup queries\n queryable.forEach((type) => {\n queries.push({\n fieldName: type.name,\n type: type.name,\n constraints: [\n {\n field: '_id',\n comparator: 'EQUALS',\n value: {kind: 'argumentValue', argName: 'id'},\n },\n ],\n args: [\n {\n name: 'id',\n description: `${type.name} document ID`,\n type: 'ID',\n isNullable: false,\n },\n ],\n })\n })\n\n // Fetch all of type\n queryable.forEach((type) => {\n const filterName = `${type.name}Filter`\n const hasFilter = filters.find((filter) => filter.name === filterName)\n queries.push({\n fieldName: `all${pluralizeTypeName(type.name)}`,\n filter: `_type == \"${type.originalName || type.name}\"`,\n type: {\n kind: 'List',\n isNullable: false,\n children: {type: type.name, isNullable: false},\n },\n args: hasFilter\n ? [{name: 'where', type: filterName, isFieldFilter: true}, ...getLimitOffsetArgs()]\n : getLimitOffsetArgs(),\n })\n })\n\n return queries\n}\n\nfunction getLimitOffsetArgs(): QueryDefinition['args'] {\n return [\n {\n name: 'limit',\n type: 'Int',\n description: 'Max documents to return',\n isFieldFilter: false,\n },\n {\n name: 'offset',\n type: 'Int',\n description: 'Offset at which to start returning documents from',\n isFieldFilter: false,\n },\n ]\n}\n","import {ApiSpecification, GeneratedApiSpecification} from '../types'\nimport {generateTypeFilters} from './generateTypeFilters'\nimport {generateTypeQueries} from './generateTypeQueries'\n\nexport default (extracted: ApiSpecification): GeneratedApiSpecification => {\n const filters = generateTypeFilters(extracted.types)\n const queries = generateTypeQueries(extracted.types, filters)\n const types = [...extracted.types, ...filters]\n return {types, queries, interfaces: extracted.interfaces, generation: 'gen1'}\n}\n","import type {InputObjectType} from '../../types'\n\nexport function createBooleanFilters(): InputObjectType {\n return {\n name: 'BooleanFilter',\n kind: 'InputObject',\n isConstraintFilter: true,\n fields: [\n {\n fieldName: 'eq',\n type: 'Boolean',\n description: 'Checks if the value is equal to the given input.',\n },\n {\n fieldName: 'neq',\n type: 'Boolean',\n description: 'Checks if the value is not equal to the given input.',\n },\n {\n fieldName: 'is_defined',\n type: 'Boolean',\n description: 'Checks if the value is defined.',\n },\n ],\n }\n}\n","import type {InputObjectType} from '../../types'\n\nexport function createDateFilters(): InputObjectType {\n return {\n name: 'DateFilter',\n kind: 'InputObject',\n isConstraintFilter: true,\n fields: [\n {\n fieldName: 'eq',\n type: 'Date',\n description: 'Checks if the value is equal to the given input.',\n },\n {\n fieldName: 'neq',\n type: 'Date',\n description: 'Checks if the value is not equal to the given input.',\n },\n {\n fieldName: 'gt',\n type: 'Date',\n description: 'Checks if the value is greater than the given input.',\n },\n {\n fieldName: 'gte',\n type: 'Date',\n description: 'Checks if the value is greater than or equal to the given input.',\n },\n {\n fieldName: 'lt',\n type: 'Date',\n description: 'Checks if the value is lesser than the given input.',\n },\n {\n fieldName: 'lte',\n type: 'Date',\n description: 'Checks if the value is lesser than or equal to the given input.',\n },\n {\n fieldName: 'is_defined',\n type: 'Boolean',\n description: 'Checks if the value is defined.',\n },\n ],\n }\n}\n","import type {InputObjectType} from '../../types'\n\nexport function createDateTimeFilters(): InputObjectType {\n return {\n name: 'DatetimeFilter',\n kind: 'InputObject',\n isConstraintFilter: true,\n fields: [\n {\n fieldName: 'eq',\n type: 'Datetime',\n description: 'Checks if the value is equal to the given input.',\n },\n {\n fieldName: 'neq',\n type: 'Datetime',\n description: 'Checks if the value is not equal to the given input.',\n },\n {\n fieldName: 'gt',\n type: 'Datetime',\n description: 'Checks if the value is greater than the given input.',\n },\n {\n fieldName: 'gte',\n type: 'Datetime',\n description: 'Checks if the value is greater than or equal to the given input.',\n },\n {\n fieldName: 'lt',\n type: 'Datetime',\n description: 'Checks if the value is lesser than the given input.',\n },\n {\n fieldName: 'lte',\n type: 'Datetime',\n description: 'Checks if the value is lesser than or equal to the given input.',\n },\n {\n fieldName: 'is_defined',\n type: 'Boolean',\n description: 'Checks if the value is defined.',\n },\n ],\n }\n}\n","import type {InputObjectType} from '../../types'\n\nexport function createDocumentFilters(): InputObjectType {\n return {\n name: 'DocumentFilter',\n kind: 'InputObject',\n isConstraintFilter: true,\n fields: [\n {\n fieldName: 'references',\n type: 'ID',\n description: 'All documents referencing the given document ID.',\n },\n {\n fieldName: 'is_draft',\n type: 'Boolean',\n description: 'All documents that are drafts.',\n },\n ],\n }\n}\n","import type {InputObjectType} from '../../types'\n\nexport function createFloatFilters(): InputObjectType {\n return {\n name: 'FloatFilter',\n kind: 'InputObject',\n isConstraintFilter: true,\n fields: [\n {\n fieldName: 'eq',\n type: 'Float',\n description: 'Checks if the value is equal to the given input.',\n },\n {\n fieldName: 'neq',\n type: 'Float',\n description: 'Checks if the value is not equal to the given input.',\n },\n {\n fieldName: 'gt',\n type: 'Float',\n description: 'Checks if the value is greater than the given input.',\n },\n {\n fieldName: 'gte',\n type: 'Float',\n description: 'Checks if the value is greater than or equal to the given input.',\n },\n {\n fieldName: 'lt',\n type: 'Float',\n description: 'Checks if the value is lesser than the given input.',\n },\n {\n fieldName: 'lte',\n type: 'Float',\n description: 'Checks if the value is lesser than or equal to the given input.',\n },\n {\n fieldName: 'is_defined',\n type: 'Boolean',\n description: 'Checks if the value is defined.',\n },\n ],\n }\n}\n","import type {InputObjectType} from '../../types'\n\nexport function createIdFilters(): InputObjectType {\n return {\n name: 'IDFilter',\n kind: 'InputObject',\n isConstraintFilter: true,\n fields: [\n {\n fieldName: 'eq',\n type: 'ID',\n description: 'Checks if the value is equal to the given input.',\n },\n {\n fieldName: 'neq',\n type: 'ID',\n description: 'Checks if the value is not equal to the given input.',\n },\n {\n fieldName: 'matches',\n type: 'ID',\n description: 'Checks if the value matches the given word/words.',\n },\n {\n fieldName: 'in',\n kind: 'List',\n children: {\n type: 'ID',\n isNullable: false,\n },\n description: 'Checks if the value is equal to one of the given values.',\n },\n {\n fieldName: 'nin',\n kind: 'List',\n children: {\n type: 'ID',\n isNullable: false,\n },\n description: 'Checks if the value is not equal to one of the given values.',\n },\n ],\n }\n}\n","import type {InputObjectType} from '../../types'\n\nexport function createIntegerFilters(): InputObjectType {\n return {\n name: 'IntFilter',\n kind: 'InputObject',\n isConstraintFilter: true,\n fields: [\n {\n fieldName: 'eq',\n type: 'Int',\n description: 'Checks if the value is equal to the given input.',\n },\n {\n fieldName: 'neq',\n type: 'Int',\n description: 'Checks if the value is not equal to the given input.',\n },\n {\n fieldName: 'gt',\n type: 'Int',\n description: 'Checks if the value is greater than the given input.',\n },\n {\n fieldName: 'gte',\n type: 'Int',\n description: 'Checks if the value is greater than or equal to the given input.',\n },\n {\n fieldName: 'lt',\n type: 'Int',\n description: 'Checks if the value is lesser than the given input.',\n },\n {\n fieldName: 'lte',\n type: 'Int',\n description: 'Checks if the value is lesser than or equal to the given input.',\n },\n {\n fieldName: 'is_defined',\n type: 'Boolean',\n description: 'Checks if the value is defined.',\n },\n ],\n }\n}\n","import type {InputObjectType} from '../../types'\n\nexport function createStringFilters(): InputObjectType {\n return {\n name: 'StringFilter',\n kind: 'InputObject',\n isConstraintFilter: true,\n fields: [\n {\n fieldName: 'eq',\n type: 'String',\n description: 'Checks if the value is equal to the given input.',\n },\n {\n fieldName: 'neq',\n type: 'String',\n description: 'Checks if the value is not equal to the given input.',\n },\n {\n fieldName: 'matches',\n type: 'String',\n description: 'Checks if the value matches the given word/words.',\n },\n {\n fieldName: 'in',\n kind: 'List',\n children: {\n type: 'String',\n isNullable: false,\n },\n description: 'Checks if the value is equal to one of the given values.',\n },\n {\n fieldName: 'nin',\n kind: 'List',\n children: {\n type: 'String',\n isNullable: false,\n },\n description: 'Checks if the value is not equal to one of the given values.',\n },\n {\n fieldName: 'is_defined',\n type: 'Boolean',\n description: 'Checks if the value is defined.',\n },\n ],\n }\n}\n","import type {ConvertedType, ConvertedUnion, InputObjectType} from '../types'\nimport {isNonUnion, isUnion} from '../helpers'\nimport {createBooleanFilters} from './filters/booleanFilters'\nimport {createDateFilters} from './filters/dateFilters'\nimport {createDateTimeFilters} from './filters/dateTimeFilters'\nimport {createDocumentFilters} from './filters/documentFilters'\nimport {createFloatFilters} from './filters/floatFilters'\nimport {createIdFilters} from './filters/idFilters'\nimport {createIntegerFilters} from './filters/integerFilters'\nimport {createStringFilters} from './filters/stringFilters'\n\nconst typeAliases: Record<string, string | undefined> = {\n Url: 'String',\n Text: 'String',\n Email: 'String',\n}\n\ntype FilterCreator = () => InputObjectType\n\nconst filterCreators: Record<string, FilterCreator> = {\n ID: createIdFilters,\n String: createStringFilters,\n Float: createFloatFilters,\n Integer: createIntegerFilters,\n Boolean: createBooleanFilters,\n Datetime: createDateTimeFilters,\n Date: createDateFilters,\n Document: createDocumentFilters,\n}\n\nexport function generateTypeFilters(types: (ConvertedType | ConvertedUnion)[]): InputObjectType[] {\n const builtInTypeKeys = Object.keys(filterCreators)\n const builtinTypeValues = Object.values(filterCreators)\n const objectTypes = types\n .filter(isNonUnion)\n .filter(\n (type) =>\n type.type === 'Object' &&\n !['Block', 'Span'].includes(type.name) &&\n !type.interfaces &&\n !builtInTypeKeys.includes(type.type),\n )\n\n const unionTypes = types.filter(isUnion).map((type) => type.name)\n const documentTypes = types\n .filter(isNonUnion)\n .filter(\n (type) => type.type === 'Object' && type.interfaces && type.interfaces.includes('Document'),\n )\n\n const builtinTypeFilters = createBuiltinTypeFilters(builtinTypeValues)\n const objectTypeFilters = createObjectTypeFilters(objectTypes, {unionTypes})\n const documentTypeFilters = createDocumentTypeFilters(documentTypes, {unionTypes})\n\n return [...builtinTypeFilters, ...objectTypeFilters, ...documentTypeFilters]\n}\n\nfunction createBuiltinTypeFilters(builtinTypeValues: FilterCreator[]): InputObjectType[] {\n return builtinTypeValues.map((filterCreator) => filterCreator())\n}\n\nfunction createObjectTypeFilters(\n objectTypes: ConvertedType[],\n options: {unionTypes: string[]},\n): InputObjectType[] {\n return objectTypes.map((objectType) => ({\n name: `${objectType.name}Filter`,\n kind: 'InputObject',\n fields: createFieldFilters(objectType, options),\n }))\n}\n\nfunction createDocumentTypeFilters(\n documentTypes: ConvertedType[],\n options: {unionTypes: string[]},\n): InputObjectType[] {\n return documentTypes.map((documentType) => ({\n name: `${documentType.name}Filter`,\n kind: 'InputObject',\n fields: [...getDocumentFilters(), ...createFieldFilters(documentType, options)],\n }))\n}\n\nfunction createFieldFilters(objectType: ConvertedType, options: {unionTypes: string[]}) {\n const {unionTypes} = options\n return objectType.fields\n .filter(\n (field) => field.type !== 'JSON' && field.kind !== 'List' && !unionTypes.includes(field.type),\n )\n .map((field) => ({\n fieldName: field.fieldName,\n type: `${typeAliases[field.type] || field.type}Filter`,\n isReference: field.isReference,\n }))\n}\n\nfunction getDocumentFilters() {\n return [\n {\n fieldName: '_',\n type: 'DocumentFilter',\n description: 'Apply filters on document level',\n },\n ]\n}\n","import {isDocumentType, isNonUnion} from '../helpers'\nimport type {ConvertedEnum, ConvertedType, ConvertedUnion, InputObjectType} from '../types'\n\nconst builtInTypes = [\n 'Boolean',\n 'Date',\n 'Datetime',\n 'Email',\n 'Float',\n 'ID',\n 'Integer',\n 'String',\n 'Text',\n 'Url',\n]\n\nconst builtInSortingEnum: ConvertedEnum = {\n name: 'SortOrder',\n kind: 'Enum',\n values: [\n {\n name: 'ASC',\n description: 'Sorts on the value in ascending order.',\n value: 1,\n },\n {\n name: 'DESC',\n description: 'Sorts on the value in descending order.',\n value: 2,\n },\n ],\n}\n\nexport function generateTypeSortings(\n types: (ConvertedType | ConvertedUnion)[],\n): (InputObjectType | ConvertedEnum)[] {\n const objectTypes = types.filter(isNonUnion).filter(\n (type) =>\n type.type === 'Object' &&\n !['Block', 'Span'].includes(type.name) && // TODO: What do we do with blocks?\n !type.interfaces &&\n !builtInTypes.includes(type.name),\n )\n\n const documentTypes = types.filter(isDocumentType)\n\n const hasFields = (type: InputObjectType) => type.fields.length > 0\n\n const objectTypeSortings = createObjectTypeSortings(objectTypes)\n const documentTypeSortings = createDocumentTypeSortings(documentTypes)\n const allSortings = [...objectTypeSortings, ...documentTypeSortings].filter(hasFields)\n\n return [...allSortings, builtInSortingEnum]\n}\n\nfunction createObjectTypeSortings(objectTypes: ConvertedType[]): InputObjectType[] {\n return objectTypes.map((objectType) => ({\n name: `${objectType.name}Sorting`,\n kind: 'InputObject',\n fields: objectType.fields\n .filter((field) => field.type !== 'JSON' && field.kind !== 'List')\n .filter((field) => !field.isReference)\n .map((field) => ({\n fieldName: field.fieldName,\n type: builtInTypes.includes(field.type) ? builtInSortingEnum.name : `${field.type}Sorting`,\n })),\n }))\n}\n\nfunction createDocumentTypeSortings(documentTypes: ConvertedType[]): InputObjectType[] {\n return documentTypes.map((documentType) => ({\n name: `${documentType.name}Sorting`,\n kind: 'InputObject',\n fields: documentType.fields\n .filter((field) => field.type !== 'JSON' && field.kind !== 'List')\n .filter((field) => !field.isReference)\n .map((field) => ({\n fieldName: field.fieldName,\n type: builtInTypes.includes(field.type) ? builtInSortingEnum.name : `${field.type}Sorting`,\n })),\n }))\n}\n","import {upperFirst} from 'lodash'\nimport {isDocumentType} from '../helpers'\nimport type {ConvertedType, ConvertedUnion, InputObjectType, QueryDefinition} from '../types'\n\nexport function generateTypeQueries(\n types: (ConvertedType | ConvertedUnion)[],\n sortings: InputObjectType[],\n): QueryDefinition[] {\n const queries: QueryDefinition[] = []\n const queryable = types.filter(isDocumentType)\n const isSortable = (type: ConvertedType) =>\n sortings.some((sorting) => sorting.name === `${type.name}Sorting`)\n\n // A document of any type\n queries.push({\n fieldName: 'Document',\n type: 'Document',\n constraints: [\n {\n field: '_id',\n comparator: 'eq',\n value: {kind: 'argumentValue', argName: 'id'},\n },\n ],\n args: [\n {\n name: 'id',\n description: 'Document ID',\n type: 'ID',\n isNullable: false,\n },\n ],\n })\n\n // Single ID-based result lookup queries\n queryable.forEach((type) => {\n queries.push({\n fieldName: type.name,\n type: type.name,\n constraints: [\n {\n field: '_id',\n comparator: 'eq',\n value: {kind: 'argumentValue', argName: 'id'},\n },\n ],\n args: [\n {\n name: 'id',\n description: `${type.name} document ID`,\n type: 'ID',\n isNullable: false,\n },\n ],\n })\n })\n\n // Fetch all of type\n queryable.forEach((type) => {\n const sorting: QueryDefinition['args'] = []\n if (isSortable(type)) {\n sorting.push({\n name: 'sort',\n type: {\n kind: 'List',\n isNullable: true,\n children: {\n type: `${type.name}Sorting`,\n isNullable: false,\n },\n },\n })\n }\n\n queries.push({\n fieldName: `all${upperFirst(type.name)}`,\n filter: `_type == \"${type.originalName || type.name}\"`,\n type: {\n kind: 'List',\n isNullable: false,\n children: {type: type.name, isNullable: false},\n },\n args: [\n {\n name: 'where',\n type: `${type.name}Filter`,\n isFieldFilter: true,\n },\n ...sorting,\n {\n name: 'limit',\n type: 'Int',\n description: 'Max documents to return',\n isFieldFilter: false,\n },\n {\n name: 'offset',\n type: 'Int',\n description: 'Offset at which to start returning documents from',\n isFieldFilter: false,\n },\n ],\n })\n })\n\n return queries\n}\n","import type {ApiSpecification, GeneratedApiSpecification, InputObjectType} from '../types'\nimport {generateTypeFilters} from './generateTypeFilters'\nimport {generateTypeSortings} from './generateTypeSortings'\nimport {generateTypeQueries} from './generateTypeQueries'\n\nexport default (extracted: ApiSpecification): GeneratedApiSpecification => {\n const filters = generateTypeFilters(extracted.types)\n const sortings = generateTypeSortings(extracted.types)\n const queries = generateTypeQueries(\n extracted.types,\n sortings.filter((node): node is InputObjectType => node.kind === 'InputObject'),\n )\n const types = [...extracted.types, ...filters, ...sortings]\n\n return {types, queries, interfaces: extracted.interfaces, generation: 'gen2'}\n}\n","import type {InputObjectType} from '../../types'\n\nexport function createDocumentFilters(): InputObjectType {\n return {\n name: 'Sanity_DocumentFilter',\n kind: 'InputObject',\n isConstraintFilter: true,\n fields: [\n {\n fieldName: 'references',\n type: 'ID',\n description: 'All documents referencing the given document ID.',\n },\n {\n fieldName: 'is_draft',\n type: 'Boolean',\n description: 'All documents that are drafts.',\n },\n ],\n }\n}\n","/**\n * Generates a filter field name for a given field name.\n *\n * @internal\n *\n * @param fieldName - The field name to generate a filter field name for.\n * @param suffix - The suffix to append to the field name. Default is `Filter`.\n */\nexport function getFilterFieldName(fieldName: string, suffix = 'Filter'): string {\n return `${fieldName}${suffix}`\n}\n","import type {\n ApiCustomizationOptions,\n ConvertedDocumentType,\n ConvertedType,\n ConvertedUnion,\n InputObjectType,\n} from '../types'\nimport {isDocumentType, isNonUnion, isUnion} from '../helpers'\nimport {createBooleanFilters} from '../gen2/filters/booleanFilters'\nimport {createDateFilters} from '../gen2/filters/dateFilters'\nimport {createDateTimeFilters} from '../gen2/filters/dateTimeFilters'\nimport {createFloatFilters} from '../gen2/filters/floatFilters'\nimport {createIdFilters} from '../gen2/filters/idFilters'\nimport {createIntegerFilters} from '../gen2/filters/integerFilters'\nimport {createStringFilters} from '../gen2/filters/stringFilters'\nimport {createDocumentFilters} from './filters/documentFilters'\nimport {getFilterFieldName} from './utils'\n\nconst typeAliases: Record<string, string | undefined> = {\n Url: 'String',\n Text: 'String',\n Email: 'String',\n}\n\ntype FilterCreator = () => InputObjectType\n\nconst filterCreators: Record<string, FilterCreator> = {\n ID: createIdFilters,\n String: createStringFilters,\n Float: createFloatFilters,\n Integer: createIntegerFilters,\n Boolean: createBooleanFilters,\n Datetime: createDateTimeFilters,\n Date: createDateFilters,\n Document: createDocumentFilters,\n}\n\nexport function generateTypeFilters(\n types: (ConvertedType | ConvertedUnion)[],\n options?: ApiCustomizationOptions,\n): InputObjectType[] {\n const {filterSuffix} = options || {}\n const builtInTypeKeys = Object.keys(filterCreators)\n const builtinTypeValues = Object.values(filterCreators)\n const objectTypes = types.filter(isNonUnion).filter(\n (type) =>\n type.type === 'Object' &&\n !['Block', 'Span'].includes(type.name) && // TODO: What do we do with blocks?\n !type.interfaces &&\n !builtInTypeKeys.includes(type.type),\n )\n\n const unionTypes = types.filter(isUnion).map((type) => type.name)\n const documentTypes = types.filter(\n (type): type is ConvertedDocumentType => type.name === 'Document' || isDocumentType(type),\n )\n\n const builtinTypeFilters = createBuiltinTypeFilters(builtinTypeValues)\n const objectTypeFilters = createObjectTypeFilters(objectTypes, {unionTypes, filterSuffix})\n const documentTypeFilters = createDocumentTypeFilters(documentTypes, {unionTypes, filterSuffix})\n\n return builtinTypeFilters.concat(objectTypeFilters).concat(documentTypeFilters)\n}\n\nfunction createBuiltinTypeFilters(builtinTypeValues: FilterCreator[]): InputObjectType[] {\n return builtinTypeValues.map((filterCreator) => filterCreator())\n}\n\nfunction createObjectTypeFilters(\n objectTypes: ConvertedType[],\n options: {unionTypes: string[]; filterSuffix?: string},\n): InputObjectType[] {\n return objectTypes.map((objectType) => ({\n name: getFilterFieldName(objectType.name, options.filterSuffix),\n kind: 'InputObject',\n fields: createFieldFilters(objectType, options),\n }))\n}\n\nfunction createDocumentTypeFilters(\n documentTypes: ConvertedType[],\n options: {unionTypes: string[]; filterSuffix?: string},\n): InputObjectType[] {\n return documentTypes.map((documentType) => ({\n name: getFilterFieldName(documentType.name, options.filterSuffix),\n kind: 'InputObject',\n fields: [...getDocumentFilters(), ...createFieldFilters(documentType, options)],\n }))\n}\n\nfunction createFieldFilters(\n objectType: ConvertedType,\n options: {unionTypes: string[]; filterSuffix?: string},\n) {\n const {unionTypes} = options\n if (!objectType.fields) {\n return []\n }\n\n return objectType.fields\n .filter(\n (field) => field.type !== 'JSON' && field.kind !== 'List' && !unionTypes.includes(field.type),\n )\n .map((field) => {\n const typeName = typeAliases[field.type] || field.type\n // If the type is default type than don't add a custom suffix\n const filterSuffix = Object.keys({...typeAliases, ...filterCreators}).includes(typeName)\n ? undefined\n : options.filterSuffix\n\n return {\n fieldName: field.fieldName,\n type: getFilterFieldName(typeAliases[field.type] || field.type, filterSuffix),\n isReference: field.isReference,\n }\n })\n}\n\nfunction getDocumentFilters() {\n return [\n {\n fieldName: '_',\n type: 'Sanity_DocumentFilter',\n description: 'Apply filters on document level',\n },\n ]\n}\n","import {isDocumentType, isNonUnion} from '../helpers'\nimport type {\n ConvertedDocumentType,\n ConvertedEnum,\n ConvertedType,\n ConvertedUnion,\n InputObjectType,\n} from '../types'\n\nconst builtInTypes = [\n 'Boolean',\n 'Date',\n 'Datetime',\n 'Email',\n 'Float',\n 'ID',\n 'Integer',\n 'String',\n 'Text',\n 'Url',\n]\n\nconst builtInSortingEnum: ConvertedEnum = {\n name: 'SortOrder',\n kind: 'Enum',\n values: [\n {\n name: 'ASC',\n description: 'Sorts on the value in ascending order.',\n value: 1,\n },\n {\n name: 'DESC',\n description: 'Sorts on the value in descending order.',\n value: 2,\n },\n ],\n}\n\nexport function generateTypeSortings(\n types: (ConvertedType | ConvertedUnion)[],\n): (InputObjectType | ConvertedEnum)[] {\n const objectTypes = types.filter(isNonUnion).filter(\n (type) =>\n type.type === 'Object' &&\n !['Block', 'Span'].includes(type.name) && // TODO: What do we do with blocks?\n !type.interfaces &&\n !builtInTypes.includes(type.name),\n )\n const documentTypes = types.filter(\n (type): type is ConvertedDocumentType => type.name === 'Document' || isDocumentType(type),\n )\n\n const hasFields = (type: InputObjectType) => type.fields.length > 0\n\n const objectTypeSortings = createObjectTypeSortings(objectTypes)\n const documentTypeSortings = createDocumentTypeSortings(documentTypes)\n const allSortings = [...objectTypeSortings, ...documentTypeSortings].filter(hasFields)\n\n return [...allSortings, builtInSortingEnum]\n}\n\nfunction createObjectTypeSortings(objectTypes: ConvertedType[]): InputObjectType[] {\n return objectTypes.map((objectType) => ({\n name: `${objectType.name}Sorting`,\n kind: 'InputObject',\n fields: objectType.fields\n .filter((field) => field.type !== 'JSON' && field.kind !== 'List')\n .filter((field) => !field.isReference)\n .map((field) => ({\n fieldName: field.fieldName,\n type: builtInTypes.includes(field.type) ? builtInSortingEnum.name : `${field.type}Sorting`,\n })),\n }))\n}\n\nfunction createDocumentTypeSortings(documentTypes: ConvertedType[]): InputObjectType[] {\n return documentTypes.map((documentType) => ({\n name: `${documentType.name}Sorting`,\n kind: 'InputObject',\n fields: documentType.fields\n .filter((field) => field.type !== 'JSON' && field.kind !== 'List')\n .filter((field) => !field.isReference)\n .map((field) => ({\n fieldName: field.fieldName,\n type: builtInTypes.includes(field.type) ? builtInSortingEnum.name : `${field.type}Sorting`,\n })),\n }))\n}\n","import {upperFirst} from 'lodash'\nimport {isDocumentType, isUnion} from '../helpers'\nimport type {\n ApiCustomizationOptions,\n ConvertedType,\n ConvertedUnion,\n Deprecation,\n InputObjectType,\n QueryDefinition,\n} from '../types'\nimport {internal} from '../extractFromSanitySchema'\nimport {getFilterFieldName} from './utils'\n\nexport function generateTypeQueries(\n types: (ConvertedType | ConvertedUnion)[],\n sortings: InputObjectType[],\n options?: ApiCustomizationOptions,\n): QueryDefinition[] {\n const {filterSuffix} = options || {}\n const queries: QueryDefinition[] = []\n const documentTypes = types.filter(isDocumentType)\n\n const documentTypeNames = documentTypes.map((docType) =>\n JSON.stringify(docType.originalName || docType.name),\n )\n const documentsFilter = `_type in [${documentTypeNames.join(', ')}]`\n\n const documentInterface = types.find((type) => type.name === 'Document')\n if (!documentInterface || isUnion(documentInterface)) {\n throw new Error('Failed to find document interface')\n }\n\n const queryable = [...documentTypes, documentInterface]\n const isSortable = (type: ConvertedType) =>\n sortings.some((sorting) => sorting.name === `${type.name}Sorting`)\n\n // Single ID-based result lookup queries\n queryable.forEach((type) => {\n queries.push({\n fieldName: type.name,\n type: type.name,\n constraints: [\n {\n field: '_id',\n comparator: 'eq',\n value: {kind: 'argumentValue', argName: 'id'},\n },\n ],\n args: [\n {\n name: 'id',\n description: `${type.name} document ID`,\n type: 'ID',\n isNullable: false,\n },\n ],\n ...getDeprecation(type),\n })\n })\n\n // Fetch all of type\n queryable.forEach((type) => {\n const sorting: QueryDefinition['args'] = []\n if (isSortable(type)) {\n sorting.push({\n name: 'sort',\n type: {\n kind: 'List',\n isNullable: true,\n children: {\n type: `${type.name}Sorting`,\n isNullable: false,\n },\n },\n })\n }\n\n queries.push({\n fieldName: `all${upperFirst(type.name)}`,\n filter:\n type.name === 'Document' && type.kind === 'Interface'\n ? documentsFilter\n : `_type == ${JSON.stringify(type.originalName || type.name)}`,\n type: {\n kind: 'List',\n isNullable: false,\n children: {type: type.name, isNullable: false},\n },\n args: [\n {\n name: 'where',\n type: getFilterFieldName(type.name, filterSuffix),\n isFieldFilter: true,\n },\n ...sorting,\n {\n name: 'limit',\n type: 'Int',\n description: 'Max documents to return',\n isFieldFilter: false,\n },\n {\n name: 'offset',\n type: 'Int',\n description: 'Offset at which to start returning documents from',\n isFieldFilter: false,\n },\n ],\n ...getDeprecation(type),\n })\n })\n\n return queries\n}\n\nfunction getDeprecation(type: ConvertedType): Partial<Deprecation> {\n return type[internal]?.deprecationReason\n ? {\n deprecationReason: type[internal].deprecationReason,\n }\n : {}\n}\n","import util from 'util'\n\nimport {isUnion} from '../helpers'\nimport type {\n ApiCustomizationOptions,\n ApiSpecification,\n ConvertedType,\n GeneratedApiSpecification,\n InputObjectType,\n} from '../types'\nimport {generateTypeFilters} from './generateTypeFilters'\nimport {generateTypeSortings} from './generateTypeSortings'\nimport {generateTypeQueries} from './generateTypeQueries'\n\nexport default (\n extracted: ApiSpecification,\n options?: ApiCustomizationOptions,\n): GeneratedApiSpecification => {\n const documentInterface = extracted.interfaces.find((iface) => iface.name === 'Document')\n if (!documentInterface || isUnion(documentInterface)) {\n throw new Error('Failed to find document interface')\n }\n\n const types = [...extracted.types, documentInterface as ConvertedType]\n\n const filters = generateTypeFilters(types, options)\n const sortings = generateTypeSortings(types)\n const queries = generateTypeQueries(\n types,\n sortings.filter((node): node is InputObjectType => node.kind === 'InputObject'),\n options,\n )\n const graphqlTypes = [...extracted.types, ...filters, ...sortings]\n\n return {types: graphqlTypes, queries, interfaces: extracted.interfaces, generation: 'gen3'}\n}\n","/* eslint-disable no-process-env, no-process-exit, max-statements */\nimport {get} from 'lodash'\nimport yargs from 'yargs/yargs'\nimport type {SanityClient} from '@sanity/client'\nimport type {CliCommandContext, CliOutputter, CliPrompter} from '@sanity/cli'\nimport {hideBin} from 'yargs/helpers'\nimport oneline from 'oneline'\n\nimport {debug} from '../../debug'\nimport {getClientUrl} from '../../util/getClientUrl'\nimport {getUrlHeaders} from '../../util/getUrlHeaders'\nimport {extractFromSanitySchema} from './extractFromSanitySchema'\nimport {SchemaError} from './SchemaError'\nimport {DeployResponse, GeneratedApiSpecification, ValidationResponse} from './types'\nimport {getGraphQLAPIs} from './getGraphQLAPIs'\n\nimport gen1 from './gen1'\nimport gen2 from './gen2'\nimport gen3 from './gen3'\n\nconst latestGeneration = 'gen3'\nconst generations = {\n gen1,\n gen2,\n gen3,\n}\n\nconst apiIdRegex = /^[a-z0-9_-]+$/\nconst isInteractive = process.stdout.isTTY && process.env.TERM !== 'dumb' && !('CI' in process.env)\n\nconst ignoredWarnings: string[] = ['OPTIONAL_INPUT_FIELD_ADDED']\nconst ignoredBreaking: string[] = []\n\ninterface DeployTask {\n dataset: string\n projectId: string\n tag: string\n enablePlayground: boolean\n schema: GeneratedApiSpecification\n}\n\n// eslint-disable-next-line complexity\nexport default async function deployGraphQLApiAction(\n args: {argv?: string[]},\n context: CliCommandContext,\n): Promise<void> {\n // Reparsing CLI flags for better control of binary flags\n const flags = await parseCliFlags(args)\n const {\n force,\n dryRun,\n api: onlyApis,\n dataset: datasetFlag,\n tag: tagFlag,\n playground: playgroundFlag,\n generation: generationFlag,\n 'non-null-document-fields': nonNullDocumentFieldsFlag,\n withUnionCache,\n } = flags\n\n const {apiClient, output, prompt} = context\n\n let spinner\n\n const client = apiClient({\n requireUser: true,\n // Don't throw if we do not have a project ID defined, as we will infer it from the\n // source/ workspace of each configured API later\n requireProject: false,\n }).config({apiVersion: '2023-08-01'})\n\n const apiDefs = await getGraphQLAPIs(context)\n const hasMultipleApis = apiDefs.length > 1 || (flags.api && flags.api.length > 1)\n const usedFlags = [\n datasetFlag && '--dataset',\n tagFlag && '--tag',\n typeof playgroundFlag !== 'undefined' && '--playground',\n typeof generationFlag !== 'undefined' && '--generation',\n typeof nonNullDocumentFieldsFlag !== 'undefined' && '--non-null-document-fields',\n ].filter(Boolean)\n\n if (hasMultipleApis && usedFlags.length > 0) {\n output.warn(`WARN: More than one API defined, and ${usedFlags.join('/')} is specified`)\n output.warn(`WARN: This will use the specified flag(s) for ALL APIs, overriding config!`)\n\n if (flags.force) {\n output.warn(`WARN: --force specified, continuing...`)\n } else if (\n !(await prompt.single({\n type: 'confirm',\n message: 'Continue with flag overrides for all APIs?',\n default: false,\n }))\n ) {\n process.exit(1)\n }\n }\n\n const deployTasks: DeployTask[] = []\n\n const apiNames = new Set<string>()\n const apiIds = new Set<string>()\n for (const apiDef of apiDefs) {\n const dataset = datasetFlag || apiDef.dataset\n const tag = tagFlag || apiDef.tag || 'default'\n const apiName = [dataset, tag].join('/')\n if (apiNames.has(apiName)) {\n throw new Error(`Multiple GraphQL APIs with the same dataset and tag found (${apiName})`)\n }\n\n if (apiDef.id) {\n if (typeof apiDef.id !== 'string' || !apiIdRegex.test(apiDef.id)) {\n throw new Error(\n `Invalid GraphQL API id \"${apiDef.id}\" - only a-z, 0-9, underscore and dashes are allowed`,\n )\n }\n\n if (apiIds.has(apiDef.id)) {\n throw new Error(`Multiple GraphQL APIs with the same ID found (${apiDef.id})`)\n }\n\n apiIds.add(apiDef.id)\n }\n\n apiNames.add(apiName)\n }\n\n for (const apiId of onlyApis || []) {\n if (!apiDefs.some((apiDef) => apiDef.id === apiId)) {\n throw new Error(`GraphQL API with id \"${apiId}\" not found`)\n }\n }\n\n if (onlyApis) {\n output.warn(`Deploying only specified APIs: ${onlyApis.join(', ')}`)\n }\n\n let index = -1\n for (const apiDef of apiDefs) {\n if (onlyApis && (!apiDef.id || !onlyApis.includes(apiDef.id))) {\n continue\n }\n\n index++\n\n const dataset = datasetFlag || apiDef.dataset\n const tag = tagFlag || apiDef.tag || 'default'\n const {projectId, playground, nonNullDocumentFields, schema} = apiDef\n const apiName = [dataset, tag].join('/')\n spinner = output.spinner(`Generating GraphQL API: ${apiName}`).start()\n\n if (!dataset) {\n throw new Error(`No dataset specified for API at index ${index}`)\n }\n\n const projectClient = client.clone().config({projectId, useProjectHostname: true})\n const {currentGeneration, playgroundEnabled} = await getCurrentSchemaProps(\n projectClient,\n dataset,\n tag,\n )\n\n // CLI flag trumps configuration\n const specifiedGeneration =\n typeof generationFlag === 'undefined' ? apiDef.generation : generationFlag\n\n const generation = await resolveApiGeneration({\n currentGeneration,\n specifiedGeneration,\n index,\n force,\n output,\n prompt,\n })\n\n if (!generation) {\n // User cancelled\n spinner.fail()\n continue\n }\n\n if (!isRecognizedApiGeneration(generation)) {\n throw new Error(`Unknown API generation \"${generation}\" for API at index ${index}`)\n }\n\n const enablePlayground = await shouldEnablePlayground({\n dryRun,\n spinner,\n playgroundCliFlag: playgroundFlag,\n playgroundConfiguration: playground,\n playgroundCurrentlyEnabled: playgroundEnabled,\n prompt,\n })\n\n let apiSpec: GeneratedApiSpecification\n try {\n const generateSchema = generations[generation]\n const extracted = extractFromSanitySchema(schema, {\n // Allow CLI flag to override configured setting\n nonNullDocumentFields:\n typeof nonNullDocumentFieldsFlag === 'undefined'\n ? nonNullDocumentFields\n : nonNullDocumentFieldsFlag,\n withUnionCache,\n })\n\n apiSpec = generateSchema(extracted, {filterSuffix: apiDef.filterSuffix})\n } catch (err) {\n spinner.fail()\n\n if (err instanceof SchemaError) {\n err.print(output)\n process.exit(1) // eslint-disable-line no-process-exit\n }\n\n throw err\n }\n\n let valid: ValidationResponse | undefined\n try {\n valid = await projectClient.request<ValidationResponse>({\n url: `/apis/graphql/${dataset}/${tag}/validate`,\n method: 'POST',\n body: {enablePlayground, schema: apiSpec},\n maxRedirects: 0,\n })\n } catch (err) {\n const validationError = get(err, 'response.body.validationError')\n spinner.fail()\n throw validationError ? new Error(validationError) : err\n }\n\n // when the result is not valid and there are breaking changes afoot!\n if (!isResultValid(valid, {spinner, force})) {\n // not valid and a dry run? then it can exit with a error\n if (dryRun) {\n spinner.fail()\n renderBreakingChanges(valid, output)\n process.exit(1)\n }\n\n if (!isInteractive) {\n spinner.fail()\n renderBreakingChanges(valid, output)\n throw new Error(\n 'Dangerous changes found - falling back. Re-run the command with the `--force` flag to force deployment.',\n )\n }\n\n spinner.stop()\n renderBreakingChanges(valid, output)\n const shouldDeploy = await prompt.single({\n type: 'confirm',\n message: 'Do you want to deploy a new API despite the dangerous changes?',\n default: false,\n })\n\n if (!shouldDeploy) {\n spinner.fail()\n continue\n }\n\n spinner.succeed()\n } else if (dryRun) {\n spinner.succeed()\n output.print('GraphQL API is valid and has no breaking changes')\n process.exit(0)\n }\n\n deployTasks.push({\n projectId,\n dataset,\n tag,\n enablePlayground,\n schema: apiSpec,\n })\n }\n\n // Give some space for deployment tasks\n output.print('')\n\n for (const task of deployTasks) {\n const {dataset, tag, schema, projectId, enablePlayground} = task\n\n output.print(`Project: ${projectId}`)\n output.print(`Dataset: ${dataset}`)\n output.print(`Tag: ${tag}`)\n\n spinner = output.spinner('Deploying GraphQL API').start()\n\n try {\n const projectClient = client.clone().config({projectId, useProjectHostname: true})\n const response = await projectClient.request<DeployResponse>({\n url: `/apis/graphql/${dataset}/${tag}`,\n method: 'PUT',\n body: {enablePlayground, schema},\n maxRedirects: 0,\n })\n\n spinner.stop()\n const apiUrl = getClientUrl(\n projectClient,\n response.location.replace(/^\\/(v1|v\\d{4}-\\d{2}-\\d{2})\\//, '/'),\n )\n output.print(`URL: ${apiUrl}`)\n spinner.start('Deployed!').succeed()\n output.print('')\n } catch (err) {\n spinner.fail()\n throw err\n }\n }\n\n // Because of side effects when loading the schema, we can end up in situations where\n // the API has been successfully deployed, but some timer or other handle is keeping\n // the process from naturally exiting.\n process.exit(0)\n}\n\nasync function shouldEnablePlayground({\n dryRun,\n spinner,\n playgroundCliFlag,\n playgroundConfiguration,\n playgroundCurrentlyEnabled,\n prompt,\n}: {\n dryRun: boolean\n spinner: ReturnType<CliCommandContext['output']['spinner']>\n playgroundCliFlag?: boolean\n playgroundConfiguration?: boolean\n playgroundCurrentlyEnabled?: boolean\n prompt: CliCommandContext['prompt']\n}): Promise<boolean> {\n // On a dry run, it doesn't matter, return true 🤷‍♂️\n if (dryRun) {\n return true\n }\n\n // Prioritize CLI flag if set\n if (typeof playgroundCliFlag !== 'undefined') {\n return playgroundCliFlag\n }\n\n // If explicitly set true/false in configuration, use that\n if (typeof playgroundConfiguration !== 'undefined') {\n return playgroundConfiguration\n }\n\n // If API is already deployed, use the current state\n if (typeof playgroundCurrentlyEnabled !== 'undefined') {\n return playgroundCurrentlyEnabled\n }\n\n // If no API is deployed, default to true if non-interactive\n if (!isInteractive) {\n return true\n }\n\n // Interactive environment, so prompt the user\n const prevText = spinner.text\n spinner.warn()\n const shouldDeploy = await prompt.single<boolean>({\n type: 'confirm',\n message: 'Do you want to enable a GraphQL playground?',\n default: true,\n })\n spinner.clear().start(prevText)\n\n return shouldDeploy\n}\n\nasync function getCurrentSchemaProps(\n client: SanityClient,\n dataset: string,\n tag: string,\n): Promise<{\n currentGeneration?: string\n playgroundEnabled?: boolean\n}> {\n try {\n const apiUrl = getClientUrl(client, `/apis/graphql/${dataset}/${tag}`)\n const res = await getUrlHeaders(apiUrl, {\n Authorization: `Bearer ${client.config().token}`,\n })\n\n return {\n currentGeneration: res['x-sanity-graphql-generation'],\n playgroundEnabled: res['x-sanity-graphql-playground'] === 'true',\n }\n } catch (err) {\n if (err.statusCode === 404) {\n return {}\n }\n\n throw err\n }\n}\n\nfunction parseCliFlags(args: {argv?: string[]}) {\n return yargs(hideBin(args.argv || process.argv).slice(2))\n .option('tag', {type: 'string'})\n .option('dataset', {type: 'string'})\n .option('api', {type: 'string', array: true})\n .option('dry-run', {type: 'boolean', default: false})\n .option('generation', {type: 'string'})\n .option('non-null-document-fields', {type: 'boolean'})\n .option('playground', {type: 'boolean'})\n .option('with-union-cache', {type: 'boolean'})\n .option('force', {type: 'boolean'}).argv\n}\n\nfunction isResultValid(\n valid: ValidationResponse,\n {spinner, force}: {spinner: any; force?: boolean},\n) {\n const {validationError, breakingChanges: breaking, dangerousChanges: dangerous} = valid\n if (validationError) {\n spinner.fail()\n throw new Error(`GraphQL schema is not valid:\\n\\n${validationError}`)\n }\n\n const breakingChanges = breaking.filter((change) => !ignoredBreaking.includes(change.type))\n const dangerousChanges = dangerous.filter((change) => !ignoredWarnings.includes(change.type))\n\n const hasProblematicChanges = breakingChanges.length > 0 || dangerousChanges.length > 0\n if (force && hasProblematicChanges) {\n spinner.text = 'Validating GraphQL API: Dangerous changes. Forced with `--force`.'\n spinner.warn()\n return true\n } else if (force || !hasProblematicChanges) {\n spinner.succeed()\n return true\n }\n\n spinner.warn()\n return false\n}\n\nfunction renderBreakingChanges(valid: ValidationResponse, output: CliOutputter) {\n const {breakingChanges: breaking, dangerousChanges: dangerous} = valid\n\n const breakingChanges = breaking.filter((change) => !ignoredBreaking.includes(change.type))\n const dangerousChanges = dangerous.filter((change) => !ignoredWarnings.includes(change.type))\n\n if (dangerousChanges.length > 0) {\n output.print('\\nFound potentially dangerous changes from previous schema:')\n dangerousChanges.forEach((change) => output.print(` - ${change.description}`))\n }\n\n if (breakingChanges.length > 0) {\n output.print('\\nFound BREAKING changes from previous schema:')\n breakingChanges.forEach((change) => output.print(` - ${change.description}`))\n }\n\n output.print('')\n}\n\nasync function resolveApiGeneration({\n currentGeneration,\n specifiedGeneration,\n index,\n force,\n output,\n prompt,\n}: {\n index: number\n currentGeneration?: string\n specifiedGeneration?: string\n force?: boolean\n output: CliOutputter\n prompt: CliPrompter\n}): Promise<string | undefined> {\n // a) If no API is currently deployed:\n // use the specificed one from config, or use whichever generation is the latest\n // b) If an API generation is specified explicitly:\n // use the given one, but _prompt_ if it differs from the current one\n // c) If no API generation is specified explicitly:\n // use whichever is already deployed, but warn if differs from latest\n if (!currentGeneration) {\n const generation = specifiedGeneration || latestGeneration\n debug(\n 'There is no current generation deployed, using %s (%s)',\n generation,\n specifiedGeneration ? 'specified' : 'default',\n )\n return generation\n }\n\n if (specifiedGeneration && specifiedGeneration !== currentGeneration) {\n if (!force && !isInteractive) {\n throw new Error(oneline`\n Specified generation (${specifiedGeneration}) for API at index ${index} differs from the one currently deployed (${currentGeneration}).\n Re-run the command with \\`--force\\` to force deployment.\n `)\n }\n\n output.warn(\n `Specified generation (${specifiedGeneration}) for API at index ${index} differs from the one currently deployed (${currentGeneration}).`,\n )\n\n const confirmDeploy =\n force ||\n (await prompt.single({\n type: 'confirm',\n message: 'Are you sure you want to deploy?',\n default: false,\n }))\n\n return confirmDeploy ? specifiedGeneration : undefined\n }\n\n if (specifiedGeneration) {\n debug('Using specified (%s) generation', specifiedGeneration)\n return specifiedGeneration\n }\n\n debug('Using the currently deployed version (%s)', currentGeneration)\n return currentGeneration\n}\n\nfunction isRecognizedApiGeneration(generation: string): generation is 'gen1' | 'gen2' | 'gen3' {\n return generations.hasOwnProperty(generation)\n}\n"],"names":["request","getIt","promise","HttpError","Error","getUrlHeaders","url","headers","arguments","length","undefined","response","stream","maxRedirects","method","statusCode","error","concat","body","resume","SCHEMA_LIFT_ANONYMOUS_OBJECT_TYPE","consoleOutputter","console","SchemaError","constructor","problemGroups","print","output","logger","forEach","group","problems","problem","icon","logSymbols","severity","info","upperFirst","getPath","path","message","helpId","generateHelpUrl","map","segment","kind","name","type","filter","Boolean","join","_a","_b","skipTypes","allowedJsonTypes","disallowedCustomizedMembers","disabledBlockFields","scalars","internal","Symbol","getBaseType","baseSchema","typeName","Schema","compile","types","_original","to","get","options","hotspot","getTypeName","str","startCase","replace","isBaseType","jsonType","includes","isReference","isBlockType","typeDef","hasBlockParent","isArrayOfBlocks","of","some","isType","isCrossDatasetReference","getCrossDatasetReferenceMetadata","getTypeNames","t","getDataset","dataset","typeNames","extractFromSanitySchema","sanitySchema","extractOptions","nonNullDocumentFields","withUnionCache","unionRecursionGuards","Set","unionDefinitionCache","Map","hasErrors","_validation","Array","isArray","sanityTypes","unionTypes","schemaType","convertedType","convertType","push","withUnions","interfaces","getDocumentInterfaceDefinition","isTopLevelType","mapFieldType","field","isScalar","hasValidationFlag","isArrayType","_convertType","parent","getReferenceDefinition","getArrayDefinition","getDocumentDefinition","getObjectDefinition","hasFields","description","getDescription","props","mapped","isField","fieldName","gqlName","originalName","original","crossDatasetReferenceMetadata","getDeprecation","def","isInline","isDocument","actualType","typeNeedsHoisting","createLiftTypeError","fields","collectFields","firstUnprefixed","Math","max","findIndex","keyField","createStringField","splice","objectIsBlock","objectFields","buildRawField","parentName","isRawAlias","gatherAllFields","extended","base","candidates","arrayify","gatherAllReferenceCandidates","unionDefinition","getUnionDefinition","grandParent","children","getArrayChildDefinition","child","arrayDef","isCustomized","guardPathName","has","unionCacheKey","c","add","i","createLiftTypeArrayError","converted","getName","flattened","reduce","acc","candidate","union","find","item","allCandidatesAreDocuments","refs","inlineObjs","allTypeNames","possibleTypes","sort","references","inlineObjects","set","delete","objectDef","getDocumentInterfaceFields","isNullable","thing","flag","validation","rule","_rules","allFields","gatherReferenceCandidates","uniqBy","refTo","gatherFields","hasFieldsLikeShape","hasArrayOfFields","index","inlineType","helpUrl","helpUrls.SCHEMA_LIFT_ANONYMOUS_OBJECT_TYPE","context","HelpfulError","oneline","__template","isDeprecationConfiguration","deprecationReason","deprecated","reason","isUnion","isNonUnion","isDocumentType","filterCreators","ID","createIdFilters","String","createStringFilters","Url","Float","createNumberFilters","Integer","createBooleanFilters","Datetime","createDateFilters","Date","Object","createObjectFilters","generateTypeFilters","queryable","flatten","createFieldFilters","getDocumentFilters","createListFilters","createReferenceFilters","createInlineTypeFilters","getFieldName","modifier","suffix","getDocumentFilters$2","constraint","comparator","createIsDefinedFilter","createEqualityFilter","createInequalityFilter","createDefaultFilters","createGtLtFilters","pluralizeTypeName","words","split","last","plural","pluralize","toLowerCase","generateTypeQueries","generateTypeQueries$2","filters","queries","constraints","value","argName","args","filterName","hasFilter","isFieldFilter","getLimitOffsetArgs","gen1","extracted","generation","isConstraintFilter","createDateTimeFilters","createDocumentFilters","createDocumentFilters$1","createFloatFilters","createIntegerFilters","typeAliases","Text","Email","Document","builtInTypeKeys","keys","builtinTypeValues","values","objectTypes","documentTypes","builtinTypeFilters","createBuiltinTypeFilters","objectTypeFilters","createObjectTypeFilters","documentTypeFilters","createDocumentTypeFilters","filterCreator","createObjectTypeFilters$1","objectType","createDocumentTypeFilters$1","documentType","createFieldFilters$1","getDocumentFilters$1","builtInTypes","builtInSortingEnum","generateTypeSortings","objectTypeSortings","createObjectTypeSortings","documentTypeSortings","createDocumentTypeSortings","allSortings","generateTypeQueries$1","sortings","isSortable","sorting","gen2","node","getFilterFieldName","filterSuffix","documentTypeNames","docType","JSON","stringify","documentsFilter","documentInterface","gen3","iface","graphqlTypes","latestGeneration","generations","apiIdRegex","isInteractive","process","stdout","isTTY","env","TERM","ignoredWarnings","ignoredBreaking","deployGraphQLApiAction","flags","parseCliFlags","force","dryRun","api","onlyApis","datasetFlag","tag","tagFlag","playground","playgroundFlag","generationFlag","nonNullDocumentFieldsFlag","apiClient","prompt","spinner","client","requireUser","requireProject","config","apiVersion","apiDefs","getGraphQLAPIs","hasMultipleApis","usedFlags","warn","single","default","exit","deployTasks","apiNames","apiIds","apiDef","apiName","id","test","apiId","projectId","schema","start","projectClient","clone","useProjectHostname","currentGeneration","playgroundEnabled","getCurrentSchemaProps","specifiedGeneration","resolveApiGeneration","fail","isRecognizedApiGeneration","enablePlayground","shouldEnablePlayground","playgroundCliFlag","playgroundConfiguration","playgroundCurrentlyEnabled","apiSpec","generateSchema","err","valid","validationError","isResultValid","renderBreakingChanges","stop","shouldDeploy","succeed","task","apiUrl","getClientUrl","location","_ref","prevText","text","clear","res","Authorization","token","yargs","hideBin","argv","slice","option","array","_ref2","breakingChanges","breaking","dangerousChanges","dangerous","change","hasProblematicChanges","_ref3","debug","confirmDeploy","hasOwnProperty"],"mappings":"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"}