{"version":3,"file":"SystemGraphQLContextFactory.cjs","sources":["../../../../../packages/engine-http/src/system/SystemGraphQLContextFactory.ts"],"sourcesContent":["import { Identity, SystemContainer } from '@contember/engine-system-api'\nimport { SystemGraphQLContext } from './SystemGraphQLHandlerFactory'\nimport { AuthResult } from '../common'\nimport { Acl } from '@contember/schema'\nimport { ProjectContainer } from '../project'\n\nexport class SystemGraphQLContextFactory {\n\tpublic async create({ authResult, memberships,  projectContainer, systemContainer, onClearCache }: {\n\t\tauthResult: AuthResult\n\t\tmemberships: readonly Acl.Membership[]\n\t\tprojectContainer: ProjectContainer\n\t\tsystemContainer: SystemContainer\n\t\tonClearCache: () => void\n\t}): Promise<SystemGraphQLContext> {\n\t\tconst identity = new Identity(\n\t\t\tauthResult.identityId,\n\t\t\tmemberships.map(it => it.role),\n\t\t)\n\n\t\tconst db = projectContainer.systemDatabaseContext\n\t\tconst systemContext = await systemContainer.resolverContextFactory.create({\n\t\t\tdb,\n\t\t\tidentity,\n\t\t\tproject: { ...projectContainer.project, systemSchema: db.client.schema },\n\t\t\tgetSchema: async options => {\n\t\t\t\t return (await projectContainer.contentSchemaResolver.getSchema({ db, ...options })).schema\n\t\t\t},\n\t\t})\n\t\treturn {\n\t\t\t...systemContext,\n\t\t\tonClearCache,\n\t\t}\n\t}\n}\n"],"names":["Identity"],"mappings":";;;AAMO,MAAM,4BAA4B;AAAA,EACxC,MAAa,OAAO,EAAE,YAAY,aAAc,kBAAkB,iBAAiB,gBAMjD;AACjC,UAAM,WAAW,IAAIA,gBAAA;AAAA,MACpB,WAAW;AAAA,MACX,YAAY,IAAI,CAAM,OAAA,GAAG,IAAI;AAAA,IAC9B;AAEA,UAAM,KAAK,iBAAiB;AAC5B,UAAM,gBAAgB,MAAM,gBAAgB,uBAAuB,OAAO;AAAA,MACzE;AAAA,MACA;AAAA,MACA,SAAS,EAAE,GAAG,iBAAiB,SAAS,cAAc,GAAG,OAAO,OAAO;AAAA,MACvE,WAAW,OAAM,YAAW;AAClB,gBAAA,MAAM,iBAAiB,sBAAsB,UAAU,EAAE,IAAI,GAAG,QAAS,CAAA,GAAG;AAAA,MAAA;AAAA,IACtF,CACA;AACM,WAAA;AAAA,MACN,GAAG;AAAA,MACH;AAAA,IACD;AAAA,EAAA;AAEF;;"}