{"ast":null,"code":"\"use strict\";\n\nvar _regenerator = require(\"D:/DSP_Management/node_modules/@babel/runtime/helpers/regenerator.js\")[\"default\"];\nvar _asyncToGenerator = require(\"D:/DSP_Management/node_modules/@babel/runtime/helpers/asyncToGenerator.js\")[\"default\"];\nvar _createClass = require(\"D:/DSP_Management/node_modules/@babel/runtime/helpers/createClass.js\")[\"default\"];\nvar _classCallCheck = require(\"D:/DSP_Management/node_modules/@babel/runtime/helpers/classCallCheck.js\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.HttpProxyMiddleware = void 0;\nvar httpProxy = require(\"http-proxy\");\nvar config_factory_1 = require(\"./config-factory\");\nvar contextMatcher = require(\"./context-matcher\");\nvar handlers = require(\"./_handlers\");\nvar logger_1 = require(\"./logger\");\nvar PathRewriter = require(\"./path-rewriter\");\nvar Router = require(\"./router\");\nvar HttpProxyMiddleware = /*#__PURE__*/_createClass(function HttpProxyMiddleware(context, opts) {\n  var _this = this;\n  _classCallCheck(this, HttpProxyMiddleware);\n  this.logger = (0, logger_1.getInstance)();\n  this.wsInternalSubscribed = false;\n  this.serverOnCloseSubscribed = false;\n  // https://github.com/Microsoft/TypeScript/wiki/'this'-in-TypeScript#red-flags-for-this\n  this.middleware = /*#__PURE__*/function () {\n    var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(req, res, next) {\n      var _a, _b, activeProxyOptions, server, _t;\n      return _regenerator().w(function (_context) {\n        while (1) switch (_context.p = _context.n) {\n          case 0:\n            if (!_this.shouldProxy(_this.config.context, req)) {\n              _context.n = 5;\n              break;\n            }\n            _context.p = 1;\n            _context.n = 2;\n            return _this.prepareProxyRequest(req);\n          case 2:\n            activeProxyOptions = _context.v;\n            _this.proxy.web(req, res, activeProxyOptions);\n            _context.n = 4;\n            break;\n          case 3:\n            _context.p = 3;\n            _t = _context.v;\n            next(_t);\n          case 4:\n            _context.n = 6;\n            break;\n          case 5:\n            next();\n          case 6:\n            /**\n             * Get the server object to subscribe to server events;\n             * 'upgrade' for websocket and 'close' for graceful shutdown\n             *\n             * NOTE:\n             * req.socket: node >= 13\n             * req.connection: node < 13 (Remove this when node 12/13 support is dropped)\n             */\n            server = (_b = (_a = req.socket) !== null && _a !== void 0 ? _a : req.connection) === null || _b === void 0 ? void 0 : _b.server;\n            if (server && !_this.serverOnCloseSubscribed) {\n              server.on('close', function () {\n                _this.logger.info('[HPM] server close signal received: closing proxy server');\n                _this.proxy.close();\n              });\n              _this.serverOnCloseSubscribed = true;\n            }\n            if (_this.proxyOptions.ws === true) {\n              // use initial request to access the server object to subscribe to http upgrade event\n              _this.catchUpgradeRequest(server);\n            }\n          case 7:\n            return _context.a(2);\n        }\n      }, _callee, null, [[1, 3]]);\n    }));\n    return function (_x, _x2, _x3) {\n      return _ref.apply(this, arguments);\n    };\n  }();\n  this.catchUpgradeRequest = function (server) {\n    if (!_this.wsInternalSubscribed) {\n      server.on('upgrade', _this.handleUpgrade);\n      // prevent duplicate upgrade handling;\n      // in case external upgrade is also configured\n      _this.wsInternalSubscribed = true;\n    }\n  };\n  this.handleUpgrade = /*#__PURE__*/function () {\n    var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(req, socket, head) {\n      var activeProxyOptions;\n      return _regenerator().w(function (_context2) {\n        while (1) switch (_context2.n) {\n          case 0:\n            if (!_this.shouldProxy(_this.config.context, req)) {\n              _context2.n = 2;\n              break;\n            }\n            _context2.n = 1;\n            return _this.prepareProxyRequest(req);\n          case 1:\n            activeProxyOptions = _context2.v;\n            _this.proxy.ws(req, socket, head, activeProxyOptions);\n            _this.logger.info('[HPM] Upgrading to WebSocket');\n          case 2:\n            return _context2.a(2);\n        }\n      }, _callee2);\n    }));\n    return function (_x4, _x5, _x6) {\n      return _ref2.apply(this, arguments);\n    };\n  }();\n  /**\n   * Determine whether request should be proxied.\n   *\n   * @private\n   * @param  {String} context [description]\n   * @param  {Object} req     [description]\n   * @return {Boolean}\n   */\n  this.shouldProxy = function (context, req) {\n    try {\n      var path = req.originalUrl || req.url;\n      return contextMatcher.match(context, path, req);\n    } catch (error) {\n      _this.logger.error(error);\n      return false;\n    }\n  };\n  /**\n   * Apply option.router and option.pathRewrite\n   * Order matters:\n   *    Router uses original path for routing;\n   *    NOT the modified path, after it has been rewritten by pathRewrite\n   * @param {Object} req\n   * @return {Object} proxy options\n   */\n  this.prepareProxyRequest = /*#__PURE__*/function () {\n    var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(req) {\n      var originalPath, newProxyOptions, arrow;\n      return _regenerator().w(function (_context3) {\n        while (1) switch (_context3.n) {\n          case 0:\n            // https://github.com/chimurai/http-proxy-middleware/issues/17\n            // https://github.com/chimurai/http-proxy-middleware/issues/94\n            req.url = req.originalUrl || req.url;\n            // store uri before it gets rewritten for logging\n            originalPath = req.url;\n            newProxyOptions = Object.assign({}, _this.proxyOptions); // Apply in order:\n            // 1. option.router\n            // 2. option.pathRewrite\n            _context3.n = 1;\n            return _this.applyRouter(req, newProxyOptions);\n          case 1:\n            _context3.n = 2;\n            return _this.applyPathRewrite(req, _this.pathRewriter);\n          case 2:\n            // debug logging for both http(s) and websockets\n            if (_this.proxyOptions.logLevel === 'debug') {\n              arrow = (0, logger_1.getArrow)(originalPath, req.url, _this.proxyOptions.target, newProxyOptions.target);\n              _this.logger.debug('[HPM] %s %s %s %s', req.method, originalPath, arrow, newProxyOptions.target);\n            }\n            return _context3.a(2, newProxyOptions);\n        }\n      }, _callee3);\n    }));\n    return function (_x7) {\n      return _ref3.apply(this, arguments);\n    };\n  }();\n  // Modify option.target when router present.\n  this.applyRouter = /*#__PURE__*/function () {\n    var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(req, options) {\n      var newTarget;\n      return _regenerator().w(function (_context4) {\n        while (1) switch (_context4.n) {\n          case 0:\n            if (!options.router) {\n              _context4.n = 2;\n              break;\n            }\n            _context4.n = 1;\n            return Router.getTarget(req, options);\n          case 1:\n            newTarget = _context4.v;\n            if (newTarget) {\n              _this.logger.debug('[HPM] Router new target: %s -> \"%s\"', options.target, newTarget);\n              options.target = newTarget;\n            }\n          case 2:\n            return _context4.a(2);\n        }\n      }, _callee4);\n    }));\n    return function (_x8, _x9) {\n      return _ref4.apply(this, arguments);\n    };\n  }();\n  // rewrite path\n  this.applyPathRewrite = /*#__PURE__*/function () {\n    var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(req, pathRewriter) {\n      var path;\n      return _regenerator().w(function (_context5) {\n        while (1) switch (_context5.n) {\n          case 0:\n            if (!pathRewriter) {\n              _context5.n = 2;\n              break;\n            }\n            _context5.n = 1;\n            return pathRewriter(req.url, req);\n          case 1:\n            path = _context5.v;\n            if (typeof path === 'string') {\n              req.url = path;\n            } else {\n              _this.logger.info('[HPM] pathRewrite: No rewritten path found. (%s)', req.url);\n            }\n          case 2:\n            return _context5.a(2);\n        }\n      }, _callee5);\n    }));\n    return function (_x0, _x1) {\n      return _ref5.apply(this, arguments);\n    };\n  }();\n  this.logError = function (err, req, res, target) {\n    var _a;\n    var hostname = ((_a = req.headers) === null || _a === void 0 ? void 0 : _a.host) || req.hostname || req.host; // (websocket) || (node0.10 || node 4/5)\n    var requestHref = \"\".concat(hostname).concat(req.url);\n    var targetHref = \"\".concat(target === null || target === void 0 ? void 0 : target.href); // target is undefined when websocket errors\n    var errorMessage = '[HPM] Error occurred while proxying request %s to %s [%s] (%s)';\n    var errReference = 'https://nodejs.org/api/errors.html#errors_common_system_errors'; // link to Node Common Systems Errors page\n    _this.logger.error(errorMessage, requestHref, targetHref, err.code || err, errReference);\n  };\n  this.config = (0, config_factory_1.createConfig)(context, opts);\n  this.proxyOptions = this.config.options;\n  // create proxy\n  this.proxy = httpProxy.createProxyServer({});\n  this.logger.info(\"[HPM] Proxy created: \".concat(this.config.context, \"  -> \").concat(this.proxyOptions.target));\n  this.pathRewriter = PathRewriter.createPathRewriter(this.proxyOptions.pathRewrite); // returns undefined when \"pathRewrite\" is not provided\n  // attach handler to http-proxy events\n  handlers.init(this.proxy, this.proxyOptions);\n  // log errors for debug purpose\n  this.proxy.on('error', this.logError);\n  // https://github.com/chimurai/http-proxy-middleware/issues/19\n  // expose function to upgrade externally\n  this.middleware.upgrade = function (req, socket, head) {\n    if (!_this.wsInternalSubscribed) {\n      _this.handleUpgrade(req, socket, head);\n    }\n  };\n});\nexports.HttpProxyMiddleware = HttpProxyMiddleware;","map":{"version":3,"names":["_regenerator","require","_asyncToGenerator","_createClass","_classCallCheck","Object","defineProperty","exports","value","HttpProxyMiddleware","httpProxy","config_factory_1","contextMatcher","handlers","logger_1","PathRewriter","Router","context","opts","_this","logger","getInstance","wsInternalSubscribed","serverOnCloseSubscribed","middleware","_ref","m","_callee","req","res","next","_a","_b","activeProxyOptions","server","_t","w","_context","p","n","shouldProxy","config","prepareProxyRequest","v","proxy","web","socket","connection","on","info","close","proxyOptions","ws","catchUpgradeRequest","a","_x","_x2","_x3","apply","arguments","handleUpgrade","_ref2","_callee2","head","_context2","_x4","_x5","_x6","path","originalUrl","url","match","error","_ref3","_callee3","originalPath","newProxyOptions","arrow","_context3","assign","applyRouter","applyPathRewrite","pathRewriter","logLevel","getArrow","target","debug","method","_x7","_ref4","_callee4","options","newTarget","_context4","router","getTarget","_x8","_x9","_ref5","_callee5","_context5","_x0","_x1","logError","err","hostname","headers","host","requestHref","concat","targetHref","href","errorMessage","errReference","code","createConfig","createProxyServer","createPathRewriter","pathRewrite","init","upgrade"],"sources":["D:/DSP_Management/node_modules/http-proxy-middleware/dist/http-proxy-middleware.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpProxyMiddleware = void 0;\nconst httpProxy = require(\"http-proxy\");\nconst config_factory_1 = require(\"./config-factory\");\nconst contextMatcher = require(\"./context-matcher\");\nconst handlers = require(\"./_handlers\");\nconst logger_1 = require(\"./logger\");\nconst PathRewriter = require(\"./path-rewriter\");\nconst Router = require(\"./router\");\nclass HttpProxyMiddleware {\n    constructor(context, opts) {\n        this.logger = (0, logger_1.getInstance)();\n        this.wsInternalSubscribed = false;\n        this.serverOnCloseSubscribed = false;\n        // https://github.com/Microsoft/TypeScript/wiki/'this'-in-TypeScript#red-flags-for-this\n        this.middleware = async (req, res, next) => {\n            var _a, _b;\n            if (this.shouldProxy(this.config.context, req)) {\n                try {\n                    const activeProxyOptions = await this.prepareProxyRequest(req);\n                    this.proxy.web(req, res, activeProxyOptions);\n                }\n                catch (err) {\n                    next(err);\n                }\n            }\n            else {\n                next();\n            }\n            /**\n             * Get the server object to subscribe to server events;\n             * 'upgrade' for websocket and 'close' for graceful shutdown\n             *\n             * NOTE:\n             * req.socket: node >= 13\n             * req.connection: node < 13 (Remove this when node 12/13 support is dropped)\n             */\n            const server = (_b = ((_a = req.socket) !== null && _a !== void 0 ? _a : req.connection)) === null || _b === void 0 ? void 0 : _b.server;\n            if (server && !this.serverOnCloseSubscribed) {\n                server.on('close', () => {\n                    this.logger.info('[HPM] server close signal received: closing proxy server');\n                    this.proxy.close();\n                });\n                this.serverOnCloseSubscribed = true;\n            }\n            if (this.proxyOptions.ws === true) {\n                // use initial request to access the server object to subscribe to http upgrade event\n                this.catchUpgradeRequest(server);\n            }\n        };\n        this.catchUpgradeRequest = (server) => {\n            if (!this.wsInternalSubscribed) {\n                server.on('upgrade', this.handleUpgrade);\n                // prevent duplicate upgrade handling;\n                // in case external upgrade is also configured\n                this.wsInternalSubscribed = true;\n            }\n        };\n        this.handleUpgrade = async (req, socket, head) => {\n            if (this.shouldProxy(this.config.context, req)) {\n                const activeProxyOptions = await this.prepareProxyRequest(req);\n                this.proxy.ws(req, socket, head, activeProxyOptions);\n                this.logger.info('[HPM] Upgrading to WebSocket');\n            }\n        };\n        /**\n         * Determine whether request should be proxied.\n         *\n         * @private\n         * @param  {String} context [description]\n         * @param  {Object} req     [description]\n         * @return {Boolean}\n         */\n        this.shouldProxy = (context, req) => {\n            try {\n                const path = req.originalUrl || req.url;\n                return contextMatcher.match(context, path, req);\n            }\n            catch (error) {\n                this.logger.error(error);\n                return false;\n            }\n        };\n        /**\n         * Apply option.router and option.pathRewrite\n         * Order matters:\n         *    Router uses original path for routing;\n         *    NOT the modified path, after it has been rewritten by pathRewrite\n         * @param {Object} req\n         * @return {Object} proxy options\n         */\n        this.prepareProxyRequest = async (req) => {\n            // https://github.com/chimurai/http-proxy-middleware/issues/17\n            // https://github.com/chimurai/http-proxy-middleware/issues/94\n            req.url = req.originalUrl || req.url;\n            // store uri before it gets rewritten for logging\n            const originalPath = req.url;\n            const newProxyOptions = Object.assign({}, this.proxyOptions);\n            // Apply in order:\n            // 1. option.router\n            // 2. option.pathRewrite\n            await this.applyRouter(req, newProxyOptions);\n            await this.applyPathRewrite(req, this.pathRewriter);\n            // debug logging for both http(s) and websockets\n            if (this.proxyOptions.logLevel === 'debug') {\n                const arrow = (0, logger_1.getArrow)(originalPath, req.url, this.proxyOptions.target, newProxyOptions.target);\n                this.logger.debug('[HPM] %s %s %s %s', req.method, originalPath, arrow, newProxyOptions.target);\n            }\n            return newProxyOptions;\n        };\n        // Modify option.target when router present.\n        this.applyRouter = async (req, options) => {\n            let newTarget;\n            if (options.router) {\n                newTarget = await Router.getTarget(req, options);\n                if (newTarget) {\n                    this.logger.debug('[HPM] Router new target: %s -> \"%s\"', options.target, newTarget);\n                    options.target = newTarget;\n                }\n            }\n        };\n        // rewrite path\n        this.applyPathRewrite = async (req, pathRewriter) => {\n            if (pathRewriter) {\n                const path = await pathRewriter(req.url, req);\n                if (typeof path === 'string') {\n                    req.url = path;\n                }\n                else {\n                    this.logger.info('[HPM] pathRewrite: No rewritten path found. (%s)', req.url);\n                }\n            }\n        };\n        this.logError = (err, req, res, target) => {\n            var _a;\n            const hostname = ((_a = req.headers) === null || _a === void 0 ? void 0 : _a.host) || req.hostname || req.host; // (websocket) || (node0.10 || node 4/5)\n            const requestHref = `${hostname}${req.url}`;\n            const targetHref = `${target === null || target === void 0 ? void 0 : target.href}`; // target is undefined when websocket errors\n            const errorMessage = '[HPM] Error occurred while proxying request %s to %s [%s] (%s)';\n            const errReference = 'https://nodejs.org/api/errors.html#errors_common_system_errors'; // link to Node Common Systems Errors page\n            this.logger.error(errorMessage, requestHref, targetHref, err.code || err, errReference);\n        };\n        this.config = (0, config_factory_1.createConfig)(context, opts);\n        this.proxyOptions = this.config.options;\n        // create proxy\n        this.proxy = httpProxy.createProxyServer({});\n        this.logger.info(`[HPM] Proxy created: ${this.config.context}  -> ${this.proxyOptions.target}`);\n        this.pathRewriter = PathRewriter.createPathRewriter(this.proxyOptions.pathRewrite); // returns undefined when \"pathRewrite\" is not provided\n        // attach handler to http-proxy events\n        handlers.init(this.proxy, this.proxyOptions);\n        // log errors for debug purpose\n        this.proxy.on('error', this.logError);\n        // https://github.com/chimurai/http-proxy-middleware/issues/19\n        // expose function to upgrade externally\n        this.middleware.upgrade = (req, socket, head) => {\n            if (!this.wsInternalSubscribed) {\n                this.handleUpgrade(req, socket, head);\n            }\n        };\n    }\n}\nexports.HttpProxyMiddleware = HttpProxyMiddleware;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}