/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/sap-cf-axios@1.0.2/dist/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,s)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t},__awaiter=this&&this.__awaiter||function(e,t,r,o){return new(r||(r=Promise))((function(s,n){function a(e){try{c(o.next(e))}catch(e){n(e)}}function i(e){try{c(o.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,i)}c((o=o.apply(e,t||[])).next())}))},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.logAxiosError=exports.flushCache=exports.getSapCfAxiosInstance=exports.FlexsoAxiosCache=exports.AxiosError=void 0;const sap_cf_destconn_1=require("sap-cf-destconn"),axios_1=__importStar(require("axios")),node_cache_1=__importDefault(require("node-cache")),cf_nodejs_logging_support_1=__importDefault(require("cf-nodejs-logging-support")),configEnhancer_1=__importDefault(require("./configEnhancer")),object_hash_1=__importDefault(require("object-hash")),instanceCache=new node_cache_1.default({stdTTL:43200,checkperiod:3600,useClones:!1});var axios_2=require("axios");Object.defineProperty(exports,"AxiosError",{enumerable:!0,get:function(){return axios_2.AxiosError}});var axiosCache_1=require("./cache/axiosCache");function getSapCfAxiosInstance(e,t,r="options"){const o=`${(0,object_hash_1.default)(t||"default")}_$$_${e}`;instanceCache.has(o)||instanceCache.set(o,SapCfAxios(e,t,r));const s=instanceCache.get(o);if(!s){throw{message:"unable to get the destination instance"}}return s}function flushCache(){return instanceCache.flushAll()}function SapCfAxios(e,t,r="options"){return createInstance(e,t,r)}function createInstance(e,t,r="options"){const o=null==t?void 0:t.interceptors;t&&delete t.interceptors;const s=axios_1.default.create(t);return s.interceptors.request.use((o=>__awaiter(this,void 0,void 0,(function*(){var n,a,i,c;const u=o.logger||cf_nodejs_logging_support_1.default||console,f=(null===(n=o.headers)||void 0===n?void 0:n.Authorization)||(null===(a=o.headers)||void 0===a?void 0:a.authorization);try{const n=yield(0,sap_cf_destconn_1.readDestination)(e,f,(t||{}).subscribedDomain),a=yield(0,configEnhancer_1.default)(o,n);if(a.xsrfHeaderName&&"X-XSRF-TOKEN"!==a.xsrfHeaderName&&"Fetch"!==(null===(i=a.headers)||void 0===i?void 0:i[a.xsrfHeaderName])){const e="string"==typeof r?r:r.method||"options",t="string"==typeof r?a.url:r.url,o="string"==typeof r?{}:r.params;var l={url:t,method:e,headers:new axios_1.AxiosHeaders(Object.assign(Object.assign({},f&&{authorization:f}),{[a.xsrfHeaderName]:"Fetch"})),params:o};try{const{headers:e}=yield s(l),t=e["set-cookie"];e&&(a.headers||(a.headers=new axios_1.AxiosHeaders({})),t&&(a.headers.cookie=t.join("; ")),e[a.xsrfHeaderName]&&(a.headers[a.xsrfHeaderName]=e[a.xsrfHeaderName]))}catch(e){if(logAxiosError(e,u),e instanceof Error)throw Object.assign(Object.assign({},e),{request:"<hidden>","sap-cf-axios":{message:"sap-cf-axios: Error while getting token",tokenMethod:l.method,tokenUrl:l.url}});throw e}}return a}catch(e){if(e instanceof Error)throw null===(c=null==u?void 0:u.error)||void 0===c||c.call(u,"unable to connect to the destination",e),Object.assign(Object.assign({},e),{request:"<hidden>","sap-cf-axios":{message:"sap-cf-axios: unable to connect to the destination"}});throw e}})))),o&&(o.request&&(o.request||[]).forEach((e=>s.interceptors.request.use(e))),o.response&&(o.response||[]).forEach((e=>s.interceptors.response.use(e)))),s}function logAxiosError(e,t){const r="function"==typeof(null==t?void 0:t.error)?t:cf_nodejs_logging_support_1.default;try{r.error("Error",e.message),e.response?r.error(JSON.stringify({data:e.response.data,status:e.response.status,headers:e.response.headers})):r.error(JSON.stringify(e.toJSON()))}catch(t){console.error("Cannot log errors with the given logger",t),console.error(e)}}Object.defineProperty(exports,"FlexsoAxiosCache",{enumerable:!0,get:function(){return axiosCache_1.FlexsoAxiosCache}}),exports.getSapCfAxiosInstance=getSapCfAxiosInstance,exports.flushCache=flushCache,exports.default=SapCfAxios,exports.logAxiosError=logAxiosError;
//# sourceMappingURL=/sm/2c4ddfe5703984bdd50382c644ca421f65a3555f9067d01bd149fa320346b2aa.map