{"version":3,"file":"composable.cjs","names":["defaultConfigValues: GraphqlConfig","fetchOptions: RequestInit","headers: Record<string, string>","request","getRequestUrl"],"sources":["../../src/graphql/composable.ts"],"sourcesContent":["import type { AuthenticationClient } from '../auth/types.js';\nimport type { DirectusClient } from '../types/client.js';\nimport { getRequestUrl } from '../utils/get-request-url.js';\nimport { request } from '../utils/request.js';\nimport type { GraphqlClient, GraphqlConfig } from './types.js';\n\nconst defaultConfigValues: GraphqlConfig = {};\n\n/**\n * Creates a client to communicate with Directus GraphQL.\n *\n * @returns A Directus GraphQL client.\n */\nexport const graphql = (config: Partial<GraphqlConfig> = {}) => {\n\treturn <Schema>(client: DirectusClient<Schema>): GraphqlClient<Schema> => {\n\t\tconst gqlConfig = { ...defaultConfigValues, ...config };\n\t\treturn {\n\t\t\tasync query<Output extends object = Record<string, any>>(\n\t\t\t\tquery: string,\n\t\t\t\tvariables?: Record<string, unknown>,\n\t\t\t\tscope: 'items' | 'system' = 'items',\n\t\t\t): Promise<Output> {\n\t\t\t\tconst fetchOptions: RequestInit = {\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\tbody: JSON.stringify({ query, variables }),\n\t\t\t\t};\n\n\t\t\t\tif ('credentials' in gqlConfig) {\n\t\t\t\t\tfetchOptions.credentials = gqlConfig.credentials;\n\t\t\t\t}\n\n\t\t\t\tconst headers: Record<string, string> = {};\n\n\t\t\t\tif ('getToken' in this) {\n\t\t\t\t\tconst token = await (this.getToken as AuthenticationClient<Schema>['getToken'])();\n\n\t\t\t\t\tif (token) {\n\t\t\t\t\t\theaders['Authorization'] = `Bearer ${token}`;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ('Content-Type' in headers === false) {\n\t\t\t\t\theaders['Content-Type'] = 'application/json';\n\t\t\t\t}\n\n\t\t\t\tfetchOptions.headers = headers;\n\t\t\t\tconst requestPath = scope === 'items' ? '/graphql' : '/graphql/system';\n\t\t\t\tconst requestUrl = getRequestUrl(client.url, requestPath);\n\n\t\t\t\treturn await request<Output>(requestUrl.toString(), fetchOptions, client.globals.fetch);\n\t\t\t},\n\t\t};\n\t};\n};\n"],"mappings":"kFAMMA,EAAqC,EAAE,CAOhC,GAAW,EAAiC,EAAE,GAC1C,GAA0D,CACzE,IAAM,EAAY,CAAE,GAAG,EAAqB,GAAG,EAAQ,CACvD,MAAO,CACN,MAAM,MACL,EACA,EACA,EAA4B,QACV,CAClB,IAAMC,EAA4B,CACjC,OAAQ,OACR,KAAM,KAAK,UAAU,CAAE,QAAO,YAAW,CAAC,CAC1C,CAEG,gBAAiB,IACpB,EAAa,YAAc,EAAU,aAGtC,IAAMC,EAAkC,EAAE,CAE1C,GAAI,aAAc,KAAM,CACvB,IAAM,EAAQ,MAAO,KAAK,UAAuD,CAE7E,IACH,EAAQ,cAAmB,UAAU,KAInC,iBAAkB,IACrB,EAAQ,gBAAkB,oBAG3B,EAAa,QAAU,EACvB,IAAM,EAAc,IAAU,QAAU,WAAa,kBAGrD,OAAO,MAAMC,EAAAA,QAFMC,EAAAA,cAAc,EAAO,IAAK,EAAY,CAEjB,UAAU,CAAE,EAAc,EAAO,QAAQ,MAAM,EAExF"}