necessary 10.0.7 → 11.0.3

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.
package/README.md CHANGED
@@ -437,19 +437,17 @@ const stats = getStats("root/etc"); // returns stats for the 'root/etc' director
437
437
 
438
438
  A single `rc()` function for runtime configuration.
439
439
 
440
- * The `rc()` function parses a JSON runtime configuration file of a certain format and provides the information therein by assigning it to itself:
440
+ * The `rc()` function parses a JSON runtime configuration file of a certain format and provides the information therein by assigning it to itself. For example:
441
441
 
442
442
  ```
443
443
  rc();
444
444
 
445
445
  const { logOptions } = rc;
446
446
 
447
- setLogOptions(logOptions); // Expects a plain old JavaScript object of the form { level,
448
- // fileBaseName,
449
- // directoryPath }
447
+ setLogOptions(logOptions);
450
448
  ```
451
449
 
452
- By default it will parse a file called `.rc` in the current working directory. This file should have the following format:
450
+ The default name for the file is `.rc` and it must be present in the current working directory. It must have the following format:
453
451
 
454
452
  ```
455
453
  {
@@ -466,17 +464,16 @@ By default it will parse a file called `.rc` in the current working directory. T
466
464
  }
467
465
  ```
468
466
 
469
- In the absence of being passed an environment name, it will parse and return the first element of the `enviromnents` array. It will not try to assign the `name` property of the chosen environment to itself, by the way, because functions already have a `name` property. It can be instructed to a chose a specific environment thus:
467
+ If an environment name is not passed as the `rc()` function's argument then it will try to find the environment name by the following means:
470
468
 
471
- ```
472
- rc("production"); // Provides the 'production' environment
473
- ```
469
+ 1. Checking the `process.argv` array for an `--environment` argument.
470
+ 2. Checking the `proxess.env` object for an `ENVIRONMENT` environment variable.
474
471
 
475
- Or you can pass `process.argv` if the command line arguments include something of the form `--environment=...`:
472
+ If neither of these checks are successful then it will return the first element of the `enviromnents` array.
476
473
 
477
- ```
478
- rc(process.argv); // Provides the 'development' if given '--environment=development'
479
- ```
474
+ Note that it will not try to assign the `name` property of the chosen environment to itself, because functions already have a `name` property.
475
+
476
+ Before returning the JSON, it will search for uppercase strings. If such a string is the name of an environment variable, it will be replaced by the environment variable's value. This means that you can choose to keep sensitive information out of the runtime configuration and therefore, for instance, safely commit it to the repository.
480
477
 
481
478
  You can change the base extension of the file that is parsed, that is the part of the extension between the leading dot and `rc`, by making use of the `setRCBaseExtension()` function:
482
479
 
