@pyscript/core 0.7.3 → 0.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{codemirror-BuBDbT64.js → codemirror-7vXPINKi.js} +2 -2
- package/dist/codemirror-7vXPINKi.js.map +1 -0
- package/dist/{codemirror_commands-DlqR3kjD.js → codemirror_commands-CN4gxvZk.js} +2 -2
- package/dist/{codemirror_commands-DlqR3kjD.js.map → codemirror_commands-CN4gxvZk.js.map} +1 -1
- package/dist/{codemirror_lang-python-ALikgfFT.js → codemirror_lang-python-CkOVBHci.js} +2 -2
- package/dist/{codemirror_lang-python-ALikgfFT.js.map → codemirror_lang-python-CkOVBHci.js.map} +1 -1
- package/dist/codemirror_language-DOkvasqm.js +2 -0
- package/dist/codemirror_language-DOkvasqm.js.map +1 -0
- package/dist/core-yMbojsTF.js +4 -0
- package/dist/core-yMbojsTF.js.map +1 -0
- package/dist/core.js +1 -1
- package/dist/{deprecations-manager-BGBYu-aR.js → deprecations-manager-CWlW3W3a.js} +2 -2
- package/dist/{deprecations-manager-BGBYu-aR.js.map → deprecations-manager-CWlW3W3a.js.map} +1 -1
- package/dist/{donkey-DtbX8FHu.js → donkey-1gYZHGEv.js} +2 -2
- package/dist/{donkey-DtbX8FHu.js.map → donkey-1gYZHGEv.js.map} +1 -1
- package/dist/{error-69lZn3PQ.js → error-DTjG_eEX.js} +2 -2
- package/dist/{error-69lZn3PQ.js.map → error-DTjG_eEX.js.map} +1 -1
- package/dist/index-jZ1aOVVJ.js +2 -0
- package/dist/index-jZ1aOVVJ.js.map +1 -0
- package/dist/{mpy-DOqfznKg.js → mpy-CHF-2qWb.js} +2 -2
- package/dist/{mpy-DOqfznKg.js.map → mpy-CHF-2qWb.js.map} +1 -1
- package/dist/{py-editor-D3pKEk0l.js → py-editor-Cx0ocfKJ.js} +2 -2
- package/dist/{py-editor-D3pKEk0l.js.map → py-editor-Cx0ocfKJ.js.map} +1 -1
- package/dist/{py-game-D1UTRkG4.js → py-game-c2hEUuhH.js} +2 -2
- package/dist/{py-game-D1UTRkG4.js.map → py-game-c2hEUuhH.js.map} +1 -1
- package/dist/{py-terminal-BCasZwFb.js → py-terminal-DXcoyGEu.js} +2 -2
- package/dist/{py-terminal-BCasZwFb.js.map → py-terminal-DXcoyGEu.js.map} +1 -1
- package/dist/{py-C-cvWUL_.js → py-yHMEF_OH.js} +2 -2
- package/dist/{py-C-cvWUL_.js.map → py-yHMEF_OH.js.map} +1 -1
- package/dist/xterm-readline-CK_45Ygx.js +2 -0
- package/dist/xterm-readline-CK_45Ygx.js.map +1 -0
- package/package.json +3 -3
- package/dist/codemirror-BuBDbT64.js.map +0 -1
- package/dist/codemirror_language-LwABKGqJ.js +0 -2
- package/dist/codemirror_language-LwABKGqJ.js.map +0 -1
- package/dist/core-C4ZFCYUC.js +0 -4
- package/dist/core-C4ZFCYUC.js.map +0 -1
- package/dist/index-C-P2tt7t.js +0 -2
- package/dist/index-C-P2tt7t.js.map +0 -1
- package/dist/xterm-readline-CWt4l78j.js +0 -2
- package/dist/xterm-readline-CWt4l78j.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xterm-readline-CK_45Ygx.js","sources":["../node_modules/strip-ansi/index.js","../node_modules/ansi-regex/index.js","../node_modules/get-east-asian-width/index.js","../node_modules/get-east-asian-width/lookup.js","../node_modules/string-width/index.js","../src/3rd-party/xterm-readline.js"],"sourcesContent":["import ansiRegex from 'ansi-regex';\n\nconst regex = ansiRegex();\n\nexport default function stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n","export default function ansiRegex({onlyFirst = false} = {}) {\n\t// Valid string terminator sequences are BEL, ESC\\, and 0x9c\n\tconst ST = '(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)';\n\n\t// OSC sequences only: ESC ] ... ST (non-greedy until the first ST)\n\tconst osc = `(?:\\\\u001B\\\\][\\\\s\\\\S]*?${ST})`;\n\n\t// CSI and related: ESC/C1, optional intermediates, optional params (supports ; and :) then final byte\n\tconst csi = '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:\\\\d{1,4}(?:[;:]\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]';\n\n\tconst pattern = `${osc}|${csi}`;\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n","import {getCategory, isAmbiguous, isFullWidth, isWide} from './lookup.js';\n\nfunction validate(codePoint) {\n\tif (!Number.isSafeInteger(codePoint)) {\n\t\tthrow new TypeError(`Expected a code point, got \\`${typeof codePoint}\\`.`);\n\t}\n}\n\nexport function eastAsianWidthType(codePoint) {\n\tvalidate(codePoint);\n\n\treturn getCategory(codePoint);\n}\n\nexport function eastAsianWidth(codePoint, {ambiguousAsWide = false} = {}) {\n\tvalidate(codePoint);\n\n\tif (\n\t\tisFullWidth(codePoint)\n\t\t|| isWide(codePoint)\n\t\t|| (ambiguousAsWide && isAmbiguous(codePoint))\n\t) {\n\t\treturn 2;\n\t}\n\n\treturn 1;\n}\n\n// Private exports for https://github.com/sindresorhus/is-fullwidth-code-point\nexport {isFullWidth as _isFullWidth, isWide as _isWide} from './lookup.js';\n","// Generated code.\n\nfunction isAmbiguous(x) {\n\treturn x === 0xA1\n\t\t|| x === 0xA4\n\t\t|| x === 0xA7\n\t\t|| x === 0xA8\n\t\t|| x === 0xAA\n\t\t|| x === 0xAD\n\t\t|| x === 0xAE\n\t\t|| x >= 0xB0 && x <= 0xB4\n\t\t|| x >= 0xB6 && x <= 0xBA\n\t\t|| x >= 0xBC && x <= 0xBF\n\t\t|| x === 0xC6\n\t\t|| x === 0xD0\n\t\t|| x === 0xD7\n\t\t|| x === 0xD8\n\t\t|| x >= 0xDE && x <= 0xE1\n\t\t|| x === 0xE6\n\t\t|| x >= 0xE8 && x <= 0xEA\n\t\t|| x === 0xEC\n\t\t|| x === 0xED\n\t\t|| x === 0xF0\n\t\t|| x === 0xF2\n\t\t|| x === 0xF3\n\t\t|| x >= 0xF7 && x <= 0xFA\n\t\t|| x === 0xFC\n\t\t|| x === 0xFE\n\t\t|| x === 0x101\n\t\t|| x === 0x111\n\t\t|| x === 0x113\n\t\t|| x === 0x11B\n\t\t|| x === 0x126\n\t\t|| x === 0x127\n\t\t|| x === 0x12B\n\t\t|| x >= 0x131 && x <= 0x133\n\t\t|| x === 0x138\n\t\t|| x >= 0x13F && x <= 0x142\n\t\t|| x === 0x144\n\t\t|| x >= 0x148 && x <= 0x14B\n\t\t|| x === 0x14D\n\t\t|| x === 0x152\n\t\t|| x === 0x153\n\t\t|| x === 0x166\n\t\t|| x === 0x167\n\t\t|| x === 0x16B\n\t\t|| x === 0x1CE\n\t\t|| x === 0x1D0\n\t\t|| x === 0x1D2\n\t\t|| x === 0x1D4\n\t\t|| x === 0x1D6\n\t\t|| x === 0x1D8\n\t\t|| x === 0x1DA\n\t\t|| x === 0x1DC\n\t\t|| x === 0x251\n\t\t|| x === 0x261\n\t\t|| x === 0x2C4\n\t\t|| x === 0x2C7\n\t\t|| x >= 0x2C9 && x <= 0x2CB\n\t\t|| x === 0x2CD\n\t\t|| x === 0x2D0\n\t\t|| x >= 0x2D8 && x <= 0x2DB\n\t\t|| x === 0x2DD\n\t\t|| x === 0x2DF\n\t\t|| x >= 0x300 && x <= 0x36F\n\t\t|| x >= 0x391 && x <= 0x3A1\n\t\t|| x >= 0x3A3 && x <= 0x3A9\n\t\t|| x >= 0x3B1 && x <= 0x3C1\n\t\t|| x >= 0x3C3 && x <= 0x3C9\n\t\t|| x === 0x401\n\t\t|| x >= 0x410 && x <= 0x44F\n\t\t|| x === 0x451\n\t\t|| x === 0x2010\n\t\t|| x >= 0x2013 && x <= 0x2016\n\t\t|| x === 0x2018\n\t\t|| x === 0x2019\n\t\t|| x === 0x201C\n\t\t|| x === 0x201D\n\t\t|| x >= 0x2020 && x <= 0x2022\n\t\t|| x >= 0x2024 && x <= 0x2027\n\t\t|| x === 0x2030\n\t\t|| x === 0x2032\n\t\t|| x === 0x2033\n\t\t|| x === 0x2035\n\t\t|| x === 0x203B\n\t\t|| x === 0x203E\n\t\t|| x === 0x2074\n\t\t|| x === 0x207F\n\t\t|| x >= 0x2081 && x <= 0x2084\n\t\t|| x === 0x20AC\n\t\t|| x === 0x2103\n\t\t|| x === 0x2105\n\t\t|| x === 0x2109\n\t\t|| x === 0x2113\n\t\t|| x === 0x2116\n\t\t|| x === 0x2121\n\t\t|| x === 0x2122\n\t\t|| x === 0x2126\n\t\t|| x === 0x212B\n\t\t|| x === 0x2153\n\t\t|| x === 0x2154\n\t\t|| x >= 0x215B && x <= 0x215E\n\t\t|| x >= 0x2160 && x <= 0x216B\n\t\t|| x >= 0x2170 && x <= 0x2179\n\t\t|| x === 0x2189\n\t\t|| x >= 0x2190 && x <= 0x2199\n\t\t|| x === 0x21B8\n\t\t|| x === 0x21B9\n\t\t|| x === 0x21D2\n\t\t|| x === 0x21D4\n\t\t|| x === 0x21E7\n\t\t|| x === 0x2200\n\t\t|| x === 0x2202\n\t\t|| x === 0x2203\n\t\t|| x === 0x2207\n\t\t|| x === 0x2208\n\t\t|| x === 0x220B\n\t\t|| x === 0x220F\n\t\t|| x === 0x2211\n\t\t|| x === 0x2215\n\t\t|| x === 0x221A\n\t\t|| x >= 0x221D && x <= 0x2220\n\t\t|| x === 0x2223\n\t\t|| x === 0x2225\n\t\t|| x >= 0x2227 && x <= 0x222C\n\t\t|| x === 0x222E\n\t\t|| x >= 0x2234 && x <= 0x2237\n\t\t|| x === 0x223C\n\t\t|| x === 0x223D\n\t\t|| x === 0x2248\n\t\t|| x === 0x224C\n\t\t|| x === 0x2252\n\t\t|| x === 0x2260\n\t\t|| x === 0x2261\n\t\t|| x >= 0x2264 && x <= 0x2267\n\t\t|| x === 0x226A\n\t\t|| x === 0x226B\n\t\t|| x === 0x226E\n\t\t|| x === 0x226F\n\t\t|| x === 0x2282\n\t\t|| x === 0x2283\n\t\t|| x === 0x2286\n\t\t|| x === 0x2287\n\t\t|| x === 0x2295\n\t\t|| x === 0x2299\n\t\t|| x === 0x22A5\n\t\t|| x === 0x22BF\n\t\t|| x === 0x2312\n\t\t|| x >= 0x2460 && x <= 0x24E9\n\t\t|| x >= 0x24EB && x <= 0x254B\n\t\t|| x >= 0x2550 && x <= 0x2573\n\t\t|| x >= 0x2580 && x <= 0x258F\n\t\t|| x >= 0x2592 && x <= 0x2595\n\t\t|| x === 0x25A0\n\t\t|| x === 0x25A1\n\t\t|| x >= 0x25A3 && x <= 0x25A9\n\t\t|| x === 0x25B2\n\t\t|| x === 0x25B3\n\t\t|| x === 0x25B6\n\t\t|| x === 0x25B7\n\t\t|| x === 0x25BC\n\t\t|| x === 0x25BD\n\t\t|| x === 0x25C0\n\t\t|| x === 0x25C1\n\t\t|| x >= 0x25C6 && x <= 0x25C8\n\t\t|| x === 0x25CB\n\t\t|| x >= 0x25CE && x <= 0x25D1\n\t\t|| x >= 0x25E2 && x <= 0x25E5\n\t\t|| x === 0x25EF\n\t\t|| x === 0x2605\n\t\t|| x === 0x2606\n\t\t|| x === 0x2609\n\t\t|| x === 0x260E\n\t\t|| x === 0x260F\n\t\t|| x === 0x261C\n\t\t|| x === 0x261E\n\t\t|| x === 0x2640\n\t\t|| x === 0x2642\n\t\t|| x === 0x2660\n\t\t|| x === 0x2661\n\t\t|| x >= 0x2663 && x <= 0x2665\n\t\t|| x >= 0x2667 && x <= 0x266A\n\t\t|| x === 0x266C\n\t\t|| x === 0x266D\n\t\t|| x === 0x266F\n\t\t|| x === 0x269E\n\t\t|| x === 0x269F\n\t\t|| x === 0x26BF\n\t\t|| x >= 0x26C6 && x <= 0x26CD\n\t\t|| x >= 0x26CF && x <= 0x26D3\n\t\t|| x >= 0x26D5 && x <= 0x26E1\n\t\t|| x === 0x26E3\n\t\t|| x === 0x26E8\n\t\t|| x === 0x26E9\n\t\t|| x >= 0x26EB && x <= 0x26F1\n\t\t|| x === 0x26F4\n\t\t|| x >= 0x26F6 && x <= 0x26F9\n\t\t|| x === 0x26FB\n\t\t|| x === 0x26FC\n\t\t|| x === 0x26FE\n\t\t|| x === 0x26FF\n\t\t|| x === 0x273D\n\t\t|| x >= 0x2776 && x <= 0x277F\n\t\t|| x >= 0x2B56 && x <= 0x2B59\n\t\t|| x >= 0x3248 && x <= 0x324F\n\t\t|| x >= 0xE000 && x <= 0xF8FF\n\t\t|| x >= 0xFE00 && x <= 0xFE0F\n\t\t|| x === 0xFFFD\n\t\t|| x >= 0x1F100 && x <= 0x1F10A\n\t\t|| x >= 0x1F110 && x <= 0x1F12D\n\t\t|| x >= 0x1F130 && x <= 0x1F169\n\t\t|| x >= 0x1F170 && x <= 0x1F18D\n\t\t|| x === 0x1F18F\n\t\t|| x === 0x1F190\n\t\t|| x >= 0x1F19B && x <= 0x1F1AC\n\t\t|| x >= 0xE0100 && x <= 0xE01EF\n\t\t|| x >= 0xF0000 && x <= 0xFFFFD\n\t\t|| x >= 0x100000 && x <= 0x10FFFD;\n}\n\nfunction isFullWidth(x) {\n\treturn x === 0x3000\n\t\t|| x >= 0xFF01 && x <= 0xFF60\n\t\t|| x >= 0xFFE0 && x <= 0xFFE6;\n}\n\nfunction isWide(x) {\n\treturn x >= 0x1100 && x <= 0x115F\n\t\t|| x === 0x231A\n\t\t|| x === 0x231B\n\t\t|| x === 0x2329\n\t\t|| x === 0x232A\n\t\t|| x >= 0x23E9 && x <= 0x23EC\n\t\t|| x === 0x23F0\n\t\t|| x === 0x23F3\n\t\t|| x === 0x25FD\n\t\t|| x === 0x25FE\n\t\t|| x === 0x2614\n\t\t|| x === 0x2615\n\t\t|| x >= 0x2630 && x <= 0x2637\n\t\t|| x >= 0x2648 && x <= 0x2653\n\t\t|| x === 0x267F\n\t\t|| x >= 0x268A && x <= 0x268F\n\t\t|| x === 0x2693\n\t\t|| x === 0x26A1\n\t\t|| x === 0x26AA\n\t\t|| x === 0x26AB\n\t\t|| x === 0x26BD\n\t\t|| x === 0x26BE\n\t\t|| x === 0x26C4\n\t\t|| x === 0x26C5\n\t\t|| x === 0x26CE\n\t\t|| x === 0x26D4\n\t\t|| x === 0x26EA\n\t\t|| x === 0x26F2\n\t\t|| x === 0x26F3\n\t\t|| x === 0x26F5\n\t\t|| x === 0x26FA\n\t\t|| x === 0x26FD\n\t\t|| x === 0x2705\n\t\t|| x === 0x270A\n\t\t|| x === 0x270B\n\t\t|| x === 0x2728\n\t\t|| x === 0x274C\n\t\t|| x === 0x274E\n\t\t|| x >= 0x2753 && x <= 0x2755\n\t\t|| x === 0x2757\n\t\t|| x >= 0x2795 && x <= 0x2797\n\t\t|| x === 0x27B0\n\t\t|| x === 0x27BF\n\t\t|| x === 0x2B1B\n\t\t|| x === 0x2B1C\n\t\t|| x === 0x2B50\n\t\t|| x === 0x2B55\n\t\t|| x >= 0x2E80 && x <= 0x2E99\n\t\t|| x >= 0x2E9B && x <= 0x2EF3\n\t\t|| x >= 0x2F00 && x <= 0x2FD5\n\t\t|| x >= 0x2FF0 && x <= 0x2FFF\n\t\t|| x >= 0x3001 && x <= 0x303E\n\t\t|| x >= 0x3041 && x <= 0x3096\n\t\t|| x >= 0x3099 && x <= 0x30FF\n\t\t|| x >= 0x3105 && x <= 0x312F\n\t\t|| x >= 0x3131 && x <= 0x318E\n\t\t|| x >= 0x3190 && x <= 0x31E5\n\t\t|| x >= 0x31EF && x <= 0x321E\n\t\t|| x >= 0x3220 && x <= 0x3247\n\t\t|| x >= 0x3250 && x <= 0xA48C\n\t\t|| x >= 0xA490 && x <= 0xA4C6\n\t\t|| x >= 0xA960 && x <= 0xA97C\n\t\t|| x >= 0xAC00 && x <= 0xD7A3\n\t\t|| x >= 0xF900 && x <= 0xFAFF\n\t\t|| x >= 0xFE10 && x <= 0xFE19\n\t\t|| x >= 0xFE30 && x <= 0xFE52\n\t\t|| x >= 0xFE54 && x <= 0xFE66\n\t\t|| x >= 0xFE68 && x <= 0xFE6B\n\t\t|| x >= 0x16FE0 && x <= 0x16FE4\n\t\t|| x >= 0x16FF0 && x <= 0x16FF6\n\t\t|| x >= 0x17000 && x <= 0x18CD5\n\t\t|| x >= 0x18CFF && x <= 0x18D1E\n\t\t|| x >= 0x18D80 && x <= 0x18DF2\n\t\t|| x >= 0x1AFF0 && x <= 0x1AFF3\n\t\t|| x >= 0x1AFF5 && x <= 0x1AFFB\n\t\t|| x === 0x1AFFD\n\t\t|| x === 0x1AFFE\n\t\t|| x >= 0x1B000 && x <= 0x1B122\n\t\t|| x === 0x1B132\n\t\t|| x >= 0x1B150 && x <= 0x1B152\n\t\t|| x === 0x1B155\n\t\t|| x >= 0x1B164 && x <= 0x1B167\n\t\t|| x >= 0x1B170 && x <= 0x1B2FB\n\t\t|| x >= 0x1D300 && x <= 0x1D356\n\t\t|| x >= 0x1D360 && x <= 0x1D376\n\t\t|| x === 0x1F004\n\t\t|| x === 0x1F0CF\n\t\t|| x === 0x1F18E\n\t\t|| x >= 0x1F191 && x <= 0x1F19A\n\t\t|| x >= 0x1F200 && x <= 0x1F202\n\t\t|| x >= 0x1F210 && x <= 0x1F23B\n\t\t|| x >= 0x1F240 && x <= 0x1F248\n\t\t|| x === 0x1F250\n\t\t|| x === 0x1F251\n\t\t|| x >= 0x1F260 && x <= 0x1F265\n\t\t|| x >= 0x1F300 && x <= 0x1F320\n\t\t|| x >= 0x1F32D && x <= 0x1F335\n\t\t|| x >= 0x1F337 && x <= 0x1F37C\n\t\t|| x >= 0x1F37E && x <= 0x1F393\n\t\t|| x >= 0x1F3A0 && x <= 0x1F3CA\n\t\t|| x >= 0x1F3CF && x <= 0x1F3D3\n\t\t|| x >= 0x1F3E0 && x <= 0x1F3F0\n\t\t|| x === 0x1F3F4\n\t\t|| x >= 0x1F3F8 && x <= 0x1F43E\n\t\t|| x === 0x1F440\n\t\t|| x >= 0x1F442 && x <= 0x1F4FC\n\t\t|| x >= 0x1F4FF && x <= 0x1F53D\n\t\t|| x >= 0x1F54B && x <= 0x1F54E\n\t\t|| x >= 0x1F550 && x <= 0x1F567\n\t\t|| x === 0x1F57A\n\t\t|| x === 0x1F595\n\t\t|| x === 0x1F596\n\t\t|| x === 0x1F5A4\n\t\t|| x >= 0x1F5FB && x <= 0x1F64F\n\t\t|| x >= 0x1F680 && x <= 0x1F6C5\n\t\t|| x === 0x1F6CC\n\t\t|| x >= 0x1F6D0 && x <= 0x1F6D2\n\t\t|| x >= 0x1F6D5 && x <= 0x1F6D8\n\t\t|| x >= 0x1F6DC && x <= 0x1F6DF\n\t\t|| x === 0x1F6EB\n\t\t|| x === 0x1F6EC\n\t\t|| x >= 0x1F6F4 && x <= 0x1F6FC\n\t\t|| x >= 0x1F7E0 && x <= 0x1F7EB\n\t\t|| x === 0x1F7F0\n\t\t|| x >= 0x1F90C && x <= 0x1F93A\n\t\t|| x >= 0x1F93C && x <= 0x1F945\n\t\t|| x >= 0x1F947 && x <= 0x1F9FF\n\t\t|| x >= 0x1FA70 && x <= 0x1FA7C\n\t\t|| x >= 0x1FA80 && x <= 0x1FA8A\n\t\t|| x >= 0x1FA8E && x <= 0x1FAC6\n\t\t|| x === 0x1FAC8\n\t\t|| x >= 0x1FACD && x <= 0x1FADC\n\t\t|| x >= 0x1FADF && x <= 0x1FAEA\n\t\t|| x >= 0x1FAEF && x <= 0x1FAF8\n\t\t|| x >= 0x20000 && x <= 0x2FFFD\n\t\t|| x >= 0x30000 && x <= 0x3FFFD;\n}\n\nfunction getCategory(x) {\n\tif (isAmbiguous(x)) return 'ambiguous';\n\n\tif (isFullWidth(x)) return 'fullwidth';\n\n\tif (\n\t\tx === 0x20A9\n\t\t|| x >= 0xFF61 && x <= 0xFFBE\n\t\t|| x >= 0xFFC2 && x <= 0xFFC7\n\t\t|| x >= 0xFFCA && x <= 0xFFCF\n\t\t|| x >= 0xFFD2 && x <= 0xFFD7\n\t\t|| x >= 0xFFDA && x <= 0xFFDC\n\t\t|| x >= 0xFFE8 && x <= 0xFFEE\n\t) {\n\t\treturn 'halfwidth';\n\t}\n\n\tif (\n\t\tx >= 0x20 && x <= 0x7E\n\t\t|| x === 0xA2\n\t\t|| x === 0xA3\n\t\t|| x === 0xA5\n\t\t|| x === 0xA6\n\t\t|| x === 0xAC\n\t\t|| x === 0xAF\n\t\t|| x >= 0x27E6 && x <= 0x27ED\n\t\t|| x === 0x2985\n\t\t|| x === 0x2986\n\t) {\n\t\treturn 'narrow';\n\t}\n\n\tif (isWide(x)) return 'wide';\n\n\treturn 'neutral';\n}\n\nexport {isAmbiguous, isFullWidth, isWide, getCategory};\n","import stripAnsi from 'strip-ansi';\nimport {eastAsianWidth} from 'get-east-asian-width';\n\n/**\nLogic:\n- Segment graphemes to match how terminals render clusters.\n- Width rules:\n\t1. Skip non-printing clusters (Default_Ignorable, Control, pure Mark, lone Surrogates). Tabs are ignored by design.\n\t2. RGI emoji clusters (\\p{RGI_Emoji}) are double-width.\n\t3. Otherwise use East Asian Width of the cluster’s first visible code point, and add widths for trailing Halfwidth/Fullwidth Forms within the same cluster (e.g., dakuten/handakuten/prolonged sound mark).\n*/\n\nconst segmenter = new Intl.Segmenter();\n\n// Whole-cluster zero-width\nconst zeroWidthClusterRegex = /^(?:\\p{Default_Ignorable_Code_Point}|\\p{Control}|\\p{Mark}|\\p{Surrogate})+$/v;\n\n// Pick the base scalar if the cluster starts with Prepend/Format/Marks\nconst leadingNonPrintingRegex = /^[\\p{Default_Ignorable_Code_Point}\\p{Control}\\p{Format}\\p{Mark}\\p{Surrogate}]+/v;\n\n// RGI emoji sequences\nconst rgiEmojiRegex = /^\\p{RGI_Emoji}$/v;\n\nfunction baseVisible(segment) {\n\treturn segment.replace(leadingNonPrintingRegex, '');\n}\n\nfunction isZeroWidthCluster(segment) {\n\treturn zeroWidthClusterRegex.test(segment);\n}\n\nfunction trailingHalfwidthWidth(segment, eastAsianWidthOptions) {\n\tlet extra = 0;\n\tif (segment.length > 1) {\n\t\tfor (const char of segment.slice(1)) {\n\t\t\tif (char >= '\\uFF00' && char <= '\\uFFEF') {\n\t\t\t\textra += eastAsianWidth(char.codePointAt(0), eastAsianWidthOptions);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn extra;\n}\n\nexport default function stringWidth(input, options = {}) {\n\tif (typeof input !== 'string' || input.length === 0) {\n\t\treturn 0;\n\t}\n\n\tconst {\n\t\tambiguousIsNarrow = true,\n\t\tcountAnsiEscapeCodes = false,\n\t} = options;\n\n\tlet string = input;\n\n\tif (!countAnsiEscapeCodes) {\n\t\tstring = stripAnsi(string);\n\t}\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tlet width = 0;\n\tconst eastAsianWidthOptions = {ambiguousAsWide: !ambiguousIsNarrow};\n\n\tfor (const {segment} of segmenter.segment(string)) {\n\t\t// Zero-width / non-printing clusters\n\t\tif (isZeroWidthCluster(segment)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Emoji width logic\n\t\tif (rgiEmojiRegex.test(segment)) {\n\t\t\twidth += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Everything else: EAW of the cluster’s first visible scalar\n\t\tconst codePoint = baseVisible(segment).codePointAt(0);\n\t\twidth += eastAsianWidth(codePoint, eastAsianWidthOptions);\n\n\t\t// Add width for trailing Halfwidth and Fullwidth Forms (e.g., ゙, ゚, ー)\n\t\twidth += trailingHalfwidthWidth(segment, eastAsianWidthOptions);\n\t}\n\n\treturn width;\n}\n","/**\n * Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.39.0.\n * Original file: /npm/xterm-readline@1.1.2/lib/readline.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\nimport t from\"string-width\";var e,s=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{},i={},r={};Object.defineProperty(r,\"__esModule\",{value:!0}),r.InputType=void 0,r.parseInput=function(t){return Array.from(function*(t){let s=[];const i=t[Symbol.iterator]();for(let t=i.next();!t.done;t=i.next()){const r=t.value;if(r.length>1){s.push(r);continue}const o=r.charCodeAt(0);if(s.length>0&&(o<32||127===o)&&(yield{inputType:e.Text,data:s},s=[]),27!==o)if(o<32||127===o){let t=e.UnsupportedControlChar;switch(o){case 1:t=e.CtrlA;break;case 3:t=e.CtrlC;break;case 4:t=e.CtrlD;break;case 5:t=e.CtrlE;break;case 11:t=e.CtrlK;break;case 17:t=e.CtrlQ;break;case 19:t=e.CtrlS;break;case 21:t=e.CtrlU;break;case 13:t=e.Enter;break;case 127:t=e.Backspace;break;case 12:t=e.CtrlL}yield{inputType:t,data:[r]}}else s.push(r);else{const t=i.next();if(t.done){s.push(\"\u001b\");continue}let r=e.UnsupportedEscape;if(\"[\"!==t.value){if(\"\\r\"===t.value)r=e.AltEnter;yield{inputType:r,data:[\"\u001b\",t.value]};continue}const o=i.next();if(o.done)continue;if(o.value>=\"0\"&&o.value<=\"9\"){let t=o.value;const s=i.next();if(s.done)return;if(s.value>=\"0\"&&s.value<=\"9\")t+=s.value;else if(\"~\"!==s.value)continue;if(\"3\"===t)r=e.Delete;yield{inputType:r,data:[\"\u001b\",\"[\",t,\"~\"]};continue}switch(o.value){case\"A\":r=e.ArrowUp;break;case\"B\":r=e.ArrowDown;break;case\"C\":r=e.ArrowRight;break;case\"D\":r=e.ArrowLeft;break;case\"F\":r=e.End;break;case\"H\":r=e.Home;break;case\"\\r\":r=e.AltEnter}yield{inputType:r,data:[\"\u001b\",\"[\",o.value]}}}s.length>0&&(yield{inputType:e.Text,data:s})}(t))},function(t){t[t.Text=0]=\"Text\",t[t.AltEnter=1]=\"AltEnter\",t[t.ArrowUp=2]=\"ArrowUp\",t[t.ArrowDown=3]=\"ArrowDown\",t[t.ArrowLeft=4]=\"ArrowLeft\",t[t.ArrowRight=5]=\"ArrowRight\",t[t.Delete=6]=\"Delete\",t[t.Backspace=7]=\"Backspace\",t[t.CtrlA=8]=\"CtrlA\",t[t.CtrlC=9]=\"CtrlC\",t[t.CtrlD=10]=\"CtrlD\",t[t.CtrlE=11]=\"CtrlE\",t[t.CtrlK=12]=\"CtrlK\",t[t.CtrlL=13]=\"CtrlL\",t[t.CtrlQ=14]=\"CtrlQ\",t[t.CtrlS=15]=\"CtrlS\",t[t.CtrlU=16]=\"CtrlU\",t[t.End=17]=\"End\",t[t.Enter=18]=\"Enter\",t[t.Home=19]=\"Home\",t[t.ShiftEnter=20]=\"ShiftEnter\",t[t.UnsupportedControlChar=21]=\"UnsupportedControlChar\",t[t.UnsupportedEscape=22]=\"UnsupportedEscape\"}(e||(r.InputType=e={}));var o={},h={};Object.defineProperty(h,\"__esModule\",{value:!0}),h.LineBuffer=void 0;h.LineBuffer=class{constructor(){this.buf=\"\",this.pos=0}buffer(){return this.buf}pos_buffer(){return this.buf.slice(0,this.pos)}length(){return this.buf.length}char_length(){return[...this.buf].length}update(t,e){this.buf=t,this.pos=e}insert(t){const e=t.length,s=this.pos===this.buf.length;return this.buf=s?this.buf+t:this.buf.slice(0,this.pos)+t+this.buf.slice(this.pos),this.pos+=e,s}moveBack(t){const e=this.prevPos(t);return void 0!==e&&(this.pos=e,!0)}moveForward(t){const e=this.nextPos(t);return void 0!==e&&(this.pos=e,!0)}moveHome(){const t=this.startOfLine();return this.pos>t&&(this.pos=t,!0)}moveEnd(){const t=this.endOfLine();return this.pos!==t&&(this.pos=t,!0)}startOfLine(){const t=this.buf.slice(0,this.pos).lastIndexOf(\"\\n\");return-1!==t?t+1:0}endOfLine(){const t=this.buf.slice(this.pos).indexOf(\"\\n\");return-1!==t?this.pos+t:this.buf.length}moveLineUp(t){const e=this.buf.slice(0,this.pos).lastIndexOf(\"\\n\");if(-1===e)return!1;const s=[...this.buf.slice(e+1,this.pos)].length;let i=this.buf.slice(0,e).lastIndexOf(\"\\n\");-1===i?i=0:i+=1;let r=e;for(let e=1;e<t&&0!==i;e++)r=i-1,i=this.buf.slice(0,r).lastIndexOf(\"\\n\"),-1===i?i=0:i+=1;const o=[...this.buf.slice(i,r)].slice(0,s);let h=e;return o.length>0&&(h=o.map((t=>t.length)).reduce(((t,e)=>t+e),0),h=i+h),this.pos=h,!0}moveLineDown(t){const e=this.buf.slice(this.pos).indexOf(\"\\n\");if(-1===e)return!1;let s=this.buf.slice(0,this.pos).lastIndexOf(\"\\n\");-1===s?s=0:s+=1;const i=[...this.buf.slice(s,this.pos)].length;let r=this.pos+e+1,o=this.buf.slice(r).indexOf(\"\\n\");o=-1===o?this.buf.length:r+o;for(let e=1;e<t&&o!==this.buf.length;e++)r=o+1,o=this.buf.slice(r).indexOf(\"\\n\"),o=-1===o?this.buf.length:r+o;const h=[...this.buf.slice(r,o)];return i<h.length?this.pos=h.slice(0,i).map((t=>t.length)).reduce(((t,e)=>t+e),0)+r:this.pos=o,!0}set_pos(t){this.pos=t}prevPos(t){if(0===this.pos)return;const e=this.buf.slice(0,this.pos);return this.pos-[...e].slice(-t).map((t=>t.length)).reduce(((t,e)=>t+e),0)}nextPos(t){if(this.pos===this.buf.length)return;const e=this.buf.slice(this.pos);return this.pos+[...e].slice(0,t).map((t=>t.length)).reduce(((t,e)=>t+e),0)}backspace(t){const e=this.prevPos(t);return void 0!==e&&(this.buf=this.buf.slice(0,e)+this.buf.slice(this.pos),this.pos=e,!0)}delete(t){const e=this.nextPos(t);return void 0!==e&&(this.buf=this.buf.slice(0,this.pos)+this.buf.slice(e),!0)}deleteEndOfLine(){if(0==this.buf.length||this.pos==this.buf.length)return!1;const t=this.pos,e=this.endOfLine();return t==e?this.delete(1):this.buf=this.buf.slice(0,t)+this.buf.slice(e),!0}};var n=s&&s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(o,\"__esModule\",{value:!0}),o.State=o.Layout=o.Position=void 0;const a=h,l=n(t);class u{constructor(t,e){this.row=void 0!==t?t:0,this.col=void 0!==e?e:0}}o.Position=u;class c{constructor(t){this.promptSize=t,this.cursor=new u,this.end=new u}}o.Layout=c;o.State=class{constructor(t,e,s,i){this.line=new a.LineBuffer,this.highlighting=!1,this.prompt=t,this.tty=e,this.highlighter=s,this.history=i,this.promptSize=e.calculatePosition(t,new u),this.layout=new c(this.promptSize)}buffer(){return this.line.buffer()}shouldHighlight(){return this.highlighter.highlightChar(this.line.buf,this.line.pos)?(this.highlighting=!0,!0):!!this.highlighting&&(this.highlighting=!1,!0)}clearScreen(){this.tty.clearScreen(),this.layout.cursor=new u,this.layout.end=new u,this.refresh()}editInsert(t){const e=this.line.insert(t),s=t.includes(\"\\n\");if(e&&!s){const e=(0,l.default)(t);e>0&&this.layout.cursor.col+e<this.tty.col&&!this.shouldHighlight()?(this.layout.cursor.col+=e,this.layout.end.col+=e,this.tty.write(t)):this.refresh()}else this.refresh()}update(t){this.line.update(t,t.length),this.refresh()}editBackspace(t){this.line.backspace(t)&&this.refresh()}editDelete(t){this.line.delete(t)&&this.refresh()}editDeleteEndOfLine(){this.line.deleteEndOfLine()&&this.refresh()}refresh(){const t=this.tty.computeLayout(this.promptSize,this.line);this.tty.refreshLine(this.prompt,this.line,this.layout,t,this.highlighter),this.layout=t}moveCursorBack(t){this.line.moveBack(t)&&this.moveCursor()}moveCursorForward(t){this.line.moveForward(t)&&this.moveCursor()}moveCursorUp(t){this.line.moveLineUp(t)?this.moveCursor():this.previousHistory()}moveCursorDown(t){this.line.moveLineDown(t)?this.moveCursor():this.nextHistory()}moveCursorHome(){this.line.moveHome()&&this.moveCursor()}moveCursorEnd(){this.line.moveEnd()&&this.moveCursor()}moveCursorToEnd(){this.layout.cursor!==this.layout.end&&(this.tty.moveCursor(this.layout.cursor,this.layout.end),this.layout.cursor=Object.assign({},this.layout.end))}previousHistory(){if(-1===this.history.cursor&&this.line.length()>0)return;const t=this.history.prev();void 0!==t&&this.update(t)}nextHistory(){if(-1===this.history.cursor)return;const t=this.history.next();void 0!==t?this.update(t):this.update(\"\")}moveCursor(){const t=this.tty.calculatePosition(this.line.pos_buffer(),this.promptSize);t!==this.layout.cursor&&(this.shouldHighlight()?this.refresh():(this.tty.moveCursor(this.layout.cursor,t),this.layout.promptSize=Object.assign({},this.promptSize),this.layout.cursor=Object.assign({},t)))}};var p={};Object.defineProperty(p,\"__esModule\",{value:!0}),p.History=void 0;p.History=class{constructor(t){this.entries=[],this.cursor=-1,this.maxEntries=t}saveToLocalStorage(){const t=null===window||void 0===window?void 0:window.localStorage;void 0!==t&&t.setItem(\"history\",JSON.stringify(this.entries))}restoreFromLocalStorage(){const t=null===window||void 0===window?void 0:window.localStorage;if(void 0!==t){const e=t.getItem(\"history\");if(null==e)return;try{const s=JSON.parse(e);Array.isArray(s)&&void 0===s.find((t=>\"string\"!=typeof t))?this.entries=s:(this.entries=[],t.setItem(\"history\",\"[]\"))}catch(e){this.entries=[],t.setItem(\"history\",\"[]\")}}}append(t){this.resetCursor(),this.entries.includes(t)?(this.entries.splice(this.entries.indexOf(t),1),this.entries.unshift(t)):this.entries.unshift(t),this.entries.length>this.maxEntries&&this.entries.pop(),this.saveToLocalStorage()}resetCursor(){this.cursor=-1}next(){if(-1!==this.cursor)return this.cursor-=1,this.entries[this.cursor]}prev(){if(!(this.cursor+1>=this.entries.length))return this.cursor+=1,this.entries[this.cursor]}};var d={},f=s&&s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(d,\"__esModule\",{value:!0}),d.Tty=void 0;const y=f(t);d.Tty=class{constructor(t,e,s,i){this.tabWidth=s,this.col=t,this.row=e,this.out=i}write(t){return this.out.write(t)}print(t){return this.out.print(t)}println(t){return this.out.println(t)}clearScreen(){this.out.write(\"\u001b[H\u001b[2J\")}calculatePosition(t,e){const s=Object.assign({},e);let i=0;return[...t].forEach((t=>{if(\"\\n\"===t)return s.row+=1,void(s.col=0);let e=0;if(\"\\t\"===t)e=this.tabWidth-s.col%this.tabWidth;else{let s;[s,i]=function(t,e){return 1===e?\"[\"===t?[0,2]:[0,0]:2===e?\";\"===t||t[0]>=\"0\"&&t[0]<=\"9\"?[0,e]:[0,0]:\"\u001b\"===t?[0,1]:\"\\n\"===t?[0,e]:[(0,y.default)(t),e]}(t,i),e=s}s.col+=e,s.col>this.col&&(s.row+=1,s.col=e)})),s.col===this.col&&(s.col=0,s.row+=1),s}computeLayout(t,e){const s=Object.assign({},t),i=e.pos,r=this.calculatePosition(e.buf.slice(0,e.pos),t);return{promptSize:s,cursor:r,end:i===e.buf.length?Object.assign({},r):this.calculatePosition(e.buf.slice(i),r)}}refreshLine(t,e,s,i,r){const o=i.cursor,h=i.end;this.clearOldRows(s),this.write(r.highlightPrompt(t)),this.write(r.highlight(e.buf,e.pos)),0===h.col&&h.row>0&&\"\\n\"!==e.buf[e.buf.length-1]&&this.write(\"\\n\");const n=h.row-o.row;n>0&&this.write(`\u001b[${n}A`),o.col>0?this.write(`\\r\u001b[${o.col}C`):this.write(\"\\r\")}clearOldRows(t){const e=t.cursor.row,s=t.end.row,i=Math.max(s-e,0);i>0&&this.write(`\u001b[${i}B`);for(let t=0;t<s;t++)this.write(\"\\r\u001b[0K\u001b[A\");this.write(\"\\r\u001b[0K\")}moveCursor(t,e){if(e.row>t.row){const s=e.row-t.row;1===s?this.write(\"\u001b[B\"):this.write(`\u001b[${s}B`)}else if(e.row<t.row){const s=t.row-e.row;1===s?this.write(\"\u001b[A\"):this.write(`\u001b[${s}A`)}if(e.col>t.col){const s=e.col-t.col;1===s?this.write(\"\u001b[C\"):this.write(`\u001b[${s}C`)}else if(e.col<t.col){const s=t.col-e.col;1===s?this.write(\"\u001b[D\"):this.write(`\u001b[${s}D`)}}};var w={};Object.defineProperty(w,\"__esModule\",{value:!0}),w.IdentityHighlighter=void 0;w.IdentityHighlighter=class{highlight(t,e){return t}highlightPrompt(t){return t}highlightChar(t,e){return!1}},Object.defineProperty(i,\"__esModule\",{value:!0});var v=i.Readline=void 0;const b=r,g=o,m=p,C=d,T=w;v=i.Readline=class{constructor(){this.highlighter=new T.IdentityHighlighter,this.history=new m.History(50),this.disposables=[],this.watermark=0,this.highWatermark=1e4,this.lowWatermark=1e3,this.highWater=!1,this.state=new g.State(\">\",this.tty(),this.highlighter,this.history),this.checkHandler=()=>!0,this.ctrlCHandler=()=>{},this.pauseHandler=t=>{},this.history.restoreFromLocalStorage()}activate(t){this.term=t,this.term.onData(this.readData.bind(this)),this.term.attachCustomKeyEventHandler(this.handleKeyEvent.bind(this))}dispose(){this.disposables.forEach((t=>t.dispose()))}appendHistory(t){this.history.append(t)}setHighlighter(t){this.highlighter=t}setCheckHandler(t){this.checkHandler=t}setCtrlCHandler(t){this.ctrlCHandler=t}setPauseHandler(t){this.pauseHandler=t}writeReady(){return!this.highWater}write(t){const e=(t=\"\\n\"===t?\"\\r\\n\":(t=t.replace(/^\\n/,\"\\r\\n\")).replace(/([^\\r])\\n/g,\"$1\\r\\n\")).length;this.watermark+=e,this.watermark>this.highWatermark&&(this.highWater=!0),this.term&&this.term.write(t,(()=>{this.watermark=Math.max(this.watermark-e,0),this.highWater&&this.watermark<this.lowWatermark&&(this.highWater=!1)}))}print(t){return this.write(t)}println(t){return this.write(t+\"\\r\\n\")}output(){return this}tty(){var t,e;return void 0!==(null===(e=null===(t=this.term)||void 0===t?void 0:t.options)||void 0===e?void 0:e.tabStopWidth)?new C.Tty(this.term.cols,this.term.rows,this.term.options.tabStopWidth,this.output()):new C.Tty(0,0,8,this.output())}read(t){return new Promise(((e,s)=>{void 0!==this.term?(this.state=new g.State(t,this.tty(),this.highlighter,this.history),this.state.refresh(),this.activeRead={prompt:t,resolve:e,reject:s}):s(\"addon is not active\")}))}handleKeyEvent(t){return\"Enter\"!==t.key||!t.shiftKey||(\"keydown\"===t.type&&this.readKey({inputType:b.InputType.ShiftEnter,data:[\"\\r\"]}),!1)}readData(t){const e=(0,b.parseInput)(t);e.length>1||e[0].inputType===b.InputType.Text&&e[0].data.length>1?this.readPaste(e):this.readKey(e[0])}readPaste(t){const e=t.map((t=>t.inputType===b.InputType.Enter?{inputType:b.InputType.Text,data:[\"\\n\"]}:t));for(const t of e)t.inputType===b.InputType.Text?this.state.editInsert(t.data.join(\"\")):this.readKey(t)}readKey(t){var e,s,i;if(void 0!==this.activeRead)switch(t.inputType){case b.InputType.Text:this.state.editInsert(t.data.join(\"\"));break;case b.InputType.AltEnter:case b.InputType.ShiftEnter:this.state.editInsert(\"\\n\");break;case b.InputType.Enter:this.checkHandler(this.state.buffer())?(this.state.moveCursorToEnd(),null===(e=this.term)||void 0===e||e.write(\"\\r\\n\"),this.history.append(this.state.buffer()),null===(s=this.activeRead)||void 0===s||s.resolve(this.state.buffer()),this.activeRead=void 0):this.state.editInsert(\"\\n\");break;case b.InputType.CtrlC:this.state.moveCursorToEnd(),null===(i=this.term)||void 0===i||i.write(\"^C\\r\\n\"),this.state=new g.State(this.activeRead.prompt,this.tty(),this.highlighter,this.history),this.state.refresh();break;case b.InputType.CtrlS:this.pauseHandler(!1);break;case b.InputType.CtrlU:this.state.update(\"\");break;case b.InputType.CtrlK:this.state.editDeleteEndOfLine();break;case b.InputType.CtrlQ:this.pauseHandler(!0);break;case b.InputType.CtrlL:this.state.clearScreen();break;case b.InputType.Home:case b.InputType.CtrlA:this.state.moveCursorHome();break;case b.InputType.End:case b.InputType.CtrlE:this.state.moveCursorEnd();break;case b.InputType.Backspace:this.state.editBackspace(1);break;case b.InputType.Delete:case b.InputType.CtrlD:this.state.editDelete(1);break;case b.InputType.ArrowLeft:this.state.moveCursorBack(1);break;case b.InputType.ArrowRight:this.state.moveCursorForward(1);break;case b.InputType.ArrowUp:this.state.moveCursorUp(1);break;case b.InputType.ArrowDown:this.state.moveCursorDown(1);case b.InputType.UnsupportedControlChar:case b.InputType.UnsupportedEscape:}else switch(t.inputType){case b.InputType.CtrlC:this.ctrlCHandler();break;case b.InputType.CtrlL:this.write(\"\u001b[H\u001b[2J\")}}};var k=i.__esModule;export{v as Readline,k as __esModule,i as default};\n"],"names":["regex","onlyFirst","RegExp","undefined","ansiRegex","eastAsianWidth","codePoint","ambiguousAsWide","Number","isSafeInteger","TypeError","validate","x","isWide","isAmbiguous","segmenter","Intl","Segmenter","zeroWidthClusterRegex","leadingNonPrintingRegex","rgiEmojiRegex","baseVisible","segment","replace","isZeroWidthCluster","test","trailingHalfwidthWidth","eastAsianWidthOptions","extra","length","char","slice","codePointAt","stringWidth","input","options","ambiguousIsNarrow","countAnsiEscapeCodes","string","stripAnsi","width","e","t","s","globalThis","window","global","self","i","r","Object","defineProperty","value","InputType","parseInput","Array","from","Symbol","iterator","next","done","push","o","charCodeAt","inputType","Text","data","UnsupportedControlChar","CtrlA","CtrlC","CtrlD","CtrlE","CtrlK","CtrlQ","CtrlS","CtrlU","Enter","Backspace","CtrlL","UnsupportedEscape","AltEnter","Delete","ArrowUp","ArrowDown","ArrowRight","ArrowLeft","End","Home","ShiftEnter","h","LineBuffer","constructor","this","buf","pos","buffer","pos_buffer","char_length","update","insert","moveBack","prevPos","moveForward","nextPos","moveHome","startOfLine","moveEnd","endOfLine","lastIndexOf","indexOf","moveLineUp","map","reduce","moveLineDown","set_pos","backspace","deleteEndOfLine","delete","n","__importDefault","__esModule","default","State","Layout","Position","a","l","u","row","col","c","promptSize","cursor","end","line","highlighting","prompt","tty","highlighter","history","calculatePosition","layout","shouldHighlight","highlightChar","clearScreen","refresh","editInsert","includes","write","editBackspace","editDelete","editDeleteEndOfLine","computeLayout","refreshLine","moveCursorBack","moveCursor","moveCursorForward","moveCursorUp","previousHistory","moveCursorDown","nextHistory","moveCursorHome","moveCursorEnd","moveCursorToEnd","assign","prev","p","History","entries","maxEntries","saveToLocalStorage","localStorage","setItem","JSON","stringify","restoreFromLocalStorage","getItem","parse","isArray","find","append","resetCursor","splice","unshift","pop","d","f","Tty","y","tabWidth","out","print","println","forEach","clearOldRows","highlightPrompt","highlight","Math","max","w","IdentityHighlighter","v","Readline","b","g","m","C","T","disposables","watermark","highWatermark","lowWatermark","highWater","state","checkHandler","ctrlCHandler","pauseHandler","activate","term","onData","readData","bind","attachCustomKeyEventHandler","handleKeyEvent","dispose","appendHistory","setHighlighter","setCheckHandler","setCtrlCHandler","setPauseHandler","writeReady","output","tabStopWidth","cols","rows","read","Promise","activeRead","resolve","reject","key","shiftKey","type","readKey","readPaste","join","k"],"mappings":"AAEA,MAAMA,ECFS,UAAmBC,UAACA,GAAY,GAAS,CAAA,GAYvD,OAAO,IAAIC,OAFK,gJAEWD,OAAYE,EAAY,IACpD,CDXcC,GEYP,SAASC,EAAeC,GAAWC,gBAACA,GAAkB,GAAS,CAAA,GAGrE,OAfD,SAAkBD,GACjB,IAAKE,OAAOC,cAAcH,GACzB,MAAM,IAAII,UAAU,uCAAuCJ,OAE7D,CASCK,CAASL,GC8MI,SADOM,ED1MPN,IC4MTM,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OAGzB,SAAgBA,GACf,OAAOA,GAAK,MAAUA,GAAK,MACjB,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACAA,GAAK,MAAUA,GAAK,MACd,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACAA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACd,OAANA,GACAA,GAAK,MAAUA,GAAK,MACd,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACAA,GAAK,OAAUA,GAAK,OACd,QAANA,GACAA,GAAK,OAAUA,GAAK,OACd,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACAA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAWA,GAAK,OACrBA,GAAK,OAAWA,GAAK,OACrBA,GAAK,OAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACf,SAANA,GACM,SAANA,GACAA,GAAK,QAAWA,GAAK,QACf,SAANA,GACAA,GAAK,QAAWA,GAAK,QACf,SAANA,GACAA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACf,SAANA,GACM,SAANA,GACM,SAANA,GACAA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACf,SAANA,GACM,SAANA,GACAA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACf,SAANA,GACAA,GAAK,QAAWA,GAAK,QACf,SAANA,GACAA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACf,SAANA,GACM,SAANA,GACM,SAANA,GACM,SAANA,GACAA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACf,SAANA,GACAA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACf,SAANA,GACM,SAANA,GACAA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACf,SAANA,GACAA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACf,SAANA,GACAA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,MAC1B,CDxVKC,CAAOP,IACNC,GClBN,SAAqBK,GACpB,OAAa,MAANA,GACG,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACAA,GAAK,KAAQA,GAAK,KAClBA,GAAK,KAAQA,GAAK,KAClBA,GAAK,KAAQA,GAAK,KACZ,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACAA,GAAK,KAAQA,GAAK,KACZ,MAANA,GACAA,GAAK,KAAQA,GAAK,KACZ,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACAA,GAAK,KAAQA,GAAK,KACZ,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACAA,GAAK,KAASA,GAAK,KACb,MAANA,GACAA,GAAK,KAASA,GAAK,KACb,MAANA,GACAA,GAAK,KAASA,GAAK,KACb,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACAA,GAAK,KAASA,GAAK,KACb,MAANA,GACM,MAANA,GACAA,GAAK,KAASA,GAAK,KACb,MAANA,GACM,MAANA,GACAA,GAAK,KAASA,GAAK,KACnBA,GAAK,KAASA,GAAK,KACnBA,GAAK,KAASA,GAAK,KACnBA,GAAK,KAASA,GAAK,KACnBA,GAAK,KAASA,GAAK,KACb,OAANA,GACAA,GAAK,MAASA,GAAK,MACb,OAANA,GACM,OAANA,GACAA,GAAK,MAAUA,GAAK,MACd,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACAA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACd,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACAA,GAAK,MAAUA,GAAK,MACd,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACAA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACd,OAANA,GACAA,GAAK,MAAUA,GAAK,MACd,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACAA,GAAK,MAAUA,GAAK,MACd,OAANA,GACM,OAANA,GACAA,GAAK,MAAUA,GAAK,MACd,OAANA,GACAA,GAAK,MAAUA,GAAK,MACd,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACAA,GAAK,MAAUA,GAAK,MACd,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACAA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACd,OAANA,GAC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","x_google_ignoreList":[0,1,2,3,4]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pyscript/core",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "PyScript",
|
|
6
6
|
"module": "./index.js",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"@webreflection/utils": "^0.1.1",
|
|
71
71
|
"add-promise-listener": "^0.1.3",
|
|
72
72
|
"basic-devtools": "^0.1.6",
|
|
73
|
-
"polyscript": "^0.19.
|
|
73
|
+
"polyscript": "^0.19.7",
|
|
74
74
|
"sticky-module": "^0.1.1",
|
|
75
75
|
"to-json-callback": "^0.1.1",
|
|
76
76
|
"type-checked-collections": "^0.1.7"
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"@xterm/addon-fit": "^0.10.0",
|
|
90
90
|
"@xterm/addon-web-links": "^0.11.0",
|
|
91
91
|
"@xterm/xterm": "^5.5.0",
|
|
92
|
-
"bun": "^1.3.
|
|
92
|
+
"bun": "^1.3.1",
|
|
93
93
|
"chokidar": "^4.0.3",
|
|
94
94
|
"codedent": "^0.1.2",
|
|
95
95
|
"codemirror": "^6.0.2",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codemirror-BuBDbT64.js","sources":["../node_modules/@codemirror/search/dist/index.js","../node_modules/@codemirror/lint/dist/index.js","../node_modules/codemirror/dist/index.js"],"sourcesContent":["import { showPanel, EditorView, getPanel, Decoration, ViewPlugin, runScopeHandlers } from '@codemirror/view';\nimport { codePointAt, fromCodePoint, codePointSize, StateEffect, StateField, EditorSelection, Facet, combineConfig, CharCategory, RangeSetBuilder, Prec, EditorState, findClusterBreak } from '@codemirror/state';\nimport elt from 'crelt';\n\nconst basicNormalize = typeof String.prototype.normalize == \"function\"\n ? x => x.normalize(\"NFKD\") : x => x;\n/**\nA search cursor provides an iterator over text matches in a\ndocument.\n*/\nclass SearchCursor {\n /**\n Create a text cursor. The query is the search string, `from` to\n `to` provides the region to search.\n \n When `normalize` is given, it will be called, on both the query\n string and the content it is matched against, before comparing.\n You can, for example, create a case-insensitive search by\n passing `s => s.toLowerCase()`.\n \n Text is always normalized with\n [`.normalize(\"NFKD\")`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize)\n (when supported).\n */\n constructor(text, query, from = 0, to = text.length, normalize, test) {\n this.test = test;\n /**\n The current match (only holds a meaningful value after\n [`next`](https://codemirror.net/6/docs/ref/#search.SearchCursor.next) has been called and when\n `done` is false).\n */\n this.value = { from: 0, to: 0 };\n /**\n Whether the end of the iterated region has been reached.\n */\n this.done = false;\n this.matches = [];\n this.buffer = \"\";\n this.bufferPos = 0;\n this.iter = text.iterRange(from, to);\n this.bufferStart = from;\n this.normalize = normalize ? x => normalize(basicNormalize(x)) : basicNormalize;\n this.query = this.normalize(query);\n }\n peek() {\n if (this.bufferPos == this.buffer.length) {\n this.bufferStart += this.buffer.length;\n this.iter.next();\n if (this.iter.done)\n return -1;\n this.bufferPos = 0;\n this.buffer = this.iter.value;\n }\n return codePointAt(this.buffer, this.bufferPos);\n }\n /**\n Look for the next match. Updates the iterator's\n [`value`](https://codemirror.net/6/docs/ref/#search.SearchCursor.value) and\n [`done`](https://codemirror.net/6/docs/ref/#search.SearchCursor.done) properties. Should be called\n at least once before using the cursor.\n */\n next() {\n while (this.matches.length)\n this.matches.pop();\n return this.nextOverlapping();\n }\n /**\n The `next` method will ignore matches that partially overlap a\n previous match. This method behaves like `next`, but includes\n such matches.\n */\n nextOverlapping() {\n for (;;) {\n let next = this.peek();\n if (next < 0) {\n this.done = true;\n return this;\n }\n let str = fromCodePoint(next), start = this.bufferStart + this.bufferPos;\n this.bufferPos += codePointSize(next);\n let norm = this.normalize(str);\n if (norm.length)\n for (let i = 0, pos = start;; i++) {\n let code = norm.charCodeAt(i);\n let match = this.match(code, pos, this.bufferPos + this.bufferStart);\n if (i == norm.length - 1) {\n if (match) {\n this.value = match;\n return this;\n }\n break;\n }\n if (pos == start && i < str.length && str.charCodeAt(i) == code)\n pos++;\n }\n }\n }\n match(code, pos, end) {\n let match = null;\n for (let i = 0; i < this.matches.length; i += 2) {\n let index = this.matches[i], keep = false;\n if (this.query.charCodeAt(index) == code) {\n if (index == this.query.length - 1) {\n match = { from: this.matches[i + 1], to: end };\n }\n else {\n this.matches[i]++;\n keep = true;\n }\n }\n if (!keep) {\n this.matches.splice(i, 2);\n i -= 2;\n }\n }\n if (this.query.charCodeAt(0) == code) {\n if (this.query.length == 1)\n match = { from: pos, to: end };\n else\n this.matches.push(1, pos);\n }\n if (match && this.test && !this.test(match.from, match.to, this.buffer, this.bufferStart))\n match = null;\n return match;\n }\n}\nif (typeof Symbol != \"undefined\")\n SearchCursor.prototype[Symbol.iterator] = function () { return this; };\n\nconst empty = { from: -1, to: -1, match: /*@__PURE__*//.*/.exec(\"\") };\nconst baseFlags = \"gm\" + (/x/.unicode == null ? \"\" : \"u\");\n/**\nThis class is similar to [`SearchCursor`](https://codemirror.net/6/docs/ref/#search.SearchCursor)\nbut searches for a regular expression pattern instead of a plain\nstring.\n*/\nclass RegExpCursor {\n /**\n Create a cursor that will search the given range in the given\n document. `query` should be the raw pattern (as you'd pass it to\n `new RegExp`).\n */\n constructor(text, query, options, from = 0, to = text.length) {\n this.text = text;\n this.to = to;\n this.curLine = \"\";\n /**\n Set to `true` when the cursor has reached the end of the search\n range.\n */\n this.done = false;\n /**\n Will contain an object with the extent of the match and the\n match object when [`next`](https://codemirror.net/6/docs/ref/#search.RegExpCursor.next)\n sucessfully finds a match.\n */\n this.value = empty;\n if (/\\\\[sWDnr]|\\n|\\r|\\[\\^/.test(query))\n return new MultilineRegExpCursor(text, query, options, from, to);\n this.re = new RegExp(query, baseFlags + ((options === null || options === void 0 ? void 0 : options.ignoreCase) ? \"i\" : \"\"));\n this.test = options === null || options === void 0 ? void 0 : options.test;\n this.iter = text.iter();\n let startLine = text.lineAt(from);\n this.curLineStart = startLine.from;\n this.matchPos = toCharEnd(text, from);\n this.getLine(this.curLineStart);\n }\n getLine(skip) {\n this.iter.next(skip);\n if (this.iter.lineBreak) {\n this.curLine = \"\";\n }\n else {\n this.curLine = this.iter.value;\n if (this.curLineStart + this.curLine.length > this.to)\n this.curLine = this.curLine.slice(0, this.to - this.curLineStart);\n this.iter.next();\n }\n }\n nextLine() {\n this.curLineStart = this.curLineStart + this.curLine.length + 1;\n if (this.curLineStart > this.to)\n this.curLine = \"\";\n else\n this.getLine(0);\n }\n /**\n Move to the next match, if there is one.\n */\n next() {\n for (let off = this.matchPos - this.curLineStart;;) {\n this.re.lastIndex = off;\n let match = this.matchPos <= this.to && this.re.exec(this.curLine);\n if (match) {\n let from = this.curLineStart + match.index, to = from + match[0].length;\n this.matchPos = toCharEnd(this.text, to + (from == to ? 1 : 0));\n if (from == this.curLineStart + this.curLine.length)\n this.nextLine();\n if ((from < to || from > this.value.to) && (!this.test || this.test(from, to, match))) {\n this.value = { from, to, match };\n return this;\n }\n off = this.matchPos - this.curLineStart;\n }\n else if (this.curLineStart + this.curLine.length < this.to) {\n this.nextLine();\n off = 0;\n }\n else {\n this.done = true;\n return this;\n }\n }\n }\n}\nconst flattened = /*@__PURE__*/new WeakMap();\n// Reusable (partially) flattened document strings\nclass FlattenedDoc {\n constructor(from, text) {\n this.from = from;\n this.text = text;\n }\n get to() { return this.from + this.text.length; }\n static get(doc, from, to) {\n let cached = flattened.get(doc);\n if (!cached || cached.from >= to || cached.to <= from) {\n let flat = new FlattenedDoc(from, doc.sliceString(from, to));\n flattened.set(doc, flat);\n return flat;\n }\n if (cached.from == from && cached.to == to)\n return cached;\n let { text, from: cachedFrom } = cached;\n if (cachedFrom > from) {\n text = doc.sliceString(from, cachedFrom) + text;\n cachedFrom = from;\n }\n if (cached.to < to)\n text += doc.sliceString(cached.to, to);\n flattened.set(doc, new FlattenedDoc(cachedFrom, text));\n return new FlattenedDoc(from, text.slice(from - cachedFrom, to - cachedFrom));\n }\n}\nclass MultilineRegExpCursor {\n constructor(text, query, options, from, to) {\n this.text = text;\n this.to = to;\n this.done = false;\n this.value = empty;\n this.matchPos = toCharEnd(text, from);\n this.re = new RegExp(query, baseFlags + ((options === null || options === void 0 ? void 0 : options.ignoreCase) ? \"i\" : \"\"));\n this.test = options === null || options === void 0 ? void 0 : options.test;\n this.flat = FlattenedDoc.get(text, from, this.chunkEnd(from + 5000 /* Chunk.Base */));\n }\n chunkEnd(pos) {\n return pos >= this.to ? this.to : this.text.lineAt(pos).to;\n }\n next() {\n for (;;) {\n let off = this.re.lastIndex = this.matchPos - this.flat.from;\n let match = this.re.exec(this.flat.text);\n // Skip empty matches directly after the last match\n if (match && !match[0] && match.index == off) {\n this.re.lastIndex = off + 1;\n match = this.re.exec(this.flat.text);\n }\n if (match) {\n let from = this.flat.from + match.index, to = from + match[0].length;\n // If a match goes almost to the end of a noncomplete chunk, try\n // again, since it'll likely be able to match more\n if ((this.flat.to >= this.to || match.index + match[0].length <= this.flat.text.length - 10) &&\n (!this.test || this.test(from, to, match))) {\n this.value = { from, to, match };\n this.matchPos = toCharEnd(this.text, to + (from == to ? 1 : 0));\n return this;\n }\n }\n if (this.flat.to == this.to) {\n this.done = true;\n return this;\n }\n // Grow the flattened doc\n this.flat = FlattenedDoc.get(this.text, this.flat.from, this.chunkEnd(this.flat.from + this.flat.text.length * 2));\n }\n }\n}\nif (typeof Symbol != \"undefined\") {\n RegExpCursor.prototype[Symbol.iterator] = MultilineRegExpCursor.prototype[Symbol.iterator] =\n function () { return this; };\n}\nfunction validRegExp(source) {\n try {\n new RegExp(source, baseFlags);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nfunction toCharEnd(text, pos) {\n if (pos >= text.length)\n return pos;\n let line = text.lineAt(pos), next;\n while (pos < line.to && (next = line.text.charCodeAt(pos - line.from)) >= 0xDC00 && next < 0xE000)\n pos++;\n return pos;\n}\n\nfunction createLineDialog(view) {\n let line = String(view.state.doc.lineAt(view.state.selection.main.head).number);\n let input = elt(\"input\", { class: \"cm-textfield\", name: \"line\", value: line });\n let dom = elt(\"form\", {\n class: \"cm-gotoLine\",\n onkeydown: (event) => {\n if (event.keyCode == 27) { // Escape\n event.preventDefault();\n view.dispatch({ effects: dialogEffect.of(false) });\n view.focus();\n }\n else if (event.keyCode == 13) { // Enter\n event.preventDefault();\n go();\n }\n },\n onsubmit: (event) => {\n event.preventDefault();\n go();\n }\n }, elt(\"label\", view.state.phrase(\"Go to line\"), \": \", input), \" \", elt(\"button\", { class: \"cm-button\", type: \"submit\" }, view.state.phrase(\"go\")), elt(\"button\", {\n name: \"close\",\n onclick: () => {\n view.dispatch({ effects: dialogEffect.of(false) });\n view.focus();\n },\n \"aria-label\": view.state.phrase(\"close\"),\n type: \"button\"\n }, [\"×\"]));\n function go() {\n let match = /^([+-])?(\\d+)?(:\\d+)?(%)?$/.exec(input.value);\n if (!match)\n return;\n let { state } = view, startLine = state.doc.lineAt(state.selection.main.head);\n let [, sign, ln, cl, percent] = match;\n let col = cl ? +cl.slice(1) : 0;\n let line = ln ? +ln : startLine.number;\n if (ln && percent) {\n let pc = line / 100;\n if (sign)\n pc = pc * (sign == \"-\" ? -1 : 1) + (startLine.number / state.doc.lines);\n line = Math.round(state.doc.lines * pc);\n }\n else if (ln && sign) {\n line = line * (sign == \"-\" ? -1 : 1) + startLine.number;\n }\n let docLine = state.doc.line(Math.max(1, Math.min(state.doc.lines, line)));\n let selection = EditorSelection.cursor(docLine.from + Math.max(0, Math.min(col, docLine.length)));\n view.dispatch({\n effects: [dialogEffect.of(false), EditorView.scrollIntoView(selection.from, { y: 'center' })],\n selection,\n });\n view.focus();\n }\n return { dom };\n}\nconst dialogEffect = /*@__PURE__*/StateEffect.define();\nconst dialogField = /*@__PURE__*/StateField.define({\n create() { return true; },\n update(value, tr) {\n for (let e of tr.effects)\n if (e.is(dialogEffect))\n value = e.value;\n return value;\n },\n provide: f => showPanel.from(f, val => val ? createLineDialog : null)\n});\n/**\nCommand that shows a dialog asking the user for a line number, and\nwhen a valid position is provided, moves the cursor to that line.\n\nSupports line numbers, relative line offsets prefixed with `+` or\n`-`, document percentages suffixed with `%`, and an optional\ncolumn position by adding `:` and a second number after the line\nnumber.\n*/\nconst gotoLine = view => {\n let panel = getPanel(view, createLineDialog);\n if (!panel) {\n let effects = [dialogEffect.of(true)];\n if (view.state.field(dialogField, false) == null)\n effects.push(StateEffect.appendConfig.of([dialogField, baseTheme$1]));\n view.dispatch({ effects });\n panel = getPanel(view, createLineDialog);\n }\n if (panel)\n panel.dom.querySelector(\"input\").select();\n return true;\n};\nconst baseTheme$1 = /*@__PURE__*/EditorView.baseTheme({\n \".cm-panel.cm-gotoLine\": {\n padding: \"2px 6px 4px\",\n position: \"relative\",\n \"& label\": { fontSize: \"80%\" },\n \"& [name=close]\": {\n position: \"absolute\",\n top: \"0\", bottom: \"0\",\n right: \"4px\",\n backgroundColor: \"inherit\",\n border: \"none\",\n font: \"inherit\",\n padding: \"0\"\n }\n }\n});\n\nconst defaultHighlightOptions = {\n highlightWordAroundCursor: false,\n minSelectionLength: 1,\n maxMatches: 100,\n wholeWords: false\n};\nconst highlightConfig = /*@__PURE__*/Facet.define({\n combine(options) {\n return combineConfig(options, defaultHighlightOptions, {\n highlightWordAroundCursor: (a, b) => a || b,\n minSelectionLength: Math.min,\n maxMatches: Math.min\n });\n }\n});\n/**\nThis extension highlights text that matches the selection. It uses\nthe `\"cm-selectionMatch\"` class for the highlighting. When\n`highlightWordAroundCursor` is enabled, the word at the cursor\nitself will be highlighted with `\"cm-selectionMatch-main\"`.\n*/\nfunction highlightSelectionMatches(options) {\n let ext = [defaultTheme, matchHighlighter];\n if (options)\n ext.push(highlightConfig.of(options));\n return ext;\n}\nconst matchDeco = /*@__PURE__*/Decoration.mark({ class: \"cm-selectionMatch\" });\nconst mainMatchDeco = /*@__PURE__*/Decoration.mark({ class: \"cm-selectionMatch cm-selectionMatch-main\" });\n// Whether the characters directly outside the given positions are non-word characters\nfunction insideWordBoundaries(check, state, from, to) {\n return (from == 0 || check(state.sliceDoc(from - 1, from)) != CharCategory.Word) &&\n (to == state.doc.length || check(state.sliceDoc(to, to + 1)) != CharCategory.Word);\n}\n// Whether the characters directly at the given positions are word characters\nfunction insideWord(check, state, from, to) {\n return check(state.sliceDoc(from, from + 1)) == CharCategory.Word\n && check(state.sliceDoc(to - 1, to)) == CharCategory.Word;\n}\nconst matchHighlighter = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.decorations = this.getDeco(view);\n }\n update(update) {\n if (update.selectionSet || update.docChanged || update.viewportChanged)\n this.decorations = this.getDeco(update.view);\n }\n getDeco(view) {\n let conf = view.state.facet(highlightConfig);\n let { state } = view, sel = state.selection;\n if (sel.ranges.length > 1)\n return Decoration.none;\n let range = sel.main, query, check = null;\n if (range.empty) {\n if (!conf.highlightWordAroundCursor)\n return Decoration.none;\n let word = state.wordAt(range.head);\n if (!word)\n return Decoration.none;\n check = state.charCategorizer(range.head);\n query = state.sliceDoc(word.from, word.to);\n }\n else {\n let len = range.to - range.from;\n if (len < conf.minSelectionLength || len > 200)\n return Decoration.none;\n if (conf.wholeWords) {\n query = state.sliceDoc(range.from, range.to); // TODO: allow and include leading/trailing space?\n check = state.charCategorizer(range.head);\n if (!(insideWordBoundaries(check, state, range.from, range.to) &&\n insideWord(check, state, range.from, range.to)))\n return Decoration.none;\n }\n else {\n query = state.sliceDoc(range.from, range.to);\n if (!query)\n return Decoration.none;\n }\n }\n let deco = [];\n for (let part of view.visibleRanges) {\n let cursor = new SearchCursor(state.doc, query, part.from, part.to);\n while (!cursor.next().done) {\n let { from, to } = cursor.value;\n if (!check || insideWordBoundaries(check, state, from, to)) {\n if (range.empty && from <= range.from && to >= range.to)\n deco.push(mainMatchDeco.range(from, to));\n else if (from >= range.to || to <= range.from)\n deco.push(matchDeco.range(from, to));\n if (deco.length > conf.maxMatches)\n return Decoration.none;\n }\n }\n }\n return Decoration.set(deco);\n }\n}, {\n decorations: v => v.decorations\n});\nconst defaultTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-selectionMatch\": { backgroundColor: \"#99ff7780\" },\n \".cm-searchMatch .cm-selectionMatch\": { backgroundColor: \"transparent\" }\n});\n// Select the words around the cursors.\nconst selectWord = ({ state, dispatch }) => {\n let { selection } = state;\n let newSel = EditorSelection.create(selection.ranges.map(range => state.wordAt(range.head) || EditorSelection.cursor(range.head)), selection.mainIndex);\n if (newSel.eq(selection))\n return false;\n dispatch(state.update({ selection: newSel }));\n return true;\n};\n// Find next occurrence of query relative to last cursor. Wrap around\n// the document if there are no more matches.\nfunction findNextOccurrence(state, query) {\n let { main, ranges } = state.selection;\n let word = state.wordAt(main.head), fullWord = word && word.from == main.from && word.to == main.to;\n for (let cycled = false, cursor = new SearchCursor(state.doc, query, ranges[ranges.length - 1].to);;) {\n cursor.next();\n if (cursor.done) {\n if (cycled)\n return null;\n cursor = new SearchCursor(state.doc, query, 0, Math.max(0, ranges[ranges.length - 1].from - 1));\n cycled = true;\n }\n else {\n if (cycled && ranges.some(r => r.from == cursor.value.from))\n continue;\n if (fullWord) {\n let word = state.wordAt(cursor.value.from);\n if (!word || word.from != cursor.value.from || word.to != cursor.value.to)\n continue;\n }\n return cursor.value;\n }\n }\n}\n/**\nSelect next occurrence of the current selection. Expand selection\nto the surrounding word when the selection is empty.\n*/\nconst selectNextOccurrence = ({ state, dispatch }) => {\n let { ranges } = state.selection;\n if (ranges.some(sel => sel.from === sel.to))\n return selectWord({ state, dispatch });\n let searchedText = state.sliceDoc(ranges[0].from, ranges[0].to);\n if (state.selection.ranges.some(r => state.sliceDoc(r.from, r.to) != searchedText))\n return false;\n let range = findNextOccurrence(state, searchedText);\n if (!range)\n return false;\n dispatch(state.update({\n selection: state.selection.addRange(EditorSelection.range(range.from, range.to), false),\n effects: EditorView.scrollIntoView(range.to)\n }));\n return true;\n};\n\nconst searchConfigFacet = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n top: false,\n caseSensitive: false,\n literal: false,\n regexp: false,\n wholeWord: false,\n createPanel: view => new SearchPanel(view),\n scrollToMatch: range => EditorView.scrollIntoView(range)\n });\n }\n});\n/**\nAdd search state to the editor configuration, and optionally\nconfigure the search extension.\n([`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel) will automatically\nenable this if it isn't already on).\n*/\nfunction search(config) {\n return config ? [searchConfigFacet.of(config), searchExtensions] : searchExtensions;\n}\n/**\nA search query. Part of the editor's search state.\n*/\nclass SearchQuery {\n /**\n Create a query object.\n */\n constructor(config) {\n this.search = config.search;\n this.caseSensitive = !!config.caseSensitive;\n this.literal = !!config.literal;\n this.regexp = !!config.regexp;\n this.replace = config.replace || \"\";\n this.valid = !!this.search && (!this.regexp || validRegExp(this.search));\n this.unquoted = this.unquote(this.search);\n this.wholeWord = !!config.wholeWord;\n }\n /**\n @internal\n */\n unquote(text) {\n return this.literal ? text :\n text.replace(/\\\\([nrt\\\\])/g, (_, ch) => ch == \"n\" ? \"\\n\" : ch == \"r\" ? \"\\r\" : ch == \"t\" ? \"\\t\" : \"\\\\\");\n }\n /**\n Compare this query to another query.\n */\n eq(other) {\n return this.search == other.search && this.replace == other.replace &&\n this.caseSensitive == other.caseSensitive && this.regexp == other.regexp &&\n this.wholeWord == other.wholeWord;\n }\n /**\n @internal\n */\n create() {\n return this.regexp ? new RegExpQuery(this) : new StringQuery(this);\n }\n /**\n Get a search cursor for this query, searching through the given\n range in the given state.\n */\n getCursor(state, from = 0, to) {\n let st = state.doc ? state : EditorState.create({ doc: state });\n if (to == null)\n to = st.doc.length;\n return this.regexp ? regexpCursor(this, st, from, to) : stringCursor(this, st, from, to);\n }\n}\nclass QueryType {\n constructor(spec) {\n this.spec = spec;\n }\n}\nfunction stringCursor(spec, state, from, to) {\n return new SearchCursor(state.doc, spec.unquoted, from, to, spec.caseSensitive ? undefined : x => x.toLowerCase(), spec.wholeWord ? stringWordTest(state.doc, state.charCategorizer(state.selection.main.head)) : undefined);\n}\nfunction stringWordTest(doc, categorizer) {\n return (from, to, buf, bufPos) => {\n if (bufPos > from || bufPos + buf.length < to) {\n bufPos = Math.max(0, from - 2);\n buf = doc.sliceString(bufPos, Math.min(doc.length, to + 2));\n }\n return (categorizer(charBefore(buf, from - bufPos)) != CharCategory.Word ||\n categorizer(charAfter(buf, from - bufPos)) != CharCategory.Word) &&\n (categorizer(charAfter(buf, to - bufPos)) != CharCategory.Word ||\n categorizer(charBefore(buf, to - bufPos)) != CharCategory.Word);\n };\n}\nclass StringQuery extends QueryType {\n constructor(spec) {\n super(spec);\n }\n nextMatch(state, curFrom, curTo) {\n let cursor = stringCursor(this.spec, state, curTo, state.doc.length).nextOverlapping();\n if (cursor.done) {\n let end = Math.min(state.doc.length, curFrom + this.spec.unquoted.length);\n cursor = stringCursor(this.spec, state, 0, end).nextOverlapping();\n }\n return cursor.done || cursor.value.from == curFrom && cursor.value.to == curTo ? null : cursor.value;\n }\n // Searching in reverse is, rather than implementing an inverted search\n // cursor, done by scanning chunk after chunk forward.\n prevMatchInRange(state, from, to) {\n for (let pos = to;;) {\n let start = Math.max(from, pos - 10000 /* FindPrev.ChunkSize */ - this.spec.unquoted.length);\n let cursor = stringCursor(this.spec, state, start, pos), range = null;\n while (!cursor.nextOverlapping().done)\n range = cursor.value;\n if (range)\n return range;\n if (start == from)\n return null;\n pos -= 10000 /* FindPrev.ChunkSize */;\n }\n }\n prevMatch(state, curFrom, curTo) {\n let found = this.prevMatchInRange(state, 0, curFrom);\n if (!found)\n found = this.prevMatchInRange(state, Math.max(0, curTo - this.spec.unquoted.length), state.doc.length);\n return found && (found.from != curFrom || found.to != curTo) ? found : null;\n }\n getReplacement(_result) { return this.spec.unquote(this.spec.replace); }\n matchAll(state, limit) {\n let cursor = stringCursor(this.spec, state, 0, state.doc.length), ranges = [];\n while (!cursor.next().done) {\n if (ranges.length >= limit)\n return null;\n ranges.push(cursor.value);\n }\n return ranges;\n }\n highlight(state, from, to, add) {\n let cursor = stringCursor(this.spec, state, Math.max(0, from - this.spec.unquoted.length), Math.min(to + this.spec.unquoted.length, state.doc.length));\n while (!cursor.next().done)\n add(cursor.value.from, cursor.value.to);\n }\n}\nfunction regexpCursor(spec, state, from, to) {\n return new RegExpCursor(state.doc, spec.search, {\n ignoreCase: !spec.caseSensitive,\n test: spec.wholeWord ? regexpWordTest(state.charCategorizer(state.selection.main.head)) : undefined\n }, from, to);\n}\nfunction charBefore(str, index) {\n return str.slice(findClusterBreak(str, index, false), index);\n}\nfunction charAfter(str, index) {\n return str.slice(index, findClusterBreak(str, index));\n}\nfunction regexpWordTest(categorizer) {\n return (_from, _to, match) => !match[0].length ||\n (categorizer(charBefore(match.input, match.index)) != CharCategory.Word ||\n categorizer(charAfter(match.input, match.index)) != CharCategory.Word) &&\n (categorizer(charAfter(match.input, match.index + match[0].length)) != CharCategory.Word ||\n categorizer(charBefore(match.input, match.index + match[0].length)) != CharCategory.Word);\n}\nclass RegExpQuery extends QueryType {\n nextMatch(state, curFrom, curTo) {\n let cursor = regexpCursor(this.spec, state, curTo, state.doc.length).next();\n if (cursor.done)\n cursor = regexpCursor(this.spec, state, 0, curFrom).next();\n return cursor.done ? null : cursor.value;\n }\n prevMatchInRange(state, from, to) {\n for (let size = 1;; size++) {\n let start = Math.max(from, to - size * 10000 /* FindPrev.ChunkSize */);\n let cursor = regexpCursor(this.spec, state, start, to), range = null;\n while (!cursor.next().done)\n range = cursor.value;\n if (range && (start == from || range.from > start + 10))\n return range;\n if (start == from)\n return null;\n }\n }\n prevMatch(state, curFrom, curTo) {\n return this.prevMatchInRange(state, 0, curFrom) ||\n this.prevMatchInRange(state, curTo, state.doc.length);\n }\n getReplacement(result) {\n return this.spec.unquote(this.spec.replace).replace(/\\$([$&]|\\d+)/g, (m, i) => {\n if (i == \"&\")\n return result.match[0];\n if (i == \"$\")\n return \"$\";\n for (let l = i.length; l > 0; l--) {\n let n = +i.slice(0, l);\n if (n > 0 && n < result.match.length)\n return result.match[n] + i.slice(l);\n }\n return m;\n });\n }\n matchAll(state, limit) {\n let cursor = regexpCursor(this.spec, state, 0, state.doc.length), ranges = [];\n while (!cursor.next().done) {\n if (ranges.length >= limit)\n return null;\n ranges.push(cursor.value);\n }\n return ranges;\n }\n highlight(state, from, to, add) {\n let cursor = regexpCursor(this.spec, state, Math.max(0, from - 250 /* RegExp.HighlightMargin */), Math.min(to + 250 /* RegExp.HighlightMargin */, state.doc.length));\n while (!cursor.next().done)\n add(cursor.value.from, cursor.value.to);\n }\n}\n/**\nA state effect that updates the current search query. Note that\nthis only has an effect if the search state has been initialized\n(by including [`search`](https://codemirror.net/6/docs/ref/#search.search) in your configuration or\nby running [`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel) at least\nonce).\n*/\nconst setSearchQuery = /*@__PURE__*/StateEffect.define();\nconst togglePanel = /*@__PURE__*/StateEffect.define();\nconst searchState = /*@__PURE__*/StateField.define({\n create(state) {\n return new SearchState(defaultQuery(state).create(), null);\n },\n update(value, tr) {\n for (let effect of tr.effects) {\n if (effect.is(setSearchQuery))\n value = new SearchState(effect.value.create(), value.panel);\n else if (effect.is(togglePanel))\n value = new SearchState(value.query, effect.value ? createSearchPanel : null);\n }\n return value;\n },\n provide: f => showPanel.from(f, val => val.panel)\n});\n/**\nGet the current search query from an editor state.\n*/\nfunction getSearchQuery(state) {\n let curState = state.field(searchState, false);\n return curState ? curState.query.spec : defaultQuery(state);\n}\n/**\nQuery whether the search panel is open in the given editor state.\n*/\nfunction searchPanelOpen(state) {\n var _a;\n return ((_a = state.field(searchState, false)) === null || _a === void 0 ? void 0 : _a.panel) != null;\n}\nclass SearchState {\n constructor(query, panel) {\n this.query = query;\n this.panel = panel;\n }\n}\nconst matchMark = /*@__PURE__*/Decoration.mark({ class: \"cm-searchMatch\" }), selectedMatchMark = /*@__PURE__*/Decoration.mark({ class: \"cm-searchMatch cm-searchMatch-selected\" });\nconst searchHighlighter = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.decorations = this.highlight(view.state.field(searchState));\n }\n update(update) {\n let state = update.state.field(searchState);\n if (state != update.startState.field(searchState) || update.docChanged || update.selectionSet || update.viewportChanged)\n this.decorations = this.highlight(state);\n }\n highlight({ query, panel }) {\n if (!panel || !query.spec.valid)\n return Decoration.none;\n let { view } = this;\n let builder = new RangeSetBuilder();\n for (let i = 0, ranges = view.visibleRanges, l = ranges.length; i < l; i++) {\n let { from, to } = ranges[i];\n while (i < l - 1 && to > ranges[i + 1].from - 2 * 250 /* RegExp.HighlightMargin */)\n to = ranges[++i].to;\n query.highlight(view.state, from, to, (from, to) => {\n let selected = view.state.selection.ranges.some(r => r.from == from && r.to == to);\n builder.add(from, to, selected ? selectedMatchMark : matchMark);\n });\n }\n return builder.finish();\n }\n}, {\n decorations: v => v.decorations\n});\nfunction searchCommand(f) {\n return view => {\n let state = view.state.field(searchState, false);\n return state && state.query.spec.valid ? f(view, state) : openSearchPanel(view);\n };\n}\n/**\nOpen the search panel if it isn't already open, and move the\nselection to the first match after the current main selection.\nWill wrap around to the start of the document when it reaches the\nend.\n*/\nconst findNext = /*@__PURE__*/searchCommand((view, { query }) => {\n let { to } = view.state.selection.main;\n let next = query.nextMatch(view.state, to, to);\n if (!next)\n return false;\n let selection = EditorSelection.single(next.from, next.to);\n let config = view.state.facet(searchConfigFacet);\n view.dispatch({\n selection,\n effects: [announceMatch(view, next), config.scrollToMatch(selection.main, view)],\n userEvent: \"select.search\"\n });\n selectSearchInput(view);\n return true;\n});\n/**\nMove the selection to the previous instance of the search query,\nbefore the current main selection. Will wrap past the start\nof the document to start searching at the end again.\n*/\nconst findPrevious = /*@__PURE__*/searchCommand((view, { query }) => {\n let { state } = view, { from } = state.selection.main;\n let prev = query.prevMatch(state, from, from);\n if (!prev)\n return false;\n let selection = EditorSelection.single(prev.from, prev.to);\n let config = view.state.facet(searchConfigFacet);\n view.dispatch({\n selection,\n effects: [announceMatch(view, prev), config.scrollToMatch(selection.main, view)],\n userEvent: \"select.search\"\n });\n selectSearchInput(view);\n return true;\n});\n/**\nSelect all instances of the search query.\n*/\nconst selectMatches = /*@__PURE__*/searchCommand((view, { query }) => {\n let ranges = query.matchAll(view.state, 1000);\n if (!ranges || !ranges.length)\n return false;\n view.dispatch({\n selection: EditorSelection.create(ranges.map(r => EditorSelection.range(r.from, r.to))),\n userEvent: \"select.search.matches\"\n });\n return true;\n});\n/**\nSelect all instances of the currently selected text.\n*/\nconst selectSelectionMatches = ({ state, dispatch }) => {\n let sel = state.selection;\n if (sel.ranges.length > 1 || sel.main.empty)\n return false;\n let { from, to } = sel.main;\n let ranges = [], main = 0;\n for (let cur = new SearchCursor(state.doc, state.sliceDoc(from, to)); !cur.next().done;) {\n if (ranges.length > 1000)\n return false;\n if (cur.value.from == from)\n main = ranges.length;\n ranges.push(EditorSelection.range(cur.value.from, cur.value.to));\n }\n dispatch(state.update({\n selection: EditorSelection.create(ranges, main),\n userEvent: \"select.search.matches\"\n }));\n return true;\n};\n/**\nReplace the current match of the search query.\n*/\nconst replaceNext = /*@__PURE__*/searchCommand((view, { query }) => {\n let { state } = view, { from, to } = state.selection.main;\n if (state.readOnly)\n return false;\n let match = query.nextMatch(state, from, from);\n if (!match)\n return false;\n let next = match;\n let changes = [], selection, replacement;\n let effects = [];\n if (next.from == from && next.to == to) {\n replacement = state.toText(query.getReplacement(next));\n changes.push({ from: next.from, to: next.to, insert: replacement });\n next = query.nextMatch(state, next.from, next.to);\n effects.push(EditorView.announce.of(state.phrase(\"replaced match on line $\", state.doc.lineAt(from).number) + \".\"));\n }\n let changeSet = view.state.changes(changes);\n if (next) {\n selection = EditorSelection.single(next.from, next.to).map(changeSet);\n effects.push(announceMatch(view, next));\n effects.push(state.facet(searchConfigFacet).scrollToMatch(selection.main, view));\n }\n view.dispatch({\n changes: changeSet,\n selection,\n effects,\n userEvent: \"input.replace\"\n });\n return true;\n});\n/**\nReplace all instances of the search query with the given\nreplacement.\n*/\nconst replaceAll = /*@__PURE__*/searchCommand((view, { query }) => {\n if (view.state.readOnly)\n return false;\n let changes = query.matchAll(view.state, 1e9).map(match => {\n let { from, to } = match;\n return { from, to, insert: query.getReplacement(match) };\n });\n if (!changes.length)\n return false;\n let announceText = view.state.phrase(\"replaced $ matches\", changes.length) + \".\";\n view.dispatch({\n changes,\n effects: EditorView.announce.of(announceText),\n userEvent: \"input.replace.all\"\n });\n return true;\n});\nfunction createSearchPanel(view) {\n return view.state.facet(searchConfigFacet).createPanel(view);\n}\nfunction defaultQuery(state, fallback) {\n var _a, _b, _c, _d, _e;\n let sel = state.selection.main;\n let selText = sel.empty || sel.to > sel.from + 100 ? \"\" : state.sliceDoc(sel.from, sel.to);\n if (fallback && !selText)\n return fallback;\n let config = state.facet(searchConfigFacet);\n return new SearchQuery({\n search: ((_a = fallback === null || fallback === void 0 ? void 0 : fallback.literal) !== null && _a !== void 0 ? _a : config.literal) ? selText : selText.replace(/\\n/g, \"\\\\n\"),\n caseSensitive: (_b = fallback === null || fallback === void 0 ? void 0 : fallback.caseSensitive) !== null && _b !== void 0 ? _b : config.caseSensitive,\n literal: (_c = fallback === null || fallback === void 0 ? void 0 : fallback.literal) !== null && _c !== void 0 ? _c : config.literal,\n regexp: (_d = fallback === null || fallback === void 0 ? void 0 : fallback.regexp) !== null && _d !== void 0 ? _d : config.regexp,\n wholeWord: (_e = fallback === null || fallback === void 0 ? void 0 : fallback.wholeWord) !== null && _e !== void 0 ? _e : config.wholeWord\n });\n}\nfunction getSearchInput(view) {\n let panel = getPanel(view, createSearchPanel);\n return panel && panel.dom.querySelector(\"[main-field]\");\n}\nfunction selectSearchInput(view) {\n let input = getSearchInput(view);\n if (input && input == view.root.activeElement)\n input.select();\n}\n/**\nMake sure the search panel is open and focused.\n*/\nconst openSearchPanel = view => {\n let state = view.state.field(searchState, false);\n if (state && state.panel) {\n let searchInput = getSearchInput(view);\n if (searchInput && searchInput != view.root.activeElement) {\n let query = defaultQuery(view.state, state.query.spec);\n if (query.valid)\n view.dispatch({ effects: setSearchQuery.of(query) });\n searchInput.focus();\n searchInput.select();\n }\n }\n else {\n view.dispatch({ effects: [\n togglePanel.of(true),\n state ? setSearchQuery.of(defaultQuery(view.state, state.query.spec)) : StateEffect.appendConfig.of(searchExtensions)\n ] });\n }\n return true;\n};\n/**\nClose the search panel.\n*/\nconst closeSearchPanel = view => {\n let state = view.state.field(searchState, false);\n if (!state || !state.panel)\n return false;\n let panel = getPanel(view, createSearchPanel);\n if (panel && panel.dom.contains(view.root.activeElement))\n view.focus();\n view.dispatch({ effects: togglePanel.of(false) });\n return true;\n};\n/**\nDefault search-related key bindings.\n\n - Mod-f: [`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel)\n - F3, Mod-g: [`findNext`](https://codemirror.net/6/docs/ref/#search.findNext)\n - Shift-F3, Shift-Mod-g: [`findPrevious`](https://codemirror.net/6/docs/ref/#search.findPrevious)\n - Mod-Alt-g: [`gotoLine`](https://codemirror.net/6/docs/ref/#search.gotoLine)\n - Mod-d: [`selectNextOccurrence`](https://codemirror.net/6/docs/ref/#search.selectNextOccurrence)\n*/\nconst searchKeymap = [\n { key: \"Mod-f\", run: openSearchPanel, scope: \"editor search-panel\" },\n { key: \"F3\", run: findNext, shift: findPrevious, scope: \"editor search-panel\", preventDefault: true },\n { key: \"Mod-g\", run: findNext, shift: findPrevious, scope: \"editor search-panel\", preventDefault: true },\n { key: \"Escape\", run: closeSearchPanel, scope: \"editor search-panel\" },\n { key: \"Mod-Shift-l\", run: selectSelectionMatches },\n { key: \"Mod-Alt-g\", run: gotoLine },\n { key: \"Mod-d\", run: selectNextOccurrence, preventDefault: true },\n];\nclass SearchPanel {\n constructor(view) {\n this.view = view;\n let query = this.query = view.state.field(searchState).query.spec;\n this.commit = this.commit.bind(this);\n this.searchField = elt(\"input\", {\n value: query.search,\n placeholder: phrase(view, \"Find\"),\n \"aria-label\": phrase(view, \"Find\"),\n class: \"cm-textfield\",\n name: \"search\",\n form: \"\",\n \"main-field\": \"true\",\n onchange: this.commit,\n onkeyup: this.commit\n });\n this.replaceField = elt(\"input\", {\n value: query.replace,\n placeholder: phrase(view, \"Replace\"),\n \"aria-label\": phrase(view, \"Replace\"),\n class: \"cm-textfield\",\n name: \"replace\",\n form: \"\",\n onchange: this.commit,\n onkeyup: this.commit\n });\n this.caseField = elt(\"input\", {\n type: \"checkbox\",\n name: \"case\",\n form: \"\",\n checked: query.caseSensitive,\n onchange: this.commit\n });\n this.reField = elt(\"input\", {\n type: \"checkbox\",\n name: \"re\",\n form: \"\",\n checked: query.regexp,\n onchange: this.commit\n });\n this.wordField = elt(\"input\", {\n type: \"checkbox\",\n name: \"word\",\n form: \"\",\n checked: query.wholeWord,\n onchange: this.commit\n });\n function button(name, onclick, content) {\n return elt(\"button\", { class: \"cm-button\", name, onclick, type: \"button\" }, content);\n }\n this.dom = elt(\"div\", { onkeydown: (e) => this.keydown(e), class: \"cm-search\" }, [\n this.searchField,\n button(\"next\", () => findNext(view), [phrase(view, \"next\")]),\n button(\"prev\", () => findPrevious(view), [phrase(view, \"previous\")]),\n button(\"select\", () => selectMatches(view), [phrase(view, \"all\")]),\n elt(\"label\", null, [this.caseField, phrase(view, \"match case\")]),\n elt(\"label\", null, [this.reField, phrase(view, \"regexp\")]),\n elt(\"label\", null, [this.wordField, phrase(view, \"by word\")]),\n ...view.state.readOnly ? [] : [\n elt(\"br\"),\n this.replaceField,\n button(\"replace\", () => replaceNext(view), [phrase(view, \"replace\")]),\n button(\"replaceAll\", () => replaceAll(view), [phrase(view, \"replace all\")])\n ],\n elt(\"button\", {\n name: \"close\",\n onclick: () => closeSearchPanel(view),\n \"aria-label\": phrase(view, \"close\"),\n type: \"button\"\n }, [\"×\"])\n ]);\n }\n commit() {\n let query = new SearchQuery({\n search: this.searchField.value,\n caseSensitive: this.caseField.checked,\n regexp: this.reField.checked,\n wholeWord: this.wordField.checked,\n replace: this.replaceField.value,\n });\n if (!query.eq(this.query)) {\n this.query = query;\n this.view.dispatch({ effects: setSearchQuery.of(query) });\n }\n }\n keydown(e) {\n if (runScopeHandlers(this.view, e, \"search-panel\")) {\n e.preventDefault();\n }\n else if (e.keyCode == 13 && e.target == this.searchField) {\n e.preventDefault();\n (e.shiftKey ? findPrevious : findNext)(this.view);\n }\n else if (e.keyCode == 13 && e.target == this.replaceField) {\n e.preventDefault();\n replaceNext(this.view);\n }\n }\n update(update) {\n for (let tr of update.transactions)\n for (let effect of tr.effects) {\n if (effect.is(setSearchQuery) && !effect.value.eq(this.query))\n this.setQuery(effect.value);\n }\n }\n setQuery(query) {\n this.query = query;\n this.searchField.value = query.search;\n this.replaceField.value = query.replace;\n this.caseField.checked = query.caseSensitive;\n this.reField.checked = query.regexp;\n this.wordField.checked = query.wholeWord;\n }\n mount() {\n this.searchField.select();\n }\n get pos() { return 80; }\n get top() { return this.view.state.facet(searchConfigFacet).top; }\n}\nfunction phrase(view, phrase) { return view.state.phrase(phrase); }\nconst AnnounceMargin = 30;\nconst Break = /[\\s\\.,:;?!]/;\nfunction announceMatch(view, { from, to }) {\n let line = view.state.doc.lineAt(from), lineEnd = view.state.doc.lineAt(to).to;\n let start = Math.max(line.from, from - AnnounceMargin), end = Math.min(lineEnd, to + AnnounceMargin);\n let text = view.state.sliceDoc(start, end);\n if (start != line.from) {\n for (let i = 0; i < AnnounceMargin; i++)\n if (!Break.test(text[i + 1]) && Break.test(text[i])) {\n text = text.slice(i);\n break;\n }\n }\n if (end != lineEnd) {\n for (let i = text.length - 1; i > text.length - AnnounceMargin; i--)\n if (!Break.test(text[i - 1]) && Break.test(text[i])) {\n text = text.slice(0, i);\n break;\n }\n }\n return EditorView.announce.of(`${view.state.phrase(\"current match\")}. ${text} ${view.state.phrase(\"on line\")} ${line.number}.`);\n}\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-panel.cm-search\": {\n padding: \"2px 6px 4px\",\n position: \"relative\",\n \"& [name=close]\": {\n position: \"absolute\",\n top: \"0\",\n right: \"4px\",\n backgroundColor: \"inherit\",\n border: \"none\",\n font: \"inherit\",\n padding: 0,\n margin: 0\n },\n \"& input, & button, & label\": {\n margin: \".2em .6em .2em 0\"\n },\n \"& input[type=checkbox]\": {\n marginRight: \".2em\"\n },\n \"& label\": {\n fontSize: \"80%\",\n whiteSpace: \"pre\"\n }\n },\n \"&light .cm-searchMatch\": { backgroundColor: \"#ffff0054\" },\n \"&dark .cm-searchMatch\": { backgroundColor: \"#00ffff8a\" },\n \"&light .cm-searchMatch-selected\": { backgroundColor: \"#ff6a0054\" },\n \"&dark .cm-searchMatch-selected\": { backgroundColor: \"#ff00ff8a\" }\n});\nconst searchExtensions = [\n searchState,\n /*@__PURE__*/Prec.low(searchHighlighter),\n baseTheme\n];\n\nexport { RegExpCursor, SearchCursor, SearchQuery, closeSearchPanel, findNext, findPrevious, getSearchQuery, gotoLine, highlightSelectionMatches, openSearchPanel, replaceAll, replaceNext, search, searchKeymap, searchPanelOpen, selectMatches, selectNextOccurrence, selectSelectionMatches, setSearchQuery };\n","import { Decoration, showPanel, EditorView, ViewPlugin, gutter, showTooltip, hoverTooltip, getPanel, logException, WidgetType, GutterMarker } from '@codemirror/view';\nimport { StateEffect, StateField, Facet, combineConfig, RangeSet, RangeSetBuilder } from '@codemirror/state';\nimport elt from 'crelt';\n\nclass SelectedDiagnostic {\n constructor(from, to, diagnostic) {\n this.from = from;\n this.to = to;\n this.diagnostic = diagnostic;\n }\n}\nclass LintState {\n constructor(diagnostics, panel, selected) {\n this.diagnostics = diagnostics;\n this.panel = panel;\n this.selected = selected;\n }\n static init(diagnostics, panel, state) {\n // Filter the list of diagnostics for which to create markers\n let diagnosticFilter = state.facet(lintConfig).markerFilter;\n if (diagnosticFilter)\n diagnostics = diagnosticFilter(diagnostics, state);\n let sorted = diagnostics.slice().sort((a, b) => a.from - b.from || a.to - b.to);\n let deco = new RangeSetBuilder(), active = [], pos = 0;\n for (let i = 0;;) {\n let next = i == sorted.length ? null : sorted[i];\n if (!next && !active.length)\n break;\n let from, to;\n if (active.length) {\n from = pos;\n to = active.reduce((p, d) => Math.min(p, d.to), next && next.from > from ? next.from : 1e8);\n }\n else {\n from = next.from;\n to = next.to;\n active.push(next);\n i++;\n }\n while (i < sorted.length) {\n let next = sorted[i];\n if (next.from == from && (next.to > next.from || next.to == from)) {\n active.push(next);\n i++;\n to = Math.min(next.to, to);\n }\n else {\n to = Math.min(next.from, to);\n break;\n }\n }\n let sev = maxSeverity(active);\n if (active.some(d => d.from == d.to || (d.from == d.to - 1 && state.doc.lineAt(d.from).to == d.from))) {\n deco.add(from, from, Decoration.widget({\n widget: new DiagnosticWidget(sev),\n diagnostics: active.slice()\n }));\n }\n else {\n let markClass = active.reduce((c, d) => d.markClass ? c + \" \" + d.markClass : c, \"\");\n deco.add(from, to, Decoration.mark({\n class: \"cm-lintRange cm-lintRange-\" + sev + markClass,\n diagnostics: active.slice(),\n inclusiveEnd: active.some(a => a.to > to)\n }));\n }\n pos = to;\n for (let i = 0; i < active.length; i++)\n if (active[i].to <= pos)\n active.splice(i--, 1);\n }\n let set = deco.finish();\n return new LintState(set, panel, findDiagnostic(set));\n }\n}\nfunction findDiagnostic(diagnostics, diagnostic = null, after = 0) {\n let found = null;\n diagnostics.between(after, 1e9, (from, to, { spec }) => {\n if (diagnostic && spec.diagnostics.indexOf(diagnostic) < 0)\n return;\n if (!found)\n found = new SelectedDiagnostic(from, to, diagnostic || spec.diagnostics[0]);\n else if (spec.diagnostics.indexOf(found.diagnostic) < 0)\n return false;\n else\n found = new SelectedDiagnostic(found.from, to, found.diagnostic);\n });\n return found;\n}\nfunction hideTooltip(tr, tooltip) {\n let from = tooltip.pos, to = tooltip.end || from;\n let result = tr.state.facet(lintConfig).hideOn(tr, from, to);\n if (result != null)\n return result;\n let line = tr.startState.doc.lineAt(tooltip.pos);\n return !!(tr.effects.some(e => e.is(setDiagnosticsEffect)) || tr.changes.touchesRange(line.from, Math.max(line.to, to)));\n}\nfunction maybeEnableLint(state, effects) {\n return state.field(lintState, false) ? effects : effects.concat(StateEffect.appendConfig.of(lintExtensions));\n}\n/**\nReturns a transaction spec which updates the current set of\ndiagnostics, and enables the lint extension if if wasn't already\nactive.\n*/\nfunction setDiagnostics(state, diagnostics) {\n return {\n effects: maybeEnableLint(state, [setDiagnosticsEffect.of(diagnostics)])\n };\n}\n/**\nThe state effect that updates the set of active diagnostics. Can\nbe useful when writing an extension that needs to track these.\n*/\nconst setDiagnosticsEffect = /*@__PURE__*/StateEffect.define();\nconst togglePanel = /*@__PURE__*/StateEffect.define();\nconst movePanelSelection = /*@__PURE__*/StateEffect.define();\nconst lintState = /*@__PURE__*/StateField.define({\n create() {\n return new LintState(Decoration.none, null, null);\n },\n update(value, tr) {\n if (tr.docChanged && value.diagnostics.size) {\n let mapped = value.diagnostics.map(tr.changes), selected = null, panel = value.panel;\n if (value.selected) {\n let selPos = tr.changes.mapPos(value.selected.from, 1);\n selected = findDiagnostic(mapped, value.selected.diagnostic, selPos) || findDiagnostic(mapped, null, selPos);\n }\n if (!mapped.size && panel && tr.state.facet(lintConfig).autoPanel)\n panel = null;\n value = new LintState(mapped, panel, selected);\n }\n for (let effect of tr.effects) {\n if (effect.is(setDiagnosticsEffect)) {\n let panel = !tr.state.facet(lintConfig).autoPanel ? value.panel : effect.value.length ? LintPanel.open : null;\n value = LintState.init(effect.value, panel, tr.state);\n }\n else if (effect.is(togglePanel)) {\n value = new LintState(value.diagnostics, effect.value ? LintPanel.open : null, value.selected);\n }\n else if (effect.is(movePanelSelection)) {\n value = new LintState(value.diagnostics, value.panel, effect.value);\n }\n }\n return value;\n },\n provide: f => [showPanel.from(f, val => val.panel),\n EditorView.decorations.from(f, s => s.diagnostics)]\n});\n/**\nReturns the number of active lint diagnostics in the given state.\n*/\nfunction diagnosticCount(state) {\n let lint = state.field(lintState, false);\n return lint ? lint.diagnostics.size : 0;\n}\nconst activeMark = /*@__PURE__*/Decoration.mark({ class: \"cm-lintRange cm-lintRange-active\" });\nfunction lintTooltip(view, pos, side) {\n let { diagnostics } = view.state.field(lintState);\n let found, start = -1, end = -1;\n diagnostics.between(pos - (side < 0 ? 1 : 0), pos + (side > 0 ? 1 : 0), (from, to, { spec }) => {\n if (pos >= from && pos <= to &&\n (from == to || ((pos > from || side > 0) && (pos < to || side < 0)))) {\n found = spec.diagnostics;\n start = from;\n end = to;\n return false;\n }\n });\n let diagnosticFilter = view.state.facet(lintConfig).tooltipFilter;\n if (found && diagnosticFilter)\n found = diagnosticFilter(found, view.state);\n if (!found)\n return null;\n return {\n pos: start,\n end: end,\n above: view.state.doc.lineAt(start).to < end,\n create() {\n return { dom: diagnosticsTooltip(view, found) };\n }\n };\n}\nfunction diagnosticsTooltip(view, diagnostics) {\n return elt(\"ul\", { class: \"cm-tooltip-lint\" }, diagnostics.map(d => renderDiagnostic(view, d, false)));\n}\n/**\nCommand to open and focus the lint panel.\n*/\nconst openLintPanel = (view) => {\n let field = view.state.field(lintState, false);\n if (!field || !field.panel)\n view.dispatch({ effects: maybeEnableLint(view.state, [togglePanel.of(true)]) });\n let panel = getPanel(view, LintPanel.open);\n if (panel)\n panel.dom.querySelector(\".cm-panel-lint ul\").focus();\n return true;\n};\n/**\nCommand to close the lint panel, when open.\n*/\nconst closeLintPanel = (view) => {\n let field = view.state.field(lintState, false);\n if (!field || !field.panel)\n return false;\n view.dispatch({ effects: togglePanel.of(false) });\n return true;\n};\n/**\nMove the selection to the next diagnostic.\n*/\nconst nextDiagnostic = (view) => {\n let field = view.state.field(lintState, false);\n if (!field)\n return false;\n let sel = view.state.selection.main, next = field.diagnostics.iter(sel.to + 1);\n if (!next.value) {\n next = field.diagnostics.iter(0);\n if (!next.value || next.from == sel.from && next.to == sel.to)\n return false;\n }\n view.dispatch({ selection: { anchor: next.from, head: next.to }, scrollIntoView: true });\n return true;\n};\n/**\nMove the selection to the previous diagnostic.\n*/\nconst previousDiagnostic = (view) => {\n let { state } = view, field = state.field(lintState, false);\n if (!field)\n return false;\n let sel = state.selection.main;\n let prevFrom, prevTo, lastFrom, lastTo;\n field.diagnostics.between(0, state.doc.length, (from, to) => {\n if (to < sel.to && (prevFrom == null || prevFrom < from)) {\n prevFrom = from;\n prevTo = to;\n }\n if (lastFrom == null || from > lastFrom) {\n lastFrom = from;\n lastTo = to;\n }\n });\n if (lastFrom == null || prevFrom == null && lastFrom == sel.from)\n return false;\n view.dispatch({ selection: { anchor: prevFrom !== null && prevFrom !== void 0 ? prevFrom : lastFrom, head: prevTo !== null && prevTo !== void 0 ? prevTo : lastTo }, scrollIntoView: true });\n return true;\n};\n/**\nA set of default key bindings for the lint functionality.\n\n- Ctrl-Shift-m (Cmd-Shift-m on macOS): [`openLintPanel`](https://codemirror.net/6/docs/ref/#lint.openLintPanel)\n- F8: [`nextDiagnostic`](https://codemirror.net/6/docs/ref/#lint.nextDiagnostic)\n*/\nconst lintKeymap = [\n { key: \"Mod-Shift-m\", run: openLintPanel, preventDefault: true },\n { key: \"F8\", run: nextDiagnostic }\n];\nconst lintPlugin = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.timeout = -1;\n this.set = true;\n let { delay } = view.state.facet(lintConfig);\n this.lintTime = Date.now() + delay;\n this.run = this.run.bind(this);\n this.timeout = setTimeout(this.run, delay);\n }\n run() {\n clearTimeout(this.timeout);\n let now = Date.now();\n if (now < this.lintTime - 10) {\n this.timeout = setTimeout(this.run, this.lintTime - now);\n }\n else {\n this.set = false;\n let { state } = this.view, { sources } = state.facet(lintConfig);\n if (sources.length)\n batchResults(sources.map(s => Promise.resolve(s(this.view))), annotations => {\n if (this.view.state.doc == state.doc)\n this.view.dispatch(setDiagnostics(this.view.state, annotations.reduce((a, b) => a.concat(b))));\n }, error => { logException(this.view.state, error); });\n }\n }\n update(update) {\n let config = update.state.facet(lintConfig);\n if (update.docChanged || config != update.startState.facet(lintConfig) ||\n config.needsRefresh && config.needsRefresh(update)) {\n this.lintTime = Date.now() + config.delay;\n if (!this.set) {\n this.set = true;\n this.timeout = setTimeout(this.run, config.delay);\n }\n }\n }\n force() {\n if (this.set) {\n this.lintTime = Date.now();\n this.run();\n }\n }\n destroy() {\n clearTimeout(this.timeout);\n }\n});\nfunction batchResults(promises, sink, error) {\n let collected = [], timeout = -1;\n for (let p of promises)\n p.then(value => {\n collected.push(value);\n clearTimeout(timeout);\n if (collected.length == promises.length)\n sink(collected);\n else\n timeout = setTimeout(() => sink(collected), 200);\n }, error);\n}\nconst lintConfig = /*@__PURE__*/Facet.define({\n combine(input) {\n return Object.assign({ sources: input.map(i => i.source).filter(x => x != null) }, combineConfig(input.map(i => i.config), {\n delay: 750,\n markerFilter: null,\n tooltipFilter: null,\n needsRefresh: null,\n hideOn: () => null,\n }, {\n needsRefresh: (a, b) => !a ? b : !b ? a : u => a(u) || b(u)\n }));\n }\n});\n/**\nGiven a diagnostic source, this function returns an extension that\nenables linting with that source. It will be called whenever the\neditor is idle (after its content changed). If `null` is given as\nsource, this only configures the lint extension.\n*/\nfunction linter(source, config = {}) {\n return [\n lintConfig.of({ source, config }),\n lintPlugin,\n lintExtensions\n ];\n}\n/**\nForces any linters [configured](https://codemirror.net/6/docs/ref/#lint.linter) to run when the\neditor is idle to run right away.\n*/\nfunction forceLinting(view) {\n let plugin = view.plugin(lintPlugin);\n if (plugin)\n plugin.force();\n}\nfunction assignKeys(actions) {\n let assigned = [];\n if (actions)\n actions: for (let { name } of actions) {\n for (let i = 0; i < name.length; i++) {\n let ch = name[i];\n if (/[a-zA-Z]/.test(ch) && !assigned.some(c => c.toLowerCase() == ch.toLowerCase())) {\n assigned.push(ch);\n continue actions;\n }\n }\n assigned.push(\"\");\n }\n return assigned;\n}\nfunction renderDiagnostic(view, diagnostic, inPanel) {\n var _a;\n let keys = inPanel ? assignKeys(diagnostic.actions) : [];\n return elt(\"li\", { class: \"cm-diagnostic cm-diagnostic-\" + diagnostic.severity }, elt(\"span\", { class: \"cm-diagnosticText\" }, diagnostic.renderMessage ? diagnostic.renderMessage(view) : diagnostic.message), (_a = diagnostic.actions) === null || _a === void 0 ? void 0 : _a.map((action, i) => {\n let fired = false, click = (e) => {\n e.preventDefault();\n if (fired)\n return;\n fired = true;\n let found = findDiagnostic(view.state.field(lintState).diagnostics, diagnostic);\n if (found)\n action.apply(view, found.from, found.to);\n };\n let { name } = action, keyIndex = keys[i] ? name.indexOf(keys[i]) : -1;\n let nameElt = keyIndex < 0 ? name : [name.slice(0, keyIndex),\n elt(\"u\", name.slice(keyIndex, keyIndex + 1)),\n name.slice(keyIndex + 1)];\n return elt(\"button\", {\n type: \"button\",\n class: \"cm-diagnosticAction\",\n onclick: click,\n onmousedown: click,\n \"aria-label\": ` Action: ${name}${keyIndex < 0 ? \"\" : ` (access key \"${keys[i]})\"`}.`\n }, nameElt);\n }), diagnostic.source && elt(\"div\", { class: \"cm-diagnosticSource\" }, diagnostic.source));\n}\nclass DiagnosticWidget extends WidgetType {\n constructor(sev) {\n super();\n this.sev = sev;\n }\n eq(other) { return other.sev == this.sev; }\n toDOM() {\n return elt(\"span\", { class: \"cm-lintPoint cm-lintPoint-\" + this.sev });\n }\n}\nclass PanelItem {\n constructor(view, diagnostic) {\n this.diagnostic = diagnostic;\n this.id = \"item_\" + Math.floor(Math.random() * 0xffffffff).toString(16);\n this.dom = renderDiagnostic(view, diagnostic, true);\n this.dom.id = this.id;\n this.dom.setAttribute(\"role\", \"option\");\n }\n}\nclass LintPanel {\n constructor(view) {\n this.view = view;\n this.items = [];\n let onkeydown = (event) => {\n if (event.keyCode == 27) { // Escape\n closeLintPanel(this.view);\n this.view.focus();\n }\n else if (event.keyCode == 38 || event.keyCode == 33) { // ArrowUp, PageUp\n this.moveSelection((this.selectedIndex - 1 + this.items.length) % this.items.length);\n }\n else if (event.keyCode == 40 || event.keyCode == 34) { // ArrowDown, PageDown\n this.moveSelection((this.selectedIndex + 1) % this.items.length);\n }\n else if (event.keyCode == 36) { // Home\n this.moveSelection(0);\n }\n else if (event.keyCode == 35) { // End\n this.moveSelection(this.items.length - 1);\n }\n else if (event.keyCode == 13) { // Enter\n this.view.focus();\n }\n else if (event.keyCode >= 65 && event.keyCode <= 90 && this.selectedIndex >= 0) { // A-Z\n let { diagnostic } = this.items[this.selectedIndex], keys = assignKeys(diagnostic.actions);\n for (let i = 0; i < keys.length; i++)\n if (keys[i].toUpperCase().charCodeAt(0) == event.keyCode) {\n let found = findDiagnostic(this.view.state.field(lintState).diagnostics, diagnostic);\n if (found)\n diagnostic.actions[i].apply(view, found.from, found.to);\n }\n }\n else {\n return;\n }\n event.preventDefault();\n };\n let onclick = (event) => {\n for (let i = 0; i < this.items.length; i++) {\n if (this.items[i].dom.contains(event.target))\n this.moveSelection(i);\n }\n };\n this.list = elt(\"ul\", {\n tabIndex: 0,\n role: \"listbox\",\n \"aria-label\": this.view.state.phrase(\"Diagnostics\"),\n onkeydown,\n onclick\n });\n this.dom = elt(\"div\", { class: \"cm-panel-lint\" }, this.list, elt(\"button\", {\n type: \"button\",\n name: \"close\",\n \"aria-label\": this.view.state.phrase(\"close\"),\n onclick: () => closeLintPanel(this.view)\n }, \"×\"));\n this.update();\n }\n get selectedIndex() {\n let selected = this.view.state.field(lintState).selected;\n if (!selected)\n return -1;\n for (let i = 0; i < this.items.length; i++)\n if (this.items[i].diagnostic == selected.diagnostic)\n return i;\n return -1;\n }\n update() {\n let { diagnostics, selected } = this.view.state.field(lintState);\n let i = 0, needsSync = false, newSelectedItem = null;\n let seen = new Set();\n diagnostics.between(0, this.view.state.doc.length, (_start, _end, { spec }) => {\n for (let diagnostic of spec.diagnostics) {\n if (seen.has(diagnostic))\n continue;\n seen.add(diagnostic);\n let found = -1, item;\n for (let j = i; j < this.items.length; j++)\n if (this.items[j].diagnostic == diagnostic) {\n found = j;\n break;\n }\n if (found < 0) {\n item = new PanelItem(this.view, diagnostic);\n this.items.splice(i, 0, item);\n needsSync = true;\n }\n else {\n item = this.items[found];\n if (found > i) {\n this.items.splice(i, found - i);\n needsSync = true;\n }\n }\n if (selected && item.diagnostic == selected.diagnostic) {\n if (!item.dom.hasAttribute(\"aria-selected\")) {\n item.dom.setAttribute(\"aria-selected\", \"true\");\n newSelectedItem = item;\n }\n }\n else if (item.dom.hasAttribute(\"aria-selected\")) {\n item.dom.removeAttribute(\"aria-selected\");\n }\n i++;\n }\n });\n while (i < this.items.length && !(this.items.length == 1 && this.items[0].diagnostic.from < 0)) {\n needsSync = true;\n this.items.pop();\n }\n if (this.items.length == 0) {\n this.items.push(new PanelItem(this.view, {\n from: -1, to: -1,\n severity: \"info\",\n message: this.view.state.phrase(\"No diagnostics\")\n }));\n needsSync = true;\n }\n if (newSelectedItem) {\n this.list.setAttribute(\"aria-activedescendant\", newSelectedItem.id);\n this.view.requestMeasure({\n key: this,\n read: () => ({ sel: newSelectedItem.dom.getBoundingClientRect(), panel: this.list.getBoundingClientRect() }),\n write: ({ sel, panel }) => {\n let scaleY = panel.height / this.list.offsetHeight;\n if (sel.top < panel.top)\n this.list.scrollTop -= (panel.top - sel.top) / scaleY;\n else if (sel.bottom > panel.bottom)\n this.list.scrollTop += (sel.bottom - panel.bottom) / scaleY;\n }\n });\n }\n else if (this.selectedIndex < 0) {\n this.list.removeAttribute(\"aria-activedescendant\");\n }\n if (needsSync)\n this.sync();\n }\n sync() {\n let domPos = this.list.firstChild;\n function rm() {\n let prev = domPos;\n domPos = prev.nextSibling;\n prev.remove();\n }\n for (let item of this.items) {\n if (item.dom.parentNode == this.list) {\n while (domPos != item.dom)\n rm();\n domPos = item.dom.nextSibling;\n }\n else {\n this.list.insertBefore(item.dom, domPos);\n }\n }\n while (domPos)\n rm();\n }\n moveSelection(selectedIndex) {\n if (this.selectedIndex < 0)\n return;\n let field = this.view.state.field(lintState);\n let selection = findDiagnostic(field.diagnostics, this.items[selectedIndex].diagnostic);\n if (!selection)\n return;\n this.view.dispatch({\n selection: { anchor: selection.from, head: selection.to },\n scrollIntoView: true,\n effects: movePanelSelection.of(selection)\n });\n }\n static open(view) { return new LintPanel(view); }\n}\nfunction svg(content, attrs = `viewBox=\"0 0 40 40\"`) {\n return `url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" ${attrs}>${encodeURIComponent(content)}</svg>')`;\n}\nfunction underline(color) {\n return svg(`<path d=\"m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0\" stroke=\"${color}\" fill=\"none\" stroke-width=\".7\"/>`, `width=\"6\" height=\"3\"`);\n}\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-diagnostic\": {\n padding: \"3px 6px 3px 8px\",\n marginLeft: \"-1px\",\n display: \"block\",\n whiteSpace: \"pre-wrap\"\n },\n \".cm-diagnostic-error\": { borderLeft: \"5px solid #d11\" },\n \".cm-diagnostic-warning\": { borderLeft: \"5px solid orange\" },\n \".cm-diagnostic-info\": { borderLeft: \"5px solid #999\" },\n \".cm-diagnostic-hint\": { borderLeft: \"5px solid #66d\" },\n \".cm-diagnosticAction\": {\n font: \"inherit\",\n border: \"none\",\n padding: \"2px 4px\",\n backgroundColor: \"#444\",\n color: \"white\",\n borderRadius: \"3px\",\n marginLeft: \"8px\",\n cursor: \"pointer\"\n },\n \".cm-diagnosticSource\": {\n fontSize: \"70%\",\n opacity: .7\n },\n \".cm-lintRange\": {\n backgroundPosition: \"left bottom\",\n backgroundRepeat: \"repeat-x\",\n paddingBottom: \"0.7px\",\n },\n \".cm-lintRange-error\": { backgroundImage: /*@__PURE__*/underline(\"#d11\") },\n \".cm-lintRange-warning\": { backgroundImage: /*@__PURE__*/underline(\"orange\") },\n \".cm-lintRange-info\": { backgroundImage: /*@__PURE__*/underline(\"#999\") },\n \".cm-lintRange-hint\": { backgroundImage: /*@__PURE__*/underline(\"#66d\") },\n \".cm-lintRange-active\": { backgroundColor: \"#ffdd9980\" },\n \".cm-tooltip-lint\": {\n padding: 0,\n margin: 0\n },\n \".cm-lintPoint\": {\n position: \"relative\",\n \"&:after\": {\n content: '\"\"',\n position: \"absolute\",\n bottom: 0,\n left: \"-2px\",\n borderLeft: \"3px solid transparent\",\n borderRight: \"3px solid transparent\",\n borderBottom: \"4px solid #d11\"\n }\n },\n \".cm-lintPoint-warning\": {\n \"&:after\": { borderBottomColor: \"orange\" }\n },\n \".cm-lintPoint-info\": {\n \"&:after\": { borderBottomColor: \"#999\" }\n },\n \".cm-lintPoint-hint\": {\n \"&:after\": { borderBottomColor: \"#66d\" }\n },\n \".cm-panel.cm-panel-lint\": {\n position: \"relative\",\n \"& ul\": {\n maxHeight: \"100px\",\n overflowY: \"auto\",\n \"& [aria-selected]\": {\n backgroundColor: \"#ddd\",\n \"& u\": { textDecoration: \"underline\" }\n },\n \"&:focus [aria-selected]\": {\n background_fallback: \"#bdf\",\n backgroundColor: \"Highlight\",\n color_fallback: \"white\",\n color: \"HighlightText\"\n },\n \"& u\": { textDecoration: \"none\" },\n padding: 0,\n margin: 0\n },\n \"& [name=close]\": {\n position: \"absolute\",\n top: \"0\",\n right: \"2px\",\n background: \"inherit\",\n border: \"none\",\n font: \"inherit\",\n padding: 0,\n margin: 0\n }\n }\n});\nfunction severityWeight(sev) {\n return sev == \"error\" ? 4 : sev == \"warning\" ? 3 : sev == \"info\" ? 2 : 1;\n}\nfunction maxSeverity(diagnostics) {\n let sev = \"hint\", weight = 1;\n for (let d of diagnostics) {\n let w = severityWeight(d.severity);\n if (w > weight) {\n weight = w;\n sev = d.severity;\n }\n }\n return sev;\n}\nclass LintGutterMarker extends GutterMarker {\n constructor(diagnostics) {\n super();\n this.diagnostics = diagnostics;\n this.severity = maxSeverity(diagnostics);\n }\n toDOM(view) {\n let elt = document.createElement(\"div\");\n elt.className = \"cm-lint-marker cm-lint-marker-\" + this.severity;\n let diagnostics = this.diagnostics;\n let diagnosticsFilter = view.state.facet(lintGutterConfig).tooltipFilter;\n if (diagnosticsFilter)\n diagnostics = diagnosticsFilter(diagnostics, view.state);\n if (diagnostics.length)\n elt.onmouseover = () => gutterMarkerMouseOver(view, elt, diagnostics);\n return elt;\n }\n}\nfunction trackHoverOn(view, marker) {\n let mousemove = (event) => {\n let rect = marker.getBoundingClientRect();\n if (event.clientX > rect.left - 10 /* Hover.Margin */ && event.clientX < rect.right + 10 /* Hover.Margin */ &&\n event.clientY > rect.top - 10 /* Hover.Margin */ && event.clientY < rect.bottom + 10 /* Hover.Margin */)\n return;\n for (let target = event.target; target; target = target.parentNode) {\n if (target.nodeType == 1 && target.classList.contains(\"cm-tooltip-lint\"))\n return;\n }\n window.removeEventListener(\"mousemove\", mousemove);\n if (view.state.field(lintGutterTooltip))\n view.dispatch({ effects: setLintGutterTooltip.of(null) });\n };\n window.addEventListener(\"mousemove\", mousemove);\n}\nfunction gutterMarkerMouseOver(view, marker, diagnostics) {\n function hovered() {\n let line = view.elementAtHeight(marker.getBoundingClientRect().top + 5 - view.documentTop);\n const linePos = view.coordsAtPos(line.from);\n if (linePos) {\n view.dispatch({ effects: setLintGutterTooltip.of({\n pos: line.from,\n above: false,\n clip: false,\n create() {\n return {\n dom: diagnosticsTooltip(view, diagnostics),\n getCoords: () => marker.getBoundingClientRect()\n };\n }\n }) });\n }\n marker.onmouseout = marker.onmousemove = null;\n trackHoverOn(view, marker);\n }\n let { hoverTime } = view.state.facet(lintGutterConfig);\n let hoverTimeout = setTimeout(hovered, hoverTime);\n marker.onmouseout = () => {\n clearTimeout(hoverTimeout);\n marker.onmouseout = marker.onmousemove = null;\n };\n marker.onmousemove = () => {\n clearTimeout(hoverTimeout);\n hoverTimeout = setTimeout(hovered, hoverTime);\n };\n}\nfunction markersForDiagnostics(doc, diagnostics) {\n let byLine = Object.create(null);\n for (let diagnostic of diagnostics) {\n let line = doc.lineAt(diagnostic.from);\n (byLine[line.from] || (byLine[line.from] = [])).push(diagnostic);\n }\n let markers = [];\n for (let line in byLine) {\n markers.push(new LintGutterMarker(byLine[line]).range(+line));\n }\n return RangeSet.of(markers, true);\n}\nconst lintGutterExtension = /*@__PURE__*/gutter({\n class: \"cm-gutter-lint\",\n markers: view => view.state.field(lintGutterMarkers),\n widgetMarker: (view, widget, block) => {\n let diagnostics = [];\n view.state.field(lintGutterMarkers).between(block.from, block.to, (from, to, value) => {\n if (from > block.from && from < block.to)\n diagnostics.push(...value.diagnostics);\n });\n return diagnostics.length ? new LintGutterMarker(diagnostics) : null;\n }\n});\nconst lintGutterMarkers = /*@__PURE__*/StateField.define({\n create() {\n return RangeSet.empty;\n },\n update(markers, tr) {\n markers = markers.map(tr.changes);\n let diagnosticFilter = tr.state.facet(lintGutterConfig).markerFilter;\n for (let effect of tr.effects) {\n if (effect.is(setDiagnosticsEffect)) {\n let diagnostics = effect.value;\n if (diagnosticFilter)\n diagnostics = diagnosticFilter(diagnostics || [], tr.state);\n markers = markersForDiagnostics(tr.state.doc, diagnostics.slice(0));\n }\n }\n return markers;\n }\n});\nconst setLintGutterTooltip = /*@__PURE__*/StateEffect.define();\nconst lintGutterTooltip = /*@__PURE__*/StateField.define({\n create() { return null; },\n update(tooltip, tr) {\n if (tooltip && tr.docChanged)\n tooltip = hideTooltip(tr, tooltip) ? null : Object.assign(Object.assign({}, tooltip), { pos: tr.changes.mapPos(tooltip.pos) });\n return tr.effects.reduce((t, e) => e.is(setLintGutterTooltip) ? e.value : t, tooltip);\n },\n provide: field => showTooltip.from(field)\n});\nconst lintGutterTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-gutter-lint\": {\n width: \"1.4em\",\n \"& .cm-gutterElement\": {\n padding: \".2em\"\n }\n },\n \".cm-lint-marker\": {\n width: \"1em\",\n height: \"1em\"\n },\n \".cm-lint-marker-info\": {\n content: /*@__PURE__*/svg(`<path fill=\"#aaf\" stroke=\"#77e\" stroke-width=\"6\" stroke-linejoin=\"round\" d=\"M5 5L35 5L35 35L5 35Z\"/>`)\n },\n \".cm-lint-marker-warning\": {\n content: /*@__PURE__*/svg(`<path fill=\"#fe8\" stroke=\"#fd7\" stroke-width=\"6\" stroke-linejoin=\"round\" d=\"M20 6L37 35L3 35Z\"/>`),\n },\n \".cm-lint-marker-error\": {\n content: /*@__PURE__*/svg(`<circle cx=\"20\" cy=\"20\" r=\"15\" fill=\"#f87\" stroke=\"#f43\" stroke-width=\"6\"/>`)\n },\n});\nconst lintExtensions = [\n lintState,\n /*@__PURE__*/EditorView.decorations.compute([lintState], state => {\n let { selected, panel } = state.field(lintState);\n return !selected || !panel || selected.from == selected.to ? Decoration.none : Decoration.set([\n activeMark.range(selected.from, selected.to)\n ]);\n }),\n /*@__PURE__*/hoverTooltip(lintTooltip, { hideOn: hideTooltip }),\n baseTheme\n];\nconst lintGutterConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n hoverTime: 300 /* Hover.Time */,\n markerFilter: null,\n tooltipFilter: null\n });\n }\n});\n/**\nReturns an extension that installs a gutter showing markers for\neach line that has diagnostics, which can be hovered over to see\nthe diagnostics.\n*/\nfunction lintGutter(config = {}) {\n return [lintGutterConfig.of(config), lintGutterMarkers, lintGutterExtension, lintGutterTheme, lintGutterTooltip];\n}\n/**\nIterate over the marked diagnostics for the given editor state,\ncalling `f` for each of them. Note that, if the document changed\nsince the diagnostics were created, the `Diagnostic` object will\nhold the original outdated position, whereas the `to` and `from`\narguments hold the diagnostic's current position.\n*/\nfunction forEachDiagnostic(state, f) {\n let lState = state.field(lintState, false);\n if (lState && lState.diagnostics.size) {\n let pending = [], pendingStart = [], lastEnd = -1;\n for (let iter = RangeSet.iter([lState.diagnostics]);; iter.next()) {\n for (let i = 0; i < pending.length; i++)\n if (!iter.value || iter.value.spec.diagnostics.indexOf(pending[i]) < 0) {\n f(pending[i], pendingStart[i], lastEnd);\n pending.splice(i, 1);\n pendingStart.splice(i--, 1);\n }\n if (!iter.value)\n break;\n for (let d of iter.value.spec.diagnostics)\n if (pending.indexOf(d) < 0) {\n pending.push(d);\n pendingStart.push(iter.from);\n }\n lastEnd = iter.to;\n }\n }\n}\n\nexport { closeLintPanel, diagnosticCount, forEachDiagnostic, forceLinting, lintGutter, lintKeymap, linter, nextDiagnostic, openLintPanel, previousDiagnostic, setDiagnostics, setDiagnosticsEffect };\n","import { lineNumbers, highlightActiveLineGutter, highlightSpecialChars, drawSelection, dropCursor, rectangularSelection, crosshairCursor, highlightActiveLine, keymap } from '@codemirror/view';\nexport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { foldGutter, indentOnInput, syntaxHighlighting, defaultHighlightStyle, bracketMatching, foldKeymap } from '@codemirror/language';\nimport { history, defaultKeymap, historyKeymap } from '@codemirror/commands';\nimport { highlightSelectionMatches, searchKeymap } from '@codemirror/search';\nimport { closeBrackets, autocompletion, closeBracketsKeymap, completionKeymap } from '@codemirror/autocomplete';\nimport { lintKeymap } from '@codemirror/lint';\n\n// (The superfluous function calls around the list of extensions work\n// around current limitations in tree-shaking software.)\n/**\nThis is an extension value that just pulls together a number of\nextensions that you might want in a basic editor. It is meant as a\nconvenient helper to quickly set up CodeMirror without installing\nand importing a lot of separate packages.\n\nSpecifically, it includes...\n\n - [the default command bindings](https://codemirror.net/6/docs/ref/#commands.defaultKeymap)\n - [line numbers](https://codemirror.net/6/docs/ref/#view.lineNumbers)\n - [special character highlighting](https://codemirror.net/6/docs/ref/#view.highlightSpecialChars)\n - [the undo history](https://codemirror.net/6/docs/ref/#commands.history)\n - [a fold gutter](https://codemirror.net/6/docs/ref/#language.foldGutter)\n - [custom selection drawing](https://codemirror.net/6/docs/ref/#view.drawSelection)\n - [drop cursor](https://codemirror.net/6/docs/ref/#view.dropCursor)\n - [multiple selections](https://codemirror.net/6/docs/ref/#state.EditorState^allowMultipleSelections)\n - [reindentation on input](https://codemirror.net/6/docs/ref/#language.indentOnInput)\n - [the default highlight style](https://codemirror.net/6/docs/ref/#language.defaultHighlightStyle) (as fallback)\n - [bracket matching](https://codemirror.net/6/docs/ref/#language.bracketMatching)\n - [bracket closing](https://codemirror.net/6/docs/ref/#autocomplete.closeBrackets)\n - [autocompletion](https://codemirror.net/6/docs/ref/#autocomplete.autocompletion)\n - [rectangular selection](https://codemirror.net/6/docs/ref/#view.rectangularSelection) and [crosshair cursor](https://codemirror.net/6/docs/ref/#view.crosshairCursor)\n - [active line highlighting](https://codemirror.net/6/docs/ref/#view.highlightActiveLine)\n - [active line gutter highlighting](https://codemirror.net/6/docs/ref/#view.highlightActiveLineGutter)\n - [selection match highlighting](https://codemirror.net/6/docs/ref/#search.highlightSelectionMatches)\n - [search](https://codemirror.net/6/docs/ref/#search.searchKeymap)\n - [linting](https://codemirror.net/6/docs/ref/#lint.lintKeymap)\n\n(You'll probably want to add some language package to your setup\ntoo.)\n\nThis extension does not allow customization. The idea is that,\nonce you decide you want to configure your editor more precisely,\nyou take this package's source (which is just a bunch of imports\nand an array literal), copy it into your own code, and adjust it\nas desired.\n*/\nconst basicSetup = /*@__PURE__*/(() => [\n lineNumbers(),\n highlightActiveLineGutter(),\n highlightSpecialChars(),\n history(),\n foldGutter(),\n drawSelection(),\n dropCursor(),\n EditorState.allowMultipleSelections.of(true),\n indentOnInput(),\n syntaxHighlighting(defaultHighlightStyle, { fallback: true }),\n bracketMatching(),\n closeBrackets(),\n autocompletion(),\n rectangularSelection(),\n crosshairCursor(),\n highlightActiveLine(),\n highlightSelectionMatches(),\n keymap.of([\n ...closeBracketsKeymap,\n ...defaultKeymap,\n ...searchKeymap,\n ...historyKeymap,\n ...foldKeymap,\n ...completionKeymap,\n ...lintKeymap\n ])\n])();\n/**\nA minimal set of extensions to create a functional editor. Only\nincludes [the default keymap](https://codemirror.net/6/docs/ref/#commands.defaultKeymap), [undo\nhistory](https://codemirror.net/6/docs/ref/#commands.history), [special character\nhighlighting](https://codemirror.net/6/docs/ref/#view.highlightSpecialChars), [custom selection\ndrawing](https://codemirror.net/6/docs/ref/#view.drawSelection), and [default highlight\nstyle](https://codemirror.net/6/docs/ref/#language.defaultHighlightStyle).\n*/\nconst minimalSetup = /*@__PURE__*/(() => [\n highlightSpecialChars(),\n history(),\n drawSelection(),\n syntaxHighlighting(defaultHighlightStyle, { fallback: true }),\n keymap.of([\n ...defaultKeymap,\n ...historyKeymap,\n ])\n])();\n\nexport { basicSetup, minimalSetup };\n"],"names":["basicNormalize","String","prototype","normalize","x","SearchCursor","constructor","text","query","from","to","length","test","this","value","done","matches","buffer","bufferPos","iter","iterRange","bufferStart","peek","next","codePointAt","pop","nextOverlapping","str","fromCodePoint","start","codePointSize","norm","i","pos","code","charCodeAt","match","end","index","keep","splice","push","Symbol","iterator","empty","exec","baseFlags","unicode","RegExpCursor","options","curLine","MultilineRegExpCursor","re","RegExp","ignoreCase","startLine","lineAt","curLineStart","matchPos","toCharEnd","getLine","skip","lineBreak","slice","nextLine","off","lastIndex","flattened","WeakMap","FlattenedDoc","get","doc","cached","flat","sliceString","set","cachedFrom","chunkEnd","line","createLineDialog","view","state","selection","main","head","number","input","elt","class","name","go","sign","ln","cl","percent","col","pc","lines","Math","round","docLine","max","min","EditorSelection","cursor","dispatch","effects","dialogEffect","of","EditorView","scrollIntoView","y","focus","dom","onkeydown","event","keyCode","preventDefault","onsubmit","phrase","type","onclick","StateEffect","define","dialogField","StateField","create","update","tr","e","is","provide","f","showPanel","val","baseTheme$1","baseTheme","padding","position","fontSize","top","bottom","right","backgroundColor","border","font","defaultHighlightOptions","highlightWordAroundCursor","minSelectionLength","maxMatches","wholeWords","highlightConfig","Facet","combine","combineConfig","a","b","matchDeco","Decoration","mark","mainMatchDeco","insideWordBoundaries","check","sliceDoc","CharCategory","Word","matchHighlighter","ViewPlugin","fromClass","decorations","getDeco","selectionSet","docChanged","viewportChanged","conf","facet","sel","ranges","none","range","word","wordAt","charCategorizer","len","insideWord","deco","part","visibleRanges","v","defaultTheme","searchConfigFacet","configs","caseSensitive","literal","regexp","wholeWord","createPanel","SearchPanel","scrollToMatch","SearchQuery","config","search","replace","valid","source","_a","validRegExp","unquoted","unquote","_","ch","eq","other","RegExpQuery","StringQuery","getCursor","st","EditorState","regexpCursor","stringCursor","QueryType","spec","undefined","toLowerCase","categorizer","buf","bufPos","charBefore","charAfter","super","nextMatch","curFrom","curTo","prevMatchInRange","prevMatch","found","getReplacement","_result","matchAll","limit","highlight","add","_from","_to","findClusterBreak","size","result","m","l","n","setSearchQuery","togglePanel","searchState","SearchState","defaultQuery","effect","panel","createSearchPanel","matchMark","selectedMatchMark","searchHighlighter","field","startState","builder","RangeSetBuilder","selected","some","r","finish","searchCommand","openSearchPanel","findNext","single","announceMatch","userEvent","selectSearchInput","findPrevious","prev","selectMatches","map","replaceNext","readOnly","replacement","changes","toText","insert","announce","changeSet","replaceAll","announceText","fallback","_b","_c","_d","_e","selText","getSearchInput","getPanel","querySelector","root","activeElement","select","searchInput","appendConfig","searchExtensions","closeSearchPanel","contains","searchKeymap","key","run","scope","shift","cur","newSel","mainIndex","selectWord","searchedText","fullWord","cycled","findNextOccurrence","addRange","button","content","commit","bind","searchField","placeholder","form","onchange","onkeyup","replaceField","caseField","checked","reField","wordField","keydown","runScopeHandlers","target","shiftKey","transactions","setQuery","mount","AnnounceMargin","Break","lineEnd","margin","marginRight","whiteSpace","Prec","low","SelectedDiagnostic","diagnostic","LintState","diagnostics","init","diagnosticFilter","lintConfig","markerFilter","sorted","sort","active","reduce","p","d","sev","maxSeverity","widget","DiagnosticWidget","markClass","c","inclusiveEnd","findDiagnostic","after","between","indexOf","setDiagnosticsEffect","movePanelSelection","lintState","mapped","selPos","mapPos","autoPanel","LintPanel","open","s","activeMark","lintTooltip","side","tooltipFilter","above","diagnosticsTooltip","renderDiagnostic","closeLintPanel","lintKeymap","concat","lintExtensions","anchor","Object","assign","sources","filter","delay","needsRefresh","hideOn","u","assignKeys","actions","assigned","inPanel","keys","severity","renderMessage","message","action","fired","click","apply","keyIndex","nameElt","onmousedown","WidgetType","toDOM","PanelItem","id","floor","random","toString","setAttribute","items","list","tabIndex","role","moveSelection","selectedIndex","toUpperCase","needsSync","newSelectedItem","seen","Set","_start","_end","has","item","j","hasAttribute","removeAttribute","requestMeasure","read","getBoundingClientRect","write","scaleY","height","offsetHeight","scrollTop","sync","domPos","firstChild","rm","nextSibling","remove","parentNode","insertBefore","underline","color","attrs","encodeURIComponent","svg","marginLeft","display","borderLeft","borderRadius","opacity","backgroundPosition","backgroundRepeat","paddingBottom","backgroundImage","left","borderRight","borderBottom","borderBottomColor","maxHeight","overflowY","textDecoration","background_fallback","color_fallback","background","severityWeight","weight","w","compute","hoverTooltip","tooltip","touchesRange","basicSetup","lineNumbers","highlightActiveLineGutter","highlightSpecialChars","history","foldGutter","drawSelection","dropCursor","allowMultipleSelections","indentOnInput","syntaxHighlighting","defaultHighlightStyle","bracketMatching","closeBrackets","autocompletion","rectangularSelection","crosshairCursor","highlightActiveLine","keymap","closeBracketsKeymap","defaultKeymap","historyKeymap","foldKeymap","completionKeymap","minimalSetup"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|