{"version":3,"sources":["jsdelivr-header.js","/npm/aws-lambda-node-runtime@0.1.0/dist/compile/runtime.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aACA,IAAI,gBAAmB,MAAQ,KAAK,iBAAoB,SAAU,GAC9D,OAAQ,GAAO,EAAI,WAAc,EAAM,CAAE,QAAW,EACxD,EACA,MAAM,UAAY,gBAAgB,QAAQ,cACpC,SAAW,gBAAgB,QAAQ,aACnC,OAAS,QAAQ,UACjB,UAAY,QAAQ,aACpB,qBAAuB,CACzB,QAAU,GAAS,IACX,EAAI,+BACJ,QAAQ,KAAK,cAAc,IAAM,MAGjC,GACJ,GAGF,iBAAmB,MACrB,IAAI,EACJ,OAAO,MAAO,IACV,QAA8B,IAAnB,EAAgC,CACvC,MAAO,EAAS,GAAe,EAAI,SAAS,MAAM,KAClD,EAAiB,QAAQ,GAAG,EAAI,oBAAoB,KAAW,EACnE,CACA,GAA8B,mBAAnB,EACP,OAAO,EAGP,MAAM,IAAI,MAAM,yBACpB,CAEP,EAdwB,GAenB,WAAc,GACR,GAAY,IAAI,UAAU,QAAQ,EAAS,GAEjD,iBAAoB,IACtB,MAAM,EAAI,OAAO,QAAQ,GAKzB,MAAO,CACH,UAAW,IAAM,EAAE,MAAO,uCAC1B,oBAAqB,CAAC,EAAI,IAAQ,EAAE,OAAQ,kCAAkC,aAAe,GAC7F,kBAAmB,CAAC,EAAI,IAAQ,EAAE,OAAQ,kCAAkC,UAAY,GACxF,cAAgB,GAAQ,EAAE,OAAQ,iCARvB,CAAC,IAAQ,CACpB,aAAc,EAAI,QAClB,UAAW,EAAI,aAMqD,CAAO,IAC9E,EAEC,YAAc,CAAC,EAAS,EAAO,IAC1B,IAAI,SAAQ,CAAC,EAAS,KACzB,IAAI,GAAgB,EAChB,GAAe,EACnB,MAAM,EAAkB,IAChB,EACA,QAAQ,KAAK,mCAGb,EACA,QAAQ,KAAK,wDAGjB,GAAgB,EAChB,EAAQ,GAAI,EAEV,EAAiB,IACf,EACA,QAAQ,KAAK,kCAGb,EACA,QAAQ,KAAK,wDAGjB,GAAe,EACf,EAAO,GAAI,EAET,EAAK,CAAC,EAAK,KACb,GAAI,EACA,OAAO,EAAc,GAEzB,EAAe,EAAI,EAEvB,IACI,MAAM,EAAS,EAAQ,KAAK,KAAM,EAAO,EAAK,GACxB,iBAAX,GAA8C,mBAAhB,EAAO,MAC5C,EAAO,KAAK,EAAgB,EAEpC,CACA,MAAO,GACH,EAAc,EAClB,KAIF,QAAW,IACb,SAAS,UAAU,MAAM,IACrB,MAAM,EAAY,iBAAiB,GAC7B,EAAgB,iBAAiB,GACjC,EAAkB,WAAW,GACnC,EAAc,MAAM,IAEhB,UAAU,mBAAmB,EAAW,GADzB,CAAC,EAAO,IAAQ,YAAY,EAAS,EAAO,IACM,qBAAsB,EAAK,IAC5F,GAAQ,EAAU,cAAc,GAAK,MAAK,IAAM,EAAK,IAAM,IAAM,GACtE,EAAK,EAEZ,OAAO,QAAU","file":"/npm/aws-lambda-node-runtime@0.1.0/dist/compile/runtime.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/aws-lambda-node-runtime@0.1.0/dist/compile/runtime.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nconst context_1 = __importDefault(require(\"./context\"));\nconst config_1 = __importDefault(require(\"./config\"));\nconst http_1 = require(\"./http\");\nconst helpers_1 = require(\"./helpers\");\nconst contextBasedExecutor = {\n    execute: (ctx) => (fn) => {\n        if (ctx.callbackWaitsForEmptyEventLoop) {\n            process.once(\"beforeExit\", () => fn());\n        }\n        else {\n            fn();\n        }\n    },\n};\nconst getLambdaHandler = (() => {\n    let _lambdaHandler = undefined;\n    return async (cfg) => {\n        if (typeof _lambdaHandler === \"undefined\") {\n            const [modName, handlerName] = cfg._HANDLER.split(\".\");\n            _lambdaHandler = require(`${cfg.LAMBDA_TASK_ROOT}/${modName}`)[handlerName];\n        }\n        if (typeof _lambdaHandler === \"function\") {\n            return _lambdaHandler;\n        }\n        else {\n            throw new Error(\"Can't find the handler\");\n        }\n    };\n})();\nconst getContext = (cfg) => {\n    return (headers) => new context_1.default(headers, cfg);\n};\nconst getLambdaHttpApi = (cfg) => {\n    const r = http_1.request(cfg);\n    const errObj = (err) => ({\n        errorMessage: err.message,\n        errorType: err.toString(),\n    });\n    return {\n        fetchNext: () => r(\"GET\", \"/2018-06-01/runtime/invocation/next\"),\n        sendSuccessResponse: (id, obj) => r(\"POST\", `/2018-06-01/runtime/invocation/${id}/response`, obj),\n        sendErrorResponse: (id, err) => r(\"POST\", `/2018-06-01/runtime/invocation/${id}/error`, err),\n        sendErrorInit: (err) => r(\"POST\", \"/2018-06-01/runtime/init/error\", errObj(err)),\n    };\n};\nconst callHandler = (handler, event, ctx) => {\n    return new Promise((resolve, reject) => {\n        let resolveCalled = false;\n        let rejectCalled = false;\n        const wrappedResolve = (val) => {\n            if (resolveCalled) {\n                console.warn(\"resolve has been already called\");\n                return;\n            }\n            if (rejectCalled) {\n                console.warn(\"calling resolve, but reject has been already called\");\n                return;\n            }\n            resolveCalled = true;\n            resolve(val);\n        };\n        const wrappedReject = (err) => {\n            if (rejectCalled) {\n                console.warn(\"reject has been already called\");\n                return;\n            }\n            if (resolveCalled) {\n                console.warn(\"calling reject, but resolve has been already called\");\n                return;\n            }\n            rejectCalled = true;\n            reject(err);\n        };\n        const cb = (err, val) => {\n            if (err) {\n                return wrappedReject(err);\n            }\n            wrappedResolve(val);\n        };\n        try {\n            const retVal = handler.call(null, event, ctx, cb);\n            if (typeof retVal === \"object\" && typeof retVal.then === \"function\") {\n                retVal.then(wrappedResolve, wrappedReject);\n            }\n        }\n        catch (e) {\n            wrappedReject(e);\n        }\n    });\n};\n//----- start here\nconst runtime = (done) => {\n    config_1.default().then((cfg) => {\n        const lambdaApi = getLambdaHttpApi(cfg);\n        const lambdaHandler = getLambdaHandler(cfg);\n        const contextProvider = getContext(cfg);\n        lambdaHandler.then((handler) => {\n            const caller = (event, ctx) => callHandler(handler, event, ctx);\n            helpers_1.processNextRequest(lambdaApi, contextProvider, caller, contextBasedExecutor, done);\n        }, (err) => lambdaApi.sendErrorInit(err).then(() => done(err), done));\n    }, done);\n};\nmodule.exports = runtime;\n"]}