{"version":3,"sources":["jsdelivr-header.js","/npm/bean-parser@2.1.0/index.js"],"names":[],"mappings":"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","file":"/npm/bean-parser@2.1.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/bean-parser@2.1.0/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","class Node {\n  constructor(item) {\n    this.item = item;\n  }\n  setNext(node) {\n    this.next = node;\n    node.prev = this;\n  }\n  unlink() {\n    if (this.next) this.next.prev = this.prev;\n    this.prev.next = this.next;\n  }\n}\n\nclass List {\n  constructor(array) {\n    if (!array.length) return;\n    const [first, ...rest] = array;\n    this.current = new Node(first);\n    this.first = this.current;\n    this.last = this.current;\n    let curr = this.current;\n    for (const item of rest) {\n      const node = new Node(item);\n      curr.setNext(node);\n      curr = node;\n    }\n    this.last = curr;\n  }\n  next() {\n    this.current = this.current.next;\n  }\n  prev() {\n    this.current = this.current.prev;\n  }\n  unlinkNext() {\n    this.current.next.unlink();\n  }\n  push(item) {\n    const node = new Node(item);\n    if (!this.current) {\n      this.current = node;\n      this.last = this.current;\n      this.first = this.current;\n      return;\n    }\n    this.last.setNext(node);\n    this.last = node;\n  }\n}\n\nconst beanPriority = (tokens, rules, context) => {\n  while (true) {\n    const { current } = tokens;\n    const { next } = current;\n    if (!next) break;\n    const { next: last } = next;\n    const rule = rules[current.item.type]?.[next.item.type];\n    if (rule) {\n      if (last) {\n        const nextRule = rules[next.item.type]?.[last.item.type];\n        if (nextRule && nextRule.priority > rule.priority) {\n          tokens.next();\n          continue;\n        }\n      }\n      current.item = rule.value(current.item, next.item, context);\n      tokens.unlinkNext();\n      tokens.current = current.prev || current;\n      continue;\n    }\n    tokens.current = next;\n  }\n  return tokens;\n};\n\nconst beanNoPriority = (tokens, rules, context) => {\n  while (true) {\n    const { current } = tokens;\n    const { next } = current;\n    if (!next) break;\n    const rule = rules[current.item.type]?.[next.item.type];\n    if (rule) {\n      current.item = rule.value(current.item, next.item, context);\n      tokens.unlinkNext();\n      tokens.current = current.prev || current;\n      continue;\n    }\n    tokens.current = next;\n  }\n  return tokens;\n};\n\nconst bean = (tokens, rules, priorities = true, context = {}) => {\n  return priorities\n    ? beanPriority(tokens, rules, context)\n    : beanNoPriority(tokens, rules, context);\n};\n\nconst rule = (value, priority = 1) => ({ value, priority });\nconst map = (keys, rule) => Object.fromEntries(keys.map((key) => [key, rule]));\nconst mapfn = (keys, fn) => Object.fromEntries(keys.map(fn));\nconst pod = (type) =>\n  rule((lhs, rhs) => ({\n    type,\n    lhs,\n    rhs,\n  }));\n\nconst list = (arr) => new List(arr);\nconst lPluck = (z) => z;\nconst rPluck = (_, z) => z;\nconst ignore = (...types) => map(types, rule(lPluck));\nconst name = (type, priority = 1) =>\n  rule((lhs, rhs) => ({ lhs, rhs, type }), priority);\n\nconst merge = (...objects) => {\n  const result = {};\n  for (const object of objects) {\n    for (const [key, value] of Object.entries(object)) {\n      if (result[key]) result[key] = { ...result[key], ...value };\n      else result[key] = value;\n    }\n  }\n  return result;\n};\n\nmodule.exports.rule = rule;\nmodule.exports.map = map;\nmodule.exports.mapfn = mapfn;\nmodule.exports.pod = pod;\nmodule.exports.bean = bean;\nmodule.exports.List = List;\nmodule.exports.list = list;\nmodule.exports.lPluck = lPluck;\nmodule.exports.rPluck = rPluck;\nmodule.exports.ignore = ignore;\nmodule.exports.name = name;\nmodule.exports.merge = merge;\n"]}