@@ -755,7 +752,7 @@ separate([1, -1, -2, 2, 3, -3], [], [], (element, index) => {
755
752
 
756
753
  Helper functions to manipulate HTTP headers and URLs, build query strings and so on.
757
754
 
758
- * The `overwrite()` function takes a plain old JavaScript object `headers` argument together with `name` and `value` string arguments. It overwrites the property of the `headers` object corresponding to the `name` argument with the `value` argument, if the property exists, otherwise it creates it. It's utility lies in the fact that it is insensitive to case.
755
+ * The `overwrite()` function takes a plain old JavaScript object `headers` argument together with `name` and `value` string arguments. If the corresponding property of the `headers` object exists then it is replaced with the `value` value. This function's utility lies in the fact that the name comparisons are case insensitive.
759
756
 
760
757
  ```
761
758
  const headers = {
@@ -765,7 +762,7 @@ const headers = {
765
762
  overwrite(headers, "content-type", "text/html"); // headers["Content-Type"] = "text/html"
766
763
  ```
767
764
 
768
- * The `underwrite()` function takes a plain old JavaScript object `headers` argument together with `name` and `value` string arguments. If the corresponding property of the \headers\ object exists then it is left in place, otherwise it is given the `value` value. It's utility lies in the fact that it is insensitive to case.
765
+ * The `underwrite()` function takes a plain old JavaScript object `headers` argument together with `name` and `value` string arguments. If the corresponding property of the `headers` object does not exist then it is created with the `value` value. This function's utility lies in the fact that the name comparisons are case insensitive.
769
766
 
770
767
  ```
771
768
  const headers = {
package/lib/characters.js CHANGED
@@ -2,11 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.CARRIAGE_RETURN_CHARACTER = exports.BACKSPACE_CHARACTER = exports.LINE_FEED_CHARACTER = exports.AMPERSAND_CHARACTER = exports.COLON_CHARACTER = exports.ETX_CHARACTER = void 0;
5
+ exports.CARRIAGE_RETURN_CHARACTER = exports.BACKSPACE_CHARACTER = exports.LINE_FEED_CHARACTER = exports.AMPERSAND_CHARACTER = exports.CTRL_C_CHARACTER = exports.COLON_CHARACTER = exports.ETX_CHARACTER = void 0;
6
6
  var ETX_CHARACTER = "\x03";
7
7
  exports.ETX_CHARACTER = ETX_CHARACTER;
8
8
  var COLON_CHARACTER = ":";
9
9
  exports.COLON_CHARACTER = COLON_CHARACTER;
10
+ var CTRL_C_CHARACTER = "^C";
11
+ exports.CTRL_C_CHARACTER = CTRL_C_CHARACTER;
10
12
  var AMPERSAND_CHARACTER = "&";
11
13
  exports.AMPERSAND_CHARACTER = AMPERSAND_CHARACTER;
12
14
  var LINE_FEED_CHARACTER = "\n";
@@ -16,4 +18,4 @@ exports.BACKSPACE_CHARACTER = BACKSPACE_CHARACTER;
16
18
  var CARRIAGE_RETURN_CHARACTER = "\r";
17
19
  exports.CARRIAGE_RETURN_CHARACTER = CARRIAGE_RETURN_CHARACTER;
18
20
 
19
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jaGFyYWN0ZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgY29uc3QgRVRYX0NIQVJBQ1RFUiA9IFwiXFx1MDAwM1wiO1xuZXhwb3J0IGNvbnN0IENPTE9OX0NIQVJBQ1RFUiA9IFwiOlwiO1xuZXhwb3J0IGNvbnN0IEFNUEVSU0FORF9DSEFSQUNURVIgPSBcIiZcIjtcbmV4cG9ydCBjb25zdCBMSU5FX0ZFRURfQ0hBUkFDVEVSID0gXCJcXG5cIjtcbmV4cG9ydCBjb25zdCBCQUNLU1BBQ0VfQ0hBUkFDVEVSID0gU3RyaW5nLmZyb21DaGFyQ29kZSgxMjcpO1xuZXhwb3J0IGNvbnN0IENBUlJJQUdFX1JFVFVSTl9DSEFSQUNURVIgPSBcIlxcclwiO1xuIl0sIm5hbWVzIjpbIkVUWF9DSEFSQUNURVIiLCJDT0xPTl9DSEFSQUNURVIiLCJBTVBFUlNBTkRfQ0hBUkFDVEVSIiwiTElORV9GRUVEX0NIQVJBQ1RFUiIsIkJBQ0tTUEFDRV9DSEFSQUNURVIiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJDQVJSSUFHRV9SRVRVUk5fQ0hBUkFDVEVSIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUVMLEdBQUssQ0FBQ0EsYUFBYSxHQUFHLENBQVE7UUFBeEJBLGFBQWEsR0FBYkEsYUFBYTtBQUNuQixHQUFLLENBQUNDLGVBQWUsR0FBRyxDQUFHO1FBQXJCQSxlQUFlLEdBQWZBLGVBQWU7QUFDckIsR0FBSyxDQUFDQyxtQkFBbUIsR0FBRyxDQUFHO1FBQXpCQSxtQkFBbUIsR0FBbkJBLG1CQUFtQjtBQUN6QixHQUFLLENBQUNDLG1CQUFtQixHQUFHLENBQUk7UUFBMUJBLG1CQUFtQixHQUFuQkEsbUJBQW1CO0FBQ3pCLEdBQUssQ0FBQ0MsbUJBQW1CLEdBQUdDLE1BQU0sQ0FBQ0MsWUFBWSxDQUFDLEdBQUc7UUFBN0NGLG1CQUFtQixHQUFuQkEsbUJBQW1CO0FBQ3pCLEdBQUssQ0FBQ0cseUJBQXlCLEdBQUcsQ0FBSTtRQUFoQ0EseUJBQXlCLEdBQXpCQSx5QkFBeUIifQ==
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jaGFyYWN0ZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgY29uc3QgRVRYX0NIQVJBQ1RFUiA9IFwiXFx1MDAwM1wiO1xuZXhwb3J0IGNvbnN0IENPTE9OX0NIQVJBQ1RFUiA9IFwiOlwiO1xuZXhwb3J0IGNvbnN0IENUUkxfQ19DSEFSQUNURVIgPSBcIl5DXCI7XG5leHBvcnQgY29uc3QgQU1QRVJTQU5EX0NIQVJBQ1RFUiA9IFwiJlwiO1xuZXhwb3J0IGNvbnN0IExJTkVfRkVFRF9DSEFSQUNURVIgPSBcIlxcblwiO1xuZXhwb3J0IGNvbnN0IEJBQ0tTUEFDRV9DSEFSQUNURVIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDEyNyk7XG5leHBvcnQgY29uc3QgQ0FSUklBR0VfUkVUVVJOX0NIQVJBQ1RFUiA9IFwiXFxyXCI7XG4iXSwibmFtZXMiOlsiRVRYX0NIQVJBQ1RFUiIsIkNPTE9OX0NIQVJBQ1RFUiIsIkNUUkxfQ19DSEFSQUNURVIiLCJBTVBFUlNBTkRfQ0hBUkFDVEVSIiwiTElORV9GRUVEX0NIQVJBQ1RFUiIsIkJBQ0tTUEFDRV9DSEFSQUNURVIiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJDQVJSSUFHRV9SRVRVUk5fQ0hBUkFDVEVSIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUVMLEdBQUssQ0FBQ0EsYUFBYSxHQUFHLENBQVE7UUFBeEJBLGFBQWEsR0FBYkEsYUFBYTtBQUNuQixHQUFLLENBQUNDLGVBQWUsR0FBRyxDQUFHO1FBQXJCQSxlQUFlLEdBQWZBLGVBQWU7QUFDckIsR0FBSyxDQUFDQyxnQkFBZ0IsR0FBRyxDQUFJO1FBQXZCQSxnQkFBZ0IsR0FBaEJBLGdCQUFnQjtBQUN0QixHQUFLLENBQUNDLG1CQUFtQixHQUFHLENBQUc7UUFBekJBLG1CQUFtQixHQUFuQkEsbUJBQW1CO0FBQ3pCLEdBQUssQ0FBQ0MsbUJBQW1CLEdBQUcsQ0FBSTtRQUExQkEsbUJBQW1CLEdBQW5CQSxtQkFBbUI7QUFDekIsR0FBSyxDQUFDQyxtQkFBbUIsR0FBR0MsTUFBTSxDQUFDQyxZQUFZLENBQUMsR0FBRztRQUE3Q0YsbUJBQW1CLEdBQW5CQSxtQkFBbUI7QUFDekIsR0FBSyxDQUFDRyx5QkFBeUIsR0FBRyxDQUFJO1FBQWhDQSx5QkFBeUIsR0FBekJBLHlCQUF5QiJ9
package/lib/constants.js CHANGED
@@ -2,18 +2,24 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.CONTENT_TYPE = exports.EMPTY_STRING = exports.ACCEPT = exports.CTRL_C = exports.ERROR = exports.UTF8 = void 0;
5
+ exports.CONTENT_TYPE = exports.EMPTY_STRING = exports.ENVIRONMENT = exports.BOOLEAN = exports.NUMBER = exports.ACCEPT = exports.STRING = exports.ERROR = exports.UTF8 = void 0;
6
6
  var UTF8 = "utf8";
7
7
  exports.UTF8 = UTF8;
8
8
  var ERROR = "error";
9
9
  exports.ERROR = ERROR;
10
- var CTRL_C = "^C";
11
- exports.CTRL_C = CTRL_C;
10
+ var STRING = "string";
11
+ exports.STRING = STRING;
12
12
  var ACCEPT = "accept";
13
13
  exports.ACCEPT = ACCEPT;
14
+ var NUMBER = "number";
15
+ exports.NUMBER = NUMBER;
16
+ var BOOLEAN = "boolean";
17
+ exports.BOOLEAN = BOOLEAN;
18
+ var ENVIRONMENT = "ENVIRONMENT";
19
+ exports.ENVIRONMENT = ENVIRONMENT;
14
20
  var EMPTY_STRING = "";
15
21
  exports.EMPTY_STRING = EMPTY_STRING;
16
22
  var CONTENT_TYPE = "content-type";
17
23
  exports.CONTENT_TYPE = CONTENT_TYPE;
18
24
 
19
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBVVEY4ID0gXCJ1dGY4XCI7XG5leHBvcnQgY29uc3QgRVJST1IgPSBcImVycm9yXCI7XG5leHBvcnQgY29uc3QgQ1RSTF9DID0gXCJeQ1wiO1xuZXhwb3J0IGNvbnN0IEFDQ0VQVCA9IFwiYWNjZXB0XCI7XG5leHBvcnQgY29uc3QgRU1QVFlfU1RSSU5HID0gXCJcIjtcbmV4cG9ydCBjb25zdCBDT05URU5UX1RZUEUgPSBcImNvbnRlbnQtdHlwZVwiO1xuIl0sIm5hbWVzIjpbIlVURjgiLCJFUlJPUiIsIkNUUkxfQyIsIkFDQ0VQVCIsIkVNUFRZX1NUUklORyIsIkNPTlRFTlRfVFlQRSJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7Ozs7QUFFTCxHQUFLLENBQUNBLElBQUksR0FBRyxDQUFNO1FBQWJBLElBQUksR0FBSkEsSUFBSTtBQUNWLEdBQUssQ0FBQ0MsS0FBSyxHQUFHLENBQU87UUFBZkEsS0FBSyxHQUFMQSxLQUFLO0FBQ1gsR0FBSyxDQUFDQyxNQUFNLEdBQUcsQ0FBSTtRQUFiQSxNQUFNLEdBQU5BLE1BQU07QUFDWixHQUFLLENBQUNDLE1BQU0sR0FBRyxDQUFRO1FBQWpCQSxNQUFNLEdBQU5BLE1BQU07QUFDWixHQUFLLENBQUNDLFlBQVksR0FBRyxDQUFFO1FBQWpCQSxZQUFZLEdBQVpBLFlBQVk7QUFDbEIsR0FBSyxDQUFDQyxZQUFZLEdBQUcsQ0FBYztRQUE3QkEsWUFBWSxHQUFaQSxZQUFZIn0=
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBVVEY4ID0gXCJ1dGY4XCI7XG5leHBvcnQgY29uc3QgRVJST1IgPSBcImVycm9yXCI7XG5leHBvcnQgY29uc3QgU1RSSU5HID0gXCJzdHJpbmdcIjtcbmV4cG9ydCBjb25zdCBBQ0NFUFQgPSBcImFjY2VwdFwiO1xuZXhwb3J0IGNvbnN0IE5VTUJFUiA9IFwibnVtYmVyXCI7XG5leHBvcnQgY29uc3QgQk9PTEVBTiA9IFwiYm9vbGVhblwiO1xuZXhwb3J0IGNvbnN0IEVOVklST05NRU5UID0gXCJFTlZJUk9OTUVOVFwiO1xuZXhwb3J0IGNvbnN0IEVNUFRZX1NUUklORyA9IFwiXCI7XG5leHBvcnQgY29uc3QgQ09OVEVOVF9UWVBFID0gXCJjb250ZW50LXR5cGVcIjtcbiJdLCJuYW1lcyI6WyJVVEY4IiwiRVJST1IiLCJTVFJJTkciLCJBQ0NFUFQiLCJOVU1CRVIiLCJCT09MRUFOIiwiRU5WSVJPTk1FTlQiLCJFTVBUWV9TVFJJTkciLCJDT05URU5UX1RZUEUiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRUwsR0FBSyxDQUFDQSxJQUFJLEdBQUcsQ0FBTTtRQUFiQSxJQUFJLEdBQUpBLElBQUk7QUFDVixHQUFLLENBQUNDLEtBQUssR0FBRyxDQUFPO1FBQWZBLEtBQUssR0FBTEEsS0FBSztBQUNYLEdBQUssQ0FBQ0MsTUFBTSxHQUFHLENBQVE7UUFBakJBLE1BQU0sR0FBTkEsTUFBTTtBQUNaLEdBQUssQ0FBQ0MsTUFBTSxHQUFHLENBQVE7UUFBakJBLE1BQU0sR0FBTkEsTUFBTTtBQUNaLEdBQUssQ0FBQ0MsTUFBTSxHQUFHLENBQVE7UUFBakJBLE1BQU0sR0FBTkEsTUFBTTtBQUNaLEdBQUssQ0FBQ0MsT0FBTyxHQUFHLENBQVM7UUFBbkJBLE9BQU8sR0FBUEEsT0FBTztBQUNiLEdBQUssQ0FBQ0MsV0FBVyxHQUFHLENBQWE7UUFBM0JBLFdBQVcsR0FBWEEsV0FBVztBQUNqQixHQUFLLENBQUNDLFlBQVksR0FBRyxDQUFFO1FBQWpCQSxZQUFZLEdBQVpBLFlBQVk7QUFDbEIsR0FBSyxDQUFDQyxZQUFZLEdBQUcsQ0FBYztRQUE3QkEsWUFBWSxHQUFaQSxZQUFZIn0=
@@ -13,23 +13,21 @@ var _http = require("../utilities/http");
13
13
  function get(host, uri, query, headers, callback) {
14
14
  if (callback === undefined) {
15
15
  callback = headers; ///
16
- headers = {
17
- };
16
+ headers = {};
18
17
  }
19
18
  var method = _methods.GET_METHOD, accept = _contentTypes.APPLICATION_JSON_CONTENT_TYPE, content = null;
20
- underwriteAccept(headers, accept);
19
+ underwriteAcceptHeader(headers, accept);
21
20
  request(host, uri, query, method, headers, content, callback);
22
21
  }
23
22
  function post(host, uri, query, headers, content, callback) {
24
23
  if (callback === undefined) {
25
24
  callback = content;
26
25
  content = headers;
27
- headers = {
28
- };
26
+ headers = {};
29
27
  }
30
28
  var method = _methods.POST_METHOD, accept = _contentTypes.APPLICATION_JSON_CONTENT_TYPE, contentType = _contentTypes.APPLICATION_JSON_CONTENT_TYPE;
31
- underwriteAccept(headers, accept);
32
- underwriteContentType(headers, contentType);
29
+ underwriteAcceptHeader(headers, accept);
30
+ underwriteContentTypeHeader(headers, contentType);
33
31
  request(host, uri, query, method, headers, content, callback);
34
32
  }
35
33
  function request(host, uri, query, method, headers, content1, callback) {
@@ -68,13 +66,13 @@ var _default = {
68
66
  request: request
69
67
  };
70
68
  exports.default = _default;
71
- function underwriteAccept(headers, accept) {
69
+ function underwriteAcceptHeader(headers, accept) {
72
70
  var name = _constants.ACCEPT, value = accept; ///
73
71
  (0, _http).underwrite(headers, name, value);
74
72
  }
75
- function underwriteContentType(headers, contentTYpe) {
73
+ function underwriteContentTypeHeader(headers, contentTYpe) {
76
74
  var name = _constants.CONTENT_TYPE, value = contentTYpe; ///
77
75
  (0, _http).underwrite(headers, name, value);
78
76
  }
79
77
 
80
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYWpheC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgQUNDRVBULCBDT05URU5UX1RZUEUgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBHRVRfTUVUSE9ELCBQT1NUX01FVEhPRCB9IGZyb20gXCIuLi9tZXRob2RzXCI7XG5pbXBvcnQgeyBBUFBMSUNBVElPTl9KU09OX0NPTlRFTlRfVFlQRSB9IGZyb20gXCIuLi9jb250ZW50VHlwZXNcIjtcbmltcG9ydCB7IHVuZGVyd3JpdGUsIHVybEZyb21Ib3N0VVJJQW5kUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2h0dHBcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldChob3N0LCB1cmksIHF1ZXJ5LCBoZWFkZXJzLCBjYWxsYmFjaykge1xuICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgIGNhbGxiYWNrID0gaGVhZGVyczsgLy8vXG4gICAgaGVhZGVycyA9IHt9O1xuICB9XG5cbiAgY29uc3QgbWV0aG9kID0gR0VUX01FVEhPRCxcbiAgICAgICAgYWNjZXB0ID0gQVBQTElDQVRJT05fSlNPTl9DT05URU5UX1RZUEUsXG4gICAgICAgIGNvbnRlbnQgPSBudWxsO1xuXG4gIHVuZGVyd3JpdGVBY2NlcHQoaGVhZGVycywgYWNjZXB0KTtcblxuICByZXF1ZXN0KGhvc3QsIHVyaSwgcXVlcnksIG1ldGhvZCwgaGVhZGVycywgY29udGVudCwgY2FsbGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9zdChob3N0LCB1cmksIHF1ZXJ5LCBoZWFkZXJzLCBjb250ZW50LCBjYWxsYmFjaykge1xuICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgIGNhbGxiYWNrID0gY29udGVudDtcbiAgICBjb250ZW50ID0gaGVhZGVycztcbiAgICBoZWFkZXJzID0ge307XG4gIH1cblxuICBjb25zdCBtZXRob2QgPSBQT1NUX01FVEhPRCxcbiAgICAgICAgYWNjZXB0ID0gQVBQTElDQVRJT05fSlNPTl9DT05URU5UX1RZUEUsXG4gICAgICAgIGNvbnRlbnRUeXBlID0gQVBQTElDQVRJT05fSlNPTl9DT05URU5UX1RZUEU7XG5cbiAgdW5kZXJ3cml0ZUFjY2VwdChoZWFkZXJzLCBhY2NlcHQpO1xuXG4gIHVuZGVyd3JpdGVDb250ZW50VHlwZShoZWFkZXJzLCBjb250ZW50VHlwZSk7XG5cbiAgcmVxdWVzdChob3N0LCB1cmksIHF1ZXJ5LCBtZXRob2QsIGhlYWRlcnMsIGNvbnRlbnQsIGNhbGxiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcXVlc3QoaG9zdCwgdXJpLCBxdWVyeSwgbWV0aG9kLCBoZWFkZXJzLCBjb250ZW50LCBjYWxsYmFjaykge1xuICBjb25zdCB1cmwgPSB1cmxGcm9tSG9zdFVSSUFuZFF1ZXJ5KGhvc3QsIHVyaSwgcXVlcnkpLFxuICAgICAgICBhY2NlcHQgPSBoZWFkZXJzW0FDQ0VQVF0gfHwgbnVsbCxcbiAgICAgICAgY29udGVudFR5cGUgPSBoZWFkZXJzW0NPTlRFTlRfVFlQRV0gfHwgbnVsbCxcbiAgICAgICAgeG1sSHR0cFJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcblxuICBpZiAoY29udGVudFR5cGUgPT09IEFQUExJQ0FUSU9OX0pTT05fQ09OVEVOVF9UWVBFKSB7XG4gICAgY29uc3QganNvbiA9IGNvbnRlbnQsICAvLy9cbiAgICAgICAgICBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoanNvbik7XG5cbiAgICBjb250ZW50ID0ganNvblN0cmluZzsgIC8vL1xuICB9XG5cbiAgeG1sSHR0cFJlcXVlc3Qub25yZWFkeXN0YXRlY2hhbmdlID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgcmVhZHlTdGF0ZSwgc3RhdHVzLCByZXNwb25zZSB9ID0geG1sSHR0cFJlcXVlc3QsXG4gICAgICAgICAgc3RhdHVzQ29kZSA9IHN0YXR1cztcblxuICAgIGlmIChyZWFkeVN0YXRlID09IDQpIHtcbiAgICAgIGxldCBjb250ZW50ID0gcmVzcG9uc2U7XG5cbiAgICAgIGlmIChhY2NlcHQgPT09IEFQUExJQ0FUSU9OX0pTT05fQ09OVEVOVF9UWVBFKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QganNvblN0cmluZyA9IGNvbnRlbnQsICAvLy9cbiAgICAgICAgICAgICAgICBqc29uID0gSlNPTi5wYXJzZShqc29uU3RyaW5nKTtcblxuICAgICAgICAgIGNvbnRlbnQgPSBqc29uOyAgLy8vXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29udGVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY2FsbGJhY2soY29udGVudCwgc3RhdHVzQ29kZSk7XG4gICAgfVxuICB9O1xuXG4gIHhtbEh0dHBSZXF1ZXN0Lm9wZW4obWV0aG9kLCB1cmwpO1xuXG4gIGlmIChhY2NlcHQgIT09IG51bGwpIHtcbiAgICB4bWxIdHRwUmVxdWVzdC5zZXRSZXF1ZXN0SGVhZGVyKEFDQ0VQVCwgYWNjZXB0KTtcbiAgfVxuXG4gIGlmIChjb250ZW50VHlwZSAhPT0gbnVsbCkge1xuICAgIHhtbEh0dHBSZXF1ZXN0LnNldFJlcXVlc3RIZWFkZXIoQ09OVEVOVF9UWVBFLCBjb250ZW50VHlwZSk7XG4gIH1cblxuICAoY29udGVudCAhPT0gbnVsbCkgP1xuICAgIHhtbEh0dHBSZXF1ZXN0LnNlbmQoY29udGVudCkgOlxuICAgICAgeG1sSHR0cFJlcXVlc3Quc2VuZCgpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGdldCxcbiAgcG9zdCxcbiAgcmVxdWVzdFxufVxuXG5mdW5jdGlvbiB1bmRlcndyaXRlQWNjZXB0KGhlYWRlcnMsIGFjY2VwdCkge1xuICBjb25zdCBuYW1lID0gQUNDRVBULCAgLy8vXG4gICAgICAgIHZhbHVlID0gYWNjZXB0OyAvLy9cblxuICB1bmRlcndyaXRlKGhlYWRlcnMsIG5hbWUsIHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gdW5kZXJ3cml0ZUNvbnRlbnRUeXBlKGhlYWRlcnMsIGNvbnRlbnRUWXBlKSB7XG4gIGNvbnN0IG5hbWUgPSBDT05URU5UX1RZUEUsICAvLy9cbiAgICAgICAgdmFsdWUgPSBjb250ZW50VFlwZTsgLy8vXG5cbiAgdW5kZXJ3cml0ZShoZWFkZXJzLCBuYW1lLCB2YWx1ZSk7XG59XG4iXSwibmFtZXMiOlsiZ2V0IiwicG9zdCIsInJlcXVlc3QiLCJob3N0IiwidXJpIiwicXVlcnkiLCJoZWFkZXJzIiwiY2FsbGJhY2siLCJ1bmRlZmluZWQiLCJtZXRob2QiLCJhY2NlcHQiLCJjb250ZW50IiwidW5kZXJ3cml0ZUFjY2VwdCIsImNvbnRlbnRUeXBlIiwidW5kZXJ3cml0ZUNvbnRlbnRUeXBlIiwidXJsIiwieG1sSHR0cFJlcXVlc3QiLCJYTUxIdHRwUmVxdWVzdCIsImpzb24iLCJqc29uU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsIm9ucmVhZHlzdGF0ZWNoYW5nZSIsInJlYWR5U3RhdGUiLCJzdGF0dXMiLCJyZXNwb25zZSIsInN0YXR1c0NvZGUiLCJwYXJzZSIsImVycm9yIiwib3BlbiIsInNldFJlcXVlc3RIZWFkZXIiLCJzZW5kIiwibmFtZSIsInZhbHVlIiwiY29udGVudFRZcGUiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7UUFPSUEsR0FBRyxHQUFIQSxHQUFHO1FBZUhDLElBQUksR0FBSkEsSUFBSTtRQWtCSkMsT0FBTyxHQUFQQSxPQUFPOztBQXRDYyxHQUFjLENBQWQsVUFBYztBQUNYLEdBQVksQ0FBWixRQUFZO0FBQ04sR0FBaUIsQ0FBakIsYUFBaUI7QUFDWixHQUFtQixDQUFuQixLQUFtQjtTQUV0REYsR0FBRyxDQUFDRyxJQUFJLEVBQUVDLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBRSxDQUFDO0lBQ3hELEVBQUUsRUFBRUEsUUFBUSxLQUFLQyxTQUFTLEVBQUUsQ0FBQztRQUMzQkQsUUFBUSxHQUFHRCxPQUFPLENBQUUsQ0FB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
78
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYWpheC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgQUNDRVBULCBDT05URU5UX1RZUEUgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBHRVRfTUVUSE9ELCBQT1NUX01FVEhPRCB9IGZyb20gXCIuLi9tZXRob2RzXCI7XG5pbXBvcnQgeyBBUFBMSUNBVElPTl9KU09OX0NPTlRFTlRfVFlQRSB9IGZyb20gXCIuLi9jb250ZW50VHlwZXNcIjtcbmltcG9ydCB7IHVuZGVyd3JpdGUsIHVybEZyb21Ib3N0VVJJQW5kUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2h0dHBcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldChob3N0LCB1cmksIHF1ZXJ5LCBoZWFkZXJzLCBjYWxsYmFjaykge1xuICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgIGNhbGxiYWNrID0gaGVhZGVyczsgLy8vXG4gICAgaGVhZGVycyA9IHt9O1xuICB9XG5cbiAgY29uc3QgbWV0aG9kID0gR0VUX01FVEhPRCxcbiAgICAgICAgYWNjZXB0ID0gQVBQTElDQVRJT05fSlNPTl9DT05URU5UX1RZUEUsXG4gICAgICAgIGNvbnRlbnQgPSBudWxsO1xuXG4gIHVuZGVyd3JpdGVBY2NlcHRIZWFkZXIoaGVhZGVycywgYWNjZXB0KTtcblxuICByZXF1ZXN0KGhvc3QsIHVyaSwgcXVlcnksIG1ldGhvZCwgaGVhZGVycywgY29udGVudCwgY2FsbGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9zdChob3N0LCB1cmksIHF1ZXJ5LCBoZWFkZXJzLCBjb250ZW50LCBjYWxsYmFjaykge1xuICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgIGNhbGxiYWNrID0gY29udGVudDtcbiAgICBjb250ZW50ID0gaGVhZGVycztcbiAgICBoZWFkZXJzID0ge307XG4gIH1cblxuICBjb25zdCBtZXRob2QgPSBQT1NUX01FVEhPRCxcbiAgICAgICAgYWNjZXB0ID0gQVBQTElDQVRJT05fSlNPTl9DT05URU5UX1RZUEUsXG4gICAgICAgIGNvbnRlbnRUeXBlID0gQVBQTElDQVRJT05fSlNPTl9DT05URU5UX1RZUEU7XG5cbiAgdW5kZXJ3cml0ZUFjY2VwdEhlYWRlcihoZWFkZXJzLCBhY2NlcHQpO1xuXG4gIHVuZGVyd3JpdGVDb250ZW50VHlwZUhlYWRlcihoZWFkZXJzLCBjb250ZW50VHlwZSk7XG5cbiAgcmVxdWVzdChob3N0LCB1cmksIHF1ZXJ5LCBtZXRob2QsIGhlYWRlcnMsIGNvbnRlbnQsIGNhbGxiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcXVlc3QoaG9zdCwgdXJpLCBxdWVyeSwgbWV0aG9kLCBoZWFkZXJzLCBjb250ZW50LCBjYWxsYmFjaykge1xuICBjb25zdCB1cmwgPSB1cmxGcm9tSG9zdFVSSUFuZFF1ZXJ5KGhvc3QsIHVyaSwgcXVlcnkpLFxuICAgICAgICBhY2NlcHQgPSBoZWFkZXJzW0FDQ0VQVF0gfHwgbnVsbCxcbiAgICAgICAgY29udGVudFR5cGUgPSBoZWFkZXJzW0NPTlRFTlRfVFlQRV0gfHwgbnVsbCxcbiAgICAgICAgeG1sSHR0cFJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcblxuICBpZiAoY29udGVudFR5cGUgPT09IEFQUExJQ0FUSU9OX0pTT05fQ09OVEVOVF9UWVBFKSB7XG4gICAgY29uc3QganNvbiA9IGNvbnRlbnQsICAvLy9cbiAgICAgICAgICBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoanNvbik7XG5cbiAgICBjb250ZW50ID0ganNvblN0cmluZzsgIC8vL1xuICB9XG5cbiAgeG1sSHR0cFJlcXVlc3Qub25yZWFkeXN0YXRlY2hhbmdlID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgcmVhZHlTdGF0ZSwgc3RhdHVzLCByZXNwb25zZSB9ID0geG1sSHR0cFJlcXVlc3QsXG4gICAgICAgICAgc3RhdHVzQ29kZSA9IHN0YXR1cztcblxuICAgIGlmIChyZWFkeVN0YXRlID09IDQpIHtcbiAgICAgIGxldCBjb250ZW50ID0gcmVzcG9uc2U7XG5cbiAgICAgIGlmIChhY2NlcHQgPT09IEFQUExJQ0FUSU9OX0pTT05fQ09OVEVOVF9UWVBFKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QganNvblN0cmluZyA9IGNvbnRlbnQsICAvLy9cbiAgICAgICAgICAgICAgICBqc29uID0gSlNPTi5wYXJzZShqc29uU3RyaW5nKTtcblxuICAgICAgICAgIGNvbnRlbnQgPSBqc29uOyAgLy8vXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29udGVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY2FsbGJhY2soY29udGVudCwgc3RhdHVzQ29kZSk7XG4gICAgfVxuICB9O1xuXG4gIHhtbEh0dHBSZXF1ZXN0Lm9wZW4obWV0aG9kLCB1cmwpO1xuXG4gIGlmIChhY2NlcHQgIT09IG51bGwpIHtcbiAgICB4bWxIdHRwUmVxdWVzdC5zZXRSZXF1ZXN0SGVhZGVyKEFDQ0VQVCwgYWNjZXB0KTtcbiAgfVxuXG4gIGlmIChjb250ZW50VHlwZSAhPT0gbnVsbCkge1xuICAgIHhtbEh0dHBSZXF1ZXN0LnNldFJlcXVlc3RIZWFkZXIoQ09OVEVOVF9UWVBFLCBjb250ZW50VHlwZSk7XG4gIH1cblxuICAoY29udGVudCAhPT0gbnVsbCkgP1xuICAgIHhtbEh0dHBSZXF1ZXN0LnNlbmQoY29udGVudCkgOlxuICAgICAgeG1sSHR0cFJlcXVlc3Quc2VuZCgpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGdldCxcbiAgcG9zdCxcbiAgcmVxdWVzdFxufVxuXG5mdW5jdGlvbiB1bmRlcndyaXRlQWNjZXB0SGVhZGVyKGhlYWRlcnMsIGFjY2VwdCkge1xuICBjb25zdCBuYW1lID0gQUNDRVBULCAgLy8vXG4gICAgICAgIHZhbHVlID0gYWNjZXB0OyAvLy9cblxuICB1bmRlcndyaXRlKGhlYWRlcnMsIG5hbWUsIHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gdW5kZXJ3cml0ZUNvbnRlbnRUeXBlSGVhZGVyKGhlYWRlcnMsIGNvbnRlbnRUWXBlKSB7XG4gIGNvbnN0IG5hbWUgPSBDT05URU5UX1RZUEUsICAvLy9cbiAgICAgICAgdmFsdWUgPSBjb250ZW50VFlwZTsgLy8vXG5cbiAgdW5kZXJ3cml0ZShoZWFkZXJzLCBuYW1lLCB2YWx1ZSk7XG59XG4iXSwibmFtZXMiOlsiZ2V0IiwicG9zdCIsInJlcXVlc3QiLCJob3N0IiwidXJpIiwicXVlcnkiLCJoZWFkZXJzIiwiY2FsbGJhY2siLCJ1bmRlZmluZWQiLCJtZXRob2QiLCJhY2NlcHQiLCJjb250ZW50IiwidW5kZXJ3cml0ZUFjY2VwdEhlYWRlciIsImNvbnRlbnRUeXBlIiwidW5kZXJ3cml0ZUNvbnRlbnRUeXBlSGVhZGVyIiwidXJsIiwieG1sSHR0cFJlcXVlc3QiLCJYTUxIdHRwUmVxdWVzdCIsImpzb24iLCJqc29uU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsIm9ucmVhZHlzdGF0ZWNoYW5nZSIsInJlYWR5U3RhdGUiLCJzdGF0dXMiLCJyZXNwb25zZSIsInN0YXR1c0NvZGUiLCJwYXJzZSIsImVycm9yIiwib3BlbiIsInNldFJlcXVlc3RIZWFkZXIiLCJzZW5kIiwibmFtZSIsInZhbHVlIiwiY29udGVudFRZcGUiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7UUFPSUEsR0FBRyxHQUFIQSxHQUFHO1FBZUhDLElBQUksR0FBSkEsSUFBSTtRQWtCSkMsT0FBTyxHQUFQQSxPQUFPOztBQXRDYyxHQUFjLENBQWQsVUFBYztBQUNYLEdBQVksQ0FBWixRQUFZO0FBQ04sR0FBaUIsQ0FBakIsYUFBaUI7QUFDWixHQUFtQixDQUFuQixLQUFtQjtTQUV0REYsR0FBRyxDQUFDRyxJQUFJLEVBQUVDLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBRSxDQUFDO0lBQ3hELEVBQUUsRUFBRUEsUUFBUSxLQUFLQyxTQUFT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
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  exports.default = void 0;
6
6
  var _array = require("../utilities/array");
7
7
  var _defaults = require("../defaults");
8
+ var _constants = require("../constants");
8
9
  var _fileSystem = require("../utilities/fileSystem");
9
10
  function _instanceof(left, right) {
10
11
  if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
@@ -13,6 +14,10 @@ function _instanceof(left, right) {
13
14
  return left instanceof right;
14
15
  }
15
16
  }
17
+ var _typeof = function(obj) {
18
+ "@swc/helpers - typeof";
19
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
20
+ };
16
21
  if (!globalThis.rc) {
17
22
  globalThis.rc = _rc;
18
23
  }
@@ -22,28 +27,13 @@ var _default = {
22
27
  };
23
28
  exports.default = _default;
24
29
  var baseExtension = _defaults.DEFAULT_RC_BASE_EXTENSION;
25
- function _rc() {
26
- var environmentNameOrArgv = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null;
27
- var environment1, environmentName, environmentNameOrArgvArgv = _instanceof(environmentNameOrArgv, Array);
28
- if (environmentNameOrArgvArgv) {
29
- var argv = environmentNameOrArgv; ///
30
- environmentName = environmentNameFromArgv(argv);
31
- } else {
32
- environmentName = environmentNameOrArgv; ///
33
- }
34
- var json = readRCFile(), environments = json.environments;
35
- if (environmentName === null) {
36
- var firstEnvironment = (0, _array).first(environments);
37
- environment1 = firstEnvironment; ///
38
- } else {
39
- environment1 = environments.find(function(environment) {
40
- var name = environment.name, found = name === environmentName;
41
- return found;
42
- });
43
- }
44
- delete environment1.name;
45
- Object.assign(rc, environment1);
46
- return environment1;
30
+ function _rc(environmentName) {
31
+ environmentName = environmentName || environmentNameFromArgv() || environmentNameFromEnv(); ///
32
+ var json = readRCFile();
33
+ var environment = findEnvironment(json, environmentName);
34
+ json = environment; ///
35
+ replaceEnvironmentVariables(json);
36
+ Object.assign(rc, environment);
47
37
  }
48
38
  function readRCFile() {
49
39
  var rcFilePath = rcFilePathFromNothing(), rcFileContent = (0, _fileSystem).readFile(rcFilePath), json = JSON.parse(rcFileContent);
@@ -73,8 +63,7 @@ function checkRCFileExists() {
73
63
  function createVacuousRCFile() {
74
64
  var json = {
75
65
  "environments": [
76
- {
77
- }
66
+ {}
78
67
  ]
79
68
  };
80
69
  writeRCFile(json);
@@ -90,9 +79,34 @@ Object.assign(_rc, {
90
79
  createVacuousRCFile: createVacuousRCFile,
91
80
  setRCBaseExtension: setRCBaseExtension
92
81
  });
93
- function environmentNameFromArgv(argv) {
82
+ function findEnvironment(json, environmentName) {
83
+ var environment1;
84
+ var environments = json.environments;
85
+ if (environmentName === null) {
86
+ var firstEnvironment = (0, _array).first(environments);
87
+ environment1 = firstEnvironment; ///
88
+ } else {
89
+ environment1 = environments.find(function(environment) {
90
+ var name = environment.name;
91
+ if (name === environmentName) {
92
+ return true;
93
+ }
94
+ });
95
+ }
96
+ delete environment1.name;
97
+ return environment1;
98
+ }
99
+ function rcFilePathFromNothing() {
100
+ var rcFilePath = "./.".concat(baseExtension, "rc");
101
+ return rcFilePath;
102
+ }
103
+ function environmentNameFromEnv() {
104
+ var environmentName = process.env[_constants.ENVIRONMENT] || null;
105
+ return environmentName;
106
+ }
107
+ function environmentNameFromArgv() {
94
108
  var environmentName = null;
95
- argv.find(function(argument) {
109
+ process.argv.find(function(argument) {
96
110
  var matches = argument.match(/--environment=(.+)/), found = matches !== null;
97
111
  if (found) {
98
112
  var secondMatch = (0, _array).second(matches);
@@ -102,9 +116,73 @@ function environmentNameFromArgv(argv) {
102
116
  });
103
117
  return environmentName;
104
118
  }
105
- function rcFilePathFromNothing() {
106
- var rcFilePath = "./.".concat(baseExtension, "rc");
107
- return rcFilePath;
119
+ function replaceEnvironmentVariable(string) {
120
+ var value = null;
121
+ var stringUpperCase = isStringUpperCase(string);
122
+ if (stringUpperCase) {
123
+ var name = string; ///
124
+ value = process.env[name] || null;
125
+ }
126
+ return value;
127
+ }
128
+ function replaceEnvironmentVariables(environment) {
129
+ var json = environment;
130
+ var jsonArray = isJSONArray(json), jsonObject = isJSONObject(json);
131
+ if (false) {
132
+ ///
133
+ } else if (jsonArray) {
134
+ var array = json, length = array.length;
135
+ for(var index = 0; index < length; index++){
136
+ var json1 = array[index], jsonString = isJSONString(json1);
137
+ if (jsonString) {
138
+ var string = json1, value = replaceEnvironmentVariable(string);
139
+ if (value !== null) {
140
+ array[index] = value;
141
+ }
142
+ }
143
+ }
144
+ } else if (jsonObject) {
145
+ var object = json; ///
146
+ for(var name in object){
147
+ var json2 = object[name], jsonString1 = isJSONString(json2);
148
+ if (jsonString1) {
149
+ var string1 = json2, value1 = replaceEnvironmentVariable(string1); ///
150
+ if (value1 !== null) {
151
+ object[name] = value1;
152
+ }
153
+ } else {
154
+ replaceEnvironmentVariables(json2);
155
+ }
156
+ }
157
+ }
158
+ }
159
+ function isJSONArray(json) {
160
+ var jsonArray = _instanceof(json, Array);
161
+ return jsonArray;
162
+ }
163
+ function isJSONObject(json) {
164
+ var jsonArray = isJSONArray(json), jsonPrimitive = isJSONPrimitive(json), jsonObject = !jsonArray && !jsonPrimitive;
165
+ return jsonObject;
166
+ }
167
+ function isJSONString(json) {
168
+ var jsonString = (typeof json === "undefined" ? "undefined" : _typeof(json)) === _constants.STRING;
169
+ return jsonString;
170
+ }
171
+ function isJSONNumber(json) {
172
+ var jsonNumber = (typeof json === "undefined" ? "undefined" : _typeof(json)) === _constants.NUMBER;
173
+ return jsonNumber;
174
+ }
175
+ function isJSONBoolean(json) {
176
+ var jsonBoolean = (typeof json === "undefined" ? "undefined" : _typeof(json)) === _constants.BOOLEAN;
177
+ return jsonBoolean;
178
+ }
179
+ function isJSONPrimitive(json) {
180
+ var jsonString = isJSONString(json), jsonNumber = isJSONNumber(json), jsonBoolean = isJSONBoolean(json), jsonPrimitive = jsonString || jsonNumber || jsonBoolean;
181
+ return jsonPrimitive;
182
+ }
183
+ function isStringUpperCase(string) {
184
+ var upperCaseString = string.toUpperCase(), stringUpperCase = string === upperCaseString;
185
+ return stringUpperCase;
108
186
  }
109
187
 
110
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29uZmlndXJhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZmlyc3QsIHNlY29uZCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IERFRkFVTFRfUkNfQkFTRV9FWFRFTlNJT04gfSBmcm9tIFwiLi4vZGVmYXVsdHNcIjtcbmltcG9ydCB7IHJlYWRGaWxlLCB3cml0ZUZpbGUsIGNoZWNrRmlsZUV4aXN0cyB9IGZyb20gXCIuLi91dGlsaXRpZXMvZmlsZVN5c3RlbVwiO1xuXG5pZiAoIWdsb2JhbFRoaXMucmMpIHtcbiAgZ2xvYmFsVGhpcy5yYyA9IF9yYztcbn1cblxuY29uc3QgeyByYyB9ID0gZ2xvYmFsVGhpcztcblxuZXhwb3J0IGRlZmF1bHQge1xuICByY1xufTtcblxubGV0IGJhc2VFeHRlbnNpb24gPSBERUZBVUxUX1JDX0JBU0VfRVhURU5TSU9OO1xuXG5mdW5jdGlvbiBfcmMoZW52aXJvbm1lbnROYW1lT3JBcmd2ID0gbnVsbCkge1xuICBsZXQgZW52aXJvbm1lbnQsXG4gICAgICBlbnZpcm9ubWVudE5hbWUsXG4gICAgICBlbnZpcm9ubWVudE5hbWVPckFyZ3ZBcmd2ID0gKGVudmlyb25tZW50TmFtZU9yQXJndiBpbnN0YW5jZW9mIEFycmF5KTtcblxuICBpZiAoZW52aXJvbm1lbnROYW1lT3JBcmd2QXJndikge1xuICAgIGNvbnN0IGFyZ3YgPSBlbnZpcm9ubWVudE5hbWVPckFyZ3Y7IC8vL1xuXG4gICAgZW52aXJvbm1lbnROYW1lID0gZW52aXJvbm1lbnROYW1lRnJvbUFyZ3YoYXJndik7XG4gIH0gZWxzZSB7XG4gICAgZW52aXJvbm1lbnROYW1lID0gZW52aXJvbm1lbnROYW1lT3JBcmd2OyAgLy8vXG4gIH1cblxuICBjb25zdCBqc29uID0gcmVhZFJDRmlsZSgpLFxuICAgICAgICB7IGVudmlyb25tZW50cyB9ID0ganNvbjtcblxuICBpZiAoZW52aXJvbm1lbnROYW1lID09PSBudWxsKSB7XG4gICAgY29uc3QgZmlyc3RFbnZpcm9ubWVudCA9IGZpcnN0KGVudmlyb25tZW50cyk7XG5cbiAgICBlbnZpcm9ubWVudCA9IGZpcnN0RW52aXJvbm1lbnQ7IC8vL1xuICB9IGVsc2Uge1xuICAgIGVudmlyb25tZW50ID0gZW52aXJvbm1lbnRzLmZpbmQoKGVudmlyb25tZW50KSA9PiB7XG4gICAgICBjb25zdCB7IG5hbWUgfSA9IGVudmlyb25tZW50LFxuICAgICAgICAgICAgZm91bmQgPSAobmFtZSA9PT0gZW52aXJvbm1lbnROYW1lKTtcblxuICAgICAgcmV0dXJuIGZvdW5kO1xuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlIGVudmlyb25tZW50Lm5hbWU7XG5cbiAgT2JqZWN0LmFzc2lnbihyYywgZW52aXJvbm1lbnQpO1xuXG4gIHJldHVybiBlbnZpcm9ubWVudDtcbn1cblxuZnVuY3Rpb24gcmVhZFJDRmlsZSgpIHtcbiAgY29uc3QgcmNGaWxlUGF0aCA9IHJjRmlsZVBhdGhGcm9tTm90aGluZygpLFxuICAgICAgICByY0ZpbGVDb250ZW50ID0gcmVhZEZpbGUocmNGaWxlUGF0aCksXG4gICAgICAgIGpzb24gPSBKU09OLnBhcnNlKHJjRmlsZUNvbnRlbnQpO1xuXG4gIHJldHVybiBqc29uOyAgICAgIFxufVxuXG5mdW5jdGlvbiB3cml0ZVJDRmlsZShqc29uKSB7XG4gIGNvbnN0IHJjRmlsZVBhdGggPSByY0ZpbGVQYXRoRnJvbU5vdGhpbmcoKSxcbiAgICAgICAgcmRGaWxlQ29udGVudCA9IEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIFwiICBcIik7XG5cbiAgd3JpdGVGaWxlKHJjRmlsZVBhdGgsIHJkRmlsZUNvbnRlbnQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVSQ0ZpbGUoYWRkZWRQcm9wZXJ0aWVzLCAuLi5kZWxldGVkUHJvcGVydHlOYW1lcykge1xuICBsZXQganNvbiA9IHJlYWRSQ0ZpbGUoKTtcblxuICBpZiAoYWRkZWRQcm9wZXJ0aWVzKSB7XG4gICAgT2JqZWN0LmFzc2lnbihqc29uLCBhZGRlZFByb3BlcnRpZXMpO1xuICB9XG5cbiAgZGVsZXRlZFByb3BlcnR5TmFtZXMuZm9yRWFjaCgoZGVsZXRlZFByb3BlcnR5TmFtZSkgPT4ge1xuICAgIGRlbGV0ZSBqc29uW2RlbGV0ZWRQcm9wZXJ0eU5hbWVdO1xuICB9KTtcblxuICB3cml0ZVJDRmlsZShqc29uKTsgICAgICBcbn1cblxuZnVuY3Rpb24gY2hlY2tSQ0ZpbGVFeGlzdHMoKSB7XG4gIGNvbnN0IHJjRmlsZVBhdGggPSByY0ZpbGVQYXRoRnJvbU5vdGhpbmcoKSxcbiAgICAgICAgcmNGaWxlRXhpc3RzID0gY2hlY2tGaWxlRXhpc3RzKHJjRmlsZVBhdGgpO1xuXG4gIHJldHVybiByY0ZpbGVFeGlzdHM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVZhY3VvdXNSQ0ZpbGUoKSB7XG4gIGNvbnN0IGpzb24gPSB7XG4gICAgXCJlbnZpcm9ubWVudHNcIjogW1xuICAgICAge31cbiAgICBdXG4gIH07XG5cbiAgd3JpdGVSQ0ZpbGUoanNvbik7XG59XG5cbmZ1bmN0aW9uIHNldFJDQmFzZUV4dGVuc2lvbihyY0Jhc2VFeHRlbnNpb24pIHsgYmFzZUV4dGVuc2lvbiA9IHJjQmFzZUV4dGVuc2lvbjsgfVxuXG5PYmplY3QuYXNzaWduKF9yYywge1xuICByZWFkUkNGaWxlLFxuICB3cml0ZVJDRmlsZSxcbiAgdXBkYXRlUkNGaWxlLFxuICBjaGVja1JDRmlsZUV4aXN0cyxcbiAgY3JlYXRlVmFjdW91c1JDRmlsZSxcbiAgc2V0UkNCYXNlRXh0ZW5zaW9uXG59KTtcblxuZnVuY3Rpb24gZW52aXJvbm1lbnROYW1lRnJvbUFyZ3YoYXJndikge1xuICBsZXQgZW52aXJvbm1lbnROYW1lID0gbnVsbDtcblxuICBhcmd2LmZpbmQoKGFyZ3VtZW50KSA9PiB7ICAvLy9cbiAgICBjb25zdCBtYXRjaGVzID0gYXJndW1lbnQubWF0Y2goLy0tZW52aXJvbm1lbnQ9KC4rKS8pLFxuICAgICAgICAgIGZvdW5kID0gKG1hdGNoZXMgIT09IG51bGwpO1xuXG4gICAgaWYgKGZvdW5kKSB7XG4gICAgICBjb25zdCBzZWNvbmRNYXRjaCA9IHNlY29uZChtYXRjaGVzKTtcblxuICAgICAgZW52aXJvbm1lbnROYW1lID0gc2Vjb25kTWF0Y2g7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvdW5kO1xuICB9KTtcblxuICByZXR1cm4gZW52aXJvbm1lbnROYW1lO1xufVxuXG5mdW5jdGlvbiByY0ZpbGVQYXRoRnJvbU5vdGhpbmcoKSB7XG4gIGNvbnN0IHJjRmlsZVBhdGggPSBgLi8uJHtiYXNlRXh0ZW5zaW9ufXJjYDtcblxuICByZXR1cm4gcmNGaWxlUGF0aDtcbn1cbiJdLCJuYW1lcyI6WyJnbG9iYWxUaGlzIiwicmMiLCJfcmMiLCJiYXNlRXh0ZW5zaW9uIiwiZW52aXJvbm1lbnROYW1lT3JBcmd2IiwiZW52aXJvbm1lbnQiLCJlbnZpcm9ubWVudE5hbWUiLCJlbnZpcm9ubWVudE5hbWVPckFyZ3ZBcmd2IiwiQXJyYXkiLCJhcmd2IiwiZW52aXJvbm1lbnROYW1lRnJvbUFyZ3YiLCJqc29uIiwicmVhZFJDRmlsZSIsImVudmlyb25tZW50cyIsImZpcnN0RW52aXJvbm1lbnQiLCJmaW5kIiwibmFtZSIsImZvdW5kIiwiT2JqZWN0IiwiYXNzaWduIiwicmNGaWxlUGF0aCIsInJjRmlsZVBhdGhGcm9tTm90aGluZyIsInJjRmlsZUNvbnRlbnQiLCJKU09OIiwicGFyc2UiLCJ3cml0ZVJDRmlsZSIsInJkRmlsZUNvbnRlbnQiLCJzdHJpbmdpZnkiLCJ1cGRhdGVSQ0ZpbGUiLCJhZGRlZFByb3BlcnRpZXMiLCJkZWxldGVkUHJvcGVydHlOYW1lcyIsImZvckVhY2giLCJkZWxldGVkUHJvcGVydHlOYW1lIiwiY2hlY2tSQ0ZpbGVFeGlzdHMiLCJyY0ZpbGVFeGlzdHMiLCJjcmVhdGVWYWN1b3VzUkNGaWxlIiwic2V0UkNCYXNlRXh0ZW5zaW9uIiwicmNCYXNlRXh0ZW5zaW9uIiwiYXJndW1lbnQi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
188
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29uZmlndXJhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZmlyc3QsIHNlY29uZCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IERFRkFVTFRfUkNfQkFTRV9FWFRFTlNJT04gfSBmcm9tIFwiLi4vZGVmYXVsdHNcIjtcbmltcG9ydCB7IFNUUklORywgTlVNQkVSLCBCT09MRUFOLCBFTlZJUk9OTUVOVCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHJlYWRGaWxlLCB3cml0ZUZpbGUsIGNoZWNrRmlsZUV4aXN0cyB9IGZyb20gXCIuLi91dGlsaXRpZXMvZmlsZVN5c3RlbVwiO1xuXG5pZiAoIWdsb2JhbFRoaXMucmMpIHtcbiAgZ2xvYmFsVGhpcy5yYyA9IF9yYztcbn1cblxuY29uc3QgeyByYyB9ID0gZ2xvYmFsVGhpcztcblxuZXhwb3J0IGRlZmF1bHQge1xuICByY1xufTtcblxubGV0IGJhc2VFeHRlbnNpb24gPSBERUZBVUxUX1JDX0JBU0VfRVhURU5TSU9OO1xuXG5mdW5jdGlvbiBfcmMoZW52aXJvbm1lbnROYW1lKSB7XG4gIGVudmlyb25tZW50TmFtZSA9IGVudmlyb25tZW50TmFtZSB8fCBlbnZpcm9ubWVudE5hbWVGcm9tQXJndigpIHx8IGVudmlyb25tZW50TmFtZUZyb21FbnYoKTsgLy8vXG5cbiAgbGV0IGpzb24gPSByZWFkUkNGaWxlKCk7XG5cbiAgY29uc3QgZW52aXJvbm1lbnQgPSBmaW5kRW52aXJvbm1lbnQoanNvbiwgZW52aXJvbm1lbnROYW1lKTtcblxuICBqc29uID0gZW52aXJvbm1lbnQ7IC8vL1xuXG4gIHJlcGxhY2VFbnZpcm9ubWVudFZhcmlhYmxlcyhqc29uKTtcblxuICBPYmplY3QuYXNzaWduKHJjLCBlbnZpcm9ubWVudCk7XG59XG5cbmZ1bmN0aW9uIHJlYWRSQ0ZpbGUoKSB7XG4gIGNvbnN0IHJjRmlsZVBhdGggPSByY0ZpbGVQYXRoRnJvbU5vdGhpbmcoKSxcbiAgICAgICAgcmNGaWxlQ29udGVudCA9IHJlYWRGaWxlKHJjRmlsZVBhdGgpLFxuICAgICAgICBqc29uID0gSlNPTi5wYXJzZShyY0ZpbGVDb250ZW50KTtcblxuICByZXR1cm4ganNvbjsgICAgICBcbn1cblxuZnVuY3Rpb24gd3JpdGVSQ0ZpbGUoanNvbikge1xuICBjb25zdCByY0ZpbGVQYXRoID0gcmNGaWxlUGF0aEZyb21Ob3RoaW5nKCksXG4gICAgICAgIHJkRmlsZUNvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCBcIiAgXCIpO1xuXG4gIHdyaXRlRmlsZShyY0ZpbGVQYXRoLCByZEZpbGVDb250ZW50KTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlUkNGaWxlKGFkZGVkUHJvcGVydGllcywgLi4uZGVsZXRlZFByb3BlcnR5TmFtZXMpIHtcbiAgbGV0IGpzb24gPSByZWFkUkNGaWxlKCk7XG5cbiAgaWYgKGFkZGVkUHJvcGVydGllcykge1xuICAgIE9iamVjdC5hc3NpZ24oanNvbiwgYWRkZWRQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIGRlbGV0ZWRQcm9wZXJ0eU5hbWVzLmZvckVhY2goKGRlbGV0ZWRQcm9wZXJ0eU5hbWUpID0+IHtcbiAgICBkZWxldGUganNvbltkZWxldGVkUHJvcGVydHlOYW1lXTtcbiAgfSk7XG5cbiAgd3JpdGVSQ0ZpbGUoanNvbik7ICAgICAgXG59XG5cbmZ1bmN0aW9uIGNoZWNrUkNGaWxlRXhpc3RzKCkge1xuICBjb25zdCByY0ZpbGVQYXRoID0gcmNGaWxlUGF0aEZyb21Ob3RoaW5nKCksXG4gICAgICAgIHJjRmlsZUV4aXN0cyA9IGNoZWNrRmlsZUV4aXN0cyhyY0ZpbGVQYXRoKTtcblxuICByZXR1cm4gcmNGaWxlRXhpc3RzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVWYWN1b3VzUkNGaWxlKCkge1xuICBjb25zdCBqc29uID0ge1xuICAgIFwiZW52aXJvbm1lbnRzXCI6IFtcbiAgICAgIHt9XG4gICAgXVxuICB9O1xuXG4gIHdyaXRlUkNGaWxlKGpzb24pO1xufVxuXG5mdW5jdGlvbiBzZXRSQ0Jhc2VFeHRlbnNpb24ocmNCYXNlRXh0ZW5zaW9uKSB7IGJhc2VFeHRlbnNpb24gPSByY0Jhc2VFeHRlbnNpb247IH1cblxuT2JqZWN0LmFzc2lnbihfcmMsIHtcbiAgcmVhZFJDRmlsZSxcbiAgd3JpdGVSQ0ZpbGUsXG4gIHVwZGF0ZVJDRmlsZSxcbiAgY2hlY2tSQ0ZpbGVFeGlzdHMsXG4gIGNyZWF0ZVZhY3VvdXNSQ0ZpbGUsXG4gIHNldFJDQmFzZUV4dGVuc2lvblxufSk7XG5cbmZ1bmN0aW9uIGZpbmRFbnZpcm9ubWVudChqc29uLCBlbnZpcm9ubWVudE5hbWUpIHtcbiAgbGV0IGVudmlyb25tZW50O1xuICBjb25zdCB7IGVudmlyb25tZW50cyB9ID0ganNvbjtcblxuICBpZiAoZW52aXJvbm1lbnROYW1lID09PSBudWxsKSB7XG4gICAgY29uc3QgZmlyc3RFbnZpcm9ubWVudCA9IGZpcnN0KGVudmlyb25tZW50cyk7XG5cbiAgICBlbnZpcm9ubWVudCA9IGZpcnN0RW52aXJvbm1lbnQ7IC8vL1xuICB9IGVsc2Uge1xuICAgIGVudmlyb25tZW50ID0gZW52aXJvbm1lbnRzLmZpbmQoKGVudmlyb25tZW50KSA9PiB7XG4gICAgICBjb25zdCB7IG5hbWUgfSA9IGVudmlyb25tZW50O1xuXG4gICAgICBpZihuYW1lID09PSBlbnZpcm9ubWVudE5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBkZWxldGUgZW52aXJvbm1lbnQubmFtZVxuXG4gIHJldHVybiBlbnZpcm9ubWVudDtcbn1cblxuZnVuY3Rpb24gcmNGaWxlUGF0aEZyb21Ob3RoaW5nKCkge1xuICBjb25zdCByY0ZpbGVQYXRoID0gYC4vLiR7YmFzZUV4dGVuc2lvbn1yY2A7XG5cbiAgcmV0dXJuIHJjRmlsZVBhdGg7XG59XG5cbmZ1bmN0aW9uIGVudmlyb25tZW50TmFtZUZyb21FbnYoKSB7XG4gIGNvbnN0IGVudmlyb25tZW50TmFtZSA9IHByb2Nlc3MuZW52W0VOVklST05NRU5UXSB8fCBudWxsO1xuXG4gIHJldHVybiBlbnZpcm9ubWVudE5hbWU7XG59XG5cbmZ1bmN0aW9uIGVudmlyb25tZW50TmFtZUZyb21Bcmd2KCkge1xuICBsZXQgZW52aXJvbm1lbnROYW1lID0gbnVsbDtcblxuICBwcm9jZXNzLmFyZ3YuZmluZCgoYXJndW1lbnQpID0+IHsgIC8vL1xuICAgIGNvbnN0IG1hdGNoZXMgPSBhcmd1bWVudC5tYXRjaCgvLS1lbnZpcm9ubWVudD0oLispLyksXG4gICAgICAgICAgZm91bmQgPSAobWF0Y2hlcyAhPT0gbnVsbCk7XG5cbiAgICBpZiAoZm91bmQpIHtcbiAgICAgIGNvbnN0IHNlY29uZE1hdGNoID0gc2Vjb25kKG1hdGNoZXMpO1xuXG4gICAgICBlbnZpcm9ubWVudE5hbWUgPSBzZWNvbmRNYXRjaDtcbiAgICB9XG5cbiAgICByZXR1cm4gZm91bmQ7XG4gIH0pO1xuXG4gIHJldHVybiBlbnZpcm9ubWVudE5hbWU7XG59XG5cbmZ1bmN0aW9uIHJlcGxhY2VFbnZpcm9ubWVudFZhcmlhYmxlKHN0cmluZykge1xuICBsZXQgdmFsdWUgPSBudWxsO1xuXG4gIGNvbnN0IHN0cmluZ1VwcGVyQ2FzZSA9IGlzU3RyaW5nVXBwZXJDYXNlKHN0cmluZyk7XG5cbiAgaWYgKHN0cmluZ1VwcGVyQ2FzZSkge1xuICAgIGNvbnN0IG5hbWUgPSBzdHJpbmc7ICAvLy9cblxuICAgIHZhbHVlID0gcHJvY2Vzcy5lbnZbbmFtZV0gfHwgbnVsbDtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gcmVwbGFjZUVudmlyb25tZW50VmFyaWFibGVzKGVudmlyb25tZW50KSB7XG4gIGxldCBqc29uID0gZW52aXJvbm1lbnQ7XG5cbiAgY29uc3QganNvbkFycmF5ID0gaXNKU09OQXJyYXkoanNvbiksXG4gICAgICAgIGpzb25PYmplY3QgPSBpc0pTT05PYmplY3QoanNvbik7XG5cbiAgaWYgKGZhbHNlKSB7XG4gICAgLy8vXG4gIH0gZWxzZSBpZiAoanNvbkFycmF5KSB7XG4gICAgY29uc3QgYXJyYXkgPSBqc29uLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IGpzb24gPSBhcnJheVtpbmRleF0sXG4gICAgICAgICAgICBqc29uU3RyaW5nID0gaXNKU09OU3RyaW5nKGpzb24pO1xuXG4gICAgICBpZiAoanNvblN0cmluZykge1xuICAgICAgICBjb25zdCBzdHJpbmcgPSBqc29uLFxuICAgICAgICAgICAgICB2YWx1ZSA9IHJlcGxhY2VFbnZpcm9ubWVudFZhcmlhYmxlKHN0cmluZyk7XG5cbiAgICAgICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgYXJyYXlbaW5kZXhdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoanNvbk9iamVjdCkge1xuICAgIGNvbnN0IG9iamVjdCA9IGpzb247ICAvLy9cblxuICAgIGZvciAobGV0IG5hbWUgaW4gb2JqZWN0KSB7XG4gICAgICBjb25zdCBqc29uID0gb2JqZWN0W25hbWVdLFxuICAgICAgICAgICAganNvblN0cmluZyA9IGlzSlNPTlN0cmluZyhqc29uKTtcblxuICAgICAgaWYgKGpzb25TdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgc3RyaW5nID0ganNvbiwgIC8vL1xuICAgICAgICAgICAgICB2YWx1ZSA9IHJlcGxhY2VFbnZpcm9ubWVudFZhcmlhYmxlKHN0cmluZyk7ICAvLy9cblxuICAgICAgICBpZiAodmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICBvYmplY3RbbmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlICB7XG4gICAgICAgIHJlcGxhY2VFbnZpcm9ubWVudFZhcmlhYmxlcyhqc29uKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNKU09OQXJyYXkoanNvbikge1xuICBjb25zdCBqc29uQXJyYXkgPSAoanNvbiBpbnN0YW5jZW9mIEFycmF5KTtcblxuICByZXR1cm4ganNvbkFycmF5O1xufVxuXG5mdW5jdGlvbiBpc0pTT05PYmplY3QoanNvbikge1xuICBjb25zdCBqc29uQXJyYXkgPSBpc0pTT05BcnJheShqc29uKSxcbiAgICAgICAganNvblByaW1pdGl2ZSA9IGlzSlNPTlByaW1pdGl2ZShqc29uKSxcbiAgICAgICAganNvbk9iamVjdCA9ICghanNvbkFycmF5ICYmICEganNvblByaW1pdGl2ZSk7XG5cbiAgcmV0dXJuIGpzb25PYmplY3Q7XG59XG5cbmZ1bmN0aW9uIGlzSlNPTlN0cmluZyhqc29uKSB7XG4gIGNvbnN0IGpzb25TdHJpbmcgPSAodHlwZW9mIGpzb24gPT09IFNUUklORyk7XG5cbiAgcmV0dXJuIGpzb25TdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGlzSlNPTk51bWJlcihqc29uKSB7XG4gIGNvbnN0IGpzb25OdW1iZXIgPSAodHlwZW9mIGpzb24gPT09IE5VTUJFUik7XG5cbiAgcmV0dXJuIGpzb25OdW1iZXI7XG59XG5cbmZ1bmN0aW9uIGlzSlNPTkJvb2xlYW4oanNvbikge1xuICBjb25zdCBqc29uQm9vbGVhbiA9ICh0eXBlb2YganNvbiA9PT0gQk9PTEVBTik7XG5cbiAgcmV0dXJuIGpzb25Cb29sZWFuO1xufVxuXG5mdW5jdGlvbiBpc0pTT05QcmltaXRpdmUoanNvbikge1xuICBjb25zdCBqc29uU3RyaW5nID0gaXNKU09OU3RyaW5nKGpzb24pLFxuICAgICAgICBqc29uTnVtYmVyID0gaXNKU09OTnVtYmVyKGpzb24pLFxuICAgICAgICBqc29uQm9vbGVhbiA9IGlzSlNPTkJvb2xlYW4oanNvbiksXG4gICAgICAgIGpzb25QcmltaXRpdmUgPSAoanNvblN0cmluZyB8fCBqc29uTnVtYmVyIHx8IGpzb25Cb29sZWFuKTtcblxuICByZXR1cm4ganNvblByaW1pdGl2ZTtcbn1cblxuZnVuY3Rpb24gaXNTdHJpbmdVcHBlckNhc2Uoc3RyaW5nKSB7XG4gIGNvbnN0IHVwcGVyQ2FzZVN0cmluZyA9IHN0cmluZy50b1VwcGVyQ2FzZSgpLFxuICAgICAgICBzdHJpbmdVcHBlckNhc2UgPSAoc3RyaW5nID09PSB1cHBlckNhc2VTdHJpbmcpO1xuXG4gIHJldHVybiBzdHJpbmdVcHBlckNhc2U7XG59XG4iXSwibmFtZXMiOlsiZ2xvYmFsVGhpcyIsInJjIiwiX3JjIiwiYmFzZUV4dGVuc2lvbiIsImVudmlyb25tZW50TmFtZSIsImVudmlyb25tZW50TmFtZUZyb21Bcmd2IiwiZW52aXJvbm1lbnROYW1lRnJvbUVudiIsImpzb24iLCJyZWFkUkNGaWxlIiwiZW52aXJvbm1lbnQiLCJmaW5kRW52aXJvbm1lbnQiLCJyZXBsYWNlRW52aXJvbm1lbnRWYXJpYWJsZXMiLCJPYmplY3QiLCJhc3NpZ24iLCJyY0ZpbGVQYXRoIiwicmNGaWxlUGF0aEZyb21Ob3RoaW5nIiwicmNGaWxlQ29udGVudCIsIkpTT04iLCJwYXJzZSIsIndyaXRlUkNGaWxlIiwicmRGaWxlQ29udGVudCIsInN0cmluZ2lmeSIsInVwZGF0ZVJDRmlsZSIsImFkZGVkUHJvcGVydGllcyIsImRlbGV0ZWRQcm9wZXJ0eU5hbWVzIiwiZm9yRWFjaCIsImRlbGV0ZWRQcm9wZXJ0eU5hbWUiLCJjaGVja1JDRmlsZUV4aXN0cyIsInJjRmlsZUV4aXN0cyIsImNyZWF0ZVZhY3VvdXNSQ0ZpbGUiLCJzZXRSQ0Jhc2VFeHRlbnNpb24iLCJyY0Jhc2VFeHRlbnNpb24iLCJlbnZpcm9ubWVudHMiLCJmaXJzdEVudmlyb25tZW50IiwiZmluZCIsIm5hbWUiLCJwcm9jZXNzIiwiZW52IiwiYXJndiIsImFyZ3VtZW50IiwibWF0Y2hlcyIsIm1hdGNoIiwiZm91bmQiLCJzZWNvbmRNYXRjaCIsInJlcGxhY2VFbnZpcm9ubWVudFZhcmlhYmxlIiwic3RyaW5nIiwidmFsdWUiLCJzdHJpbmdVcHBlckNhc2UiLCJpc1N0cmluZ1VwcGVyQ2FzZSIsImpzb25BcnJheSIsImlzSlNPTkFycmF5IiwianNvbk9iamVjdCIsImlzSlNPTk9iamVjdCIsImFycmF5IiwibGVuZ3RoIiwiaW5kZXgiLCJqc29uU3RyaW5nIiwiaXNKU09OU3RyaW5nIiwib2JqZWN0IiwiQXJyYXkiLCJqc29uUHJpbWl0aXZlIiwiaXNKU09OUHJpbWl0aXZlIiwiaXNKU09OTnVtYmVyIiwianNvbk51bWJlciIsImlzSlNPTkJvb2xlYW4iLCJqc29uQm9vbGVhbiIsInVwcGVyQ2FzZVN0cmluZyIsInRvVXBwZXJDYXNlIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUVrQixHQUFvQixDQUFwQixNQUFvQjtBQUNSLEdBQWEsQ0FBYixTQUFhO0FBQ0YsR0FBYyxDQUFkLFVBQWM7QUFDZCxHQUF5QixDQUF6QixXQUF5Qjs7Ozs7Ozs7Ozs7O0FBRTlFLEVBQUUsR0FBR0EsVUFBVSxDQUFDQyxFQUFFLEVBQUUsQ0FBQztJQUNuQkQsVUFBVSxDQUFDQyxFQUFFLEdBQUdDLEdBQUc7QUFDckIsQ0FBQztBQUVELEdBQUssQ0FBR0QsRUFBRSxHQUFLRCxVQUFVLENBQWpCQyxFQUFFO2VBRUssQ0FBQztJQUNkQSxFQUFFLEVBQUZBLEVBQUU7QUFDSixDQUFDOztBQUVELEdBQUcsQ0FBQ0UsYUFBYSxHQWR5QixTQUFhO1NBZ0I5Q0QsR0FBRyxDQUFDRSxlQUFlLEVBQUUsQ0FBQztJQUM3QkEsZUFBZSxHQUFHQSxlQUFlLElBQUlDLHVCQUF1QixNQUFNQyxzQkFBc0IsR0FBSSxDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7SUFFL0YsR0FBRyxDQUFDQyxJQUFJLEdBQUdDLFVBQVU7SUFFckIsR0FBSyxDQUFDQyxXQUFXLEdBQUdDLGVBQWUsQ0FBQ0gsSUFBSSxFQUFFSCxlQUFlO0lBRXpERyxJQUFJLEdBQUdFLFdBQVcsQ0FBRSxDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7SUFFdkJFLDJCQUEyQixDQUFDSixJQUFJO0lBRWhDSyxNQUFNLENBQUNDLE1BQU0sQ0FBQ1osRUFBRSxFQUFFUSxXQUFXO0FBQy9CLENBQUM7U0FFUUQsVUFBVSxHQUFHLENBQUM7SUFDckIsR0FBSyxDQUFDTSxVQUFVLEdBQUdDLHFCQUFxQixJQUNsQ0MsYUFBYSxPQTlCZ0MsV0FBeUIsV0E4QjdDRixVQUFVLEdBQ25DUCxJQUFJLEdBQUdVLElBQUksQ0FBQ0MsS0FBSyxDQUFDRixhQUFhO0lBRXJDLE1BQU0sQ0FBQ1QsSUFBSTtBQUNiLENBQUM7U0FFUVksV0FBVyxDQUFDWixJQUFJLEVBQUUsQ0FBQztJQUMxQixHQUFLLENBQUNPLFVBQVUsR0FBR0MscUJBQXFCLElBQ2xDSyxhQUFhLEdBQUdILElBQUksQ0FBQ0ksU0FBUyxDQUFDZCxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUk7UUF0Q0YsV0FBeUIsWUF3Q2xFTyxVQUFVLEVBQUVNLGFBQWE7QUFDckMsQ0FBQztTQUVRRSxZQUFZLENBQUNDLGVBQWUsRUFBMkIsQ0FBQztJQUExQixHQUFHQyxDQUFILEdBQXVCLENBQXZCLElBQXVCLEdBQXZCLFNBQXVCLENBQXZCLE1BQXVCLEVBQXBCQSxvQkFBb0IsR0FBdkIsR0FBdUIsT0FBdkIsSUFBdUIsR0FBdkIsQ0FBdUIsR0FBdkIsSUFBdUIsR0FBdkIsQ0FBdUIsT0FBdkIsSUFBdUIsR0FBdkIsQ0FBdUIsRUFBdkIsSUFBdUIsR0FBdkIsSUFBdUIsRUFBdkIsSUFBdUIsR0FBdkIsQ0FBQztRQUFFQSxvQkFBb0IsQ0FBdkIsSUFBdUIsR0FBdkIsQ0FBdUIsSUFBdkIsU0FBdUIsQ0FBdkIsSUFBdUI7SUFBRCxDQUFDO0lBQzVELEdBQUcsQ0FBQ2pCLElBQUksR0FBR0MsVUFBVTtJQUVyQixFQUFFLEVBQUVlLGVBQWUsRUFBRSxDQUFDO1FBQ3BCWCxNQUFNLENBQUNDLE1BQU0sQ0FBQ04sSUFBSSxFQUFFZ0IsZUFBZTtJQUNyQyxDQUFDO0lBRURDLG9CQUFvQixDQUFDQyxPQUFPLENBQUMsUUFBUSxDQUFQQyxtQkFBbUIsRUFBSyxDQUFDO1FBQ3JELE1BQU0sQ0FBQ25CLElBQUksQ0FBQ21CLG1CQUFtQjtJQUNqQyxDQUFDO0lBRURQLFdBQVcsQ0FBQ1osSUFBSTtBQUNsQixDQUFDO1NBRVFvQixpQkFBaUIsR0FBRyxDQUFDO0lBQzVCLEdBQUssQ0FBQ2IsVUFBVSxHQUFHQyxxQkFBcUIsSUFDbENhLFlBQVksT0EzRGlDLFdBQXlCLGtCQTJEdkNkLFVBQVU7SUFFL0MsTUFBTSxDQUFDYyxZQUFZO0FBQ3JCLENBQUM7U0FFUUMsbUJBQW1CLEdBQUcsQ0FBQztJQUM5QixHQUFLLENBQUN0QixJQUFJLEdBQUcsQ0FBQztRQUNaLENBQWMsZUFBRSxDQUFDO1lBQ2YsQ0FBQyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRFksV0FBVyxDQUFDWixJQUFJO0FBQ2xCLENBQUM7U0FFUXVCLGtCQUFrQixDQUFDQyxlQUFlLEVBQUUsQ0FBQztJQUFDNUIsYUFBYSxHQUFHNEIsZUFBZTtBQUFFLENBQUM7QUFFakZuQixNQUFNLENBQUNDLE1BQU0sQ0FBQ1gsR0FBRyxFQUFFLENBQUM7SUFDbEJNLFVBQVUsRUFBVkEsVUFBVTtJQUNWVyxXQUFXLEVBQVhBLFdBQVc7SUFDWEcsWUFBWSxFQUFaQSxZQUFZO0lBQ1pLLGlCQUFpQixFQUFqQkEsaUJBQWlCO0lBQ2pCRSxtQkFBbUIsRUFBbkJBLG1CQUFtQjtJQUNuQkMsa0JBQWtCLEVBQWxCQSxrQkFBa0I7QUFDcEIsQ0FBQztTQUVRcEIsZUFBZSxDQUFDSCxJQUFJLEVBQUVILGVBQWUsRUFBRSxDQUFDO0lBQy9DLEdBQUcsQ0FBQ0ssWUFBVztJQUNmLEdBQUssQ0FBR3VCLFlBQVksR0FBS3pCLElBQUksQ0FBckJ5QixZQUFZO0lBRXBCLEVBQUUsRUFBRTVCLGVBQWUsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUM3QixHQUFLLENBQUM2QixnQkFBZ0IsT0E3RkksTUFBb0IsUUE2RmZELFlBQVk7UUFFM0N2QixZQUFXLEdBQUd3QixnQkFBZ0IsQ0FBRSxDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7SUFDckMsQ0FBQyxNQUFNLENBQUM7UUFDTnhCLFlBQVcsR0FBR3VCLFlBQVksQ0FBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBUHpCLFdBQVcsRUFBSyxDQUFDO1lBQ2hELEdBQUssQ0FBRzBCLElBQUksR0FBSzFCLFdBQVcsQ0FBcEIwQixJQUFJO1lBRVosRUFBRSxFQUFDQSxJQUFJLEtBQUsvQixlQUFlLEVBQUUsQ0FBQztnQkFDNUIsTUFBTSxDQUFDLElBQUk7WUFDYixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUNLLFlBQVcsQ0FBQzBCLElBQUk7SUFFdkIsTUFBTSxDQUFDMUIsWUFBVztBQUNwQixDQUFDO1NBRVFNLHFCQUFxQixHQUFHLENBQUM7SUFDaEMsR0FBSyxDQUFDRCxVQUFVLEdBQUksQ0FBRyxLQUFnQixNQUFFLENBQWhCWCxhQUFhLEVBQUMsQ0FBRTtJQUV6QyxNQUFNLENBQUNXLFVBQVU7QUFDbkIsQ0FBQztTQUVRUixzQkFBc0IsR0FBRyxDQUFDO0lBQ2pDLEdBQUssQ0FBQ0YsZUFBZSxHQUFHZ0MsT0FBTyxDQUFDQyxHQUFHLENBcEhnQixVQUFjLGlCQW9IYixJQUFJO0lBRXhELE1BQU0sQ0FBQ2pDLGVBQWU7QUFDeEIsQ0FBQztTQUVRQyx1QkFBdUIsR0FBRyxDQUFDO0lBQ2xDLEdBQUcsQ0FBQ0QsZUFBZSxHQUFHLElBQUk7SUFFMUJnQyxPQUFPLENBQUNFLElBQUksQ0FBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBUEssUUFBUSxFQUFLLENBQUM7UUFDL0IsR0FBSyxDQUFDQyxPQUFPLEdBQUdELFFBQVEsQ0FBQ0UsS0FBSyx3QkFDeEJDLEtBQUssR0FBSUYsT0FBTyxLQUFLLElBQUk7UUFFL0IsRUFBRSxFQUFFRSxLQUFLLEVBQUUsQ0FBQztZQUNWLEdBQUssQ0FBQ0MsV0FBVyxPQW5JTyxNQUFvQixTQW1JakJILE9BQU87WUFFbENwQyxlQUFlLEdBQUd1QyxXQUFXO1FBQy9CLENBQUM7UUFFRCxNQUFNLENBQUNELEtBQUs7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDdEMsZUFBZTtBQUN4QixDQUFDO1NBRVF3QywwQkFBMEIsQ0FBQ0MsTUFBTSxFQUFFLENBQUM7SUFDM0MsR0FBRyxDQUFDQyxLQUFLLEdBQUcsSUFBSTtJQUVoQixHQUFLLENBQUNDLGVBQWUsR0FBR0MsaUJBQWlCLENBQUNILE1BQU07SUFFaEQsRUFBRSxFQUFFRSxlQUFlLEVBQUUsQ0FBQztRQUNwQixHQUFLLENBQUNaLElBQUksR0FBR1UsTUFBTSxDQUFHLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztRQUV6QkMsS0FBSyxHQUFHVixPQUFPLENBQUNDLEdBQUcsQ0FBQ0YsSUFBSSxLQUFLLElBQUk7SUFDbkMsQ0FBQztJQUVELE1BQU0sQ0FBQ1csS0FBSztBQUNkLENBQUM7U0FFUW5DLDJCQUEyQixDQUFDRixXQUFXLEVBQUUsQ0FBQztJQUNqRCxHQUFHLENBQUNGLElBQUksR0FBR0UsV0FBVztJQUV0QixHQUFLLENBQUN3QyxTQUFTLEdBQUdDLFdBQVcsQ0FBQzNDLElBQUksR0FDNUI0QyxVQUFVLEdBQUdDLFlBQVksQ0FBQzdDLElBQUk7SUFFcEMsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ1YsRUFBRyxBQUFILENBQUc7SUFDTCxDQUFDLE1BQU0sRUFBRSxFQUFFMEMsU0FBUyxFQUFFLENBQUM7UUFDckIsR0FBSyxDQUFDSSxLQUFLLEdBQUc5QyxJQUFJLEVBQ1orQyxNQUFNLEdBQUdELEtBQUssQ0FBQ0MsTUFBTTtRQUUzQixHQUFHLENBQUUsR0FBRyxDQUFDQyxLQUFLLEdBQUcsQ0FBQyxFQUFFQSxLQUFLLEdBQUdELE1BQU0sRUFBRUMsS0FBSyxHQUFJLENBQUM7WUFDNUMsR0FBSyxDQUFDaEQsS0FBSSxHQUFHOEMsS0FBSyxDQUFDRSxLQUFLLEdBQ2xCQyxVQUFVLEdBQUdDLFlBQVksQ0FBQ2xELEtBQUk7WUFFcEMsRUFBRSxFQUFFaUQsVUFBVSxFQUFFLENBQUM7Z0JBQ2YsR0FBSyxDQUFDWCxNQUFNLEdBQUd0QyxLQUFJLEVBQ2J1QyxLQUFLLEdBQUdGLDBCQUEwQixDQUFDQyxNQUFNO2dCQUUvQyxFQUFFLEVBQUVDLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztvQkFDbkJPLEtBQUssQ0FBQ0UsS0FBSyxJQUFJVCxLQUFLO2dCQUN0QixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLE1BQU0sRUFBRSxFQUFFSyxVQUFVLEVBQUUsQ0FBQztRQUN0QixHQUFLLENBQUNPLE1BQU0sR0FBR25ELElBQUksQ0FBRyxDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7UUFFekIsR0FBRyxDQUFFLEdBQUcsQ0FBQzRCLElBQUksSUFBSXVCLE1BQU0sQ0FBRSxDQUFDO1lBQ3hCLEdBQUssQ0FBQ25ELEtBQUksR0FBR21ELE1BQU0sQ0FBQ3ZCLElBQUksR0FDbEJxQixXQUFVLEdBQUdDLFlBQVksQ0FBQ2xELEtBQUk7WUFFcEMsRUFBRSxFQUFFaUQsV0FBVSxFQUFFLENBQUM7Z0JBQ2YsR0FBSyxDQUFDWCxPQUFNLEdBQUd0QyxLQUFJLEVBQ2J1QyxNQUFLLEdBQUdGLDBCQUEwQixDQUFDQyxPQUFNLEVBQUksQ0FBRyxBQUFILEVBQUcsQUFBSCxDQUFHO2dCQUV0RCxFQUFFLEVBQUVDLE1BQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztvQkFDbkJZLE1BQU0sQ0FBQ3ZCLElBQUksSUFBSVcsTUFBSztnQkFDdEIsQ0FBQztZQUNILENBQUMsTUFBTyxDQUFDO2dCQUNQbkMsMkJBQTJCLENBQUNKLEtBQUk7WUFDbEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztTQUVRMkMsV0FBVyxDQUFDM0MsSUFBSSxFQUFFLENBQUM7SUFDMUIsR0FBSyxDQUFDMEMsU0FBUyxHQUFJMUMsV0FBcUIsQ0FBckJBLElBQUksRUFBWW9ELEtBQUs7SUFFeEMsTUFBTSxDQUFDVixTQUFTO0FBQ2xCLENBQUM7U0FFUUcsWUFBWSxDQUFDN0MsSUFBSSxFQUFFLENBQUM7SUFDM0IsR0FBSyxDQUFDMEMsU0FBUyxHQUFHQyxXQUFXLENBQUMzQyxJQUFJLEdBQzVCcUQsYUFBYSxHQUFHQyxlQUFlLENBQUN0RCxJQUFJLEdBQ3BDNEMsVUFBVSxJQUFLRixTQUFTLEtBQU1XLGFBQWE7SUFFakQsTUFBTSxDQUFDVCxVQUFVO0FBQ25CLENBQUM7U0FFUU0sWUFBWSxDQUFDbEQsSUFBSSxFQUFFLENBQUM7SUFDM0IsR0FBSyxDQUFDaUQsVUFBVSxXQUFXakQsSUFBSSxpQ0FBWCxPQUFXLENBQUpBLElBQUksT0F2Tm9CLFVBQWM7SUF5TmpFLE1BQU0sQ0FBQ2lELFVBQVU7QUFDbkIsQ0FBQztTQUVRTSxZQUFZLENBQUN2RCxJQUFJLEVBQUUsQ0FBQztJQUMzQixHQUFLLENBQUN3RCxVQUFVLFdBQVd4RCxJQUFJLGlDQUFYLE9BQVcsQ0FBSkEsSUFBSSxPQTdOb0IsVUFBYztJQStOakUsTUFBTSxDQUFDd0QsVUFBVTtBQUNuQixDQUFDO1NBRVFDLGFBQWEsQ0FBQ3pELElBQUksRUFBRSxDQUFDO0lBQzVCLEdBQUssQ0FBQzBELFdBQVcsV0FBVzFELElBQUksaUNBQVgsT0FBVyxDQUFKQSxJQUFJLE9Bbk9tQixVQUFjO0lBcU9qRSxNQUFNLENBQUMwRCxXQUFXO0FBQ3BCLENBQUM7U0FFUUosZUFBZSxDQUFDdEQsSUFBSSxFQUFFLENBQUM7SUFDOUIsR0FBSyxDQUFDaUQsVUFBVSxHQUFHQyxZQUFZLENBQUNsRCxJQUFJLEdBQzlCd0QsVUFBVSxHQUFHRCxZQUFZLENBQUN2RCxJQUFJLEdBQzlCMEQsV0FBVyxHQUFHRCxhQUFhLENBQUN6RCxJQUFJLEdBQ2hDcUQsYUFBYSxHQUFJSixVQUFVLElBQUlPLFVBQVUsSUFBSUUsV0FBVztJQUU5RCxNQUFNLENBQUNMLGFBQWE7QUFDdEIsQ0FBQztTQUVRWixpQkFBaUIsQ0FBQ0gsTUFBTSxFQUFFLENBQUM7SUFDbEMsR0FBSyxDQUFDcUIsZUFBZSxHQUFHckIsTUFBTSxDQUFDc0IsV0FBVyxJQUNwQ3BCLGVBQWUsR0FBSUYsTUFBTSxLQUFLcUIsZUFBZTtJQUVuRCxNQUFNLENBQUNuQixlQUFlO0FBQ3hCLENBQUMifQ==
@@ -14,23 +14,24 @@ var _array = require("../utilities/array");
14
14
  var _constants = require("../constants");
15
15
  var _characters = require("../characters");
16
16
  function overwrite(headers, name, value) {
17
- var ownPropertyNames = Object.getOwnPropertyNames(headers), lowerCaseName = name.toLowerCase(), overwritten = ownPropertyNames.some(function(ownPropertyName) {
18
- var lowerCaseOwnPropertyName = ownPropertyName.toLowerCase();
19
- if (lowerCaseOwnPropertyName === lowerCaseName) {
20
- headers[ownPropertyName] = value;
17
+ var lowerCaseName = name.toLowerCase(), existingNames = Object.getOwnPropertyNames(headers), existingName1 = existingNames.find(function(existingName) {
18
+ var existingLowerCaseName = existingName.toLowerCase();
19
+ if (existingLowerCaseName === lowerCaseName) {
21
20
  return true;
22
21
  }
23
- });
24
- if (!overwritten) {
25
- headers[name] = value;
22
+ }) || null;
23
+ if (existingName1 !== null) {
24
+ headers[existingName1] = value;
26
25
  }
27
26
  }
28
27
  function underwrite(headers, name, value) {
29
- var ownPropertyNames = Object.getOwnPropertyNames(headers), lowercaseName = name.toLowerCase(), lowerCaseOwnPropertyNames = ownPropertyNames.map(function(ownPropertyName) {
30
- var lowerCaseOwnPropertyName = ownPropertyName.toLowerCase();
31
- return lowerCaseOwnPropertyName;
32
- }), lowerCaseOwnPropertyNamesIncludesLowercaseName = lowerCaseOwnPropertyNames.includes(lowercaseName);
33
- if (!lowerCaseOwnPropertyNamesIncludesLowercaseName) {
28
+ var lowerCaseName = name.toLowerCase(), existingNames = Object.getOwnPropertyNames(headers), existingName2 = existingNames.find(function(existingName) {
29
+ var existingLowerCaseName = existingName.toLowerCase();
30
+ if (existingLowerCaseName === lowerCaseName) {
31
+ return true;
32
+ }
33
+ }) || null;
34
+ if (existingName2 === null) {
34
35
  headers[name] = value;
35
36
  }
36
37
  }
@@ -77,4 +78,4 @@ var _default = {
77
78
  };
78
79
  exports.default = _default;
79
80
 
80
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaHR0cC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc2Vjb25kIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgQ09MT05fQ0hBUkFDVEVSLCBBTVBFUlNBTkRfQ0hBUkFDVEVSIH0gZnJvbSBcIi4uL2NoYXJhY3RlcnNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIG92ZXJ3cml0ZShoZWFkZXJzLCBuYW1lLCB2YWx1ZSkge1xuICBjb25zdCBvd25Qcm9wZXJ0eU5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoaGVhZGVycyksXG4gICAgICAgIGxvd2VyQ2FzZU5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCksXG4gICAgICAgIG92ZXJ3cml0dGVuID0gb3duUHJvcGVydHlOYW1lcy5zb21lKChvd25Qcm9wZXJ0eU5hbWUpID0+IHtcbiAgICAgICAgICBjb25zdCBsb3dlckNhc2VPd25Qcm9wZXJ0eU5hbWUgPSBvd25Qcm9wZXJ0eU5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICAgIGlmIChsb3dlckNhc2VPd25Qcm9wZXJ0eU5hbWUgPT09IGxvd2VyQ2FzZU5hbWUpIHtcbiAgICAgICAgICAgIGhlYWRlcnNbb3duUHJvcGVydHlOYW1lXSA9IHZhbHVlO1xuXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gIGlmICghb3ZlcndyaXR0ZW4pIHtcbiAgICBoZWFkZXJzW25hbWVdID0gdmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuZGVyd3JpdGUoaGVhZGVycywgbmFtZSwgdmFsdWUpIHtcbiAgY29uc3Qgb3duUHJvcGVydHlOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGhlYWRlcnMpLFxuICAgICAgICBsb3dlcmNhc2VOYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICBsb3dlckNhc2VPd25Qcm9wZXJ0eU5hbWVzID0gb3duUHJvcGVydHlOYW1lcy5tYXAoKG93blByb3BlcnR5TmFtZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGxvd2VyQ2FzZU93blByb3BlcnR5TmFtZSA9IG93blByb3BlcnR5TmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgICAgcmV0dXJuIGxvd2VyQ2FzZU93blByb3BlcnR5TmFtZTtcbiAgICAgICAgfSksXG4gICAgICAgIGxvd2VyQ2FzZU93blByb3BlcnR5TmFtZXNJbmNsdWRlc0xvd2VyY2FzZU5hbWUgPSBsb3dlckNhc2VPd25Qcm9wZXJ0eU5hbWVzLmluY2x1ZGVzKGxvd2VyY2FzZU5hbWUpO1xuXG4gIGlmICghbG93ZXJDYXNlT3duUHJvcGVydHlOYW1lc0luY2x1ZGVzTG93ZXJjYXNlTmFtZSkge1xuICAgIGhlYWRlcnNbbmFtZV0gPSB2YWx1ZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9ydEZyb21Ib3N0KGhvc3QpIHtcbiAgbGV0IHBvcnQ7XG5cbiAgY29uc3QgbWF0Y2hlcyA9IGhvc3QubWF0Y2goL15odHRwcz86XFwvXFwvKFteXFwvXSspLyksXG4gICAgICAgIHNlY29uZE1hdGNoID0gc2Vjb25kKG1hdGNoZXMpLFxuICAgICAgICBpbmRleCA9IHNlY29uZE1hdGNoLmluZGV4T2YoQ09MT05fQ0hBUkFDVEVSKTtcblxuICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgY29uc3Qgc2VjdXJlID0gc2VjdXJlRnJvbUhvc3QoaG9zdCk7XG5cbiAgICBwb3J0ID0gc2VjdXJlID8gNDQzIDogODA7IC8vL1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHN0YXJ0ID0gaW5kZXggKyAxLFxuICAgICAgICAgIHBvcnRTdHJpbmcgPSBzZWNvbmRNYXRjaC5zdWJzdHJpbmcoc3RhcnQpO1xuXG4gICAgcG9ydCA9IE51bWJlcihwb3J0U3RyaW5nKTtcbiAgfVxuXG4gIHJldHVybiBwb3J0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VjdXJlRnJvbUhvc3QoaG9zdCkge1xuICBjb25zdCBzZWN1cmUgPSAvXmh0dHBzOlxcL1xcLy8udGVzdChob3N0KTtcblxuICByZXR1cm4gc2VjdXJlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaG9zdG5hbWVGcm9tSG9zdChob3N0KSB7XG4gIGNvbnN0IG1hdGNoZXMgPSBob3N0Lm1hdGNoKC9eaHR0cHM/OlxcL1xcLyhbXjpcXC9dKykvKSxcbiAgICAgICAgc2Vjb25kTWF0Y2ggPSBzZWNvbmQobWF0Y2hlcyksXG4gICAgICAgIGhvc3RuYW1lID0gc2Vjb25kTWF0Y2g7IC8vL1xuXG4gIHJldHVybiBob3N0bmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHF1ZXJ5U3RyaW5nRnJvbVF1ZXJ5KHF1ZXJ5KSB7XG4gIGNvbnN0IG5hbWVzID0gT2JqZWN0LmtleXMocXVlcnkpLFxuICAgICAgICBuYW1lc0xlbmd0aCA9IG5hbWVzLmxlbmd0aCxcbiAgICAgICAgbGFzdEluZGV4ID0gbmFtZXNMZW5ndGggLSAxLFxuICAgICAgICBxdWVyeVN0cmluZyA9IG5hbWVzLnJlZHVjZSgocXVlcnlTdHJpbmcsIG5hbWUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBxdWVyeVtuYW1lXSxcbiAgICAgICAgICAgICAgICBlbmNvZGVkTmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChuYW1lKSxcbiAgICAgICAgICAgICAgICBlbmNvZGVkVmFsdWUgPSBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpLFxuICAgICAgICAgICAgICAgIGFtcGVyc2FuZE9yTm90aGluZyA9IChpbmRleCAhPT0gbGFzdEluZGV4KSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTVBFUlNBTkRfQ0hBUkFDVEVSIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU1QVFlfU1RSSU5HO1xuICBcbiAgICAgICAgICBxdWVyeVN0cmluZyArPSBgJHtlbmNvZGVkTmFtZX09JHtlbmNvZGVkVmFsdWV9JHthbXBlcnNhbmRPck5vdGhpbmd9YDtcbiAgXG4gICAgICAgICAgcmV0dXJuIHF1ZXJ5U3RyaW5nO1xuICAgICAgICB9LCBFTVBUWV9TVFJJTkcpO1xuXG4gIHJldHVybiBxdWVyeVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybEZyb21Ib3N0VVJJQW5kUXVlcnkoaG9zdCwgdXJpLCBxdWVyeSkge1xuICBjb25zdCBxdWVyeVN0cmluZyA9IHF1ZXJ5U3RyaW5nRnJvbVF1ZXJ5KHF1ZXJ5KSxcbiAgICAgICAgdXJsID0gKHF1ZXJ5U3RyaW5nID09PSBFTVBUWV9TVFJJTkcpID9cbiAgICAgICAgICAgICAgICBgJHtob3N0fSR7dXJpfWAgOlxuICAgICAgICAgICAgICAgICAgYCR7aG9zdH0ke3VyaX0/JHtxdWVyeVN0cmluZ31gO1xuXG4gIHJldHVybiB1cmw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgb3ZlcndyaXRlLFxuICB1bmRlcndyaXRlLFxuICBwb3J0RnJvbUhvc3QsXG4gIHNlY3VyZUZyb21Ib3N0LFxuICBob3N0bmFtZUZyb21Ib3N0LFxuICBxdWVyeVN0cmluZ0Zyb21RdWVyeSxcbiAgdXJsRnJvbUhvc3RVUklBbmRRdWVyeVxufTtcbiJdLCJuYW1lcyI6WyJvdmVyd3JpdGUiLCJ1bmRlcndyaXRlIiwicG9ydEZyb21Ib3N0Iiwic2VjdXJlRnJvbUhvc3QiLCJob3N0bmFtZUZyb21Ib3N0IiwicXVlcnlTdHJpbmdGcm9tUXVlcnkiLCJ1cmxGcm9tSG9zdFVSSUFuZFF1ZXJ5IiwiaGVhZGVycyIsIm5hbWUiLCJ2YWx1ZSIsIm93blByb3BlcnR5TmFtZXMiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwibG93ZXJDYXNlTmFtZSIsInRvTG93ZXJDYXNlIiwib3ZlcndyaXR0ZW4iLCJzb21lIiwib3duUHJvcGVydHlOYW1lIiwibG93ZXJDYXNlT3duUHJvcGVydHlOYW1lIiwibG93ZXJjYXNlTmFtZSIsImxvd2VyQ2FzZU93blByb3BlcnR5TmFtZXMiLCJtYXAiLCJsb3dlckNhc2VPd25Qcm9wZXJ0eU5hbWVzSW5jbHVkZXNMb3dlcmNhc2VOYW1lIiwiaW5jbHVkZXMiLCJob3N0IiwicG9ydCIsIm1hdGNoZXMiLCJtYXRjaCIsInNlY29uZE1hdGNoIiwiaW5kZXgiLCJpbmRleE9mIiwic2VjdXJlIiwic3RhcnQiLCJwb3J0U3RyaW5nIiwic3Vic3RyaW5nIiwiTnVtYmVyIiwidGVzdCIsImhvc3RuYW1lIiwicXVlcnkiLCJuYW1lcyIsImtleXMiLCJuYW1lc0xlbmd0aCIsImxlbmd0aCIsImxhc3RJbmRleCIsInF1ZXJ5U3RyaW5nIiwicmVkdWNlIiwiZW5jb2RlZE5hbWUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJlbmNvZGVkVmFsdWUiLCJhbXBlcnNhbmRPck5vdGhpbmciLCJ1cmkiLCJ1cmwiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7UUFNSUEsU0FBUyxHQUFUQSxTQUFTO1FBa0JUQyxVQUFVLEdBQVZBLFVBQVU7UUFlVkMsWUFBWSxHQUFaQSxZQUFZO1FBcUJaQyxjQUFjLEdBQWRBLGNBQWM7UUFNZEMsZ0JBQWdCLEdBQWhCQSxnQkFBZ0I7UUFRaEJDLG9CQUFvQixHQUFwQkEsb0JBQW9CO1FBb0JwQkMsc0JBQXNCLEdBQXRCQSxzQkFBc0I7O0FBNUZmLEdBQW9CLENBQXBCLE1BQW9CO0FBQ2QsR0FBYyxDQUFkLFVBQWM7QUFDVSxHQUFlLENBQWYsV0FBZTtTQUVwRE4sU0FBUyxDQUFDTyxPQUFPLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFLENBQUM7SUFDL0MsR0FBSyxDQUFDQyxnQkFBZ0IsR0FBR0MsTUFBTSxDQUFDQyxtQkFBbUIsQ0FBQ0wsT0FBTyxHQUNyRE0sYUFBYSxHQUFHTCxJQUFJLENBQUNNLFdBQVcsSUFDaENDLFdBQVcsR0FBR0wsZ0JBQWdCLENBQUNNLElBQUksQ0FBQyxRQUFR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
81
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaHR0cC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc2Vjb25kIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgQ09MT05fQ0hBUkFDVEVSLCBBTVBFUlNBTkRfQ0hBUkFDVEVSIH0gZnJvbSBcIi4uL2NoYXJhY3RlcnNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIG92ZXJ3cml0ZShoZWFkZXJzLCBuYW1lLCB2YWx1ZSkge1xuICBjb25zdCBsb3dlckNhc2VOYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICBleGlzdGluZ05hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoaGVhZGVycyksICAvLy9cbiAgICAgICAgZXhpc3RpbmdOYW1lID0gZXhpc3RpbmdOYW1lcy5maW5kKChleGlzdGluZ05hbWUpID0+IHtcbiAgICAgICAgICBjb25zdCBleGlzdGluZ0xvd2VyQ2FzZU5hbWUgPSBleGlzdGluZ05hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICAgIGlmIChleGlzdGluZ0xvd2VyQ2FzZU5hbWUgPT09IGxvd2VyQ2FzZU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSkgfHwgbnVsbDtcblxuICBpZiAoZXhpc3RpbmdOYW1lICE9PSBudWxsKSB7XG4gICAgaGVhZGVyc1tleGlzdGluZ05hbWVdID0gdmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuZGVyd3JpdGUoaGVhZGVycywgbmFtZSwgdmFsdWUpIHtcbiAgY29uc3QgbG93ZXJDYXNlTmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgZXhpc3RpbmdOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGhlYWRlcnMpLCAgLy8vXG4gICAgICAgIGV4aXN0aW5nTmFtZSA9IGV4aXN0aW5nTmFtZXMuZmluZCgoZXhpc3RpbmdOYW1lKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdMb3dlckNhc2VOYW1lID0gZXhpc3RpbmdOYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgICBpZiAoZXhpc3RpbmdMb3dlckNhc2VOYW1lID09PSBsb3dlckNhc2VOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pIHx8IG51bGw7XG5cbiAgaWYgKGV4aXN0aW5nTmFtZSA9PT0gbnVsbCkge1xuICAgIGhlYWRlcnNbbmFtZV0gPSB2YWx1ZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9ydEZyb21Ib3N0KGhvc3QpIHtcbiAgbGV0IHBvcnQ7XG5cbiAgY29uc3QgbWF0Y2hlcyA9IGhvc3QubWF0Y2goL15odHRwcz86XFwvXFwvKFteXFwvXSspLyksXG4gICAgICAgIHNlY29uZE1hdGNoID0gc2Vjb25kKG1hdGNoZXMpLFxuICAgICAgICBpbmRleCA9IHNlY29uZE1hdGNoLmluZGV4T2YoQ09MT05fQ0hBUkFDVEVSKTtcblxuICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgY29uc3Qgc2VjdXJlID0gc2VjdXJlRnJvbUhvc3QoaG9zdCk7XG5cbiAgICBwb3J0ID0gc2VjdXJlID8gNDQzIDogODA7IC8vL1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHN0YXJ0ID0gaW5kZXggKyAxLFxuICAgICAgICAgIHBvcnRTdHJpbmcgPSBzZWNvbmRNYXRjaC5zdWJzdHJpbmcoc3RhcnQpO1xuXG4gICAgcG9ydCA9IE51bWJlcihwb3J0U3RyaW5nKTtcbiAgfVxuXG4gIHJldHVybiBwb3J0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VjdXJlRnJvbUhvc3QoaG9zdCkge1xuICBjb25zdCBzZWN1cmUgPSAvXmh0dHBzOlxcL1xcLy8udGVzdChob3N0KTtcblxuICByZXR1cm4gc2VjdXJlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaG9zdG5hbWVGcm9tSG9zdChob3N0KSB7XG4gIGNvbnN0IG1hdGNoZXMgPSBob3N0Lm1hdGNoKC9eaHR0cHM/OlxcL1xcLyhbXjpcXC9dKykvKSxcbiAgICAgICAgc2Vjb25kTWF0Y2ggPSBzZWNvbmQobWF0Y2hlcyksXG4gICAgICAgIGhvc3RuYW1lID0gc2Vjb25kTWF0Y2g7IC8vL1xuXG4gIHJldHVybiBob3N0bmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHF1ZXJ5U3RyaW5nRnJvbVF1ZXJ5KHF1ZXJ5KSB7XG4gIGNvbnN0IG5hbWVzID0gT2JqZWN0LmtleXMocXVlcnkpLFxuICAgICAgICBuYW1lc0xlbmd0aCA9IG5hbWVzLmxlbmd0aCxcbiAgICAgICAgbGFzdEluZGV4ID0gbmFtZXNMZW5ndGggLSAxLFxuICAgICAgICBxdWVyeVN0cmluZyA9IG5hbWVzLnJlZHVjZSgocXVlcnlTdHJpbmcsIG5hbWUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBxdWVyeVtuYW1lXSxcbiAgICAgICAgICAgICAgICBlbmNvZGVkTmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChuYW1lKSxcbiAgICAgICAgICAgICAgICBlbmNvZGVkVmFsdWUgPSBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpLFxuICAgICAgICAgICAgICAgIGFtcGVyc2FuZE9yTm90aGluZyA9IChpbmRleCAhPT0gbGFzdEluZGV4KSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTVBFUlNBTkRfQ0hBUkFDVEVSIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU1QVFlfU1RSSU5HO1xuICBcbiAgICAgICAgICBxdWVyeVN0cmluZyArPSBgJHtlbmNvZGVkTmFtZX09JHtlbmNvZGVkVmFsdWV9JHthbXBlcnNhbmRPck5vdGhpbmd9YDtcbiAgXG4gICAgICAgICAgcmV0dXJuIHF1ZXJ5U3RyaW5nO1xuICAgICAgICB9LCBFTVBUWV9TVFJJTkcpO1xuXG4gIHJldHVybiBxdWVyeVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybEZyb21Ib3N0VVJJQW5kUXVlcnkoaG9zdCwgdXJpLCBxdWVyeSkge1xuICBjb25zdCBxdWVyeVN0cmluZyA9IHF1ZXJ5U3RyaW5nRnJvbVF1ZXJ5KHF1ZXJ5KSxcbiAgICAgICAgdXJsID0gKHF1ZXJ5U3RyaW5nID09PSBFTVBUWV9TVFJJTkcpID9cbiAgICAgICAgICAgICAgICBgJHtob3N0fSR7dXJpfWAgOlxuICAgICAgICAgICAgICAgICAgYCR7aG9zdH0ke3VyaX0/JHtxdWVyeVN0cmluZ31gO1xuXG4gIHJldHVybiB1cmw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgb3ZlcndyaXRlLFxuICB1bmRlcndyaXRlLFxuICBwb3J0RnJvbUhvc3QsXG4gIHNlY3VyZUZyb21Ib3N0LFxuICBob3N0bmFtZUZyb21Ib3N0LFxuICBxdWVyeVN0cmluZ0Zyb21RdWVyeSxcbiAgdXJsRnJvbUhvc3RVUklBbmRRdWVyeVxufTtcbiJdLCJuYW1lcyI6WyJvdmVyd3JpdGUiLCJ1bmRlcndyaXRlIiwicG9ydEZyb21Ib3N0Iiwic2VjdXJlRnJvbUhvc3QiLCJob3N0bmFtZUZyb21Ib3N0IiwicXVlcnlTdHJpbmdGcm9tUXVlcnkiLCJ1cmxGcm9tSG9zdFVSSUFuZFF1ZXJ5IiwiaGVhZGVycyIsIm5hbWUiLCJ2YWx1ZSIsImxvd2VyQ2FzZU5hbWUiLCJ0b0xvd2VyQ2FzZSIsImV4aXN0aW5nTmFtZXMiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiZXhpc3RpbmdOYW1lIiwiZmluZCIsImV4aXN0aW5nTG93ZXJDYXNlTmFtZSIsImhvc3QiLCJwb3J0IiwibWF0Y2hlcyIsIm1hdGNoIiwic2Vjb25kTWF0Y2giLCJpbmRleCIsImluZGV4T2YiLCJzZWN1cmUiLCJzdGFydCIsInBvcnRTdHJpbmciLCJzdWJzdHJpbmciLCJOdW1iZXIiLCJ0ZXN0IiwiaG9zdG5hbWUiLCJxdWVyeSIsIm5hbWVzIiwia2V5cyIsIm5hbWVzTGVuZ3RoIiwibGVuZ3RoIiwibGFzdEluZGV4IiwicXVlcnlTdHJpbmciLCJyZWR1Y2UiLCJlbmNvZGVkTmFtZSIsImVuY29kZVVSSUNvbXBvbmVudCIsImVuY29kZWRWYWx1ZSIsImFtcGVyc2FuZE9yTm90aGluZyIsInVyaSIsInVybCJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7OztRQU1JQSxTQUFTLEdBQVRBLFNBQVM7UUFnQlRDLFVBQVUsR0FBVkEsVUFBVTtRQWdCVkMsWUFBWSxHQUFaQSxZQUFZO1FBcUJaQyxjQUFjLEdBQWRBLGNBQWM7UUFNZEMsZ0JBQWdCLEdBQWhCQSxnQkFBZ0I7UUFRaEJDLG9CQUFvQixHQUFwQkEsb0JBQW9CO1FBb0JwQkMsc0JBQXNCLEdBQXRCQSxzQkFBc0I7O0FBM0ZmLEdBQW9CLENBQXBCLE1BQW9CO0FBQ2QsR0FBYyxDQUFkLFVBQWM7QUFDVSxHQUFlLENBQWYsV0FBZTtTQUVwRE4sU0FBUyxDQUFDTyxPQUFPLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFLENBQUM7SUFDL0MsR0FBSyxDQUFDQyxhQUFhLEdBQUdGLElBQUksQ0FBQ0csV0FBVyxJQUNoQ0MsYUFBYSxHQUFHQyxNQUFNLENBQUNDLG1CQUFtQixDQUFDUCxPQUFPLEdBQ2xEUSxhQUFZLEdBQUdILGFBQWEsQ0FBQ0ksSUFBSSxDQUFDLFFBQVEsQ0FBUEQsWUFBWSxFQUFLLENBQUM7UUFDbkQsR0FBSyxDQUFDRSxxQkFBcUIsR0FBR0YsWUFBWSxDQUFDSixXQUFXO1FBRXRELEVBQUUsRUFBRU0scUJBQXFCLEtBQUtQLGFBQWEsRUFBRSxDQUFDO1lBQzVDLE1BQU0sQ0FBQyxJQUFJO1FBQ2IsQ0FBQztJQUNILENBQUMsS0FBSyxJQUFJO0lBRWhCLEVBQUUsRUFBRUssYUFBWSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQzFCUixPQUFPLENBQUNRLGFBQVksSUFBSU4sS0FBSztJQUMvQixDQUFDO0FBQ0gsQ0FBQztTQUVlUixV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
@@ -28,8 +28,7 @@ function createRequest(host, uri, query, method, headers, callback) {
28
28
  function createGetRequest(host, uri, query, headers, callback) {
29
29
  if (callback === undefined) {
30
30
  callback = headers; ///
31
- headers = {
32
- };
31
+ headers = {};
33
32
  }
34
33
  var method = _methods.GET_METHOD, getRequest = createRequest(host, uri, query, method, headers, callback);
35
34
  return getRequest;
@@ -37,8 +36,7 @@ function createGetRequest(host, uri, query, headers, callback) {
37
36
  function createPostRequest(host, uri, query, headers, callback) {
38
37
  if (callback === undefined) {
39
38
  callback = headers; ///
40
- headers = {
41
- };
39
+ headers = {};
42
40
  }
43
41
  var method = _methods.POST_METHOD, postRequest = createRequest(host, uri, query, method, headers, callback);
44
42
  return postRequest;
@@ -50,4 +48,4 @@ var _default = {
50
48
  };
51
49
  exports.default = _default;
52
50
 
53
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcmVxdWVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuY29uc3QgaHR0cCA9IHJlcXVpcmUoXCJodHRwXCIpLFxuICAgICAgaHR0cHMgPSByZXF1aXJlKFwiaHR0cHNcIik7XG5cbmltcG9ydCB7IEVSUk9SLCBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBHRVRfTUVUSE9ELCBQT1NUX01FVEhPRCB9IGZyb20gXCIuLi9tZXRob2RzXCI7XG5pbXBvcnQgeyBwb3J0RnJvbUhvc3QsIHNlY3VyZUZyb21Ib3N0LCBob3N0bmFtZUZyb21Ib3N0LCBxdWVyeVN0cmluZ0Zyb21RdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvaHR0cFwiO1xuXG5mdW5jdGlvbiBjcmVhdGVSZXF1ZXN0KGhvc3QsIHVyaSwgcXVlcnksIG1ldGhvZCwgaGVhZGVycywgY2FsbGJhY2spIHtcbiAgY29uc3QgcG9ydCA9IHBvcnRGcm9tSG9zdChob3N0KSxcbiAgICAgICAgc2VjdXJlID0gc2VjdXJlRnJvbUhvc3QoaG9zdCksXG4gICAgICAgIGhvc3RuYW1lID0gaG9zdG5hbWVGcm9tSG9zdChob3N0KSxcbiAgICAgICAgcXVlcnlTdHJpbmcgPSBxdWVyeVN0cmluZ0Zyb21RdWVyeShxdWVyeSksXG4gICAgICAgIHBhdGggPSAocXVlcnlTdHJpbmcgPT09IEVNUFRZX1NUUklORykgP1xuICAgICAgICAgICAgICAgICB1cmkgOlxuICAgICAgICAgICAgICAgICAgYCR7dXJpfT8ke3F1ZXJ5U3RyaW5nfWAsXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgaG9zdG5hbWUsXG4gICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgcG9ydCxcbiAgICAgICAgICBwYXRoXG4gICAgICAgIH0sXG4gICAgICAgIGNyZWF0ZVJlcXVlc3QgPSBzZWN1cmUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwcy5yZXF1ZXN0IDogLy8vXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cC5yZXF1ZXN0OyAvLy9cblxuICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlUmVxdWVzdChvcHRpb25zLCAocmVzcG9uc2UpID0+IHtcbiAgICBjb25zdCBlcnJvciA9IG51bGw7XG5cbiAgICBjYWxsYmFjayhlcnJvciwgcmVzcG9uc2UpO1xuICB9KTtcblxuICByZXF1ZXN0Lm9uKEVSUk9SLCAoZXJyb3IpID0+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IG51bGw7XG5cbiAgICBjYWxsYmFjayhlcnJvciwgcmVzcG9uc2UpO1xuICB9KTtcblxuICByZXR1cm4gcmVxdWVzdDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlR2V0UmVxdWVzdChob3N0LCB1cmksIHF1ZXJ5LCBoZWFkZXJzLCBjYWxsYmFjaykge1xuICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgIGNhbGxiYWNrID0gaGVhZGVyczsgLy8vXG4gICAgaGVhZGVycyA9IHt9O1xuICB9XG5cbiAgY29uc3QgbWV0aG9kID0gR0VUX01FVEhPRCxcbiAgICAgICAgZ2V0UmVxdWVzdCA9IGNyZWF0ZVJlcXVlc3QoaG9zdCwgdXJpLCBxdWVyeSwgbWV0aG9kLCBoZWFkZXJzLCBjYWxsYmFjayk7XG5cbiAgcmV0dXJuIGdldFJlcXVlc3Q7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVBvc3RSZXF1ZXN0KGhvc3QsIHVyaSwgcXVlcnksIGhlYWRlcnMsIGNhbGxiYWNrKSB7XG4gIGlmIChjYWxsYmFjayA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY2FsbGJhY2sgPSBoZWFkZXJzOyAvLy9cbiAgICBoZWFkZXJzID0ge307XG4gIH1cblxuICBjb25zdCBtZXRob2QgPSBQT1NUX01FVEhPRCxcbiAgICAgICAgcG9zdFJlcXVlc3QgPSBjcmVhdGVSZXF1ZXN0KGhvc3QsIHVyaSwgcXVlcnksIG1ldGhvZCwgaGVhZGVycywgY2FsbGJhY2spO1xuXG4gIHJldHVybiBwb3N0UmVxdWVzdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBjcmVhdGVSZXF1ZXN0LFxuICBjcmVhdGVHZXRSZXF1ZXN0LFxuICBjcmVhdGVQb3N0UmVxdWVzdFxufTtcbiJdLCJuYW1lcyI6WyJodHRwIiwicmVxdWlyZSIsImh0dHBzIiwiY3JlYXRlUmVxdWVzdCIsImhvc3QiLCJ1cmkiLCJxdWVyeSIsIm1ldGhvZCIsImhlYWRlcnMiLCJjYWxsYmFjayIsInBvcnQiLCJzZWN1cmUiLCJob3N0bmFtZSIsInF1ZXJ5U3RyaW5nIiwicGF0aCIsIm9wdGlvbnMiLCJyZXF1ZXN0IiwicmVzcG9uc2UiLCJlcnJvciIsIm9uIiwiY3JlYXRlR2V0UmVxdWVzdCIsInVuZGVmaW5lZCIsImdldFJlcXVlc3QiLCJjcmVhdGVQb3N0UmVxdWVzdCIsInBvc3RSZXF1ZXN0Il0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUt3QixHQUFjLENBQWQsVUFBYztBQUNWLEdBQVksQ0FBWixRQUFZO0FBQ2lDLEdBQW1CLENBQW5CLEtBQW1CO0FBTHhHLEdBQUssQ0FBQ0EsSUFBSSxHQUFHQyxPQUFPLENBQUMsQ0FBTSxRQUNyQkMsS0FBSyxHQUFHRCxPQUFPLENBQUMsQ0FBTztTQU1wQkUsYUFBYSxDQUFDQyxJQUFJLEVBQUVDLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxFQUFFLENBQUM7SUFDbkUsR0FBSyxDQUFDQyxJQUFJLE9BSHlFLEtBQW1CLGVBRzVFTixJQUFJLEdBQ3hCTyxNQUFNLE9BSnVFLEtBQW1CLGlCQUl4RVAsSUFBSSxHQUM1QlEsUUFBUSxPQUxxRSxLQUFtQixtQkFLcEVSLElBQUksR0FDaENTLFdBQVcsT0FOa0UsS0FBbUIsdUJBTTdEUCxLQUFLLEdBQ3hDUSxJQUFJLEdBQUlELFdBQVcsS0FUUyxVQUFjLGdCQVVqQ1IsR0FBRyxHQUNELENBQUEsRUFBU1EsTUFBVyxDQUFsQlIsR0FBRyxFQUFDLENBQUMsSUFBYyxNQUFBLENBQVpRLFdBQVcsR0FDL0JFLE9BQU8sR0FBRyxDQUFDO1FBQ1RILFFBQVEsRUFBUkEsUUFBUTtRQUNSSixPQUFPLEVBQVBBLE9BQU87UUFDUEQsTUFBTSxFQUFOQSxNQUFNO1FBQ05HLElBQUksRUFBSkEsSUFBSTtRQUNKSSxJQUFJLEVBQUpBLElBQUk7SUFDTixDQUFDLEVBQ0RYLGNBQWEsR0FBR1EsTUFBTSxHQUNKVCxLQUFLLENBQUNjLE9BQU8sR0FDWGhCLElBQUksQ0FBQ2dCLE9BQU8sQ0FBRSxDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7SUFFM0MsR0FBSyxDQUFDQSxPQUFPLEdBQUdiLGNBQWEsQ0FBQ1ksT0FBTyxFQUFFLFFBQVEsQ0FBUEUsUUFBUSxFQUFLLENBQUM7UUFDcEQsR0FBSyxDQUFDQyxLQUFLLEdBQUcsSUFBSTtRQUVsQlQsUUFBUSxDQUFDUyxLQUFLLEVBQUVELFFBQVE7SUFDMUIsQ0FBQztJQUVERCxPQUFPLENBQUNHLEVBQUUsQ0E3QndCLFVBQWMsUUE2QjlCLFFBQVEsQ0FBUEQsS0FBSyxFQUFLLENBQUM7UUFDNUIsR0FBSyxDQUFDRCxRQUFRLEdBQUcsSUFBSTtRQUVyQlIsUUFBUSxDQUFDUyxLQUFLLEVBQUVELFFBQVE7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQ0QsT0FBTztBQUNoQixDQUFDO1NBRVFJLGdCQUFnQixDQUFDaEIsSUFBSSxFQUFFQyxHQUFHLEVBQUVDLEtBQUssRUFBRUUsT0FBTyxFQUFFQyxRQUFRLEVBQUUsQ0FBQztJQUM5RCxFQUFFLEVBQUVBLFFBQVEsS0FBS1ksU0FBUyxFQUFFLENBQUM7UUFDM0JaLFFBQVEsR0FBR0QsT0FBTyxDQUFFLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztRQUN2QkEsT0FBTyxHQUFHLENBQUM7UUFBQSxDQUFDO0lBQ2QsQ0FBQztJQUVELEdBQUssQ0FBQ0QsTUFBTSxHQTNDMEIsUUFBWSxhQTRDNUNlLFVBQVUsR0FBR25CLGFBQWEsQ0FBQ0MsSUFBSSxFQUFFQyxHQUFHLEVBQUVDLEtBQUssRUFBRUMsTUFBTSxFQUFFQyxPQUFPLEVBQUVDLFFBQVE7SUFFNUUsTUFBTSxDQUFDYSxVQUFVO0FBQ25CLENBQUM7U0FFUUMsaUJBQWlCLENBQUNuQixJQUFJLEVBQUVDLEdBQUcsRUFBRUMsS0FBSyxFQUFFRSxPQUFPLEVBQUVDLFFBQVEsRUFBRSxDQUFDO0lBQy9ELEVBQUUsRUFBRUEsUUFBUSxLQUFLWSxTQUFTLEVBQUUsQ0FBQztRQUMzQlosUUFBUSxHQUFHRCxPQUFPLENBQUUsQ0FBRyxBQUFILEVBQUcsQUFBSCxDQUFHO1FBQ3ZCQSxPQUFPLEdBQUcsQ0FBQztRQUFBLENBQUM7SUFDZCxDQUFDO0lBRUQsR0FBSyxDQUFDRCxNQUFNLEdBdkQwQixRQUFZLGNBd0Q1Q2lCLFdBQVcsR0FBR3JCLGFBQWEsQ0FBQ0MsSUFBSSxFQUFFQyxHQUFHLEVBQUVDLEtBQUssRUFBRUMsTUFBTSxFQUFFQyxPQUFPLEVBQUVDLFFBQVE7SUFFN0UsTUFBTSxDQUFDZSxXQUFXO0FBQ3BCLENBQUM7ZUFFYyxDQUFDO0lBQ2RyQixhQUFhLEVBQWJBLGFBQWE7SUFDYmlCLGdCQUFnQixFQUFoQkEsZ0JBQWdCO0lBQ2hCRyxpQkFBaUIsRUFBakJBLGlCQUFpQjtBQUNuQixDQUFDIn0=
51
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcmVxdWVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuY29uc3QgaHR0cCA9IHJlcXVpcmUoXCJodHRwXCIpLFxuICAgICAgaHR0cHMgPSByZXF1aXJlKFwiaHR0cHNcIik7XG5cbmltcG9ydCB7IEVSUk9SLCBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBHRVRfTUVUSE9ELCBQT1NUX01FVEhPRCB9IGZyb20gXCIuLi9tZXRob2RzXCI7XG5pbXBvcnQgeyBwb3J0RnJvbUhvc3QsIHNlY3VyZUZyb21Ib3N0LCBob3N0bmFtZUZyb21Ib3N0LCBxdWVyeVN0cmluZ0Zyb21RdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvaHR0cFwiO1xuXG5mdW5jdGlvbiBjcmVhdGVSZXF1ZXN0KGhvc3QsIHVyaSwgcXVlcnksIG1ldGhvZCwgaGVhZGVycywgY2FsbGJhY2spIHtcbiAgY29uc3QgcG9ydCA9IHBvcnRGcm9tSG9zdChob3N0KSxcbiAgICAgICAgc2VjdXJlID0gc2VjdXJlRnJvbUhvc3QoaG9zdCksXG4gICAgICAgIGhvc3RuYW1lID0gaG9zdG5hbWVGcm9tSG9zdChob3N0KSxcbiAgICAgICAgcXVlcnlTdHJpbmcgPSBxdWVyeVN0cmluZ0Zyb21RdWVyeShxdWVyeSksXG4gICAgICAgIHBhdGggPSAocXVlcnlTdHJpbmcgPT09IEVNUFRZX1NUUklORykgP1xuICAgICAgICAgICAgICAgICB1cmkgOlxuICAgICAgICAgICAgICAgICAgYCR7dXJpfT8ke3F1ZXJ5U3RyaW5nfWAsXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgaG9zdG5hbWUsXG4gICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgcG9ydCxcbiAgICAgICAgICBwYXRoXG4gICAgICAgIH0sXG4gICAgICAgIGNyZWF0ZVJlcXVlc3QgPSBzZWN1cmUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwcy5yZXF1ZXN0IDogLy8vXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cC5yZXF1ZXN0OyAvLy9cblxuICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlUmVxdWVzdChvcHRpb25zLCAocmVzcG9uc2UpID0+IHtcbiAgICBjb25zdCBlcnJvciA9IG51bGw7XG5cbiAgICBjYWxsYmFjayhlcnJvciwgcmVzcG9uc2UpO1xuICB9KTtcblxuICByZXF1ZXN0Lm9uKEVSUk9SLCAoZXJyb3IpID0+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IG51bGw7XG5cbiAgICBjYWxsYmFjayhlcnJvciwgcmVzcG9uc2UpO1xuICB9KTtcblxuICByZXR1cm4gcmVxdWVzdDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlR2V0UmVxdWVzdChob3N0LCB1cmksIHF1ZXJ5LCBoZWFkZXJzLCBjYWxsYmFjaykge1xuICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgIGNhbGxiYWNrID0gaGVhZGVyczsgLy8vXG4gICAgaGVhZGVycyA9IHt9O1xuICB9XG5cbiAgY29uc3QgbWV0aG9kID0gR0VUX01FVEhPRCxcbiAgICAgICAgZ2V0UmVxdWVzdCA9IGNyZWF0ZVJlcXVlc3QoaG9zdCwgdXJpLCBxdWVyeSwgbWV0aG9kLCBoZWFkZXJzLCBjYWxsYmFjayk7XG5cbiAgcmV0dXJuIGdldFJlcXVlc3Q7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVBvc3RSZXF1ZXN0KGhvc3QsIHVyaSwgcXVlcnksIGhlYWRlcnMsIGNhbGxiYWNrKSB7XG4gIGlmIChjYWxsYmFjayA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY2FsbGJhY2sgPSBoZWFkZXJzOyAvLy9cbiAgICBoZWFkZXJzID0ge307XG4gIH1cblxuICBjb25zdCBtZXRob2QgPSBQT1NUX01FVEhPRCxcbiAgICAgICAgcG9zdFJlcXVlc3QgPSBjcmVhdGVSZXF1ZXN0KGhvc3QsIHVyaSwgcXVlcnksIG1ldGhvZCwgaGVhZGVycywgY2FsbGJhY2spO1xuXG4gIHJldHVybiBwb3N0UmVxdWVzdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBjcmVhdGVSZXF1ZXN0LFxuICBjcmVhdGVHZXRSZXF1ZXN0LFxuICBjcmVhdGVQb3N0UmVxdWVzdFxufTtcbiJdLCJuYW1lcyI6WyJodHRwIiwicmVxdWlyZSIsImh0dHBzIiwiY3JlYXRlUmVxdWVzdCIsImhvc3QiLCJ1cmkiLCJxdWVyeSIsIm1ldGhvZCIsImhlYWRlcnMiLCJjYWxsYmFjayIsInBvcnQiLCJzZWN1cmUiLCJob3N0bmFtZSIsInF1ZXJ5U3RyaW5nIiwicGF0aCIsIm9wdGlvbnMiLCJyZXF1ZXN0IiwicmVzcG9uc2UiLCJlcnJvciIsIm9uIiwiY3JlYXRlR2V0UmVxdWVzdCIsInVuZGVmaW5lZCIsImdldFJlcXVlc3QiLCJjcmVhdGVQb3N0UmVxdWVzdCIsInBvc3RSZXF1ZXN0Il0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUt3QixHQUFjLENBQWQsVUFBYztBQUNWLEdBQVksQ0FBWixRQUFZO0FBQ2lDLEdBQW1CLENBQW5CLEtBQW1CO0FBTHhHLEdBQUssQ0FBQ0EsSUFBSSxHQUFHQyxPQUFPLENBQUMsQ0FBTSxRQUNyQkMsS0FBSyxHQUFHRCxPQUFPLENBQUMsQ0FBTztTQU1wQkUsYUFBYSxDQUFDQyxJQUFJLEVBQUVDLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxFQUFFLENBQUM7SUFDbkUsR0FBSyxDQUFDQyxJQUFJLE9BSHlFLEtBQW1CLGVBRzVFTixJQUFJLEdBQ3hCTyxNQUFNLE9BSnVFLEtBQW1CLGlCQUl4RVAsSUFBSSxHQUM1QlEsUUFBUSxPQUxxRSxLQUFtQixtQkFLcEVSLElBQUksR0FDaENTLFdBQVcsT0FOa0UsS0FBbUIsdUJBTTdEUCxLQUFLLEdBQ3hDUSxJQUFJLEdBQUlELFdBQVcsS0FUUyxVQUFjLGdCQVVqQ1IsR0FBRyxHQUNELENBQUEsRUFBU1EsTUFBVyxDQUFsQlIsR0FBRyxFQUFDLENBQUMsSUFBYyxNQUFBLENBQVpRLFdBQVcsR0FDL0JFLE9BQU8sR0FBRyxDQUFDO1FBQ1RILFFBQVEsRUFBUkEsUUFBUTtRQUNSSixPQUFPLEVBQVBBLE9BQU87UUFDUEQsTUFBTSxFQUFOQSxNQUFNO1FBQ05HLElBQUksRUFBSkEsSUFBSTtRQUNKSSxJQUFJLEVBQUpBLElBQUk7SUFDTixDQUFDLEVBQ0RYLGNBQWEsR0FBR1EsTUFBTSxHQUNKVCxLQUFLLENBQUNjLE9BQU8sR0FDWGhCLElBQUksQ0FBQ2dCLE9BQU8sQ0FBRSxDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7SUFFM0MsR0FBSyxDQUFDQSxPQUFPLEdBQUdiLGNBQWEsQ0FBQ1ksT0FBTyxFQUFFLFFBQVEsQ0FBUEUsUUFBUSxFQUFLLENBQUM7UUFDcEQsR0FBSyxDQUFDQyxLQUFLLEdBQUcsSUFBSTtRQUVsQlQsUUFBUSxDQUFDUyxLQUFLLEVBQUVELFFBQVE7SUFDMUIsQ0FBQztJQUVERCxPQUFPLENBQUNHLEVBQUUsQ0E3QndCLFVBQWMsUUE2QjlCLFFBQVEsQ0FBUEQsS0FBSyxFQUFLLENBQUM7UUFDNUIsR0FBSyxDQUFDRCxRQUFRLEdBQUcsSUFBSTtRQUVyQlIsUUFBUSxDQUFDUyxLQUFLLEVBQUVELFFBQVE7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQ0QsT0FBTztBQUNoQixDQUFDO1NBRVFJLGdCQUFnQixDQUFDaEIsSUFBSSxFQUFFQyxHQUFHLEVBQUVDLEtBQUssRUFBRUUsT0FBTyxFQUFFQyxRQUFRLEVBQUUsQ0FBQztJQUM5RCxFQUFFLEVBQUVBLFFBQVEsS0FBS1ksU0FBUyxFQUFFLENBQUM7UUFDM0JaLFFBQVEsR0FBR0QsT0FBTyxDQUFFLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztRQUN2QkEsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRCxHQUFLLENBQUNELE1BQU0sR0EzQzBCLFFBQVksYUE0QzVDZSxVQUFVLEdBQUduQixhQUFhLENBQUNDLElBQUksRUFBRUMsR0FBRyxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxRQUFRO0lBRTVFLE1BQU0sQ0FBQ2EsVUFBVTtBQUNuQixDQUFDO1NBRVFDLGlCQUFpQixDQUFDbkIsSUFBSSxFQUFFQyxHQUFHLEVBQUVDLEtBQUssRUFBRUUsT0FBTyxFQUFFQyxRQUFRLEVBQUUsQ0FBQztJQUMvRCxFQUFFLEVBQUVBLFFBQVEsS0FBS1ksU0FBUyxFQUFFLENBQUM7UUFDM0JaLFFBQVEsR0FBR0QsT0FBTyxDQUFFLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztRQUN2QkEsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRCxHQUFLLENBQUNELE1BQU0sR0F2RDBCLFFBQVksY0F3RDVDaUIsV0FBVyxHQUFHckIsYUFBYSxDQUFDQyxJQUFJLEVBQUVDLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsUUFBUTtJQUU3RSxNQUFNLENBQUNlLFdBQVc7QUFDcEIsQ0FBQztlQUVjLENBQUM7SUFDZHJCLGFBQWEsRUFBYkEsYUFBYTtJQUNiaUIsZ0JBQWdCLEVBQWhCQSxnQkFBZ0I7SUFDaEJHLGlCQUFpQixFQUFqQkEsaUJBQWlCO0FBQ25CLENBQUMifQ==
@@ -102,7 +102,7 @@ function hiddenInput(answer, description, encoding, callback) {
102
102
  answer += character;
103
103
  break;
104
104
  case _characters.ETX_CHARACTER:
105
- console.log(_constants.CTRL_C);
105
+ console.log(CTRL_C);
106
106
  process.exit();
107
107
  }
108
108
  }
@@ -120,4 +120,4 @@ function visibleInput(answer2, description, encoding, callback) {
120
120
  process.stdin.resume();
121
121
  }
122
122
 
123
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc2hlbGwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHdoaWxzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXN5bmNocm9ub3VzXCI7XG5cbmltcG9ydCB7IERBVEFfRVZFTlRfVFlQRSB9IGZyb20gXCIuLi9ldmVudFR5cGVzXCI7XG5pbXBvcnQgeyBVVEY4LCBDVFJMX0MsIEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IERFRkFVTFRfRU5DT0RJTkcsIERFRkFVTFRfQVRURU1QVFMsIERFRkFVTFRfSU5JVElBTF9BTlNXRVIgfSBmcm9tIFwiLi4vZGVmYXVsdHNcIjtcbmltcG9ydCB7IEVUWF9DSEFSQUNURVIsIEJBQ0tTUEFDRV9DSEFSQUNURVIsIExJTkVfRkVFRF9DSEFSQUNURVIsIENBUlJJQUdFX1JFVFVSTl9DSEFSQUNURVIgfSBmcm9tIFwiLi4vY2hhcmFjdGVyc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gb25FVFgoaGFuZGxlcikge1xuICBpZiAocHJvY2Vzcy5zdGRpbi5zZXRSYXdNb2RlKSB7XG4gICAgY29uc3QgcmF3TW9kZSA9IHRydWUsXG4gICAgICAgICAgZW5jb2RpbmcgPSBVVEY4O1xuXG4gICAgcHJvY2Vzcy5zdGRpbi5zZXRSYXdNb2RlKHJhd01vZGUpO1xuXG4gICAgcHJvY2Vzcy5zdGRpbi5zZXRFbmNvZGluZyhlbmNvZGluZyk7XG5cbiAgICBwcm9jZXNzLnN0ZGluLmFkZExpc3RlbmVyKERBVEFfRVZFTlRfVFlQRSwgZGF0YUhhbmRsZXIpO1xuXG4gICAgcHJvY2Vzcy5zdGRpbi5yZXN1bWUoKTtcblxuICAgIHJldHVybiBvZmZFeHQ7XG4gIH1cblxuICBmdW5jdGlvbiBvZmZFeHQoKSB7XG4gICAgcHJvY2Vzcy5zdGRpbi5yZW1vdmVMaXN0ZW5lcihEQVRBX0VWRU5UX1RZUEUsIGRhdGFIYW5kbGVyKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRhdGFIYW5kbGVyKGNoYXJhY3Rlcikge1xuICAgIGlmIChjaGFyYWN0ZXIgPT09IEVUWF9DSEFSQUNURVIpIHtcbiAgICAgIGhhbmRsZXIoKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb21wdChvcHRpb25zLCBjYWxsYmFjaykge1xuICBsZXQgeyBhbnN3ZXIgPSBudWxsIH0gPSBvcHRpb25zO1xuXG4gIGlmIChhbnN3ZXIgIT09IG51bGwpIHtcbiAgICBjYWxsYmFjayhhbnN3ZXIpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgeyBhdHRlbXB0cyA9IERFRkFVTFRfQVRURU1QVFMgfSA9IG9wdGlvbnMsXG4gICAgICAgIGNvbnRleHQgPSB7XG4gICAgICAgICAgYW5zd2VyLFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgYXR0ZW1wdHNcbiAgICAgICAgfTtcblxuICB3aGlsc3QoYXR0ZW1wdCwgKCkgPT4ge1xuICAgIGNvbnN0IHsgYW5zd2VyIH0gPSBjb250ZXh0O1xuICAgIFxuICAgIGNhbGxiYWNrKGFuc3dlcik7XG4gIH0sIGNvbnRleHQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG9uRVRYLFxuICBwcm9tcHRcbn1cblxuZnVuY3Rpb24gYXR0ZW1wdChuZXh0LCBkb25lLCBjb250ZXh0KSB7XG4gIGxldCB7IGF0dGVtcHRzIH0gPSBjb250ZXh0O1xuXG4gIGNvbnN0IHRlcm1pbmF0ZSA9IChhdHRlbXB0cy0tID09PSAwKTtcbiAgXG4gIGlmICh0ZXJtaW5hdGUpIHtcbiAgICBkb25lKCk7XG4gICAgXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgeyBvcHRpb25zIH0gPSBjb250ZXh0LFxuICAgICAgICB7IGhpZGRlbiA9IGZhbHNlLFxuICAgICAgICAgIGVuY29kaW5nID0gREVGQVVMVF9FTkNPRElORyxcbiAgICAgICAgICBkZXNjcmlwdGlvbixcbiAgICAgICAgICBlcnJvck1lc3NhZ2UsXG4gICAgICAgICAgaW5pdGlhbEFuc3dlciA9IERFRkFVTFRfSU5JVElBTF9BTlNXRVIsXG4gICAgICAgICAgdmFsaWRhdGlvblBhdHRlcm4gPSBudWxsLFxuICAgICAgICAgIHZhbGlkYXRpb25GdW5jdGlvbiA9IG51bGwgfSA9IG9wdGlvbnM7XG5cbiAgaW5wdXQoaW5pdGlhbEFuc3dlciwgaGlkZGVuLCBkZXNjcmlwdGlvbiwgZW5jb2RpbmcsIGNhbGxiYWNrKTtcblxuICBmdW5jdGlvbiBjYWxsYmFjayhhbnN3ZXIpIHtcbiAgICBjb25zdCB2YWxpZCA9IHZhbGlkYXRpb25GdW5jdGlvbiA/ICAvLy9cbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbkZ1bmN0aW9uKGFuc3dlcikgOlxuICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25QYXR0ZXJuLnRlc3QoYW5zd2VyKTtcblxuICAgIGlmICh2YWxpZCkge1xuICAgICAgT2JqZWN0LmFzc2lnbihjb250ZXh0LCB7XG4gICAgICAgIGFuc3dlclxuICAgICAgfSk7XG5cbiAgICAgIGRvbmUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coZXJyb3JNZXNzYWdlKTtcblxuICAgICAgT2JqZWN0LmFzc2lnbihjb250ZXh0LCB7XG4gICAgICAgIGF0dGVtcHRzXG4gICAgICB9KTtcblxuICAgICAgbmV4dCgpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpbnB1dChpbml0aWFsQW5zd2VyLCBoaWRkZW4sIGRlc2NyaXB0aW9uLCBlbmNvZGluZywgY2FsbGJhY2spIHtcbiAgY29uc3QgYW5zd2VyID0gaW5pdGlhbEFuc3dlcjsgLy8vXG5cbiAgaGlkZGVuID9cbiAgICBoaWRkZW5JbnB1dChhbnN3ZXIsIGRlc2NyaXB0aW9uLCBlbmNvZGluZywgY2FsbGJhY2spIDpcbiAgICAgIHZpc2libGVJbnB1dChhbnN3ZXIsIGRlc2NyaXB0aW9uLCBlbmNvZGluZywgY2FsbGJhY2spO1xufVxuXG5mdW5jdGlvbiBoaWRkZW5JbnB1dChhbnN3ZXIsIGRlc2NyaXB0aW9uLCBlbmNvZGluZywgY2FsbGJhY2spIHtcbiAgY29uc3QgcmF3TW9kZSA9IHRydWU7XG5cbiAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoZGVzY3JpcHRpb24pO1xuXG4gIHByb2Nlc3Muc3RkaW4uc2V0RW5jb2RpbmcoZW5jb2RpbmcpO1xuXG4gIHByb2Nlc3Muc3RkaW4uc2V0UmF3TW9kZShyYXdNb2RlKTtcblxuICBwcm9jZXNzLnN0ZGluLm9uKERBVEFfRVZFTlRfVFlQRSwgbGlzdGVuZXIpO1xuXG4gIHByb2Nlc3Muc3RkaW4ucmVzdW1lKCk7XG5cbiAgZnVuY3Rpb24gbGlzdGVuZXIoZGF0YSkge1xuICAgIGNvbnN0IGNoYXJhY3RlciA9IGRhdGEudG9TdHJpbmcoZW5jb2RpbmcpO1xuXG4gICAgc3dpdGNoIChjaGFyYWN0ZXIpIHtcbiAgICAgIGNhc2UgTElORV9GRUVEX0NIQVJBQ1RFUiA6XG4gICAgICBjYXNlIENBUlJJQUdFX1JFVFVSTl9DSEFSQUNURVIgOlxuICAgICAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShMSU5FX0ZFRURfQ0hBUkFDVEVSKTtcblxuICAgICAgICBwcm9jZXNzLnN0ZGluLnJlbW92ZUxpc3RlbmVyKERBVEFfRVZFTlRfVFlQRSwgbGlzdGVuZXIpO1xuXG4gICAgICAgIHByb2Nlc3Muc3RkaW4ucGF1c2UoKTtcblxuICAgICAgICBjYWxsYmFjayhhbnN3ZXIpO1xuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEJBQ0tTUEFDRV9DSEFSQUNURVIgOlxuICAgICAgICBhbnN3ZXIgPSBhbnN3ZXIuc2xpY2UoMCwgYW5zd2VyLmxlbmd0aCAtIDEpO1xuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBhbnN3ZXIgKz0gY2hhcmFjdGVyO1xuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEVUWF9DSEFSQUNURVIgOlxuICAgICAgICBjb25zb2xlLmxvZyhDVFJMX0MpO1xuXG4gICAgICAgIHByb2Nlc3MuZXhpdCgpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB2aXNpYmxlSW5wdXQoYW5zd2VyLCBkZXNjcmlwdGlvbiwgZW5jb2RpbmcsIGNhbGxiYWNrKSB7XG4gIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGRlc2NyaXB0aW9uKTtcblxuICBwcm9jZXNzLnN0ZG91dC53cml0ZShhbnN3ZXIpO1xuXG4gIHByb2Nlc3Muc3RkaW4uc2V0RW5jb2RpbmcoZW5jb2RpbmcpO1xuXG4gIHByb2Nlc3Muc3RkaW4ub25jZShEQVRBX0VWRU5UX1RZUEUsIGxpc3RlbmVyKTtcblxuICBwcm9jZXNzLnN0ZGluLnJlc3VtZSgpO1xuXG4gIGZ1bmN0aW9uIGxpc3RlbmVyKGRhdGEpIHtcbiAgICBjb25zdCBhbnN3ZXIgPSBkYXRhLnJlcGxhY2UoL1xcbiQvLCBFTVBUWV9TVFJJTkcpO1xuXG4gICAgcHJvY2Vzcy5zdGRpbi5wYXVzZSgpO1xuXG4gICAgY2FsbGJhY2soYW5zd2VyKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIm9uRVRYIiwicHJvbXB0IiwiaGFuZGxlciIsIm9mZkV4dCIsInByb2Nlc3MiLCJzdGRpbiIsInJlbW92ZUxpc3RlbmVyIiwiZGF0YUhhbmRsZXIiLCJjaGFyYWN0ZXIiLCJzZXRSYXdNb2RlIiwicmF3TW9kZSIsImVuY29kaW5nIiwic2V0RW5jb2RpbmciLCJhZGRMaXN0ZW5lciIsInJlc3VtZSIsIm9wdGlvbnMiLCJjYWxsYmFjayIsImFuc3dlciIsImF0dGVtcHRzIiwiY29udGV4dCIsImF0dGVtcHQiLCJuZXh0IiwiZG9uZSIsInZhbGlkIiwidmFsaWRhdGlvbkZ1bmN0aW9uIiwidmFsaWRhdGlvblBhdHRlcm4iLCJ0ZXN0IiwiT2JqZWN0IiwiYXNzaWduIiwiY29uc29sZSIsImxvZyIsImVycm9yTWVzc2FnZSIsInRlcm1pbmF0ZSIsImhpZGRlbiIsImRlc2NyaXB0aW9uIiwiaW5pdGlhbEFuc3dlciIsImlucHV0IiwiaGlkZGVuSW5wdXQiLCJ2aXNpYmxlSW5wdXQiLCJzdGRvdXQiLCJ3cml0ZSIsIm9uIiwibGlzdGVuZXIiLCJkYXRhIiwidG9TdHJpbmciLCJwYXVzZSIsInNsaWNlIiwibGVuZ3RoIiwiZXhpdCIsInJlcGxhY2UiLCJvbmNlIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7O1FBU0lBLEtBQUssR0FBTEEsS0FBSztRQTJCTEMsTUFBTSxHQUFOQSxNQUFNOztBQWxDQyxHQUEyQixDQUEzQixhQUEyQjtBQUVsQixHQUFlLENBQWYsV0FBZTtBQUNKLEdBQWMsQ0FBZCxVQUFjO0FBQ2tCLEdBQWEsQ0FBYixTQUFhO0FBQ1csR0FBZSxDQUFmLFdBQWU7U0FFbEdELEtBQUssQ0FBQ0UsT0FBTyxFQUFFLENBQUM7UUFnQnJCQyxNQUFNLEdBQWYsUUFBUSxDQUFDQSxNQUFNLEdBQUcsQ0FBQztRQUNqQkMsT0FBTyxDQUFDQyxLQUFLLENBQUNDLGNBQWMsQ0F0QkEsV0FBZSxrQkFzQkdDLFdBQVc7SUFDM0QsQ0FBQztRQUVRQSxXQUFXLEdBQXBCLFFBQVEsQ0FBQ0EsV0FBVyxDQUFDQyxTQUFTLEVBQUUsQ0FBQztRQUMvQixFQUFFLEVBQUVBLFNBQVMsS0F2QmtGLFdBQWUsZ0JBdUI3RSxDQUFDO1lBQ2hDTixPQUFPO1FBQ1QsQ0FBQztJQUNILENBQUM7SUF2QkQsRUFBRSxFQUFFRSxPQUFPLENBQUNDLEtBQUssQ0FBQ0ksVUFBVSxFQUFFLENBQUM7UUFDN0IsR0FBSyxDQUFDQyxPQUFPLEdBQUcsSUFBSSxFQUNkQyxRQUFRLEdBUHlCLFVBQWM7UUFTckRQLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDSSxVQUFVLENBQUNDLE9BQU87UUFFaENOLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDTyxXQUFXLENBQUNELFFBQVE7UUFFbENQLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDUSxXQUFXLENBZEcsV0FBZSxrQkFjQU4sV0FBVztRQUV0REgsT0FBTyxDQUFDQyxLQUFLLENBQUNTLE1BQU07UUFFcEIsTUFBTSxDQUFDWCxNQUFNO0lBQ2YsQ0FBQztBQVdILENBQUM7U0FFZUYsTUFBTSxDQUFDYyxPQUFP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
123
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc2hlbGwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHdoaWxzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXN5bmNocm9ub3VzXCI7XG5cbmltcG9ydCB7IERBVEFfRVZFTlRfVFlQRSB9IGZyb20gXCIuLi9ldmVudFR5cGVzXCI7XG5pbXBvcnQgeyBVVEY4LCBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VOQ09ESU5HLCBERUZBVUxUX0FUVEVNUFRTLCBERUZBVUxUX0lOSVRJQUxfQU5TV0VSIH0gZnJvbSBcIi4uL2RlZmF1bHRzXCI7XG5pbXBvcnQgeyBFVFhfQ0hBUkFDVEVSLCBDVFJMX0NfQ0hBUkFDVEVSLCBCQUNLU1BBQ0VfQ0hBUkFDVEVSLCBMSU5FX0ZFRURfQ0hBUkFDVEVSLCBDQVJSSUFHRV9SRVRVUk5fQ0hBUkFDVEVSIH0gZnJvbSBcIi4uL2NoYXJhY3RlcnNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIG9uRVRYKGhhbmRsZXIpIHtcbiAgaWYgKHByb2Nlc3Muc3RkaW4uc2V0UmF3TW9kZSkge1xuICAgIGNvbnN0IHJhd01vZGUgPSB0cnVlLFxuICAgICAgICAgIGVuY29kaW5nID0gVVRGODtcblxuICAgIHByb2Nlc3Muc3RkaW4uc2V0UmF3TW9kZShyYXdNb2RlKTtcblxuICAgIHByb2Nlc3Muc3RkaW4uc2V0RW5jb2RpbmcoZW5jb2RpbmcpO1xuXG4gICAgcHJvY2Vzcy5zdGRpbi5hZGRMaXN0ZW5lcihEQVRBX0VWRU5UX1RZUEUsIGRhdGFIYW5kbGVyKTtcblxuICAgIHByb2Nlc3Muc3RkaW4ucmVzdW1lKCk7XG5cbiAgICByZXR1cm4gb2ZmRXh0O1xuICB9XG5cbiAgZnVuY3Rpb24gb2ZmRXh0KCkge1xuICAgIHByb2Nlc3Muc3RkaW4ucmVtb3ZlTGlzdGVuZXIoREFUQV9FVkVOVF9UWVBFLCBkYXRhSGFuZGxlcik7XG4gIH1cblxuICBmdW5jdGlvbiBkYXRhSGFuZGxlcihjaGFyYWN0ZXIpIHtcbiAgICBpZiAoY2hhcmFjdGVyID09PSBFVFhfQ0hBUkFDVEVSKSB7XG4gICAgICBoYW5kbGVyKCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9tcHQob3B0aW9ucywgY2FsbGJhY2spIHtcbiAgbGV0IHsgYW5zd2VyID0gbnVsbCB9ID0gb3B0aW9ucztcblxuICBpZiAoYW5zd2VyICE9PSBudWxsKSB7XG4gICAgY2FsbGJhY2soYW5zd2VyKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHsgYXR0ZW1wdHMgPSBERUZBVUxUX0FUVEVNUFRTIH0gPSBvcHRpb25zLFxuICAgICAgICBjb250ZXh0ID0ge1xuICAgICAgICAgIGFuc3dlcixcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIGF0dGVtcHRzXG4gICAgICAgIH07XG5cbiAgd2hpbHN0KGF0dGVtcHQsICgpID0+IHtcbiAgICBjb25zdCB7IGFuc3dlciB9ID0gY29udGV4dDtcbiAgICBcbiAgICBjYWxsYmFjayhhbnN3ZXIpO1xuICB9LCBjb250ZXh0KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBvbkVUWCxcbiAgcHJvbXB0XG59XG5cbmZ1bmN0aW9uIGF0dGVtcHQobmV4dCwgZG9uZSwgY29udGV4dCkge1xuICBsZXQgeyBhdHRlbXB0cyB9ID0gY29udGV4dDtcblxuICBjb25zdCB0ZXJtaW5hdGUgPSAoYXR0ZW1wdHMtLSA9PT0gMCk7XG4gIFxuICBpZiAodGVybWluYXRlKSB7XG4gICAgZG9uZSgpO1xuICAgIFxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHsgb3B0aW9ucyB9ID0gY29udGV4dCxcbiAgICAgICAgeyBoaWRkZW4gPSBmYWxzZSxcbiAgICAgICAgICBlbmNvZGluZyA9IERFRkFVTFRfRU5DT0RJTkcsXG4gICAgICAgICAgZGVzY3JpcHRpb24sXG4gICAgICAgICAgZXJyb3JNZXNzYWdlLFxuICAgICAgICAgIGluaXRpYWxBbnN3ZXIgPSBERUZBVUxUX0lOSVRJQUxfQU5TV0VSLFxuICAgICAgICAgIHZhbGlkYXRpb25QYXR0ZXJuID0gbnVsbCxcbiAgICAgICAgICB2YWxpZGF0aW9uRnVuY3Rpb24gPSBudWxsIH0gPSBvcHRpb25zO1xuXG4gIGlucHV0KGluaXRpYWxBbnN3ZXIsIGhpZGRlbiwgZGVzY3JpcHRpb24sIGVuY29kaW5nLCBjYWxsYmFjayk7XG5cbiAgZnVuY3Rpb24gY2FsbGJhY2soYW5zd2VyKSB7XG4gICAgY29uc3QgdmFsaWQgPSB2YWxpZGF0aW9uRnVuY3Rpb24gPyAgLy8vXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25GdW5jdGlvbihhbnN3ZXIpIDpcbiAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uUGF0dGVybi50ZXN0KGFuc3dlcik7XG5cbiAgICBpZiAodmFsaWQpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24oY29udGV4dCwge1xuICAgICAgICBhbnN3ZXJcbiAgICAgIH0pO1xuXG4gICAgICBkb25lKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yTWVzc2FnZSk7XG5cbiAgICAgIE9iamVjdC5hc3NpZ24oY29udGV4dCwge1xuICAgICAgICBhdHRlbXB0c1xuICAgICAgfSk7XG5cbiAgICAgIG5leHQoKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5wdXQoaW5pdGlhbEFuc3dlciwgaGlkZGVuLCBkZXNjcmlwdGlvbiwgZW5jb2RpbmcsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGFuc3dlciA9IGluaXRpYWxBbnN3ZXI7IC8vL1xuXG4gIGhpZGRlbiA/XG4gICAgaGlkZGVuSW5wdXQoYW5zd2VyLCBkZXNjcmlwdGlvbiwgZW5jb2RpbmcsIGNhbGxiYWNrKSA6XG4gICAgICB2aXNpYmxlSW5wdXQoYW5zd2VyLCBkZXNjcmlwdGlvbiwgZW5jb2RpbmcsIGNhbGxiYWNrKTtcbn1cblxuZnVuY3Rpb24gaGlkZGVuSW5wdXQoYW5zd2VyLCBkZXNjcmlwdGlvbiwgZW5jb2RpbmcsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHJhd01vZGUgPSB0cnVlO1xuXG4gIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGRlc2NyaXB0aW9uKTtcblxuICBwcm9jZXNzLnN0ZGluLnNldEVuY29kaW5nKGVuY29kaW5nKTtcblxuICBwcm9jZXNzLnN0ZGluLnNldFJhd01vZGUocmF3TW9kZSk7XG5cbiAgcHJvY2Vzcy5zdGRpbi5vbihEQVRBX0VWRU5UX1RZUEUsIGxpc3RlbmVyKTtcblxuICBwcm9jZXNzLnN0ZGluLnJlc3VtZSgpO1xuXG4gIGZ1bmN0aW9uIGxpc3RlbmVyKGRhdGEpIHtcbiAgICBjb25zdCBjaGFyYWN0ZXIgPSBkYXRhLnRvU3RyaW5nKGVuY29kaW5nKTtcblxuICAgIHN3aXRjaCAoY2hhcmFjdGVyKSB7XG4gICAgICBjYXNlIExJTkVfRkVFRF9DSEFSQUNURVIgOlxuICAgICAgY2FzZSBDQVJSSUFHRV9SRVRVUk5fQ0hBUkFDVEVSIDpcbiAgICAgICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoTElORV9GRUVEX0NIQVJBQ1RFUik7XG5cbiAgICAgICAgcHJvY2Vzcy5zdGRpbi5yZW1vdmVMaXN0ZW5lcihEQVRBX0VWRU5UX1RZUEUsIGxpc3RlbmVyKTtcblxuICAgICAgICBwcm9jZXNzLnN0ZGluLnBhdXNlKCk7XG5cbiAgICAgICAgY2FsbGJhY2soYW5zd2VyKTtcblxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBCQUNLU1BBQ0VfQ0hBUkFDVEVSIDpcbiAgICAgICAgYW5zd2VyID0gYW5zd2VyLnNsaWNlKDAsIGFuc3dlci5sZW5ndGggLSAxKTtcblxuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYW5zd2VyICs9IGNoYXJhY3RlcjtcblxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBFVFhfQ0hBUkFDVEVSIDpcbiAgICAgICAgY29uc29sZS5sb2coQ1RSTF9DKTtcblxuICAgICAgICBwcm9jZXNzLmV4aXQoKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdmlzaWJsZUlucHV0KGFuc3dlciwgZGVzY3JpcHRpb24sIGVuY29kaW5nLCBjYWxsYmFjaykge1xuICBwcm9jZXNzLnN0ZG91dC53cml0ZShkZXNjcmlwdGlvbik7XG5cbiAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYW5zd2VyKTtcblxuICBwcm9jZXNzLnN0ZGluLnNldEVuY29kaW5nKGVuY29kaW5nKTtcblxuICBwcm9jZXNzLnN0ZGluLm9uY2UoREFUQV9FVkVOVF9UWVBFLCBsaXN0ZW5lcik7XG5cbiAgcHJvY2Vzcy5zdGRpbi5yZXN1bWUoKTtcblxuICBmdW5jdGlvbiBsaXN0ZW5lcihkYXRhKSB7XG4gICAgY29uc3QgYW5zd2VyID0gZGF0YS5yZXBsYWNlKC9cXG4kLywgRU1QVFlfU1RSSU5HKTtcblxuICAgIHByb2Nlc3Muc3RkaW4ucGF1c2UoKTtcblxuICAgIGNhbGxiYWNrKGFuc3dlcik7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJvbkVUWCIsInByb21wdCIsImhhbmRsZXIiLCJvZmZFeHQiLCJwcm9jZXNzIiwic3RkaW4iLCJyZW1vdmVMaXN0ZW5lciIsImRhdGFIYW5kbGVyIiwiY2hhcmFjdGVyIiwic2V0UmF3TW9kZSIsInJhd01vZGUiLCJlbmNvZGluZyIsInNldEVuY29kaW5nIiwiYWRkTGlzdGVuZXIiLCJyZXN1bWUiLCJvcHRpb25zIiwiY2FsbGJhY2siLCJhbnN3ZXIiLCJhdHRlbXB0cyIsImNvbnRleHQiLCJhdHRlbXB0IiwibmV4dCIsImRvbmUiLCJ2YWxpZCIsInZhbGlkYXRpb25GdW5jdGlvbiIsInZhbGlkYXRpb25QYXR0ZXJuIiwidGVzdCIsIk9iamVjdCIsImFzc2lnbiIsImNvbnNvbGUiLCJsb2ciLCJlcnJvck1lc3NhZ2UiLCJ0ZXJtaW5hdGUiLCJoaWRkZW4iLCJkZXNjcmlwdGlvbiIsImluaXRpYWxBbnN3ZXIiLCJpbnB1dCIsImhpZGRlbklucHV0IiwidmlzaWJsZUlucHV0Iiwic3Rkb3V0Iiwid3JpdGUiLCJvbiIsImxpc3RlbmVyIiwiZGF0YSIsInRvU3RyaW5nIiwicGF1c2UiLCJzbGljZSIsImxlbmd0aCIsIkNUUkxfQyIsImV4aXQiLCJyZXBsYWNlIiwib25jZSJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7OztRQVNJQSxLQUFLLEdBQUxBLEtBQUs7UUEyQkxDLE1BQU0sR0FBTkEsTUFBTTs7QUFsQ0MsR0FBMkIsQ0FBM0IsYUFBMkI7QUFFbEIsR0FBZSxDQUFmLFdBQWU7QUFDWixHQUFjLENBQWQsVUFBYztBQUMwQixHQUFhLENBQWIsU0FBYTtBQUM2QixHQUFlLENBQWYsV0FBZTtTQUVwSEQsS0FBSyxDQUFDRSxPQUFPLEVBQUUsQ0FBQztRQWdCckJDLE1BQU0sR0FBZixRQUFRLENBQUNBLE1BQU0sR0FBRyxDQUFDO1FBQ2pCQyxPQUFPLENBQUNDLEtBQUssQ0FBQ0MsY0FBYyxDQXRCQSxXQUFlLGtCQXNCR0MsV0FBVztJQUMzRCxDQUFDO1FBRVFBLFdBQVcsR0FBcEIsUUFBUSxDQUFDQSxXQUFXLENBQUNDLFNBQVMsRUFBRSxDQUFDO1FBQy9CLEVBQUUsRUFBRUEsU0FBUyxLQXZCb0csV0FBZSxnQkF1Qi9GLENBQUM7WUFDaENOLE9BQU87UUFDVCxDQUFDO0lBQ0gsQ0FBQztJQXZCRCxFQUFFLEVBQUVFLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDSSxVQUFVLEVBQUUsQ0FBQztRQUM3QixHQUFLLENBQUNDLE9BQU8sR0FBRyxJQUFJLEVBQ2RDLFFBQVEsR0FQaUIsVUFBYztRQVM3Q1AsT0FBTyxDQUFDQyxLQUFLLENBQUNJLFVBQVUsQ0FBQ0MsT0FBTztRQUVoQ04sT0FBTyxDQUFDQyxLQUFLLENBQUNPLFdBQVcsQ0FBQ0QsUUFBUTtRQUVsQ1AsT0FBTyxDQUFDQyxLQUFLLENBQUNRLFdBQVcsQ0FkRyxXQUFlLGtCQWNBTixXQUFXO1FBRXRESCxPQUFPLENBQUNDLEtBQUssQ0FBQ1MsTUFBTTtRQUVwQixNQUFNLENBQUNYLE1BQU07SUFDZixDQUFDO0FBV0gsQ0FBQztT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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "necessary",
3
3
  "author": "James Smith",
4
- "version": "10.0.7",
4
+ "version": "11.0.3",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/necessary",
7
7
  "description": "A collection of utility functions.",
package/src/characters.js CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  export const ETX_CHARACTER = "\u0003";
4
4
  export const COLON_CHARACTER = ":";
5
+ export const CTRL_C_CHARACTER = "^C";
5
6
  export const AMPERSAND_CHARACTER = "&";
6
7
  export const LINE_FEED_CHARACTER = "\n";
7
8
  export const BACKSPACE_CHARACTER = String.fromCharCode(127);
package/src/constants.js CHANGED
@@ -2,7 +2,10 @@
2
2
 
3
3
  export const UTF8 = "utf8";
4
4
  export const ERROR = "error";
5
- export const CTRL_C = "^C";
5
+ export const STRING = "string";
6
6
  export const ACCEPT = "accept";
7
+ export const NUMBER = "number";
8
+ export const BOOLEAN = "boolean";
9
+ export const ENVIRONMENT = "ENVIRONMENT";
7
10
  export const EMPTY_STRING = "";
8
11
  export const CONTENT_TYPE = "content-type";
@@ -15,7 +15,7 @@ export function get(host, uri, query, headers, callback) {
15
15
  accept = APPLICATION_JSON_CONTENT_TYPE,
16
16
  content = null;
17
17
 
18
- underwriteAccept(headers, accept);
18
+ underwriteAcceptHeader(headers, accept);
19
19
 
20
20
  request(host, uri, query, method, headers, content, callback);
21
21
  }
@@ -31,9 +31,9 @@ export function post(host, uri, query, headers, content, callback) {
31
31
  accept = APPLICATION_JSON_CONTENT_TYPE,
32
32
  contentType = APPLICATION_JSON_CONTENT_TYPE;
33
33
 
34
- underwriteAccept(headers, accept);
34
+ underwriteAcceptHeader(headers, accept);
35
35
 
36
- underwriteContentType(headers, contentType);
36
+ underwriteContentTypeHeader(headers, contentType);
37
37
 
38
38
  request(host, uri, query, method, headers, content, callback);
39
39
  }
@@ -94,14 +94,14 @@ export default {
94
94
  request
95
95
  }
96
96
 
97
- function underwriteAccept(headers, accept) {
97
+ function underwriteAcceptHeader(headers, accept) {
98
98
  const name = ACCEPT, ///
99
99
  value = accept; ///
100
100
 
101
101
  underwrite(headers, name, value);
102
102
  }
103
103
 
104
- function underwriteContentType(headers, contentTYpe) {
104
+ function underwriteContentTypeHeader(headers, contentTYpe) {
105
105
  const name = CONTENT_TYPE, ///
106
106
  value = contentTYpe; ///
107
107
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { first, second } from "../utilities/array";
4
4
  import { DEFAULT_RC_BASE_EXTENSION } from "../defaults";
5
+ import { STRING, NUMBER, BOOLEAN, ENVIRONMENT } from "../constants";
5
6
  import { readFile, writeFile, checkFileExists } from "../utilities/fileSystem";
6
7
 
7
8
  if (!globalThis.rc) {
@@ -16,40 +17,18 @@ export default {
16
17
 
17
18
  let baseExtension = DEFAULT_RC_BASE_EXTENSION;
18
19
 
19
- function _rc(environmentNameOrArgv = null) {
20
- let environment,
21
- environmentName,
22
- environmentNameOrArgvArgv = (environmentNameOrArgv instanceof Array);
20
+ function _rc(environmentName) {
21
+ environmentName = environmentName || environmentNameFromArgv() || environmentNameFromEnv(); ///
23
22
 
24
- if (environmentNameOrArgvArgv) {
25
- const argv = environmentNameOrArgv; ///
26
-
27
- environmentName = environmentNameFromArgv(argv);
28
- } else {
29
- environmentName = environmentNameOrArgv; ///
30
- }
31
-
32
- const json = readRCFile(),
33
- { environments } = json;
34
-
35
- if (environmentName === null) {
36
- const firstEnvironment = first(environments);
23
+ let json = readRCFile();
37
24
 
38
- environment = firstEnvironment; ///
39
- } else {
40
- environment = environments.find((environment) => {
41
- const { name } = environment,
42
- found = (name === environmentName);
25
+ const environment = findEnvironment(json, environmentName);
43
26
 
44
- return found;
45
- });
46
- }
27
+ json = environment; ///
47
28
 
48
- delete environment.name;
29
+ replaceEnvironmentVariables(json);
49
30
 
50
31
  Object.assign(rc, environment);
51
-
52
- return environment;
53
32
  }
54
33
 
55
34
  function readRCFile() {
@@ -109,10 +88,45 @@ Object.assign(_rc, {
109
88
  setRCBaseExtension
110
89
  });
111
90
 
112
- function environmentNameFromArgv(argv) {
91
+ function findEnvironment(json, environmentName) {
92
+ let environment;
93
+ const { environments } = json;
94
+
95
+ if (environmentName === null) {
96
+ const firstEnvironment = first(environments);
97
+
98
+ environment = firstEnvironment; ///
99
+ } else {
100
+ environment = environments.find((environment) => {
101
+ const { name } = environment;
102
+
103
+ if(name === environmentName) {
104
+ return true;
105
+ }
106
+ });
107
+ }
108
+
109
+ delete environment.name
110
+
111
+ return environment;
112
+ }
113
+
114
+ function rcFilePathFromNothing() {
115
+ const rcFilePath = `./.${baseExtension}rc`;
116
+
117
+ return rcFilePath;
118
+ }
119
+
120
+ function environmentNameFromEnv() {
121
+ const environmentName = process.env[ENVIRONMENT] || null;
122
+
123
+ return environmentName;
124
+ }
125
+
126
+ function environmentNameFromArgv() {
113
127
  let environmentName = null;
114
128
 
115
- argv.find((argument) => { ///
129
+ process.argv.find((argument) => { ///
116
130
  const matches = argument.match(/--environment=(.+)/),
117
131
  found = (matches !== null);
118
132
 
@@ -128,8 +142,110 @@ function environmentNameFromArgv(argv) {
128
142
  return environmentName;
129
143
  }
130
144
 
131
- function rcFilePathFromNothing() {
132
- const rcFilePath = `./.${baseExtension}rc`;
145
+ function replaceEnvironmentVariable(string) {
146
+ let value = null;
133
147
 
134
- return rcFilePath;
148
+ const stringUpperCase = isStringUpperCase(string);
149
+
150
+ if (stringUpperCase) {
151
+ const name = string; ///
152
+
153
+ value = process.env[name] || null;
154
+ }
155
+
156
+ return value;
157
+ }
158
+
159
+ function replaceEnvironmentVariables(environment) {
160
+ let json = environment;
161
+
162
+ const jsonArray = isJSONArray(json),
163
+ jsonObject = isJSONObject(json);
164
+
165
+ if (false) {
166
+ ///
167
+ } else if (jsonArray) {
168
+ const array = json,
169
+ length = array.length;
170
+
171
+ for (let index = 0; index < length; index++) {
172
+ const json = array[index],
173
+ jsonString = isJSONString(json);
174
+
175
+ if (jsonString) {
176
+ const string = json,
177
+ value = replaceEnvironmentVariable(string);
178
+
179
+ if (value !== null) {
180
+ array[index] = value;
181
+ }
182
+ }
183
+ }
184
+ } else if (jsonObject) {
185
+ const object = json; ///
186
+
187
+ for (let name in object) {
188
+ const json = object[name],
189
+ jsonString = isJSONString(json);
190
+
191
+ if (jsonString) {
192
+ const string = json, ///
193
+ value = replaceEnvironmentVariable(string); ///
194
+
195
+ if (value !== null) {
196
+ object[name] = value;
197
+ }
198
+ } else {
199
+ replaceEnvironmentVariables(json);
200
+ }
201
+ }
202
+ }
203
+ }
204
+
205
+ function isJSONArray(json) {
206
+ const jsonArray = (json instanceof Array);
207
+
208
+ return jsonArray;
209
+ }
210
+
211
+ function isJSONObject(json) {
212
+ const jsonArray = isJSONArray(json),
213
+ jsonPrimitive = isJSONPrimitive(json),
214
+ jsonObject = (!jsonArray && ! jsonPrimitive);
215
+
216
+ return jsonObject;
217
+ }
218
+
219
+ function isJSONString(json) {
220
+ const jsonString = (typeof json === STRING);
221
+
222
+ return jsonString;
223
+ }
224
+
225
+ function isJSONNumber(json) {
226
+ const jsonNumber = (typeof json === NUMBER);
227
+
228
+ return jsonNumber;
229
+ }
230
+
231
+ function isJSONBoolean(json) {
232
+ const jsonBoolean = (typeof json === BOOLEAN);
233
+
234
+ return jsonBoolean;
235
+ }
236
+
237
+ function isJSONPrimitive(json) {
238
+ const jsonString = isJSONString(json),
239
+ jsonNumber = isJSONNumber(json),
240
+ jsonBoolean = isJSONBoolean(json),
241
+ jsonPrimitive = (jsonString || jsonNumber || jsonBoolean);
242
+
243
+ return jsonPrimitive;
244
+ }
245
+
246
+ function isStringUpperCase(string) {
247
+ const upperCaseString = string.toUpperCase(),
248
+ stringUpperCase = (string === upperCaseString);
249
+
250
+ return stringUpperCase;
135
251
  }
@@ -5,34 +5,33 @@ import { EMPTY_STRING } from "../constants";
5
5
  import { COLON_CHARACTER, AMPERSAND_CHARACTER } from "../characters";
6
6
 
7
7
  export function overwrite(headers, name, value) {
8
- const ownPropertyNames = Object.getOwnPropertyNames(headers),
9
- lowerCaseName = name.toLowerCase(),
10
- overwritten = ownPropertyNames.some((ownPropertyName) => {
11
- const lowerCaseOwnPropertyName = ownPropertyName.toLowerCase();
12
-
13
- if (lowerCaseOwnPropertyName === lowerCaseName) {
14
- headers[ownPropertyName] = value;
8
+ const lowerCaseName = name.toLowerCase(),
9
+ existingNames = Object.getOwnPropertyNames(headers), ///
10
+ existingName = existingNames.find((existingName) => {
11
+ const existingLowerCaseName = existingName.toLowerCase();
15
12
 
13
+ if (existingLowerCaseName === lowerCaseName) {
16
14
  return true;
17
15
  }
18
- });
16
+ }) || null;
19
17
 
20
- if (!overwritten) {
21
- headers[name] = value;
18
+ if (existingName !== null) {
19
+ headers[existingName] = value;
22
20
  }
23
21
  }
24
22
 
25
23
  export function underwrite(headers, name, value) {
26
- const ownPropertyNames = Object.getOwnPropertyNames(headers),
27
- lowercaseName = name.toLowerCase(),
28
- lowerCaseOwnPropertyNames = ownPropertyNames.map((ownPropertyName) => {
29
- const lowerCaseOwnPropertyName = ownPropertyName.toLowerCase();
24
+ const lowerCaseName = name.toLowerCase(),
25
+ existingNames = Object.getOwnPropertyNames(headers), ///
26
+ existingName = existingNames.find((existingName) => {
27
+ const existingLowerCaseName = existingName.toLowerCase();
30
28
 
31
- return lowerCaseOwnPropertyName;
32
- }),
33
- lowerCaseOwnPropertyNamesIncludesLowercaseName = lowerCaseOwnPropertyNames.includes(lowercaseName);
29
+ if (existingLowerCaseName === lowerCaseName) {
30
+ return true;
31
+ }
32
+ }) || null;
34
33
 
35
- if (!lowerCaseOwnPropertyNamesIncludesLowercaseName) {
34
+ if (existingName === null) {
36
35
  headers[name] = value;
37
36
  }
38
37
  }
@@ -3,9 +3,9 @@
3
3
  import { whilst } from "../utilities/asynchronous";
4
4
 
5
5
  import { DATA_EVENT_TYPE } from "../eventTypes";
6
- import { UTF8, CTRL_C, EMPTY_STRING } from "../constants";
6
+ import { UTF8, EMPTY_STRING } from "../constants";
7
7
  import { DEFAULT_ENCODING, DEFAULT_ATTEMPTS, DEFAULT_INITIAL_ANSWER } from "../defaults";
8
- import { ETX_CHARACTER, BACKSPACE_CHARACTER, LINE_FEED_CHARACTER, CARRIAGE_RETURN_CHARACTER } from "../characters";
8
+ import { ETX_CHARACTER, CTRL_C_CHARACTER, BACKSPACE_CHARACTER, LINE_FEED_CHARACTER, CARRIAGE_RETURN_CHARACTER } from "../characters";
9
9
 
10
10
  export function onETX(handler) {
11
11
  if (process.stdin.setRawMode) {