@pyscript/core 0.6.24 → 0.6.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/codemirror-DNtCVICy.js +2 -0
  2. package/dist/codemirror-DNtCVICy.js.map +1 -0
  3. package/dist/codemirror_commands-DvCG1qNv.js +2 -0
  4. package/dist/codemirror_commands-DvCG1qNv.js.map +1 -0
  5. package/dist/codemirror_lang-python-BgZ6XoEX.js +2 -0
  6. package/dist/codemirror_lang-python-BgZ6XoEX.js.map +1 -0
  7. package/dist/codemirror_language-ddx8nifT.js +2 -0
  8. package/dist/codemirror_language-ddx8nifT.js.map +1 -0
  9. package/dist/codemirror_state-1UkzIAPK.js +2 -0
  10. package/dist/codemirror_state-1UkzIAPK.js.map +1 -0
  11. package/dist/codemirror_view-C2ObO--u.js +2 -0
  12. package/dist/codemirror_view-C2ObO--u.js.map +1 -0
  13. package/dist/core-DdmAo3MM.js +4 -0
  14. package/dist/core-DdmAo3MM.js.map +1 -0
  15. package/dist/core.js +1 -1
  16. package/dist/{deprecations-manager-BTpoiHGa.js → deprecations-manager-DvN9GcFd.js} +2 -2
  17. package/dist/{deprecations-manager-BTpoiHGa.js.map → deprecations-manager-DvN9GcFd.js.map} +1 -1
  18. package/dist/donkey-CalkTn2j.js +2 -0
  19. package/dist/donkey-CalkTn2j.js.map +1 -0
  20. package/dist/{error-DpZG5LEt.js → error-DAaZHFER.js} +2 -2
  21. package/dist/{error-DpZG5LEt.js.map → error-DAaZHFER.js.map} +1 -1
  22. package/dist/{index-I4sefyB1.js → index-978lpDXp.js} +2 -2
  23. package/dist/index-978lpDXp.js.map +1 -0
  24. package/dist/{mpy-Dn42TsXA.js → mpy-Ce6pqPNx.js} +2 -2
  25. package/dist/{mpy-Dn42TsXA.js.map → mpy-Ce6pqPNx.js.map} +1 -1
  26. package/dist/{py-D0ipAnBy.js → py-CG5XLYY5.js} +2 -2
  27. package/dist/{py-D0ipAnBy.js.map → py-CG5XLYY5.js.map} +1 -1
  28. package/dist/{py-editor-0ke7PlQx.js → py-editor-BmuyiqgN.js} +2 -2
  29. package/dist/{py-editor-0ke7PlQx.js.map → py-editor-BmuyiqgN.js.map} +1 -1
  30. package/dist/py-game-DiMU94kL.js +2 -0
  31. package/dist/py-game-DiMU94kL.js.map +1 -0
  32. package/dist/{py-terminal-D6r-vccN.js → py-terminal-DXPXvtC_.js} +2 -2
  33. package/dist/{py-terminal-D6r-vccN.js.map → py-terminal-DXPXvtC_.js.map} +1 -1
  34. package/dist/storage.js +1 -1
  35. package/dist/storage.js.map +1 -1
  36. package/dist/{toml-CvAfdf9_.js → toml-BLBSZ43A.js} +2 -2
  37. package/dist/toml-BLBSZ43A.js.map +1 -0
  38. package/dist/toml-DiUM0_qs.js.map +1 -1
  39. package/dist/xterm-7LwxAMsn.js.map +1 -1
  40. package/dist/xterm-readline-e8QPhSrm.js.map +1 -1
  41. package/dist/xterm_addon-fit--gyF3PcZ.js.map +1 -1
  42. package/dist/xterm_addon-web-links-Cnej-nJ6.js.map +1 -1
  43. package/dist/zip-DPXsOtR5.js +2 -0
  44. package/dist/zip-DPXsOtR5.js.map +1 -0
  45. package/package.json +12 -12
  46. package/src/plugins/donkey.js +8 -1
  47. package/src/plugins/py-game.js +6 -0
  48. package/dist/codemirror-DGOB2PKU.js +0 -2
  49. package/dist/codemirror-DGOB2PKU.js.map +0 -1
  50. package/dist/codemirror_commands-BNGV8OD9.js +0 -2
  51. package/dist/codemirror_commands-BNGV8OD9.js.map +0 -1
  52. package/dist/codemirror_lang-python-C4qHwXef.js +0 -2
  53. package/dist/codemirror_lang-python-C4qHwXef.js.map +0 -1
  54. package/dist/codemirror_language-Cuqp-gGG.js +0 -2
  55. package/dist/codemirror_language-Cuqp-gGG.js.map +0 -1
  56. package/dist/codemirror_state-B_EsJ6is.js +0 -2
  57. package/dist/codemirror_state-B_EsJ6is.js.map +0 -1
  58. package/dist/codemirror_view-xQ5tHbp7.js +0 -2
  59. package/dist/codemirror_view-xQ5tHbp7.js.map +0 -1
  60. package/dist/core-B0xJnVq9.js +0 -4
  61. package/dist/core-B0xJnVq9.js.map +0 -1
  62. package/dist/donkey-DKsKRHGO.js +0 -2
  63. package/dist/donkey-DKsKRHGO.js.map +0 -1
  64. package/dist/index-I4sefyB1.js.map +0 -1
  65. package/dist/py-game-BRLdWI8j.js +0 -2
  66. package/dist/py-game-BRLdWI8j.js.map +0 -1
  67. package/dist/toml-CvAfdf9_.js.map +0 -1
  68. package/dist/zip-CFEEYRfx.js +0 -2
  69. package/dist/zip-CFEEYRfx.js.map +0 -1
