http-proxy-middleware 0.17.1 → 0.17.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +22 -8
  3. package/lib/handlers.js +13 -1
  4. package/lib/index.js +17 -6
  5. package/lib/logger.js +2 -2
  6. package/package.json +13 -9
  7. package/.editorconfig +0 -18
  8. package/.jscsrc +0 -8
  9. package/.npmignore +0 -2
  10. package/.travis.yml +0 -16
  11. package/CONTRIBUTING.md +0 -61
  12. package/ISSUE_TEMPLATE.md +0 -21
  13. package/coverage/coverage.json +0 -1
  14. package/coverage/lcov-report/base.css +0 -213
  15. package/coverage/lcov-report/http-proxy-middleware/index.html +0 -93
  16. package/coverage/lcov-report/http-proxy-middleware/index.js.html +0 -80
  17. package/coverage/lcov-report/http-proxy-middleware/lib/config-factory.js.html +0 -443
  18. package/coverage/lcov-report/http-proxy-middleware/lib/context-matcher.js.html +0 -347
  19. package/coverage/lcov-report/http-proxy-middleware/lib/handlers.js.html +0 -251
  20. package/coverage/lcov-report/http-proxy-middleware/lib/index.html +0 -171
  21. package/coverage/lcov-report/http-proxy-middleware/lib/index.js.html +0 -437
  22. package/coverage/lcov-report/http-proxy-middleware/lib/logger.js.html +0 -539
  23. package/coverage/lcov-report/http-proxy-middleware/lib/path-rewriter.js.html +0 -281
  24. package/coverage/lcov-report/http-proxy-middleware/lib/router.js.html +0 -224
  25. package/coverage/lcov-report/index.html +0 -106
  26. package/coverage/lcov-report/prettify.css +0 -1
  27. package/coverage/lcov-report/prettify.js +0 -1
  28. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  29. package/coverage/lcov-report/sorter.js +0 -158
  30. package/coverage/lcov.info +0 -647
  31. package/examples/README.md +0 -33
  32. package/examples/browser-sync/index.js +0 -29
  33. package/examples/connect/index.js +0 -29
  34. package/examples/express/index.js +0 -28
  35. package/examples/websocket/index.html +0 -96
  36. package/examples/websocket/index.js +0 -41
  37. package/recipes/README.md +0 -110
  38. package/recipes/basic.md +0 -32
  39. package/recipes/context-matching.md +0 -99
  40. package/recipes/corporate-proxy.md +0 -21
  41. package/recipes/delay.md +0 -37
  42. package/recipes/logLevel.md +0 -40
  43. package/recipes/logProvider.md +0 -77
  44. package/recipes/modify-post.md +0 -74
  45. package/recipes/pathRewrite.md +0 -93
  46. package/recipes/proxy-events.md +0 -74
  47. package/recipes/router.md +0 -83
  48. package/recipes/servers.md +0 -252
  49. package/recipes/shorthand.md +0 -63
  50. package/recipes/virtual-hosts.md +0 -18
  51. package/recipes/websocket.md +0 -41
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## [v0.17.4](https://github.com/chimurai/http-proxy-middleware/releases/tag/v0.17.4)
4
+ - fix(ntlm authentication): fixed bug preventing proxying with ntlm authentication. ([#132](https://github.com/chimurai/http-proxy-middleware/pull/149)) (Thanks: [EladBezalel](https://github.com/EladBezalel), [oshri551](https://github.com/oshri551))
5
+
6
+
7
+ ## [v0.17.3](https://github.com/chimurai/http-proxy-middleware/releases/tag/v0.17.3)
8
+ - fix(onError): improve default proxy error handling. http status codes (504, 502 and 500). ([#132](https://github.com/chimurai/http-proxy-middleware/pull/132)) ([graingert](https://github.com/graingert))
9
+
10
+ ## [v0.17.2](https://github.com/chimurai/http-proxy-middleware/releases/tag/v0.17.2)
11
+ - feat(logging): improve error message & add link to Node errors page. ([#106](https://github.com/chimurai/http-proxy-middleware/pull/106)) ([cloudmu](https://github.com/cloudmu))
12
+ - feat(pathRewrite): path can be empty string. ([#110](https://github.com/chimurai/http-proxy-middleware/pull/110)) ([sunnylqm](https://github.com/sunnylqm))
13
+ - bug(websocket): memory leak when option 'ws:true' is used. ([#114](https://github.com/chimurai/http-proxy-middleware/pull/114)) ([julbra](https://github.com/julbra))
14
+ - chore(package.json): reduce package size. ([#109](https://github.com/chimurai/http-proxy-middleware/pull/109))
15
+
3
16
  ## [v0.17.1](https://github.com/chimurai/http-proxy-middleware/releases/tag/v0.17.1)
4
17
  - fix(Express sub Router): 404 on non-proxy routes ([#94](https://github.com/chimurai/http-proxy-middleware/issues/94))
5
18
 
package/README.md CHANGED
@@ -31,7 +31,7 @@ _All_ `http-proxy` [options](https://github.com/nodejitsu/node-http-proxy#option
31
31
 
32
32
  ## Table of Contents
33
33
 
34
- <!-- MarkdownTOC autolink=true bracket=round depth=3 -->
34
+ <!-- MarkdownTOC autolink=true bracket=round depth=2 -->
35
35
 
36
36
  - [Install](#install)
37
37
  - [Core concept](#core-concept)
@@ -107,10 +107,10 @@ var options = {
107
107
  changeOrigin: true, // needed for virtual hosted sites
108
108
  ws: true, // proxy websockets
109
109
  pathRewrite: {
110
- '^/old/api' : '/new/api', // rewrite path
111
- '^/remove/api' : '/api' // remove path
110
+ '^/api/old-path' : '/api/new-path', // rewrite path
111
+ '^/api/remove/path' : '/path' // remove base path
112
112
  },
113
- proxyTable: {
113
+ router: {
114
114
  // when request.headers.host == 'dev.localhost:3000',
115
115
  // override target 'http://www.example.org' to 'http://localhost:8000'
116
116
  'dev.localhost:3000' : 'http://localhost:8000'
@@ -304,15 +304,29 @@ The following options are provided by the underlying [http-proxy](https://github
304
304
  * **option.xfwd**: true/false, adds x-forward headers
305
305
  * **option.secure**: true/false, if you want to verify the SSL Certs
306
306
  * **option.toProxy**: true/false, passes the absolute URL as the `path` (useful for proxying to proxies)
307
- * **option.prependPath**: true/false, Default: true - specify whether you want to prepend the target's path to the proxy path>
308
- * **option.ignorePath**: true/false, Default: false - specify whether you want to ignore the proxy path of the incoming request>
307
+ * **option.prependPath**: true/false, Default: true - specify whether you want to prepend the target's path to the proxy path
308
+ * **option.ignorePath**: true/false, Default: false - specify whether you want to ignore the proxy path of the incoming request (note: you will have to append / manually if required).
309
309
  * **option.localAddress** : Local interface string to bind for outgoing connections
310
- * **option.changeOrigin**: true/false, adds host to request header.
310
+ * **option.changeOrigin**: true/false, Default: false - changes the origin of the host header to the target URL
311
311
  * **option.auth** : Basic authentication i.e. 'user:password' to compute an Authorization header.
312
312
  * **option.hostRewrite**: rewrites the location hostname on (301/302/307/308) redirects.
313
313
  * **option.autoRewrite**: rewrites the location host/port on (301/302/307/308) redirects based on requested host/port. Default: false.
314
314
  * **option.protocolRewrite**: rewrites the location protocol on (301/302/307/308) redirects to 'http' or 'https'. Default: null.
315
+ * **option.cookieDomainRewrite**: rewrites domain of `set-cookie` headers. Possible values:
316
+ * `false` (default): disable cookie rewriting
317
+ * String: new domain, for example `cookieDomainRewrite: "new.domain"`. To remove the domain, use `cookieDomainRewrite: ""`.
318
+ * Object: mapping of domains to new domains, use `"*"` to match all domains.
319
+ For example keep one domain unchanged, rewrite one domain and remove other domains:
320
+ ```
321
+ cookieDomainRewrite: {
322
+ "unchanged.domain": "unchanged.domain",
323
+ "old.domain": "new.domain",
324
+ "*": ""
325
+ }
326
+ ```
315
327
  * **option.headers**: object, adds [request headers](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Request_fields). (Example: `{host:'www.example.org'}`)
328
+ * **option.proxyTimeout**: timeout (in millis) when proxy receives no response from target
329
+
316
330
 
317
331
 
318
332
  ## Shorthand
@@ -430,4 +444,4 @@ $ npm run cover
430
444
 
431
445
  The MIT License (MIT)
432
446
 
433
- Copyright (c) 2015-2016 Steven Chim
447
+ Copyright (c) 2015-2017 Steven Chim
package/lib/handlers.js CHANGED
@@ -48,9 +48,21 @@ function getProxyEventHandlers(opts) {
48
48
 
49
49
  function defaultErrorHandler(err, req, res) {
50
50
  var host = (req.headers && req.headers.host);
51
+ var code = err.code;
51
52
 
52
53
  if (res.writeHead && !res.headersSent) {
53
- res.writeHead(500);
54
+ if (/HPE_INVALID/.test(code)) {
55
+ res.writeHead(502);
56
+ } else {
57
+ switch(code) {
58
+ case 'ECONNRESET':
59
+ case 'ENOTFOUND':
60
+ case 'ECONNREFUSED':
61
+ res.writeHead(504);
62
+ break;
63
+ default: res.writeHead(500);
64
+ }
65
+ }
54
66
  }
55
67
 
56
68
  res.end('Error occured while trying to proxy to: ' + host + req.url);
package/lib/index.js CHANGED
@@ -13,6 +13,7 @@ module.exports = HttpProxyMiddleware;
13
13
  function HttpProxyMiddleware(context, opts) {
14
14
  // https://github.com/chimurai/http-proxy-middleware/issues/57
15
15
  var wsUpgradeDebounced = _.debounce(handleUpgrade);
16
+ var wsInitialized = false;
16
17
  var config = configFactory.createConfig(context, opts);
17
18
  var proxyOptions = config.options;
18
19
 
@@ -43,15 +44,24 @@ function HttpProxyMiddleware(context, opts) {
43
44
  }
44
45
 
45
46
  if (proxyOptions.ws === true) {
47
+ // use initial request to access the server object to subscribe to http upgrade event
46
48
  catchUpgradeRequest(req.connection.server);
47
49
  }
48
50
  }
49
51
 
50
52
  function catchUpgradeRequest(server) {
51
- server.on('upgrade', wsUpgradeDebounced);
53
+ // subscribe once; don't subscribe on every request...
54
+ // https://github.com/chimurai/http-proxy-middleware/issues/113
55
+ if (!wsInitialized) {
56
+ server.on('upgrade', wsUpgradeDebounced);
57
+ wsInitialized = true;
58
+ }
52
59
  }
53
60
 
54
61
  function handleUpgrade(req, socket, head) {
62
+ // set to initialized when used externally
63
+ wsInitialized = true;
64
+
55
65
  if (shouldProxy(config.context, req)) {
56
66
  var activeProxyOptions = prepareProxyRequest(req);
57
67
  proxy.ws(req, socket, head, activeProxyOptions);
@@ -83,7 +93,7 @@ function HttpProxyMiddleware(context, opts) {
83
93
 
84
94
  // store uri before it gets rewritten for logging
85
95
  var originalPath = req.url;
86
- var newProxyOptions = _.cloneDeep(proxyOptions);
96
+ var newProxyOptions = _.assign({}, proxyOptions);
87
97
 
88
98
  // Apply in order:
89
99
  // 1. option.router
@@ -119,7 +129,7 @@ function HttpProxyMiddleware(context, opts) {
119
129
  if (pathRewriter) {
120
130
  var path = pathRewriter(req.url, req);
121
131
 
122
- if (path) {
132
+ if (typeof path === 'string') {
123
133
  req.url = path;
124
134
  } else {
125
135
  logger.info('[HPM] pathRewrite: No rewritten path found. (%s)', req.url);
@@ -128,9 +138,10 @@ function HttpProxyMiddleware(context, opts) {
128
138
  }
129
139
 
130
140
  function logError(err, req, res) {
131
- var hostname = (req.hostname || req.host) || (req.headers && req.headers.host); // (node0.10 || node 4/5) || (websocket)
132
- var targetUri = (proxyOptions.target.host || proxyOptions.target) + req.url;
141
+ var hostname = (req.headers && req.headers.host) || (req.hostname || req.host); // (websocket) || (node0.10 || node 4/5)
142
+ var target = proxyOptions.target.host || proxyOptions.target;
143
+ var errReference = 'https://nodejs.org/api/errors.html#errors_common_system_errors'; // link to Node Common Systems Errors page
133
144
 
134
- logger.error('[HPM] PROXY ERROR: %s. %s -> %s', err.code, hostname, targetUri);
145
+ logger.error('[HPM] Error occurred while trying to proxy request %s from %s to %s (%s) (%s)', req.url, hostname, target, err.code, errReference);
135
146
  }
136
147
  };
package/lib/logger.js CHANGED
@@ -143,9 +143,9 @@ function Logger() {
143
143
 
144
144
  /**
145
145
  * -> normal proxy
146
- * => proxyTable
146
+ * => router
147
147
  * ~> pathRewrite
148
- * ≈> proxyTable + pathRewrite
148
+ * ≈> router + pathRewrite
149
149
  */
150
150
  function getArrow(originalPath, newPath, originalTarget, newTarget) {
151
151
  var arrow = ['>'];
package/package.json CHANGED
@@ -1,8 +1,12 @@
1
1
  {
2
2
  "name": "http-proxy-middleware",
3
- "version": "0.17.1",
3
+ "version": "0.17.4",
4
4
  "description": "The one-liner node.js proxy middleware for connect, express and browser-sync",
5
5
  "main": "index.js",
6
+ "files": [
7
+ "index.js",
8
+ "lib"
9
+ ],
6
10
  "scripts": {
7
11
  "clean": "rm -rf coverage",
8
12
  "test": "mocha --recursive --colors --reporter spec",
@@ -35,22 +39,22 @@
35
39
  },
36
40
  "homepage": "https://github.com/chimurai/http-proxy-middleware",
37
41
  "devDependencies": {
38
- "browser-sync": "^2.14.0",
42
+ "browser-sync": "^2.18.2",
39
43
  "chai": "^3.5.0",
40
- "connect": "^3.4.1",
41
- "coveralls": "^2.11.12",
44
+ "connect": "^3.5.0",
45
+ "coveralls": "^2.11.15",
42
46
  "express": "^4.14.0",
43
- "istanbul": "^0.4.4",
47
+ "istanbul": "^0.4.5",
44
48
  "istanbul-coveralls": "^1.0.3",
45
- "mocha": "^3.0.2",
49
+ "mocha": "^3.2.0",
46
50
  "mocha-lcov-reporter": "1.2.0",
47
51
  "opn": "^4.0.2",
48
52
  "ws": "^1.1.1"
49
53
  },
50
54
  "dependencies": {
51
- "http-proxy": "^1.14.0",
52
- "is-glob": "^2.0.1",
53
- "lodash": "^4.14.2",
55
+ "http-proxy": "^1.16.2",
56
+ "is-glob": "^3.1.0",
57
+ "lodash": "^4.17.2",
54
58
  "micromatch": "^2.3.11"
55
59
  }
56
60
  }
package/.editorconfig DELETED
@@ -1,18 +0,0 @@
1
- # http://editorconfig.org
2
-
3
- root = true
4
-
5
- [*]
6
- charset = utf-8
7
- end_of_line = lf
8
- indent_style = space
9
- indent_size = 4
10
- insert_final_newline = true
11
- trim_trailing_whitespace = true
12
-
13
- [*.md]
14
- trim_trailing_whitespace = false
15
-
16
- # Matches the exact files either package.json or .travis.yml
17
- [{package.json,.travis.yml}]
18
- indent_size = 2
package/.jscsrc DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "preset": "google",
3
- "validateIndentation": 4,
4
- "maximumLineLength": {
5
- "value": 120,
6
- "allExcept": ["comments", "regex"]
7
- },
8
- }
package/.npmignore DELETED
@@ -1,2 +0,0 @@
1
- # Tests
2
- test
package/.travis.yml DELETED
@@ -1,16 +0,0 @@
1
- language: node_js
2
- node_js:
3
- - 'stable'
4
- - '5'
5
- - '4'
6
- - '0.12'
7
- - '0.11'
8
- - '0.10'
9
- before_install:
10
- # https://github.com/npm/npm/issues/11283
11
- - npm set progress=false
12
- after_success: npm run coveralls
13
- env:
14
- global:
15
- # COVERALLS_REPO_TOKEN=
16
- secure: "I8mDH0n2DQHAPvUFEV/ZNmrMNYTJxgywg8+P3yuCAWwQkZeXQi0DWG+6VUpOylaRhL/4kCdZK9gnJD2MfrqvNqVLDUqBK3tTmZVoyqqJEdE0UdEHcPncAPmxWrG98sDjqFN9r4nWeizHvyA1fNRQHRN56Zy+DcQWjgEhHJaYeNA="
package/CONTRIBUTING.md DELETED
@@ -1,61 +0,0 @@
1
- # Contributing
2
-
3
- We love contributors! Your help is welcome to make this project better!
4
-
5
- Some simple guidelines we'd like you to follow.
6
-
7
- ## Got Questions or Problems?
8
-
9
- If you have questions about http-proxy-middle usage; Please check if your question hasn't been already answered on [Stack Overflow](http://stackoverflow.com/search?q=%22http-proxy-middleware%22) or in our [issue archive](https://github.com/chimurai/http-proxy-middleware/issues?utf8=%E2%9C%93&q=is%3Aissue+), [examples](https://github.com/chimurai/http-proxy-middleware/tree/master/examples) and [recipes](https://github.com/chimurai/http-proxy-middleware/tree/master/recipes).
10
-
11
- Since Nodejitsu's `http-proxy` is providing the actual proxy functionality; You might find your answer in their [documentation](https://github.com/nodejitsu/node-http-proxy), [issue archive](https://github.com/nodejitsu/node-http-proxy/issues?utf8=%E2%9C%93&q=is%3Aissue) or [examples](https://github.com/nodejitsu/node-http-proxy/tree/master/examples).
12
-
13
- Feel free to [ask a question](https://github.com/chimurai/http-proxy-middleware/issues) if the above resources didn't answer your question.
14
-
15
- Tips on how to ask: http://stackoverflow.com/help/how-to-ask
16
-
17
- ## Report Issues
18
-
19
- If you think you've found an issue, please submit it to the [Github issue tracker](https://github.com/chimurai/http-proxy-middleware/issues).
20
-
21
- "*[It doesn't work](https://goo.gl/GzkkTg)*" is not very useful for anyone.
22
- A good issue report should have a well described **problem description** and proxy **configuration**. A great issue report includes a **minimal example**.
23
-
24
- Properly format your code example for easier reading: [Code and Syntax Highlighting](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code-and-syntax-highlighting).
25
-
26
- The quality of your issue report will determine how quickly and deeply we'll delve into it. Some simple pointers for reporting an issue:
27
-
28
- #### Problem Description
29
-
30
- - describe the problem
31
- - steps taken (request urls)
32
- - found
33
- - expected
34
-
35
- #### Configuration / Setup
36
-
37
- - http-proxy-middleware version
38
- - http-proxy-middleware configuration
39
-
40
- It might be useful to provide server information in which http-proxy-middleware is used and the target server information to which requests are being proxied.
41
-
42
- - server + version (express, connect, browser-sync, etc...)
43
- + server port number
44
- - target server
45
- + target server port number
46
-
47
- ### Minimal example
48
-
49
- Provide a minimal example to exclude external factors. This will greatly help identifying the issue.
50
-
51
- Tips on how to create a minimal example: http://stackoverflow.com/help/mcve
52
-
53
- ## New Feature?
54
-
55
- Request a new feature by submitting an issue into our [Github issue tracker](https://github.com/chimurai/http-proxy-middleware/issues).
56
-
57
- PRs are welcome. Please discuss it in our [Github issue tracker](https://github.com/chimurai/http-proxy-middleware/issues) before you start working on it, to avoid wasting your time and effort in case we are already (planning to) working on it.
58
-
59
- ## Documentation
60
-
61
- Feel free to send PRs to improve the documentation, [examples](https://github.com/chimurai/http-proxy-middleware/tree/master/examples) and [recipes](https://github.com/chimurai/http-proxy-middleware/tree/master/recipes).
package/ISSUE_TEMPLATE.md DELETED
@@ -1,21 +0,0 @@
1
- ### Expected behavior
2
-
3
- ### Actual behavior
4
-
5
- ### Setup
6
-
7
- * http-proxy-middleware: _version_
8
- * server: _connect/express/browser-sync..._ + _version_
9
- * other relevant modules
10
-
11
- #### proxy middleware configuration
12
- ```javascript
13
- var apiProxy = proxy('/api', {target:'http://www.example.org', changeOrigin:true});
14
- ```
15
- #### server mounting
16
- ```javascript
17
- var app = express();
18
-
19
- app.use(apiProxy);
20
- app.listen(3000);
21
- ```
@@ -1 +0,0 @@
1
- {"D:\\dev\\github\\http-proxy-middleware\\index.js":{"path":"D:\\dev\\github\\http-proxy-middleware\\index.js","s":{"1":1,"2":1,"3":41},"b":{},"f":{"1":41},"fnMap":{"1":{"name":"(anonymous_1)","line":3,"loc":{"start":{"line":3,"column":17},"end":{"line":3,"column":41}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":28}},"2":{"start":{"line":3,"column":0},"end":{"line":5,"column":2}},"3":{"start":{"line":4,"column":4},"end":{"line":4,"column":34}}},"branchMap":{}},"D:\\dev\\github\\http-proxy-middleware\\lib\\index.js":{"path":"D:\\dev\\github\\http-proxy-middleware\\lib\\index.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":41,"13":41,"14":41,"15":41,"16":41,"17":41,"18":41,"19":41,"20":41,"21":41,"22":1,"23":38,"24":38,"25":34,"26":34,"27":4,"28":38,"29":2,"30":1,"31":2,"32":1,"33":4,"34":4,"35":4,"36":4,"37":1,"38":38,"39":38,"40":38,"41":38,"42":38,"43":0,"44":0,"45":38,"46":1,"47":38,"48":38,"49":6,"50":6,"51":5,"52":5,"53":1,"54":38,"55":11,"56":11,"57":7,"58":4,"59":1,"60":3,"61":3,"62":3},"b":{"1":[34,4],"2":[2,36],"3":[4,0],"4":[0,38],"5":[6,32],"6":[5,1],"7":[11,27],"8":[7,4],"9":[3,0,0,0],"10":[3,3]},"f":{"1":41,"2":38,"3":2,"4":4,"5":38,"6":38,"7":38,"8":3},"fnMap":{"1":{"name":"HttpProxyMiddleware","line":13,"loc":{"start":{"line":13,"column":0},"end":{"line":13,"column":44}}},"2":{"name":"middleware","line":37,"loc":{"start":{"line":37,"column":4},"end":{"line":37,"column":40}}},"3":{"name":"catchUpgradeRequest","line":53,"loc":{"start":{"line":53,"column":4},"end":{"line":53,"column":41}}},"4":{"name":"handleUpgrade","line":57,"loc":{"start":{"line":57,"column":4},"end":{"line":57,"column":46}}},"5":{"name":"prepareProxyRequest","line":71,"loc":{"start":{"line":71,"column":4},"end":{"line":71,"column":38}}},"6":{"name":"__applyRouter","line":92,"loc":{"start":{"line":92,"column":4},"end":{"line":92,"column":41}}},"7":{"name":"__applyPathRewrite","line":106,"loc":{"start":{"line":106,"column":4},"end":{"line":106,"column":51}}},"8":{"name":"logError","line":118,"loc":{"start":{"line":118,"column":4},"end":{"line":118,"column":37}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":39}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":43}},"3":{"start":{"line":3,"column":0},"end":{"line":3,"column":49}},"4":{"start":{"line":4,"column":0},"end":{"line":4,"column":43}},"5":{"start":{"line":5,"column":0},"end":{"line":5,"column":50}},"6":{"start":{"line":6,"column":0},"end":{"line":6,"column":48}},"7":{"start":{"line":7,"column":0},"end":{"line":7,"column":41}},"8":{"start":{"line":8,"column":0},"end":{"line":8,"column":55}},"9":{"start":{"line":9,"column":0},"end":{"line":9,"column":50}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":37}},"11":{"start":{"line":13,"column":0},"end":{"line":124,"column":1}},"12":{"start":{"line":15,"column":4},"end":{"line":15,"column":56}},"13":{"start":{"line":16,"column":4},"end":{"line":16,"column":72}},"14":{"start":{"line":17,"column":4},"end":{"line":17,"column":45}},"15":{"start":{"line":20,"column":4},"end":{"line":20,"column":48}},"16":{"start":{"line":21,"column":4},"end":{"line":21,"column":85}},"17":{"start":{"line":23,"column":4},"end":{"line":23,"column":69}},"18":{"start":{"line":26,"column":4},"end":{"line":26,"column":39}},"19":{"start":{"line":29,"column":4},"end":{"line":29,"column":32}},"20":{"start":{"line":33,"column":4},"end":{"line":33,"column":44}},"21":{"start":{"line":35,"column":4},"end":{"line":35,"column":22}},"22":{"start":{"line":37,"column":4},"end":{"line":51,"column":5}},"23":{"start":{"line":39,"column":8},"end":{"line":39,"column":34}},"24":{"start":{"line":41,"column":8},"end":{"line":46,"column":9}},"25":{"start":{"line":42,"column":12},"end":{"line":42,"column":62}},"26":{"start":{"line":43,"column":12},"end":{"line":43,"column":52}},"27":{"start":{"line":45,"column":12},"end":{"line":45,"column":19}},"28":{"start":{"line":48,"column":8},"end":{"line":50,"column":9}},"29":{"start":{"line":49,"column":12},"end":{"line":49,"column":55}},"30":{"start":{"line":53,"column":4},"end":{"line":55,"column":5}},"31":{"start":{"line":54,"column":8},"end":{"line":54,"column":49}},"32":{"start":{"line":57,"column":4},"end":{"line":63,"column":5}},"33":{"start":{"line":58,"column":8},"end":{"line":62,"column":9}},"34":{"start":{"line":59,"column":12},"end":{"line":59,"column":62}},"35":{"start":{"line":60,"column":12},"end":{"line":60,"column":60}},"36":{"start":{"line":61,"column":12},"end":{"line":61,"column":56}},"37":{"start":{"line":71,"column":4},"end":{"line":89,"column":5}},"38":{"start":{"line":73,"column":8},"end":{"line":73,"column":35}},"39":{"start":{"line":74,"column":8},"end":{"line":74,"column":56}},"40":{"start":{"line":79,"column":8},"end":{"line":79,"column":44}},"41":{"start":{"line":80,"column":8},"end":{"line":80,"column":46}},"42":{"start":{"line":83,"column":8},"end":{"line":86,"column":9}},"43":{"start":{"line":84,"column":12},"end":{"line":84,"column":101}},"44":{"start":{"line":85,"column":12},"end":{"line":85,"column":103}},"45":{"start":{"line":88,"column":8},"end":{"line":88,"column":31}},"46":{"start":{"line":92,"column":4},"end":{"line":103,"column":5}},"47":{"start":{"line":93,"column":8},"end":{"line":93,"column":22}},"48":{"start":{"line":95,"column":8},"end":{"line":102,"column":9}},"49":{"start":{"line":96,"column":12},"end":{"line":96,"column":55}},"50":{"start":{"line":98,"column":12},"end":{"line":101,"column":13}},"51":{"start":{"line":99,"column":16},"end":{"line":99,"column":95}},"52":{"start":{"line":100,"column":16},"end":{"line":100,"column":43}},"53":{"start":{"line":106,"column":4},"end":{"line":116,"column":5}},"54":{"start":{"line":107,"column":8},"end":{"line":115,"column":9}},"55":{"start":{"line":108,"column":12},"end":{"line":108,"column":50}},"56":{"start":{"line":110,"column":12},"end":{"line":114,"column":13}},"57":{"start":{"line":111,"column":16},"end":{"line":111,"column":32}},"58":{"start":{"line":113,"column":16},"end":{"line":113,"column":89}},"59":{"start":{"line":118,"column":4},"end":{"line":123,"column":5}},"60":{"start":{"line":119,"column":8},"end":{"line":119,"column":87}},"61":{"start":{"line":120,"column":8},"end":{"line":120,"column":84}},"62":{"start":{"line":122,"column":8},"end":{"line":122,"column":87}}},"branchMap":{"1":{"line":41,"type":"if","locations":[{"start":{"line":41,"column":8},"end":{"line":41,"column":8}},{"start":{"line":41,"column":8},"end":{"line":41,"column":8}}]},"2":{"line":48,"type":"if","locations":[{"start":{"line":48,"column":8},"end":{"line":48,"column":8}},{"start":{"line":48,"column":8},"end":{"line":48,"column":8}}]},"3":{"line":58,"type":"if","locations":[{"start":{"line":58,"column":8},"end":{"line":58,"column":8}},{"start":{"line":58,"column":8},"end":{"line":58,"column":8}}]},"4":{"line":83,"type":"if","locations":[{"start":{"line":83,"column":8},"end":{"line":83,"column":8}},{"start":{"line":83,"column":8},"end":{"line":83,"column":8}}]},"5":{"line":95,"type":"if","locations":[{"start":{"line":95,"column":8},"end":{"line":95,"column":8}},{"start":{"line":95,"column":8},"end":{"line":95,"column":8}}]},"6":{"line":98,"type":"if","locations":[{"start":{"line":98,"column":12},"end":{"line":98,"column":12}},{"start":{"line":98,"column":12},"end":{"line":98,"column":12}}]},"7":{"line":107,"type":"if","locations":[{"start":{"line":107,"column":8},"end":{"line":107,"column":8}},{"start":{"line":107,"column":8},"end":{"line":107,"column":8}}]},"8":{"line":110,"type":"if","locations":[{"start":{"line":110,"column":12},"end":{"line":110,"column":12}},{"start":{"line":110,"column":12},"end":{"line":110,"column":12}}]},"9":{"line":119,"type":"binary-expr","locations":[{"start":{"line":119,"column":24},"end":{"line":119,"column":36}},{"start":{"line":119,"column":40},"end":{"line":119,"column":48}},{"start":{"line":119,"column":54},"end":{"line":119,"column":65}},{"start":{"line":119,"column":69},"end":{"line":119,"column":85}}]},"10":{"line":120,"type":"binary-expr","locations":[{"start":{"line":120,"column":25},"end":{"line":120,"column":49}},{"start":{"line":120,"column":53},"end":{"line":120,"column":72}}]}}},"D:\\dev\\github\\http-proxy-middleware\\lib\\config-factory.js":{"path":"D:\\dev\\github\\http-proxy-middleware\\lib\\config-factory.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":59,"7":59,"8":7,"9":7,"10":52,"11":17,"12":17,"13":17,"14":17,"15":17,"16":6,"17":35,"18":35,"19":59,"20":59,"21":1,"22":58,"23":58,"24":58,"25":1,"26":52,"27":44,"28":1,"29":59,"30":1,"31":58,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":58,"40":1,"41":58,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":58,"50":1,"51":59,"52":1,"53":59,"54":1},"b":{"1":[7,52],"2":[17,35],"3":[17,6],"4":[6,11],"5":[17,13],"6":[1,58],"7":[44,8],"8":[17,27],"9":[59,7],"10":[1,57],"11":[1,1],"12":[1,57],"13":[1,58],"14":[1,58]},"f":{"1":59,"2":52,"3":59,"4":58,"5":58,"6":59},"fnMap":{"1":{"name":"createConfig","line":9,"loc":{"start":{"line":9,"column":0},"end":{"line":9,"column":37}}},"2":{"name":"isStringShortHand","line":65,"loc":{"start":{"line":65,"column":0},"end":{"line":65,"column":36}}},"3":{"name":"isContextless","line":82,"loc":{"start":{"line":82,"column":0},"end":{"line":82,"column":38}}},"4":{"name":"mapLegacyProxyHostOption","line":86,"loc":{"start":{"line":86,"column":0},"end":{"line":86,"column":43}}},"5":{"name":"mapLegacyProxyTableOption","line":103,"loc":{"start":{"line":103,"column":0},"end":{"line":103,"column":44}}},"6":{"name":"configureLogger","line":118,"loc":{"start":{"line":118,"column":0},"end":{"line":118,"column":34}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":31}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":28}},"3":{"start":{"line":3,"column":0},"end":{"line":3,"column":47}},"4":{"start":{"line":5,"column":0},"end":{"line":7,"column":2}},"5":{"start":{"line":9,"column":0},"end":{"line":52,"column":1}},"6":{"start":{"line":11,"column":4},"end":{"line":14,"column":6}},"7":{"start":{"line":17,"column":4},"end":{"line":37,"column":5}},"8":{"start":{"line":18,"column":8},"end":{"line":18,"column":29}},"9":{"start":{"line":19,"column":8},"end":{"line":19,"column":59}},"10":{"start":{"line":23,"column":9},"end":{"line":37,"column":5}},"11":{"start":{"line":24,"column":8},"end":{"line":24,"column":40}},"12":{"start":{"line":25,"column":8},"end":{"line":25,"column":63}},"13":{"start":{"line":27,"column":8},"end":{"line":27,"column":46}},"14":{"start":{"line":28,"column":8},"end":{"line":28,"column":74}},"15":{"start":{"line":30,"column":8},"end":{"line":32,"column":9}},"16":{"start":{"line":31,"column":12},"end":{"line":31,"column":37}},"17":{"start":{"line":35,"column":8},"end":{"line":35,"column":33}},"18":{"start":{"line":36,"column":8},"end":{"line":36,"column":56}},"19":{"start":{"line":39,"column":4},"end":{"line":39,"column":36}},"20":{"start":{"line":41,"column":4},"end":{"line":43,"column":5}},"21":{"start":{"line":42,"column":8},"end":{"line":42,"column":102}},"22":{"start":{"line":46,"column":4},"end":{"line":46,"column":62}},"23":{"start":{"line":49,"column":4},"end":{"line":49,"column":63}},"24":{"start":{"line":51,"column":4},"end":{"line":51,"column":18}},"25":{"start":{"line":65,"column":0},"end":{"line":69,"column":1}},"26":{"start":{"line":66,"column":4},"end":{"line":68,"column":5}},"27":{"start":{"line":67,"column":8},"end":{"line":67,"column":56}},"28":{"start":{"line":82,"column":0},"end":{"line":84,"column":1}},"29":{"start":{"line":83,"column":4},"end":{"line":83,"column":57}},"30":{"start":{"line":86,"column":0},"end":{"line":100,"column":1}},"31":{"start":{"line":88,"column":4},"end":{"line":97,"column":5}},"32":{"start":{"line":89,"column":8},"end":{"line":89,"column":61}},"33":{"start":{"line":90,"column":8},"end":{"line":90,"column":59}},"34":{"start":{"line":91,"column":8},"end":{"line":91,"column":88}},"35":{"start":{"line":92,"column":8},"end":{"line":92,"column":83}},"36":{"start":{"line":93,"column":8},"end":{"line":93,"column":61}},"37":{"start":{"line":95,"column":8},"end":{"line":95,"column":48}},"38":{"start":{"line":96,"column":8},"end":{"line":96,"column":49}},"39":{"start":{"line":99,"column":4},"end":{"line":99,"column":19}},"40":{"start":{"line":103,"column":0},"end":{"line":116,"column":1}},"41":{"start":{"line":104,"column":4},"end":{"line":113,"column":5}},"42":{"start":{"line":105,"column":8},"end":{"line":105,"column":61}},"43":{"start":{"line":106,"column":8},"end":{"line":106,"column":60}},"44":{"start":{"line":107,"column":8},"end":{"line":107,"column":57}},"45":{"start":{"line":108,"column":8},"end":{"line":108,"column":84}},"46":{"start":{"line":109,"column":8},"end":{"line":109,"column":61}},"47":{"start":{"line":111,"column":8},"end":{"line":111,"column":53}},"48":{"start":{"line":112,"column":8},"end":{"line":112,"column":38}},"49":{"start":{"line":115,"column":4},"end":{"line":115,"column":19}},"50":{"start":{"line":118,"column":0},"end":{"line":126,"column":1}},"51":{"start":{"line":119,"column":4},"end":{"line":121,"column":5}},"52":{"start":{"line":120,"column":8},"end":{"line":120,"column":42}},"53":{"start":{"line":123,"column":4},"end":{"line":125,"column":5}},"54":{"start":{"line":124,"column":8},"end":{"line":124,"column":48}}},"branchMap":{"1":{"line":17,"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":17,"column":4}},{"start":{"line":17,"column":4},"end":{"line":17,"column":4}}]},"2":{"line":23,"type":"if","locations":[{"start":{"line":23,"column":9},"end":{"line":23,"column":9}},{"start":{"line":23,"column":9},"end":{"line":23,"column":9}}]},"3":{"line":27,"type":"binary-expr","locations":[{"start":{"line":27,"column":25},"end":{"line":27,"column":38}},{"start":{"line":27,"column":42},"end":{"line":27,"column":45}}]},"4":{"line":30,"type":"if","locations":[{"start":{"line":30,"column":8},"end":{"line":30,"column":8}},{"start":{"line":30,"column":8},"end":{"line":30,"column":8}}]},"5":{"line":30,"type":"binary-expr","locations":[{"start":{"line":30,"column":12},"end":{"line":30,"column":35}},{"start":{"line":30,"column":39},"end":{"line":30,"column":63}}]},"6":{"line":41,"type":"if","locations":[{"start":{"line":41,"column":4},"end":{"line":41,"column":4}},{"start":{"line":41,"column":4},"end":{"line":41,"column":4}}]},"7":{"line":66,"type":"if","locations":[{"start":{"line":66,"column":4},"end":{"line":66,"column":4}},{"start":{"line":66,"column":4},"end":{"line":66,"column":4}}]},"8":{"line":67,"type":"cond-expr","locations":[{"start":{"line":67,"column":43},"end":{"line":67,"column":47}},{"start":{"line":67,"column":50},"end":{"line":67,"column":55}}]},"9":{"line":83,"type":"binary-expr","locations":[{"start":{"line":83,"column":12},"end":{"line":83,"column":36}},{"start":{"line":83,"column":40},"end":{"line":83,"column":55}}]},"10":{"line":88,"type":"if","locations":[{"start":{"line":88,"column":4},"end":{"line":88,"column":4}},{"start":{"line":88,"column":4},"end":{"line":88,"column":4}}]},"11":{"line":95,"type":"binary-expr","locations":[{"start":{"line":95,"column":26},"end":{"line":95,"column":41}},{"start":{"line":95,"column":45},"end":{"line":95,"column":47}}]},"12":{"line":104,"type":"if","locations":[{"start":{"line":104,"column":4},"end":{"line":104,"column":4}},{"start":{"line":104,"column":4},"end":{"line":104,"column":4}}]},"13":{"line":119,"type":"if","locations":[{"start":{"line":119,"column":4},"end":{"line":119,"column":4}},{"start":{"line":119,"column":4},"end":{"line":119,"column":4}}]},"14":{"line":123,"type":"if","locations":[{"start":{"line":123,"column":4},"end":{"line":123,"column":4}},{"start":{"line":123,"column":4},"end":{"line":123,"column":4}}]}}},"D:\\dev\\github\\http-proxy-middleware\\lib\\logger.js":{"path":"D:\\dev\\github\\http-proxy-middleware\\lib\\logger.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":37,"8":1,"9":37,"10":1,"11":1,"12":1,"13":1,"14":33,"15":32,"16":35,"17":34,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":35,"26":1,"27":105,"28":28,"29":1,"30":134,"31":119,"32":1,"33":45,"34":35,"35":1,"36":38,"37":33,"38":1,"39":322,"40":322,"41":322,"42":215,"43":322,"44":1,"45":250,"46":250,"47":250,"48":1,"49":35,"50":35,"51":1,"52":34,"53":1,"54":33,"55":33,"56":33,"57":1,"58":32,"59":1,"60":4,"61":4,"62":4,"63":4,"64":1,"65":3,"66":1,"67":2,"68":1,"69":1,"70":4},"b":{"1":[1,36],"2":[32,0],"3":[34,0],"4":[35,35],"5":[28,77],"6":[119,15],"7":[35,10],"8":[33,5],"9":[215,107],"10":[322,322],"11":[1,34],"12":[35,35],"13":[1,32],"14":[1,3],"15":[4,2],"16":[1,2],"17":[3,2],"18":[1,1],"19":[2,1]},"f":{"1":37,"2":1,"3":33,"4":35,"5":1,"6":1,"7":35,"8":105,"9":134,"10":45,"11":38,"12":322,"13":250,"14":35,"15":33,"16":4},"fnMap":{"1":{"name":"(anonymous_1)","line":25,"loc":{"start":{"line":25,"column":17},"end":{"line":25,"column":28}}},"2":{"name":"Logger","line":35,"loc":{"start":{"line":35,"column":0},"end":{"line":35,"column":18}}},"3":{"name":"(anonymous_3)","line":45,"loc":{"start":{"line":45,"column":18},"end":{"line":45,"column":30}}},"4":{"name":"(anonymous_4)","line":50,"loc":{"start":{"line":50,"column":21},"end":{"line":50,"column":34}}},"5":{"name":"init","line":61,"loc":{"start":{"line":61,"column":4},"end":{"line":61,"column":20}}},"6":{"name":"(anonymous_6)","line":63,"loc":{"start":{"line":63,"column":24},"end":{"line":63,"column":35}}},"7":{"name":"log","line":69,"loc":{"start":{"line":69,"column":4},"end":{"line":69,"column":19}}},"8":{"name":"debug","line":73,"loc":{"start":{"line":73,"column":4},"end":{"line":73,"column":21}}},"9":{"name":"info","line":79,"loc":{"start":{"line":79,"column":4},"end":{"line":79,"column":20}}},"10":{"name":"warn","line":85,"loc":{"start":{"line":85,"column":4},"end":{"line":85,"column":20}}},"11":{"name":"error","line":91,"loc":{"start":{"line":91,"column":4},"end":{"line":91,"column":21}}},"12":{"name":"_showLevel","line":102,"loc":{"start":{"line":102,"column":4},"end":{"line":102,"column":35}}},"13":{"name":"_interpolate","line":115,"loc":{"start":{"line":115,"column":4},"end":{"line":115,"column":28}}},"14":{"name":"isValidProvider","line":122,"loc":{"start":{"line":122,"column":4},"end":{"line":122,"column":41}}},"15":{"name":"isValidLevel","line":132,"loc":{"start":{"line":132,"column":4},"end":{"line":132,"column":37}}},"16":{"name":"getArrow","line":150,"loc":{"start":{"line":150,"column":0},"end":{"line":150,"column":68}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":27}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":26}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":19}},"4":{"start":{"line":6,"column":0},"end":{"line":12,"column":2}},"5":{"start":{"line":15,"column":0},"end":{"line":21,"column":2}},"6":{"start":{"line":23,"column":0},"end":{"line":33,"column":2}},"7":{"start":{"line":26,"column":8},"end":{"line":28,"column":9}},"8":{"start":{"line":27,"column":12},"end":{"line":27,"column":42}},"9":{"start":{"line":30,"column":8},"end":{"line":30,"column":30}},"10":{"start":{"line":35,"column":0},"end":{"line":142,"column":1}},"11":{"start":{"line":36,"column":4},"end":{"line":36,"column":17}},"12":{"start":{"line":37,"column":4},"end":{"line":37,"column":17}},"13":{"start":{"line":39,"column":4},"end":{"line":55,"column":6}},"14":{"start":{"line":46,"column":12},"end":{"line":48,"column":13}},"15":{"start":{"line":47,"column":16},"end":{"line":47,"column":29}},"16":{"start":{"line":51,"column":12},"end":{"line":53,"column":13}},"17":{"start":{"line":52,"column":16},"end":{"line":52,"column":47}},"18":{"start":{"line":57,"column":4},"end":{"line":57,"column":11}},"19":{"start":{"line":59,"column":4},"end":{"line":59,"column":15}},"20":{"start":{"line":61,"column":4},"end":{"line":66,"column":5}},"21":{"start":{"line":62,"column":8},"end":{"line":62,"column":29}},"22":{"start":{"line":63,"column":8},"end":{"line":65,"column":11}},"23":{"start":{"line":64,"column":12},"end":{"line":64,"column":35}},"24":{"start":{"line":69,"column":4},"end":{"line":71,"column":5}},"25":{"start":{"line":70,"column":8},"end":{"line":70,"column":58}},"26":{"start":{"line":73,"column":4},"end":{"line":77,"column":5}},"27":{"start":{"line":74,"column":8},"end":{"line":76,"column":9}},"28":{"start":{"line":75,"column":12},"end":{"line":75,"column":64}},"29":{"start":{"line":79,"column":4},"end":{"line":83,"column":5}},"30":{"start":{"line":80,"column":8},"end":{"line":82,"column":9}},"31":{"start":{"line":81,"column":12},"end":{"line":81,"column":63}},"32":{"start":{"line":85,"column":4},"end":{"line":89,"column":5}},"33":{"start":{"line":86,"column":8},"end":{"line":88,"column":9}},"34":{"start":{"line":87,"column":12},"end":{"line":87,"column":63}},"35":{"start":{"line":91,"column":4},"end":{"line":95,"column":5}},"36":{"start":{"line":92,"column":8},"end":{"line":94,"column":9}},"37":{"start":{"line":93,"column":12},"end":{"line":93,"column":64}},"38":{"start":{"line":102,"column":4},"end":{"line":111,"column":5}},"39":{"start":{"line":103,"column":8},"end":{"line":103,"column":27}},"40":{"start":{"line":104,"column":8},"end":{"line":104,"column":47}},"41":{"start":{"line":106,"column":8},"end":{"line":108,"column":9}},"42":{"start":{"line":107,"column":12},"end":{"line":107,"column":26}},"43":{"start":{"line":110,"column":8},"end":{"line":110,"column":22}},"44":{"start":{"line":115,"column":4},"end":{"line":120,"column":5}},"45":{"start":{"line":116,"column":8},"end":{"line":116,"column":39}},"46":{"start":{"line":117,"column":8},"end":{"line":117,"column":44}},"47":{"start":{"line":119,"column":8},"end":{"line":119,"column":22}},"48":{"start":{"line":122,"column":4},"end":{"line":130,"column":5}},"49":{"start":{"line":123,"column":8},"end":{"line":123,"column":26}},"50":{"start":{"line":125,"column":8},"end":{"line":127,"column":9}},"51":{"start":{"line":126,"column":12},"end":{"line":126,"column":86}},"52":{"start":{"line":129,"column":8},"end":{"line":129,"column":22}},"53":{"start":{"line":132,"column":4},"end":{"line":141,"column":5}},"54":{"start":{"line":133,"column":8},"end":{"line":133,"column":41}},"55":{"start":{"line":134,"column":8},"end":{"line":134,"column":57}},"56":{"start":{"line":136,"column":8},"end":{"line":138,"column":9}},"57":{"start":{"line":137,"column":12},"end":{"line":137,"column":72}},"58":{"start":{"line":140,"column":8},"end":{"line":140,"column":23}},"59":{"start":{"line":150,"column":0},"end":{"line":158,"column":1}},"60":{"start":{"line":151,"column":4},"end":{"line":151,"column":22}},"61":{"start":{"line":152,"column":4},"end":{"line":152,"column":53}},"62":{"start":{"line":153,"column":4},"end":{"line":153,"column":47}},"63":{"start":{"line":155,"column":4},"end":{"line":155,"column":198}},"64":{"start":{"line":155,"column":36},"end":{"line":155,"column":55}},"65":{"start":{"line":155,"column":62},"end":{"line":155,"column":198}},"66":{"start":{"line":155,"column":94},"end":{"line":155,"column":113}},"67":{"start":{"line":155,"column":120},"end":{"line":155,"column":198}},"68":{"start":{"line":155,"column":151},"end":{"line":155,"column":170}},"69":{"start":{"line":155,"column":178},"end":{"line":155,"column":197}},"70":{"start":{"line":157,"column":4},"end":{"line":157,"column":26}}},"branchMap":{"1":{"line":26,"type":"if","locations":[{"start":{"line":26,"column":8},"end":{"line":26,"column":8}},{"start":{"line":26,"column":8},"end":{"line":26,"column":8}}]},"2":{"line":46,"type":"if","locations":[{"start":{"line":46,"column":12},"end":{"line":46,"column":12}},{"start":{"line":46,"column":12},"end":{"line":46,"column":12}}]},"3":{"line":51,"type":"if","locations":[{"start":{"line":51,"column":12},"end":{"line":51,"column":12}},{"start":{"line":51,"column":12},"end":{"line":51,"column":12}}]},"4":{"line":51,"type":"binary-expr","locations":[{"start":{"line":51,"column":16},"end":{"line":51,"column":18}},{"start":{"line":51,"column":22},"end":{"line":51,"column":41}}]},"5":{"line":74,"type":"if","locations":[{"start":{"line":74,"column":8},"end":{"line":74,"column":8}},{"start":{"line":74,"column":8},"end":{"line":74,"column":8}}]},"6":{"line":80,"type":"if","locations":[{"start":{"line":80,"column":8},"end":{"line":80,"column":8}},{"start":{"line":80,"column":8},"end":{"line":80,"column":8}}]},"7":{"line":86,"type":"if","locations":[{"start":{"line":86,"column":8},"end":{"line":86,"column":8}},{"start":{"line":86,"column":8},"end":{"line":86,"column":8}}]},"8":{"line":92,"type":"if","locations":[{"start":{"line":92,"column":8},"end":{"line":92,"column":8}},{"start":{"line":92,"column":8},"end":{"line":92,"column":8}}]},"9":{"line":106,"type":"if","locations":[{"start":{"line":106,"column":8},"end":{"line":106,"column":8}},{"start":{"line":106,"column":8},"end":{"line":106,"column":8}}]},"10":{"line":106,"type":"binary-expr","locations":[{"start":{"line":106,"column":12},"end":{"line":106,"column":27}},{"start":{"line":106,"column":32},"end":{"line":106,"column":68}}]},"11":{"line":125,"type":"if","locations":[{"start":{"line":125,"column":8},"end":{"line":125,"column":8}},{"start":{"line":125,"column":8},"end":{"line":125,"column":8}}]},"12":{"line":125,"type":"binary-expr","locations":[{"start":{"line":125,"column":12},"end":{"line":125,"column":22}},{"start":{"line":125,"column":26},"end":{"line":125,"column":51}}]},"13":{"line":136,"type":"if","locations":[{"start":{"line":136,"column":8},"end":{"line":136,"column":8}},{"start":{"line":136,"column":8},"end":{"line":136,"column":8}}]},"14":{"line":155,"type":"if","locations":[{"start":{"line":155,"column":4},"end":{"line":155,"column":4}},{"start":{"line":155,"column":4},"end":{"line":155,"column":4}}]},"15":{"line":155,"type":"binary-expr","locations":[{"start":{"line":155,"column":8},"end":{"line":155,"column":17}},{"start":{"line":155,"column":21},"end":{"line":155,"column":33}}]},"16":{"line":155,"type":"if","locations":[{"start":{"line":155,"column":62},"end":{"line":155,"column":62}},{"start":{"line":155,"column":62},"end":{"line":155,"column":62}}]},"17":{"line":155,"type":"binary-expr","locations":[{"start":{"line":155,"column":66},"end":{"line":155,"column":76}},{"start":{"line":155,"column":80},"end":{"line":155,"column":91}}]},"18":{"line":155,"type":"if","locations":[{"start":{"line":155,"column":120},"end":{"line":155,"column":120}},{"start":{"line":155,"column":120},"end":{"line":155,"column":120}}]},"19":{"line":155,"type":"binary-expr","locations":[{"start":{"line":155,"column":124},"end":{"line":155,"column":133}},{"start":{"line":155,"column":137},"end":{"line":155,"column":148}}]}}},"D:\\dev\\github\\http-proxy-middleware\\lib\\handlers.js":{"path":"D:\\dev\\github\\http-proxy-middleware\\lib\\handlers.js","s":{"1":1,"2":1,"3":1,"4":1,"5":41,"6":41,"7":85,"8":41,"9":1,"10":48,"11":48,"12":48,"13":288,"14":288,"15":288,"16":17,"17":48,"18":44,"19":48,"20":46,"21":48,"22":1,"23":5,"24":5,"25":3,"26":5,"27":1,"28":4},"b":{"1":[17,271],"2":[44,4],"3":[46,2],"4":[5,5],"5":[3,2],"6":[5,5]},"f":{"1":41,"2":85,"3":48,"4":288,"5":5,"6":4},"fnMap":{"1":{"name":"init","line":9,"loc":{"start":{"line":9,"column":0},"end":{"line":9,"column":27}}},"2":{"name":"(anonymous_2)","line":12,"loc":{"start":{"line":12,"column":22},"end":{"line":12,"column":51}}},"3":{"name":"getProxyEventHandlers","line":19,"loc":{"start":{"line":19,"column":0},"end":{"line":19,"column":37}}},"4":{"name":"(anonymous_4)","line":24,"loc":{"start":{"line":24,"column":27},"end":{"line":24,"column":43}}},"5":{"name":"defaultErrorHandler","line":49,"loc":{"start":{"line":49,"column":0},"end":{"line":49,"column":44}}},"6":{"name":"logClose","line":59,"loc":{"start":{"line":59,"column":0},"end":{"line":59,"column":37}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":31}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":47}},"3":{"start":{"line":4,"column":0},"end":{"line":7,"column":2}},"4":{"start":{"line":9,"column":0},"end":{"line":17,"column":1}},"5":{"start":{"line":10,"column":4},"end":{"line":10,"column":47}},"6":{"start":{"line":12,"column":4},"end":{"line":14,"column":7}},"7":{"start":{"line":13,"column":8},"end":{"line":13,"column":49}},"8":{"start":{"line":16,"column":4},"end":{"line":16,"column":78}},"9":{"start":{"line":19,"column":0},"end":{"line":47,"column":1}},"10":{"start":{"line":21,"column":4},"end":{"line":21,"column":87}},"11":{"start":{"line":22,"column":4},"end":{"line":22,"column":22}},"12":{"start":{"line":24,"column":4},"end":{"line":34,"column":7}},"13":{"start":{"line":28,"column":8},"end":{"line":28,"column":51}},"14":{"start":{"line":29,"column":8},"end":{"line":29,"column":47}},"15":{"start":{"line":31,"column":8},"end":{"line":33,"column":9}},"16":{"start":{"line":32,"column":12},"end":{"line":32,"column":40}},"17":{"start":{"line":37,"column":4},"end":{"line":39,"column":5}},"18":{"start":{"line":38,"column":8},"end":{"line":38,"column":45}},"19":{"start":{"line":42,"column":4},"end":{"line":44,"column":5}},"20":{"start":{"line":43,"column":8},"end":{"line":43,"column":34}},"21":{"start":{"line":46,"column":4},"end":{"line":46,"column":20}},"22":{"start":{"line":49,"column":0},"end":{"line":57,"column":1}},"23":{"start":{"line":50,"column":4},"end":{"line":50,"column":49}},"24":{"start":{"line":52,"column":4},"end":{"line":54,"column":5}},"25":{"start":{"line":53,"column":8},"end":{"line":53,"column":27}},"26":{"start":{"line":56,"column":4},"end":{"line":56,"column":73}},"27":{"start":{"line":59,"column":0},"end":{"line":62,"column":1}},"28":{"start":{"line":61,"column":4},"end":{"line":61,"column":45}}},"branchMap":{"1":{"line":31,"type":"if","locations":[{"start":{"line":31,"column":8},"end":{"line":31,"column":8}},{"start":{"line":31,"column":8},"end":{"line":31,"column":8}}]},"2":{"line":37,"type":"if","locations":[{"start":{"line":37,"column":4},"end":{"line":37,"column":4}},{"start":{"line":37,"column":4},"end":{"line":37,"column":4}}]},"3":{"line":42,"type":"if","locations":[{"start":{"line":42,"column":4},"end":{"line":42,"column":4}},{"start":{"line":42,"column":4},"end":{"line":42,"column":4}}]},"4":{"line":50,"type":"binary-expr","locations":[{"start":{"line":50,"column":16},"end":{"line":50,"column":27}},{"start":{"line":50,"column":31},"end":{"line":50,"column":47}}]},"5":{"line":52,"type":"if","locations":[{"start":{"line":52,"column":4},"end":{"line":52,"column":4}},{"start":{"line":52,"column":4},"end":{"line":52,"column":4}}]},"6":{"line":52,"type":"binary-expr","locations":[{"start":{"line":52,"column":8},"end":{"line":52,"column":21}},{"start":{"line":52,"column":25},"end":{"line":52,"column":41}}]}}},"D:\\dev\\github\\http-proxy-middleware\\lib\\context-matcher.js":{"path":"D:\\dev\\github\\http-proxy-middleware\\lib\\context-matcher.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":106,"8":38,"9":68,"10":32,"11":36,"12":22,"13":8,"14":14,"15":13,"16":1,"17":14,"18":10,"19":10,"20":4,"21":1,"22":49,"23":49,"24":1,"25":45,"26":45,"27":45,"28":1,"29":13,"30":1,"31":8,"32":11,"33":11,"34":4,"35":4,"36":1,"37":104,"38":1,"39":133,"40":1,"41":95},"b":{"1":[38,68],"2":[32,36],"3":[22,14],"4":[8,14],"5":[13,1],"6":[10,4],"7":[45,45],"8":[4,7],"9":[104,104],"10":[133,97]},"f":{"1":106,"2":49,"3":45,"4":13,"5":8,"6":104,"7":133,"8":95},"fnMap":{"1":{"name":"matchContext","line":10,"loc":{"start":{"line":10,"column":0},"end":{"line":10,"column":41}}},"2":{"name":"matchSingleStringPath","line":48,"loc":{"start":{"line":48,"column":0},"end":{"line":48,"column":45}}},"3":{"name":"matchSingleGlobPath","line":53,"loc":{"start":{"line":53,"column":0},"end":{"line":53,"column":43}}},"4":{"name":"matchMultiGlobPath","line":59,"loc":{"start":{"line":59,"column":0},"end":{"line":59,"column":46}}},"5":{"name":"matchMultiPath","line":68,"loc":{"start":{"line":68,"column":0},"end":{"line":68,"column":42}}},"6":{"name":"getUrlPathName","line":84,"loc":{"start":{"line":84,"column":0},"end":{"line":84,"column":29}}},"7":{"name":"isStringPath","line":88,"loc":{"start":{"line":88,"column":0},"end":{"line":88,"column":31}}},"8":{"name":"isGlobPath","line":92,"loc":{"start":{"line":92,"column":0},"end":{"line":92,"column":29}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":26}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":25}},"3":{"start":{"line":3,"column":0},"end":{"line":3,"column":32}},"4":{"start":{"line":4,"column":0},"end":{"line":4,"column":39}},"5":{"start":{"line":6,"column":0},"end":{"line":8,"column":2}},"6":{"start":{"line":10,"column":0},"end":{"line":41,"column":1}},"7":{"start":{"line":13,"column":4},"end":{"line":15,"column":5}},"8":{"start":{"line":14,"column":8},"end":{"line":14,"column":51}},"9":{"start":{"line":18,"column":4},"end":{"line":20,"column":5}},"10":{"start":{"line":19,"column":8},"end":{"line":19,"column":49}},"11":{"start":{"line":23,"column":4},"end":{"line":32,"column":5}},"12":{"start":{"line":24,"column":8},"end":{"line":26,"column":9}},"13":{"start":{"line":25,"column":12},"end":{"line":25,"column":48}},"14":{"start":{"line":27,"column":8},"end":{"line":29,"column":9}},"15":{"start":{"line":28,"column":12},"end":{"line":28,"column":52}},"16":{"start":{"line":31,"column":8},"end":{"line":31,"column":121}},"17":{"start":{"line":35,"column":4},"end":{"line":38,"column":5}},"18":{"start":{"line":36,"column":8},"end":{"line":36,"column":43}},"19":{"start":{"line":37,"column":8},"end":{"line":37,"column":38}},"20":{"start":{"line":40,"column":4},"end":{"line":40,"column":100}},"21":{"start":{"line":48,"column":0},"end":{"line":51,"column":1}},"22":{"start":{"line":49,"column":4},"end":{"line":49,"column":39}},"23":{"start":{"line":50,"column":4},"end":{"line":50,"column":43}},"24":{"start":{"line":53,"column":0},"end":{"line":57,"column":1}},"25":{"start":{"line":54,"column":4},"end":{"line":54,"column":39}},"26":{"start":{"line":55,"column":4},"end":{"line":55,"column":48}},"27":{"start":{"line":56,"column":4},"end":{"line":56,"column":43}},"28":{"start":{"line":59,"column":0},"end":{"line":61,"column":1}},"29":{"start":{"line":60,"column":4},"end":{"line":60,"column":49}},"30":{"start":{"line":68,"column":0},"end":{"line":76,"column":1}},"31":{"start":{"line":69,"column":4},"end":{"line":74,"column":5}},"32":{"start":{"line":70,"column":8},"end":{"line":70,"column":37}},"33":{"start":{"line":71,"column":8},"end":{"line":73,"column":9}},"34":{"start":{"line":72,"column":12},"end":{"line":72,"column":24}},"35":{"start":{"line":75,"column":4},"end":{"line":75,"column":17}},"36":{"start":{"line":84,"column":0},"end":{"line":86,"column":1}},"37":{"start":{"line":85,"column":4},"end":{"line":85,"column":42}},"38":{"start":{"line":88,"column":0},"end":{"line":90,"column":1}},"39":{"start":{"line":89,"column":4},"end":{"line":89,"column":51}},"40":{"start":{"line":92,"column":0},"end":{"line":94,"column":1}},"41":{"start":{"line":93,"column":4},"end":{"line":93,"column":27}}},"branchMap":{"1":{"line":13,"type":"if","locations":[{"start":{"line":13,"column":4},"end":{"line":13,"column":4}},{"start":{"line":13,"column":4},"end":{"line":13,"column":4}}]},"2":{"line":18,"type":"if","locations":[{"start":{"line":18,"column":4},"end":{"line":18,"column":4}},{"start":{"line":18,"column":4},"end":{"line":18,"column":4}}]},"3":{"line":23,"type":"if","locations":[{"start":{"line":23,"column":4},"end":{"line":23,"column":4}},{"start":{"line":23,"column":4},"end":{"line":23,"column":4}}]},"4":{"line":24,"type":"if","locations":[{"start":{"line":24,"column":8},"end":{"line":24,"column":8}},{"start":{"line":24,"column":8},"end":{"line":24,"column":8}}]},"5":{"line":27,"type":"if","locations":[{"start":{"line":27,"column":8},"end":{"line":27,"column":8}},{"start":{"line":27,"column":8},"end":{"line":27,"column":8}}]},"6":{"line":35,"type":"if","locations":[{"start":{"line":35,"column":4},"end":{"line":35,"column":4}},{"start":{"line":35,"column":4},"end":{"line":35,"column":4}}]},"7":{"line":56,"type":"binary-expr","locations":[{"start":{"line":56,"column":11},"end":{"line":56,"column":18}},{"start":{"line":56,"column":23},"end":{"line":56,"column":41}}]},"8":{"line":71,"type":"if","locations":[{"start":{"line":71,"column":8},"end":{"line":71,"column":8}},{"start":{"line":71,"column":8},"end":{"line":71,"column":8}}]},"9":{"line":85,"type":"binary-expr","locations":[{"start":{"line":85,"column":11},"end":{"line":85,"column":14}},{"start":{"line":85,"column":18},"end":{"line":85,"column":41}}]},"10":{"line":89,"type":"binary-expr","locations":[{"start":{"line":89,"column":11},"end":{"line":89,"column":30}},{"start":{"line":89,"column":34},"end":{"line":89,"column":50}}]}}},"D:\\dev\\github\\http-proxy-middleware\\lib\\path-rewriter.js":{"path":"D:\\dev\\github\\http-proxy-middleware\\lib\\path-rewriter.js","s":{"1":1,"2":1,"3":1,"4":1,"5":60,"6":60,"7":34,"8":22,"9":7,"10":7,"11":15,"12":15,"13":1,"14":15,"15":15,"16":30,"17":12,"18":12,"19":12,"20":15,"21":1,"22":60,"23":7,"24":53,"25":15,"26":38,"27":34,"28":4,"29":1,"30":15,"31":15,"32":15,"33":46,"34":46,"35":15},"b":{"1":[34,22],"2":[7,15],"3":[12,18],"4":[7,53],"5":[15,38],"6":[53,17],"7":[34,4],"8":[38,6,5],"9":[15,0]},"f":{"1":60,"2":15,"3":30,"4":60,"5":15,"6":46},"fnMap":{"1":{"name":"createPathRewriter","line":13,"loc":{"start":{"line":13,"column":0},"end":{"line":13,"column":43}}},"2":{"name":"rewritePath","line":28,"loc":{"start":{"line":28,"column":4},"end":{"line":28,"column":31}}},"3":{"name":"(anonymous_3)","line":31,"loc":{"start":{"line":31,"column":30},"end":{"line":31,"column":45}}},"4":{"name":"isValidRewriteConfig","line":43,"loc":{"start":{"line":43,"column":0},"end":{"line":43,"column":45}}},"5":{"name":"parsePathRewriteRules","line":57,"loc":{"start":{"line":57,"column":0},"end":{"line":57,"column":46}}},"6":{"name":"(anonymous_6)","line":61,"loc":{"start":{"line":61,"column":31},"end":{"line":61,"column":52}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":31}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":47}},"3":{"start":{"line":4,"column":0},"end":{"line":6,"column":2}},"4":{"start":{"line":13,"column":0},"end":{"line":41,"column":1}},"5":{"start":{"line":14,"column":4},"end":{"line":14,"column":19}},"6":{"start":{"line":16,"column":4},"end":{"line":18,"column":5}},"7":{"start":{"line":17,"column":8},"end":{"line":17,"column":15}},"8":{"start":{"line":20,"column":4},"end":{"line":26,"column":5}},"9":{"start":{"line":21,"column":8},"end":{"line":21,"column":44}},"10":{"start":{"line":22,"column":8},"end":{"line":22,"column":31}},"11":{"start":{"line":24,"column":8},"end":{"line":24,"column":58}},"12":{"start":{"line":25,"column":8},"end":{"line":25,"column":27}},"13":{"start":{"line":28,"column":4},"end":{"line":40,"column":5}},"14":{"start":{"line":29,"column":8},"end":{"line":29,"column":26}},"15":{"start":{"line":31,"column":8},"end":{"line":37,"column":11}},"16":{"start":{"line":32,"column":12},"end":{"line":36,"column":13}},"17":{"start":{"line":33,"column":16},"end":{"line":33,"column":64}},"18":{"start":{"line":34,"column":16},"end":{"line":34,"column":85}},"19":{"start":{"line":35,"column":16},"end":{"line":35,"column":29}},"20":{"start":{"line":39,"column":8},"end":{"line":39,"column":22}},"21":{"start":{"line":43,"column":0},"end":{"line":55,"column":1}},"22":{"start":{"line":44,"column":4},"end":{"line":54,"column":5}},"23":{"start":{"line":45,"column":8},"end":{"line":45,"column":20}},"24":{"start":{"line":46,"column":11},"end":{"line":54,"column":5}},"25":{"start":{"line":47,"column":8},"end":{"line":47,"column":20}},"26":{"start":{"line":48,"column":11},"end":{"line":54,"column":5}},"27":{"start":{"line":51,"column":8},"end":{"line":51,"column":21}},"28":{"start":{"line":53,"column":8},"end":{"line":53,"column":124}},"29":{"start":{"line":57,"column":0},"end":{"line":71,"column":1}},"30":{"start":{"line":58,"column":4},"end":{"line":58,"column":19}},"31":{"start":{"line":60,"column":4},"end":{"line":68,"column":5}},"32":{"start":{"line":61,"column":8},"end":{"line":67,"column":11}},"33":{"start":{"line":62,"column":12},"end":{"line":65,"column":15}},"34":{"start":{"line":66,"column":12},"end":{"line":66,"column":99}},"35":{"start":{"line":70,"column":4},"end":{"line":70,"column":17}}},"branchMap":{"1":{"line":16,"type":"if","locations":[{"start":{"line":16,"column":4},"end":{"line":16,"column":4}},{"start":{"line":16,"column":4},"end":{"line":16,"column":4}}]},"2":{"line":20,"type":"if","locations":[{"start":{"line":20,"column":4},"end":{"line":20,"column":4}},{"start":{"line":20,"column":4},"end":{"line":20,"column":4}}]},"3":{"line":32,"type":"if","locations":[{"start":{"line":32,"column":12},"end":{"line":32,"column":12}},{"start":{"line":32,"column":12},"end":{"line":32,"column":12}}]},"4":{"line":44,"type":"if","locations":[{"start":{"line":44,"column":4},"end":{"line":44,"column":4}},{"start":{"line":44,"column":4},"end":{"line":44,"column":4}}]},"5":{"line":46,"type":"if","locations":[{"start":{"line":46,"column":11},"end":{"line":46,"column":11}},{"start":{"line":46,"column":11},"end":{"line":46,"column":11}}]},"6":{"line":46,"type":"binary-expr","locations":[{"start":{"line":46,"column":15},"end":{"line":46,"column":40}},{"start":{"line":46,"column":44},"end":{"line":46,"column":74}}]},"7":{"line":48,"type":"if","locations":[{"start":{"line":48,"column":11},"end":{"line":48,"column":11}},{"start":{"line":48,"column":11},"end":{"line":48,"column":11}}]},"8":{"line":48,"type":"binary-expr","locations":[{"start":{"line":48,"column":15},"end":{"line":48,"column":43}},{"start":{"line":49,"column":15},"end":{"line":49,"column":38}},{"start":{"line":50,"column":15},"end":{"line":50,"column":43}}]},"9":{"line":60,"type":"if","locations":[{"start":{"line":60,"column":4},"end":{"line":60,"column":4}},{"start":{"line":60,"column":4},"end":{"line":60,"column":4}}]}}},"D:\\dev\\github\\http-proxy-middleware\\lib\\router.js":{"path":"D:\\dev\\github\\http-proxy-middleware\\lib\\router.js","s":{"1":1,"2":1,"3":1,"4":1,"5":18,"6":18,"7":18,"8":14,"9":4,"10":3,"11":18,"12":1,"13":14,"14":14,"15":14,"16":14,"17":14,"18":46,"19":17,"20":7,"21":7,"22":7,"23":29,"24":5,"25":5,"26":5,"27":14,"28":1,"29":46},"b":{"1":[14,4],"2":[3,1],"3":[17,29],"4":[7,10],"5":[5,24]},"f":{"1":18,"2":14,"3":46,"4":46},"fnMap":{"1":{"name":"getTarget","line":8,"loc":{"start":{"line":8,"column":0},"end":{"line":8,"column":32}}},"2":{"name":"getTargetFromProxyTable","line":21,"loc":{"start":{"line":21,"column":0},"end":{"line":21,"column":45}}},"3":{"name":"(anonymous_3)","line":28,"loc":{"start":{"line":28,"column":19},"end":{"line":28,"column":40}}},"4":{"name":"containsPath","line":51,"loc":{"start":{"line":51,"column":0},"end":{"line":51,"column":25}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":31}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":50}},"3":{"start":{"line":4,"column":0},"end":{"line":6,"column":2}},"4":{"start":{"line":8,"column":0},"end":{"line":19,"column":1}},"5":{"start":{"line":9,"column":4},"end":{"line":9,"column":18}},"6":{"start":{"line":10,"column":4},"end":{"line":10,"column":31}},"7":{"start":{"line":12,"column":4},"end":{"line":16,"column":5}},"8":{"start":{"line":13,"column":8},"end":{"line":13,"column":57}},"9":{"start":{"line":14,"column":11},"end":{"line":16,"column":5}},"10":{"start":{"line":15,"column":8},"end":{"line":15,"column":32}},"11":{"start":{"line":18,"column":4},"end":{"line":18,"column":21}},"12":{"start":{"line":21,"column":0},"end":{"line":49,"column":1}},"13":{"start":{"line":22,"column":4},"end":{"line":22,"column":15}},"14":{"start":{"line":23,"column":4},"end":{"line":23,"column":32}},"15":{"start":{"line":24,"column":4},"end":{"line":24,"column":23}},"16":{"start":{"line":26,"column":4},"end":{"line":26,"column":34}},"17":{"start":{"line":28,"column":4},"end":{"line":46,"column":7}},"18":{"start":{"line":29,"column":8},"end":{"line":44,"column":9}},"19":{"start":{"line":31,"column":12},"end":{"line":35,"column":13}},"20":{"start":{"line":32,"column":16},"end":{"line":32,"column":36}},"21":{"start":{"line":33,"column":16},"end":{"line":33,"column":68}},"22":{"start":{"line":34,"column":16},"end":{"line":34,"column":29}},"23":{"start":{"line":38,"column":12},"end":{"line":42,"column":13}},"24":{"start":{"line":39,"column":16},"end":{"line":39,"column":36}},"25":{"start":{"line":40,"column":16},"end":{"line":40,"column":69}},"26":{"start":{"line":41,"column":16},"end":{"line":41,"column":29}},"27":{"start":{"line":48,"column":4},"end":{"line":48,"column":18}},"28":{"start":{"line":51,"column":0},"end":{"line":53,"column":1}},"29":{"start":{"line":52,"column":4},"end":{"line":52,"column":31}}},"branchMap":{"1":{"line":12,"type":"if","locations":[{"start":{"line":12,"column":4},"end":{"line":12,"column":4}},{"start":{"line":12,"column":4},"end":{"line":12,"column":4}}]},"2":{"line":14,"type":"if","locations":[{"start":{"line":14,"column":11},"end":{"line":14,"column":11}},{"start":{"line":14,"column":11},"end":{"line":14,"column":11}}]},"3":{"line":29,"type":"if","locations":[{"start":{"line":29,"column":8},"end":{"line":29,"column":8}},{"start":{"line":29,"column":8},"end":{"line":29,"column":8}}]},"4":{"line":31,"type":"if","locations":[{"start":{"line":31,"column":12},"end":{"line":31,"column":12}},{"start":{"line":31,"column":12},"end":{"line":31,"column":12}}]},"5":{"line":38,"type":"if","locations":[{"start":{"line":38,"column":12},"end":{"line":38,"column":12}},{"start":{"line":38,"column":12},"end":{"line":38,"column":12}}]}}}}