/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@xyd-js/gql@0.0.0-build-1202121-20260121231224/dist/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
import fs from"fs";import{buildSchema,print as print2,visit,parse}from"graphql";import{mergeTypeDefs}from"@graphql-tools/merge";var DEFAULT_SORT_ORDER=[{node:"query"},{node:"mutation"},{node:"subscription"},{node:"object"},{node:"interface"},{node:"union"},{node:"input"},{node:"enum"},{node:"scalar"}],GQLOperation=class{constructor(e){this.field=e}get name(){return this.field.name}get description(){return this.field.description}get type(){return this.field.type}get args(){return this.field.args}get deprecationReason(){return this.field.deprecationReason}get extensions(){return this.field.extensions}get astNode(){return this.field.astNode}set __operationType(e){this._operationType=e}};import{isIntrospectionType as isIntrospectionType2,isSpecifiedScalarType as isSpecifiedScalarType2}from"graphql";import{GraphQLInputObjectType as GraphQLInputObjectType3,GraphQLUnionType as GraphQLUnionType3,GraphQLObjectType as GraphQLObjectType3,GraphQLInterfaceType as GraphQLInterfaceType3,GraphQLScalarType as GraphQLScalarType3,GraphQLNonNull as GraphQLNonNull2}from"graphql";import{GraphQLEnumType as GraphQLEnumType2,GraphQLInputObjectType as GraphQLInputObjectType2,GraphQLInterfaceType as GraphQLInterfaceType2,GraphQLObjectType as GraphQLObjectType2,GraphQLScalarType as GraphQLScalarType2,GraphQLUnionType as GraphQLUnionType2,isIntrospectionType,isSpecifiedScalarType,GraphQLNonNull,GraphQLList}from"graphql";import GithubSlugger from"github-slugger";import{ReferenceCategory,ReferenceType}from"@xyd-js/uniform";import{GraphQLEnumType,GraphQLInputObjectType,GraphQLInterfaceType,GraphQLObjectType,GraphQLScalarType,GraphQLUnionType}from"graphql";var OPEN_DOCS_SCHEMA_DIRECTIVE_NAME="docs",OPEN_DOCS_DIRECTIVE_NAME="doc";function openDocsExtensionsToOptions(e){const n={};for(const t of e.extensionASTNodes||[])if("SchemaExtension"===t.kind)for(const e of t.directives||[])if(e.name.value===OPEN_DOCS_SCHEMA_DIRECTIVE_NAME)for(const t of e.arguments||[])if("flattenTypes"===t.name.value&&"BooleanValue"===t.value.kind)!0===t.value.value?n.flat=!0:!1===t.value.value&&(n.flat=!1);else if("sort"===t.name.value&&"ListValue"===t.value.kind){const e=[];for(const n of t.value.values)if("ObjectValue"===n.kind){const t={};for(const e of n.fields)"node"===e.name.value&&"StringValue"===e.value.kind?t.node=e.value.value:"group"===e.name.value&&"ListValue"===e.value.kind?t.group=e.value.values.filter((e=>"StringValue"===e.kind)).map((e=>e.value)):"stack"===e.name.value&&"IntValue"===e.value.kind&&(t.stack=parseInt(e.value.value));e.push(t)}n.sort||(n.sort={}),n.sort.sort=e}else if("sortStack"===t.name.value&&"ListValue"===t.value.kind){const e=[];for(const n of t.value.values)if("ListValue"===n.kind){const t=n.values.filter((e=>"StringValue"===e.kind)).map((e=>e.value));e.push(t)}n.sort||(n.sort={}),n.sort.sortStack=e}else"route"===t.name.value&&"StringValue"===t.value.kind&&(n.route=t.value.value);return n}function openDocsToGroup(e,n){var t,o;let i=[];const r=(null==e?void 0:e.schema).__metadata;(null==r?void 0:r.rootGroups)&&(i=[...r.rootGroups]);let a=!1;if((null==e?void 0:e.schema)&&"name"in n){const t=e.schema.__metadata;if((null==t?void 0:t.fields)&&"_operationType"in n){let e="";switch(n._operationType){case"query":e=`Query.${n.name}`;break;case"mutation":e=`Mutation.${n.name}`;break;case"subscription":e=`Subscription.${n.name}`}const o=t.fields.get(e);(null==o?void 0:o.groups)&&(a=!0,i.push(...o.groups))}}if(!a&&(null==(t=n.astNode)?void 0:t.directives))for(const e of n.astNode.directives)switch(e.name.value){case OPEN_DOCS_DIRECTIVE_NAME:{const n=null==(o=e.arguments)?void 0:o.find((e=>"group"===e.name.value));"ListValue"===(null==n?void 0:n.value.kind)&&(a=!0,i.push(...n.value.values.filter((e=>"StringValue"===e.kind)).map((e=>e.value))));break}}if(!a)if(n instanceof GraphQLObjectType)i.push("Objects");else if(n instanceof GraphQLInterfaceType)i.push("Interfaces");else if(n instanceof GraphQLUnionType)i.push("Unions");else if(n instanceof GraphQLEnumType)i.push("Enums");else if(n instanceof GraphQLInputObjectType)i.push("Inputs");else if(n instanceof GraphQLScalarType)i.push("Scalars");else if(n instanceof GQLOperation)switch(n._operationType){case"query":i.push("Queries");break;case"mutation":i.push("Mutations");break;case"subscription":i.push("Subscriptions")}return i}function openDocsCanonical(e,n){var t,o,i;let r="";if("astNode"in n&&"FieldDefinition"===(null==(t=n.astNode)?void 0:t.kind)&&(null==e?void 0:e.schema)){const t=e.schema.__metadata;if((null==t?void 0:t.fields)&&"name"in n&&"_operationType"in n){let e="";switch(n._operationType){case"query":e=`Query.${n.name}`;break;case"mutation":e=`Mutation.${n.name}`;break;case"subscription":e=`Subscription.${n.name}`}const o=t.fields.get(e);(null==o?void 0:o.path)&&(r=o.path)}}if(!r&&(null==(o=n.astNode)?void 0:o.directives))for(const e of n.astNode.directives)if(e.name.value===OPEN_DOCS_DIRECTIVE_NAME){const n=null==(i=e.arguments)?void 0:i.find((e=>"path"===e.name.value));"StringValue"===(null==n?void 0:n.value.kind)&&(r=n.value.value)}return r}function extractScopesFromDocDirective(e,n){var t,o,i,r;const a=[],s=null==e?void 0:e.schema;if(null==(t=n.astNode)?void 0:t.directives)for(const e of n.astNode.directives)if("doc"===e.name.value){const t=null==(o=e.arguments)?void 0:o.find((e=>"scopes"===e.name.value));if("ListValue"===(null==t?void 0:t.value.kind))for(const e of t.value.values)if("EnumValue"===e.kind){let t;if(n instanceof GraphQLEnumType2)t=n;else if(s){const e=s.getType("OpenDocsScope");e instanceof GraphQLEnumType2&&(t=e)}if(t){const n=t.getValue(e.value);if(null==(i=null==n?void 0:n.astNode)?void 0:i.directives)for(const e of n.astNode.directives)if("scope"===e.name.value){const n=null==(r=e.arguments)?void 0:r.find((e=>"value"===e.name.value));"StringValue"===(null==n?void 0:n.value.kind)&&a.push(n.value.value)}}}else"StringValue"===e.kind&&a.push(e.value)}return a}function uniformify(e,n,t,o){let i,r="",a="";if(n instanceof GraphQLScalarType2)r="scalars",a="scalar",i=ReferenceType.GRAPHQL_SCALAR;else if(n instanceof GraphQLObjectType2)r="objects",a="object",i=ReferenceType.GRAPHQL_OBJECT;else if(n instanceof GraphQLInterfaceType2)r="interfaces",a="interface",i=ReferenceType.GRAPHQL_INTERFACE;else if(n instanceof GraphQLUnionType2)r="unions",a="union",i=ReferenceType.GRAPHQL_UNION;else if(n instanceof GraphQLEnumType2)r="enums",a="enum",i=ReferenceType.GRAPHQL_ENUM;else if(n instanceof GraphQLInputObjectType2)r="inputs",a="input",i=ReferenceType.GRAPHQL_INPUT;else if(n instanceof GQLOperation)switch(n._operationType){case"query":r="queries",a="query",i=ReferenceType.GRAPHQL_QUERY;break;case"mutation":r="mutations",a="mutation",i=ReferenceType.GRAPHQL_MUTATION;break;case"subscription":r="subscriptions",a="subscription",i=ReferenceType.GRAPHQL_SUBSCRIPTION}else{const i=gqlFieldTypeInfo(n);if((null==i?void 0:i.typeFlat)&&!isBuiltInType(null==i?void 0:i.typeFlat)&&(null==i?void 0:i.typeFlat))return uniformify(e,i.typeFlat,t,o)}new GithubSlugger;const s=n.name,l=openDocsCanonical(e,n);let p="";l?p=l:r&&(p=[r,s].join("/"));const u=extractScopesFromDocDirective(e,n)||[];return{title:n.name,description:n.description||"",canonical:p,category:ReferenceCategory.GRAPHQL,type:i,context:{graphqlTypeShort:a,graphqlName:n.name,group:openDocsToGroup(e,n),scopes:u},examples:{groups:o||[]},definitions:t}}function propsUniformify(e,n,t,o){var i;const r=gqlFieldTypeInfo(n),a=uniformify(e,n,[],[]),s=(null==r?void 0:r.typeFlat)?isBuiltInType(null==r?void 0:r.typeFlat):void 0;return{name:n.name,type:n.type.toJSON(),description:n.description||"",context:{graphqlName:n.name,graphqlTypeFlat:(null==(i=r.typeFlat)?void 0:i.toJSON())||"",graphqlBuiltInType:s},properties:t||[],meta:[...gqlFieldToUniformMeta(n),...o||[]],symbolDef:{canonical:null==a?void 0:a.canonical}}}function gqlObjectPropsUniformify(e,n,t){var o,i;const r=uniformify(e,n,[],[]),a=null==(o=n.getFields)?void 0:o.call(n),s=[],l={name:n.name,type:n.toJSON(),description:n.description||"",context:r.context,properties:s,meta:[...t||[]],symbolDef:{canonical:r.canonical}};if(!(null==(i=null==e?void 0:e.config)?void 0:i.flatArg))for(const[n,t]of Object.entries(a)){const n=gqlFieldToUniformDefinitionProperty(e,t);n&&s.push(n)}return l}function gqlFieldToUniformMeta(e){var n;const t=[];if((isNonNullField(e.type)||isListOfNonNullItems(e.type))&&t.push({name:"required",value:"true"}),null==(n=e.astNode)?void 0:n.directives)for(const n of e.astNode.directives)if("deprecated"===n.name.value){let e=!1;for(const o of n.arguments||[])"reason"===o.name.value&&(e=!0,t.push({name:"deprecated",value:"StringValue"===o.value.kind?o.value.value:"true"}));e||t.push({name:"deprecated",value:"true"})}return"defaultValue"in e&&void 0!==e.defaultValue&&t.push({name:"defaults",value:e.defaultValue}),t}function gqlFieldTypeInfo(e){const n=e=>{if(e)return e instanceof GraphQLNonNull||e instanceof GraphQLList?n(e.ofType):e};return{typeFlat:n(e.type)}}function isBuiltInType(e){return isSpecifiedScalarType(e)||isIntrospectionType(e)}function isNonNullField(e){return"GraphQLNonNull"===e.constructor.name}function isListOfNonNullItems(e){return"ofType"in e&&"GraphQLList"===e.constructor.name&&"GraphQLNonNull"===e.ofType.constructor.name}function gqlUnionToUniformRef(e,n){return uniformify(e,n,[{title:"Possible types",properties:gqlUnionToUniformDefinitionProperties(e,n)}],[])}function gqlUnionToUniformDefinitionProperties(e,n){return n.getTypes().map((n=>"GraphQLObjectType"===n.constructor.name?gqlObjectToUniformDefinitionProperty(e,n):[])).flat()}function gqlFieldToUniformDefinitionProperty(e,n){return GQLFieldConverter.convert(e,n)}var GQLFieldConverter=class e{constructor(e){this.ctx=e}static convert(n,t){return new e(n).convert(t)}convert(e,n){var t,o,i,r,a;if((null==(t=this.ctx.globalOptions)?void 0:t.flat)&&((null==(o=this.ctx.config)?void 0:o.flatReturn)||(null==(i=this.ctx.config)?void 0:i.flat))){gqlFieldTypeInfo(e);const n=[],t=propsUniformify(this.ctx,e,[],n);if(null==(r=this.ctx.config)?void 0:r.flatReturn)return{...t,name:""};if(null==(a=this.ctx.config)?void 0:a.flat)return t}const s=gqlFieldTypeInfo(e),l=null==s?void 0:s.typeFlat;let p;switch(null==l?void 0:l.constructor){case GraphQLObjectType3:case GraphQLInputObjectType3:case GraphQLInterfaceType3:p=this.nestedProperties(l);break;case GraphQLScalarType3:case GraphQLNonNull2:p=this.definitionPropsFromNestedObj(e)||[];break;case GraphQLUnionType3:p=gqlUnionToUniformDefinitionProperties(this.ctx,l)}const u=propsUniformify(this.ctx,e,p);if(l){l.__definitionProperties=u.properties}return n&&(n.__definitionProperties=u.properties),u}definitionPropsFromNestedObj(e){return e?e.getFields?this.nestedProperties(e):e.ofType?this.definitionPropsFromNestedObj(e.ofType):e.type?this.definitionPropsFromNestedObj(e.type):null:null}deepFieldMap(e,n){const t=[];for(const[o,i]of Object.entries(e)){const e=this.convert(i,n);e&&t.push(e)}return t}nestedProperties(e){var n;if(this.ctx.processedTypes.has(e))return(null==e?void 0:e.__definitionProperties)&&e.__definitionProperties||[];this.ctx.processedTypes.add(e);const t=null==(n=null==e?void 0:e.getFields)?void 0:n.call(e);return this.deepFieldMap(t,e)}};import{GraphQLInputObjectType as GraphQLInputObjectType4}from"graphql";function gqlInputToUniformRef(e,n){return uniformify(e,n,[{title:"Fields",properties:gqlInputToUniformDefinitionProperty(e,n).properties||[]}],[])}function gqlInputToUniformDefinitionProperty(e,n){return gqlObjectPropsUniformify(e,n)}function gqlArgToUniformDefinitionProperty(e,n){const t=[];return n.forEach((n=>{const o=gqlFieldTypeInfo(n);if(!o.typeFlat)return void console.error("gqlArgToUniformDefinitionProperty: no typeFlat for",n.name);const i=o.typeFlat;if(i instanceof GraphQLInputObjectType4){const o=i,r=gqlFieldToUniformMeta(n),a=gqlInputToUniformDefinitionProperty(e,o);t.push({...a,type:n.type.toJSON(),name:n.name,description:n.description||"",meta:[...a.meta||[],...r||[]]})}else{const o=propsUniformify(e,n);t.push(o)}})),t}function gqlObjectToUniformRef(e,n){var t;const o=[],i=[],r=[],a={title:"Arguments",properties:[],variants:r,meta:[{name:"type",value:"arguments"}]};for(const[o,i]of Object.entries(n.getFields())){if(!(null==(t=null==i?void 0:i.args)?void 0:t.length))continue;const n=gqlArgToUniformDefinitionProperty(e,i.args);r.push({title:"",properties:n,meta:[{name:"symbolName",value:o}]})}o.push(a);for(const[t,o]of Object.entries(n.getFields())){const n=gqlFieldToUniformDefinitionProperty(e,o);i.push(n)}return o.push({title:"Fields",properties:i,meta:[{name:"type",value:"fields"}]}),uniformify(e,n,o,[])}function gqlObjectToUniformDefinitionProperty(e,n){return gqlObjectPropsUniformify(e,n)}function gqlEnumToUniformRef(e,n){const t=n.getValues().map((e=>({name:e.name,type:"string",description:e.description||""})));return uniformify(e,n,[{title:"Valid values",properties:t}],[])}function gqlScalarToUniformRef(e,n){return uniformify(e,n,[],[])}function gqlInterfaceToUniformRef(e,n){return uniformify(e,n,[{title:"Fields",properties:gqlInterfaceToUniformDefinitionProperties(e,n)}],[])}function gqlInterfaceToUniformDefinitionProperties(e,n){return Object.values(n.getFields()).map((n=>gqlFieldToUniformDefinitionProperty(e,n)))}var Context=class{constructor(e=new Set,n,t,o){this.processedTypes=e,this.globalOptions=n,this.config=t,this.schema=o}};function graphqlTypesToUniformReferences(e,n){var t,o,i,r,a,s;const l=[],p=e.getTypeMap(),u=new Set;for(const c of Object.values(p)){if(isSpecifiedScalarType2(c)||isIntrospectionType2(c)||"Mutation"===c.name||"Query"===c.name||"Subscription"===c.name||isInternalOpenDocsType(c))continue;let p=null,f=!1;switch((null==n?void 0:n.flat)&&(f=!0),c.constructor.name){case"GraphQLObjectType":{const o=c,i=`object.${o.name}`;(null==n?void 0:n.regions)&&(null==(t=null==n?void 0:n.regions)?void 0:t.length)&&!n.regions.includes(i)||(p=gqlObjectToUniformRef(new Context(u,n,{flat:f},e),o));break}case"GraphQLInputObjectType":{const t=c,i=`input.${t.name}`;(null==n?void 0:n.regions)&&(null==(o=null==n?void 0:n.regions)?void 0:o.length)&&!n.regions.includes(i)||(p=gqlInputToUniformRef(new Context(u,n,{flat:f},e),t));break}case"GraphQLEnumType":{const t=c,o=`enum.${t.name}`;(null==n?void 0:n.regions)&&(null==(i=null==n?void 0:n.regions)?void 0:i.length)&&!n.regions.includes(o)||(p=gqlEnumToUniformRef(new Context(new Set,n,{},e),t));break}case"GraphQLScalarType":{const t=c,o=`scalar.${t.name}`;(null==n?void 0:n.regions)&&(null==(r=null==n?void 0:n.regions)?void 0:r.length)&&!n.regions.includes(o)||(p=gqlScalarToUniformRef(new Context(new Set,n,{},e),t));break}case"GraphQLUnionType":{const t=c,o=`union.${t.name}`;(null==n?void 0:n.regions)&&(null==(a=null==n?void 0:n.regions)?void 0:a.length)&&!n.regions.includes(o)||(p=gqlUnionToUniformRef(new Context(u,n,{flat:f,flatArg:f||!1},e),t));break}case"GraphQLInterfaceType":{const t=c,o=`interface.${t.name}`;(null==n?void 0:n.regions)&&(null==(s=null==n?void 0:n.regions)?void 0:s.length)&&!n.regions.includes(o)||(p=gqlInterfaceToUniformRef(new Context(new Set,n,{flat:f},e),t));break}default:console.debug(`Unsupported type: ${c.constructor.name}`)}p&&l.push(p)}return l}function isInternalOpenDocsType(e){return["OpenDocsScope","OpenDocsSidebarItemType","OpenDocsPage","OpenDocsExampleInput","OpenDocsSortInput","OpenDocsSortStackInput"].includes(e.name)}import{OperationTypeNode as OperationTypeNode3}from"graphql";import{ReferenceType as ReferenceType4}from"@xyd-js/uniform";function filterFieldsByRegions(e,n,t){if(!t||0===t.length)return e;const o={};for(const[i,r]of Object.entries(e)){const e=`${n}.${i}`;t.some((n=>n===e))&&(o[i]=r)}return o}import{OperationTypeNode as OperationTypeNode2}from"graphql";import{ReferenceType as ReferenceType3}from"@xyd-js/uniform";import{Kind,print,OperationTypeNode}from"graphql";import{ReferenceType as ReferenceType2}from"@xyd-js/uniform";var operationTypeToTypeNode={[ReferenceType2.GRAPHQL_QUERY]:OperationTypeNode.QUERY,[ReferenceType2.GRAPHQL_MUTATION]:OperationTypeNode.MUTATION,[ReferenceType2.GRAPHQL_SUBSCRIPTION]:OperationTypeNode.SUBSCRIPTION};function simpleGraphqlExample(e,n,t,o){const i=t.filter((e=>{var n;return null==(n=e.meta)?void 0:n.some((e=>"required"===e.name&&"true"===e.value))})),r=i.length>0?i:t.slice(0,1);let a=!1;const s=r.reduce(((n,t)=>{var o,i,r;if(e!=ReferenceType2.GRAPHQL_QUERY)return n;let a="";const s=null==(i=null==(o=t.meta)?void 0:o.find((e=>"defaults"===e.name)))?void 0:i.value;let l;switch(s&&"string"!=typeof s&&(a=JSON.stringify(s)),null==(r=t.context)?void 0:r.graphqlTypeFlat){case"String":l={kind:Kind.STRING,value:a||`example-${t.name}`};break;case"Int":case"Float":l={kind:Kind.INT,value:a||"0"};break;case"Boolean":l={kind:Kind.BOOLEAN,value:"true"===a}}return l?{...n,[t.name]:{kind:Kind.ARGUMENT,name:{kind:Kind.NAME,value:t.name},value:l}}:n}),{}),l=Object.keys(s).length===r.length,p=r.map((e=>l?s[e.name]:(a=!0,{kind:Kind.ARGUMENT,name:{kind:Kind.NAME,value:e.name},value:{kind:Kind.VARIABLE,name:{kind:Kind.NAME,value:e.name}}}))),u={kind:Kind.DOCUMENT,definitions:[{kind:Kind.OPERATION_DEFINITION,operation:operationTypeToTypeNode[e],name:a?{kind:Kind.NAME,value:n}:void 0,variableDefinitions:a?r.map(variableDefinitions):[],selectionSet:{kind:Kind.SELECTION_SET,selections:[{kind:Kind.FIELD,name:{kind:Kind.NAME,value:n},arguments:p,selectionSet:{kind:Kind.SELECTION_SET,selections:[{kind:Kind.FIELD,name:{kind:Kind.NAME,value:`# ${n} fields`}}]}}]}}]};return print(u)}function variableDefinitions(e){var n,t,o;const i=null==(n=e.meta)?void 0:n.some((e=>"defaults"===e.name));let r="";const a=null==(o=null==(t=e.meta)?void 0:t.find((e=>"defaults"===e.name)))?void 0:o.value;return a&&"string"!=typeof a&&(r=JSON.stringify(a)),{kind:Kind.VARIABLE_DEFINITION,variable:{kind:Kind.VARIABLE,name:{kind:Kind.NAME,value:e.name}},type:{kind:Kind.NAMED_TYPE,name:{kind:Kind.NAME,value:e.type}},...i&&r?{defaultValue:{kind:Kind.STRING,value:r}}:{}}}function gqlOperationToUniformRef(e,n,t,o){const i=[];for(const[r,a]of Object.entries(n)){const n=[];let s=!1,l=!1,p=!1;(null==o?void 0:o.flat)&&(s=!0,l=!0,p=!0);const u=gqlArgToUniformDefinitionProperty(new Context(new Set,o,{flat:l,flatArg:p},t),a.args),c=gqlFieldToUniformDefinitionProperty(new Context(new Set,o,{flatReturn:s},t),a);let f=c.properties||[];(null==o?void 0:o.flat)&&(f=[c]),n.push({title:"Arguments",properties:u}),n.push({title:"Returns",properties:f});const d={description:"",examples:[{codeblock:{tabs:[{title:"",language:"graphql",code:simpleGraphqlExample(e,r,u,f)}]}}]},m=new GQLOperation(a);switch(e){case ReferenceType3.GRAPHQL_QUERY:m.__operationType=OperationTypeNode2.QUERY;break;case ReferenceType3.GRAPHQL_MUTATION:m.__operationType=OperationTypeNode2.MUTATION;break;case ReferenceType3.GRAPHQL_SUBSCRIPTION:m.__operationType=OperationTypeNode2.SUBSCRIPTION;break;default:console.error(`Invalid operation type: ${e}`)}const T=uniformify(new Context(new Set,o,{},t),m,n,[d]);T&&i.push(T)}return i}function graphqlQueriesToUniformReferences(e,n){var t;const o=[],i=e.getRootType(OperationTypeNode3.QUERY),r=null==(t=null==i?void 0:i.getFields)?void 0:t.call(i);if(r){const t=filterFieldsByRegions(r,"query",null==n?void 0:n.regions);o.push(...gqlOperationToUniformRef(ReferenceType4.GRAPHQL_QUERY,t,e,n))}return o}import{OperationTypeNode as OperationTypeNode4}from"graphql";import{ReferenceType as ReferenceType5}from"@xyd-js/uniform";function graphqlMutationsToUniformReferences(e,n){var t;const o=[],i=e.getRootType(OperationTypeNode4.MUTATION),r=null==(t=null==i?void 0:i.getFields)?void 0:t.call(i);if(r){const t=filterFieldsByRegions(r,"mutation",null==n?void 0:n.regions);o.push(...gqlOperationToUniformRef(ReferenceType5.GRAPHQL_MUTATION,t,e,n))}return o}import{OperationTypeNode as OperationTypeNode5}from"graphql";import{ReferenceType as ReferenceType6}from"@xyd-js/uniform";function graphqlSubscriptionsToUniformReferences(e,n){var t;const o=[],i=e.getRootType(OperationTypeNode5.SUBSCRIPTION),r=null==(t=null==i?void 0:i.getFields)?void 0:t.call(i);if(r){const t=filterFieldsByRegions(r,"mutation",null==n?void 0:n.regions);o.push(...gqlOperationToUniformRef(ReferenceType6.GRAPHQL_SUBSCRIPTION,t,e,n))}return o}var opendocs_default='directive @scope(value: String!) on ENUM_VALUE\n\nenum OpenDocsScope {\n    _PLACEHOLDER_\n}\n\ndirective @docs(\n    route: String\n    sort: [OpenDocsSortInput!]\n    sortStack: [[String!]!]\n    flattenTypes: Boolean\n    sidebar: [OpenDocsPage]\n    group: [String]\n) repeatable on SCHEMA\n\ninput OpenDocsPage {\n    type: OpenDocsSidebarItemType!\n    key: String!\n    group: String\n    path: String\n    pages: [OpenDocsPage]\n}\n\nenum OpenDocsSidebarItemType {\n    OPERATION\n    TYPE\n}\n\ndirective @doc(\n    group: [String!],\n    path: String,\n    example: OpenDocsExampleInput,\n    scopes: [OpenDocsScope],\n) on QUERY |\n    FIELD_DEFINITION |\n    MUTATION |\n    SUBSCRIPTION |\n    OBJECT |\n    INPUT_OBJECT |\n    ENUM |\n    SCALAR |\n    UNION\n\n# TODO: finish\ninput OpenDocsExampleInput {\n    """\n    The name of the code\n    """\n    code: String!\n}\n\ninput OpenDocsSortInput {\n    node: String\n    group: [String!]\n    stack: Int\n}';async function gqlSchemaToReferences(e,n){const t=Array.isArray(e)?e:[e];t.unshift(opendocs_default);const o=await Promise.all(t.map((async e=>{if(e.startsWith("http://")||e.startsWith("https://")){const n=await fetch(e);if(!n.ok)throw new Error(`Failed to fetch schema from URL: ${e}`);return n.text()}return fs.existsSync(e)?fs.readFileSync(e,"utf-8"):e}))),i=mergeTypeDefs(o),r=print2(i),a=buildSchema(r,{assumeValid:!0});o.length>2&&console.warn("Warning: More than 2 schema files provided - no all featues will be supported!"),docDirectiveChain(o[1],a),n||(n={}),n.hasOwnProperty("flat")||(n.flat=!0);const s=[...graphqlTypesToUniformReferences(a,n={...n,...openDocsExtensionsToOptions(a)}),...graphqlQueriesToUniformReferences(a,n),...graphqlMutationsToUniformReferences(a,n),...graphqlSubscriptionsToUniformReferences(a,n)],l=n.sort??{sort:DEFAULT_SORT_ORDER};return s.sort(((e,n)=>getSortOrder(e,l)-getSortOrder(n,l))),n.route&&(s.__UNSAFE_route=()=>n.route),s}function getSortOrder(e,n){const t=n.sort??DEFAULT_SORT_ORDER,o=n.sortStack??[];getReferenceGroups(e);for(let n=0;n<t.length;n++){const i=t[n];if(matchesPrimaryGroup(e,i)){return 1e3*n+calculatePositionInGroup(e,void 0!==i.stack?i.stack:0,o)}}return Number.MAX_SAFE_INTEGER}function matchesPrimaryGroup(e,n){if(n.node){const t=e.context;return(null==t?void 0:t.graphqlTypeShort)===n.node}if(n.group&&n.group.length>0){const t=getReferenceGroups(e);return n.group.some((e=>t.includes(e)))}return!0}function calculatePositionInGroup(e,n,t){if(n<0||n>=t.length)return 0;const o=t[n],i=getReferenceGroups(e);for(let e=0;e<o.length;e++){const n=o[e];if(i.includes(n))return e}return 999}function getReferenceGroups(e){const n=e.context;if((null==n?void 0:n.group)&&Array.isArray(n.group))return n.group;if(e.__UNSAFE_selector)try{const n=(0,e.__UNSAFE_selector)("[metadata]");if(null==n?void 0:n.groups)return n.groups}catch(e){}return[]}function docDirectiveChain(e,n){const t=parse(e),o={fields:new Map};visit(t,{SchemaExtension(e){var n;for(const t of e.directives||[])if(t.name.value===OPEN_DOCS_SCHEMA_DIRECTIVE_NAME){const e=null==(n=t.arguments)?void 0:n.find((e=>"group"===e.name.value));"ListValue"===(null==e?void 0:e.value.kind)&&(o.rootGroups=e.value.values.filter((e=>"StringValue"===e.kind)).map((e=>e.value)))}}}),visit(t,{ObjectTypeExtension(e){var n,t;if(!["Query","Mutation","Subscription"].includes(e.name.value))return;const i=null==(n=e.directives)?void 0:n.find((e=>e.name.value===OPEN_DOCS_DIRECTIVE_NAME)),r=i?extractDocArgs(i):{};for(const n of e.fields??[]){const i=n.name.value,a=null==(t=n.directives)?void 0:t.find((e=>e.name.value===OPEN_DOCS_DIRECTIVE_NAME)),s=a?extractDocArgs(a):{};let l=s.path;r.path&&s.path?l=`${r.path}/${s.path}`:r.path&&(l=r.path),!s.path&&l&&(l+="/"+i);const p={groups:s.groups??r.groups??[],path:l};o.fields.set(`${e.name.value}.${i}`,p)}}}),n.__metadata=o}function extractDocArgs(e){const n={};for(const t of e.arguments??[])"group"===t.name.value&&"ListValue"===t.value.kind?n.groups=t.value.values.filter((e=>"StringValue"===e.kind)).map((e=>e.value)):"path"===t.name.value&&"StringValue"===t.value.kind&&(n.path=t.value.value);return n}export{gqlSchemaToReferences};
//# sourceMappingURL=/sm/2885d52ebbc963df30a8771959e92e01877f2cfd391d67ae60805c94ece9d2ef.map