@@ -1,2 +0,0 @@
1
- import{a as e,k as t}from"./core-B0xJnVq9.js";const{get:r}=Reflect,a=["preventDefault","stopPropagation","stopImmediatePropagation"],n={once:!0};class o{#e;constructor(e){this.#e=e}get(e,t){return"currentTarget"===t?this.#e:((e,t)=>"function"==typeof t?t.bind(e):t)(e,r(e,t))}}const{stringify:s}=JSON,c=(e,t)=>`${e}(code, ${t.join(", ")})`,i=({type:e="py",persistent:r,terminal:i,config:_})=>{const l=r?["globals()","__locals__"]:[i?'{"__terminal__":__terminal__}':"{}","{}"],u=URL.createObjectURL(new Blob([["from pyscript import sync, config",'__message__ = lambda e,v: f"{e.__name__}: {v}"',"__locals__ = {}",'if config["type"] == "py":',"\timport sys","\tdef __error__(_):","\t\tinfo = sys.exc_info()","\t\treturn __message__(info[0], info[1])","else:","\t__error__ = lambda e: __message__(e.__class__, e.value)","def execute(code):",`\ttry: return ${c("exec",l)};`,"\texcept Exception as e: print(__error__(e));","def evaluate(code):",`\ttry: return ${c("eval",l)};`,"\texcept Exception as e: print(__error__(e));","sync.execute = execute","sync.evaluate = evaluate"].join("\n")])),p=t(document.createElement("script"),{type:e,src:u});return p.toggleAttribute("worker",!0),p.toggleAttribute("terminal",!0),i&&p.setAttribute("target",i),_&&p.setAttribute("config","string"==typeof _?_:s(_)),((e,t,r=null)=>new Promise(((s,c)=>{const i=new o(e);if(r.signal){const e=e=>c(new Proxy(e,i));if(r.signal.addEventListener("abort",e,n),r.signal.aborted)return r.signal.dispatchEvent(new Event("abort"))}e.addEventListener(t,(e=>{for(const t of a)r[t]&&e[t]();s(new Proxy(e,i))}),{...r,...n})})))(document.body.appendChild(p),`${e}:done`,{stopPropagation:!0}).then((()=>(URL.revokeObjectURL(u),p)))},_=async e=>{const t=await i(e),{xworker:r,process:a,terminal:n}=t,{execute:o,evaluate:s}=r.sync;return t.remove(),{xworker:r,process:a,terminal:n,execute:o,evaluate:s}};var l=async(t={})=>{let r=await _(t),a=!1;const n=()=>{r&&(r.xworker.terminate(),r.terminal.dispose(),r=null),a=!1},o=async()=>{n(),r=await _(t)},s=t=>async n=>{a&&await o(),a=!0;try{return await r[t](e(n))}catch(e){console.error(e)}finally{a=!1}},c=e=>async()=>{a?await o():r?.terminal[e]()};return{process:s("process"),execute:s("execute"),evaluate:s("evaluate"),clear:c("clear"),reset:c("reset"),kill:n}};export{l as default};
2
- //# sourceMappingURL=donkey-DKsKRHGO.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"donkey-DKsKRHGO.js","sources":["../node_modules/add-promise-listener/index.js","../src/plugins/donkey.js"],"sourcesContent":["const { defineProperty } = Object;\nconst { get } = Reflect;\n\nconst methods = [\n 'preventDefault',\n 'stopPropagation',\n 'stopImmediatePropagation',\n];\n\nconst once = { once: true };\n\n// avoid event.preventDefault throwing due illegal Proxy invocation\nconst bound = (e, value) => typeof value === 'function' ? value.bind(e) : value;\n\n// traps the `event.currentTarget` to be sure it's available later on\nclass Handler {\n #currentTarget;\n constructor(currentTarget) {\n this.#currentTarget = currentTarget;\n }\n get(e, name) {\n // Did you know? event.currentTarget disappears from events on\n // next tick, which is why this proxy handler needs to exist.\n return name === 'currentTarget' ? this.#currentTarget : bound(e, get(e, name));\n }\n}\n\n/**\n * Add a listener that result as a Promise, fulfilled when the event happens once or rejected if the optional provided signal is aborted.\n * @param {Element} element\n * @param {string} type\n * @param {{ signal?:AbortSignal, capture?:boolean, passive?:boolean, preventDefault?:boolean, stopPropagation?:boolean, stopImmediatePropagation?:boolean }?} options\n * @returns {Promise<Event,Event>}\n */\nexport default (element, type, options = null) => new Promise(\n (resolve, reject) => {\n const handler = new Handler(element);\n if (options.signal) {\n const abort = event => reject(new Proxy(event, handler));\n options.signal.addEventListener('abort', abort, once);\n if (options.signal.aborted)\n return options.signal.dispatchEvent(new Event('abort'));\n }\n element.addEventListener(\n type,\n (event) => {\n for (const method of methods) {\n if (options[method]) event[method]();\n }\n resolve(new Proxy(event, handler));\n },\n { ...options, ...once }\n );\n }\n);\n","import addPromiseListener from \"add-promise-listener\";\nimport { assign, dedent } from \"polyscript/exports\";\n\nconst { stringify } = JSON;\n\nconst invoke = (name, args) => `${name}(code, ${args.join(\", \")})`;\n\nconst donkey = ({ type = \"py\", persistent, terminal, config }) => {\n const globals = terminal ? '{\"__terminal__\":__terminal__}' : \"{}\";\n const args = persistent ? [\"globals()\", \"__locals__\"] : [globals, \"{}\"];\n\n const src = URL.createObjectURL(\n new Blob([\n [\n // this array is to better minify this code once in production\n \"from pyscript import sync, config\",\n '__message__ = lambda e,v: f\"\\x1b[31m\\x1b[1m{e.__name__}\\x1b[0m: {v}\"',\n \"__locals__ = {}\",\n 'if config[\"type\"] == \"py\":',\n \"\timport sys\",\n \"\tdef __error__(_):\",\n \"\t\tinfo = sys.exc_info()\",\n \"\t\treturn __message__(info[0], info[1])\",\n \"else:\",\n \"\t__error__ = lambda e: __message__(e.__class__, e.value)\",\n \"def execute(code):\",\n `\ttry: return ${invoke(\"exec\", args)};`,\n \"\texcept Exception as e: print(__error__(e));\",\n \"def evaluate(code):\",\n `\ttry: return ${invoke(\"eval\", args)};`,\n \"\texcept Exception as e: print(__error__(e));\",\n \"sync.execute = execute\",\n \"sync.evaluate = evaluate\",\n ].join(\"\\n\"),\n ]),\n );\n\n // create the script that exposes the code to execute or evaluate\n const script = assign(document.createElement(\"script\"), { type, src });\n script.toggleAttribute(\"worker\", true);\n script.toggleAttribute(\"terminal\", true);\n if (terminal) script.setAttribute(\"target\", terminal);\n if (config) {\n script.setAttribute(\n \"config\",\n typeof config === \"string\" ? config : stringify(config),\n );\n }\n\n return addPromiseListener(\n document.body.appendChild(script),\n `${type}:done`,\n { stopPropagation: true },\n ).then(() => {\n URL.revokeObjectURL(src);\n return script;\n });\n};\n\nconst utils = async (options) => {\n const script = await donkey(options);\n const { xworker, process, terminal } = script;\n const { execute, evaluate } = xworker.sync;\n script.remove();\n return {\n xworker,\n process,\n terminal,\n execute,\n evaluate,\n };\n};\n\nexport default async (options = {}) => {\n let farmer = await utils(options);\n let working = false;\n const kill = () => {\n if (farmer) {\n farmer.xworker.terminate();\n farmer.terminal.dispose();\n farmer = null;\n }\n working = false;\n };\n const reload = async () => {\n kill();\n farmer = await utils(options);\n };\n const asyncTask = (method) => async (code) => {\n // race condition ... a new task has been\n // assigned while the previous one didn't finish\n if (working) await reload();\n working = true;\n try {\n return await farmer[method](dedent(code));\n } catch (e) {\n console.error(e);\n } finally {\n working = false;\n }\n };\n const asyncMethod = (method) => async () => {\n if (working) await reload();\n else farmer?.terminal[method]();\n };\n return {\n process: asyncTask(\"process\"),\n execute: asyncTask(\"execute\"),\n evaluate: asyncTask(\"evaluate\"),\n clear: asyncMethod(\"clear\"),\n reset: asyncMethod(\"reset\"),\n kill,\n };\n};\n"],"names":["get","Reflect","methods","once","Handler","currentTarget","constructor","this","e","name","value","bind","bound","stringify","JSON","invoke","args","join","donkey","type","persistent","terminal","config","src","URL","createObjectURL","Blob","script","assign","document","createElement","toggleAttribute","setAttribute","element","options","Promise","resolve","reject","handler","signal","abort","event","Proxy","addEventListener","aborted","dispatchEvent","Event","method","addPromiseListener","body","appendChild","stopPropagation","then","revokeObjectURL","utils","async","xworker","process","execute","evaluate","sync","remove","donkey$1","farmer","working","kill","terminate","dispose","reload","asyncTask","code","dedent","console","error","asyncMethod","clear","reset"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-I4sefyB1.js","sources":["../node_modules/@codemirror/autocomplete/dist/index.js"],"sourcesContent":["import { Annotation, StateEffect, EditorSelection, codePointAt, codePointSize, fromCodePoint, Facet, combineConfig, StateField, Prec, Text, Transaction, MapMode, RangeValue, RangeSet, CharCategory } from '@codemirror/state';\nimport { Direction, logException, showTooltip, EditorView, ViewPlugin, getTooltip, Decoration, WidgetType, keymap } from '@codemirror/view';\nimport { syntaxTree, indentUnit } from '@codemirror/language';\n\n/**\nAn instance of this is passed to completion source functions.\n*/\nclass CompletionContext {\n /**\n Create a new completion context. (Mostly useful for testing\n completion sources—in the editor, the extension will create\n these for you.)\n */\n constructor(\n /**\n The editor state that the completion happens in.\n */\n state, \n /**\n The position at which the completion is happening.\n */\n pos, \n /**\n Indicates whether completion was activated explicitly, or\n implicitly by typing. The usual way to respond to this is to\n only return completions when either there is part of a\n completable entity before the cursor, or `explicit` is true.\n */\n explicit, \n /**\n The editor view. May be undefined if the context was created\n in a situation where there is no such view available, such as\n in synchronous updates via\n [`CompletionResult.update`](https://codemirror.net/6/docs/ref/#autocomplete.CompletionResult.update)\n or when called by test code.\n */\n view) {\n this.state = state;\n this.pos = pos;\n this.explicit = explicit;\n this.view = view;\n /**\n @internal\n */\n this.abortListeners = [];\n /**\n @internal\n */\n this.abortOnDocChange = false;\n }\n /**\n Get the extent, content, and (if there is a token) type of the\n token before `this.pos`.\n */\n tokenBefore(types) {\n let token = syntaxTree(this.state).resolveInner(this.pos, -1);\n while (token && types.indexOf(token.name) < 0)\n token = token.parent;\n return token ? { from: token.from, to: this.pos,\n text: this.state.sliceDoc(token.from, this.pos),\n type: token.type } : null;\n }\n /**\n Get the match of the given expression directly before the\n cursor.\n */\n matchBefore(expr) {\n let line = this.state.doc.lineAt(this.pos);\n let start = Math.max(line.from, this.pos - 250);\n let str = line.text.slice(start - line.from, this.pos - line.from);\n let found = str.search(ensureAnchor(expr, false));\n return found < 0 ? null : { from: start + found, to: this.pos, text: str.slice(found) };\n }\n /**\n Yields true when the query has been aborted. Can be useful in\n asynchronous queries to avoid doing work that will be ignored.\n */\n get aborted() { return this.abortListeners == null; }\n /**\n Allows you to register abort handlers, which will be called when\n the query is\n [aborted](https://codemirror.net/6/docs/ref/#autocomplete.CompletionContext.aborted).\n \n By default, running queries will not be aborted for regular\n typing or backspacing, on the assumption that they are likely to\n return a result with a\n [`validFor`](https://codemirror.net/6/docs/ref/#autocomplete.CompletionResult.validFor) field that\n allows the result to be used after all. Passing `onDocChange:\n true` will cause this query to be aborted for any document\n change.\n */\n addEventListener(type, listener, options) {\n if (type == \"abort\" && this.abortListeners) {\n this.abortListeners.push(listener);\n if (options && options.onDocChange)\n this.abortOnDocChange = true;\n }\n }\n}\nfunction toSet(chars) {\n let flat = Object.keys(chars).join(\"\");\n let words = /\\w/.test(flat);\n if (words)\n flat = flat.replace(/\\w/g, \"\");\n return `[${words ? \"\\\\w\" : \"\"}${flat.replace(/[^\\w\\s]/g, \"\\\\$&\")}]`;\n}\nfunction prefixMatch(options) {\n let first = Object.create(null), rest = Object.create(null);\n for (let { label } of options) {\n first[label[0]] = true;\n for (let i = 1; i < label.length; i++)\n rest[label[i]] = true;\n }\n let source = toSet(first) + toSet(rest) + \"*$\";\n return [new RegExp(\"^\" + source), new RegExp(source)];\n}\n/**\nGiven a a fixed array of options, return an autocompleter that\ncompletes them.\n*/\nfunction completeFromList(list) {\n let options = list.map(o => typeof o == \"string\" ? { label: o } : o);\n let [validFor, match] = options.every(o => /^\\w+$/.test(o.label)) ? [/\\w*$/, /\\w+$/] : prefixMatch(options);\n return (context) => {\n let token = context.matchBefore(match);\n return token || context.explicit ? { from: token ? token.from : context.pos, options, validFor } : null;\n };\n}\n/**\nWrap the given completion source so that it will only fire when the\ncursor is in a syntax node with one of the given names.\n*/\nfunction ifIn(nodes, source) {\n return (context) => {\n for (let pos = syntaxTree(context.state).resolveInner(context.pos, -1); pos; pos = pos.parent) {\n if (nodes.indexOf(pos.name) > -1)\n return source(context);\n if (pos.type.isTop)\n break;\n }\n return null;\n };\n}\n/**\nWrap the given completion source so that it will not fire when the\ncursor is in a syntax node with one of the given names.\n*/\nfunction ifNotIn(nodes, source) {\n return (context) => {\n for (let pos = syntaxTree(context.state).resolveInner(context.pos, -1); pos; pos = pos.parent) {\n if (nodes.indexOf(pos.name) > -1)\n return null;\n if (pos.type.isTop)\n break;\n }\n return source(context);\n };\n}\nclass Option {\n constructor(completion, source, match, score) {\n this.completion = completion;\n this.source = source;\n this.match = match;\n this.score = score;\n }\n}\nfunction cur(state) { return state.selection.main.from; }\n// Make sure the given regexp has a $ at its end and, if `start` is\n// true, a ^ at its start.\nfunction ensureAnchor(expr, start) {\n var _a;\n let { source } = expr;\n let addStart = start && source[0] != \"^\", addEnd = source[source.length - 1] != \"$\";\n if (!addStart && !addEnd)\n return expr;\n return new RegExp(`${addStart ? \"^\" : \"\"}(?:${source})${addEnd ? \"$\" : \"\"}`, (_a = expr.flags) !== null && _a !== void 0 ? _a : (expr.ignoreCase ? \"i\" : \"\"));\n}\n/**\nThis annotation is added to transactions that are produced by\npicking a completion.\n*/\nconst pickedCompletion = /*@__PURE__*/Annotation.define();\n/**\nHelper function that returns a transaction spec which inserts a\ncompletion's text in the main selection range, and any other\nselection range that has the same text in front of it.\n*/\nfunction insertCompletionText(state, text, from, to) {\n let { main } = state.selection, fromOff = from - main.from, toOff = to - main.from;\n return Object.assign(Object.assign({}, state.changeByRange(range => {\n if (range != main && from != to &&\n state.sliceDoc(range.from + fromOff, range.from + toOff) != state.sliceDoc(from, to))\n return { range };\n let lines = state.toText(text);\n return {\n changes: { from: range.from + fromOff, to: to == main.from ? range.to : range.from + toOff, insert: lines },\n range: EditorSelection.cursor(range.from + fromOff + lines.length)\n };\n })), { scrollIntoView: true, userEvent: \"input.complete\" });\n}\nconst SourceCache = /*@__PURE__*/new WeakMap();\nfunction asSource(source) {\n if (!Array.isArray(source))\n return source;\n let known = SourceCache.get(source);\n if (!known)\n SourceCache.set(source, known = completeFromList(source));\n return known;\n}\nconst startCompletionEffect = /*@__PURE__*/StateEffect.define();\nconst closeCompletionEffect = /*@__PURE__*/StateEffect.define();\n\n// A pattern matcher for fuzzy completion matching. Create an instance\n// once for a pattern, and then use that to match any number of\n// completions.\nclass FuzzyMatcher {\n constructor(pattern) {\n this.pattern = pattern;\n this.chars = [];\n this.folded = [];\n // Buffers reused by calls to `match` to track matched character\n // positions.\n this.any = [];\n this.precise = [];\n this.byWord = [];\n this.score = 0;\n this.matched = [];\n for (let p = 0; p < pattern.length;) {\n let char = codePointAt(pattern, p), size = codePointSize(char);\n this.chars.push(char);\n let part = pattern.slice(p, p + size), upper = part.toUpperCase();\n this.folded.push(codePointAt(upper == part ? part.toLowerCase() : upper, 0));\n p += size;\n }\n this.astral = pattern.length != this.chars.length;\n }\n ret(score, matched) {\n this.score = score;\n this.matched = matched;\n return this;\n }\n // Matches a given word (completion) against the pattern (input).\n // Will return a boolean indicating whether there was a match and,\n // on success, set `this.score` to the score, `this.matched` to an\n // array of `from, to` pairs indicating the matched parts of `word`.\n //\n // The score is a number that is more negative the worse the match\n // is. See `Penalty` above.\n match(word) {\n if (this.pattern.length == 0)\n return this.ret(-100 /* Penalty.NotFull */, []);\n if (word.length < this.pattern.length)\n return null;\n let { chars, folded, any, precise, byWord } = this;\n // For single-character queries, only match when they occur right\n // at the start\n if (chars.length == 1) {\n let first = codePointAt(word, 0), firstSize = codePointSize(first);\n let score = firstSize == word.length ? 0 : -100 /* Penalty.NotFull */;\n if (first == chars[0]) ;\n else if (first == folded[0])\n score += -200 /* Penalty.CaseFold */;\n else\n return null;\n return this.ret(score, [0, firstSize]);\n }\n let direct = word.indexOf(this.pattern);\n if (direct == 0)\n return this.ret(word.length == this.pattern.length ? 0 : -100 /* Penalty.NotFull */, [0, this.pattern.length]);\n let len = chars.length, anyTo = 0;\n if (direct < 0) {\n for (let i = 0, e = Math.min(word.length, 200); i < e && anyTo < len;) {\n let next = codePointAt(word, i);\n if (next == chars[anyTo] || next == folded[anyTo])\n any[anyTo++] = i;\n i += codePointSize(next);\n }\n // No match, exit immediately\n if (anyTo < len)\n return null;\n }\n // This tracks the extent of the precise (non-folded, not\n // necessarily adjacent) match\n let preciseTo = 0;\n // Tracks whether there is a match that hits only characters that\n // appear to be starting words. `byWordFolded` is set to true when\n // a case folded character is encountered in such a match\n let byWordTo = 0, byWordFolded = false;\n // If we've found a partial adjacent match, these track its state\n let adjacentTo = 0, adjacentStart = -1, adjacentEnd = -1;\n let hasLower = /[a-z]/.test(word), wordAdjacent = true;\n // Go over the option's text, scanning for the various kinds of matches\n for (let i = 0, e = Math.min(word.length, 200), prevType = 0 /* Tp.NonWord */; i < e && byWordTo < len;) {\n let next = codePointAt(word, i);\n if (direct < 0) {\n if (preciseTo < len && next == chars[preciseTo])\n precise[preciseTo++] = i;\n if (adjacentTo < len) {\n if (next == chars[adjacentTo] || next == folded[adjacentTo]) {\n if (adjacentTo == 0)\n adjacentStart = i;\n adjacentEnd = i + 1;\n adjacentTo++;\n }\n else {\n adjacentTo = 0;\n }\n }\n }\n let ch, type = next < 0xff\n ? (next >= 48 && next <= 57 || next >= 97 && next <= 122 ? 2 /* Tp.Lower */ : next >= 65 && next <= 90 ? 1 /* Tp.Upper */ : 0 /* Tp.NonWord */)\n : ((ch = fromCodePoint(next)) != ch.toLowerCase() ? 1 /* Tp.Upper */ : ch != ch.toUpperCase() ? 2 /* Tp.Lower */ : 0 /* Tp.NonWord */);\n if (!i || type == 1 /* Tp.Upper */ && hasLower || prevType == 0 /* Tp.NonWord */ && type != 0 /* Tp.NonWord */) {\n if (chars[byWordTo] == next || (folded[byWordTo] == next && (byWordFolded = true)))\n byWord[byWordTo++] = i;\n else if (byWord.length)\n wordAdjacent = false;\n }\n prevType = type;\n i += codePointSize(next);\n }\n if (byWordTo == len && byWord[0] == 0 && wordAdjacent)\n return this.result(-100 /* Penalty.ByWord */ + (byWordFolded ? -200 /* Penalty.CaseFold */ : 0), byWord, word);\n if (adjacentTo == len && adjacentStart == 0)\n return this.ret(-200 /* Penalty.CaseFold */ - word.length + (adjacentEnd == word.length ? 0 : -100 /* Penalty.NotFull */), [0, adjacentEnd]);\n if (direct > -1)\n return this.ret(-700 /* Penalty.NotStart */ - word.length, [direct, direct + this.pattern.length]);\n if (adjacentTo == len)\n return this.ret(-200 /* Penalty.CaseFold */ + -700 /* Penalty.NotStart */ - word.length, [adjacentStart, adjacentEnd]);\n if (byWordTo == len)\n return this.result(-100 /* Penalty.ByWord */ + (byWordFolded ? -200 /* Penalty.CaseFold */ : 0) + -700 /* Penalty.NotStart */ +\n (wordAdjacent ? 0 : -1100 /* Penalty.Gap */), byWord, word);\n return chars.length == 2 ? null\n : this.result((any[0] ? -700 /* Penalty.NotStart */ : 0) + -200 /* Penalty.CaseFold */ + -1100 /* Penalty.Gap */, any, word);\n }\n result(score, positions, word) {\n let result = [], i = 0;\n for (let pos of positions) {\n let to = pos + (this.astral ? codePointSize(codePointAt(word, pos)) : 1);\n if (i && result[i - 1] == pos)\n result[i - 1] = to;\n else {\n result[i++] = pos;\n result[i++] = to;\n }\n }\n return this.ret(score - word.length, result);\n }\n}\nclass StrictMatcher {\n constructor(pattern) {\n this.pattern = pattern;\n this.matched = [];\n this.score = 0;\n this.folded = pattern.toLowerCase();\n }\n match(word) {\n if (word.length < this.pattern.length)\n return null;\n let start = word.slice(0, this.pattern.length);\n let match = start == this.pattern ? 0 : start.toLowerCase() == this.folded ? -200 /* Penalty.CaseFold */ : null;\n if (match == null)\n return null;\n this.matched = [0, start.length];\n this.score = match + (word.length == this.pattern.length ? 0 : -100 /* Penalty.NotFull */);\n return this;\n }\n}\n\nconst completionConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n activateOnTyping: true,\n activateOnCompletion: () => false,\n activateOnTypingDelay: 100,\n selectOnOpen: true,\n override: null,\n closeOnBlur: true,\n maxRenderedOptions: 100,\n defaultKeymap: true,\n tooltipClass: () => \"\",\n optionClass: () => \"\",\n aboveCursor: false,\n icons: true,\n addToOptions: [],\n positionInfo: defaultPositionInfo,\n filterStrict: false,\n compareCompletions: (a, b) => a.label.localeCompare(b.label),\n interactionDelay: 75,\n updateSyncTime: 100\n }, {\n defaultKeymap: (a, b) => a && b,\n closeOnBlur: (a, b) => a && b,\n icons: (a, b) => a && b,\n tooltipClass: (a, b) => c => joinClass(a(c), b(c)),\n optionClass: (a, b) => c => joinClass(a(c), b(c)),\n addToOptions: (a, b) => a.concat(b),\n filterStrict: (a, b) => a || b,\n });\n }\n});\nfunction joinClass(a, b) {\n return a ? b ? a + \" \" + b : a : b;\n}\nfunction defaultPositionInfo(view, list, option, info, space, tooltip) {\n let rtl = view.textDirection == Direction.RTL, left = rtl, narrow = false;\n let side = \"top\", offset, maxWidth;\n let spaceLeft = list.left - space.left, spaceRight = space.right - list.right;\n let infoWidth = info.right - info.left, infoHeight = info.bottom - info.top;\n if (left && spaceLeft < Math.min(infoWidth, spaceRight))\n left = false;\n else if (!left && spaceRight < Math.min(infoWidth, spaceLeft))\n left = true;\n if (infoWidth <= (left ? spaceLeft : spaceRight)) {\n offset = Math.max(space.top, Math.min(option.top, space.bottom - infoHeight)) - list.top;\n maxWidth = Math.min(400 /* Info.Width */, left ? spaceLeft : spaceRight);\n }\n else {\n narrow = true;\n maxWidth = Math.min(400 /* Info.Width */, (rtl ? list.right : space.right - list.left) - 30 /* Info.Margin */);\n let spaceBelow = space.bottom - list.bottom;\n if (spaceBelow >= infoHeight || spaceBelow > list.top) { // Below the completion\n offset = option.bottom - list.top;\n }\n else { // Above it\n side = \"bottom\";\n offset = list.bottom - option.top;\n }\n }\n let scaleY = (list.bottom - list.top) / tooltip.offsetHeight;\n let scaleX = (list.right - list.left) / tooltip.offsetWidth;\n return {\n style: `${side}: ${offset / scaleY}px; max-width: ${maxWidth / scaleX}px`,\n class: \"cm-completionInfo-\" + (narrow ? (rtl ? \"left-narrow\" : \"right-narrow\") : left ? \"left\" : \"right\")\n };\n}\n\nfunction optionContent(config) {\n let content = config.addToOptions.slice();\n if (config.icons)\n content.push({\n render(completion) {\n let icon = document.createElement(\"div\");\n icon.classList.add(\"cm-completionIcon\");\n if (completion.type)\n icon.classList.add(...completion.type.split(/\\s+/g).map(cls => \"cm-completionIcon-\" + cls));\n icon.setAttribute(\"aria-hidden\", \"true\");\n return icon;\n },\n position: 20\n });\n content.push({\n render(completion, _s, _v, match) {\n let labelElt = document.createElement(\"span\");\n labelElt.className = \"cm-completionLabel\";\n let label = completion.displayLabel || completion.label, off = 0;\n for (let j = 0; j < match.length;) {\n let from = match[j++], to = match[j++];\n if (from > off)\n labelElt.appendChild(document.createTextNode(label.slice(off, from)));\n let span = labelElt.appendChild(document.createElement(\"span\"));\n span.appendChild(document.createTextNode(label.slice(from, to)));\n span.className = \"cm-completionMatchedText\";\n off = to;\n }\n if (off < label.length)\n labelElt.appendChild(document.createTextNode(label.slice(off)));\n return labelElt;\n },\n position: 50\n }, {\n render(completion) {\n if (!completion.detail)\n return null;\n let detailElt = document.createElement(\"span\");\n detailElt.className = \"cm-completionDetail\";\n detailElt.textContent = completion.detail;\n return detailElt;\n },\n position: 80\n });\n return content.sort((a, b) => a.position - b.position).map(a => a.render);\n}\nfunction rangeAroundSelected(total, selected, max) {\n if (total <= max)\n return { from: 0, to: total };\n if (selected < 0)\n selected = 0;\n if (selected <= (total >> 1)) {\n let off = Math.floor(selected / max);\n return { from: off * max, to: (off + 1) * max };\n }\n let off = Math.floor((total - selected) / max);\n return { from: total - (off + 1) * max, to: total - off * max };\n}\nclass CompletionTooltip {\n constructor(view, stateField, applyCompletion) {\n this.view = view;\n this.stateField = stateField;\n this.applyCompletion = applyCompletion;\n this.info = null;\n this.infoDestroy = null;\n this.placeInfoReq = {\n read: () => this.measureInfo(),\n write: (pos) => this.placeInfo(pos),\n key: this\n };\n this.space = null;\n this.currentClass = \"\";\n let cState = view.state.field(stateField);\n let { options, selected } = cState.open;\n let config = view.state.facet(completionConfig);\n this.optionContent = optionContent(config);\n this.optionClass = config.optionClass;\n this.tooltipClass = config.tooltipClass;\n this.range = rangeAroundSelected(options.length, selected, config.maxRenderedOptions);\n this.dom = document.createElement(\"div\");\n this.dom.className = \"cm-tooltip-autocomplete\";\n this.updateTooltipClass(view.state);\n this.dom.addEventListener(\"mousedown\", (e) => {\n let { options } = view.state.field(stateField).open;\n for (let dom = e.target, match; dom && dom != this.dom; dom = dom.parentNode) {\n if (dom.nodeName == \"LI\" && (match = /-(\\d+)$/.exec(dom.id)) && +match[1] < options.length) {\n this.applyCompletion(view, options[+match[1]]);\n e.preventDefault();\n return;\n }\n }\n });\n this.dom.addEventListener(\"focusout\", (e) => {\n let state = view.state.field(this.stateField, false);\n if (state && state.tooltip && view.state.facet(completionConfig).closeOnBlur &&\n e.relatedTarget != view.contentDOM)\n view.dispatch({ effects: closeCompletionEffect.of(null) });\n });\n this.showOptions(options, cState.id);\n }\n mount() { this.updateSel(); }\n showOptions(options, id) {\n if (this.list)\n this.list.remove();\n this.list = this.dom.appendChild(this.createListBox(options, id, this.range));\n this.list.addEventListener(\"scroll\", () => {\n if (this.info)\n this.view.requestMeasure(this.placeInfoReq);\n });\n }\n update(update) {\n var _a;\n let cState = update.state.field(this.stateField);\n let prevState = update.startState.field(this.stateField);\n this.updateTooltipClass(update.state);\n if (cState != prevState) {\n let { options, selected, disabled } = cState.open;\n if (!prevState.open || prevState.open.options != options) {\n this.range = rangeAroundSelected(options.length, selected, update.state.facet(completionConfig).maxRenderedOptions);\n this.showOptions(options, cState.id);\n }\n this.updateSel();\n if (disabled != ((_a = prevState.open) === null || _a === void 0 ? void 0 : _a.disabled))\n this.dom.classList.toggle(\"cm-tooltip-autocomplete-disabled\", !!disabled);\n }\n }\n updateTooltipClass(state) {\n let cls = this.tooltipClass(state);\n if (cls != this.currentClass) {\n for (let c of this.currentClass.split(\" \"))\n if (c)\n this.dom.classList.remove(c);\n for (let c of cls.split(\" \"))\n if (c)\n this.dom.classList.add(c);\n this.currentClass = cls;\n }\n }\n positioned(space) {\n this.space = space;\n if (this.info)\n this.view.requestMeasure(this.placeInfoReq);\n }\n updateSel() {\n let cState = this.view.state.field(this.stateField), open = cState.open;\n if (open.selected > -1 && open.selected < this.range.from || open.selected >= this.range.to) {\n this.range = rangeAroundSelected(open.options.length, open.selected, this.view.state.facet(completionConfig).maxRenderedOptions);\n this.showOptions(open.options, cState.id);\n }\n if (this.updateSelectedOption(open.selected)) {\n this.destroyInfo();\n let { completion } = open.options[open.selected];\n let { info } = completion;\n if (!info)\n return;\n let infoResult = typeof info === \"string\" ? document.createTextNode(info) : info(completion);\n if (!infoResult)\n return;\n if (\"then\" in infoResult) {\n infoResult.then(obj => {\n if (obj && this.view.state.field(this.stateField, false) == cState)\n this.addInfoPane(obj, completion);\n }).catch(e => logException(this.view.state, e, \"completion info\"));\n }\n else {\n this.addInfoPane(infoResult, completion);\n }\n }\n }\n addInfoPane(content, completion) {\n this.destroyInfo();\n let wrap = this.info = document.createElement(\"div\");\n wrap.className = \"cm-tooltip cm-completionInfo\";\n if (content.nodeType != null) {\n wrap.appendChild(content);\n this.infoDestroy = null;\n }\n else {\n let { dom, destroy } = content;\n wrap.appendChild(dom);\n this.infoDestroy = destroy || null;\n }\n this.dom.appendChild(wrap);\n this.view.requestMeasure(this.placeInfoReq);\n }\n updateSelectedOption(selected) {\n let set = null;\n for (let opt = this.list.firstChild, i = this.range.from; opt; opt = opt.nextSibling, i++) {\n if (opt.nodeName != \"LI\" || !opt.id) {\n i--; // A section header\n }\n else if (i == selected) {\n if (!opt.hasAttribute(\"aria-selected\")) {\n opt.setAttribute(\"aria-selected\", \"true\");\n set = opt;\n }\n }\n else {\n if (opt.hasAttribute(\"aria-selected\"))\n opt.removeAttribute(\"aria-selected\");\n }\n }\n if (set)\n scrollIntoView(this.list, set);\n return set;\n }\n measureInfo() {\n let sel = this.dom.querySelector(\"[aria-selected]\");\n if (!sel || !this.info)\n return null;\n let listRect = this.dom.getBoundingClientRect();\n let infoRect = this.info.getBoundingClientRect();\n let selRect = sel.getBoundingClientRect();\n let space = this.space;\n if (!space) {\n let win = this.dom.ownerDocument.defaultView || window;\n space = { left: 0, top: 0, right: win.innerWidth, bottom: win.innerHeight };\n }\n if (selRect.top > Math.min(space.bottom, listRect.bottom) - 10 ||\n selRect.bottom < Math.max(space.top, listRect.top) + 10)\n return null;\n return this.view.state.facet(completionConfig).positionInfo(this.view, listRect, selRect, infoRect, space, this.dom);\n }\n placeInfo(pos) {\n if (this.info) {\n if (pos) {\n if (pos.style)\n this.info.style.cssText = pos.style;\n this.info.className = \"cm-tooltip cm-completionInfo \" + (pos.class || \"\");\n }\n else {\n this.info.style.cssText = \"top: -1e6px\";\n }\n }\n }\n createListBox(options, id, range) {\n const ul = document.createElement(\"ul\");\n ul.id = id;\n ul.setAttribute(\"role\", \"listbox\");\n ul.setAttribute(\"aria-expanded\", \"true\");\n ul.setAttribute(\"aria-label\", this.view.state.phrase(\"Completions\"));\n let curSection = null;\n for (let i = range.from; i < range.to; i++) {\n let { completion, match } = options[i], { section } = completion;\n if (section) {\n let name = typeof section == \"string\" ? section : section.name;\n if (name != curSection && (i > range.from || range.from == 0)) {\n curSection = name;\n if (typeof section != \"string\" && section.header) {\n ul.appendChild(section.header(section));\n }\n else {\n let header = ul.appendChild(document.createElement(\"completion-section\"));\n header.textContent = name;\n }\n }\n }\n const li = ul.appendChild(document.createElement(\"li\"));\n li.id = id + \"-\" + i;\n li.setAttribute(\"role\", \"option\");\n let cls = this.optionClass(completion);\n if (cls)\n li.className = cls;\n for (let source of this.optionContent) {\n let node = source(completion, this.view.state, this.view, match);\n if (node)\n li.appendChild(node);\n }\n }\n if (range.from)\n ul.classList.add(\"cm-completionListIncompleteTop\");\n if (range.to < options.length)\n ul.classList.add(\"cm-completionListIncompleteBottom\");\n return ul;\n }\n destroyInfo() {\n if (this.info) {\n if (this.infoDestroy)\n this.infoDestroy();\n this.info.remove();\n this.info = null;\n }\n }\n destroy() {\n this.destroyInfo();\n }\n}\nfunction completionTooltip(stateField, applyCompletion) {\n return (view) => new CompletionTooltip(view, stateField, applyCompletion);\n}\nfunction scrollIntoView(container, element) {\n let parent = container.getBoundingClientRect();\n let self = element.getBoundingClientRect();\n let scaleY = parent.height / container.offsetHeight;\n if (self.top < parent.top)\n container.scrollTop -= (parent.top - self.top) / scaleY;\n else if (self.bottom > parent.bottom)\n container.scrollTop += (self.bottom - parent.bottom) / scaleY;\n}\n\n// Used to pick a preferred option when two options with the same\n// label occur in the result.\nfunction score(option) {\n return (option.boost || 0) * 100 + (option.apply ? 10 : 0) + (option.info ? 5 : 0) +\n (option.type ? 1 : 0);\n}\nfunction sortOptions(active, state) {\n let options = [];\n let sections = null;\n let addOption = (option) => {\n options.push(option);\n let { section } = option.completion;\n if (section) {\n if (!sections)\n sections = [];\n let name = typeof section == \"string\" ? section : section.name;\n if (!sections.some(s => s.name == name))\n sections.push(typeof section == \"string\" ? { name } : section);\n }\n };\n let conf = state.facet(completionConfig);\n for (let a of active)\n if (a.hasResult()) {\n let getMatch = a.result.getMatch;\n if (a.result.filter === false) {\n for (let option of a.result.options) {\n addOption(new Option(option, a.source, getMatch ? getMatch(option) : [], 1e9 - options.length));\n }\n }\n else {\n let pattern = state.sliceDoc(a.from, a.to), match;\n let matcher = conf.filterStrict ? new StrictMatcher(pattern) : new FuzzyMatcher(pattern);\n for (let option of a.result.options)\n if (match = matcher.match(option.label)) {\n let matched = !option.displayLabel ? match.matched : getMatch ? getMatch(option, match.matched) : [];\n addOption(new Option(option, a.source, matched, match.score + (option.boost || 0)));\n }\n }\n }\n if (sections) {\n let sectionOrder = Object.create(null), pos = 0;\n let cmp = (a, b) => { var _a, _b; return ((_a = a.rank) !== null && _a !== void 0 ? _a : 1e9) - ((_b = b.rank) !== null && _b !== void 0 ? _b : 1e9) || (a.name < b.name ? -1 : 1); };\n for (let s of sections.sort(cmp)) {\n pos -= 1e5;\n sectionOrder[s.name] = pos;\n }\n for (let option of options) {\n let { section } = option.completion;\n if (section)\n option.score += sectionOrder[typeof section == \"string\" ? section : section.name];\n }\n }\n let result = [], prev = null;\n let compare = conf.compareCompletions;\n for (let opt of options.sort((a, b) => (b.score - a.score) || compare(a.completion, b.completion))) {\n let cur = opt.completion;\n if (!prev || prev.label != cur.label || prev.detail != cur.detail ||\n (prev.type != null && cur.type != null && prev.type != cur.type) ||\n prev.apply != cur.apply || prev.boost != cur.boost)\n result.push(opt);\n else if (score(opt.completion) > score(prev))\n result[result.length - 1] = opt;\n prev = opt.completion;\n }\n return result;\n}\nclass CompletionDialog {\n constructor(options, attrs, tooltip, timestamp, selected, disabled) {\n this.options = options;\n this.attrs = attrs;\n this.tooltip = tooltip;\n this.timestamp = timestamp;\n this.selected = selected;\n this.disabled = disabled;\n }\n setSelected(selected, id) {\n return selected == this.selected || selected >= this.options.length ? this\n : new CompletionDialog(this.options, makeAttrs(id, selected), this.tooltip, this.timestamp, selected, this.disabled);\n }\n static build(active, state, id, prev, conf, didSetActive) {\n if (prev && !didSetActive && active.some(s => s.isPending))\n return prev.setDisabled();\n let options = sortOptions(active, state);\n if (!options.length)\n return prev && active.some(a => a.isPending) ? prev.setDisabled() : null;\n let selected = state.facet(completionConfig).selectOnOpen ? 0 : -1;\n if (prev && prev.selected != selected && prev.selected != -1) {\n let selectedValue = prev.options[prev.selected].completion;\n for (let i = 0; i < options.length; i++)\n if (options[i].completion == selectedValue) {\n selected = i;\n break;\n }\n }\n return new CompletionDialog(options, makeAttrs(id, selected), {\n pos: active.reduce((a, b) => b.hasResult() ? Math.min(a, b.from) : a, 1e8),\n create: createTooltip,\n above: conf.aboveCursor,\n }, prev ? prev.timestamp : Date.now(), selected, false);\n }\n map(changes) {\n return new CompletionDialog(this.options, this.attrs, Object.assign(Object.assign({}, this.tooltip), { pos: changes.mapPos(this.tooltip.pos) }), this.timestamp, this.selected, this.disabled);\n }\n setDisabled() {\n return new CompletionDialog(this.options, this.attrs, this.tooltip, this.timestamp, this.selected, true);\n }\n}\nclass CompletionState {\n constructor(active, id, open) {\n this.active = active;\n this.id = id;\n this.open = open;\n }\n static start() {\n return new CompletionState(none, \"cm-ac-\" + Math.floor(Math.random() * 2e6).toString(36), null);\n }\n update(tr) {\n let { state } = tr, conf = state.facet(completionConfig);\n let sources = conf.override ||\n state.languageDataAt(\"autocomplete\", cur(state)).map(asSource);\n let active = sources.map(source => {\n let value = this.active.find(s => s.source == source) ||\n new ActiveSource(source, this.active.some(a => a.state != 0 /* State.Inactive */) ? 1 /* State.Pending */ : 0 /* State.Inactive */);\n return value.update(tr, conf);\n });\n if (active.length == this.active.length && active.every((a, i) => a == this.active[i]))\n active = this.active;\n let open = this.open, didSet = tr.effects.some(e => e.is(setActiveEffect));\n if (open && tr.docChanged)\n open = open.map(tr.changes);\n if (tr.selection || active.some(a => a.hasResult() && tr.changes.touchesRange(a.from, a.to)) ||\n !sameResults(active, this.active) || didSet)\n open = CompletionDialog.build(active, state, this.id, open, conf, didSet);\n else if (open && open.disabled && !active.some(a => a.isPending))\n open = null;\n if (!open && active.every(a => !a.isPending) && active.some(a => a.hasResult()))\n active = active.map(a => a.hasResult() ? new ActiveSource(a.source, 0 /* State.Inactive */) : a);\n for (let effect of tr.effects)\n if (effect.is(setSelectedEffect))\n open = open && open.setSelected(effect.value, this.id);\n return active == this.active && open == this.open ? this : new CompletionState(active, this.id, open);\n }\n get tooltip() { return this.open ? this.open.tooltip : null; }\n get attrs() { return this.open ? this.open.attrs : this.active.length ? baseAttrs : noAttrs; }\n}\nfunction sameResults(a, b) {\n if (a == b)\n return true;\n for (let iA = 0, iB = 0;;) {\n while (iA < a.length && !a[iA].hasResult())\n iA++;\n while (iB < b.length && !b[iB].hasResult())\n iB++;\n let endA = iA == a.length, endB = iB == b.length;\n if (endA || endB)\n return endA == endB;\n if (a[iA++].result != b[iB++].result)\n return false;\n }\n}\nconst baseAttrs = {\n \"aria-autocomplete\": \"list\"\n};\nconst noAttrs = {};\nfunction makeAttrs(id, selected) {\n let result = {\n \"aria-autocomplete\": \"list\",\n \"aria-haspopup\": \"listbox\",\n \"aria-controls\": id\n };\n if (selected > -1)\n result[\"aria-activedescendant\"] = id + \"-\" + selected;\n return result;\n}\nconst none = [];\nfunction getUpdateType(tr, conf) {\n if (tr.isUserEvent(\"input.complete\")) {\n let completion = tr.annotation(pickedCompletion);\n if (completion && conf.activateOnCompletion(completion))\n return 4 /* UpdateType.Activate */ | 8 /* UpdateType.Reset */;\n }\n let typing = tr.isUserEvent(\"input.type\");\n return typing && conf.activateOnTyping ? 4 /* UpdateType.Activate */ | 1 /* UpdateType.Typing */\n : typing ? 1 /* UpdateType.Typing */\n : tr.isUserEvent(\"delete.backward\") ? 2 /* UpdateType.Backspacing */\n : tr.selection ? 8 /* UpdateType.Reset */\n : tr.docChanged ? 16 /* UpdateType.ResetIfTouching */ : 0 /* UpdateType.None */;\n}\nclass ActiveSource {\n constructor(source, state, explicit = false) {\n this.source = source;\n this.state = state;\n this.explicit = explicit;\n }\n hasResult() { return false; }\n get isPending() { return this.state == 1 /* State.Pending */; }\n update(tr, conf) {\n let type = getUpdateType(tr, conf), value = this;\n if ((type & 8 /* UpdateType.Reset */) || (type & 16 /* UpdateType.ResetIfTouching */) && this.touches(tr))\n value = new ActiveSource(value.source, 0 /* State.Inactive */);\n if ((type & 4 /* UpdateType.Activate */) && value.state == 0 /* State.Inactive */)\n value = new ActiveSource(this.source, 1 /* State.Pending */);\n value = value.updateFor(tr, type);\n for (let effect of tr.effects) {\n if (effect.is(startCompletionEffect))\n value = new ActiveSource(value.source, 1 /* State.Pending */, effect.value);\n else if (effect.is(closeCompletionEffect))\n value = new ActiveSource(value.source, 0 /* State.Inactive */);\n else if (effect.is(setActiveEffect))\n for (let active of effect.value)\n if (active.source == value.source)\n value = active;\n }\n return value;\n }\n updateFor(tr, type) { return this.map(tr.changes); }\n map(changes) { return this; }\n touches(tr) {\n return tr.changes.touchesRange(cur(tr.state));\n }\n}\nclass ActiveResult extends ActiveSource {\n constructor(source, explicit, limit, result, from, to) {\n super(source, 3 /* State.Result */, explicit);\n this.limit = limit;\n this.result = result;\n this.from = from;\n this.to = to;\n }\n hasResult() { return true; }\n updateFor(tr, type) {\n var _a;\n if (!(type & 3 /* UpdateType.SimpleInteraction */))\n return this.map(tr.changes);\n let result = this.result;\n if (result.map && !tr.changes.empty)\n result = result.map(result, tr.changes);\n let from = tr.changes.mapPos(this.from), to = tr.changes.mapPos(this.to, 1);\n let pos = cur(tr.state);\n if (pos > to || !result ||\n (type & 2 /* UpdateType.Backspacing */) && (cur(tr.startState) == this.from || pos < this.limit))\n return new ActiveSource(this.source, type & 4 /* UpdateType.Activate */ ? 1 /* State.Pending */ : 0 /* State.Inactive */);\n let limit = tr.changes.mapPos(this.limit);\n if (checkValid(result.validFor, tr.state, from, to))\n return new ActiveResult(this.source, this.explicit, limit, result, from, to);\n if (result.update &&\n (result = result.update(result, from, to, new CompletionContext(tr.state, pos, false))))\n return new ActiveResult(this.source, this.explicit, limit, result, result.from, (_a = result.to) !== null && _a !== void 0 ? _a : cur(tr.state));\n return new ActiveSource(this.source, 1 /* State.Pending */, this.explicit);\n }\n map(mapping) {\n if (mapping.empty)\n return this;\n let result = this.result.map ? this.result.map(this.result, mapping) : this.result;\n if (!result)\n return new ActiveSource(this.source, 0 /* State.Inactive */);\n return new ActiveResult(this.source, this.explicit, mapping.mapPos(this.limit), this.result, mapping.mapPos(this.from), mapping.mapPos(this.to, 1));\n }\n touches(tr) {\n return tr.changes.touchesRange(this.from, this.to);\n }\n}\nfunction checkValid(validFor, state, from, to) {\n if (!validFor)\n return false;\n let text = state.sliceDoc(from, to);\n return typeof validFor == \"function\" ? validFor(text, from, to, state) : ensureAnchor(validFor, true).test(text);\n}\nconst setActiveEffect = /*@__PURE__*/StateEffect.define({\n map(sources, mapping) { return sources.map(s => s.map(mapping)); }\n});\nconst setSelectedEffect = /*@__PURE__*/StateEffect.define();\nconst completionState = /*@__PURE__*/StateField.define({\n create() { return CompletionState.start(); },\n update(value, tr) { return value.update(tr); },\n provide: f => [\n showTooltip.from(f, val => val.tooltip),\n EditorView.contentAttributes.from(f, state => state.attrs)\n ]\n});\nfunction applyCompletion(view, option) {\n const apply = option.completion.apply || option.completion.label;\n let result = view.state.field(completionState).active.find(a => a.source == option.source);\n if (!(result instanceof ActiveResult))\n return false;\n if (typeof apply == \"string\")\n view.dispatch(Object.assign(Object.assign({}, insertCompletionText(view.state, apply, result.from, result.to)), { annotations: pickedCompletion.of(option.completion) }));\n else\n apply(view, option.completion, result.from, result.to);\n return true;\n}\nconst createTooltip = /*@__PURE__*/completionTooltip(completionState, applyCompletion);\n\n/**\nReturns a command that moves the completion selection forward or\nbackward by the given amount.\n*/\nfunction moveCompletionSelection(forward, by = \"option\") {\n return (view) => {\n let cState = view.state.field(completionState, false);\n if (!cState || !cState.open || cState.open.disabled ||\n Date.now() - cState.open.timestamp < view.state.facet(completionConfig).interactionDelay)\n return false;\n let step = 1, tooltip;\n if (by == \"page\" && (tooltip = getTooltip(view, cState.open.tooltip)))\n step = Math.max(2, Math.floor(tooltip.dom.offsetHeight /\n tooltip.dom.querySelector(\"li\").offsetHeight) - 1);\n let { length } = cState.open.options;\n let selected = cState.open.selected > -1 ? cState.open.selected + step * (forward ? 1 : -1) : forward ? 0 : length - 1;\n if (selected < 0)\n selected = by == \"page\" ? 0 : length - 1;\n else if (selected >= length)\n selected = by == \"page\" ? length - 1 : 0;\n view.dispatch({ effects: setSelectedEffect.of(selected) });\n return true;\n };\n}\n/**\nAccept the current completion.\n*/\nconst acceptCompletion = (view) => {\n let cState = view.state.field(completionState, false);\n if (view.state.readOnly || !cState || !cState.open || cState.open.selected < 0 || cState.open.disabled ||\n Date.now() - cState.open.timestamp < view.state.facet(completionConfig).interactionDelay)\n return false;\n return applyCompletion(view, cState.open.options[cState.open.selected]);\n};\n/**\nExplicitly start autocompletion.\n*/\nconst startCompletion = (view) => {\n let cState = view.state.field(completionState, false);\n if (!cState)\n return false;\n view.dispatch({ effects: startCompletionEffect.of(true) });\n return true;\n};\n/**\nClose the currently active completion.\n*/\nconst closeCompletion = (view) => {\n let cState = view.state.field(completionState, false);\n if (!cState || !cState.active.some(a => a.state != 0 /* State.Inactive */))\n return false;\n view.dispatch({ effects: closeCompletionEffect.of(null) });\n return true;\n};\nclass RunningQuery {\n constructor(active, context) {\n this.active = active;\n this.context = context;\n this.time = Date.now();\n this.updates = [];\n // Note that 'undefined' means 'not done yet', whereas 'null' means\n // 'query returned null'.\n this.done = undefined;\n }\n}\nconst MaxUpdateCount = 50, MinAbortTime = 1000;\nconst completionPlugin = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.debounceUpdate = -1;\n this.running = [];\n this.debounceAccept = -1;\n this.pendingStart = false;\n this.composing = 0 /* CompositionState.None */;\n for (let active of view.state.field(completionState).active)\n if (active.isPending)\n this.startQuery(active);\n }\n update(update) {\n let cState = update.state.field(completionState);\n let conf = update.state.facet(completionConfig);\n if (!update.selectionSet && !update.docChanged && update.startState.field(completionState) == cState)\n return;\n let doesReset = update.transactions.some(tr => {\n let type = getUpdateType(tr, conf);\n return (type & 8 /* UpdateType.Reset */) || (tr.selection || tr.docChanged) && !(type & 3 /* UpdateType.SimpleInteraction */);\n });\n for (let i = 0; i < this.running.length; i++) {\n let query = this.running[i];\n if (doesReset ||\n query.context.abortOnDocChange && update.docChanged ||\n query.updates.length + update.transactions.length > MaxUpdateCount && Date.now() - query.time > MinAbortTime) {\n for (let handler of query.context.abortListeners) {\n try {\n handler();\n }\n catch (e) {\n logException(this.view.state, e);\n }\n }\n query.context.abortListeners = null;\n this.running.splice(i--, 1);\n }\n else {\n query.updates.push(...update.transactions);\n }\n }\n if (this.debounceUpdate > -1)\n clearTimeout(this.debounceUpdate);\n if (update.transactions.some(tr => tr.effects.some(e => e.is(startCompletionEffect))))\n this.pendingStart = true;\n let delay = this.pendingStart ? 50 : conf.activateOnTypingDelay;\n this.debounceUpdate = cState.active.some(a => a.isPending && !this.running.some(q => q.active.source == a.source))\n ? setTimeout(() => this.startUpdate(), delay) : -1;\n if (this.composing != 0 /* CompositionState.None */)\n for (let tr of update.transactions) {\n if (tr.isUserEvent(\"input.type\"))\n this.composing = 2 /* CompositionState.Changed */;\n else if (this.composing == 2 /* CompositionState.Changed */ && tr.selection)\n this.composing = 3 /* CompositionState.ChangedAndMoved */;\n }\n }\n startUpdate() {\n this.debounceUpdate = -1;\n this.pendingStart = false;\n let { state } = this.view, cState = state.field(completionState);\n for (let active of cState.active) {\n if (active.isPending && !this.running.some(r => r.active.source == active.source))\n this.startQuery(active);\n }\n if (this.running.length && cState.open && cState.open.disabled)\n this.debounceAccept = setTimeout(() => this.accept(), this.view.state.facet(completionConfig).updateSyncTime);\n }\n startQuery(active) {\n let { state } = this.view, pos = cur(state);\n let context = new CompletionContext(state, pos, active.explicit, this.view);\n let pending = new RunningQuery(active, context);\n this.running.push(pending);\n Promise.resolve(active.source(context)).then(result => {\n if (!pending.context.aborted) {\n pending.done = result || null;\n this.scheduleAccept();\n }\n }, err => {\n this.view.dispatch({ effects: closeCompletionEffect.of(null) });\n logException(this.view.state, err);\n });\n }\n scheduleAccept() {\n if (this.running.every(q => q.done !== undefined))\n this.accept();\n else if (this.debounceAccept < 0)\n this.debounceAccept = setTimeout(() => this.accept(), this.view.state.facet(completionConfig).updateSyncTime);\n }\n // For each finished query in this.running, try to create a result\n // or, if appropriate, restart the query.\n accept() {\n var _a;\n if (this.debounceAccept > -1)\n clearTimeout(this.debounceAccept);\n this.debounceAccept = -1;\n let updated = [];\n let conf = this.view.state.facet(completionConfig), cState = this.view.state.field(completionState);\n for (let i = 0; i < this.running.length; i++) {\n let query = this.running[i];\n if (query.done === undefined)\n continue;\n this.running.splice(i--, 1);\n if (query.done) {\n let pos = cur(query.updates.length ? query.updates[0].startState : this.view.state);\n let limit = Math.min(pos, query.done.from + (query.active.explicit ? 0 : 1));\n let active = new ActiveResult(query.active.source, query.active.explicit, limit, query.done, query.done.from, (_a = query.done.to) !== null && _a !== void 0 ? _a : pos);\n // Replay the transactions that happened since the start of\n // the request and see if that preserves the result\n for (let tr of query.updates)\n active = active.update(tr, conf);\n if (active.hasResult()) {\n updated.push(active);\n continue;\n }\n }\n let current = cState.active.find(a => a.source == query.active.source);\n if (current && current.isPending) {\n if (query.done == null) {\n // Explicitly failed. Should clear the pending status if it\n // hasn't been re-set in the meantime.\n let active = new ActiveSource(query.active.source, 0 /* State.Inactive */);\n for (let tr of query.updates)\n active = active.update(tr, conf);\n if (!active.isPending)\n updated.push(active);\n }\n else {\n // Cleared by subsequent transactions. Restart.\n this.startQuery(current);\n }\n }\n }\n if (updated.length || cState.open && cState.open.disabled)\n this.view.dispatch({ effects: setActiveEffect.of(updated) });\n }\n}, {\n eventHandlers: {\n blur(event) {\n let state = this.view.state.field(completionState, false);\n if (state && state.tooltip && this.view.state.facet(completionConfig).closeOnBlur) {\n let dialog = state.open && getTooltip(this.view, state.open.tooltip);\n if (!dialog || !dialog.dom.contains(event.relatedTarget))\n setTimeout(() => this.view.dispatch({ effects: closeCompletionEffect.of(null) }), 10);\n }\n },\n compositionstart() {\n this.composing = 1 /* CompositionState.Started */;\n },\n compositionend() {\n if (this.composing == 3 /* CompositionState.ChangedAndMoved */) {\n // Safari fires compositionend events synchronously, possibly\n // from inside an update, so dispatch asynchronously to avoid reentrancy\n setTimeout(() => this.view.dispatch({ effects: startCompletionEffect.of(false) }), 20);\n }\n this.composing = 0 /* CompositionState.None */;\n }\n }\n});\nconst windows = typeof navigator == \"object\" && /*@__PURE__*//Win/.test(navigator.platform);\nconst commitCharacters = /*@__PURE__*/Prec.highest(/*@__PURE__*/EditorView.domEventHandlers({\n keydown(event, view) {\n let field = view.state.field(completionState, false);\n if (!field || !field.open || field.open.disabled || field.open.selected < 0 ||\n event.key.length > 1 || event.ctrlKey && !(windows && event.altKey) || event.metaKey)\n return false;\n let option = field.open.options[field.open.selected];\n let result = field.active.find(a => a.source == option.source);\n let commitChars = option.completion.commitCharacters || result.result.commitCharacters;\n if (commitChars && commitChars.indexOf(event.key) > -1)\n applyCompletion(view, option);\n return false;\n }\n}));\n\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-tooltip.cm-tooltip-autocomplete\": {\n \"& > ul\": {\n fontFamily: \"monospace\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden auto\",\n maxWidth_fallback: \"700px\",\n maxWidth: \"min(700px, 95vw)\",\n minWidth: \"250px\",\n maxHeight: \"10em\",\n height: \"100%\",\n listStyle: \"none\",\n margin: 0,\n padding: 0,\n \"& > li, & > completion-section\": {\n padding: \"1px 3px\",\n lineHeight: 1.2\n },\n \"& > li\": {\n overflowX: \"hidden\",\n textOverflow: \"ellipsis\",\n cursor: \"pointer\"\n },\n \"& > completion-section\": {\n display: \"list-item\",\n borderBottom: \"1px solid silver\",\n paddingLeft: \"0.5em\",\n opacity: 0.7\n }\n }\n },\n \"&light .cm-tooltip-autocomplete ul li[aria-selected]\": {\n background: \"#17c\",\n color: \"white\",\n },\n \"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]\": {\n background: \"#777\",\n },\n \"&dark .cm-tooltip-autocomplete ul li[aria-selected]\": {\n background: \"#347\",\n color: \"white\",\n },\n \"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]\": {\n background: \"#444\",\n },\n \".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after\": {\n content: '\"···\"',\n opacity: 0.5,\n display: \"block\",\n textAlign: \"center\"\n },\n \".cm-tooltip.cm-completionInfo\": {\n position: \"absolute\",\n padding: \"3px 9px\",\n width: \"max-content\",\n maxWidth: `${400 /* Info.Width */}px`,\n boxSizing: \"border-box\",\n whiteSpace: \"pre-line\"\n },\n \".cm-completionInfo.cm-completionInfo-left\": { right: \"100%\" },\n \".cm-completionInfo.cm-completionInfo-right\": { left: \"100%\" },\n \".cm-completionInfo.cm-completionInfo-left-narrow\": { right: `${30 /* Info.Margin */}px` },\n \".cm-completionInfo.cm-completionInfo-right-narrow\": { left: `${30 /* Info.Margin */}px` },\n \"&light .cm-snippetField\": { backgroundColor: \"#00000022\" },\n \"&dark .cm-snippetField\": { backgroundColor: \"#ffffff22\" },\n \".cm-snippetFieldPosition\": {\n verticalAlign: \"text-top\",\n width: 0,\n height: \"1.15em\",\n display: \"inline-block\",\n margin: \"0 -0.7px -.7em\",\n borderLeft: \"1.4px dotted #888\"\n },\n \".cm-completionMatchedText\": {\n textDecoration: \"underline\"\n },\n \".cm-completionDetail\": {\n marginLeft: \"0.5em\",\n fontStyle: \"italic\"\n },\n \".cm-completionIcon\": {\n fontSize: \"90%\",\n width: \".8em\",\n display: \"inline-block\",\n textAlign: \"center\",\n paddingRight: \".6em\",\n opacity: \"0.6\",\n boxSizing: \"content-box\"\n },\n \".cm-completionIcon-function, .cm-completionIcon-method\": {\n \"&:after\": { content: \"'ƒ'\" }\n },\n \".cm-completionIcon-class\": {\n \"&:after\": { content: \"'○'\" }\n },\n \".cm-completionIcon-interface\": {\n \"&:after\": { content: \"'◌'\" }\n },\n \".cm-completionIcon-variable\": {\n \"&:after\": { content: \"'𝑥'\" }\n },\n \".cm-completionIcon-constant\": {\n \"&:after\": { content: \"'𝐶'\" }\n },\n \".cm-completionIcon-type\": {\n \"&:after\": { content: \"'𝑡'\" }\n },\n \".cm-completionIcon-enum\": {\n \"&:after\": { content: \"'∪'\" }\n },\n \".cm-completionIcon-property\": {\n \"&:after\": { content: \"'□'\" }\n },\n \".cm-completionIcon-keyword\": {\n \"&:after\": { content: \"'🔑\\uFE0E'\" } // Disable emoji rendering\n },\n \".cm-completionIcon-namespace\": {\n \"&:after\": { content: \"'▢'\" }\n },\n \".cm-completionIcon-text\": {\n \"&:after\": { content: \"'abc'\", fontSize: \"50%\", verticalAlign: \"middle\" }\n }\n});\n\nclass FieldPos {\n constructor(field, line, from, to) {\n this.field = field;\n this.line = line;\n this.from = from;\n this.to = to;\n }\n}\nclass FieldRange {\n constructor(field, from, to) {\n this.field = field;\n this.from = from;\n this.to = to;\n }\n map(changes) {\n let from = changes.mapPos(this.from, -1, MapMode.TrackDel);\n let to = changes.mapPos(this.to, 1, MapMode.TrackDel);\n return from == null || to == null ? null : new FieldRange(this.field, from, to);\n }\n}\nclass Snippet {\n constructor(lines, fieldPositions) {\n this.lines = lines;\n this.fieldPositions = fieldPositions;\n }\n instantiate(state, pos) {\n let text = [], lineStart = [pos];\n let lineObj = state.doc.lineAt(pos), baseIndent = /^\\s*/.exec(lineObj.text)[0];\n for (let line of this.lines) {\n if (text.length) {\n let indent = baseIndent, tabs = /^\\t*/.exec(line)[0].length;\n for (let i = 0; i < tabs; i++)\n indent += state.facet(indentUnit);\n lineStart.push(pos + indent.length - tabs);\n line = indent + line.slice(tabs);\n }\n text.push(line);\n pos += line.length + 1;\n }\n let ranges = this.fieldPositions.map(pos => new FieldRange(pos.field, lineStart[pos.line] + pos.from, lineStart[pos.line] + pos.to));\n return { text, ranges };\n }\n static parse(template) {\n let fields = [];\n let lines = [], positions = [], m;\n for (let line of template.split(/\\r\\n?|\\n/)) {\n while (m = /[#$]\\{(?:(\\d+)(?::([^}]*))?|((?:\\\\[{}]|[^}])*))\\}/.exec(line)) {\n let seq = m[1] ? +m[1] : null, rawName = m[2] || m[3] || \"\", found = -1;\n let name = rawName.replace(/\\\\[{}]/g, m => m[1]);\n for (let i = 0; i < fields.length; i++) {\n if (seq != null ? fields[i].seq == seq : name ? fields[i].name == name : false)\n found = i;\n }\n if (found < 0) {\n let i = 0;\n while (i < fields.length && (seq == null || (fields[i].seq != null && fields[i].seq < seq)))\n i++;\n fields.splice(i, 0, { seq, name });\n found = i;\n for (let pos of positions)\n if (pos.field >= found)\n pos.field++;\n }\n positions.push(new FieldPos(found, lines.length, m.index, m.index + name.length));\n line = line.slice(0, m.index) + rawName + line.slice(m.index + m[0].length);\n }\n line = line.replace(/\\\\([{}])/g, (_, brace, index) => {\n for (let pos of positions)\n if (pos.line == lines.length && pos.from > index) {\n pos.from--;\n pos.to--;\n }\n return brace;\n });\n lines.push(line);\n }\n return new Snippet(lines, positions);\n }\n}\nlet fieldMarker = /*@__PURE__*/Decoration.widget({ widget: /*@__PURE__*/new class extends WidgetType {\n toDOM() {\n let span = document.createElement(\"span\");\n span.className = \"cm-snippetFieldPosition\";\n return span;\n }\n ignoreEvent() { return false; }\n } });\nlet fieldRange = /*@__PURE__*/Decoration.mark({ class: \"cm-snippetField\" });\nclass ActiveSnippet {\n constructor(ranges, active) {\n this.ranges = ranges;\n this.active = active;\n this.deco = Decoration.set(ranges.map(r => (r.from == r.to ? fieldMarker : fieldRange).range(r.from, r.to)));\n }\n map(changes) {\n let ranges = [];\n for (let r of this.ranges) {\n let mapped = r.map(changes);\n if (!mapped)\n return null;\n ranges.push(mapped);\n }\n return new ActiveSnippet(ranges, this.active);\n }\n selectionInsideField(sel) {\n return sel.ranges.every(range => this.ranges.some(r => r.field == this.active && r.from <= range.from && r.to >= range.to));\n }\n}\nconst setActive = /*@__PURE__*/StateEffect.define({\n map(value, changes) { return value && value.map(changes); }\n});\nconst moveToField = /*@__PURE__*/StateEffect.define();\nconst snippetState = /*@__PURE__*/StateField.define({\n create() { return null; },\n update(value, tr) {\n for (let effect of tr.effects) {\n if (effect.is(setActive))\n return effect.value;\n if (effect.is(moveToField) && value)\n return new ActiveSnippet(value.ranges, effect.value);\n }\n if (value && tr.docChanged)\n value = value.map(tr.changes);\n if (value && tr.selection && !value.selectionInsideField(tr.selection))\n value = null;\n return value;\n },\n provide: f => EditorView.decorations.from(f, val => val ? val.deco : Decoration.none)\n});\nfunction fieldSelection(ranges, field) {\n return EditorSelection.create(ranges.filter(r => r.field == field).map(r => EditorSelection.range(r.from, r.to)));\n}\n/**\nConvert a snippet template to a function that can\n[apply](https://codemirror.net/6/docs/ref/#autocomplete.Completion.apply) it. Snippets are written\nusing syntax like this:\n\n \"for (let ${index} = 0; ${index} < ${end}; ${index}++) {\\n\\t${}\\n}\"\n\nEach `${}` placeholder (you may also use `#{}`) indicates a field\nthat the user can fill in. Its name, if any, will be the default\ncontent for the field.\n\nWhen the snippet is activated by calling the returned function,\nthe code is inserted at the given position. Newlines in the\ntemplate are indented by the indentation of the start line, plus\none [indent unit](https://codemirror.net/6/docs/ref/#language.indentUnit) per tab character after\nthe newline.\n\nOn activation, (all instances of) the first field are selected.\nThe user can move between fields with Tab and Shift-Tab as long as\nthe fields are active. Moving to the last field or moving the\ncursor out of the current field deactivates the fields.\n\nThe order of fields defaults to textual order, but you can add\nnumbers to placeholders (`${1}` or `${1:defaultText}`) to provide\na custom order.\n\nTo include a literal `{` or `}` in your template, put a backslash\nin front of it. This will be removed and the brace will not be\ninterpreted as indicating a placeholder.\n*/\nfunction snippet(template) {\n let snippet = Snippet.parse(template);\n return (editor, completion, from, to) => {\n let { text, ranges } = snippet.instantiate(editor.state, from);\n let spec = {\n changes: { from, to, insert: Text.of(text) },\n scrollIntoView: true,\n annotations: completion ? [pickedCompletion.of(completion), Transaction.userEvent.of(\"input.complete\")] : undefined\n };\n if (ranges.length)\n spec.selection = fieldSelection(ranges, 0);\n if (ranges.some(r => r.field > 0)) {\n let active = new ActiveSnippet(ranges, 0);\n let effects = spec.effects = [setActive.of(active)];\n if (editor.state.field(snippetState, false) === undefined)\n effects.push(StateEffect.appendConfig.of([snippetState, addSnippetKeymap, snippetPointerHandler, baseTheme]));\n }\n editor.dispatch(editor.state.update(spec));\n };\n}\nfunction moveField(dir) {\n return ({ state, dispatch }) => {\n let active = state.field(snippetState, false);\n if (!active || dir < 0 && active.active == 0)\n return false;\n let next = active.active + dir, last = dir > 0 && !active.ranges.some(r => r.field == next + dir);\n dispatch(state.update({\n selection: fieldSelection(active.ranges, next),\n effects: setActive.of(last ? null : new ActiveSnippet(active.ranges, next)),\n scrollIntoView: true\n }));\n return true;\n };\n}\n/**\nA command that clears the active snippet, if any.\n*/\nconst clearSnippet = ({ state, dispatch }) => {\n let active = state.field(snippetState, false);\n if (!active)\n return false;\n dispatch(state.update({ effects: setActive.of(null) }));\n return true;\n};\n/**\nMove to the next snippet field, if available.\n*/\nconst nextSnippetField = /*@__PURE__*/moveField(1);\n/**\nMove to the previous snippet field, if available.\n*/\nconst prevSnippetField = /*@__PURE__*/moveField(-1);\n/**\nCheck if there is an active snippet with a next field for\n`nextSnippetField` to move to.\n*/\nfunction hasNextSnippetField(state) {\n let active = state.field(snippetState, false);\n return !!(active && active.ranges.some(r => r.field == active.active + 1));\n}\n/**\nReturns true if there is an active snippet and a previous field\nfor `prevSnippetField` to move to.\n*/\nfunction hasPrevSnippetField(state) {\n let active = state.field(snippetState, false);\n return !!(active && active.active > 0);\n}\nconst defaultSnippetKeymap = [\n { key: \"Tab\", run: nextSnippetField, shift: prevSnippetField },\n { key: \"Escape\", run: clearSnippet }\n];\n/**\nA facet that can be used to configure the key bindings used by\nsnippets. The default binds Tab to\n[`nextSnippetField`](https://codemirror.net/6/docs/ref/#autocomplete.nextSnippetField), Shift-Tab to\n[`prevSnippetField`](https://codemirror.net/6/docs/ref/#autocomplete.prevSnippetField), and Escape\nto [`clearSnippet`](https://codemirror.net/6/docs/ref/#autocomplete.clearSnippet).\n*/\nconst snippetKeymap = /*@__PURE__*/Facet.define({\n combine(maps) { return maps.length ? maps[0] : defaultSnippetKeymap; }\n});\nconst addSnippetKeymap = /*@__PURE__*/Prec.highest(/*@__PURE__*/keymap.compute([snippetKeymap], state => state.facet(snippetKeymap)));\n/**\nCreate a completion from a snippet. Returns an object with the\nproperties from `completion`, plus an `apply` function that\napplies the snippet.\n*/\nfunction snippetCompletion(template, completion) {\n return Object.assign(Object.assign({}, completion), { apply: snippet(template) });\n}\nconst snippetPointerHandler = /*@__PURE__*/EditorView.domEventHandlers({\n mousedown(event, view) {\n let active = view.state.field(snippetState, false), pos;\n if (!active || (pos = view.posAtCoords({ x: event.clientX, y: event.clientY })) == null)\n return false;\n let match = active.ranges.find(r => r.from <= pos && r.to >= pos);\n if (!match || match.field == active.active)\n return false;\n view.dispatch({\n selection: fieldSelection(active.ranges, match.field),\n effects: setActive.of(active.ranges.some(r => r.field > match.field)\n ? new ActiveSnippet(active.ranges, match.field) : null),\n scrollIntoView: true\n });\n return true;\n }\n});\n\nfunction wordRE(wordChars) {\n let escaped = wordChars.replace(/[\\]\\-\\\\]/g, \"\\\\$&\");\n try {\n return new RegExp(`[\\\\p{Alphabetic}\\\\p{Number}_${escaped}]+`, \"ug\");\n }\n catch (_a) {\n return new RegExp(`[\\w${escaped}]`, \"g\");\n }\n}\nfunction mapRE(re, f) {\n return new RegExp(f(re.source), re.unicode ? \"u\" : \"\");\n}\nconst wordCaches = /*@__PURE__*/Object.create(null);\nfunction wordCache(wordChars) {\n return wordCaches[wordChars] || (wordCaches[wordChars] = new WeakMap);\n}\nfunction storeWords(doc, wordRE, result, seen, ignoreAt) {\n for (let lines = doc.iterLines(), pos = 0; !lines.next().done;) {\n let { value } = lines, m;\n wordRE.lastIndex = 0;\n while (m = wordRE.exec(value)) {\n if (!seen[m[0]] && pos + m.index != ignoreAt) {\n result.push({ type: \"text\", label: m[0] });\n seen[m[0]] = true;\n if (result.length >= 2000 /* C.MaxList */)\n return;\n }\n }\n pos += value.length + 1;\n }\n}\nfunction collectWords(doc, cache, wordRE, to, ignoreAt) {\n let big = doc.length >= 1000 /* C.MinCacheLen */;\n let cached = big && cache.get(doc);\n if (cached)\n return cached;\n let result = [], seen = Object.create(null);\n if (doc.children) {\n let pos = 0;\n for (let ch of doc.children) {\n if (ch.length >= 1000 /* C.MinCacheLen */) {\n for (let c of collectWords(ch, cache, wordRE, to - pos, ignoreAt - pos)) {\n if (!seen[c.label]) {\n seen[c.label] = true;\n result.push(c);\n }\n }\n }\n else {\n storeWords(ch, wordRE, result, seen, ignoreAt - pos);\n }\n pos += ch.length + 1;\n }\n }\n else {\n storeWords(doc, wordRE, result, seen, ignoreAt);\n }\n if (big && result.length < 2000 /* C.MaxList */)\n cache.set(doc, result);\n return result;\n}\n/**\nA completion source that will scan the document for words (using a\n[character categorizer](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer)), and\nreturn those as completions.\n*/\nconst completeAnyWord = context => {\n let wordChars = context.state.languageDataAt(\"wordChars\", context.pos).join(\"\");\n let re = wordRE(wordChars);\n let token = context.matchBefore(mapRE(re, s => s + \"$\"));\n if (!token && !context.explicit)\n return null;\n let from = token ? token.from : context.pos;\n let options = collectWords(context.state.doc, wordCache(wordChars), re, 50000 /* C.Range */, from);\n return { from, options, validFor: mapRE(re, s => \"^\" + s) };\n};\n\nconst defaults = {\n brackets: [\"(\", \"[\", \"{\", \"'\", '\"'],\n before: \")]}:;>\",\n stringPrefixes: []\n};\nconst closeBracketEffect = /*@__PURE__*/StateEffect.define({\n map(value, mapping) {\n let mapped = mapping.mapPos(value, -1, MapMode.TrackAfter);\n return mapped == null ? undefined : mapped;\n }\n});\nconst closedBracket = /*@__PURE__*/new class extends RangeValue {\n};\nclosedBracket.startSide = 1;\nclosedBracket.endSide = -1;\nconst bracketState = /*@__PURE__*/StateField.define({\n create() { return RangeSet.empty; },\n update(value, tr) {\n value = value.map(tr.changes);\n if (tr.selection) {\n let line = tr.state.doc.lineAt(tr.selection.main.head);\n value = value.update({ filter: from => from >= line.from && from <= line.to });\n }\n for (let effect of tr.effects)\n if (effect.is(closeBracketEffect))\n value = value.update({ add: [closedBracket.range(effect.value, effect.value + 1)] });\n return value;\n }\n});\n/**\nExtension to enable bracket-closing behavior. When a closeable\nbracket is typed, its closing bracket is immediately inserted\nafter the cursor. When closing a bracket directly in front of a\nclosing bracket inserted by the extension, the cursor moves over\nthat bracket.\n*/\nfunction closeBrackets() {\n return [inputHandler, bracketState];\n}\nconst definedClosing = \"()[]{}<>\";\nfunction closing(ch) {\n for (let i = 0; i < definedClosing.length; i += 2)\n if (definedClosing.charCodeAt(i) == ch)\n return definedClosing.charAt(i + 1);\n return fromCodePoint(ch < 128 ? ch : ch + 1);\n}\nfunction config(state, pos) {\n return state.languageDataAt(\"closeBrackets\", pos)[0] || defaults;\n}\nconst android = typeof navigator == \"object\" && /*@__PURE__*//Android\\b/.test(navigator.userAgent);\nconst inputHandler = /*@__PURE__*/EditorView.inputHandler.of((view, from, to, insert) => {\n if ((android ? view.composing : view.compositionStarted) || view.state.readOnly)\n return false;\n let sel = view.state.selection.main;\n if (insert.length > 2 || insert.length == 2 && codePointSize(codePointAt(insert, 0)) == 1 ||\n from != sel.from || to != sel.to)\n return false;\n let tr = insertBracket(view.state, insert);\n if (!tr)\n return false;\n view.dispatch(tr);\n return true;\n});\n/**\nCommand that implements deleting a pair of matching brackets when\nthe cursor is between them.\n*/\nconst deleteBracketPair = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let conf = config(state, state.selection.main.head);\n let tokens = conf.brackets || defaults.brackets;\n let dont = null, changes = state.changeByRange(range => {\n if (range.empty) {\n let before = prevChar(state.doc, range.head);\n for (let token of tokens) {\n if (token == before && nextChar(state.doc, range.head) == closing(codePointAt(token, 0)))\n return { changes: { from: range.head - token.length, to: range.head + token.length },\n range: EditorSelection.cursor(range.head - token.length) };\n }\n }\n return { range: dont = range };\n });\n if (!dont)\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"delete.backward\" }));\n return !dont;\n};\n/**\nClose-brackets related key bindings. Binds Backspace to\n[`deleteBracketPair`](https://codemirror.net/6/docs/ref/#autocomplete.deleteBracketPair).\n*/\nconst closeBracketsKeymap = [\n { key: \"Backspace\", run: deleteBracketPair }\n];\n/**\nImplements the extension's behavior on text insertion. If the\ngiven string counts as a bracket in the language around the\nselection, and replacing the selection with it requires custom\nbehavior (inserting a closing version or skipping past a\npreviously-closed bracket), this function returns a transaction\nrepresenting that custom behavior. (You only need this if you want\nto programmatically insert brackets—the\n[`closeBrackets`](https://codemirror.net/6/docs/ref/#autocomplete.closeBrackets) extension will\ntake care of running this for user input.)\n*/\nfunction insertBracket(state, bracket) {\n let conf = config(state, state.selection.main.head);\n let tokens = conf.brackets || defaults.brackets;\n for (let tok of tokens) {\n let closed = closing(codePointAt(tok, 0));\n if (bracket == tok)\n return closed == tok ? handleSame(state, tok, tokens.indexOf(tok + tok + tok) > -1, conf)\n : handleOpen(state, tok, closed, conf.before || defaults.before);\n if (bracket == closed && closedBracketAt(state, state.selection.main.from))\n return handleClose(state, tok, closed);\n }\n return null;\n}\nfunction closedBracketAt(state, pos) {\n let found = false;\n state.field(bracketState).between(0, state.doc.length, from => {\n if (from == pos)\n found = true;\n });\n return found;\n}\nfunction nextChar(doc, pos) {\n let next = doc.sliceString(pos, pos + 2);\n return next.slice(0, codePointSize(codePointAt(next, 0)));\n}\nfunction prevChar(doc, pos) {\n let prev = doc.sliceString(pos - 2, pos);\n return codePointSize(codePointAt(prev, 0)) == prev.length ? prev : prev.slice(1);\n}\nfunction handleOpen(state, open, close, closeBefore) {\n let dont = null, changes = state.changeByRange(range => {\n if (!range.empty)\n return { changes: [{ insert: open, from: range.from }, { insert: close, from: range.to }],\n effects: closeBracketEffect.of(range.to + open.length),\n range: EditorSelection.range(range.anchor + open.length, range.head + open.length) };\n let next = nextChar(state.doc, range.head);\n if (!next || /\\s/.test(next) || closeBefore.indexOf(next) > -1)\n return { changes: { insert: open + close, from: range.head },\n effects: closeBracketEffect.of(range.head + open.length),\n range: EditorSelection.cursor(range.head + open.length) };\n return { range: dont = range };\n });\n return dont ? null : state.update(changes, {\n scrollIntoView: true,\n userEvent: \"input.type\"\n });\n}\nfunction handleClose(state, _open, close) {\n let dont = null, changes = state.changeByRange(range => {\n if (range.empty && nextChar(state.doc, range.head) == close)\n return { changes: { from: range.head, to: range.head + close.length, insert: close },\n range: EditorSelection.cursor(range.head + close.length) };\n return dont = { range };\n });\n return dont ? null : state.update(changes, {\n scrollIntoView: true,\n userEvent: \"input.type\"\n });\n}\n// Handles cases where the open and close token are the same, and\n// possibly triple quotes (as in `\"\"\"abc\"\"\"`-style quoting).\nfunction handleSame(state, token, allowTriple, config) {\n let stringPrefixes = config.stringPrefixes || defaults.stringPrefixes;\n let dont = null, changes = state.changeByRange(range => {\n if (!range.empty)\n return { changes: [{ insert: token, from: range.from }, { insert: token, from: range.to }],\n effects: closeBracketEffect.of(range.to + token.length),\n range: EditorSelection.range(range.anchor + token.length, range.head + token.length) };\n let pos = range.head, next = nextChar(state.doc, pos), start;\n if (next == token) {\n if (nodeStart(state, pos)) {\n return { changes: { insert: token + token, from: pos },\n effects: closeBracketEffect.of(pos + token.length),\n range: EditorSelection.cursor(pos + token.length) };\n }\n else if (closedBracketAt(state, pos)) {\n let isTriple = allowTriple && state.sliceDoc(pos, pos + token.length * 3) == token + token + token;\n let content = isTriple ? token + token + token : token;\n return { changes: { from: pos, to: pos + content.length, insert: content },\n range: EditorSelection.cursor(pos + content.length) };\n }\n }\n else if (allowTriple && state.sliceDoc(pos - 2 * token.length, pos) == token + token &&\n (start = canStartStringAt(state, pos - 2 * token.length, stringPrefixes)) > -1 &&\n nodeStart(state, start)) {\n return { changes: { insert: token + token + token + token, from: pos },\n effects: closeBracketEffect.of(pos + token.length),\n range: EditorSelection.cursor(pos + token.length) };\n }\n else if (state.charCategorizer(pos)(next) != CharCategory.Word) {\n if (canStartStringAt(state, pos, stringPrefixes) > -1 && !probablyInString(state, pos, token, stringPrefixes))\n return { changes: { insert: token + token, from: pos },\n effects: closeBracketEffect.of(pos + token.length),\n range: EditorSelection.cursor(pos + token.length) };\n }\n return { range: dont = range };\n });\n return dont ? null : state.update(changes, {\n scrollIntoView: true,\n userEvent: \"input.type\"\n });\n}\nfunction nodeStart(state, pos) {\n let tree = syntaxTree(state).resolveInner(pos + 1);\n return tree.parent && tree.from == pos;\n}\nfunction probablyInString(state, pos, quoteToken, prefixes) {\n let node = syntaxTree(state).resolveInner(pos, -1);\n let maxPrefix = prefixes.reduce((m, p) => Math.max(m, p.length), 0);\n for (let i = 0; i < 5; i++) {\n let start = state.sliceDoc(node.from, Math.min(node.to, node.from + quoteToken.length + maxPrefix));\n let quotePos = start.indexOf(quoteToken);\n if (!quotePos || quotePos > -1 && prefixes.indexOf(start.slice(0, quotePos)) > -1) {\n let first = node.firstChild;\n while (first && first.from == node.from && first.to - first.from > quoteToken.length + quotePos) {\n if (state.sliceDoc(first.to - quoteToken.length, first.to) == quoteToken)\n return false;\n first = first.firstChild;\n }\n return true;\n }\n let parent = node.to == pos && node.parent;\n if (!parent)\n break;\n node = parent;\n }\n return false;\n}\nfunction canStartStringAt(state, pos, prefixes) {\n let charCat = state.charCategorizer(pos);\n if (charCat(state.sliceDoc(pos - 1, pos)) != CharCategory.Word)\n return pos;\n for (let prefix of prefixes) {\n let start = pos - prefix.length;\n if (state.sliceDoc(start, pos) == prefix && charCat(state.sliceDoc(start - 1, start)) != CharCategory.Word)\n return start;\n }\n return -1;\n}\n\n/**\nReturns an extension that enables autocompletion.\n*/\nfunction autocompletion(config = {}) {\n return [\n commitCharacters,\n completionState,\n completionConfig.of(config),\n completionPlugin,\n completionKeymapExt,\n baseTheme\n ];\n}\n/**\nBasic keybindings for autocompletion.\n\n - Ctrl-Space (and Alt-\\` on macOS): [`startCompletion`](https://codemirror.net/6/docs/ref/#autocomplete.startCompletion)\n - Escape: [`closeCompletion`](https://codemirror.net/6/docs/ref/#autocomplete.closeCompletion)\n - ArrowDown: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(true)`\n - ArrowUp: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(false)`\n - PageDown: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(true, \"page\")`\n - PageDown: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(true, \"page\")`\n - Enter: [`acceptCompletion`](https://codemirror.net/6/docs/ref/#autocomplete.acceptCompletion)\n*/\nconst completionKeymap = [\n { key: \"Ctrl-Space\", run: startCompletion },\n { mac: \"Alt-`\", run: startCompletion },\n { key: \"Escape\", run: closeCompletion },\n { key: \"ArrowDown\", run: /*@__PURE__*/moveCompletionSelection(true) },\n { key: \"ArrowUp\", run: /*@__PURE__*/moveCompletionSelection(false) },\n { key: \"PageDown\", run: /*@__PURE__*/moveCompletionSelection(true, \"page\") },\n { key: \"PageUp\", run: /*@__PURE__*/moveCompletionSelection(false, \"page\") },\n { key: \"Enter\", run: acceptCompletion }\n];\nconst completionKeymapExt = /*@__PURE__*/Prec.highest(/*@__PURE__*/keymap.computeN([completionConfig], state => state.facet(completionConfig).defaultKeymap ? [completionKeymap] : []));\n/**\nGet the current completion status. When completions are available,\nthis will return `\"active\"`. When completions are pending (in the\nprocess of being queried), this returns `\"pending\"`. Otherwise, it\nreturns `null`.\n*/\nfunction completionStatus(state) {\n let cState = state.field(completionState, false);\n return cState && cState.active.some(a => a.isPending) ? \"pending\"\n : cState && cState.active.some(a => a.state != 0 /* State.Inactive */) ? \"active\" : null;\n}\nconst completionArrayCache = /*@__PURE__*/new WeakMap;\n/**\nReturns the available completions as an array.\n*/\nfunction currentCompletions(state) {\n var _a;\n let open = (_a = state.field(completionState, false)) === null || _a === void 0 ? void 0 : _a.open;\n if (!open || open.disabled)\n return [];\n let completions = completionArrayCache.get(open.options);\n if (!completions)\n completionArrayCache.set(open.options, completions = open.options.map(o => o.completion));\n return completions;\n}\n/**\nReturn the currently selected completion, if any.\n*/\nfunction selectedCompletion(state) {\n var _a;\n let open = (_a = state.field(completionState, false)) === null || _a === void 0 ? void 0 : _a.open;\n return open && !open.disabled && open.selected >= 0 ? open.options[open.selected].completion : null;\n}\n/**\nReturns the currently selected position in the active completion\nlist, or null if no completions are active.\n*/\nfunction selectedCompletionIndex(state) {\n var _a;\n let open = (_a = state.field(completionState, false)) === null || _a === void 0 ? void 0 : _a.open;\n return open && !open.disabled && open.selected >= 0 ? open.selected : null;\n}\n/**\nCreate an effect that can be attached to a transaction to change\nthe currently selected completion.\n*/\nfunction setSelectedCompletion(index) {\n return setSelectedEffect.of(index);\n}\n\nexport { CompletionContext, acceptCompletion, autocompletion, clearSnippet, closeBrackets, closeBracketsKeymap, closeCompletion, completeAnyWord, completeFromList, completionKeymap, completionStatus, currentCompletions, deleteBracketPair, hasNextSnippetField, hasPrevSnippetField, ifIn, ifNotIn, insertBracket, insertCompletionText, moveCompletionSelection, nextSnippetField, pickedCompletion, prevSnippetField, selectedCompletion, selectedCompletionIndex, setSelectedCompletion, snippet, snippetCompletion, snippetKeymap, startCompletion };\n"],"names":["CompletionContext","constructor","state","pos","explicit","view","this","abortListeners","abortOnDocChange","tokenBefore","types","token","syntaxTree","resolveInner","indexOf","name","parent","from","to","text","sliceDoc","type","matchBefore","expr","line","doc","lineAt","start","Math","max","str","slice","found","search","ensureAnchor","aborted","addEventListener","listener","options","push","onDocChange","toSet","chars","flat","Object","keys","join","words","test","replace","completeFromList","list","map","o","label","validFor","match","every","first","create","rest","i","length","source","RegExp","prefixMatch","context","ifNotIn","nodes","isTop","Option","completion","score","cur","selection","main","_a","addStart","addEnd","flags","ignoreCase","pickedCompletion","Annotation","define","SourceCache","WeakMap","asSource","Array","isArray","known","get","set","startCompletionEffect","StateEffect","closeCompletionEffect","FuzzyMatcher","pattern","folded","any","precise","byWord","matched","p","char","codePointAt","size","codePointSize","part","upper","toUpperCase","toLowerCase","astral","ret","word","firstSize","direct","len","anyTo","e","min","next","preciseTo","byWordTo","byWordFolded","adjacentTo","adjacentStart","adjacentEnd","hasLower","wordAdjacent","prevType","ch","fromCodePoint","result","positions","StrictMatcher","completionConfig","Facet","combine","configs","combineConfig","activateOnTyping","activateOnCompletion","activateOnTypingDelay","selectOnOpen","override","closeOnBlur","maxRenderedOptions","defaultKeymap","tooltipClass","optionClass","aboveCursor","icons","addToOptions","positionInfo","defaultPositionInfo","filterStrict","compareCompletions","a","b","localeCompare","interactionDelay","updateSyncTime","c","joinClass","concat","option","info","space","tooltip","offset","maxWidth","rtl","textDirection","Direction","RTL","left","narrow","side","spaceLeft","spaceRight","right","infoWidth","infoHeight","bottom","top","spaceBelow","style","offsetHeight","offsetWidth","class","rangeAroundSelected","total","selected","off","floor","CompletionTooltip","stateField","applyCompletion","infoDestroy","placeInfoReq","read","measureInfo","write","placeInfo","key","currentClass","cState","field","open","config","facet","optionContent","content","render","icon","document","createElement","classList","add","split","cls","setAttribute","position","_s","_v","labelElt","className","displayLabel","j","appendChild","createTextNode","span","detail","detailElt","textContent","sort","range","dom","updateTooltipClass","target","parentNode","nodeName","exec","id","preventDefault","relatedTarget","contentDOM","dispatch","effects","of","showOptions","mount","updateSel","remove","createListBox","requestMeasure","update","prevState","startState","disabled","toggle","positioned","updateSelectedOption","destroyInfo","infoResult","then","obj","addInfoPane","catch","logException","wrap","nodeType","destroy","opt","firstChild","nextSibling","hasAttribute","removeAttribute","container","element","getBoundingClientRect","self","scaleY","height","scrollTop","scrollIntoView","sel","querySelector","listRect","infoRect","selRect","win","ownerDocument","defaultView","window","innerWidth","innerHeight","cssText","ul","phrase","curSection","section","header","li","node","completionTooltip","boost","apply","CompletionDialog","attrs","timestamp","setSelected","makeAttrs","build","active","prev","conf","didSetActive","some","s","isPending","setDisabled","sections","addOption","hasResult","getMatch","filter","matcher","sectionOrder","cmp","_b","rank","compare","sortOptions","selectedValue","reduce","createTooltip","above","Date","now","changes","assign","mapPos","CompletionState","none","random","toString","tr","languageDataAt","find","ActiveSource","didSet","is","setActiveEffect","docChanged","touchesRange","iA","iB","endA","endB","sameResults","effect","setSelectedEffect","value","baseAttrs","noAttrs","getUpdateType","isUserEvent","annotation","typing","touches","updateFor","ActiveResult","limit","super","empty","checkValid","mapping","sources","completionState","StateField","provide","f","showTooltip","val","EditorView","contentAttributes","fromOff","toOff","changeByRange","lines","toText","insert","EditorSelection","cursor","userEvent","insertCompletionText","annotations","moveCompletionSelection","forward","by","step","getTooltip","startCompletion","RunningQuery","time","updates","done","undefined","completionPlugin","ViewPlugin","fromClass","debounceUpdate","running","debounceAccept","pendingStart","composing","startQuery","selectionSet","doesReset","transactions","query","handler","splice","clearTimeout","delay","q","setTimeout","startUpdate","r","accept","pending","Promise","resolve","scheduleAccept","err","updated","current","eventHandlers","blur","event","dialog","contains","compositionstart","compositionend","windows","navigator","platform","commitCharacters","Prec","highest","domEventHandlers","keydown","ctrlKey","altKey","metaKey","commitChars","baseTheme","fontFamily","whiteSpace","overflow","maxWidth_fallback","minWidth","maxHeight","listStyle","margin","padding","lineHeight","overflowX","textOverflow","display","borderBottom","paddingLeft","opacity","background","color","textAlign","width","boxSizing","backgroundColor","verticalAlign","borderLeft","textDecoration","marginLeft","fontStyle","fontSize","paddingRight","FieldPos","FieldRange","MapMode","TrackDel","Snippet","fieldPositions","instantiate","lineStart","lineObj","baseIndent","indent","tabs","indentUnit","ranges","parse","template","m","fields","seq","rawName","index","_","brace","fieldMarker","Decoration","widget","WidgetType","toDOM","ignoreEvent","fieldRange","mark","ActiveSnippet","deco","mapped","selectionInsideField","setActive","moveToField","snippetState","decorations","fieldSelection","snippet","editor","spec","Text","Transaction","appendConfig","addSnippetKeymap","snippetPointerHandler","moveField","dir","last","defaultSnippetKeymap","run","shift","snippetKeymap","maps","keymap","compute","snippetCompletion","mousedown","posAtCoords","x","clientX","y","clientY","defaults","brackets","before","stringPrefixes","closeBracketEffect","TrackAfter","closedBracket","RangeValue","startSide","endSide","bracketState","RangeSet","head","closeBrackets","inputHandler","definedClosing","closing","charCodeAt","charAt","android","userAgent","compositionStarted","readOnly","bracket","tokens","tok","closed","handleSame","handleOpen","closedBracketAt","handleClose","insertBracket","closeBracketsKeymap","dont","sliceString","prevChar","nextChar","between","close","closeBefore","anchor","_open","allowTriple","nodeStart","canStartStringAt","charCategorizer","CharCategory","Word","quoteToken","prefixes","maxPrefix","quotePos","probablyInString","tree","charCat","prefix","autocompletion","completionKeymapExt","completionKeymap","mac","computeN"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,2 +0,0 @@
1
- import{b as t,f as e,s as r,a,g as n}from"./core-B0xJnVq9.js";const i={main:{onReady:async(t,i)=>{if(i.hasAttribute("config")){const r=i.getAttribute("config"),{json:a,toml:n,text:s}=e(r);let o={};if(a)o=JSON.parse(s);else if(n){const{parse:t}=await import("./toml-CvAfdf9_.js");o=t(s)}if(o.packages){const e=t.interpreter.pyimport("micropip");await e.install(o.packages,{keep_going:!0}),e.destroy()}}t.interpreter.registerJsModule("_pyscript",{PyWorker(){throw new Error("Unable to use PyWorker in py-game scripts")},js_import:(...t)=>Promise.all(t.map((t=>import(t)))),get target(){return i.id}}),await t.interpreter.runPythonAsync(r);let s=a(i.textContent);i.src&&(s=await fetch(i.src).then(n));const o=i.getAttribute("target")||"canvas",p=document.getElementById(o);t.interpreter.canvas.setCanvas2D(p),await t.interpreter.runPythonAsync(s)}}};t("py-game",{config:{packages:["pygame-ce"]},configURL:new URL("./config.txt",location.href).href,interpreter:"pyodide",env:"py-game",hooks:i});
2
- //# sourceMappingURL=py-game-BRLdWI8j.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"py-game-BRLdWI8j.js","sources":["../src/plugins/py-game.js"],"sourcesContent":["import { dedent, define } from \"polyscript/exports\";\n\nimport { stdlib } from \"../core.js\";\nimport { configDetails } from \"../config.js\";\nimport { getText } from \"../fetch.js\";\n\nconst hooks = {\n main: {\n onReady: async (wrap, script) => {\n if (script.hasAttribute(\"config\")) {\n const value = script.getAttribute(\"config\");\n const { json, toml, text } = configDetails(value);\n let config = {};\n if (json) config = JSON.parse(text);\n else if (toml) {\n const { parse } = await import(\n /* webpackIgnore: true */ \"../3rd-party/toml.js\"\n );\n config = parse(text);\n }\n if (config.packages) {\n const micropip = wrap.interpreter.pyimport(\"micropip\");\n await micropip.install(config.packages, {\n keep_going: true,\n });\n micropip.destroy();\n }\n }\n\n wrap.interpreter.registerJsModule(\"_pyscript\", {\n PyWorker() {\n throw new Error(\n \"Unable to use PyWorker in py-game scripts\",\n );\n },\n js_import: (...urls) =>\n Promise.all(urls.map((url) => import(url))),\n get target() {\n return script.id;\n },\n });\n\n await wrap.interpreter.runPythonAsync(stdlib);\n\n let code = dedent(script.textContent);\n if (script.src) code = await fetch(script.src).then(getText);\n\n const target = script.getAttribute(\"target\") || \"canvas\";\n const canvas = document.getElementById(target);\n wrap.interpreter.canvas.setCanvas2D(canvas);\n await wrap.interpreter.runPythonAsync(code);\n },\n },\n};\n\ndefine(\"py-game\", {\n config: { packages: [\"pygame-ce\"] },\n configURL: new URL(\"./config.txt\", location.href).href,\n interpreter: \"pyodide\",\n env: \"py-game\",\n hooks,\n});\n"],"names":["hooks","main","onReady","async","wrap","script","hasAttribute","value","getAttribute","json","toml","text","configDetails","config","JSON","parse","import","packages","micropip","interpreter","pyimport","install","keep_going","destroy","registerJsModule","PyWorker","Error","js_import","urls","Promise","all","map","url","target","id","runPythonAsync","stdlib","code","dedent","textContent","src","fetch","then","getText","canvas","document","getElementById","setCanvas2D","define","configURL","URL","location","href","env"],"mappings":"8DAMA,MAAMA,EAAQ,CACVC,KAAM,CACFC,QAASC,MAAOC,EAAMC,KAClB,GAAIA,EAAOC,aAAa,UAAW,CAC/B,MAAMC,EAAQF,EAAOG,aAAa,WAC5BC,KAAEA,EAAIC,KAAEA,EAAIC,KAAEA,GAASC,EAAcL,GAC3C,IAAIM,EAAS,CAAE,EACf,GAAIJ,EAAMI,EAASC,KAAKC,MAAMJ,QACzB,GAAID,EAAM,CACX,MAAMK,MAAEA,SAAgBC,OACM,sBAE9BH,EAASE,EAAMJ,EACnC,CACgB,GAAIE,EAAOI,SAAU,CACjB,MAAMC,EAAWd,EAAKe,YAAYC,SAAS,kBACrCF,EAASG,QAAQR,EAAOI,SAAU,CACpCK,YAAY,IAEhBJ,EAASK,SAC7B,CACA,CAEYnB,EAAKe,YAAYK,iBAAiB,YAAa,CAC3C,QAAAC,GACI,MAAM,IAAIC,MACN,4CAEP,EACDC,UAAW,IAAIC,IACXC,QAAQC,IAAIF,EAAKG,KAAKC,GAAQhB,OAAOgB,MACzC,UAAIC,GACA,OAAO5B,EAAO6B,EACjB,UAGC9B,EAAKe,YAAYgB,eAAeC,GAEtC,IAAIC,EAAOC,EAAOjC,EAAOkC,aACrBlC,EAAOmC,MAAKH,QAAaI,MAAMpC,EAAOmC,KAAKE,KAAKC,IAEpD,MAAMV,EAAS5B,EAAOG,aAAa,WAAa,SAC1CoC,EAASC,SAASC,eAAeb,GACvC7B,EAAKe,YAAYyB,OAAOG,YAAYH,SAC9BxC,EAAKe,YAAYgB,eAAeE,EAAK,IAKvDW,EAAO,UAAW,CACdnC,OAAQ,CAAEI,SAAU,CAAC,cACrBgC,UAAW,IAAIC,IAAI,eAAgBC,SAASC,MAAMA,KAClDjC,YAAa,UACbkC,IAAK,UACLrD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"toml-CvAfdf9_.js","sources":["../src/3rd-party/toml.js"],"sourcesContent":["const{SyntaxError:r,parse:t}=function(){function r(t,e,n,u){this.message=t,this.expected=e,this.found=n,this.location=u,this.name=\"SyntaxError\",\"function\"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,r)}return function(r,t){function e(){this.constructor=r}e.prototype=t.prototype,r.prototype=new e}(r,Error),r.buildMessage=function(r,t){var e={literal:function(r){return'\"'+u(r.text)+'\"'},class:function(r){var t,e=\"\";for(t=0;t<r.parts.length;t++)e+=r.parts[t]instanceof Array?o(r.parts[t][0])+\"-\"+o(r.parts[t][1]):o(r.parts[t]);return\"[\"+(r.inverted?\"^\":\"\")+e+\"]\"},any:function(r){return\"any character\"},end:function(r){return\"end of input\"},other:function(r){return r.description}};function n(r){return r.charCodeAt(0).toString(16).toUpperCase()}function u(r){return r.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"').replace(/\\0/g,\"\\\\0\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x0F]/g,(function(r){return\"\\\\x0\"+n(r)})).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,(function(r){return\"\\\\x\"+n(r)}))}function o(r){return r.replace(/\\\\/g,\"\\\\\\\\\").replace(/\\]/g,\"\\\\]\").replace(/\\^/g,\"\\\\^\").replace(/-/g,\"\\\\-\").replace(/\\0/g,\"\\\\0\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x0F]/g,(function(r){return\"\\\\x0\"+n(r)})).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,(function(r){return\"\\\\x\"+n(r)}))}return\"Expected \"+function(r){var t,n,u,o=new Array(r.length);for(t=0;t<r.length;t++)o[t]=(u=r[t],e[u.type](u));if(o.sort(),o.length>0){for(t=1,n=1;t<o.length;t++)o[t-1]!==o[t]&&(o[n]=o[t],n++);o.length=n}switch(o.length){case 1:return o[0];case 2:return o[0]+\" or \"+o[1];default:return o.slice(0,-1).join(\", \")+\", or \"+o[o.length-1]}}(r)+\" but \"+function(r){return r?'\"'+u(r)+'\"':\"end of input\"}(t)+\" found.\"},{SyntaxError:r,parse:function(t,e){e=void 0!==e?e:{};var n,u,o,a,i,c,f,s,l,h,p={},v={Expressions:Zt},d=Zt,g=function(){return pe},A=function(r){ve=h(pe,!0,r)},C=function(r){ve=h(pe,!1,r)},b=function(r){l(ve.table,r[0]),ve.table[r[0]]=r[1]},y=Mt(\"Newline\"),m=\"\\n\",x=jt(\"\\n\",!1),S=\"\\r\\n\",F=jt(\"\\r\\n\",!1),w=Mt(\"Whitespace\"),E=/^[ \\t]/,T=Ht([\" \",\"\\t\"],!1,!1),D=Mt(\"Comment\"),j=\"#\",H=jt(\"#\",!1),M={type:\"any\"},O=\"=\",_=jt(\"=\",!1),N=function(r,t){return[r,t.value]},Z=function(){return Tt()},I=Mt('[a-z], [A-Z], [0-9], \"-\", \"_\"'),R=/^[a-zA-Z0-9\\-_]/,U=Ht([[\"a\",\"z\"],[\"A\",\"Z\"],[\"0\",\"9\"],\"-\",\"_\"],!1,!1),z=function(r){return r.join(\"\")},Q=Mt(\"DoubleQuote\"),Y='\"',k=jt('\"',!1),B=Mt(\"SingleQuote\"),J=\"'\",P=jt(\"'\",!1),V=Mt(\"ThreeDoubleQuotes\"),W='\"\"\"',q=jt('\"\"\"',!1),G=Mt(\"ThreeSingleQuotes\"),K=\"'''\",L=jt(\"'''\",!1),X=function(r){return{type:\"String\",value:r.join(\"\")}},$=Mt(\"NormalCharacter\"),rr=/^[^\\0-\\x1F\"\\\\]/,tr=Ht([[\"\\0\",\"\u001f\"],'\"',\"\\\\\"],!0,!1),er=\"u\",nr=jt(\"u\",!1),ur=\"U\",or=jt(\"U\",!1),ar=function(){var r=Tt();return r.length<=2?f(r[1]):s(parseInt(r.substr(2),16))},ir=Mt('\"b\", \"f\", \"n\", \"r\", \"t\"'),cr=/^[bfnrt]/,fr=Ht([\"b\",\"f\",\"n\",\"r\",\"t\"],!1,!1),sr=Mt(\"Backslash\"),lr=\"\\\\\",hr=jt(\"\\\\\",!1),pr=Mt(\"FourHexadecimalDigits\"),vr=Mt(\"EightHexadecimalDigits\"),dr=/^[0-9A-Fa-f]/,gr=Ht([[\"0\",\"9\"],[\"A\",\"F\"],[\"a\",\"f\"]],!1,!1),Ar=function(){var r=Tt();return{type:\"String\",value:r.substr(1,r.length-2)}},Cr=/^[^\\0-\\x08\\n-\\x1F']/,br=Ht([[\"\\0\",\"\\b\"],[\"\\n\",\"\u001f\"],\"'\"],!0,!1),yr=function(){return\"\"},mr=/^[^\\0-\\x1F\\\\]/,xr=Ht([[\"\\0\",\"\u001f\"],\"\\\\\"],!0,!1),Sr=Mt(\"AnyCharacter\"),Fr=/^[^\\0-\\x08\\n-\\x1F]/,wr=Ht([[\"\\0\",\"\\b\"],[\"\\n\",\"\u001f\"]],!0,!1),Er=\"true\",Tr=jt(\"true\",!1),Dr=function(){return{type:\"Boolean\",value:!0}},jr=\"false\",Hr=jt(\"false\",!1),Mr=function(){return{type:\"Boolean\",value:!1}},Or=function(){var r=Tt(),t=parseFloat(r.replace(/_/g,\"\"));return o(t)||Dt(r+\"is not a 64-bit floating-point number.\"),{type:\"Float\",value:t}},_r=\".\",Nr=jt(\".\",!1),Zr=\"_\",Ir=jt(\"_\",!1),Rr=\"e\",Ur=jt(\"e\",!1),zr=\"E\",Qr=jt(\"E\",!1),Yr=function(){var r=Tt();/^[-+]?0./.test(r)&&Dt(\"integer must not contain leading zeros\");var t=r.replace(/_/g,\"\"),e=!1;if(\"-\"===t[0]){var n=\"-9223372036854775808\";(t.length>20||20===t.length&&t>n)&&(e=!0)}else{\"+\"===t[0]&&(t=t.substr(1));var u=\"9223372036854775807\";(t.length>19||19===t.length&&t>u)&&(e=!0)}return e&&Dt(r+\" is not a 64-bit signed integer.\"),t=parseInt(t,10),o(t)||Dt(r+\" is not a 64-bit signed integer.\"),{type:\"Integer\",value:t}},kr=\"+\",Br=jt(\"+\",!1),Jr=\"-\",Pr=jt(\"-\",!1),Vr=/^[0-9]/,Wr=Ht([[\"0\",\"9\"]],!1,!1),qr=\"T\",Gr=jt(\"T\",!1),Kr=function(){var r=Tt(),t=new Date(r);return o(t.getTime())||Dt(\"Date-time \"+r+\" is invalid. It does not conform to RFC 3339 or this is a browser-specific problem.\"),{type:\"DateTime\",value:t}},Lr=Mt(\"FullDate (YYYY-mm-dd)\"),Xr=\":\",$r=jt(\":\",!1),rt=Mt(\"Hour (HH)\"),tt=Mt(\"Minute (MM)\"),et=Mt(\"Second (SS)\"),nt=Mt(\"TimeOffset (Z or +/-HH:MM)\"),ut=\"Z\",ot=jt(\"Z\",!1),at=\"[\",it=jt(\"[\",!1),ct=\",\",ft=jt(\",\",!1),st=\"]\",lt=jt(\"]\",!1),ht=function(r){for(var t={type:\"Array\",value:r?r[0]:[]},e=0,n=t.value,u=n.length;e<u;e++)n[e]=n[e].value;return t},pt=function(r,t){var e=[r];if(t)for(var n=r.type,u=0,o=t[3],a=o.length;u<a;u++)n!==o[u].type&&Dt(c(o[u].value)+' should be of type \"'+n+'\".'),e.push(o[u]);return e},vt=\"{\",dt=jt(\"{\",!1),gt=\"}\",At=jt(\"}\",!1),Ct=function(r){var t={};if(r){t[r[0][0]]=r[0][1];for(var e=0,n=r[1],u=n.length;e<u;e++){var o=n[e][3];l(t,o[0]),t[o[0]]=o[1]}}return{type:\"InlineTable\",value:t}},bt=function(r){return r},yt=function(r,t){for(var e=[r],n=0,u=t.length;n<u;n++)e.push(t[n][3]);return e},mt=0,xt=0,St=[{line:1,column:1}],Ft=0,wt=[],Et=0;if(\"startRule\"in e){if(!(e.startRule in v))throw new Error(\"Can't start parsing from rule \\\"\"+e.startRule+'\".');d=v[e.startRule]}function Tt(){return t.substring(xt,mt)}function Dt(t,e){throw function(t,e){return new r(t,null,null,e)}(t,e=void 0!==e?e:_t(xt,mt))}function jt(r,t){return{type:\"literal\",text:r,ignoreCase:t}}function Ht(r,t,e){return{type:\"class\",parts:r,inverted:t,ignoreCase:e}}function Mt(r){return{type:\"other\",description:r}}function Ot(r){var e,n=St[r];if(n)return n;for(e=r-1;!St[e];)e--;for(n={line:(n=St[e]).line,column:n.column};e<r;)10===t.charCodeAt(e)?(n.line++,n.column=1):n.column++,e++;return St[r]=n,n}function _t(r,t){var e=Ot(r),n=Ot(t);return{start:{offset:r,line:e.line,column:e.column},end:{offset:t,line:n.line,column:n.column}}}function Nt(r){mt<Ft||(mt>Ft&&(Ft=mt,wt=[]),wt.push(r))}function Zt(){var r,e,n,u,o,a,i,c;for(r=mt,e=[],(n=Rt())===p&&(n=It())===p&&(n=Ut());n!==p;)e.push(n),(n=Rt())===p&&(n=It())===p&&(n=Ut());if(e!==p){if(n=mt,u=function(){var r,e;r=mt,e=function(){var r,e,n,u;r=mt,91===t.charCodeAt(mt)?(e=at,mt++):(e=p,0===Et&&Nt(it));e!==p&&(n=fe())!==p?(93===t.charCodeAt(mt)?(u=st,mt++):(u=p,0===Et&&Nt(lt)),u!==p?(xt=r,r=e=bt(n)):(mt=r,r=p)):(mt=r,r=p);return r}(),e!==p&&(xt=r,e=A(e));r=e,r===p&&(r=mt,(e=fe())!==p&&(xt=r,e=C(e)),(r=e)===p&&(r=mt,(e=zt())!==p&&(xt=r,e=b(e)),r=e));return r}(),u!==p){for(o=[],(a=Rt())===p&&(a=Ut());a!==p;)o.push(a),(a=Rt())===p&&(a=Ut());o!==p?(a=mt,(i=It())!==p&&(c=Zt())!==p?a=i=[i,c]:(mt=a,a=p),a===p&&(a=null),a!==p?n=u=[u,o,a]:(mt=n,n=p)):(mt=n,n=p)}else mt=n,n=p;n===p&&(n=null),n!==p?(xt=r,r=e=g()):(mt=r,r=p)}else mt=r,r=p;return r}function It(){var r;return Et++,10===t.charCodeAt(mt)?(r=m,mt++):(r=p,0===Et&&Nt(x)),r===p&&(t.substr(mt,2)===S?(r=S,mt+=2):(r=p,0===Et&&Nt(F))),Et--,r===p&&0===Et&&Nt(y),r}function Rt(){var r;return Et++,E.test(t.charAt(mt))?(r=t.charAt(mt),mt++):(r=p,0===Et&&Nt(T)),Et--,r===p&&0===Et&&Nt(w),r}function Ut(){var r,e,n,u,o,a;if(Et++,r=mt,35===t.charCodeAt(mt)?(e=j,mt++):(e=p,0===Et&&Nt(H)),e!==p){for(n=[],u=mt,o=mt,Et++,a=It(),Et--,a===p?o=void 0:(mt=o,o=p),o!==p?(t.length>mt?(a=t.charAt(mt),mt++):(a=p,0===Et&&Nt(M)),a!==p?u=o=[o,a]:(mt=u,u=p)):(mt=u,u=p);u!==p;)n.push(u),u=mt,o=mt,Et++,a=It(),Et--,a===p?o=void 0:(mt=o,o=p),o!==p?(t.length>mt?(a=t.charAt(mt),mt++):(a=p,0===Et&&Nt(M)),a!==p?u=o=[o,a]:(mt=u,u=p)):(mt=u,u=p);n!==p?r=e=[e,n]:(mt=r,r=p)}else mt=r,r=p;return Et--,r===p&&(e=p,0===Et&&Nt(D)),r}function zt(){var r,e,n,u,o,a;if(r=mt,(e=Qt())!==p){for(n=[],u=Rt();u!==p;)n.push(u),u=Rt();if(n!==p)if(61===t.charCodeAt(mt)?(u=O,mt++):(u=p,0===Et&&Nt(_)),u!==p){for(o=[],a=Rt();a!==p;)o.push(a),a=Rt();o!==p&&(a=Vt())!==p?(xt=r,r=e=N(e,a)):(mt=r,r=p)}else mt=r,r=p;else mt=r,r=p}else mt=r,r=p;return r}function Qt(){var r;return(r=function(){var r,t,e;if(r=mt,t=[],(e=Yt())!==p)for(;e!==p;)t.push(e),e=Yt();else t=p;t!==p&&(xt=r,t=Z());return r=t,r}())===p&&(r=function(){var r,t,e;if(r=mt,kt()!==p){if(t=[],(e=Wt())!==p)for(;e!==p;)t.push(e),e=Wt();else t=p;t!==p&&(e=kt())!==p?(xt=r,r=z(t)):(mt=r,r=p)}else mt=r,r=p;return r}()),r}function Yt(){var r;return Et++,R.test(t.charAt(mt))?(r=t.charAt(mt),mt++):(r=p,0===Et&&Nt(U)),Et--,r===p&&0===Et&&Nt(I),r}function kt(){var r;return Et++,34===t.charCodeAt(mt)?(r=Y,mt++):(r=p,0===Et&&Nt(k)),Et--,r===p&&0===Et&&Nt(Q),r}function Bt(){var r;return Et++,39===t.charCodeAt(mt)?(r=J,mt++):(r=p,0===Et&&Nt(P)),Et--,r===p&&0===Et&&Nt(B),r}function Jt(){var r;return Et++,t.substr(mt,3)===W?(r=W,mt+=3):(r=p,0===Et&&Nt(q)),Et--,r===p&&0===Et&&Nt(V),r}function Pt(){var r;return Et++,t.substr(mt,3)===K?(r=K,mt+=3):(r=p,0===Et&&Nt(L)),Et--,r===p&&0===Et&&Nt(G),r}function Vt(){var r;return(r=function(){var r;r=function(){var r,t,e,n;if(r=mt,Jt()!==p)if((t=It())===p&&(t=null),t!==p){for(e=[],n=Xt();n!==p;)e.push(n),n=Xt();e!==p&&(n=Jt())!==p?(xt=r,r=X(e)):(mt=r,r=p)}else mt=r,r=p;else mt=r,r=p;return r}(),r===p&&(r=function(){var r,t,e;if(r=mt,kt()!==p){for(t=[],e=Wt();e!==p;)t.push(e),e=Wt();t!==p&&(e=kt())!==p?(xt=r,r=X(t)):(mt=r,r=p)}else mt=r,r=p;return r}())===p&&(r=function(){var r,t,e,n;if(r=mt,Pt()!==p)if((t=It())===p&&(t=null),t!==p){for(e=[],n=$t();n!==p;)e.push(n),n=$t();e!==p&&(n=Pt())!==p?(xt=r,r=X(e)):(mt=r,r=p)}else mt=r,r=p;else mt=r,r=p;return r}())===p&&(r=function(){var r,t,e;if(r=mt,Bt()!==p){for(t=[],e=Lt();e!==p;)t.push(e),e=Lt();t!==p&&(e=Bt())!==p?(xt=r,r=Ar()):(mt=r,r=p)}else mt=r,r=p;return r}());return r}())===p&&(r=function(){var r,e;r=mt,t.substr(mt,4)===Er?(e=Er,mt+=4):(e=p,0===Et&&Nt(Tr));e!==p&&(xt=r,e=Dr());r=e,r===p&&(r=mt,t.substr(mt,5)===jr?(e=jr,mt+=5):(e=p,0===Et&&Nt(Hr)),e!==p&&(xt=r,e=Mr()),r=e);return r}())===p&&(r=function(){var r,e,n,u;r=mt,e=function(){var r,e,n,u,o,a;Et++,r=mt,e=function(){var r,t,e,n,u;r=mt,(t=ue())!==p&&(e=ue())!==p&&(n=ue())!==p&&(u=ue())!==p?r=t=[t,e,n,u]:(mt=r,r=p);return r}(),e!==p?(45===t.charCodeAt(mt)?(n=Jr,mt++):(n=p,0===Et&&Nt(Pr)),n!==p?(u=function(){var r,t,e;r=mt,t=ue(),t!==p&&(e=ue())!==p?r=t=[t,e]:(mt=r,r=p);return r}(),u!==p?(45===t.charCodeAt(mt)?(o=Jr,mt++):(o=p,0===Et&&Nt(Pr)),o!==p?(a=function(){var r,t,e;r=mt,t=ue(),t!==p&&(e=ue())!==p?r=t=[t,e]:(mt=r,r=p);return r}(),a!==p?r=e=[e,n,u,o,a]:(mt=r,r=p)):(mt=r,r=p)):(mt=r,r=p)):(mt=r,r=p)):(mt=r,r=p);Et--,r===p&&(e=p,0===Et&&Nt(Lr));return r}(),e!==p?(84===t.charCodeAt(mt)?(n=qr,mt++):(n=p,0===Et&&Nt(Gr)),n!==p?(u=function(){var r,e,n;r=mt,e=function(){var r,e,n,u,o,a,i;r=mt,e=oe(),e!==p?(58===t.charCodeAt(mt)?(n=Xr,mt++):(n=p,0===Et&&Nt($r)),n!==p&&(u=ae())!==p?(58===t.charCodeAt(mt)?(o=Xr,mt++):(o=p,0===Et&&Nt($r)),o!==p?(a=function(){var r,t,e;Et++,r=mt,t=ue(),t!==p&&(e=ue())!==p?r=t=[t,e]:(mt=r,r=p);Et--,r===p&&(t=p,0===Et&&Nt(et));return r}(),a!==p?(i=function(){var r,e,n,u;r=mt,46===t.charCodeAt(mt)?(e=_r,mt++):(e=p,0===Et&&Nt(Nr));if(e!==p){if(n=[],(u=ue())!==p)for(;u!==p;)n.push(u),u=ue();else n=p;n!==p?r=e=[e,n]:(mt=r,r=p)}else mt=r,r=p;return r}(),i===p&&(i=null),i!==p?r=e=[e,n,u,o,a,i]:(mt=r,r=p)):(mt=r,r=p)):(mt=r,r=p)):(mt=r,r=p)):(mt=r,r=p);return r}(),e!==p?(n=function(){var r,e,n,u,o;Et++,90===t.charCodeAt(mt)?(r=ut,mt++):(r=p,0===Et&&Nt(ot));r===p&&(r=mt,(e=ee())!==p&&(n=oe())!==p?(58===t.charCodeAt(mt)?(u=Xr,mt++):(u=p,0===Et&&Nt($r)),u!==p&&(o=ae())!==p?r=e=[e,n,u,o]:(mt=r,r=p)):(mt=r,r=p));Et--,r===p&&(e=p,0===Et&&Nt(nt));return r}(),n!==p?r=e=[e,n]:(mt=r,r=p)):(mt=r,r=p);return r}(),u!==p?(xt=r,r=e=Kr()):(mt=r,r=p)):(mt=r,r=p)):(mt=r,r=p);return r}())===p&&(r=function(){var r,e,n,u;r=mt,te()!==p?(e=mt,n=function(){var r,e,n,u,o,a,i;r=mt,46===t.charCodeAt(mt)?(e=_r,mt++):(e=p,0===Et&&Nt(Nr));if(e!==p)if((n=ue())!==p){for(u=[],o=mt,95===t.charCodeAt(mt)?(a=Zr,mt++):(a=p,0===Et&&Nt(Ir)),a===p&&(a=null),a!==p&&(i=ue())!==p?o=a=[a,i]:(mt=o,o=p);o!==p;)u.push(o),o=mt,95===t.charCodeAt(mt)?(a=Zr,mt++):(a=p,0===Et&&Nt(Ir)),a===p&&(a=null),a!==p&&(i=ue())!==p?o=a=[a,i]:(mt=o,o=p);u!==p?r=e=[e,n,u]:(mt=r,r=p)}else mt=r,r=p;else mt=r,r=p;return r}(),n!==p?((u=re())===p&&(u=null),u!==p?e=n=[n,u]:(mt=e,e=p)):(mt=e,e=p),e===p&&(e=re()),e!==p?(xt=r,r=Or()):(mt=r,r=p)):(mt=r,r=p);return r}())===p&&(r=te())===p&&(r=function(){var r,e,n,u,o,a,i,c,f,s;r=mt,91===t.charCodeAt(mt)?(e=at,mt++):(e=p,0===Et&&Nt(it));if(e!==p){for(n=[],u=ce();u!==p;)n.push(u),u=ce();if(n!==p){if(u=mt,(o=ie())!==p){for(a=[],i=ce();i!==p;)a.push(i),i=ce();if(a!==p){if(i=mt,44===t.charCodeAt(mt)?(c=ct,mt++):(c=p,0===Et&&Nt(ft)),c!==p){for(f=[],s=ce();s!==p;)f.push(s),s=ce();f!==p?i=c=[c,f]:(mt=i,i=p)}else mt=i,i=p;i===p&&(i=null),i!==p?u=o=[o,a,i]:(mt=u,u=p)}else mt=u,u=p}else mt=u,u=p;u===p&&(u=null),u!==p?(93===t.charCodeAt(mt)?(o=st,mt++):(o=p,0===Et&&Nt(lt)),o!==p?(xt=r,r=e=ht(u)):(mt=r,r=p)):(mt=r,r=p)}else mt=r,r=p}else mt=r,r=p;return r}())===p&&(r=function(){var r,e,n,u,o,a,i,c,f,s,l;r=mt,123===t.charCodeAt(mt)?(e=vt,mt++):(e=p,0===Et&&Nt(dt));if(e!==p){for(n=[],u=Rt();u!==p;)n.push(u),u=Rt();if(n!==p){if(u=mt,(o=zt())!==p){for(a=[],i=mt,c=[],f=Rt();f!==p;)c.push(f),f=Rt();if(c!==p)if(44===t.charCodeAt(mt)?(f=ct,mt++):(f=p,0===Et&&Nt(ft)),f!==p){for(s=[],l=Rt();l!==p;)s.push(l),l=Rt();s!==p&&(l=zt())!==p?i=c=[c,f,s,l]:(mt=i,i=p)}else mt=i,i=p;else mt=i,i=p;for(;i!==p;){for(a.push(i),i=mt,c=[],f=Rt();f!==p;)c.push(f),f=Rt();if(c!==p)if(44===t.charCodeAt(mt)?(f=ct,mt++):(f=p,0===Et&&Nt(ft)),f!==p){for(s=[],l=Rt();l!==p;)s.push(l),l=Rt();s!==p&&(l=zt())!==p?i=c=[c,f,s,l]:(mt=i,i=p)}else mt=i,i=p;else mt=i,i=p}if(a!==p){for(i=[],c=Rt();c!==p;)i.push(c),c=Rt();i!==p?u=o=[o,a,i]:(mt=u,u=p)}else mt=u,u=p}else mt=u,u=p;u===p&&(u=null),u!==p?(125===t.charCodeAt(mt)?(o=gt,mt++):(o=p,0===Et&&Nt(At)),o!==p?(xt=r,r=e=Ct(u)):(mt=r,r=p)):(mt=r,r=p)}else mt=r,r=p}else mt=r,r=p;return r}()),r}function Wt(){var r;return(r=function(){var r,e,n;Et++,r=mt,e=mt,Et++,n=It(),Et--,n===p?e=void 0:(mt=e,e=p);e!==p?(rr.test(t.charAt(mt))?(n=t.charAt(mt),mt++):(n=p,0===Et&&Nt(tr)),n!==p?(xt=r,r=e=Z()):(mt=r,r=p)):(mt=r,r=p);Et--,r===p&&(e=p,0===Et&&Nt($));return r}())===p&&(r=qt()),r}function qt(){var r,e,n,u;return r=mt,Gt()!==p?(e=function(){var r;Et++,cr.test(t.charAt(mt))?(r=t.charAt(mt),mt++):(r=p,0===Et&&Nt(fr));Et--,r===p&&0===Et&&Nt(ir);return r}(),e===p&&(e=kt())===p&&(e=Gt())===p&&(e=mt,117===t.charCodeAt(mt)?(n=er,mt++):(n=p,0===Et&&Nt(nr)),n!==p?(u=function(){var r,t,e,n,u;Et++,r=mt,t=Kt(),t!==p&&(e=Kt())!==p&&(n=Kt())!==p&&(u=Kt())!==p?r=t=[t,e,n,u]:(mt=r,r=p);Et--,r===p&&(t=p,0===Et&&Nt(pr));return r}(),u!==p?e=n=[n,u]:(mt=e,e=p)):(mt=e,e=p),e===p&&(e=mt,85===t.charCodeAt(mt)?(n=ur,mt++):(n=p,0===Et&&Nt(or)),n!==p?(u=function(){var r,t,e,n,u,o,a,i,c;Et++,r=mt,t=Kt(),t!==p&&(e=Kt())!==p&&(n=Kt())!==p&&(u=Kt())!==p&&(o=Kt())!==p&&(a=Kt())!==p&&(i=Kt())!==p&&(c=Kt())!==p?r=t=[t,e,n,u,o,a,i,c]:(mt=r,r=p);Et--,r===p&&(t=p,0===Et&&Nt(vr));return r}(),u!==p?e=n=[n,u]:(mt=e,e=p)):(mt=e,e=p))),e!==p?(xt=r,r=ar()):(mt=r,r=p)):(mt=r,r=p),r}function Gt(){var r;return Et++,92===t.charCodeAt(mt)?(r=lr,mt++):(r=p,0===Et&&Nt(hr)),Et--,r===p&&0===Et&&Nt(sr),r}function Kt(){var r;return dr.test(t.charAt(mt))?(r=t.charAt(mt),mt++):(r=p,0===Et&&Nt(gr)),r}function Lt(){var r,e,n;return Et++,r=mt,e=mt,Et++,n=It(),Et--,n===p?e=void 0:(mt=e,e=p),e!==p?(Cr.test(t.charAt(mt))?(n=t.charAt(mt),mt++):(n=p,0===Et&&Nt(br)),n!==p?r=e=[e,n]:(mt=r,r=p)):(mt=r,r=p),Et--,r===p&&(e=p,0===Et&&Nt($)),r}function Xt(){var r,e,n;if(r=function(){var r,e,n;r=mt,e=mt,Et++,n=Jt(),Et--,n===p?e=void 0:(mt=e,e=p);e!==p?(n=function(){var r,e,n;Et++,r=mt,e=mt,Et++,n=It(),Et--,n===p?e=void 0:(mt=e,e=p);e!==p?(mr.test(t.charAt(mt))?(n=t.charAt(mt),mt++):(n=p,0===Et&&Nt(xr)),n!==p?r=e=[e,n]:(mt=r,r=p)):(mt=r,r=p);Et--,r===p&&(e=p,0===Et&&Nt($));return r}(),n!==p?(xt=r,r=e=Z()):(mt=r,r=p)):(mt=r,r=p);r===p&&(r=qt());return r}(),r===p){if(r=mt,Gt()!==p)if(It()!==p){for(e=[],(n=Rt())===p&&(n=It());n!==p;)e.push(n),(n=Rt())===p&&(n=It());e!==p?(xt=r,r=yr()):(mt=r,r=p)}else mt=r,r=p;else mt=r,r=p;r===p&&(r=It())}return r}function $t(){var r,e,n;return r=mt,e=mt,Et++,t.substr(mt,3)===K?(n=K,mt+=3):(n=p,0===Et&&Nt(L)),Et--,n===p?e=void 0:(mt=e,e=p),e!==p?(n=function(){var r,e,n;Et++,r=mt,e=mt,Et++,n=It(),Et--,n===p?e=void 0:(mt=e,e=p);e!==p?(Fr.test(t.charAt(mt))?(n=t.charAt(mt),mt++):(n=p,0===Et&&Nt(wr)),n!==p?r=e=[e,n]:(mt=r,r=p)):(mt=r,r=p);Et--,r===p&&(e=p,0===Et&&Nt(Sr));return r}(),n!==p?(xt=r,r=e=Z()):(mt=r,r=p)):(mt=r,r=p),r===p&&(r=It()),r}function re(){var r,e,n,u;return r=mt,101===t.charCodeAt(mt)?(e=Rr,mt++):(e=p,0===Et&&Nt(Ur)),e===p&&(69===t.charCodeAt(mt)?(e=zr,mt++):(e=p,0===Et&&Nt(Qr))),e!==p?((n=ee())===p&&(n=null),n!==p&&(u=ne())!==p?r=e=[e,n,u]:(mt=r,r=p)):(mt=r,r=p),r}function te(){var r,t;return r=mt,(t=ee())===p&&(t=null),t!==p&&ne()!==p?(xt=r,r=t=Yr()):(mt=r,r=p),r}function ee(){var r;return 43===t.charCodeAt(mt)?(r=kr,mt++):(r=p,0===Et&&Nt(Br)),r===p&&(45===t.charCodeAt(mt)?(r=Jr,mt++):(r=p,0===Et&&Nt(Pr))),r}function ne(){var r,e,n,u,o,a;if(r=mt,(e=ue())!==p){for(n=[],u=mt,95===t.charCodeAt(mt)?(o=Zr,mt++):(o=p,0===Et&&Nt(Ir)),o===p&&(o=null),o!==p&&(a=ue())!==p?u=o=[o,a]:(mt=u,u=p);u!==p;)n.push(u),u=mt,95===t.charCodeAt(mt)?(o=Zr,mt++):(o=p,0===Et&&Nt(Ir)),o===p&&(o=null),o!==p&&(a=ue())!==p?u=o=[o,a]:(mt=u,u=p);n!==p?r=e=[e,n]:(mt=r,r=p)}else mt=r,r=p;return r}function ue(){var r;return Vr.test(t.charAt(mt))?(r=t.charAt(mt),mt++):(r=p,0===Et&&Nt(Wr)),r}function oe(){var r,t,e;return Et++,r=mt,(t=ue())!==p&&(e=ue())!==p?r=t=[t,e]:(mt=r,r=p),Et--,r===p&&(t=p,0===Et&&Nt(rt)),r}function ae(){var r,t,e;return Et++,r=mt,(t=ue())!==p&&(e=ue())!==p?r=t=[t,e]:(mt=r,r=p),Et--,r===p&&(t=p,0===Et&&Nt(tt)),r}function ie(){var r,e,n,u,o,a,i;if(r=mt,(e=Vt())!==p){for(n=mt,u=[],o=ce();o!==p;)u.push(o),o=ce();if(u!==p)if(44===t.charCodeAt(mt)?(o=ct,mt++):(o=p,0===Et&&Nt(ft)),o!==p){for(a=[],i=ce();i!==p;)a.push(i),i=ce();a!==p&&(i=ie())!==p?n=u=[u,o,a,i]:(mt=n,n=p)}else mt=n,n=p;else mt=n,n=p;n===p&&(n=null),n!==p?(xt=r,r=e=pt(e,n)):(mt=r,r=p)}else mt=r,r=p;return r}function ce(){var r;return(r=Rt())===p&&(r=It())===p&&(r=Ut()),r}function fe(){var r,e,n,u,o,a,i,c,f,s;if(r=mt,91===t.charCodeAt(mt)?(e=at,mt++):(e=p,0===Et&&Nt(it)),e!==p){for(n=[],u=Rt();u!==p;)n.push(u),u=Rt();if(n!==p)if((u=Qt())!==p){for(o=[],a=mt,i=[],c=Rt();c!==p;)i.push(c),c=Rt();if(i!==p)if(46===t.charCodeAt(mt)?(c=_r,mt++):(c=p,0===Et&&Nt(Nr)),c!==p){for(f=[],s=Rt();s!==p;)f.push(s),s=Rt();f!==p&&(s=Qt())!==p?a=i=[i,c,f,s]:(mt=a,a=p)}else mt=a,a=p;else mt=a,a=p;for(;a!==p;){for(o.push(a),a=mt,i=[],c=Rt();c!==p;)i.push(c),c=Rt();if(i!==p)if(46===t.charCodeAt(mt)?(c=_r,mt++):(c=p,0===Et&&Nt(Nr)),c!==p){for(f=[],s=Rt();s!==p;)f.push(s),s=Rt();f!==p&&(s=Qt())!==p?a=i=[i,c,f,s]:(mt=a,a=p)}else mt=a,a=p;else mt=a,a=p}if(o!==p){for(a=[],i=Rt();i!==p;)a.push(i),i=Rt();a!==p?(93===t.charCodeAt(mt)?(i=st,mt++):(i=p,0===Et&&Nt(lt)),i!==p?(xt=r,r=e=yt(u,o)):(mt=r,r=p)):(mt=r,r=p)}else mt=r,r=p}else mt=r,r=p;else mt=r,r=p}else mt=r,r=p;return r}u=function(r){return\"Value for \"+r+\" should not be redefined in the same table.\"},o=Number.isFinite||function(r){return\"number\"==typeof r&&isFinite(r)},a=Array.isArray||function(r){return\"[object Array]\"===Object.prototype.toString.call(r)},i=function(r,t){return Object.prototype.hasOwnProperty.call(r,t)},c=\"object\"==typeof JSON&&JSON?JSON.stringify:function(r){return'\"'+String(r).replace(/[\\x00-\\x1F\"\\\\]/g,(function(r){switch(r){case'\"':case\"\\\\\":return\"\\\\\"+r;case\"\\t\":return\"\\\\t\";case\"\\n\":return\"\\\\n\";case\"\\r\":return\"\\\\r\";case\"\\b\":return\"\\\\b\";case\"\\f\":return\"\\\\f\";default:var t=r.charCodeAt(0).toString(16);return\"\\\\u\"+\"0000\".substr(t.length)+t}}))+'\"'},f=function(r){switch(r){case'\"':case\"\\\\\":return r;case\"t\":return\"\\t\";case\"n\":return\"\\n\";case\"r\":return\"\\r\";case\"b\":return\"\\b\";case\"f\":return\"\\f\";default:Dt(c(r)+\" cannot be escaped.\")}},s=function(r){if((!o(r)||r<0||r>1114111)&&Dt(\"U+\"+r.toString(16)+\" is not a valid Unicode code point.\"),String.fromCodePoint)return String.fromCodePoint(r);var t=\"\";return r>65535&&(r-=65536,t+=String.fromCharCode(r>>>10&1023|55296),r=56320|1023&r),t+=String.fromCharCode(r)},l=function(r,t){i(r,t)&&Dt(u(c(t)))},h=function(r,t,e){for(var n=\"\",o=0,f=e.length;o<f;o++){var s=e[o];if(n+=(n?\".\":\"\")+c(s),i(r,s))if(t)if(a(r[s]))if(Ae[n]||Dt(u(n)),o+1===f){l={};r[s].push(l),r=l}else n+=\".\"+c(r[s].length-1),r=r[s][r[s].length-1];else de[n]||Dt(u(n)),r=r[s];else a(r[s])?(Ae[n]&&o+1!==f||Dt(u(n)),n+=\".\"+c(r[s].length-1),r=r[s][r[s].length-1]):(de[n]||Dt(u(n)),r=r[s]);else if(t&&o+1===f){var l={};r[s]=[l],r=l,Ae[n]=!0}else r=r[s]={},de[n]=!0}return t?Ae[n]||Dt(u(n)):((ge[n]||Ae[n])&&Dt(u(n)),ge[n]=!0),{table:r,path:e}};var se,le,he,pe={},ve={table:pe,path:[]},de={},ge={},Ae={};if((n=d())!==p&&mt===t.length)return n;throw n!==p&&mt<t.length&&Nt({type:\"end\"}),se=wt,le=Ft<t.length?t.charAt(Ft):null,he=Ft<t.length?_t(Ft,Ft+1):_t(Ft,Ft),new r(r.buildMessage(se,le),se,le,he)}}}();\n/*! (c) Jak Wings - MIT */class e extends SyntaxError{constructor(r,{offset:t,line:e,column:n}){super(r),this.offset=t,this.line=e,this.column=n}}const n=n=>{try{return t(n)}catch(t){throw t instanceof r?(t.line=t.location.start.line,t.column=t.location.start.column,t.offset=t.location.start.offset,new e(t.message,t.location.start)):t}};export{e as SyntaxError,n as parse};\n//# sourceMappingURL=toml.js.map\n"],"names":["SyntaxError","r","parse","t","e","n","u","this","message","expected","found","location","name","Error","captureStackTrace","constructor","prototype","buildMessage","literal","text","class","parts","length","Array","o","inverted","any","end","other","description","charCodeAt","toString","toUpperCase","replace","type","sort","slice","join","a","i","c","f","s","l","h","p","v","Expressions","Zt","d","g","pe","A","ve","C","b","table","y","Mt","m","x","jt","S","F","w","E","T","Ht","D","j","H","M","O","_","N","value","Z","Tt","I","R","U","z","Q","Y","k","B","J","P","V","W","q","G","K","L","X","$","rr","tr","er","nr","ur","or","ar","parseInt","substr","ir","cr","fr","sr","lr","hr","pr","vr","dr","gr","Ar","Cr","br","yr","mr","xr","Sr","Fr","wr","Er","Tr","Dr","jr","Hr","Mr","Or","parseFloat","Dt","_r","Nr","Zr","Ir","Rr","Ur","zr","Qr","Yr","test","kr","Br","Jr","Pr","Vr","Wr","qr","Gr","Kr","Date","getTime","Lr","Xr","$r","rt","tt","et","nt","ut","ot","at","it","ct","ft","st","lt","ht","pt","push","vt","dt","gt","At","Ct","bt","yt","mt","xt","St","line","column","Ft","wt","Et","startRule","substring","_t","ignoreCase","Ot","start","offset","Nt","Rt","It","Ut","fe","zt","charAt","Qt","Vt","Yt","kt","Wt","Bt","Jt","Pt","Xt","$t","Lt","ue","oe","ae","ee","te","re","ce","ie","qt","Gt","Kt","ne","Number","isFinite","isArray","Object","call","hasOwnProperty","JSON","stringify","String","fromCodePoint","fromCharCode","Ae","de","ge","path","se","le","he","super"],"mappings":"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"}