code-battles 1.7.12 → 1.7.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/dist/cjs/index.js +0 -1
  2. package/dist/code_battles/__init__.py +2 -2
  3. package/dist/code_battles/__pycache__/__init__.cpython-314.pyc +0 -0
  4. package/dist/code_battles/__pycache__/battles.cpython-314.pyc +0 -0
  5. package/dist/code_battles/__pycache__/utilities.cpython-314.pyc +0 -0
  6. package/dist/code_battles/battles.py +1 -1
  7. package/dist/esm/index.js +0 -1
  8. package/package.json +1 -1
  9. package/dist/cjs/types/components/ResultStaticsTable.d.ts +0 -3
  10. package/dist/cjs/types/particles.d.ts +0 -2
  11. package/dist/code_battles/js.pyi +0 -144
  12. package/dist/code_battles/pyodide/ffi/__init__.pyi +0 -2
  13. package/dist/code_battles/pyscript/__init__.pyi +0 -7
  14. package/dist/code_battles/pyscript/ffi/__init__.pyi +0 -3
  15. package/dist/code_battles/testing.py +0 -51
  16. package/dist/esm/types/components/ResultStaticsTable.d.ts +0 -3
  17. package/dist/esm/types/particles.d.ts +0 -2
  18. package/dist/pyscript/codemirror-BL6UELQn.js +0 -2
  19. package/dist/pyscript/codemirror-BL6UELQn.js.map +0 -1
  20. package/dist/pyscript/codemirror-Cxby0EOW.js +0 -2
  21. package/dist/pyscript/codemirror-Cxby0EOW.js.map +0 -1
  22. package/dist/pyscript/codemirror-DtxT3fWl.js +0 -2
  23. package/dist/pyscript/codemirror-DtxT3fWl.js.map +0 -1
  24. package/dist/pyscript/codemirror-eKulCBrd.js +0 -2
  25. package/dist/pyscript/codemirror-eKulCBrd.js.map +0 -1
  26. package/dist/pyscript/codemirror_commands-BVu_0Pnj.js +0 -2
  27. package/dist/pyscript/codemirror_commands-BVu_0Pnj.js.map +0 -1
  28. package/dist/pyscript/codemirror_commands-CkvdNQxZ.js +0 -2
  29. package/dist/pyscript/codemirror_commands-CkvdNQxZ.js.map +0 -1
  30. package/dist/pyscript/codemirror_commands-CmeJ70sL.js +0 -2
  31. package/dist/pyscript/codemirror_commands-CmeJ70sL.js.map +0 -1
  32. package/dist/pyscript/codemirror_commands-DEH2ednO.js +0 -2
  33. package/dist/pyscript/codemirror_commands-DEH2ednO.js.map +0 -1
  34. package/dist/pyscript/codemirror_lang-python-B9xSeck3.js +0 -2
  35. package/dist/pyscript/codemirror_lang-python-B9xSeck3.js.map +0 -1
  36. package/dist/pyscript/codemirror_lang-python-BmOE5ND1.js +0 -2
  37. package/dist/pyscript/codemirror_lang-python-BmOE5ND1.js.map +0 -1
  38. package/dist/pyscript/codemirror_lang-python-C4eeLuBs.js +0 -2
  39. package/dist/pyscript/codemirror_lang-python-C4eeLuBs.js.map +0 -1
  40. package/dist/pyscript/codemirror_lang-python-a2LxSo5G.js +0 -2
  41. package/dist/pyscript/codemirror_lang-python-a2LxSo5G.js.map +0 -1
  42. package/dist/pyscript/codemirror_language-Bq5O0hUR.js +0 -2
  43. package/dist/pyscript/codemirror_language-Bq5O0hUR.js.map +0 -1
  44. package/dist/pyscript/codemirror_language-DbhkgEi1.js +0 -2
  45. package/dist/pyscript/codemirror_language-DbhkgEi1.js.map +0 -1
  46. package/dist/pyscript/codemirror_language-_2pXlKJ9.js +0 -2
  47. package/dist/pyscript/codemirror_language-_2pXlKJ9.js.map +0 -1
  48. package/dist/pyscript/codemirror_language-bz5_3ooB.js +0 -2
  49. package/dist/pyscript/codemirror_language-bz5_3ooB.js.map +0 -1
  50. package/dist/pyscript/codemirror_state-1UkzIAPK.js +0 -2
  51. package/dist/pyscript/codemirror_state-1UkzIAPK.js.map +0 -1
  52. package/dist/pyscript/codemirror_view-BwC4I3hj.js +0 -2
  53. package/dist/pyscript/codemirror_view-BwC4I3hj.js.map +0 -1
  54. package/dist/pyscript/codemirror_view-DMW9kQlJ.js +0 -2
  55. package/dist/pyscript/codemirror_view-DMW9kQlJ.js.map +0 -1
  56. package/dist/pyscript/codemirror_view-DNx7dL5k.js +0 -2
  57. package/dist/pyscript/codemirror_view-DNx7dL5k.js.map +0 -1
  58. package/dist/pyscript/codemirror_view-qh1qPB30.js +0 -2
  59. package/dist/pyscript/codemirror_view-qh1qPB30.js.map +0 -1
  60. package/dist/pyscript/core-3crqT3rt.js +0 -4
  61. package/dist/pyscript/core-3crqT3rt.js.map +0 -1
  62. package/dist/pyscript/core-BAg8axiz.js +0 -4
  63. package/dist/pyscript/core-BAg8axiz.js.map +0 -1
  64. package/dist/pyscript/core-D_Y2i5wV.js +0 -4
  65. package/dist/pyscript/core-D_Y2i5wV.js.map +0 -1
  66. package/dist/pyscript/core-DezwbZpG.js +0 -4
  67. package/dist/pyscript/core-DezwbZpG.js.map +0 -1
  68. package/dist/pyscript/core-ZERPM6xU.js +0 -4
  69. package/dist/pyscript/core-ZERPM6xU.js.map +0 -1
  70. package/dist/pyscript/deprecations-manager-B1bDno27.js +0 -2
  71. package/dist/pyscript/deprecations-manager-B1bDno27.js.map +0 -1
  72. package/dist/pyscript/deprecations-manager-C-kM_OOK.js +0 -2
  73. package/dist/pyscript/deprecations-manager-C-kM_OOK.js.map +0 -1
  74. package/dist/pyscript/deprecations-manager-DFWBNz_j.js +0 -2
  75. package/dist/pyscript/deprecations-manager-DFWBNz_j.js.map +0 -1
  76. package/dist/pyscript/deprecations-manager-DK3ieDyl.js +0 -2
  77. package/dist/pyscript/deprecations-manager-DK3ieDyl.js.map +0 -1
  78. package/dist/pyscript/deprecations-manager-DdXs-cNg.js +0 -2
  79. package/dist/pyscript/deprecations-manager-DdXs-cNg.js.map +0 -1
  80. package/dist/pyscript/donkey--RgkMgKe.js +0 -2
  81. package/dist/pyscript/donkey--RgkMgKe.js.map +0 -1
  82. package/dist/pyscript/donkey-9sgzITrF.js +0 -2
  83. package/dist/pyscript/donkey-9sgzITrF.js.map +0 -1
  84. package/dist/pyscript/donkey-DNl0ASkM.js +0 -2
  85. package/dist/pyscript/donkey-DNl0ASkM.js.map +0 -1
  86. package/dist/pyscript/donkey-Dh8cjx4z.js +0 -2
  87. package/dist/pyscript/donkey-Dh8cjx4z.js.map +0 -1
  88. package/dist/pyscript/donkey-DvYy_z4S.js +0 -2
  89. package/dist/pyscript/donkey-DvYy_z4S.js.map +0 -1
  90. package/dist/pyscript/error-ADoJa5BE.js +0 -2
  91. package/dist/pyscript/error-ADoJa5BE.js.map +0 -1
  92. package/dist/pyscript/error-BHehssqp.js +0 -2
  93. package/dist/pyscript/error-BHehssqp.js.map +0 -1
  94. package/dist/pyscript/error-Dc0g2_oA.js +0 -2
  95. package/dist/pyscript/error-Dc0g2_oA.js.map +0 -1
  96. package/dist/pyscript/error-DmRE4Y-7.js +0 -2
  97. package/dist/pyscript/error-DmRE4Y-7.js.map +0 -1
  98. package/dist/pyscript/error-X7dWXDEj.js +0 -2
  99. package/dist/pyscript/error-X7dWXDEj.js.map +0 -1
  100. package/dist/pyscript/index-1itZOIGg.js +0 -2
  101. package/dist/pyscript/index-1itZOIGg.js.map +0 -1
  102. package/dist/pyscript/index-B25jxAgK.js +0 -2
  103. package/dist/pyscript/index-B25jxAgK.js.map +0 -1
  104. package/dist/pyscript/index-BtkFDJPe.js +0 -2
  105. package/dist/pyscript/index-BtkFDJPe.js.map +0 -1
  106. package/dist/pyscript/index-DkgvWIf-.js +0 -2
  107. package/dist/pyscript/index-DkgvWIf-.js.map +0 -1
  108. package/dist/pyscript/mpy-BOCRQK6f.js +0 -2
  109. package/dist/pyscript/mpy-BOCRQK6f.js.map +0 -1
  110. package/dist/pyscript/mpy-BoY0tVRD.js +0 -2
  111. package/dist/pyscript/mpy-BoY0tVRD.js.map +0 -1
  112. package/dist/pyscript/mpy-CJb45DuK.js +0 -2
  113. package/dist/pyscript/mpy-CJb45DuK.js.map +0 -1
  114. package/dist/pyscript/mpy-PutLL-8K.js +0 -2
  115. package/dist/pyscript/mpy-PutLL-8K.js.map +0 -1
  116. package/dist/pyscript/mpy-lpj2Tqw5.js +0 -2
  117. package/dist/pyscript/mpy-lpj2Tqw5.js.map +0 -1
  118. package/dist/pyscript/py-ByqLLyxS.js +0 -2
  119. package/dist/pyscript/py-ByqLLyxS.js.map +0 -1
  120. package/dist/pyscript/py-C5u4njlg.js +0 -2
  121. package/dist/pyscript/py-C5u4njlg.js.map +0 -1
  122. package/dist/pyscript/py-CbCpu0Nu.js +0 -2
  123. package/dist/pyscript/py-CbCpu0Nu.js.map +0 -1
  124. package/dist/pyscript/py-DsQqgZuM.js +0 -2
  125. package/dist/pyscript/py-DsQqgZuM.js.map +0 -1
  126. package/dist/pyscript/py-M84r6p_z.js +0 -2
  127. package/dist/pyscript/py-M84r6p_z.js.map +0 -1
  128. package/dist/pyscript/py-editor-BSEgUf3R.js +0 -2
  129. package/dist/pyscript/py-editor-BSEgUf3R.js.map +0 -1
  130. package/dist/pyscript/py-editor-DZkG_or6.js +0 -2
  131. package/dist/pyscript/py-editor-DZkG_or6.js.map +0 -1
  132. package/dist/pyscript/py-editor-Dpcrdhky.js +0 -2
  133. package/dist/pyscript/py-editor-Dpcrdhky.js.map +0 -1
  134. package/dist/pyscript/py-editor-JsJIlo51.js +0 -2
  135. package/dist/pyscript/py-editor-JsJIlo51.js.map +0 -1
  136. package/dist/pyscript/py-editor-rQyrU9ml.js +0 -2
  137. package/dist/pyscript/py-editor-rQyrU9ml.js.map +0 -1
  138. package/dist/pyscript/py-game-CqGV5glf.js +0 -2
  139. package/dist/pyscript/py-game-CqGV5glf.js.map +0 -1
  140. package/dist/pyscript/py-game-D0Z4YnzZ.js +0 -2
  141. package/dist/pyscript/py-game-D0Z4YnzZ.js.map +0 -1
  142. package/dist/pyscript/py-game-D3nLvq_1.js +0 -2
  143. package/dist/pyscript/py-game-D3nLvq_1.js.map +0 -1
  144. package/dist/pyscript/py-game-DC-XdrKH.js +0 -2
  145. package/dist/pyscript/py-game-DC-XdrKH.js.map +0 -1
  146. package/dist/pyscript/py-game-DzlIl7pw.js +0 -2
  147. package/dist/pyscript/py-game-DzlIl7pw.js.map +0 -1
  148. package/dist/pyscript/py-terminal-CEeXlsXC.js +0 -2
  149. package/dist/pyscript/py-terminal-CEeXlsXC.js.map +0 -1
  150. package/dist/pyscript/py-terminal-CH3PYUc-.js +0 -2
  151. package/dist/pyscript/py-terminal-CH3PYUc-.js.map +0 -1
  152. package/dist/pyscript/py-terminal-CNqBj7Ns.js +0 -2
  153. package/dist/pyscript/py-terminal-CNqBj7Ns.js.map +0 -1
  154. package/dist/pyscript/py-terminal-DYHK7LJ0.js +0 -2
  155. package/dist/pyscript/py-terminal-DYHK7LJ0.js.map +0 -1
  156. package/dist/pyscript/py-terminal-qT02HXWZ.js +0 -2
  157. package/dist/pyscript/py-terminal-qT02HXWZ.js.map +0 -1
  158. package/dist/pyscript/toml-BLBSZ43A.js +0 -3
  159. package/dist/pyscript/toml-BLBSZ43A.js.map +0 -1
  160. package/dist/pyscript/toml-DiUM0_qs.js +0 -3
  161. package/dist/pyscript/toml-DiUM0_qs.js.map +0 -1
  162. package/dist/pyscript/xterm-7LwxAMsn.js +0 -2
  163. package/dist/pyscript/xterm-7LwxAMsn.js.map +0 -1
  164. package/dist/pyscript/xterm-CVv2fC4I.js +0 -2
  165. package/dist/pyscript/xterm-CVv2fC4I.js.map +0 -1
  166. package/dist/pyscript/xterm-readline-e8QPhSrm.js +0 -2
  167. package/dist/pyscript/xterm-readline-e8QPhSrm.js.map +0 -1
  168. package/dist/pyscript/xterm_addon-web-links-Cnej-nJ6.js +0 -2
  169. package/dist/pyscript/xterm_addon-web-links-Cnej-nJ6.js.map +0 -1
  170. package/dist/pyscript/zip-BKVoQflw.js +0 -2
  171. package/dist/pyscript/zip-BKVoQflw.js.map +0 -1
  172. package/dist/pyscript/zip-D13-hp9W.js +0 -2
  173. package/dist/pyscript/zip-D13-hp9W.js.map +0 -1
  174. package/dist/pyscript/zip-DxlTOqbw.js +0 -2
  175. package/dist/pyscript/zip-DxlTOqbw.js.map +0 -1
