/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/mocker-api@4.0.0/lib/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var r,t=1,o=arguments.length;t<o;t++)for(var a in r=arguments[t])Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a]);return e},__assign.apply(this,arguments)},__createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,o){void 0===o&&(o=t);var a=Object.getOwnPropertyDescriptor(r,t);a&&!("get"in a?!r.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,o,a)}:function(e,r,t,o){void 0===o&&(o=t),e[o]=r[t]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),__importStar=this&&this.__importStar||function(){var e=function(r){return e=Object.getOwnPropertyNames||function(e){var r=[];for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[r.length]=t);return r},e(r)};return function(r){if(r&&r.__esModule)return r;var t={};if(null!=r)for(var o=e(r),a=0;a<o.length;a++)"default"!==o[a]&&__createBinding(t,r,o[a]);return __setModuleDefault(t,r),t}}(),__exportStar=this&&this.__exportStar||function(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||__createBinding(r,e,t)},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=mockerApi;var path_1=__importDefault(require("path")),toRegexp=__importStar(require("path-to-regexp")),clear_module_1=__importDefault(require("clear-module")),chokidar_1=__importDefault(require("chokidar")),safe_1=__importDefault(require("colors-cli/safe")),proxyHandle_1=require("./proxyHandle"),mockerHandle_1=require("./mockerHandle");__exportStar(require("./delay"),exports),__exportStar(require("./utils"),exports);var pathToRegexp=toRegexp.pathToRegexp,mocker={};function mockerApi(e,r,t){void 0===t&&(t={});var o=(Array.isArray(r)?r:"string"==typeof r?[r]:[]).map((function(e){return path_1.default.resolve(e)}));if(o.some((function(e){return!e})))throw new Error("Mocker file does not exist!.");var a=Array.isArray(r)&&r.every((function(e){return"string"==typeof e}))||"string"==typeof r;if(!(mocker=a?s():r))return function(e,r,t){t()};var n=__assign(__assign({},t),mocker._proxy||{});if(n=__assign(__assign({},{changeHost:!0,pathRewrite:{},proxy:{},httpProxy:{},bodyParserConf:{},bodyParserJSON:{},bodyParserText:{},bodyParserRaw:{},bodyParserUrlencoded:{},watchOptions:{},header:{},priority:"proxy",withFullUrlPath:!1}),n),a){var c=chokidar_1.default.watch(o.map((function(e){return path_1.default.dirname(require.resolve(e))})),n.watchOptions);c.on("all",(function(e,r){if("change"===e||"add"===e)try{i(r),o.forEach((function(e){return i(e)})),(mocker=s())._proxy&&(n=__assign(__assign({},n),mocker._proxy)),console.log("".concat(safe_1.default.green_b.black(" Done: ")," Hot Mocker ").concat(safe_1.default.green(r.replace(process.cwd(),""))," file replacement success!"))}catch(e){console.error("".concat(safe_1.default.red_b.black(" Failed: ")," Hot Mocker ").concat(safe_1.default.red(r.replace(process.cwd(),""))," file replacement failed!!"))}}))}function i(e){try{e=require.resolve(e)}catch(e){}require.cache[e]&&(0,clear_module_1.default)(e)}function s(){return o.reduce((function(e,r){var t=require(r);return Object.assign(e,t.default?t.default:t)}),{})}return e.all(/.*/,(function(e,r,t){var o=function(e){return n.withFullUrlPath?e.url:e.path},a=Object.keys(n.proxy).find((function(r){try{return!!pathToRegexp(r.replace(new RegExp("^"+e.method+" "),"")).regexp.exec(o(e))}catch(e){return console.error("".concat(safe_1.default.red_b.black(" Failed: ")," The proxy configuration ").concat(safe_1.default.red(r)," contains a syntax error!!\n doc: ").concat(safe_1.default.blue("https://www.npmjs.com/package/path-to-regexp/v/8.2.0"))),!1}})),c=Object.keys(mocker).find((function(r){try{return!!pathToRegexp(r.replace(new RegExp("^"+e.method+" "),"")).regexp.exec(o(e))}catch(e){return console.error("".concat(safe_1.default.red_b.black(" Failed: ")," The mocker configuration ").concat(safe_1.default.red(r)," contains a syntax error!!\n doc: ").concat(safe_1.default.blue("https://www.npmjs.com/package/path-to-regexp/v/8.2.0"))),!1}})),i=__assign({"Access-Control-Allow-Origin":e.get("Origin")||"*","Access-Control-Allow-Methods":"POST, GET, OPTIONS, PUT, DELETE","Access-Control-Allow-Headers":"Content-Type, X-Requested-With,"+(e.header("access-control-request-headers")||""),"Access-Control-Allow-Credentials":"true"},n.header);Object.keys(i).forEach((function(e){r.setHeader(e,i[e])}));var s=Object.keys(mocker).find((function(r){try{return!!pathToRegexp(r.replace(new RegExp("^(PUT|POST|GET|DELETE) "),"")).regexp.exec(o(e))}catch(e){return console.error("".concat(safe_1.default.red_b.black(" Failed: ")," The mocker configuration ").concat(safe_1.default.red(r)," contains a syntax error!!\n doc: ").concat(safe_1.default.blue("https://www.npmjs.com/package/path-to-regexp/v/8.2.0"))),!1}}));if(!c&&"OPTIONS"===e.method.toLocaleUpperCase()&&s)return r.sendStatus(200);if("mocker"===n.priority){if(mocker[c])return(0,mockerHandle_1.mockerHandle)({req:e,res:r,next:t,mocker:mocker,options:n,mockerKey:c});if(a&&n.proxy[a])return(0,proxyHandle_1.proxyHandle)(e,r,n,a)}else{if(a&&n.proxy[a])return(0,proxyHandle_1.proxyHandle)(e,r,n,a);if(mocker[c])return(0,mockerHandle_1.mockerHandle)({req:e,res:r,next:t,mocker:mocker,options:n,mockerKey:c})}t()})),function(e,r,t){t()}}module.exports=mockerApi;
//# sourceMappingURL=/sm/75994c9fec5460c27ad0c54982475bb455bad75e0f4b45f85ed6a29d5c93c044.map