{"ast":null,"code":"'use strict';\n\nconst stringify = require('./stringify');\n\n/**\n * Constants\n */\n\nconst {\n  MAX_LENGTH,\n  CHAR_BACKSLASH,\n  /* \\ */\n  CHAR_BACKTICK,\n  /* ` */\n  CHAR_COMMA,\n  /* , */\n  CHAR_DOT,\n  /* . */\n  CHAR_LEFT_PARENTHESES,\n  /* ( */\n  CHAR_RIGHT_PARENTHESES,\n  /* ) */\n  CHAR_LEFT_CURLY_BRACE,\n  /* { */\n  CHAR_RIGHT_CURLY_BRACE,\n  /* } */\n  CHAR_LEFT_SQUARE_BRACKET,\n  /* [ */\n  CHAR_RIGHT_SQUARE_BRACKET,\n  /* ] */\n  CHAR_DOUBLE_QUOTE,\n  /* \" */\n  CHAR_SINGLE_QUOTE,\n  /* ' */\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  let opts = options || {};\n  let 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  let ast = {\n    type: 'root',\n    input,\n    nodes: []\n  };\n  let stack = [ast];\n  let block = ast;\n  let prev = ast;\n  let brackets = 0;\n  let length = input.length;\n  let index = 0;\n  let depth = 0;\n  let value;\n  let memo = {};\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    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      let closed = true;\n      let next;\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\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\n      });\n      continue;\n    }\n    if (value === CHAR_RIGHT_PARENTHESES) {\n      if (block.type !== 'paren') {\n        push({\n          type: 'text',\n          value\n        });\n        continue;\n      }\n      block = stack.pop();\n      push({\n        type: 'text',\n        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      let open = value;\n      let next;\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\n      });\n      continue;\n    }\n\n    /**\n     * Left curly brace: '{'\n     */\n\n    if (value === CHAR_LEFT_CURLY_BRACE) {\n      depth++;\n      let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true;\n      let brace = {\n        type: 'brace',\n        open: true,\n        close: false,\n        dollar,\n        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\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\n        });\n        continue;\n      }\n      let type = 'close';\n      block = stack.pop();\n      block.close = true;\n      push({\n        type,\n        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        let open = block.nodes.shift();\n        block.nodes = [open, {\n          type: 'text',\n          value: stringify(block)\n        }];\n      }\n      push({\n        type: 'comma',\n        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      let siblings = block.nodes;\n      if (depth === 0 || siblings.length === 0) {\n        push({\n          type: 'text',\n          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        let 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\n      });\n      continue;\n    }\n\n    /**\n     * Text\n     */\n\n    push({\n      type: 'text',\n      value\n    });\n  }\n\n  // Mark imbalanced braces and brackets as invalid\n  do {\n    block = stack.pop();\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      let parent = stack[stack.length - 1];\n      let 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  push({\n    type: 'eos'\n  });\n  return ast;\n};\nmodule.exports = parse;","map":{"version":3,"names":["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","TypeError","opts","max","maxLength","Math","min","length","SyntaxError","ast","type","nodes","stack","block","prev","brackets","index","depth","value","memo","advance","push","node","parent","keepEscaping","closed","next","pop","open","keepQuotes","dollar","slice","brace","close","commas","ranges","shift","siblings","range","invalid","args","before","forEach","isOpen","isClose","indexOf","splice","module","exports"],"sources":["C:/Users/user/Desktop/000newport/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  let opts = options || {};\n  let 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  let ast = { type: 'root', input, nodes: [] };\n  let stack = [ast];\n  let block = ast;\n  let prev = ast;\n  let brackets = 0;\n  let length = input.length;\n  let index = 0;\n  let depth = 0;\n  let value;\n  let memo = {};\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 closed = true;\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      let 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      let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true;\n      let 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      let 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        let 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      let 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        let 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      let parent = stack[stack.length - 1];\n      let 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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"},"metadata":{},"sourceType":"script","externalDependencies":[]}