{"ast":null,"code":"'use strict';\n\nvar _toConsumableArray = require(\"D:/DSP_Management/node_modules/@babel/runtime/helpers/toConsumableArray.js\")[\"default\"];\nvar stringify = require('./stringify');\n\n/**\n * Constants\n */\n\nvar _require = require('./constants'),\n  MAX_LENGTH = _require.MAX_LENGTH,\n  CHAR_BACKSLASH = _require.CHAR_BACKSLASH,\n  CHAR_BACKTICK = _require.CHAR_BACKTICK,\n  CHAR_COMMA = _require.CHAR_COMMA,\n  CHAR_DOT = _require.CHAR_DOT,\n  CHAR_LEFT_PARENTHESES = _require.CHAR_LEFT_PARENTHESES,\n  CHAR_RIGHT_PARENTHESES = _require.CHAR_RIGHT_PARENTHESES,\n  CHAR_LEFT_CURLY_BRACE = _require.CHAR_LEFT_CURLY_BRACE,\n  CHAR_RIGHT_CURLY_BRACE = _require.CHAR_RIGHT_CURLY_BRACE,\n  CHAR_LEFT_SQUARE_BRACKET = _require.CHAR_LEFT_SQUARE_BRACKET,\n  CHAR_RIGHT_SQUARE_BRACKET = _require.CHAR_RIGHT_SQUARE_BRACKET,\n  CHAR_DOUBLE_QUOTE = _require.CHAR_DOUBLE_QUOTE,\n  CHAR_SINGLE_QUOTE = _require.CHAR_SINGLE_QUOTE,\n  CHAR_NO_BREAK_SPACE = _require.CHAR_NO_BREAK_SPACE,\n  CHAR_ZERO_WIDTH_NOBREAK_SPACE = _require.CHAR_ZERO_WIDTH_NOBREAK_SPACE;\n\n/**\n * parse\n */\n\nvar parse = function parse(input) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  if (typeof input !== 'string') {\n    throw new TypeError('Expected a string');\n  }\n  var opts = options || {};\n  var max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n  if (input.length > max) {\n    throw new SyntaxError(\"Input length (\".concat(input.length, \"), exceeds max characters (\").concat(max, \")\"));\n  }\n  var ast = {\n    type: 'root',\n    input: input,\n    nodes: []\n  };\n  var stack = [ast];\n  var block = ast;\n  var prev = ast;\n  var brackets = 0;\n  var length = input.length;\n  var index = 0;\n  var depth = 0;\n  var value;\n\n  /**\n   * Helpers\n   */\n\n  var advance = function advance() {\n    return input[index++];\n  };\n  var push = function push(node) {\n    if (node.type === 'text' && prev.type === 'dot') {\n      prev.type = 'text';\n    }\n    if (prev && prev.type === 'text' && node.type === 'text') {\n      prev.value += node.value;\n      return;\n    }\n    block.nodes.push(node);\n    node.parent = block;\n    node.prev = prev;\n    prev = node;\n    return node;\n  };\n  push({\n    type: 'bos'\n  });\n  while (index < length) {\n    block = stack[stack.length - 1];\n    value = advance();\n\n    /**\n     * Invalid chars\n     */\n\n    if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) {\n      continue;\n    }\n\n    /**\n     * Escaped chars\n     */\n\n    if (value === CHAR_BACKSLASH) {\n      push({\n        type: 'text',\n        value: (options.keepEscaping ? value : '') + advance()\n      });\n      continue;\n    }\n\n    /**\n     * Right square bracket (literal): ']'\n     */\n\n    if (value === CHAR_RIGHT_SQUARE_BRACKET) {\n      push({\n        type: 'text',\n        value: '\\\\' + value\n      });\n      continue;\n    }\n\n    /**\n     * Left square bracket: '['\n     */\n\n    if (value === CHAR_LEFT_SQUARE_BRACKET) {\n      brackets++;\n      var next = void 0;\n      while (index < length && (next = advance())) {\n        value += next;\n        if (next === CHAR_LEFT_SQUARE_BRACKET) {\n          brackets++;\n          continue;\n        }\n        if (next === CHAR_BACKSLASH) {\n          value += advance();\n          continue;\n        }\n        if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n          brackets--;\n          if (brackets === 0) {\n            break;\n          }\n        }\n      }\n      push({\n        type: 'text',\n        value: value\n      });\n      continue;\n    }\n\n    /**\n     * Parentheses\n     */\n\n    if (value === CHAR_LEFT_PARENTHESES) {\n      block = push({\n        type: 'paren',\n        nodes: []\n      });\n      stack.push(block);\n      push({\n        type: 'text',\n        value: value\n      });\n      continue;\n    }\n    if (value === CHAR_RIGHT_PARENTHESES) {\n      if (block.type !== 'paren') {\n        push({\n          type: 'text',\n          value: value\n        });\n        continue;\n      }\n      block = stack.pop();\n      push({\n        type: 'text',\n        value: value\n      });\n      block = stack[stack.length - 1];\n      continue;\n    }\n\n    /**\n     * Quotes: '|\"|`\n     */\n\n    if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) {\n      var open = value;\n      var _next = void 0;\n      if (options.keepQuotes !== true) {\n        value = '';\n      }\n      while (index < length && (_next = advance())) {\n        if (_next === CHAR_BACKSLASH) {\n          value += _next + advance();\n          continue;\n        }\n        if (_next === open) {\n          if (options.keepQuotes === true) value += _next;\n          break;\n        }\n        value += _next;\n      }\n      push({\n        type: 'text',\n        value: value\n      });\n      continue;\n    }\n\n    /**\n     * Left curly brace: '{'\n     */\n\n    if (value === CHAR_LEFT_CURLY_BRACE) {\n      depth++;\n      var dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true;\n      var brace = {\n        type: 'brace',\n        open: true,\n        close: false,\n        dollar: dollar,\n        depth: depth,\n        commas: 0,\n        ranges: 0,\n        nodes: []\n      };\n      block = push(brace);\n      stack.push(block);\n      push({\n        type: 'open',\n        value: value\n      });\n      continue;\n    }\n\n    /**\n     * Right curly brace: '}'\n     */\n\n    if (value === CHAR_RIGHT_CURLY_BRACE) {\n      if (block.type !== 'brace') {\n        push({\n          type: 'text',\n          value: value\n        });\n        continue;\n      }\n      var type = 'close';\n      block = stack.pop();\n      block.close = true;\n      push({\n        type: type,\n        value: value\n      });\n      depth--;\n      block = stack[stack.length - 1];\n      continue;\n    }\n\n    /**\n     * Comma: ','\n     */\n\n    if (value === CHAR_COMMA && depth > 0) {\n      if (block.ranges > 0) {\n        block.ranges = 0;\n        var _open = block.nodes.shift();\n        block.nodes = [_open, {\n          type: 'text',\n          value: stringify(block)\n        }];\n      }\n      push({\n        type: 'comma',\n        value: value\n      });\n      block.commas++;\n      continue;\n    }\n\n    /**\n     * Dot: '.'\n     */\n\n    if (value === CHAR_DOT && depth > 0 && block.commas === 0) {\n      var siblings = block.nodes;\n      if (depth === 0 || siblings.length === 0) {\n        push({\n          type: 'text',\n          value: value\n        });\n        continue;\n      }\n      if (prev.type === 'dot') {\n        block.range = [];\n        prev.value += value;\n        prev.type = 'range';\n        if (block.nodes.length !== 3 && block.nodes.length !== 5) {\n          block.invalid = true;\n          block.ranges = 0;\n          prev.type = 'text';\n          continue;\n        }\n        block.ranges++;\n        block.args = [];\n        continue;\n      }\n      if (prev.type === 'range') {\n        siblings.pop();\n        var before = siblings[siblings.length - 1];\n        before.value += prev.value + value;\n        prev = before;\n        block.ranges--;\n        continue;\n      }\n      push({\n        type: 'dot',\n        value: value\n      });\n      continue;\n    }\n\n    /**\n     * Text\n     */\n\n    push({\n      type: 'text',\n      value: value\n    });\n  }\n\n  // Mark imbalanced braces and brackets as invalid\n  do {\n    block = stack.pop();\n    if (block.type !== 'root') {\n      var _parent$nodes;\n      block.nodes.forEach(function (node) {\n        if (!node.nodes) {\n          if (node.type === 'open') node.isOpen = true;\n          if (node.type === 'close') node.isClose = true;\n          if (!node.nodes) node.type = 'text';\n          node.invalid = true;\n        }\n      });\n\n      // get the location of the block on parent.nodes (block's siblings)\n      var parent = stack[stack.length - 1];\n      var _index = parent.nodes.indexOf(block);\n      // replace the (invalid) block with it's nodes\n      (_parent$nodes = parent.nodes).splice.apply(_parent$nodes, [_index, 1].concat(_toConsumableArray(block.nodes)));\n    }\n  } while (stack.length > 0);\n  push({\n    type: 'eos'\n  });\n  return ast;\n};\nmodule.exports = parse;","map":{"version":3,"names":["_toConsumableArray","require","stringify","_require","MAX_LENGTH","CHAR_BACKSLASH","CHAR_BACKTICK","CHAR_COMMA","CHAR_DOT","CHAR_LEFT_PARENTHESES","CHAR_RIGHT_PARENTHESES","CHAR_LEFT_CURLY_BRACE","CHAR_RIGHT_CURLY_BRACE","CHAR_LEFT_SQUARE_BRACKET","CHAR_RIGHT_SQUARE_BRACKET","CHAR_DOUBLE_QUOTE","CHAR_SINGLE_QUOTE","CHAR_NO_BREAK_SPACE","CHAR_ZERO_WIDTH_NOBREAK_SPACE","parse","input","options","arguments","length","undefined","TypeError","opts","max","maxLength","Math","min","SyntaxError","concat","ast","type","nodes","stack","block","prev","brackets","index","depth","value","advance","push","node","parent","keepEscaping","next","pop","open","keepQuotes","dollar","slice","brace","close","commas","ranges","shift","siblings","range","invalid","args","before","_parent$nodes","forEach","isOpen","isClose","indexOf","splice","apply","module","exports"],"sources":["D:/DSP_Management/node_modules/http-proxy-middleware/node_modules/braces/lib/parse.js"],"sourcesContent":["'use strict';\n\nconst stringify = require('./stringify');\n\n/**\n * Constants\n */\n\nconst {\n  MAX_LENGTH,\n  CHAR_BACKSLASH, /* \\ */\n  CHAR_BACKTICK, /* ` */\n  CHAR_COMMA, /* , */\n  CHAR_DOT, /* . */\n  CHAR_LEFT_PARENTHESES, /* ( */\n  CHAR_RIGHT_PARENTHESES, /* ) */\n  CHAR_LEFT_CURLY_BRACE, /* { */\n  CHAR_RIGHT_CURLY_BRACE, /* } */\n  CHAR_LEFT_SQUARE_BRACKET, /* [ */\n  CHAR_RIGHT_SQUARE_BRACKET, /* ] */\n  CHAR_DOUBLE_QUOTE, /* \" */\n  CHAR_SINGLE_QUOTE, /* ' */\n  CHAR_NO_BREAK_SPACE,\n  CHAR_ZERO_WIDTH_NOBREAK_SPACE\n} = require('./constants');\n\n/**\n * parse\n */\n\nconst parse = (input, options = {}) => {\n  if (typeof input !== 'string') {\n    throw new TypeError('Expected a string');\n  }\n\n  const opts = options || {};\n  const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n  if (input.length > max) {\n    throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`);\n  }\n\n  const ast = { type: 'root', input, nodes: [] };\n  const stack = [ast];\n  let block = ast;\n  let prev = ast;\n  let brackets = 0;\n  const length = input.length;\n  let index = 0;\n  let depth = 0;\n  let value;\n\n  /**\n   * Helpers\n   */\n\n  const advance = () => input[index++];\n  const push = node => {\n    if (node.type === 'text' && prev.type === 'dot') {\n      prev.type = 'text';\n    }\n\n    if (prev && prev.type === 'text' && node.type === 'text') {\n      prev.value += node.value;\n      return;\n    }\n\n    block.nodes.push(node);\n    node.parent = block;\n    node.prev = prev;\n    prev = node;\n    return node;\n  };\n\n  push({ type: 'bos' });\n\n  while (index < length) {\n    block = stack[stack.length - 1];\n    value = advance();\n\n    /**\n     * Invalid chars\n     */\n\n    if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) {\n      continue;\n    }\n\n    /**\n     * Escaped chars\n     */\n\n    if (value === CHAR_BACKSLASH) {\n      push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() });\n      continue;\n    }\n\n    /**\n     * Right square bracket (literal): ']'\n     */\n\n    if (value === CHAR_RIGHT_SQUARE_BRACKET) {\n      push({ type: 'text', value: '\\\\' + value });\n      continue;\n    }\n\n    /**\n     * Left square bracket: '['\n     */\n\n    if (value === CHAR_LEFT_SQUARE_BRACKET) {\n      brackets++;\n\n      let next;\n\n      while (index < length && (next = advance())) {\n        value += next;\n\n        if (next === CHAR_LEFT_SQUARE_BRACKET) {\n          brackets++;\n          continue;\n        }\n\n        if (next === CHAR_BACKSLASH) {\n          value += advance();\n          continue;\n        }\n\n        if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n          brackets--;\n\n          if (brackets === 0) {\n            break;\n          }\n        }\n      }\n\n      push({ type: 'text', value });\n      continue;\n    }\n\n    /**\n     * Parentheses\n     */\n\n    if (value === CHAR_LEFT_PARENTHESES) {\n      block = push({ type: 'paren', nodes: [] });\n      stack.push(block);\n      push({ type: 'text', value });\n      continue;\n    }\n\n    if (value === CHAR_RIGHT_PARENTHESES) {\n      if (block.type !== 'paren') {\n        push({ type: 'text', value });\n        continue;\n      }\n      block = stack.pop();\n      push({ type: 'text', value });\n      block = stack[stack.length - 1];\n      continue;\n    }\n\n    /**\n     * Quotes: '|\"|`\n     */\n\n    if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) {\n      const open = value;\n      let next;\n\n      if (options.keepQuotes !== true) {\n        value = '';\n      }\n\n      while (index < length && (next = advance())) {\n        if (next === CHAR_BACKSLASH) {\n          value += next + advance();\n          continue;\n        }\n\n        if (next === open) {\n          if (options.keepQuotes === true) value += next;\n          break;\n        }\n\n        value += next;\n      }\n\n      push({ type: 'text', value });\n      continue;\n    }\n\n    /**\n     * Left curly brace: '{'\n     */\n\n    if (value === CHAR_LEFT_CURLY_BRACE) {\n      depth++;\n\n      const dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true;\n      const brace = {\n        type: 'brace',\n        open: true,\n        close: false,\n        dollar,\n        depth,\n        commas: 0,\n        ranges: 0,\n        nodes: []\n      };\n\n      block = push(brace);\n      stack.push(block);\n      push({ type: 'open', value });\n      continue;\n    }\n\n    /**\n     * Right curly brace: '}'\n     */\n\n    if (value === CHAR_RIGHT_CURLY_BRACE) {\n      if (block.type !== 'brace') {\n        push({ type: 'text', value });\n        continue;\n      }\n\n      const type = 'close';\n      block = stack.pop();\n      block.close = true;\n\n      push({ type, value });\n      depth--;\n\n      block = stack[stack.length - 1];\n      continue;\n    }\n\n    /**\n     * Comma: ','\n     */\n\n    if (value === CHAR_COMMA && depth > 0) {\n      if (block.ranges > 0) {\n        block.ranges = 0;\n        const open = block.nodes.shift();\n        block.nodes = [open, { type: 'text', value: stringify(block) }];\n      }\n\n      push({ type: 'comma', value });\n      block.commas++;\n      continue;\n    }\n\n    /**\n     * Dot: '.'\n     */\n\n    if (value === CHAR_DOT && depth > 0 && block.commas === 0) {\n      const siblings = block.nodes;\n\n      if (depth === 0 || siblings.length === 0) {\n        push({ type: 'text', value });\n        continue;\n      }\n\n      if (prev.type === 'dot') {\n        block.range = [];\n        prev.value += value;\n        prev.type = 'range';\n\n        if (block.nodes.length !== 3 && block.nodes.length !== 5) {\n          block.invalid = true;\n          block.ranges = 0;\n          prev.type = 'text';\n          continue;\n        }\n\n        block.ranges++;\n        block.args = [];\n        continue;\n      }\n\n      if (prev.type === 'range') {\n        siblings.pop();\n\n        const before = siblings[siblings.length - 1];\n        before.value += prev.value + value;\n        prev = before;\n        block.ranges--;\n        continue;\n      }\n\n      push({ type: 'dot', value });\n      continue;\n    }\n\n    /**\n     * Text\n     */\n\n    push({ type: 'text', value });\n  }\n\n  // Mark imbalanced braces and brackets as invalid\n  do {\n    block = stack.pop();\n\n    if (block.type !== 'root') {\n      block.nodes.forEach(node => {\n        if (!node.nodes) {\n          if (node.type === 'open') node.isOpen = true;\n          if (node.type === 'close') node.isClose = true;\n          if (!node.nodes) node.type = 'text';\n          node.invalid = true;\n        }\n      });\n\n      // get the location of the block on parent.nodes (block's siblings)\n      const parent = stack[stack.length - 1];\n      const index = parent.nodes.indexOf(block);\n      // replace the (invalid) block with it's nodes\n      parent.nodes.splice(index, 1, ...block.nodes);\n    }\n  } while (stack.length > 0);\n\n  push({ type: 'eos' });\n  return ast;\n};\n\nmodule.exports = parse;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}