{"version":3,"file":"ImportApiMiddlewareFactory.cjs","sources":["../../../../../packages/engine-http/src/transfer/ImportApiMiddlewareFactory.ts"],"sourcesContent":["import { HttpController } from '../application'\nimport { HttpErrorResponse } from '../common'\nimport { fromBuffer } from './CommandStream'\nimport { ImportError, ImportExecutor } from './ImportExecutor'\nimport { createGunzip } from 'node:zlib'\nimport { ProjectGroupResolver } from '../projectGroup/ProjectGroupResolver'\n\nexport class ImportApiMiddlewareFactory {\n\tconstructor(\n\t\tprivate readonly projectGroupResolver: ProjectGroupResolver,\n\t\tprivate readonly importExecutor: ImportExecutor,\n\t) {\n\t}\n\n\tcreate(): HttpController {\n\t\treturn async ctx => {\n\t\t\tconst { projectGroup, authResult, koa } = ctx\n\t\t\tconst { request, response } = koa\n\t\t\tif (!authResult) {\n\t\t\t\treturn new HttpErrorResponse(401, 'Authentication required')\n\t\t\t}\n\n\t\t\tif (request.headers['content-type'] !== 'application/x-ndjson') {\n\t\t\t\tthrow new HttpErrorResponse(400, `Unsupported content type`)\n\t\t\t}\n\n\t\t\tif (request.headers['content-encoding'] !== undefined && request.headers['content-encoding'] !== 'gzip') {\n\t\t\t\tthrow new HttpErrorResponse(415, `Unsupported content encoding`)\n\t\t\t}\n\n\t\t\tresponse.headers['Content-Type'] = 'application/json'\n\n\t\t\ttry {\n\t\t\t\tconst isGzip = request.headers['content-encoding'] === 'gzip'\n\t\t\t\tconst commands = fromBuffer(isGzip ? request.req.pipe(createGunzip()) : request.req)\n\t\t\t\tawait this.importExecutor.import(projectGroup, authResult, commands)\n\t\t\t\tresponse.status = 200\n\t\t\t\tresponse.body = { ok: true }\n\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof ImportError) {\n\t\t\t\t\tresponse.status = 400\n\t\t\t\t\tresponse.body = { ok: false, error: e.message }\n\n\t\t\t\t} else {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["HttpErrorResponse","fromBuffer","createGunzip","ImportError"],"mappings":";;;;;;AAOO,MAAM,2BAA2B;AAAA,EACvC,YACkB,sBACA,gBAChB;AAFgB,SAAA,uBAAA;AACA,SAAA,iBAAA;AAAA,EAAA;AAAA,EAIlB,SAAyB;AACxB,WAAO,OAAM,QAAO;AACnB,YAAM,EAAE,cAAc,YAAY,IAAQ,IAAA;AACpC,YAAA,EAAE,SAAS,SAAA,IAAa;AAC9B,UAAI,CAAC,YAAY;AACT,eAAA,IAAIA,aAAAA,kBAAkB,KAAK,yBAAyB;AAAA,MAAA;AAG5D,UAAI,QAAQ,QAAQ,cAAc,MAAM,wBAAwB;AACzD,cAAA,IAAIA,aAAkB,kBAAA,KAAK,0BAA0B;AAAA,MAAA;AAGxD,UAAA,QAAQ,QAAQ,kBAAkB,MAAM,UAAa,QAAQ,QAAQ,kBAAkB,MAAM,QAAQ;AAClG,cAAA,IAAIA,aAAkB,kBAAA,KAAK,8BAA8B;AAAA,MAAA;AAGvD,eAAA,QAAQ,cAAc,IAAI;AAE/B,UAAA;AACH,cAAM,SAAS,QAAQ,QAAQ,kBAAkB,MAAM;AACjD,cAAA,WAAWC,cAAAA,WAAW,SAAS,QAAQ,IAAI,KAAKC,uBAAc,CAAA,IAAI,QAAQ,GAAG;AACnF,cAAM,KAAK,eAAe,OAAO,cAAc,YAAY,QAAQ;AACnE,iBAAS,SAAS;AACT,iBAAA,OAAO,EAAE,IAAI,KAAK;AAAA,eAEnB,GAAG;AACX,YAAI,aAAaC,eAAAA,aAAa;AAC7B,mBAAS,SAAS;AAClB,mBAAS,OAAO,EAAE,IAAI,OAAO,OAAO,EAAE,QAAQ;AAAA,QAAA,OAExC;AACA,gBAAA;AAAA,QAAA;AAAA,MACP;AAAA,IAEF;AAAA,EAAA;AAEF;;"}