{"version":3,"sources":["jsdelivr-header.js","/npm/fts-http-client@1.4.0/build/index.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,OAAO,eAAe,QAAS,aAAc,CAAE,OAAO,IACtD,MAAM,gBAAkB,QAAQ,iBAC1B,qBAAuB,gBAAgB,QAAQ,uBACrD,SAAS,iBAAiB,EAAY,GAClC,MAAM,MAAE,GAAU,EACZ,EAAiB,kBAAkB,EAAW,OAAO,QACrD,EAAY,gBAAgB,kBAC5B,EAAgB,EAAU,QAAQ,EAAW,OAAO,QACpD,EAAiB,EAAU,QAAQ,EAAW,QAAQ,QAC5D,OAAO,SAAU,KACb,IACI,EADA,GAAY,EAEhB,GAAI,EAAK,OAAS,EAAW,OAAO,MAAM,OACtC,MAAM,IAAI,MAAM,0BAA0B,qCAAyC,EAAW,OAAO,MAAM,oBAAoB,EAAK,WAExI,GAAoB,IAAhB,EAAK,QAAmC,iBAAZ,EAAK,GAAiB,CAClD,MAAM,EAAM,EAAK,GACX,EAAiB,EAAW,OAAO,MAAM,GAC/C,GAAI,EAAgB,CAChB,MAAM,EAAa,EAAW,OAAO,OAAO,WAAW,GACjD,EAAmC,WAApB,EAAW,MAAqB,EAAW,SAChE,IAAI,GAAiB,EACrB,GAAI,OAAO,SAAS,IAAQ,MAAM,QAAQ,IAAQ,aAAe,KAC7D,GAAiB,OAEhB,GAAwB,WAApB,EAAW,MAChB,EAAW,MACX,EACA,IAAK,MAAM,KAAS,EACX,EAAI,eAAe,KACpB,GAAiB,GAIzB,IACA,EAAS,EACT,GAAY,EAEpB,CACJ,CAWA,GAVK,IACD,EAAS,EAAK,QAAO,CAAC,EAAK,EAAO,KAC9B,MAAM,EAAO,EAAW,OAAO,MAAM,GAIrC,OAHI,IACA,EAAI,GAAQ,GAET,CAAG,GACX,CAAC,IAER,EAAc,GACV,EAAc,OAAQ,CACtB,MAAM,EAAU,EAAU,IAAI,WAAW,EAAc,QACvD,MAAM,IAAI,MAAM,uBAAuB,IAC3C,CACA,MAAM,QAAiB,qBAAqB,QAAQ,EAAK,CACrD,OAAQ,OACR,QAAS,CACL,OAAQ,mBACR,eAAgB,oBAEpB,KAAM,KAAK,UAAU,KAEzB,IAAK,EAAS,GACV,MAAM,IAAI,MAAM,EAAS,YAE7B,MAAM,EAAU,CAAE,aAAc,EAAS,QAEzC,OADA,EAAe,GACR,EAAQ,MAAM,CAE7B,CAEA,SAAS,kBAAkB,GACvB,OAAO,EAAO,SAAS,QAAQ,IAAU,EAAO,WAAW,GAAM,eAAe,YACpF,CAHA,QAAQ,iBAAmB","file":"/npm/fts-http-client@1.4.0/build/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/fts-http-client@1.4.0/build/index.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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fts_validator_1 = require(\"fts-validator\");\nconst isomorphic_unfetch_1 = __importDefault(require(\"isomorphic-unfetch\"));\nfunction createHttpClient(definition, url) {\n    const { title } = definition;\n    const requiredParams = getRequiredParams(definition.params.schema);\n    const validator = fts_validator_1.createValidator();\n    const paramsEncoder = validator.encoder(definition.params.schema);\n    const returnsDecoder = validator.decoder(definition.returns.schema);\n    return async (...args) => {\n        let setParams = false;\n        let params;\n        if (args.length > definition.params.order.length) {\n            throw new Error(`Invalid parameters to \"${title}\": too many parameters. Expected ${definition.params.order.length}, received ${args.length}.`);\n        }\n        if (args.length === 1 && typeof args[0] === 'object') {\n            const arg = args[0];\n            const firstParamName = definition.params.order[0];\n            if (firstParamName) {\n                const firstParam = definition.params.schema.properties[firstParamName];\n                const isCustomType = firstParam.type === 'string' && firstParam.coerceTo;\n                let isParamsObject = true;\n                if (Buffer.isBuffer(arg) || Array.isArray(arg) || arg instanceof Date) {\n                    isParamsObject = false;\n                }\n                else if (firstParam.type === 'object' ||\n                    firstParam.$ref ||\n                    isCustomType) {\n                    for (const param of requiredParams) {\n                        if (!arg.hasOwnProperty(param)) {\n                            isParamsObject = false;\n                        }\n                    }\n                }\n                if (isParamsObject) {\n                    params = arg;\n                    setParams = true;\n                }\n            }\n        }\n        if (!setParams) {\n            params = args.reduce((acc, param, i) => {\n                const name = definition.params.order[i];\n                if (name) {\n                    acc[name] = param;\n                }\n                return acc;\n            }, {});\n        }\n        paramsEncoder(params);\n        if (paramsEncoder.errors) {\n            const message = validator.ajv.errorsText(paramsEncoder.errors);\n            throw new Error(`Invalid parameters: ${message}`);\n        }\n        const response = await isomorphic_unfetch_1.default(url, {\n            method: 'POST',\n            headers: {\n                Accept: 'application/json',\n                'Content-Type': 'application/json'\n            },\n            body: JSON.stringify(params)\n        });\n        if (!response.ok) {\n            throw new Error(response.statusText);\n        }\n        const returns = { result: await response.json() };\n        returnsDecoder(returns);\n        return returns.result;\n    };\n}\nexports.createHttpClient = createHttpClient;\nfunction getRequiredParams(schema) {\n    return schema.required.filter((name) => !schema.properties[name].hasOwnProperty('default'));\n}\n"]}