@@ -1,2 +0,0 @@
1
- import{notify as e}from"./error-DmRE4Y-7.js";import{e as o}from"./core-DezwbZpG.js";function r(){const e=document.querySelectorAll("script");for(const o of e)s(o.src)}function s(o){/\/pyscript\.net\/latest/.test(o)&&e("Loading scripts from latest is deprecated and will be removed soon. Please use a specific version instead.")}o.main.onReady.add(r),o.main.onWorker.add(r);
2
- //# sourceMappingURL=deprecations-manager-B1bDno27.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deprecations-manager-B1bDno27.js","sources":["../src/plugins/deprecations-manager.js"],"sourcesContent":["// PyScript Derepcations Plugin\nimport { notify } from \"./error.js\";\nimport { hooks } from \"../core.js\";\n\n// react lazily on PyScript bootstrap\nhooks.main.onReady.add(checkDeprecations);\nhooks.main.onWorker.add(checkDeprecations);\n\n/**\n * Check that there are no scripts loading from pyscript.net/latest\n */\nfunction checkDeprecations() {\n const scripts = document.querySelectorAll(\"script\");\n for (const script of scripts) checkLoadingScriptsFromLatest(script.src);\n}\n\n/**\n * Check if src being loaded from pyscript.net/latest and display a notification if true\n * * @param {string} src\n */\nfunction checkLoadingScriptsFromLatest(src) {\n if (/\\/pyscript\\.net\\/latest/.test(src)) {\n notify(\n \"Loading scripts from latest is deprecated and will be removed soon. Please use a specific version instead.\",\n );\n }\n}\n"],"names":["checkDeprecations","scripts","document","querySelectorAll","script","checkLoadingScriptsFromLatest","src","test","notify","hooks","main","onReady","add","onWorker"],"mappings":"oFAWA,SAASA,IACL,MAAMC,EAAUC,SAASC,iBAAiB,UAC1C,IAAK,MAAMC,KAAUH,EAASI,EAA8BD,EAAOE,IACvE,CAMA,SAASD,EAA8BC,GAC/B,0BAA0BC,KAAKD,IAC/BE,EACI,6GAGZ,CArBAC,EAAMC,KAAKC,QAAQC,IAAIZ,GACvBS,EAAMC,KAAKG,SAASD,IAAIZ"}
@@ -1,2 +0,0 @@
1
- import{notify as e}from"./error-BHehssqp.js";import{e as o}from"./core-ZERPM6xU.js";function r(){const e=document.querySelectorAll("script");for(const o of e)s(o.src)}function s(o){/\/pyscript\.net\/latest/.test(o)&&e("Loading scripts from latest is deprecated and will be removed soon. Please use a specific version instead.")}o.main.onReady.add(r),o.main.onWorker.add(r);
2
- //# sourceMappingURL=deprecations-manager-C-kM_OOK.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deprecations-manager-C-kM_OOK.js","sources":["../src/plugins/deprecations-manager.js"],"sourcesContent":["// PyScript Derepcations Plugin\nimport { notify } from \"./error.js\";\nimport { hooks } from \"../core.js\";\n\n// react lazily on PyScript bootstrap\nhooks.main.onReady.add(checkDeprecations);\nhooks.main.onWorker.add(checkDeprecations);\n\n/**\n * Check that there are no scripts loading from pyscript.net/latest\n */\nfunction checkDeprecations() {\n const scripts = document.querySelectorAll(\"script\");\n for (const script of scripts) checkLoadingScriptsFromLatest(script.src);\n}\n\n/**\n * Check if src being loaded from pyscript.net/latest and display a notification if true\n * * @param {string} src\n */\nfunction checkLoadingScriptsFromLatest(src) {\n if (/\\/pyscript\\.net\\/latest/.test(src)) {\n notify(\n \"Loading scripts from latest is deprecated and will be removed soon. Please use a specific version instead.\",\n );\n }\n}\n"],"names":["checkDeprecations","scripts","document","querySelectorAll","script","checkLoadingScriptsFromLatest","src","test","notify","hooks","main","onReady","add","onWorker"],"mappings":"oFAWA,SAASA,IACL,MAAMC,EAAUC,SAASC,iBAAiB,UAC1C,IAAK,MAAMC,KAAUH,EAASI,EAA8BD,EAAOE,IACvE,CAMA,SAASD,EAA8BC,GAC/B,0BAA0BC,KAAKD,IAC/BE,EACI,6GAGZ,CArBAC,EAAMC,KAAKC,QAAQC,IAAIZ,GACvBS,EAAMC,KAAKG,SAASD,IAAIZ"}
@@ -1,2 +0,0 @@
1
- import{notify as e}from"./error-ADoJa5BE.js";import{e as o}from"./core-D_Y2i5wV.js";function r(){const e=document.querySelectorAll("script");for(const o of e)s(o.src)}function s(o){/\/pyscript\.net\/latest/.test(o)&&e("Loading scripts from latest is deprecated and will be removed soon. Please use a specific version instead.")}o.main.onReady.add(r),o.main.onWorker.add(r);
2
- //# sourceMappingURL=deprecations-manager-DFWBNz_j.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deprecations-manager-DFWBNz_j.js","sources":["../src/plugins/deprecations-manager.js"],"sourcesContent":["// PyScript Derepcations Plugin\nimport { notify } from \"./error.js\";\nimport { hooks } from \"../core.js\";\n\n// react lazily on PyScript bootstrap\nhooks.main.onReady.add(checkDeprecations);\nhooks.main.onWorker.add(checkDeprecations);\n\n/**\n * Check that there are no scripts loading from pyscript.net/latest\n */\nfunction checkDeprecations() {\n const scripts = document.querySelectorAll(\"script\");\n for (const script of scripts) checkLoadingScriptsFromLatest(script.src);\n}\n\n/**\n * Check if src being loaded from pyscript.net/latest and display a notification if true\n * * @param {string} src\n */\nfunction checkLoadingScriptsFromLatest(src) {\n if (/\\/pyscript\\.net\\/latest/.test(src)) {\n notify(\n \"Loading scripts from latest is deprecated and will be removed soon. Please use a specific version instead.\",\n );\n }\n}\n"],"names":["checkDeprecations","scripts","document","querySelectorAll","script","checkLoadingScriptsFromLatest","src","test","notify","hooks","main","onReady","add","onWorker"],"mappings":"oFAWA,SAASA,IACL,MAAMC,EAAUC,SAASC,iBAAiB,UAC1C,IAAK,MAAMC,KAAUH,EAASI,EAA8BD,EAAOE,IACvE,CAMA,SAASD,EAA8BC,GAC/B,0BAA0BC,KAAKD,IAC/BE,EACI,6GAGZ,CArBAC,EAAMC,KAAKC,QAAQC,IAAIZ,GACvBS,EAAMC,KAAKG,SAASD,IAAIZ"}
@@ -1,2 +0,0 @@
1
- import{notify as e}from"./error-X7dWXDEj.js";import{e as o}from"./core-3crqT3rt.js";function r(){const e=document.querySelectorAll("script");for(const o of e)s(o.src)}function s(o){/\/pyscript\.net\/latest/.test(o)&&e("Loading scripts from latest is deprecated and will be removed soon. Please use a specific version instead.")}o.main.onReady.add(r),o.main.onWorker.add(r);
2
- //# sourceMappingURL=deprecations-manager-DK3ieDyl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deprecations-manager-DK3ieDyl.js","sources":["../src/plugins/deprecations-manager.js"],"sourcesContent":["// PyScript Derepcations Plugin\nimport { notify } from \"./error.js\";\nimport { hooks } from \"../core.js\";\n\n// react lazily on PyScript bootstrap\nhooks.main.onReady.add(checkDeprecations);\nhooks.main.onWorker.add(checkDeprecations);\n\n/**\n * Check that there are no scripts loading from pyscript.net/latest\n */\nfunction checkDeprecations() {\n const scripts = document.querySelectorAll(\"script\");\n for (const script of scripts) checkLoadingScriptsFromLatest(script.src);\n}\n\n/**\n * Check if src being loaded from pyscript.net/latest and display a notification if true\n * * @param {string} src\n */\nfunction checkLoadingScriptsFromLatest(src) {\n if (/\\/pyscript\\.net\\/latest/.test(src)) {\n notify(\n \"Loading scripts from latest is deprecated and will be removed soon. Please use a specific version instead.\",\n );\n }\n}\n"],"names":["checkDeprecations","scripts","document","querySelectorAll","script","checkLoadingScriptsFromLatest","src","test","notify","hooks","main","onReady","add","onWorker"],"mappings":"oFAWA,SAASA,IACL,MAAMC,EAAUC,SAASC,iBAAiB,UAC1C,IAAK,MAAMC,KAAUH,EAASI,EAA8BD,EAAOE,IACvE,CAMA,SAASD,EAA8BC,GAC/B,0BAA0BC,KAAKD,IAC/BE,EACI,6GAGZ,CArBAC,EAAMC,KAAKC,QAAQC,IAAIZ,GACvBS,EAAMC,KAAKG,SAASD,IAAIZ"}
@@ -1,2 +0,0 @@
1
- import{notify as e}from"./error-Dc0g2_oA.js";import{e as o}from"./core-BAg8axiz.js";function r(){const e=document.querySelectorAll("script");for(const o of e)s(o.src)}function s(o){/\/pyscript\.net\/latest/.test(o)&&e("Loading scripts from latest is deprecated and will be removed soon. Please use a specific version instead.")}o.main.onReady.add(r),o.main.onWorker.add(r);
2
- //# sourceMappingURL=deprecations-manager-DdXs-cNg.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deprecations-manager-DdXs-cNg.js","sources":["../src/plugins/deprecations-manager.js"],"sourcesContent":["// PyScript Derepcations Plugin\nimport { notify } from \"./error.js\";\nimport { hooks } from \"../core.js\";\n\n// react lazily on PyScript bootstrap\nhooks.main.onReady.add(checkDeprecations);\nhooks.main.onWorker.add(checkDeprecations);\n\n/**\n * Check that there are no scripts loading from pyscript.net/latest\n */\nfunction checkDeprecations() {\n const scripts = document.querySelectorAll(\"script\");\n for (const script of scripts) checkLoadingScriptsFromLatest(script.src);\n}\n\n/**\n * Check if src being loaded from pyscript.net/latest and display a notification if true\n * * @param {string} src\n */\nfunction checkLoadingScriptsFromLatest(src) {\n if (/\\/pyscript\\.net\\/latest/.test(src)) {\n notify(\n \"Loading scripts from latest is deprecated and will be removed soon. Please use a specific version instead.\",\n );\n }\n}\n"],"names":["checkDeprecations","scripts","document","querySelectorAll","script","checkLoadingScriptsFromLatest","src","test","notify","hooks","main","onReady","add","onWorker"],"mappings":"oFAWA,SAASA,IACL,MAAMC,EAAUC,SAASC,iBAAiB,UAC1C,IAAK,MAAMC,KAAUH,EAASI,EAA8BD,EAAOE,IACvE,CAMA,SAASD,EAA8BC,GAC/B,0BAA0BC,KAAKD,IAC/BE,EACI,6GAGZ,CArBAC,EAAMC,KAAKC,QAAQC,IAAIZ,GACvBS,EAAMC,KAAKG,SAASD,IAAIZ"}
@@ -1,2 +0,0 @@
1
- import{a as e,g as t}from"./core-D_Y2i5wV.js";const{get:r}=Reflect,a=["preventDefault","stopPropagation","stopImmediatePropagation"],n={once:!0};class o{#e;constructor(e){this.#e=e}get(e,t){return"currentTarget"===t?this.#e:((e,t)=>"function"==typeof t?t.bind(e):t)(e,r(e,t))}}const{stringify:s}=JSON,c=(e,t)=>`${e}(code, ${t.join(", ")})`,i=({type:e="py",persistent:r,terminal:i,config:_,serviceWorker:l})=>{const u=r?["globals()","__locals__"]:[i?'{"__terminal__":__terminal__}':"{}","{}"],p=URL.createObjectURL(new Blob([["from pyscript import sync, config",'__message__ = lambda e,v: f"{e.__name__}: {v}"',"__locals__ = {}",'if config["type"] == "py":',"\timport sys","\tdef __error__(_):","\t\tinfo = sys.exc_info()","\t\treturn __message__(info[0], info[1])","else:","\t__error__ = lambda e: __message__(e.__class__, e.value)","def execute(code):",`\ttry: return ${c("exec",u)};`,"\texcept Exception as e: print(__error__(e));","def evaluate(code):",`\ttry: return ${c("eval",u)};`,"\texcept Exception as e: print(__error__(e));","sync.execute = execute","sync.evaluate = evaluate"].join("\n")])),m=t(document.createElement("script"),{type:e,src:p});return m.toggleAttribute("worker",!0),m.toggleAttribute("terminal",!0),i&&m.setAttribute("target",i),_&&m.setAttribute("config","string"==typeof _?_:s(_)),l&&m.setAttribute("service-worker",l),((e,t,r=null)=>new Promise(((s,c)=>{const i=new o(e);if(r.signal){const e=e=>c(new Proxy(e,i));if(r.signal.addEventListener("abort",e,n),r.signal.aborted)return r.signal.dispatchEvent(new Event("abort"))}e.addEventListener(t,(e=>{for(const t of a)r[t]&&e[t]();s(new Proxy(e,i))}),{...r,...n})})))(document.body.appendChild(m),`${e}:done`,{stopPropagation:!0}).then((()=>(URL.revokeObjectURL(p),m)))},_=async e=>{const t=await i(e),{xworker:r,process:a,terminal:n}=t,{execute:o,evaluate:s}=r.sync;return t.remove(),{xworker:r,process:a,terminal:n,execute:o,evaluate:s}};var l=async(t={})=>{let r=await _(t),a=!1;const n=()=>{r&&(r.xworker.terminate(),r.terminal.dispose(),r=null),a=!1},o=async()=>{n(),r=await _(t)},s=t=>async n=>{a&&await o(),a=!0;try{return await r[t](e(n))}catch(e){console.error(e)}finally{a=!1}},c=e=>async()=>{a?await o():r?.terminal[e]()};return{process:s("process"),execute:s("execute"),evaluate:s("evaluate"),clear:c("clear"),reset:c("reset"),kill:n}};export{l as default};
2
- //# sourceMappingURL=donkey--RgkMgKe.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"donkey--RgkMgKe.js","sources":["../node_modules/add-promise-listener/index.js","../src/plugins/donkey.js"],"sourcesContent":["const { defineProperty } = Object;\nconst { get } = Reflect;\n\nconst methods = [\n 'preventDefault',\n 'stopPropagation',\n 'stopImmediatePropagation',\n];\n\nconst once = { once: true };\n\n// avoid event.preventDefault throwing due illegal Proxy invocation\nconst bound = (e, value) => typeof value === 'function' ? value.bind(e) : value;\n\n// traps the `event.currentTarget` to be sure it's available later on\nclass Handler {\n #currentTarget;\n constructor(currentTarget) {\n this.#currentTarget = currentTarget;\n }\n get(e, name) {\n // Did you know? event.currentTarget disappears from events on\n // next tick, which is why this proxy handler needs to exist.\n return name === 'currentTarget' ? this.#currentTarget : bound(e, get(e, name));\n }\n}\n\n/**\n * Add a listener that result as a Promise, fulfilled when the event happens once or rejected if the optional provided signal is aborted.\n * @param {Element} element\n * @param {string} type\n * @param {{ signal?:AbortSignal, capture?:boolean, passive?:boolean, preventDefault?:boolean, stopPropagation?:boolean, stopImmediatePropagation?:boolean }?} options\n * @returns {Promise<Event,Event>}\n */\nexport default (element, type, options = null) => new Promise(\n (resolve, reject) => {\n const handler = new Handler(element);\n if (options.signal) {\n const abort = event => reject(new Proxy(event, handler));\n options.signal.addEventListener('abort', abort, once);\n if (options.signal.aborted)\n return options.signal.dispatchEvent(new Event('abort'));\n }\n element.addEventListener(\n type,\n (event) => {\n for (const method of methods) {\n if (options[method]) event[method]();\n }\n resolve(new Proxy(event, handler));\n },\n { ...options, ...once }\n );\n }\n);\n","import addPromiseListener from \"add-promise-listener\";\nimport { assign, dedent } from \"polyscript/exports\";\n\nconst { stringify } = JSON;\n\nconst invoke = (name, args) => `${name}(code, ${args.join(\", \")})`;\n\nconst donkey = ({\n type = \"py\",\n persistent,\n terminal,\n config,\n serviceWorker,\n}) => {\n const globals = terminal ? '{\"__terminal__\":__terminal__}' : \"{}\";\n const args = persistent ? [\"globals()\", \"__locals__\"] : [globals, \"{}\"];\n\n const src = URL.createObjectURL(\n new Blob([\n [\n // this array is to better minify this code once in production\n \"from pyscript import sync, config\",\n '__message__ = lambda e,v: f\"\\x1b[31m\\x1b[1m{e.__name__}\\x1b[0m: {v}\"',\n \"__locals__ = {}\",\n 'if config[\"type\"] == \"py\":',\n \"\timport sys\",\n \"\tdef __error__(_):\",\n \"\t\tinfo = sys.exc_info()\",\n \"\t\treturn __message__(info[0], info[1])\",\n \"else:\",\n \"\t__error__ = lambda e: __message__(e.__class__, e.value)\",\n \"def execute(code):\",\n `\ttry: return ${invoke(\"exec\", args)};`,\n \"\texcept Exception as e: print(__error__(e));\",\n \"def evaluate(code):\",\n `\ttry: return ${invoke(\"eval\", args)};`,\n \"\texcept Exception as e: print(__error__(e));\",\n \"sync.execute = execute\",\n \"sync.evaluate = evaluate\",\n ].join(\"\\n\"),\n ]),\n );\n\n // create the script that exposes the code to execute or evaluate\n const script = assign(document.createElement(\"script\"), { type, src });\n script.toggleAttribute(\"worker\", true);\n script.toggleAttribute(\"terminal\", true);\n if (terminal) script.setAttribute(\"target\", terminal);\n if (config) {\n script.setAttribute(\n \"config\",\n typeof config === \"string\" ? config : stringify(config),\n );\n }\n if (serviceWorker) script.setAttribute(\"service-worker\", serviceWorker);\n\n return addPromiseListener(\n document.body.appendChild(script),\n `${type}:done`,\n { stopPropagation: true },\n ).then(() => {\n URL.revokeObjectURL(src);\n return script;\n });\n};\n\nconst utils = async (options) => {\n const script = await donkey(options);\n const { xworker, process, terminal } = script;\n const { execute, evaluate } = xworker.sync;\n script.remove();\n return {\n xworker,\n process,\n terminal,\n execute,\n evaluate,\n };\n};\n\nexport default async (options = {}) => {\n let farmer = await utils(options);\n let working = false;\n const kill = () => {\n if (farmer) {\n farmer.xworker.terminate();\n farmer.terminal.dispose();\n farmer = null;\n }\n working = false;\n };\n const reload = async () => {\n kill();\n farmer = await utils(options);\n };\n const asyncTask = (method) => async (code) => {\n // race condition ... a new task has been\n // assigned while the previous one didn't finish\n if (working) await reload();\n working = true;\n try {\n return await farmer[method](dedent(code));\n } catch (e) {\n console.error(e);\n } finally {\n working = false;\n }\n };\n const asyncMethod = (method) => async () => {\n if (working) await reload();\n else farmer?.terminal[method]();\n };\n return {\n process: asyncTask(\"process\"),\n execute: asyncTask(\"execute\"),\n evaluate: asyncTask(\"evaluate\"),\n clear: asyncMethod(\"clear\"),\n reset: asyncMethod(\"reset\"),\n kill,\n };\n};\n"],"names":["get","Reflect","methods","once","Handler","currentTarget","constructor","this","e","name","value","bind","bound","stringify","JSON","invoke","args","join","donkey","type","persistent","terminal","config","serviceWorker","src","URL","createObjectURL","Blob","script","assign","document","createElement","toggleAttribute","setAttribute","element","options","Promise","resolve","reject","handler","signal","abort","event","Proxy","addEventListener","aborted","dispatchEvent","Event","method","addPromiseListener","body","appendChild","stopPropagation","then","revokeObjectURL","utils","async","xworker","process","execute","evaluate","sync","remove","donkey$1","farmer","working","kill","terminate","dispose","reload","asyncTask","code","dedent","console","error","asyncMethod","clear","reset"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,2 +0,0 @@
1
- import{a as e,g as t}from"./core-ZERPM6xU.js";const{get:r}=Reflect,a=["preventDefault","stopPropagation","stopImmediatePropagation"],n={once:!0};class o{#e;constructor(e){this.#e=e}get(e,t){return"currentTarget"===t?this.#e:((e,t)=>"function"==typeof t?t.bind(e):t)(e,r(e,t))}}const{stringify:s}=JSON,c=(e,t)=>`${e}(code, ${t.join(", ")})`,i=({type:e="py",persistent:r,terminal:i,config:_,serviceWorker:l})=>{const u=r?["globals()","__locals__"]:[i?'{"__terminal__":__terminal__}':"{}","{}"],p=URL.createObjectURL(new Blob([["from pyscript import sync, config",'__message__ = lambda e,v: f"{e.__name__}: {v}"',"__locals__ = {}",'if config["type"] == "py":',"\timport sys","\tdef __error__(_):","\t\tinfo = sys.exc_info()","\t\treturn __message__(info[0], info[1])","else:","\t__error__ = lambda e: __message__(e.__class__, e.value)","def execute(code):",`\ttry: return ${c("exec",u)};`,"\texcept Exception as e: print(__error__(e));","def evaluate(code):",`\ttry: return ${c("eval",u)};`,"\texcept Exception as e: print(__error__(e));","sync.execute = execute","sync.evaluate = evaluate"].join("\n")])),m=t(document.createElement("script"),{type:e,src:p});return m.toggleAttribute("worker",!0),m.toggleAttribute("terminal",!0),i&&m.setAttribute("target",i),_&&m.setAttribute("config","string"==typeof _?_:s(_)),l&&m.setAttribute("service-worker",l),((e,t,r=null)=>new Promise((s,c)=>{const i=new o(e);if(r.signal){const e=e=>c(new Proxy(e,i));if(r.signal.addEventListener("abort",e,n),r.signal.aborted)return r.signal.dispatchEvent(new Event("abort"))}e.addEventListener(t,e=>{for(const t of a)r[t]&&e[t]();s(new Proxy(e,i))},{...r,...n})}))(document.body.appendChild(m),`${e}:done`,{stopPropagation:!0}).then(()=>(URL.revokeObjectURL(p),m))},_=async e=>{const t=await i(e),{xworker:r,process:a,terminal:n}=t,{execute:o,evaluate:s}=r.sync;return t.remove(),{xworker:r,process:a,terminal:n,execute:o,evaluate:s}};var l=async(t={})=>{let r=await _(t),a=!1;const n=()=>{r&&(r.xworker.terminate(),r.terminal.dispose(),r=null),a=!1},o=async()=>{n(),r=await _(t)},s=t=>async n=>{a&&await o(),a=!0;try{return await r[t](e(n))}catch(e){console.error(e)}finally{a=!1}},c=e=>async()=>{a?await o():r?.terminal[e]()};return{process:s("process"),execute:s("execute"),evaluate:s("evaluate"),clear:c("clear"),reset:c("reset"),kill:n}};export{l as default};
2
- //# sourceMappingURL=donkey-9sgzITrF.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"donkey-9sgzITrF.js","sources":["../node_modules/add-promise-listener/index.js","../src/plugins/donkey.js"],"sourcesContent":["const { defineProperty } = Object;\nconst { get } = Reflect;\n\nconst methods = [\n 'preventDefault',\n 'stopPropagation',\n 'stopImmediatePropagation',\n];\n\nconst once = { once: true };\n\n// avoid event.preventDefault throwing due illegal Proxy invocation\nconst bound = (e, value) => typeof value === 'function' ? value.bind(e) : value;\n\n// traps the `event.currentTarget` to be sure it's available later on\nclass Handler {\n #currentTarget;\n constructor(currentTarget) {\n this.#currentTarget = currentTarget;\n }\n get(e, name) {\n // Did you know? event.currentTarget disappears from events on\n // next tick, which is why this proxy handler needs to exist.\n return name === 'currentTarget' ? this.#currentTarget : bound(e, get(e, name));\n }\n}\n\n/**\n * Add a listener that result as a Promise, fulfilled when the event happens once or rejected if the optional provided signal is aborted.\n * @param {Element} element\n * @param {string} type\n * @param {{ signal?:AbortSignal, capture?:boolean, passive?:boolean, preventDefault?:boolean, stopPropagation?:boolean, stopImmediatePropagation?:boolean }?} options\n * @returns {Promise<Event,Event>}\n */\nexport default (element, type, options = null) => new Promise(\n (resolve, reject) => {\n const handler = new Handler(element);\n if (options.signal) {\n const abort = event => reject(new Proxy(event, handler));\n options.signal.addEventListener('abort', abort, once);\n if (options.signal.aborted)\n return options.signal.dispatchEvent(new Event('abort'));\n }\n element.addEventListener(\n type,\n (event) => {\n for (const method of methods) {\n if (options[method]) event[method]();\n }\n resolve(new Proxy(event, handler));\n },\n { ...options, ...once }\n );\n }\n);\n","import addPromiseListener from \"add-promise-listener\";\nimport { assign, dedent } from \"polyscript/exports\";\n\nconst { stringify } = JSON;\n\nconst invoke = (name, args) => `${name}(code, ${args.join(\", \")})`;\n\nconst donkey = ({\n type = \"py\",\n persistent,\n terminal,\n config,\n serviceWorker,\n}) => {\n const globals = terminal ? '{\"__terminal__\":__terminal__}' : \"{}\";\n const args = persistent ? [\"globals()\", \"__locals__\"] : [globals, \"{}\"];\n\n const src = URL.createObjectURL(\n new Blob([\n [\n // this array is to better minify this code once in production\n \"from pyscript import sync, config\",\n '__message__ = lambda e,v: f\"\\x1b[31m\\x1b[1m{e.__name__}\\x1b[0m: {v}\"',\n \"__locals__ = {}\",\n 'if config[\"type\"] == \"py\":',\n \"\timport sys\",\n \"\tdef __error__(_):\",\n \"\t\tinfo = sys.exc_info()\",\n \"\t\treturn __message__(info[0], info[1])\",\n \"else:\",\n \"\t__error__ = lambda e: __message__(e.__class__, e.value)\",\n \"def execute(code):\",\n `\ttry: return ${invoke(\"exec\", args)};`,\n \"\texcept Exception as e: print(__error__(e));\",\n \"def evaluate(code):\",\n `\ttry: return ${invoke(\"eval\", args)};`,\n \"\texcept Exception as e: print(__error__(e));\",\n \"sync.execute = execute\",\n \"sync.evaluate = evaluate\",\n ].join(\"\\n\"),\n ]),\n );\n\n // create the script that exposes the code to execute or evaluate\n const script = assign(document.createElement(\"script\"), { type, src });\n script.toggleAttribute(\"worker\", true);\n script.toggleAttribute(\"terminal\", true);\n if (terminal) script.setAttribute(\"target\", terminal);\n if (config) {\n script.setAttribute(\n \"config\",\n typeof config === \"string\" ? config : stringify(config),\n );\n }\n if (serviceWorker) script.setAttribute(\"service-worker\", serviceWorker);\n\n return addPromiseListener(\n document.body.appendChild(script),\n `${type}:done`,\n { stopPropagation: true },\n ).then(() => {\n URL.revokeObjectURL(src);\n return script;\n });\n};\n\nconst utils = async (options) => {\n const script = await donkey(options);\n const { xworker, process, terminal } = script;\n const { execute, evaluate } = xworker.sync;\n script.remove();\n return {\n xworker,\n process,\n terminal,\n execute,\n evaluate,\n };\n};\n\nexport default async (options = {}) => {\n let farmer = await utils(options);\n let working = false;\n const kill = () => {\n if (farmer) {\n farmer.xworker.terminate();\n farmer.terminal.dispose();\n farmer = null;\n }\n working = false;\n };\n const reload = async () => {\n kill();\n farmer = await utils(options);\n };\n const asyncTask = (method) => async (code) => {\n // race condition ... a new task has been\n // assigned while the previous one didn't finish\n if (working) await reload();\n working = true;\n try {\n return await farmer[method](dedent(code));\n } catch (e) {\n console.error(e);\n } finally {\n working = false;\n }\n };\n const asyncMethod = (method) => async () => {\n if (working) await reload();\n else farmer?.terminal[method]();\n };\n return {\n process: asyncTask(\"process\"),\n execute: asyncTask(\"execute\"),\n evaluate: asyncTask(\"evaluate\"),\n clear: asyncMethod(\"clear\"),\n reset: asyncMethod(\"reset\"),\n kill,\n };\n};\n"],"names":["get","Reflect","methods","once","Handler","currentTarget","constructor","this","e","name","value","bind","bound","stringify","JSON","invoke","args","join","donkey","type","persistent","terminal","config","serviceWorker","src","URL","createObjectURL","Blob","script","assign","document","createElement","toggleAttribute","setAttribute","element","options","Promise","resolve","reject","handler","signal","abort","event","Proxy","addEventListener","aborted","dispatchEvent","Event","method","addPromiseListener","body","appendChild","stopPropagation","then","revokeObjectURL","utils","async","xworker","process","execute","evaluate","sync","remove","donkey$1","farmer","working","kill","terminate","dispose","reload","asyncTask","code","dedent","console","error","asyncMethod","clear","reset"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,2 +0,0 @@
1
- import{a as e,g as t}from"./core-DezwbZpG.js";const{get:r}=Reflect,a=["preventDefault","stopPropagation","stopImmediatePropagation"],n={once:!0};class o{#e;constructor(e){this.#e=e}get(e,t){return"currentTarget"===t?this.#e:((e,t)=>"function"==typeof t?t.bind(e):t)(e,r(e,t))}}const{stringify:s}=JSON,c=(e,t)=>`${e}(code, ${t.join(", ")})`,i=({type:e="py",persistent:r,terminal:i,config:_,serviceWorker:l})=>{const u=r?["globals()","__locals__"]:[i?'{"__terminal__":__terminal__}':"{}","{}"],p=URL.createObjectURL(new Blob([["from pyscript import sync, config",'__message__ = lambda e,v: f"{e.__name__}: {v}"',"__locals__ = {}",'if config["type"] == "py":',"\timport sys","\tdef __error__(_):","\t\tinfo = sys.exc_info()","\t\treturn __message__(info[0], info[1])","else:","\t__error__ = lambda e: __message__(e.__class__, e.value)","def execute(code):",`\ttry: return ${c("exec",u)};`,"\texcept Exception as e: print(__error__(e));","def evaluate(code):",`\ttry: return ${c("eval",u)};`,"\texcept Exception as e: print(__error__(e));","sync.execute = execute","sync.evaluate = evaluate"].join("\n")])),m=t(document.createElement("script"),{type:e,src:p});return m.toggleAttribute("worker",!0),m.toggleAttribute("terminal",!0),i&&m.setAttribute("target",i),_&&m.setAttribute("config","string"==typeof _?_:s(_)),l&&m.setAttribute("service-worker",l),((e,t,r=null)=>new Promise(((s,c)=>{const i=new o(e);if(r.signal){const e=e=>c(new Proxy(e,i));if(r.signal.addEventListener("abort",e,n),r.signal.aborted)return r.signal.dispatchEvent(new Event("abort"))}e.addEventListener(t,(e=>{for(const t of a)r[t]&&e[t]();s(new Proxy(e,i))}),{...r,...n})})))(document.body.appendChild(m),`${e}:done`,{stopPropagation:!0}).then((()=>(URL.revokeObjectURL(p),m)))},_=async e=>{const t=await i(e),{xworker:r,process:a,terminal:n}=t,{execute:o,evaluate:s}=r.sync;return t.remove(),{xworker:r,process:a,terminal:n,execute:o,evaluate:s}};var l=async(t={})=>{let r=await _(t),a=!1;const n=()=>{r&&(r.xworker.terminate(),r.terminal.dispose(),r=null),a=!1},o=async()=>{n(),r=await _(t)},s=t=>async n=>{a&&await o(),a=!0;try{return await r[t](e(n))}catch(e){console.error(e)}finally{a=!1}},c=e=>async()=>{a?await o():r?.terminal[e]()};return{process:s("process"),execute:s("execute"),evaluate:s("evaluate"),clear:c("clear"),reset:c("reset"),kill:n}};export{l as default};
2
- //# sourceMappingURL=donkey-DNl0ASkM.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"donkey-DNl0ASkM.js","sources":["../node_modules/add-promise-listener/index.js","../src/plugins/donkey.js"],"sourcesContent":["const { defineProperty } = Object;\nconst { get } = Reflect;\n\nconst methods = [\n 'preventDefault',\n 'stopPropagation',\n 'stopImmediatePropagation',\n];\n\nconst once = { once: true };\n\n// avoid event.preventDefault throwing due illegal Proxy invocation\nconst bound = (e, value) => typeof value === 'function' ? value.bind(e) : value;\n\n// traps the `event.currentTarget` to be sure it's available later on\nclass Handler {\n #currentTarget;\n constructor(currentTarget) {\n this.#currentTarget = currentTarget;\n }\n get(e, name) {\n // Did you know? event.currentTarget disappears from events on\n // next tick, which is why this proxy handler needs to exist.\n return name === 'currentTarget' ? this.#currentTarget : bound(e, get(e, name));\n }\n}\n\n/**\n * Add a listener that result as a Promise, fulfilled when the event happens once or rejected if the optional provided signal is aborted.\n * @param {Element} element\n * @param {string} type\n * @param {{ signal?:AbortSignal, capture?:boolean, passive?:boolean, preventDefault?:boolean, stopPropagation?:boolean, stopImmediatePropagation?:boolean }?} options\n * @returns {Promise<Event,Event>}\n */\nexport default (element, type, options = null) => new Promise(\n (resolve, reject) => {\n const handler = new Handler(element);\n if (options.signal) {\n const abort = event => reject(new Proxy(event, handler));\n options.signal.addEventListener('abort', abort, once);\n if (options.signal.aborted)\n return options.signal.dispatchEvent(new Event('abort'));\n }\n element.addEventListener(\n type,\n (event) => {\n for (const method of methods) {\n if (options[method]) event[method]();\n }\n resolve(new Proxy(event, handler));\n },\n { ...options, ...once }\n );\n }\n);\n","import addPromiseListener from \"add-promise-listener\";\nimport { assign, dedent } from \"polyscript/exports\";\n\nconst { stringify } = JSON;\n\nconst invoke = (name, args) => `${name}(code, ${args.join(\", \")})`;\n\nconst donkey = ({\n type = \"py\",\n persistent,\n terminal,\n config,\n serviceWorker,\n}) => {\n const globals = terminal ? '{\"__terminal__\":__terminal__}' : \"{}\";\n const args = persistent ? [\"globals()\", \"__locals__\"] : [globals, \"{}\"];\n\n const src = URL.createObjectURL(\n new Blob([\n [\n // this array is to better minify this code once in production\n \"from pyscript import sync, config\",\n '__message__ = lambda e,v: f\"\\x1b[31m\\x1b[1m{e.__name__}\\x1b[0m: {v}\"',\n \"__locals__ = {}\",\n 'if config[\"type\"] == \"py\":',\n \"\timport sys\",\n \"\tdef __error__(_):\",\n \"\t\tinfo = sys.exc_info()\",\n \"\t\treturn __message__(info[0], info[1])\",\n \"else:\",\n \"\t__error__ = lambda e: __message__(e.__class__, e.value)\",\n \"def execute(code):\",\n `\ttry: return ${invoke(\"exec\", args)};`,\n \"\texcept Exception as e: print(__error__(e));\",\n \"def evaluate(code):\",\n `\ttry: return ${invoke(\"eval\", args)};`,\n \"\texcept Exception as e: print(__error__(e));\",\n \"sync.execute = execute\",\n \"sync.evaluate = evaluate\",\n ].join(\"\\n\"),\n ]),\n );\n\n // create the script that exposes the code to execute or evaluate\n const script = assign(document.createElement(\"script\"), { type, src });\n script.toggleAttribute(\"worker\", true);\n script.toggleAttribute(\"terminal\", true);\n if (terminal) script.setAttribute(\"target\", terminal);\n if (config) {\n script.setAttribute(\n \"config\",\n typeof config === \"string\" ? config : stringify(config),\n );\n }\n if (serviceWorker) script.setAttribute(\"service-worker\", serviceWorker);\n\n return addPromiseListener(\n document.body.appendChild(script),\n `${type}:done`,\n { stopPropagation: true },\n ).then(() => {\n URL.revokeObjectURL(src);\n return script;\n });\n};\n\nconst utils = async (options) => {\n const script = await donkey(options);\n const { xworker, process, terminal } = script;\n const { execute, evaluate } = xworker.sync;\n script.remove();\n return {\n xworker,\n process,\n terminal,\n execute,\n evaluate,\n };\n};\n\nexport default async (options = {}) => {\n let farmer = await utils(options);\n let working = false;\n const kill = () => {\n if (farmer) {\n farmer.xworker.terminate();\n farmer.terminal.dispose();\n farmer = null;\n }\n working = false;\n };\n const reload = async () => {\n kill();\n farmer = await utils(options);\n };\n const asyncTask = (method) => async (code) => {\n // race condition ... a new task has been\n // assigned while the previous one didn't finish\n if (working) await reload();\n working = true;\n try {\n return await farmer[method](dedent(code));\n } catch (e) {\n console.error(e);\n } finally {\n working = false;\n }\n };\n const asyncMethod = (method) => async () => {\n if (working) await reload();\n else farmer?.terminal[method]();\n };\n return {\n process: asyncTask(\"process\"),\n execute: asyncTask(\"execute\"),\n evaluate: asyncTask(\"evaluate\"),\n clear: asyncMethod(\"clear\"),\n reset: asyncMethod(\"reset\"),\n kill,\n };\n};\n"],"names":["get","Reflect","methods","once","Handler","currentTarget","constructor","this","e","name","value","bind","bound","stringify","JSON","invoke","args","join","donkey","type","persistent","terminal","config","serviceWorker","src","URL","createObjectURL","Blob","script","assign","document","createElement","toggleAttribute","setAttribute","element","options","Promise","resolve","reject","handler","signal","abort","event","Proxy","addEventListener","aborted","dispatchEvent","Event","method","addPromiseListener","body","appendChild","stopPropagation","then","revokeObjectURL","utils","async","xworker","process","execute","evaluate","sync","remove","donkey$1","farmer","working","kill","terminate","dispose","reload","asyncTask","code","dedent","console","error","asyncMethod","clear","reset"],"mappings":"8CACA,MAAMA,IAAEA,GAAQC,QAEVC,EAAU,CACd,iBACA,kBACA,4BAGIC,EAAO,CAAEA,MAAM,GAMrB,MAAMC,EACJC,GACA,WAAAC,CAAYD,GACVE,MAAKF,EAAiBA,CAC1B,CACE,GAAAL,CAAIQ,EAAGC,GAGL,MAAgB,kBAATA,EAA2BF,MAAKF,EAX7B,EAACG,EAAGE,IAA2B,mBAAVA,EAAuBA,EAAMC,KAAKH,GAAKE,EAWdE,CAAMJ,EAAGR,EAAIQ,EAAGC,GAC5E,ECrBA,MAAMI,UAAEA,GAAcC,KAEhBC,EAAS,CAACN,EAAMO,IAAS,GAAGP,WAAcO,EAAKC,KAAK,SAEpDC,EAAS,EACXC,OAAO,KACPC,aACAC,WACAC,SACAC,oBAEA,MACMP,EAAOI,EAAa,CAAC,YAAa,cAAgB,CADxCC,EAAW,gCAAkC,KACK,MAE5DG,EAAMC,IAAIC,gBACZ,IAAIC,KAAK,CACL,CAEI,oCACA,8DACA,kBACA,6BACA,eACA,sBACA,4BACA,2CACA,QACA,4DACA,qBACA,iBAAgBZ,EAAO,OAAQC,MAC/B,gDACA,sBACA,iBAAgBD,EAAO,OAAQC,MAC/B,gDACA,yBACA,4BACFC,KAAK,SAKTW,EAASC,EAAOC,SAASC,cAAc,UAAW,CAAEZ,OAAMK,QAYhE,OAXAI,EAAOI,gBAAgB,UAAU,GACjCJ,EAAOI,gBAAgB,YAAY,GAC/BX,GAAUO,EAAOK,aAAa,SAAUZ,GACxCC,GACAM,EAAOK,aACH,SACkB,iBAAXX,EAAsBA,EAAST,EAAUS,IAGpDC,GAAeK,EAAOK,aAAa,iBAAkBV,GDpB9C,EAACW,EAASf,EAAMgB,EAAU,OAAS,IAAIC,SACpD,CAACC,EAASC,KACR,MAAMC,EAAU,IAAInC,EAAQ8B,GAC5B,GAAIC,EAAQK,OAAQ,CAClB,MAAMC,EAAQC,GAASJ,EAAO,IAAIK,MAAMD,EAAOH,IAE/C,GADAJ,EAAQK,OAAOI,iBAAiB,QAASH,EAAOtC,GAC5CgC,EAAQK,OAAOK,QACjB,OAAOV,EAAQK,OAAOM,cAAc,IAAIC,MAAM,SACtD,CACIb,EAAQU,iBACNzB,GACCuB,IACC,IAAK,MAAMM,KAAU9C,EACfiC,EAAQa,IAASN,EAAMM,KAE7BX,EAAQ,IAAIM,MAAMD,EAAOH,GAAS,GAEpC,IAAKJ,KAAYhC,GAClB,ICIM8C,CACHnB,SAASoB,KAAKC,YAAYvB,GAC1B,GAAGT,SACH,CAAEiC,iBAAiB,IACrBC,MAAK,KACH5B,IAAI6B,gBAAgB9B,GACbI,IACT,EAGA2B,EAAQC,MAAOrB,IACjB,MAAMP,QAAeV,EAAOiB,IACtBsB,QAAEA,EAAOC,QAAEA,EAAOrC,SAAEA,GAAaO,GACjC+B,QAAEA,EAAOC,SAAEA,GAAaH,EAAQI,KAEtC,OADAjC,EAAOkC,SACA,CACHL,UACAC,UACArC,WACAsC,UACAC,WACH,EAGL,IAAAG,EAAeP,MAAOrB,EAAU,CAAA,KAC5B,IAAI6B,QAAeT,EAAMpB,GACrB8B,GAAU,EACd,MAAMC,EAAO,KACLF,IACAA,EAAOP,QAAQU,YACfH,EAAO3C,SAAS+C,UAChBJ,EAAS,MAEbC,GAAU,CAAK,EAEbI,EAASb,UACXU,IACAF,QAAeT,EAAMpB,EAAQ,EAE3BmC,EAAatB,GAAWQ,MAAOe,IAG7BN,SAAeI,IACnBJ,GAAU,EACV,IACI,aAAaD,EAAOhB,GAAQwB,EAAOD,GACtC,CAAC,MAAO/D,GACLiE,QAAQC,MAAMlE,EAC1B,CAAkB,QACNyD,GAAU,CACtB,GAEUU,EAAe3B,GAAWQ,UACxBS,QAAeI,IACdL,GAAQ3C,SAAS2B,IAAS,EAEnC,MAAO,CACHU,QAASY,EAAU,WACnBX,QAASW,EAAU,WACnBV,SAAUU,EAAU,YACpBM,MAAOD,EAAY,SACnBE,MAAOF,EAAY,SACnBT,OACH","x_google_ignoreList":[0]}
@@ -1,2 +0,0 @@
1
- import{a as e,g as t}from"./core-3crqT3rt.js";const{get:r}=Reflect,a=["preventDefault","stopPropagation","stopImmediatePropagation"],n={once:!0};class o{#e;constructor(e){this.#e=e}get(e,t){return"currentTarget"===t?this.#e:((e,t)=>"function"==typeof t?t.bind(e):t)(e,r(e,t))}}const{stringify:s}=JSON,c=(e,t)=>`${e}(code, ${t.join(", ")})`,i=({type:e="py",persistent:r,terminal:i,config:_,serviceWorker:l})=>{const u=r?["globals()","__locals__"]:[i?'{"__terminal__":__terminal__}':"{}","{}"],p=URL.createObjectURL(new Blob([["from pyscript import sync, config",'__message__ = lambda e,v: f"{e.__name__}: {v}"',"__locals__ = {}",'if config["type"] == "py":',"\timport sys","\tdef __error__(_):","\t\tinfo = sys.exc_info()","\t\treturn __message__(info[0], info[1])","else:","\t__error__ = lambda e: __message__(e.__class__, e.value)","def execute(code):",`\ttry: return ${c("exec",u)};`,"\texcept Exception as e: print(__error__(e));","def evaluate(code):",`\ttry: return ${c("eval",u)};`,"\texcept Exception as e: print(__error__(e));","sync.execute = execute","sync.evaluate = evaluate"].join("\n")])),m=t(document.createElement("script"),{type:e,src:p});return m.toggleAttribute("worker",!0),m.toggleAttribute("terminal",!0),i&&m.setAttribute("target",i),_&&m.setAttribute("config","string"==typeof _?_:s(_)),l&&m.setAttribute("service-worker",l),((e,t,r=null)=>new Promise((s,c)=>{const i=new o(e);if(r.signal){const e=e=>c(new Proxy(e,i));if(r.signal.addEventListener("abort",e,n),r.signal.aborted)return r.signal.dispatchEvent(new Event("abort"))}e.addEventListener(t,e=>{for(const t of a)r[t]&&e[t]();s(new Proxy(e,i))},{...r,...n})}))(document.body.appendChild(m),`${e}:done`,{stopPropagation:!0}).then(()=>(URL.revokeObjectURL(p),m))},_=async e=>{const t=await i(e),{xworker:r,process:a,terminal:n}=t,{execute:o,evaluate:s}=r.sync;return t.remove(),{xworker:r,process:a,terminal:n,execute:o,evaluate:s}};var l=async(t={})=>{let r=await _(t),a=!1;const n=()=>{r&&(r.xworker.terminate(),r.terminal.dispose(),r=null),a=!1},o=async()=>{n(),r=await _(t)},s=t=>async n=>{a&&await o(),a=!0;try{return await r[t](e(n))}catch(e){console.error(e)}finally{a=!1}},c=e=>async()=>{a?await o():r?.terminal[e]()};return{process:s("process"),execute:s("execute"),evaluate:s("evaluate"),clear:c("clear"),reset:c("reset"),kill:n}};export{l as default};
2
- //# sourceMappingURL=donkey-Dh8cjx4z.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"donkey-Dh8cjx4z.js","sources":["../node_modules/add-promise-listener/index.js","../src/plugins/donkey.js"],"sourcesContent":["const { defineProperty } = Object;\nconst { get } = Reflect;\n\nconst methods = [\n 'preventDefault',\n 'stopPropagation',\n 'stopImmediatePropagation',\n];\n\nconst once = { once: true };\n\n// avoid event.preventDefault throwing due illegal Proxy invocation\nconst bound = (e, value) => typeof value === 'function' ? value.bind(e) : value;\n\n// traps the `event.currentTarget` to be sure it's available later on\nclass Handler {\n #currentTarget;\n constructor(currentTarget) {\n this.#currentTarget = currentTarget;\n }\n get(e, name) {\n // Did you know? event.currentTarget disappears from events on\n // next tick, which is why this proxy handler needs to exist.\n return name === 'currentTarget' ? this.#currentTarget : bound(e, get(e, name));\n }\n}\n\n/**\n * Add a listener that result as a Promise, fulfilled when the event happens once or rejected if the optional provided signal is aborted.\n * @param {Element} element\n * @param {string} type\n * @param {{ signal?:AbortSignal, capture?:boolean, passive?:boolean, preventDefault?:boolean, stopPropagation?:boolean, stopImmediatePropagation?:boolean }?} options\n * @returns {Promise<Event,Event>}\n */\nexport default (element, type, options = null) => new Promise(\n (resolve, reject) => {\n const handler = new Handler(element);\n if (options.signal) {\n const abort = event => reject(new Proxy(event, handler));\n options.signal.addEventListener('abort', abort, once);\n if (options.signal.aborted)\n return options.signal.dispatchEvent(new Event('abort'));\n }\n element.addEventListener(\n type,\n (event) => {\n for (const method of methods) {\n if (options[method]) event[method]();\n }\n resolve(new Proxy(event, handler));\n },\n { ...options, ...once }\n );\n }\n);\n","import addPromiseListener from \"add-promise-listener\";\nimport { assign, dedent } from \"polyscript/exports\";\n\nconst { stringify } = JSON;\n\nconst invoke = (name, args) => `${name}(code, ${args.join(\", \")})`;\n\nconst donkey = ({\n type = \"py\",\n persistent,\n terminal,\n config,\n serviceWorker,\n}) => {\n const globals = terminal ? '{\"__terminal__\":__terminal__}' : \"{}\";\n const args = persistent ? [\"globals()\", \"__locals__\"] : [globals, \"{}\"];\n\n const src = URL.createObjectURL(\n new Blob([\n [\n // this array is to better minify this code once in production\n \"from pyscript import sync, config\",\n '__message__ = lambda e,v: f\"\\x1b[31m\\x1b[1m{e.__name__}\\x1b[0m: {v}\"',\n \"__locals__ = {}\",\n 'if config[\"type\"] == \"py\":',\n \"\timport sys\",\n \"\tdef __error__(_):\",\n \"\t\tinfo = sys.exc_info()\",\n \"\t\treturn __message__(info[0], info[1])\",\n \"else:\",\n \"\t__error__ = lambda e: __message__(e.__class__, e.value)\",\n \"def execute(code):\",\n `\ttry: return ${invoke(\"exec\", args)};`,\n \"\texcept Exception as e: print(__error__(e));\",\n \"def evaluate(code):\",\n `\ttry: return ${invoke(\"eval\", args)};`,\n \"\texcept Exception as e: print(__error__(e));\",\n \"sync.execute = execute\",\n \"sync.evaluate = evaluate\",\n ].join(\"\\n\"),\n ]),\n );\n\n // create the script that exposes the code to execute or evaluate\n const script = assign(document.createElement(\"script\"), { type, src });\n script.toggleAttribute(\"worker\", true);\n script.toggleAttribute(\"terminal\", true);\n if (terminal) script.setAttribute(\"target\", terminal);\n if (config) {\n script.setAttribute(\n \"config\",\n typeof config === \"string\" ? config : stringify(config),\n );\n }\n if (serviceWorker) script.setAttribute(\"service-worker\", serviceWorker);\n\n return addPromiseListener(\n document.body.appendChild(script),\n `${type}:done`,\n { stopPropagation: true },\n ).then(() => {\n URL.revokeObjectURL(src);\n return script;\n });\n};\n\nconst utils = async (options) => {\n const script = await donkey(options);\n const { xworker, process, terminal } = script;\n const { execute, evaluate } = xworker.sync;\n script.remove();\n return {\n xworker,\n process,\n terminal,\n execute,\n evaluate,\n };\n};\n\nexport default async (options = {}) => {\n let farmer = await utils(options);\n let working = false;\n const kill = () => {\n if (farmer) {\n farmer.xworker.terminate();\n farmer.terminal.dispose();\n farmer = null;\n }\n working = false;\n };\n const reload = async () => {\n kill();\n farmer = await utils(options);\n };\n const asyncTask = (method) => async (code) => {\n // race condition ... a new task has been\n // assigned while the previous one didn't finish\n if (working) await reload();\n working = true;\n try {\n return await farmer[method](dedent(code));\n } catch (e) {\n console.error(e);\n } finally {\n working = false;\n }\n };\n const asyncMethod = (method) => async () => {\n if (working) await reload();\n else farmer?.terminal[method]();\n };\n return {\n process: asyncTask(\"process\"),\n execute: asyncTask(\"execute\"),\n evaluate: asyncTask(\"evaluate\"),\n clear: asyncMethod(\"clear\"),\n reset: asyncMethod(\"reset\"),\n kill,\n };\n};\n"],"names":["get","Reflect","methods","once","Handler","currentTarget","constructor","this","e","name","value","bind","bound","stringify","JSON","invoke","args","join","donkey","type","persistent","terminal","config","serviceWorker","src","URL","createObjectURL","Blob","script","assign","document","createElement","toggleAttribute","setAttribute","element","options","Promise","resolve","reject","handler","signal","abort","event","Proxy","addEventListener","aborted","dispatchEvent","Event","method","addPromiseListener","body","appendChild","stopPropagation","then","revokeObjectURL","utils","async","xworker","process","execute","evaluate","sync","remove","donkey$1","farmer","working","kill","terminate","dispose","reload","asyncTask","code","dedent","console","error","asyncMethod","clear","reset"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,2 +0,0 @@
1
- import{a as e,g as t}from"./core-BAg8axiz.js";const{get:r}=Reflect,a=["preventDefault","stopPropagation","stopImmediatePropagation"],n={once:!0};class o{#e;constructor(e){this.#e=e}get(e,t){return"currentTarget"===t?this.#e:((e,t)=>"function"==typeof t?t.bind(e):t)(e,r(e,t))}}const{stringify:s}=JSON,c=(e,t)=>`${e}(code, ${t.join(", ")})`,i=({type:e="py",persistent:r,terminal:i,config:_,serviceWorker:l})=>{const u=r?["globals()","__locals__"]:[i?'{"__terminal__":__terminal__}':"{}","{}"],p=URL.createObjectURL(new Blob([["from pyscript import sync, config",'__message__ = lambda e,v: f"{e.__name__}: {v}"',"__locals__ = {}",'if config["type"] == "py":',"\timport sys","\tdef __error__(_):","\t\tinfo = sys.exc_info()","\t\treturn __message__(info[0], info[1])","else:","\t__error__ = lambda e: __message__(e.__class__, e.value)","def execute(code):",`\ttry: return ${c("exec",u)};`,"\texcept Exception as e: print(__error__(e));","def evaluate(code):",`\ttry: return ${c("eval",u)};`,"\texcept Exception as e: print(__error__(e));","sync.execute = execute","sync.evaluate = evaluate"].join("\n")])),m=t(document.createElement("script"),{type:e,src:p});return m.toggleAttribute("worker",!0),m.toggleAttribute("terminal",!0),i&&m.setAttribute("target",i),_&&m.setAttribute("config","string"==typeof _?_:s(_)),l&&m.setAttribute("service-worker",l),((e,t,r=null)=>new Promise((s,c)=>{const i=new o(e);if(r.signal){const e=e=>c(new Proxy(e,i));if(r.signal.addEventListener("abort",e,n),r.signal.aborted)return r.signal.dispatchEvent(new Event("abort"))}e.addEventListener(t,e=>{for(const t of a)r[t]&&e[t]();s(new Proxy(e,i))},{...r,...n})}))(document.body.appendChild(m),`${e}:done`,{stopPropagation:!0}).then(()=>(URL.revokeObjectURL(p),m))},_=async e=>{const t=await i(e),{xworker:r,process:a,terminal:n}=t,{execute:o,evaluate:s}=r.sync;return t.remove(),{xworker:r,process:a,terminal:n,execute:o,evaluate:s}};var l=async(t={})=>{let r=await _(t),a=!1;const n=()=>{r&&(r.xworker.terminate(),r.terminal.dispose(),r=null),a=!1},o=async()=>{n(),r=await _(t)},s=t=>async n=>{a&&await o(),a=!0;try{return await r[t](e(n))}catch(e){console.error(e)}finally{a=!1}},c=e=>async()=>{a?await o():r?.terminal[e]()};return{process:s("process"),execute:s("execute"),evaluate:s("evaluate"),clear:c("clear"),reset:c("reset"),kill:n}};export{l as default};
2
- //# sourceMappingURL=donkey-DvYy_z4S.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"donkey-DvYy_z4S.js","sources":["../node_modules/add-promise-listener/index.js","../src/plugins/donkey.js"],"sourcesContent":["const { defineProperty } = Object;\nconst { get } = Reflect;\n\nconst methods = [\n 'preventDefault',\n 'stopPropagation',\n 'stopImmediatePropagation',\n];\n\nconst once = { once: true };\n\n// avoid event.preventDefault throwing due illegal Proxy invocation\nconst bound = (e, value) => typeof value === 'function' ? value.bind(e) : value;\n\n// traps the `event.currentTarget` to be sure it's available later on\nclass Handler {\n #currentTarget;\n constructor(currentTarget) {\n this.#currentTarget = currentTarget;\n }\n get(e, name) {\n // Did you know? event.currentTarget disappears from events on\n // next tick, which is why this proxy handler needs to exist.\n return name === 'currentTarget' ? this.#currentTarget : bound(e, get(e, name));\n }\n}\n\n/**\n * Add a listener that result as a Promise, fulfilled when the event happens once or rejected if the optional provided signal is aborted.\n * @param {Element} element\n * @param {string} type\n * @param {{ signal?:AbortSignal, capture?:boolean, passive?:boolean, preventDefault?:boolean, stopPropagation?:boolean, stopImmediatePropagation?:boolean }?} options\n * @returns {Promise<Event,Event>}\n */\nexport default (element, type, options = null) => new Promise(\n (resolve, reject) => {\n const handler = new Handler(element);\n if (options.signal) {\n const abort = event => reject(new Proxy(event, handler));\n options.signal.addEventListener('abort', abort, once);\n if (options.signal.aborted)\n return options.signal.dispatchEvent(new Event('abort'));\n }\n element.addEventListener(\n type,\n (event) => {\n for (const method of methods) {\n if (options[method]) event[method]();\n }\n resolve(new Proxy(event, handler));\n },\n { ...options, ...once }\n );\n }\n);\n","import addPromiseListener from \"add-promise-listener\";\nimport { assign, dedent } from \"polyscript/exports\";\n\nconst { stringify } = JSON;\n\nconst invoke = (name, args) => `${name}(code, ${args.join(\", \")})`;\n\nconst donkey = ({\n type = \"py\",\n persistent,\n terminal,\n config,\n serviceWorker,\n}) => {\n const globals = terminal ? '{\"__terminal__\":__terminal__}' : \"{}\";\n const args = persistent ? [\"globals()\", \"__locals__\"] : [globals, \"{}\"];\n\n const src = URL.createObjectURL(\n new Blob([\n [\n // this array is to better minify this code once in production\n \"from pyscript import sync, config\",\n '__message__ = lambda e,v: f\"\\x1b[31m\\x1b[1m{e.__name__}\\x1b[0m: {v}\"',\n \"__locals__ = {}\",\n 'if config[\"type\"] == \"py\":',\n \"\timport sys\",\n \"\tdef __error__(_):\",\n \"\t\tinfo = sys.exc_info()\",\n \"\t\treturn __message__(info[0], info[1])\",\n \"else:\",\n \"\t__error__ = lambda e: __message__(e.__class__, e.value)\",\n \"def execute(code):\",\n `\ttry: return ${invoke(\"exec\", args)};`,\n \"\texcept Exception as e: print(__error__(e));\",\n \"def evaluate(code):\",\n `\ttry: return ${invoke(\"eval\", args)};`,\n \"\texcept Exception as e: print(__error__(e));\",\n \"sync.execute = execute\",\n \"sync.evaluate = evaluate\",\n ].join(\"\\n\"),\n ]),\n );\n\n // create the script that exposes the code to execute or evaluate\n const script = assign(document.createElement(\"script\"), { type, src });\n script.toggleAttribute(\"worker\", true);\n script.toggleAttribute(\"terminal\", true);\n if (terminal) script.setAttribute(\"target\", terminal);\n if (config) {\n script.setAttribute(\n \"config\",\n typeof config === \"string\" ? config : stringify(config),\n );\n }\n if (serviceWorker) script.setAttribute(\"service-worker\", serviceWorker);\n\n return addPromiseListener(\n document.body.appendChild(script),\n `${type}:done`,\n { stopPropagation: true },\n ).then(() => {\n URL.revokeObjectURL(src);\n return script;\n });\n};\n\nconst utils = async (options) => {\n const script = await donkey(options);\n const { xworker, process, terminal } = script;\n const { execute, evaluate } = xworker.sync;\n script.remove();\n return {\n xworker,\n process,\n terminal,\n execute,\n evaluate,\n };\n};\n\nexport default async (options = {}) => {\n let farmer = await utils(options);\n let working = false;\n const kill = () => {\n if (farmer) {\n farmer.xworker.terminate();\n farmer.terminal.dispose();\n farmer = null;\n }\n working = false;\n };\n const reload = async () => {\n kill();\n farmer = await utils(options);\n };\n const asyncTask = (method) => async (code) => {\n // race condition ... a new task has been\n // assigned while the previous one didn't finish\n if (working) await reload();\n working = true;\n try {\n return await farmer[method](dedent(code));\n } catch (e) {\n console.error(e);\n } finally {\n working = false;\n }\n };\n const asyncMethod = (method) => async () => {\n if (working) await reload();\n else farmer?.terminal[method]();\n };\n return {\n process: asyncTask(\"process\"),\n execute: asyncTask(\"execute\"),\n evaluate: asyncTask(\"evaluate\"),\n clear: asyncMethod(\"clear\"),\n reset: asyncMethod(\"reset\"),\n kill,\n };\n};\n"],"names":["get","Reflect","methods","once","Handler","currentTarget","constructor","this","e","name","value","bind","bound","stringify","JSON","invoke","args","join","donkey","type","persistent","terminal","config","serviceWorker","src","URL","createObjectURL","Blob","script","assign","document","createElement","toggleAttribute","setAttribute","element","options","Promise","resolve","reject","handler","signal","abort","event","Proxy","addEventListener","aborted","dispatchEvent","Event","method","addPromiseListener","body","appendChild","stopPropagation","then","revokeObjectURL","utils","async","xworker","process","execute","evaluate","sync","remove","donkey$1","farmer","working","kill","terminate","dispose","reload","asyncTask","code","dedent","console","error","asyncMethod","clear","reset"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,2 +0,0 @@
1
- import{e,f as n}from"./core-D_Y2i5wV.js";let o=!1;function t(){o=!0}function r(e){if(o)return;const n=document.createElement("div");n.className="py-error",n.textContent=e,n.style.cssText="\n border: 1px solid red;\n background: #ffdddd;\n color: black;\n font-family: courier, monospace;\n white-space: pre;\n overflow-x: auto;\n padding: 8px;\n margin-top: 8px;\n ",document.body.append(n)}e.main.onReady.add((function o(t){e.main.onReady.delete(o);const{stderr:a}=t.io,d=(e,...n)=>(r(e.message||e),a(e,...n));t.io.stderr="py"===t.type?d:n(d),addEventListener("error",(({message:e})=>{e.startsWith("Uncaught PythonError")&&r(e)}))}));export{t as notOnDOM,r as notify};
2
- //# sourceMappingURL=error-ADoJa5BE.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-ADoJa5BE.js","sources":["../src/plugins/error.js"],"sourcesContent":["// PyScript Error Plugin\nimport { buffered } from \"polyscript/exports\";\nimport { hooks } from \"../core.js\";\n\nlet dontBotherDOM = false;\nexport function notOnDOM() {\n dontBotherDOM = true;\n}\n\nhooks.main.onReady.add(function override(pyScript) {\n // be sure this override happens only once\n hooks.main.onReady.delete(override);\n\n // trap generic `stderr` to propagate to it regardless\n const { stderr } = pyScript.io;\n\n const cb = (error, ...rest) => {\n notify(error.message || error);\n // let other plugins or stderr hook, if any, do the rest\n return stderr(error, ...rest);\n };\n\n // override it with our own logic\n pyScript.io.stderr = pyScript.type === \"py\" ? cb : buffered(cb);\n\n // be sure uncaught Python errors are also visible\n addEventListener(\"error\", ({ message }) => {\n if (message.startsWith(\"Uncaught PythonError\")) notify(message);\n });\n});\n\n// Error hook utilities\n\n// Custom function to show notifications\n\n/**\n * Add a banner to the top of the page, notifying the user of an error\n * @param {string} message\n */\nexport function notify(message) {\n if (dontBotherDOM) return;\n const div = document.createElement(\"div\");\n div.className = \"py-error\";\n div.textContent = message;\n div.style.cssText = `\n border: 1px solid red;\n background: #ffdddd;\n color: black;\n font-family: courier, monospace;\n white-space: pre;\n overflow-x: auto;\n padding: 8px;\n margin-top: 8px;\n `;\n document.body.append(div);\n}\n"],"names":["dontBotherDOM","notOnDOM","notify","message","div","document","createElement","className","textContent","style","cssText","body","append","hooks","main","onReady","add","override","pyScript","delete","stderr","io","cb","error","rest","type","buffered","addEventListener","startsWith"],"mappings":"yCAIA,IAAIA,GAAgB,EACb,SAASC,IACZD,GAAgB,CACpB,CAgCO,SAASE,EAAOC,GACnB,GAAIH,EAAe,OACnB,MAAMI,EAAMC,SAASC,cAAc,OACnCF,EAAIG,UAAY,WAChBH,EAAII,YAAcL,EAClBC,EAAIK,MAAMC,QAAU,6MAUpBL,SAASM,KAAKC,OAAOR,EACzB,CA9CAS,EAAMC,KAAKC,QAAQC,KAAI,SAASC,EAASC,GAErCL,EAAMC,KAAKC,QAAQI,OAAOF,GAG1B,MAAMG,OAAEA,GAAWF,EAASG,GAEtBC,EAAK,CAACC,KAAUC,KAClBtB,EAAOqB,EAAMpB,SAAWoB,GAEjBH,EAAOG,KAAUC,IAI5BN,EAASG,GAAGD,OAA2B,OAAlBF,EAASO,KAAgBH,EAAKI,EAASJ,GAG5DK,iBAAiB,SAAS,EAAGxB,cACrBA,EAAQyB,WAAW,yBAAyB1B,EAAOC,EAAQ,GAEvE"}
@@ -1,2 +0,0 @@
1
- import{e,f as n}from"./core-ZERPM6xU.js";let o=!1;function t(){o=!0}function r(e){if(o)return;const n=document.createElement("div");n.className="py-error",n.textContent=e,n.style.cssText="\n border: 1px solid red;\n background: #ffdddd;\n color: black;\n font-family: courier, monospace;\n white-space: pre;\n overflow-x: auto;\n padding: 8px;\n margin-top: 8px;\n ",document.body.append(n)}e.main.onReady.add(function o(t){e.main.onReady.delete(o);const{stderr:a}=t.io,d=(e,...n)=>(r(e.message||e),a(e,...n));t.io.stderr="py"===t.type?d:n(d),addEventListener("error",({message:e})=>{e.startsWith("Uncaught PythonError")&&r(e)})});export{t as notOnDOM,r as notify};
2
- //# sourceMappingURL=error-BHehssqp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-BHehssqp.js","sources":["../src/plugins/error.js"],"sourcesContent":["// PyScript Error Plugin\nimport { buffered } from \"polyscript/exports\";\nimport { hooks } from \"../core.js\";\n\nlet dontBotherDOM = false;\nexport function notOnDOM() {\n dontBotherDOM = true;\n}\n\nhooks.main.onReady.add(function override(pyScript) {\n // be sure this override happens only once\n hooks.main.onReady.delete(override);\n\n // trap generic `stderr` to propagate to it regardless\n const { stderr } = pyScript.io;\n\n const cb = (error, ...rest) => {\n notify(error.message || error);\n // let other plugins or stderr hook, if any, do the rest\n return stderr(error, ...rest);\n };\n\n // override it with our own logic\n pyScript.io.stderr = pyScript.type === \"py\" ? cb : buffered(cb);\n\n // be sure uncaught Python errors are also visible\n addEventListener(\"error\", ({ message }) => {\n if (message.startsWith(\"Uncaught PythonError\")) notify(message);\n });\n});\n\n// Error hook utilities\n\n// Custom function to show notifications\n\n/**\n * Add a banner to the top of the page, notifying the user of an error\n * @param {string} message\n */\nexport function notify(message) {\n if (dontBotherDOM) return;\n const div = document.createElement(\"div\");\n div.className = \"py-error\";\n div.textContent = message;\n div.style.cssText = `\n border: 1px solid red;\n background: #ffdddd;\n color: black;\n font-family: courier, monospace;\n white-space: pre;\n overflow-x: auto;\n padding: 8px;\n margin-top: 8px;\n `;\n document.body.append(div);\n}\n"],"names":["dontBotherDOM","notOnDOM","notify","message","div","document","createElement","className","textContent","style","cssText","body","append","hooks","main","onReady","add","override","pyScript","delete","stderr","io","cb","error","rest","type","buffered","addEventListener","startsWith"],"mappings":"yCAIA,IAAIA,GAAgB,EACb,SAASC,IACZD,GAAgB,CACpB,CAgCO,SAASE,EAAOC,GACnB,GAAIH,EAAe,OACnB,MAAMI,EAAMC,SAASC,cAAc,OACnCF,EAAIG,UAAY,WAChBH,EAAII,YAAcL,EAClBC,EAAIK,MAAMC,QAAU,6MAUpBL,SAASM,KAAKC,OAAOR,EACzB,CA9CAS,EAAMC,KAAKC,QAAQC,IAAI,SAASC,EAASC,GAErCL,EAAMC,KAAKC,QAAQI,OAAOF,GAG1B,MAAMG,OAAEA,GAAWF,EAASG,GAEtBC,EAAK,CAACC,KAAUC,KAClBtB,EAAOqB,EAAMpB,SAAWoB,GAEjBH,EAAOG,KAAUC,IAI5BN,EAASG,GAAGD,OAA2B,OAAlBF,EAASO,KAAgBH,EAAKI,EAASJ,GAG5DK,iBAAiB,QAAS,EAAGxB,cACrBA,EAAQyB,WAAW,yBAAyB1B,EAAOC,IAE/D"}
@@ -1,2 +0,0 @@
1
- import{e,f as n}from"./core-BAg8axiz.js";let o=!1;function t(){o=!0}function r(e){if(o)return;const n=document.createElement("div");n.className="py-error",n.textContent=e,n.style.cssText="\n border: 1px solid red;\n background: #ffdddd;\n color: black;\n font-family: courier, monospace;\n white-space: pre;\n overflow-x: auto;\n padding: 8px;\n margin-top: 8px;\n ",document.body.append(n)}e.main.onReady.add(function o(t){e.main.onReady.delete(o);const{stderr:a}=t.io,d=(e,...n)=>(r(e.message||e),a(e,...n));t.io.stderr="py"===t.type?d:n(d),addEventListener("error",({message:e})=>{e.startsWith("Uncaught PythonError")&&r(e)})});export{t as notOnDOM,r as notify};
2
- //# sourceMappingURL=error-Dc0g2_oA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-Dc0g2_oA.js","sources":["../src/plugins/error.js"],"sourcesContent":["// PyScript Error Plugin\nimport { buffered } from \"polyscript/exports\";\nimport { hooks } from \"../core.js\";\n\nlet dontBotherDOM = false;\nexport function notOnDOM() {\n dontBotherDOM = true;\n}\n\nhooks.main.onReady.add(function override(pyScript) {\n // be sure this override happens only once\n hooks.main.onReady.delete(override);\n\n // trap generic `stderr` to propagate to it regardless\n const { stderr } = pyScript.io;\n\n const cb = (error, ...rest) => {\n notify(error.message || error);\n // let other plugins or stderr hook, if any, do the rest\n return stderr(error, ...rest);\n };\n\n // override it with our own logic\n pyScript.io.stderr = pyScript.type === \"py\" ? cb : buffered(cb);\n\n // be sure uncaught Python errors are also visible\n addEventListener(\"error\", ({ message }) => {\n if (message.startsWith(\"Uncaught PythonError\")) notify(message);\n });\n});\n\n// Error hook utilities\n\n// Custom function to show notifications\n\n/**\n * Add a banner to the top of the page, notifying the user of an error\n * @param {string} message\n */\nexport function notify(message) {\n if (dontBotherDOM) return;\n const div = document.createElement(\"div\");\n div.className = \"py-error\";\n div.textContent = message;\n div.style.cssText = `\n border: 1px solid red;\n background: #ffdddd;\n color: black;\n font-family: courier, monospace;\n white-space: pre;\n overflow-x: auto;\n padding: 8px;\n margin-top: 8px;\n `;\n document.body.append(div);\n}\n"],"names":["dontBotherDOM","notOnDOM","notify","message","div","document","createElement","className","textContent","style","cssText","body","append","hooks","main","onReady","add","override","pyScript","delete","stderr","io","cb","error","rest","type","buffered","addEventListener","startsWith"],"mappings":"yCAIA,IAAIA,GAAgB,EACb,SAASC,IACZD,GAAgB,CACpB,CAgCO,SAASE,EAAOC,GACnB,GAAIH,EAAe,OACnB,MAAMI,EAAMC,SAASC,cAAc,OACnCF,EAAIG,UAAY,WAChBH,EAAII,YAAcL,EAClBC,EAAIK,MAAMC,QAAU,6MAUpBL,SAASM,KAAKC,OAAOR,EACzB,CA9CAS,EAAMC,KAAKC,QAAQC,IAAI,SAASC,EAASC,GAErCL,EAAMC,KAAKC,QAAQI,OAAOF,GAG1B,MAAMG,OAAEA,GAAWF,EAASG,GAEtBC,EAAK,CAACC,KAAUC,KAClBtB,EAAOqB,EAAMpB,SAAWoB,GAEjBH,EAAOG,KAAUC,IAI5BN,EAASG,GAAGD,OAA2B,OAAlBF,EAASO,KAAgBH,EAAKI,EAASJ,GAG5DK,iBAAiB,QAAS,EAAGxB,cACrBA,EAAQyB,WAAW,yBAAyB1B,EAAOC,IAE/D"}
@@ -1,2 +0,0 @@
1
- import{e,f as n}from"./core-DezwbZpG.js";let o=!1;function t(){o=!0}function r(e){if(o)return;const n=document.createElement("div");n.className="py-error",n.textContent=e,n.style.cssText="\n border: 1px solid red;\n background: #ffdddd;\n color: black;\n font-family: courier, monospace;\n white-space: pre;\n overflow-x: auto;\n padding: 8px;\n margin-top: 8px;\n ",document.body.append(n)}e.main.onReady.add((function o(t){e.main.onReady.delete(o);const{stderr:a}=t.io,d=(e,...n)=>(r(e.message||e),a(e,...n));t.io.stderr="py"===t.type?d:n(d),addEventListener("error",(({message:e})=>{e.startsWith("Uncaught PythonError")&&r(e)}))}));export{t as notOnDOM,r as notify};
2
- //# sourceMappingURL=error-DmRE4Y-7.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-DmRE4Y-7.js","sources":["../src/plugins/error.js"],"sourcesContent":["// PyScript Error Plugin\nimport { buffered } from \"polyscript/exports\";\nimport { hooks } from \"../core.js\";\n\nlet dontBotherDOM = false;\nexport function notOnDOM() {\n dontBotherDOM = true;\n}\n\nhooks.main.onReady.add(function override(pyScript) {\n // be sure this override happens only once\n hooks.main.onReady.delete(override);\n\n // trap generic `stderr` to propagate to it regardless\n const { stderr } = pyScript.io;\n\n const cb = (error, ...rest) => {\n notify(error.message || error);\n // let other plugins or stderr hook, if any, do the rest\n return stderr(error, ...rest);\n };\n\n // override it with our own logic\n pyScript.io.stderr = pyScript.type === \"py\" ? cb : buffered(cb);\n\n // be sure uncaught Python errors are also visible\n addEventListener(\"error\", ({ message }) => {\n if (message.startsWith(\"Uncaught PythonError\")) notify(message);\n });\n});\n\n// Error hook utilities\n\n// Custom function to show notifications\n\n/**\n * Add a banner to the top of the page, notifying the user of an error\n * @param {string} message\n */\nexport function notify(message) {\n if (dontBotherDOM) return;\n const div = document.createElement(\"div\");\n div.className = \"py-error\";\n div.textContent = message;\n div.style.cssText = `\n border: 1px solid red;\n background: #ffdddd;\n color: black;\n font-family: courier, monospace;\n white-space: pre;\n overflow-x: auto;\n padding: 8px;\n margin-top: 8px;\n `;\n document.body.append(div);\n}\n"],"names":["dontBotherDOM","notOnDOM","notify","message","div","document","createElement","className","textContent","style","cssText","body","append","hooks","main","onReady","add","override","pyScript","delete","stderr","io","cb","error","rest","type","buffered","addEventListener","startsWith"],"mappings":"yCAIA,IAAIA,GAAgB,EACb,SAASC,IACZD,GAAgB,CACpB,CAgCO,SAASE,EAAOC,GACnB,GAAIH,EAAe,OACnB,MAAMI,EAAMC,SAASC,cAAc,OACnCF,EAAIG,UAAY,WAChBH,EAAII,YAAcL,EAClBC,EAAIK,MAAMC,QAAU,6MAUpBL,SAASM,KAAKC,OAAOR,EACzB,CA9CAS,EAAMC,KAAKC,QAAQC,KAAI,SAASC,EAASC,GAErCL,EAAMC,KAAKC,QAAQI,OAAOF,GAG1B,MAAMG,OAAEA,GAAWF,EAASG,GAEtBC,EAAK,CAACC,KAAUC,KAClBtB,EAAOqB,EAAMpB,SAAWoB,GAEjBH,EAAOG,KAAUC,IAI5BN,EAASG,GAAGD,OAA2B,OAAlBF,EAASO,KAAgBH,EAAKI,EAASJ,GAG5DK,iBAAiB,SAAS,EAAGxB,cACrBA,EAAQyB,WAAW,yBAAyB1B,EAAOC,EAAQ,GAEvE"}
@@ -1,2 +0,0 @@
1
- import{e,f as n}from"./core-3crqT3rt.js";let o=!1;function t(){o=!0}function r(e){if(o)return;const n=document.createElement("div");n.className="py-error",n.textContent=e,n.style.cssText="\n border: 1px solid red;\n background: #ffdddd;\n color: black;\n font-family: courier, monospace;\n white-space: pre;\n overflow-x: auto;\n padding: 8px;\n margin-top: 8px;\n ",document.body.append(n)}e.main.onReady.add(function o(t){e.main.onReady.delete(o);const{stderr:a}=t.io,d=(e,...n)=>(r(e.message||e),a(e,...n));t.io.stderr="py"===t.type?d:n(d),addEventListener("error",({message:e})=>{e.startsWith("Uncaught PythonError")&&r(e)})});export{t as notOnDOM,r as notify};
2
- //# sourceMappingURL=error-X7dWXDEj.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-X7dWXDEj.js","sources":["../src/plugins/error.js"],"sourcesContent":["// PyScript Error Plugin\nimport { buffered } from \"polyscript/exports\";\nimport { hooks } from \"../core.js\";\n\nlet dontBotherDOM = false;\nexport function notOnDOM() {\n dontBotherDOM = true;\n}\n\nhooks.main.onReady.add(function override(pyScript) {\n // be sure this override happens only once\n hooks.main.onReady.delete(override);\n\n // trap generic `stderr` to propagate to it regardless\n const { stderr } = pyScript.io;\n\n const cb = (error, ...rest) => {\n notify(error.message || error);\n // let other plugins or stderr hook, if any, do the rest\n return stderr(error, ...rest);\n };\n\n // override it with our own logic\n pyScript.io.stderr = pyScript.type === \"py\" ? cb : buffered(cb);\n\n // be sure uncaught Python errors are also visible\n addEventListener(\"error\", ({ message }) => {\n if (message.startsWith(\"Uncaught PythonError\")) notify(message);\n });\n});\n\n// Error hook utilities\n\n// Custom function to show notifications\n\n/**\n * Add a banner to the top of the page, notifying the user of an error\n * @param {string} message\n */\nexport function notify(message) {\n if (dontBotherDOM) return;\n const div = document.createElement(\"div\");\n div.className = \"py-error\";\n div.textContent = message;\n div.style.cssText = `\n border: 1px solid red;\n background: #ffdddd;\n color: black;\n font-family: courier, monospace;\n white-space: pre;\n overflow-x: auto;\n padding: 8px;\n margin-top: 8px;\n `;\n document.body.append(div);\n}\n"],"names":["dontBotherDOM","notOnDOM","notify","message","div","document","createElement","className","textContent","style","cssText","body","append","hooks","main","onReady","add","override","pyScript","delete","stderr","io","cb","error","rest","type","buffered","addEventListener","startsWith"],"mappings":"yCAIA,IAAIA,GAAgB,EACb,SAASC,IACZD,GAAgB,CACpB,CAgCO,SAASE,EAAOC,GACnB,GAAIH,EAAe,OACnB,MAAMI,EAAMC,SAASC,cAAc,OACnCF,EAAIG,UAAY,WAChBH,EAAII,YAAcL,EAClBC,EAAIK,MAAMC,QAAU,6MAUpBL,SAASM,KAAKC,OAAOR,EACzB,CA9CAS,EAAMC,KAAKC,QAAQC,IAAI,SAASC,EAASC,GAErCL,EAAMC,KAAKC,QAAQI,OAAOF,GAG1B,MAAMG,OAAEA,GAAWF,EAASG,GAEtBC,EAAK,CAACC,KAAUC,KAClBtB,EAAOqB,EAAMpB,SAAWoB,GAEjBH,EAAOG,KAAUC,IAI5BN,EAASG,GAAGD,OAA2B,OAAlBF,EAASO,KAAgBH,EAAKI,EAASJ,GAG5DK,iBAAiB,QAAS,EAAGxB,cACrBA,EAAQyB,WAAW,yBAAyB1B,EAAOC,IAE/D"}
@@ -1,2 +0,0 @@
1
- import{StateField as t,Prec as e,Facet as n,codePointAt as i,EditorSelection as o,StateEffect as s,codePointSize as l,RangeSet as r,combineConfig as a,fromCodePoint as c,Annotation as h,MapMode as p,RangeValue as f,CharCategory as d,Transaction as u,Text as m}from"./codemirror_state-BIAL8JKm.js";import{E as g,V as v,g as b,s as w,l as y,k as x,D as C,a as I,W as O}from"./codemirror_view-qh1qPB30.js";import{s as k,i as D}from"./codemirror_language-bz5_3ooB.js";class T{constructor(t,e,n,i){this.state=t,this.pos=e,this.explicit=n,this.view=i,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(t){let e=k(this.state).resolveInner(this.pos,-1);for(;e&&t.indexOf(e.name)<0;)e=e.parent;return e?{from:e.from,to:this.pos,text:this.state.sliceDoc(e.from,this.pos),type:e.type}:null}matchBefore(t){let e=this.state.doc.lineAt(this.pos),n=Math.max(e.from,this.pos-250),i=e.text.slice(n-e.from,this.pos-e.from),o=i.search(P(t,!1));return o<0?null:{from:n+o,to:this.pos,text:i.slice(o)}}get aborted(){return null==this.abortListeners}addEventListener(t,e,n){"abort"==t&&this.abortListeners&&(this.abortListeners.push(e),n&&n.onDocChange&&(this.abortOnDocChange=!0))}}function S(t){let e=Object.keys(t).join(""),n=/\w/.test(e);return n&&(e=e.replace(/\w/g,"")),`[${n?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function A(t){let e=t.map(t=>"string"==typeof t?{label:t}:t),[n,i]=e.every(t=>/^\w+$/.test(t.label))?[/\w*$/,/\w+$/]:function(t){let e=Object.create(null),n=Object.create(null);for(let{label:i}of t){e[i[0]]=!0;for(let t=1;t<i.length;t++)n[i[t]]=!0}let i=S(e)+S(n)+"*$";return[new RegExp("^"+i),new RegExp(i)]}(e);return t=>{let o=t.matchBefore(i);return o||t.explicit?{from:o?o.from:t.pos,options:e,validFor:n}:null}}function L(t,e){return n=>{for(let e=k(n.state).resolveInner(n.pos,-1);e;e=e.parent){if(t.indexOf(e.name)>-1)return null;if(e.type.isTop)break}return e(n)}}class E{constructor(t,e,n,i){this.completion=t,this.source=e,this.match=n,this.score=i}}function R(t){return t.selection.main.from}function P(t,e){var n;let{source:i}=t,o=e&&"^"!=i[0],s="$"!=i[i.length-1];return o||s?new RegExp(`${o?"^":""}(?:${i})${s?"$":""}`,null!==(n=t.flags)&&void 0!==n?n:t.ignoreCase?"i":""):t}const M=h.define();const B=new WeakMap;function F(t){if(!Array.isArray(t))return t;let e=B.get(t);return e||B.set(t,e=A(t)),e}const j=s.define(),$=s.define();class N{constructor(t){this.pattern=t,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let e=0;e<t.length;){let n=i(t,e),o=l(n);this.chars.push(n);let s=t.slice(e,e+o),r=s.toUpperCase();this.folded.push(i(r==s?s.toLowerCase():r,0)),e+=o}this.astral=t.length!=this.chars.length}ret(t,e){return this.score=t,this.matched=e,this}match(t){if(0==this.pattern.length)return this.ret(-100,[]);if(t.length<this.pattern.length)return null;let{chars:e,folded:n,any:o,precise:s,byWord:r}=this;if(1==e.length){let o=i(t,0),s=l(o),r=s==t.length?0:-100;if(o==e[0]);else{if(o!=n[0])return null;r+=-200}return this.ret(r,[0,s])}let a=t.indexOf(this.pattern);if(0==a)return this.ret(t.length==this.pattern.length?0:-100,[0,this.pattern.length]);let h=e.length,p=0;if(a<0){for(let s=0,r=Math.min(t.length,200);s<r&&p<h;){let r=i(t,s);r!=e[p]&&r!=n[p]||(o[p++]=s),s+=l(r)}if(p<h)return null}let f=0,d=0,u=!1,m=0,g=-1,v=-1,b=/[a-z]/.test(t),w=!0;for(let o=0,p=Math.min(t.length,200),y=0;o<p&&d<h;){let p=i(t,o);a<0&&(f<h&&p==e[f]&&(s[f++]=o),m<h&&(p==e[m]||p==n[m]?(0==m&&(g=o),v=o+1,m++):m=0));let x,C=p<255?p>=48&&p<=57||p>=97&&p<=122?2:p>=65&&p<=90?1:0:(x=c(p))!=x.toLowerCase()?1:x!=x.toUpperCase()?2:0;(!o||1==C&&b||0==y&&0!=C)&&(e[d]==p||n[d]==p&&(u=!0)?r[d++]=o:r.length&&(w=!1)),y=C,o+=l(p)}return d==h&&0==r[0]&&w?this.result((u?-200:0)-100,r,t):m==h&&0==g?this.ret(-200-t.length+(v==t.length?0:-100),[0,v]):a>-1?this.ret(-700-t.length,[a,a+this.pattern.length]):m==h?this.ret(-900-t.length,[g,v]):d==h?this.result((u?-200:0)-100-700+(w?0:-1100),r,t):2==e.length?null:this.result((o[0]?-700:0)-200-1100,o,t)}result(t,e,n){let o=[],s=0;for(let t of e){let e=t+(this.astral?l(i(n,t)):1);s&&o[s-1]==t?o[s-1]=e:(o[s++]=t,o[s++]=e)}return this.ret(t-n.length,o)}}class U{constructor(t){this.pattern=t,this.matched=[],this.score=0,this.folded=t.toLowerCase()}match(t){if(t.length<this.pattern.length)return null;let e=t.slice(0,this.pattern.length),n=e==this.pattern?0:e.toLowerCase()==this.folded?-200:null;return null==n?null:(this.matched=[0,e.length],this.score=n+(t.length==this.pattern.length?0:-100),this)}}const W=n.define({combine:t=>a(t,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:H,filterStrict:!1,compareCompletions:(t,e)=>t.label.localeCompare(e.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(t,e)=>t&&e,closeOnBlur:(t,e)=>t&&e,icons:(t,e)=>t&&e,tooltipClass:(t,e)=>n=>q(t(n),e(n)),optionClass:(t,e)=>n=>q(t(n),e(n)),addToOptions:(t,e)=>t.concat(e),filterStrict:(t,e)=>t||e})});function q(t,e){return t?e?t+" "+e:t:e}function H(t,e,n,i,o,s){let l,r,a=t.textDirection==C.RTL,c=a,h=!1,p="top",f=e.left-o.left,d=o.right-e.right,u=i.right-i.left,m=i.bottom-i.top;if(c&&f<Math.min(u,d)?c=!1:!c&&d<Math.min(u,f)&&(c=!0),u<=(c?f:d))l=Math.max(o.top,Math.min(n.top,o.bottom-m))-e.top,r=Math.min(400,c?f:d);else{h=!0,r=Math.min(400,(a?e.right:o.right-e.left)-30);let t=o.bottom-e.bottom;t>=m||t>e.top?l=n.bottom-e.top:(p="bottom",l=e.bottom-n.top)}return{style:`${p}: ${l/((e.bottom-e.top)/s.offsetHeight)}px; max-width: ${r/((e.right-e.left)/s.offsetWidth)}px`,class:"cm-completionInfo-"+(h?a?"left-narrow":"right-narrow":c?"left":"right")}}function V(t,e,n){if(t<=n)return{from:0,to:t};if(e<0&&(e=0),e<=t>>1){let t=Math.floor(e/n);return{from:t*n,to:(t+1)*n}}let i=Math.floor((t-e)/n);return{from:t-(i+1)*n,to:t-i*n}}class z{constructor(t,e,n){this.view=t,this.stateField=e,this.applyCompletion=n,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:t=>this.placeInfo(t),key:this},this.space=null,this.currentClass="";let i=t.state.field(e),{options:o,selected:s}=i.open,l=t.state.facet(W);this.optionContent=function(t){let e=t.addToOptions.slice();return t.icons&&e.push({render(t){let e=document.createElement("div");return e.classList.add("cm-completionIcon"),t.type&&e.classList.add(...t.type.split(/\s+/g).map(t=>"cm-completionIcon-"+t)),e.setAttribute("aria-hidden","true"),e},position:20}),e.push({render(t,e,n,i){let o=document.createElement("span");o.className="cm-completionLabel";let s=t.displayLabel||t.label,l=0;for(let t=0;t<i.length;){let e=i[t++],n=i[t++];e>l&&o.appendChild(document.createTextNode(s.slice(l,e)));let r=o.appendChild(document.createElement("span"));r.appendChild(document.createTextNode(s.slice(e,n))),r.className="cm-completionMatchedText",l=n}return l<s.length&&o.appendChild(document.createTextNode(s.slice(l))),o},position:50},{render(t){if(!t.detail)return null;let e=document.createElement("span");return e.className="cm-completionDetail",e.textContent=t.detail,e},position:80}),e.sort((t,e)=>t.position-e.position).map(t=>t.render)}(l),this.optionClass=l.optionClass,this.tooltipClass=l.tooltipClass,this.range=V(o.length,s,l.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(t.state),this.dom.addEventListener("mousedown",n=>{let{options:i}=t.state.field(e).open;for(let e,o=n.target;o&&o!=this.dom;o=o.parentNode)if("LI"==o.nodeName&&(e=/-(\d+)$/.exec(o.id))&&+e[1]<i.length)return this.applyCompletion(t,i[+e[1]]),void n.preventDefault()}),this.dom.addEventListener("focusout",e=>{let n=t.state.field(this.stateField,!1);n&&n.tooltip&&t.state.facet(W).closeOnBlur&&e.relatedTarget!=t.contentDOM&&t.dispatch({effects:$.of(null)})}),this.showOptions(o,i.id)}mount(){this.updateSel()}showOptions(t,e){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(t,e,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(t){var e;let n=t.state.field(this.stateField),i=t.startState.field(this.stateField);if(this.updateTooltipClass(t.state),n!=i){let{options:o,selected:s,disabled:l}=n.open;i.open&&i.open.options==o||(this.range=V(o.length,s,t.state.facet(W).maxRenderedOptions),this.showOptions(o,n.id)),this.updateSel(),l!=(null===(e=i.open)||void 0===e?void 0:e.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!l)}}updateTooltipClass(t){let e=this.tooltipClass(t);if(e!=this.currentClass){for(let t of this.currentClass.split(" "))t&&this.dom.classList.remove(t);for(let t of e.split(" "))t&&this.dom.classList.add(t);this.currentClass=e}}positioned(t){this.space=t,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let t=this.view.state.field(this.stateField),e=t.open;if((e.selected>-1&&e.selected<this.range.from||e.selected>=this.range.to)&&(this.range=V(e.options.length,e.selected,this.view.state.facet(W).maxRenderedOptions),this.showOptions(e.options,t.id)),this.updateSelectedOption(e.selected)){this.destroyInfo();let{completion:n}=e.options[e.selected],{info:i}=n;if(!i)return;let o="string"==typeof i?document.createTextNode(i):i(n);if(!o)return;"then"in o?o.then(e=>{e&&this.view.state.field(this.stateField,!1)==t&&this.addInfoPane(e,n)}).catch(t=>y(this.view.state,t,"completion info")):this.addInfoPane(o,n)}}addInfoPane(t,e){this.destroyInfo();let n=this.info=document.createElement("div");if(n.className="cm-tooltip cm-completionInfo",null!=t.nodeType)n.appendChild(t),this.infoDestroy=null;else{let{dom:e,destroy:i}=t;n.appendChild(e),this.infoDestroy=i||null}this.dom.appendChild(n),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(t){let e=null;for(let n=this.list.firstChild,i=this.range.from;n;n=n.nextSibling,i++)"LI"==n.nodeName&&n.id?i==t?n.hasAttribute("aria-selected")||(n.setAttribute("aria-selected","true"),e=n):n.hasAttribute("aria-selected")&&n.removeAttribute("aria-selected"):i--;return e&&function(t,e){let n=t.getBoundingClientRect(),i=e.getBoundingClientRect(),o=n.height/t.offsetHeight;i.top<n.top?t.scrollTop-=(n.top-i.top)/o:i.bottom>n.bottom&&(t.scrollTop+=(i.bottom-n.bottom)/o)}(this.list,e),e}measureInfo(){let t=this.dom.querySelector("[aria-selected]");if(!t||!this.info)return null;let e=this.dom.getBoundingClientRect(),n=this.info.getBoundingClientRect(),i=t.getBoundingClientRect(),o=this.space;if(!o){let t=this.dom.ownerDocument.documentElement;o={left:0,top:0,right:t.clientWidth,bottom:t.clientHeight}}return i.top>Math.min(o.bottom,e.bottom)-10||i.bottom<Math.max(o.top,e.top)+10?null:this.view.state.facet(W).positionInfo(this.view,e,i,n,o,this.dom)}placeInfo(t){this.info&&(t?(t.style&&(this.info.style.cssText=t.style),this.info.className="cm-tooltip cm-completionInfo "+(t.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(t,e,n){const i=document.createElement("ul");i.id=e,i.setAttribute("role","listbox"),i.setAttribute("aria-expanded","true"),i.setAttribute("aria-label",this.view.state.phrase("Completions")),i.addEventListener("mousedown",t=>{t.target==i&&t.preventDefault()});let o=null;for(let s=n.from;s<n.to;s++){let{completion:l,match:r}=t[s],{section:a}=l;if(a){let t="string"==typeof a?a:a.name;if(t!=o&&(s>n.from||0==n.from))if(o=t,"string"!=typeof a&&a.header)i.appendChild(a.header(a));else{i.appendChild(document.createElement("completion-section")).textContent=t}}const c=i.appendChild(document.createElement("li"));c.id=e+"-"+s,c.setAttribute("role","option");let h=this.optionClass(l);h&&(c.className=h);for(let t of this.optionContent){let e=t(l,this.view.state,this.view,r);e&&c.appendChild(e)}}return n.from&&i.classList.add("cm-completionListIncompleteTop"),n.to<t.length&&i.classList.add("cm-completionListIncompleteBottom"),i}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function K(t,e){return n=>new z(n,t,e)}function Q(t){return 100*(t.boost||0)+(t.apply?10:0)+(t.info?5:0)+(t.type?1:0)}class _{constructor(t,e,n,i,o,s){this.options=t,this.attrs=e,this.tooltip=n,this.timestamp=i,this.selected=o,this.disabled=s}setSelected(t,e){return t==this.selected||t>=this.options.length?this:new _(this.options,J(e,t),this.tooltip,this.timestamp,t,this.disabled)}static build(t,e,n,i,o,s){if(i&&!s&&t.some(t=>t.isPending))return i.setDisabled();let l=function(t,e){let n=[],i=null,o=t=>{n.push(t);let{section:e}=t.completion;if(e){i||(i=[]);let t="string"==typeof e?e:e.name;i.some(e=>e.name==t)||i.push("string"==typeof e?{name:t}:e)}},s=e.facet(W);for(let i of t)if(i.hasResult()){let t=i.result.getMatch;if(!1===i.result.filter)for(let e of i.result.options)o(new E(e,i.source,t?t(e):[],1e9-n.length));else{let n,l=e.sliceDoc(i.from,i.to),r=s.filterStrict?new U(l):new N(l);for(let e of i.result.options)if(n=r.match(e.label)){let s=e.displayLabel?t?t(e,n.matched):[]:n.matched;o(new E(e,i.source,s,n.score+(e.boost||0)))}}}if(i){let t=Object.create(null),e=0,o=(t,e)=>{var n,i;return(null!==(n=t.rank)&&void 0!==n?n:1e9)-(null!==(i=e.rank)&&void 0!==i?i:1e9)||(t.name<e.name?-1:1)};for(let n of i.sort(o))e-=1e5,t[n.name]=e;for(let e of n){let{section:n}=e.completion;n&&(e.score+=t["string"==typeof n?n:n.name])}}let l=[],r=null,a=s.compareCompletions;for(let t of n.sort((t,e)=>e.score-t.score||a(t.completion,e.completion))){let e=t.completion;!r||r.label!=e.label||r.detail!=e.detail||null!=r.type&&null!=e.type&&r.type!=e.type||r.apply!=e.apply||r.boost!=e.boost?l.push(t):Q(t.completion)>Q(r)&&(l[l.length-1]=t),r=t.completion}return l}(t,e);if(!l.length)return i&&t.some(t=>t.isPending)?i.setDisabled():null;let r=e.facet(W).selectOnOpen?0:-1;if(i&&i.selected!=r&&-1!=i.selected){let t=i.options[i.selected].completion;for(let e=0;e<l.length;e++)if(l[e].completion==t){r=e;break}}return new _(l,J(n,r),{pos:t.reduce((t,e)=>e.hasResult()?Math.min(t,e.from):t,1e8),create:rt,above:o.aboveCursor},i?i.timestamp:Date.now(),r,!1)}map(t){return new _(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:t.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}setDisabled(){return new _(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class X{constructor(t,e,n){this.active=t,this.id=e,this.open=n}static start(){return new X(Z,"cm-ac-"+Math.floor(2e6*Math.random()).toString(36),null)}update(t){let{state:e}=t,n=e.facet(W),i=(n.override||e.languageDataAt("autocomplete",R(e)).map(F)).map(e=>(this.active.find(t=>t.source==e)||new et(e,this.active.some(t=>0!=t.state)?1:0)).update(t,n));i.length==this.active.length&&i.every((t,e)=>t==this.active[e])&&(i=this.active);let o=this.open,s=t.effects.some(t=>t.is(it));o&&t.docChanged&&(o=o.map(t.changes)),t.selection||i.some(e=>e.hasResult()&&t.changes.touchesRange(e.from,e.to))||!function(t,e){if(t==e)return!0;for(let n=0,i=0;;){for(;n<t.length&&!t[n].hasResult();)n++;for(;i<e.length&&!e[i].hasResult();)i++;let o=n==t.length,s=i==e.length;if(o||s)return o==s;if(t[n++].result!=e[i++].result)return!1}}(i,this.active)||s?o=_.build(i,e,this.id,o,n,s):o&&o.disabled&&!i.some(t=>t.isPending)&&(o=null),!o&&i.every(t=>!t.isPending)&&i.some(t=>t.hasResult())&&(i=i.map(t=>t.hasResult()?new et(t.source,0):t));for(let e of t.effects)e.is(ot)&&(o=o&&o.setSelected(e.value,this.id));return i==this.active&&o==this.open?this:new X(i,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?Y:G}}const Y={"aria-autocomplete":"list"},G={};function J(t,e){let n={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":t};return e>-1&&(n["aria-activedescendant"]=t+"-"+e),n}const Z=[];function tt(t,e){if(t.isUserEvent("input.complete")){let n=t.annotation(M);if(n&&e.activateOnCompletion(n))return 12}let n=t.isUserEvent("input.type");return n&&e.activateOnTyping?5:n?1:t.isUserEvent("delete.backward")?2:t.selection?8:t.docChanged?16:0}class et{constructor(t,e,n=!1){this.source=t,this.state=e,this.explicit=n}hasResult(){return!1}get isPending(){return 1==this.state}update(t,e){let n=tt(t,e),i=this;(8&n||16&n&&this.touches(t))&&(i=new et(i.source,0)),4&n&&0==i.state&&(i=new et(this.source,1)),i=i.updateFor(t,n);for(let e of t.effects)if(e.is(j))i=new et(i.source,1,e.value);else if(e.is($))i=new et(i.source,0);else if(e.is(it))for(let t of e.value)t.source==i.source&&(i=t);return i}updateFor(t,e){return this.map(t.changes)}map(t){return this}touches(t){return t.changes.touchesRange(R(t.state))}}class nt extends et{constructor(t,e,n,i,o,s){super(t,3,e),this.limit=n,this.result=i,this.from=o,this.to=s}hasResult(){return!0}updateFor(t,e){var n;if(!(3&e))return this.map(t.changes);let i=this.result;i.map&&!t.changes.empty&&(i=i.map(i,t.changes));let o=t.changes.mapPos(this.from),s=t.changes.mapPos(this.to,1),l=R(t.state);if(l>s||!i||2&e&&(R(t.startState)==this.from||l<this.limit))return new et(this.source,4&e?1:0);let r=t.changes.mapPos(this.limit);return function(t,e,n,i){if(!t)return!1;let o=e.sliceDoc(n,i);return"function"==typeof t?t(o,n,i,e):P(t,!0).test(o)}(i.validFor,t.state,o,s)?new nt(this.source,this.explicit,r,i,o,s):i.update&&(i=i.update(i,o,s,new T(t.state,l,!1)))?new nt(this.source,this.explicit,r,i,i.from,null!==(n=i.to)&&void 0!==n?n:R(t.state)):new et(this.source,1,this.explicit)}map(t){if(t.empty)return this;return(this.result.map?this.result.map(this.result,t):this.result)?new nt(this.source,this.explicit,t.mapPos(this.limit),this.result,t.mapPos(this.from),t.mapPos(this.to,1)):new et(this.source,0)}touches(t){return t.changes.touchesRange(this.from,this.to)}}const it=s.define({map:(t,e)=>t.map(t=>t.map(e))}),ot=s.define(),st=t.define({create:()=>X.start(),update:(t,e)=>t.update(e),provide:t=>[w.from(t,t=>t.tooltip),g.contentAttributes.from(t,t=>t.attrs)]});function lt(t,e){const n=e.completion.apply||e.completion.label;let i=t.state.field(st).active.find(t=>t.source==e.source);return i instanceof nt&&("string"==typeof n?t.dispatch(Object.assign(Object.assign({},function(t,e,n,i){let{main:s}=t.selection,l=n-s.from,r=i-s.from;return Object.assign(Object.assign({},t.changeByRange(a=>{if(a!=s&&n!=i&&t.sliceDoc(a.from+l,a.from+r)!=t.sliceDoc(n,i))return{range:a};let c=t.toText(e);return{changes:{from:a.from+l,to:i==s.from?a.to:a.from+r,insert:c},range:o.cursor(a.from+l+c.length)}})),{scrollIntoView:!0,userEvent:"input.complete"})}(t.state,n,i.from,i.to)),{annotations:M.of(e.completion)})):n(t,e.completion,i.from,i.to),!0)}const rt=K(st,lt);function at(t,e="option"){return n=>{let i=n.state.field(st,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp<n.state.facet(W).interactionDelay)return!1;let o,s=1;"page"==e&&(o=b(n,i.open.tooltip))&&(s=Math.max(2,Math.floor(o.dom.offsetHeight/o.dom.querySelector("li").offsetHeight)-1));let{length:l}=i.open.options,r=i.open.selected>-1?i.open.selected+s*(t?1:-1):t?0:l-1;return r<0?r="page"==e?0:l-1:r>=l&&(r="page"==e?l-1:0),n.dispatch({effects:ot.of(r)}),!0}}const ct=t=>!!t.state.field(st,!1)&&(t.dispatch({effects:j.of(!0)}),!0);class ht{constructor(t,e){this.active=t,this.context=e,this.time=Date.now(),this.updates=[],this.done=void 0}}const pt=v.fromClass(class{constructor(t){this.view=t,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of t.state.field(st).active)e.isPending&&this.startQuery(e)}update(t){let e=t.state.field(st),n=t.state.facet(W);if(!t.selectionSet&&!t.docChanged&&t.startState.field(st)==e)return;let i=t.transactions.some(t=>{let e=tt(t,n);return 8&e||(t.selection||t.docChanged)&&!(3&e)});for(let e=0;e<this.running.length;e++){let n=this.running[e];if(i||n.context.abortOnDocChange&&t.docChanged||n.updates.length+t.transactions.length>50&&Date.now()-n.time>1e3){for(let t of n.context.abortListeners)try{t()}catch(t){y(this.view.state,t)}n.context.abortListeners=null,this.running.splice(e--,1)}else n.updates.push(...t.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),t.transactions.some(t=>t.effects.some(t=>t.is(j)))&&(this.pendingStart=!0);let o=this.pendingStart?50:n.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(t=>t.isPending&&!this.running.some(e=>e.active.source==t.source))?setTimeout(()=>this.startUpdate(),o):-1,0!=this.composing)for(let e of t.transactions)e.isUserEvent("input.type")?this.composing=2:2==this.composing&&e.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:t}=this.view,e=t.field(st);for(let t of e.active)t.isPending&&!this.running.some(e=>e.active.source==t.source)&&this.startQuery(t);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(W).updateSyncTime))}startQuery(t){let{state:e}=this.view,n=R(e),i=new T(e,n,t.explicit,this.view),o=new ht(t,i);this.running.push(o),Promise.resolve(t.source(i)).then(t=>{o.context.aborted||(o.done=t||null,this.scheduleAccept())},t=>{this.view.dispatch({effects:$.of(null)}),y(this.view.state,t)})}scheduleAccept(){this.running.every(t=>void 0!==t.done)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(W).updateSyncTime))}accept(){var t;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],n=this.view.state.facet(W),i=this.view.state.field(st);for(let o=0;o<this.running.length;o++){let s=this.running[o];if(void 0===s.done)continue;if(this.running.splice(o--,1),s.done){let i=R(s.updates.length?s.updates[0].startState:this.view.state),o=Math.min(i,s.done.from+(s.active.explicit?0:1)),l=new nt(s.active.source,s.active.explicit,o,s.done,s.done.from,null!==(t=s.done.to)&&void 0!==t?t:i);for(let t of s.updates)l=l.update(t,n);if(l.hasResult()){e.push(l);continue}}let l=i.active.find(t=>t.source==s.active.source);if(l&&l.isPending)if(null==s.done){let t=new et(s.active.source,0);for(let e of s.updates)t=t.update(e,n);t.isPending||e.push(t)}else this.startQuery(l)}(e.length||i.open&&i.open.disabled)&&this.view.dispatch({effects:it.of(e)})}},{eventHandlers:{blur(t){let e=this.view.state.field(st,!1);if(e&&e.tooltip&&this.view.state.facet(W).closeOnBlur){let n=e.open&&b(this.view,e.open.tooltip);n&&n.dom.contains(t.relatedTarget)||setTimeout(()=>this.view.dispatch({effects:$.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){3==this.composing&&setTimeout(()=>this.view.dispatch({effects:j.of(!1)}),20),this.composing=0}}}),ft="object"==typeof navigator&&/Win/.test(navigator.platform),dt=e.highest(g.domEventHandlers({keydown(t,e){let n=e.state.field(st,!1);if(!n||!n.open||n.open.disabled||n.open.selected<0||t.key.length>1||t.ctrlKey&&(!ft||!t.altKey)||t.metaKey)return!1;let i=n.open.options[n.open.selected],o=n.active.find(t=>t.source==i.source),s=i.completion.commitCharacters||o.result.commitCharacters;return s&&s.indexOf(t.key)>-1&&lt(e,i),!1}})),ut=g.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class mt{constructor(t,e,n,i){this.field=t,this.line=e,this.from=n,this.to=i}}class gt{constructor(t,e,n){this.field=t,this.from=e,this.to=n}map(t){let e=t.mapPos(this.from,-1,p.TrackDel),n=t.mapPos(this.to,1,p.TrackDel);return null==e||null==n?null:new gt(this.field,e,n)}}class vt{constructor(t,e){this.lines=t,this.fieldPositions=e}instantiate(t,e){let n=[],i=[e],o=t.doc.lineAt(e),s=/^\s*/.exec(o.text)[0];for(let o of this.lines){if(n.length){let n=s,l=/^\t*/.exec(o)[0].length;for(let e=0;e<l;e++)n+=t.facet(D);i.push(e+n.length-l),o=n+o.slice(l)}n.push(o),e+=o.length+1}let l=this.fieldPositions.map(t=>new gt(t.field,i[t.line]+t.from,i[t.line]+t.to));return{text:n,ranges:l}}static parse(t){let e,n=[],i=[],o=[];for(let s of t.split(/\r\n?|\n/)){for(;e=/[#$]\{(?:(\d+)(?::([^}]*))?|((?:\\[{}]|[^}])*))\}/.exec(s);){let t=e[1]?+e[1]:null,l=e[2]||e[3]||"",r=-1,a=l.replace(/\\[{}]/g,t=>t[1]);for(let e=0;e<n.length;e++)(null!=t?n[e].seq==t:a&&n[e].name==a)&&(r=e);if(r<0){let e=0;for(;e<n.length&&(null==t||null!=n[e].seq&&n[e].seq<t);)e++;n.splice(e,0,{seq:t,name:a}),r=e;for(let t of o)t.field>=r&&t.field++}o.push(new mt(r,i.length,e.index,e.index+a.length)),s=s.slice(0,e.index)+l+s.slice(e.index+e[0].length)}s=s.replace(/\\([{}])/g,(t,e,n)=>{for(let t of o)t.line==i.length&&t.from>n&&(t.from--,t.to--);return e}),i.push(s)}return new vt(i,o)}}let bt=I.widget({widget:new class extends O{toDOM(){let t=document.createElement("span");return t.className="cm-snippetFieldPosition",t}ignoreEvent(){return!1}}}),wt=I.mark({class:"cm-snippetField"});class yt{constructor(t,e){this.ranges=t,this.active=e,this.deco=I.set(t.map(t=>(t.from==t.to?bt:wt).range(t.from,t.to)))}map(t){let e=[];for(let n of this.ranges){let i=n.map(t);if(!i)return null;e.push(i)}return new yt(e,this.active)}selectionInsideField(t){return t.ranges.every(t=>this.ranges.some(e=>e.field==this.active&&e.from<=t.from&&e.to>=t.to))}}const xt=s.define({map:(t,e)=>t&&t.map(e)}),Ct=s.define(),It=t.define({create:()=>null,update(t,e){for(let n of e.effects){if(n.is(xt))return n.value;if(n.is(Ct)&&t)return new yt(t.ranges,n.value)}return t&&e.docChanged&&(t=t.map(e.changes)),t&&e.selection&&!t.selectionInsideField(e.selection)&&(t=null),t},provide:t=>g.decorations.from(t,t=>t?t.deco:I.none)});function Ot(t,e){return o.create(t.filter(t=>t.field==e).map(t=>o.range(t.from,t.to)))}function kt(t){let e=vt.parse(t);return(t,n,i,o)=>{let{text:l,ranges:r}=e.instantiate(t.state,i),{main:a}=t.state.selection,c={changes:{from:i,to:o==a.from?a.to:o,insert:m.of(l)},scrollIntoView:!0,annotations:n?[M.of(n),u.userEvent.of("input.complete")]:void 0};if(r.length&&(c.selection=Ot(r,0)),r.some(t=>t.field>0)){let e=new yt(r,0),n=c.effects=[xt.of(e)];void 0===t.state.field(It,!1)&&n.push(s.appendConfig.of([It,At,Et,ut]))}t.dispatch(t.state.update(c))}}function Dt(t){return({state:e,dispatch:n})=>{let i=e.field(It,!1);if(!i||t<0&&0==i.active)return!1;let o=i.active+t,s=t>0&&!i.ranges.some(e=>e.field==o+t);return n(e.update({selection:Ot(i.ranges,o),effects:xt.of(s?null:new yt(i.ranges,o)),scrollIntoView:!0})),!0}}const Tt=[{key:"Tab",run:Dt(1),shift:Dt(-1)},{key:"Escape",run:({state:t,dispatch:e})=>!!t.field(It,!1)&&(e(t.update({effects:xt.of(null)})),!0)}],St=n.define({combine:t=>t.length?t[0]:Tt}),At=e.highest(x.compute([St],t=>t.facet(St)));function Lt(t,e){return Object.assign(Object.assign({},e),{apply:kt(t)})}const Et=g.domEventHandlers({mousedown(t,e){let n,i=e.state.field(It,!1);if(!i||null==(n=e.posAtCoords({x:t.clientX,y:t.clientY})))return!1;let o=i.ranges.find(t=>t.from<=n&&t.to>=n);return!(!o||o.field==i.active)&&(e.dispatch({selection:Ot(i.ranges,o.field),effects:xt.of(i.ranges.some(t=>t.field>o.field)?new yt(i.ranges,o.field):null),scrollIntoView:!0}),!0)}}),Rt={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Pt=s.define({map(t,e){let n=e.mapPos(t,-1,p.TrackAfter);return null==n?void 0:n}}),Mt=new class extends f{};Mt.startSide=1,Mt.endSide=-1;const Bt=t.define({create:()=>r.empty,update(t,e){if(t=t.map(e.changes),e.selection){let n=e.state.doc.lineAt(e.selection.main.head);t=t.update({filter:t=>t>=n.from&&t<=n.to})}for(let n of e.effects)n.is(Pt)&&(t=t.update({add:[Mt.range(n.value,n.value+1)]}));return t}});function Ft(){return[Wt,Bt]}const jt="()[]{}<>«»»«[]{}";function $t(t){for(let e=0;e<16;e+=2)if(jt.charCodeAt(e)==t)return jt.charAt(e+1);return c(t<128?t:t+1)}function Nt(t,e){return t.languageDataAt("closeBrackets",e)[0]||Rt}const Ut="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),Wt=g.inputHandler.of((t,e,n,o)=>{if((Ut?t.composing:t.compositionStarted)||t.state.readOnly)return!1;let s=t.state.selection.main;if(o.length>2||2==o.length&&1==l(i(o,0))||e!=s.from||n!=s.to)return!1;let r=function(t,e){let n=Nt(t,t.selection.main.head),o=n.brackets||Rt.brackets;for(let s of o){let l=$t(i(s,0));if(e==s)return l==s?Qt(t,s,o.indexOf(s+s+s)>-1,n):zt(t,s,l,n.before||Rt.before);if(e==l&&Ht(t,t.selection.main.from))return Kt(t,s,l)}return null}(t.state,o);return!!r&&(t.dispatch(r),!0)}),qt=[{key:"Backspace",run:({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=Nt(t,t.selection.main.head).brackets||Rt.brackets,s=null,r=t.changeByRange(e=>{if(e.empty){let s=function(t,e){let n=t.sliceString(e-2,e);return l(i(n,0))==n.length?n:n.slice(1)}(t.doc,e.head);for(let l of n)if(l==s&&Vt(t.doc,e.head)==$t(i(l,0)))return{changes:{from:e.head-l.length,to:e.head+l.length},range:o.cursor(e.head-l.length)}}return{range:s=e}});return s||e(t.update(r,{scrollIntoView:!0,userEvent:"delete.backward"})),!s}}];function Ht(t,e){let n=!1;return t.field(Bt).between(0,t.doc.length,t=>{t==e&&(n=!0)}),n}function Vt(t,e){let n=t.sliceString(e,e+2);return n.slice(0,l(i(n,0)))}function zt(t,e,n,i){let s=null,l=t.changeByRange(l=>{if(!l.empty)return{changes:[{insert:e,from:l.from},{insert:n,from:l.to}],effects:Pt.of(l.to+e.length),range:o.range(l.anchor+e.length,l.head+e.length)};let r=Vt(t.doc,l.head);return!r||/\s/.test(r)||i.indexOf(r)>-1?{changes:{insert:e+n,from:l.head},effects:Pt.of(l.head+e.length),range:o.cursor(l.head+e.length)}:{range:s=l}});return s?null:t.update(l,{scrollIntoView:!0,userEvent:"input.type"})}function Kt(t,e,n){let i=null,s=t.changeByRange(e=>e.empty&&Vt(t.doc,e.head)==n?{changes:{from:e.head,to:e.head+n.length,insert:n},range:o.cursor(e.head+n.length)}:i={range:e});return i?null:t.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function Qt(t,e,n,i){let s=i.stringPrefixes||Rt.stringPrefixes,l=null,r=t.changeByRange(i=>{if(!i.empty)return{changes:[{insert:e,from:i.from},{insert:e,from:i.to}],effects:Pt.of(i.to+e.length),range:o.range(i.anchor+e.length,i.head+e.length)};let r,a=i.head,c=Vt(t.doc,a);if(c==e){if(_t(t,a))return{changes:{insert:e+e,from:a},effects:Pt.of(a+e.length),range:o.cursor(a+e.length)};if(Ht(t,a)){let i=n&&t.sliceDoc(a,a+3*e.length)==e+e+e?e+e+e:e;return{changes:{from:a,to:a+i.length,insert:i},range:o.cursor(a+i.length)}}}else{if(n&&t.sliceDoc(a-2*e.length,a)==e+e&&(r=Xt(t,a-2*e.length,s))>-1&&_t(t,r))return{changes:{insert:e+e+e+e,from:a},effects:Pt.of(a+e.length),range:o.cursor(a+e.length)};if(t.charCategorizer(a)(c)!=d.Word&&Xt(t,a,s)>-1&&!function(t,e,n,i){let o=k(t).resolveInner(e,-1),s=i.reduce((t,e)=>Math.max(t,e.length),0);for(let l=0;l<5;l++){let l=t.sliceDoc(o.from,Math.min(o.to,o.from+n.length+s)),r=l.indexOf(n);if(!r||r>-1&&i.indexOf(l.slice(0,r))>-1){let e=o.firstChild;for(;e&&e.from==o.from&&e.to-e.from>n.length+r;){if(t.sliceDoc(e.to-n.length,e.to)==n)return!1;e=e.firstChild}return!0}let a=o.to==e&&o.parent;if(!a)break;o=a}return!1}(t,a,e,s))return{changes:{insert:e+e,from:a},effects:Pt.of(a+e.length),range:o.cursor(a+e.length)}}return{range:l=i}});return l?null:t.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function _t(t,e){let n=k(t).resolveInner(e+1);return n.parent&&n.from==e}function Xt(t,e,n){let i=t.charCategorizer(e);if(i(t.sliceDoc(e-1,e))!=d.Word)return e;for(let o of n){let n=e-o.length;if(t.sliceDoc(n,e)==o&&i(t.sliceDoc(n-1,n))!=d.Word)return n}return-1}function Yt(t={}){return[dt,st,W.of(t),pt,Jt,ut]}const Gt=[{key:"Ctrl-Space",run:ct},{mac:"Alt-`",run:ct},{key:"Escape",run:t=>{let e=t.state.field(st,!1);return!(!e||!e.active.some(t=>0!=t.state))&&(t.dispatch({effects:$.of(null)}),!0)}},{key:"ArrowDown",run:at(!0)},{key:"ArrowUp",run:at(!1)},{key:"PageDown",run:at(!0,"page")},{key:"PageUp",run:at(!1,"page")},{key:"Enter",run:t=>{let e=t.state.field(st,!1);return!(t.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestamp<t.state.facet(W).interactionDelay)&&lt(t,e.open.options[e.open.selected])}}],Jt=e.highest(x.computeN([W],t=>t.facet(W).defaultKeymap?[Gt]:[]));export{Yt as a,qt as b,Ft as c,Gt as d,A as e,L as i,Lt as s};
2
- //# sourceMappingURL=index-1itZOIGg.js.map