repl-sdk 1.0.1 → 1.0.2

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 (261) hide show
  1. package/package.json +4 -12
  2. package/dist/apl-fqmucPXA.js +0 -141
  3. package/dist/apl-fqmucPXA.js.map +0 -1
  4. package/dist/asciiarmor-DucZyvP0.js +0 -57
  5. package/dist/asciiarmor-DucZyvP0.js.map +0 -1
  6. package/dist/asn1-BnOEsgAm.js +0 -145
  7. package/dist/asn1-BnOEsgAm.js.map +0 -1
  8. package/dist/assets/tar-worker-CxTcoQcr.js +0 -593
  9. package/dist/assets/tar-worker-CxTcoQcr.js.map +0 -1
  10. package/dist/asterisk-QAlztEwS.js +0 -346
  11. package/dist/asterisk-QAlztEwS.js.map +0 -1
  12. package/dist/brainfuck-DZVCuF_t.js +0 -54
  13. package/dist/brainfuck-DZVCuF_t.js.map +0 -1
  14. package/dist/clike-CTYGlS6x.js +0 -800
  15. package/dist/clike-CTYGlS6x.js.map +0 -1
  16. package/dist/clojure-BhXMqnxz.js +0 -850
  17. package/dist/clojure-BhXMqnxz.js.map +0 -1
  18. package/dist/cmake-BGaNd9E7.js +0 -72
  19. package/dist/cmake-BGaNd9E7.js.map +0 -1
  20. package/dist/cobol-4yqQntpt.js +0 -121
  21. package/dist/cobol-4yqQntpt.js.map +0 -1
  22. package/dist/codemirror-De3S70Np.js +0 -2912
  23. package/dist/codemirror-De3S70Np.js.map +0 -1
  24. package/dist/coffeescript-D2dXvhEc.js +0 -309
  25. package/dist/coffeescript-D2dXvhEc.js.map +0 -1
  26. package/dist/commonlisp-CF_VNHQR.js +0 -131
  27. package/dist/commonlisp-CF_VNHQR.js.map +0 -1
  28. package/dist/crystal-DyuLTqLs.js +0 -399
  29. package/dist/crystal-DyuLTqLs.js.map +0 -1
  30. package/dist/css-DkSyTW67.js +0 -1773
  31. package/dist/css-DkSyTW67.js.map +0 -1
  32. package/dist/cypher-Dlu_3r4V.js +0 -122
  33. package/dist/cypher-Dlu_3r4V.js.map +0 -1
  34. package/dist/d-UURgV0Ux.js +0 -180
  35. package/dist/d-UURgV0Ux.js.map +0 -1
  36. package/dist/diff-B_Bi2Crb.js +0 -26
  37. package/dist/diff-B_Bi2Crb.js.map +0 -1
  38. package/dist/dockerfile-Bvk733Ga.js +0 -202
  39. package/dist/dockerfile-Bvk733Ga.js.map +0 -1
  40. package/dist/dtd-Dy74G54E.js +0 -115
  41. package/dist/dtd-Dy74G54E.js.map +0 -1
  42. package/dist/dylan-TSb-Nfix.js +0 -315
  43. package/dist/dylan-TSb-Nfix.js.map +0 -1
  44. package/dist/ebnf-4fKAGW3a.js +0 -141
  45. package/dist/ebnf-4fKAGW3a.js.map +0 -1
  46. package/dist/ecl-B59qGGVg.js +0 -179
  47. package/dist/ecl-B59qGGVg.js.map +0 -1
  48. package/dist/eiffel-Dze7nlu3.js +0 -135
  49. package/dist/eiffel-Dze7nlu3.js.map +0 -1
  50. package/dist/elm-DG7jkhNZ.js +0 -177
  51. package/dist/elm-DG7jkhNZ.js.map +0 -1
  52. package/dist/erlang-BO6gOnGA.js +0 -675
  53. package/dist/erlang-BO6gOnGA.js.map +0 -1
  54. package/dist/factor-CMxFHDqz.js +0 -66
  55. package/dist/factor-CMxFHDqz.js.map +0 -1
  56. package/dist/fcl-CDDUNjTj.js +0 -142
  57. package/dist/fcl-CDDUNjTj.js.map +0 -1
  58. package/dist/forth-B9D2JCeE.js +0 -117
  59. package/dist/forth-B9D2JCeE.js.map +0 -1
  60. package/dist/fortran-CAG2BFbe.js +0 -468
  61. package/dist/fortran-CAG2BFbe.js.map +0 -1
  62. package/dist/gas-0Aw8zDr5.js +0 -294
  63. package/dist/gas-0Aw8zDr5.js.map +0 -1
  64. package/dist/gherkin-DhZlEZiy.js +0 -116
  65. package/dist/gherkin-DhZlEZiy.js.map +0 -1
  66. package/dist/gjs-DfguZDLq.js +0 -173
  67. package/dist/gjs-DfguZDLq.js.map +0 -1
  68. package/dist/gmd-Yas-Oo8k.js +0 -163
  69. package/dist/gmd-Yas-Oo8k.js.map +0 -1
  70. package/dist/groovy-CpwJiBl7.js +0 -224
  71. package/dist/groovy-CpwJiBl7.js.map +0 -1
  72. package/dist/haskell-ySd-OUo8.js +0 -460
  73. package/dist/haskell-ySd-OUo8.js.map +0 -1
  74. package/dist/haxe-7MlzfeYV.js +0 -515
  75. package/dist/haxe-7MlzfeYV.js.map +0 -1
  76. package/dist/hbs-CxcmWxSJ.js +0 -62
  77. package/dist/hbs-CxcmWxSJ.js.map +0 -1
  78. package/dist/http-BqypyemW.js +0 -80
  79. package/dist/http-BqypyemW.js.map +0 -1
  80. package/dist/idl-4HIGJlDI.js +0 -986
  81. package/dist/idl-4HIGJlDI.js.map +0 -1
  82. package/dist/index-B3Meoznj.js +0 -118
  83. package/dist/index-B3Meoznj.js.map +0 -1
  84. package/dist/index-BQyfDUUx.js +0 -692
  85. package/dist/index-BQyfDUUx.js.map +0 -1
  86. package/dist/index-BRDroAD8.js +0 -305
  87. package/dist/index-BRDroAD8.js.map +0 -1
  88. package/dist/index-BRMAzRyM.js +0 -179
  89. package/dist/index-BRMAzRyM.js.map +0 -1
  90. package/dist/index-Bb8uYQgv.js +0 -927
  91. package/dist/index-Bb8uYQgv.js.map +0 -1
  92. package/dist/index-BlOjO66K.js +0 -17618
  93. package/dist/index-BlOjO66K.js.map +0 -1
  94. package/dist/index-BoGWnSNL.js +0 -706
  95. package/dist/index-BoGWnSNL.js.map +0 -1
  96. package/dist/index-BsRrEiOu.js +0 -98
  97. package/dist/index-BsRrEiOu.js.map +0 -1
  98. package/dist/index-C2sFZMth.js +0 -391
  99. package/dist/index-C2sFZMth.js.map +0 -1
  100. package/dist/index-C7xwOjmS.js +0 -291
  101. package/dist/index-C7xwOjmS.js.map +0 -1
  102. package/dist/index-CA3lFUx6.js +0 -315
  103. package/dist/index-CA3lFUx6.js.map +0 -1
  104. package/dist/index-CB-pPTIf.js +0 -98
  105. package/dist/index-CB-pPTIf.js.map +0 -1
  106. package/dist/index-CCa6x1FE.js +0 -386
  107. package/dist/index-CCa6x1FE.js.map +0 -1
  108. package/dist/index-CD4DINI1.js +0 -158
  109. package/dist/index-CD4DINI1.js.map +0 -1
  110. package/dist/index-CE0B_fcG.js +0 -328
  111. package/dist/index-CE0B_fcG.js.map +0 -1
  112. package/dist/index-CVGAEPMV.js +0 -2139
  113. package/dist/index-CVGAEPMV.js.map +0 -1
  114. package/dist/index-CmaT2afn.js +0 -332
  115. package/dist/index-CmaT2afn.js.map +0 -1
  116. package/dist/index-D8sUxXp5.js +0 -83
  117. package/dist/index-D8sUxXp5.js.map +0 -1
  118. package/dist/index-DIz8Vpn-.js +0 -737
  119. package/dist/index-DIz8Vpn-.js.map +0 -1
  120. package/dist/index-DNP1xT-S.js +0 -408
  121. package/dist/index-DNP1xT-S.js.map +0 -1
  122. package/dist/index-DOAqdvnQ.js +0 -862
  123. package/dist/index-DOAqdvnQ.js.map +0 -1
  124. package/dist/index-DVUMFbgi.js +0 -152
  125. package/dist/index-DVUMFbgi.js.map +0 -1
  126. package/dist/index-VeTBKRVd.js +0 -83
  127. package/dist/index-VeTBKRVd.js.map +0 -1
  128. package/dist/index-dXZeR7Bx.js +0 -1767
  129. package/dist/index-dXZeR7Bx.js.map +0 -1
  130. package/dist/index-gtqbIb6T.js +0 -62
  131. package/dist/index-gtqbIb6T.js.map +0 -1
  132. package/dist/index-pN_pUAQ7.js +0 -2426
  133. package/dist/index-pN_pUAQ7.js.map +0 -1
  134. package/dist/index-wasu5VX0.js +0 -1150
  135. package/dist/index-wasu5VX0.js.map +0 -1
  136. package/dist/javascript-Bt8B7yTi.js +0 -993
  137. package/dist/javascript-Bt8B7yTi.js.map +0 -1
  138. package/dist/julia-Bs6JJhYG.js +0 -408
  139. package/dist/julia-Bs6JJhYG.js.map +0 -1
  140. package/dist/livescript-DmzgM3Yt.js +0 -297
  141. package/dist/livescript-DmzgM3Yt.js.map +0 -1
  142. package/dist/lua-8cJgIlqe.js +0 -257
  143. package/dist/lua-8cJgIlqe.js.map +0 -1
  144. package/dist/mathematica-DNLOL9PQ.js +0 -111
  145. package/dist/mathematica-DNLOL9PQ.js.map +0 -1
  146. package/dist/mbox-Ga7d4MMN.js +0 -118
  147. package/dist/mbox-Ga7d4MMN.js.map +0 -1
  148. package/dist/mirc-Dma3B8rS.js +0 -108
  149. package/dist/mirc-Dma3B8rS.js.map +0 -1
  150. package/dist/mllike-DHn7xckP.js +0 -335
  151. package/dist/mllike-DHn7xckP.js.map +0 -1
  152. package/dist/modelica-0d55jYY0.js +0 -148
  153. package/dist/modelica-0d55jYY0.js.map +0 -1
  154. package/dist/mscgen-DdqZYINH.js +0 -136
  155. package/dist/mscgen-DdqZYINH.js.map +0 -1
  156. package/dist/mumps-Btr8VblO.js +0 -94
  157. package/dist/mumps-Btr8VblO.js.map +0 -1
  158. package/dist/nginx-DTDtBDVN.js +0 -142
  159. package/dist/nginx-DTDtBDVN.js.map +0 -1
  160. package/dist/nsis-3zG7tgur.js +0 -63
  161. package/dist/nsis-3zG7tgur.js.map +0 -1
  162. package/dist/ntriples-CvgOYMpL.js +0 -154
  163. package/dist/ntriples-CvgOYMpL.js.map +0 -1
  164. package/dist/octave-DYBj3-tl.js +0 -201
  165. package/dist/octave-DYBj3-tl.js.map +0 -1
  166. package/dist/oz-R_e8WMIi.js +0 -232
  167. package/dist/oz-R_e8WMIi.js.map +0 -1
  168. package/dist/parse-CAqQaKsh.js +0 -21685
  169. package/dist/parse-CAqQaKsh.js.map +0 -1
  170. package/dist/pascal-GD8iposT.js +0 -106
  171. package/dist/pascal-GD8iposT.js.map +0 -1
  172. package/dist/perl-DL9mHpoi.js +0 -1106
  173. package/dist/perl-DL9mHpoi.js.map +0 -1
  174. package/dist/pig-C_4T4YIV.js +0 -102
  175. package/dist/pig-C_4T4YIV.js.map +0 -1
  176. package/dist/powershell-B0suO7Vd.js +0 -329
  177. package/dist/powershell-B0suO7Vd.js.map +0 -1
  178. package/dist/properties-BR-vP1aU.js +0 -59
  179. package/dist/properties-BR-vP1aU.js.map +0 -1
  180. package/dist/protobuf-BxgpyhoW.js +0 -78
  181. package/dist/protobuf-BxgpyhoW.js.map +0 -1
  182. package/dist/pug-vHnWR0UE.js +0 -406
  183. package/dist/pug-vHnWR0UE.js.map +0 -1
  184. package/dist/puppet-Bdao66PW.js +0 -138
  185. package/dist/puppet-Bdao66PW.js.map +0 -1
  186. package/dist/python-BFGRmuZ9.js +0 -427
  187. package/dist/python-BFGRmuZ9.js.map +0 -1
  188. package/dist/q-CrbCVq4a.js +0 -132
  189. package/dist/q-CrbCVq4a.js.map +0 -1
  190. package/dist/r-V7nswm59.js +0 -171
  191. package/dist/r-V7nswm59.js.map +0 -1
  192. package/dist/render-app-island-B-i8rvGi.js +0 -61
  193. package/dist/render-app-island-B-i8rvGi.js.map +0 -1
  194. package/dist/repl-sdk.js +0 -7
  195. package/dist/repl-sdk.js.map +0 -1
  196. package/dist/rpm-C-DLY-If.js +0 -110
  197. package/dist/rpm-C-DLY-If.js.map +0 -1
  198. package/dist/ruby-JDKLJNK0.js +0 -331
  199. package/dist/ruby-JDKLJNK0.js.map +0 -1
  200. package/dist/sas-D2UG-yhZ.js +0 -208
  201. package/dist/sas-D2UG-yhZ.js.map +0 -1
  202. package/dist/scheme-BKzrkGJD.js +0 -223
  203. package/dist/scheme-BKzrkGJD.js.map +0 -1
  204. package/dist/shell-BlsXDxCn.js +0 -223
  205. package/dist/shell-BlsXDxCn.js.map +0 -1
  206. package/dist/sieve-CjwBwOY5.js +0 -136
  207. package/dist/sieve-CjwBwOY5.js.map +0 -1
  208. package/dist/simple-mode-DMneyfDu.js +0 -131
  209. package/dist/simple-mode-DMneyfDu.js.map +0 -1
  210. package/dist/smalltalk-BOIGQuhN.js +0 -122
  211. package/dist/smalltalk-BOIGQuhN.js.map +0 -1
  212. package/dist/solr-CwD7U71z.js +0 -70
  213. package/dist/solr-CwD7U71z.js.map +0 -1
  214. package/dist/sparql-DYskk2vE.js +0 -250
  215. package/dist/sparql-DYskk2vE.js.map +0 -1
  216. package/dist/spreadsheet-Bgtt3oLP.js +0 -88
  217. package/dist/spreadsheet-Bgtt3oLP.js.map +0 -1
  218. package/dist/sql-Cei9CMfk.js +0 -343
  219. package/dist/sql-Cei9CMfk.js.map +0 -1
  220. package/dist/stex-C1nZSzAw.js +0 -231
  221. package/dist/stex-C1nZSzAw.js.map +0 -1
  222. package/dist/stylus-BkS-boTH.js +0 -566
  223. package/dist/stylus-BkS-boTH.js.map +0 -1
  224. package/dist/swift-FRZi1uvB.js +0 -292
  225. package/dist/swift-FRZi1uvB.js.map +0 -1
  226. package/dist/tcl-CUcaCdmq.js +0 -115
  227. package/dist/tcl-CUcaCdmq.js.map +0 -1
  228. package/dist/textile-BnFpjsrl.js +0 -415
  229. package/dist/textile-BnFpjsrl.js.map +0 -1
  230. package/dist/tiddlywiki-CjprD-Qp.js +0 -219
  231. package/dist/tiddlywiki-CjprD-Qp.js.map +0 -1
  232. package/dist/tiki-DK9DOeWn.js +0 -269
  233. package/dist/tiki-DK9DOeWn.js.map +0 -1
  234. package/dist/toml-BOuWGMcf.js +0 -77
  235. package/dist/toml-BOuWGMcf.js.map +0 -1
  236. package/dist/troff-E1bJ0PPL.js +0 -62
  237. package/dist/troff-E1bJ0PPL.js.map +0 -1
  238. package/dist/ttcn-cfg-Dc39-fIP.js +0 -134
  239. package/dist/ttcn-cfg-Dc39-fIP.js.map +0 -1
  240. package/dist/ttcn-tKd4HLu4.js +0 -193
  241. package/dist/ttcn-tKd4HLu4.js.map +0 -1
  242. package/dist/turtle-Dq7-1WAf.js +0 -125
  243. package/dist/turtle-Dq7-1WAf.js.map +0 -1
  244. package/dist/vb-Dp90gtsv.js +0 -197
  245. package/dist/vb-Dp90gtsv.js.map +0 -1
  246. package/dist/vbscript-Bfn8O8I7.js +0 -479
  247. package/dist/vbscript-Bfn8O8I7.js.map +0 -1
  248. package/dist/velocity-BwIZK1TH.js +0 -150
  249. package/dist/velocity-BwIZK1TH.js.map +0 -1
  250. package/dist/verilog-CnT9bMk0.js +0 -430
  251. package/dist/verilog-CnT9bMk0.js.map +0 -1
  252. package/dist/vhdl-DCkMIyT9.js +0 -159
  253. package/dist/vhdl-DCkMIyT9.js.map +0 -1
  254. package/dist/webidl-BTLTThCm.js +0 -205
  255. package/dist/webidl-BTLTThCm.js.map +0 -1
  256. package/dist/xquery-BrBUuxMR.js +0 -526
  257. package/dist/xquery-BrBUuxMR.js.map +0 -1
  258. package/dist/yacas-b5lAVEIl.js +0 -131
  259. package/dist/yacas-b5lAVEIl.js.map +0 -1
  260. package/dist/z80-ClgwfNdB.js +0 -93
  261. package/dist/z80-ClgwfNdB.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"gjs-DfguZDLq.js","sources":["../src/compilers/ember/gjs.js"],"sourcesContent":["import { cache } from '../../cache.js';\nimport { renderApp } from './render-app-island.js';\n\nlet elementId = 0;\n\nconst buildDependencies = [\n /**\n * The only version of babel that is easily runnable in the browser\n * This includes way too much stuff.\n */\n '@babel/standalone',\n /**\n * We will be using this decorator transform\n * instead of the babel one.\n * The babel transform does way too much transforming.\n */\n 'decorator-transforms',\n\n /**\n * Babel plugin that understands all the different ways\n * which templates have been authored and what they need to\n * compile to over the years.\n */\n 'babel-plugin-ember-template-compilation',\n /**\n * The actual template-compiler is ember-sounce-dependent,\n * because the underlying format / bytecodes / etc is private,\n * and can change between versions of ember-source.\n */\n 'ember-source/dist/ember-template-compiler.js',\n /**\n * Converts gjs/gts to standard js/ts\n */\n 'content-tag',\n /**\n * Older-style build macros\n * (before import.meta.env was even a thing)\n *\n * These remove `@glimmer/env` and DEBUG usages\n */\n 'babel-plugin-debug-macros',\n\n /**\n * build macros, because the ecosystem isn't standardized on imprt.meta.env?.X\n * Also, @embroider/macros does dead-code-elimination, which is handy.\n */\n // '@embroider/macros/babel',\n];\n\n/**\n * @type {import('../../types.ts').CompilerConfig['compiler']}\n */\nexport async function compiler(config, api) {\n const [\n _babel,\n _decoratorTransforms,\n _emberTemplateCompilation,\n compiler,\n contentTag,\n { default: DebugMacros },\n // embroiderMacros,\n ] = await api.tryResolveAll(buildDependencies);\n\n // These libraries are compiled incorrectly for cjs<->ESM compat\n const decoratorTransforms =\n 'default' in _decoratorTransforms ? _decoratorTransforms.default : _decoratorTransforms;\n\n const emberTemplateCompilation =\n 'default' in _emberTemplateCompilation\n ? _emberTemplateCompilation.default\n : _emberTemplateCompilation;\n\n const babel = 'availablePlugins' in _babel ? _babel : _babel.default;\n\n // let macros = embroiderMacros.buildMacros();\n\n /**\n * @param {string} text\n */\n async function transform(text) {\n return babel.transformAsync(text, {\n filename: `dynamic-repl.js`,\n plugins: [\n [\n emberTemplateCompilation,\n {\n compiler,\n transforms: [\n // ...macros.templateMacros\n ],\n targetFormat: 'wire',\n },\n ],\n [\n // @ts-ignore - we don't care about types here..\n decoratorTransforms,\n {\n runtime: {\n import: 'decorator-transforms/runtime-esm',\n },\n },\n ],\n // ...macros.babelMacros,\n [\n DebugMacros,\n {\n flags: [\n {\n source: '@glimmer/env',\n flags: {\n DEBUG: true,\n CI: false,\n },\n },\n ],\n debugTools: {\n isDebug: true,\n source: '@ember/debug',\n assertPredicateIndex: 1,\n },\n externalizeHelpers: {\n module: '@ember/debug',\n },\n },\n '@ember/debug stripping',\n ],\n [\n DebugMacros,\n {\n externalizeHelpers: {\n module: '@ember/application/deprecations',\n },\n debugTools: {\n isDebug: true,\n source: '@ember/application/deprecations',\n assertPredicateIndex: 1,\n },\n },\n '@ember/application/deprecations stripping',\n ],\n ],\n presets: [],\n });\n }\n\n const preprocessor = new contentTag.Preprocessor();\n\n /**\n * @type {import('../../types.ts').Compiler}\n */\n const gjsCompiler = {\n compile: async (text, options) => {\n const { code: preprocessed } = preprocessor.process(text, { filename: 'dynamic-repl.js' });\n const transformed = await transform(preprocessed);\n\n const code = transformed.code;\n\n return code;\n },\n render: async (element, compiled, extra, compiler) => {\n /**\n *\n * TODO: These will make things easier:\n * https://github.com/emberjs/rfcs/pull/1099\n * https://github.com/ember-cli/ember-addon-blueprint/blob/main/files/tests/test-helper.js\n */\n const attribute = `data-repl-sdk-ember-gjs-${elementId++}`;\n\n element.setAttribute(attribute, '');\n\n const [application, destroyable, resolver, router, route, testWaiters, runloop] =\n await compiler.tryResolveAll([\n '@ember/application',\n '@ember/destroyable',\n 'ember-resolver',\n '@ember/routing/router',\n '@ember/routing/route',\n '@ember/test-waiters',\n '@ember/runloop',\n ]);\n\n // We don't want to await here, because we need to early\n // return the element so that the app can render in to it.\n // (Ember will only render in to an element if it's present in the DOM)\n return renderApp({\n element,\n selector: `[${attribute}]`,\n component: compiled,\n log: compiler.announce,\n modules: {\n application,\n destroyable,\n resolver,\n router,\n route,\n testWaiters,\n runloop,\n },\n });\n },\n handlers: {\n js: async (text) => {\n return gjsCompiler.compile(text, {});\n },\n mjs: async (text) => {\n return gjsCompiler.compile(text, {});\n },\n },\n };\n\n return gjsCompiler;\n}\n"],"names":["compiler"],"mappings":"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"}
@@ -1,163 +0,0 @@
1
- import { b as buildCodeFenceMetaUtils, i as isRecord, a as assert } from "./index-CVGAEPMV.js";
2
- import { r as renderApp } from "./render-app-island-B-i8rvGi.js";
3
- let elementId = 0;
4
- function filterOptions(options) {
5
- if (!isRecord(options)) {
6
- return {
7
- scope: {},
8
- remarkPlugins: [],
9
- rehypePlugins: [],
10
- ShadowComponent: void 0,
11
- CopyComponent: void 0
12
- };
13
- }
14
- return {
15
- scope: (
16
- /** @type {Record<string, unknown>}*/
17
- options?.scope || {}
18
- ),
19
- remarkPlugins: (
20
- /** @type {Plugin[]}*/
21
- options?.remarkPlugins || []
22
- ),
23
- rehypePlugins: (
24
- /** @type {Plugin[]}*/
25
- options?.rehypePlugins || []
26
- ),
27
- ShadowComponent: (
28
- /** @type {string}*/
29
- options?.ShadowComponent
30
- ),
31
- CopyComponent: (
32
- /** @type {string}*/
33
- options?.CopyComponent
34
- )
35
- };
36
- }
37
- async function compiler(config, api) {
38
- const userOptions = filterOptions(
39
- /** @type {Record<string, unknown>} */
40
- config.userOptions?.gmd || config
41
- );
42
- const { isLive, isPreview, needsLive, allowedFormats, getFlavorFromMeta, isBelow } = buildCodeFenceMetaUtils(api);
43
- const { parseMarkdown } = await import("./parse-CAqQaKsh.js");
44
- const gmdCompiler = {
45
- compile: async (text, options) => {
46
- const compileOptions = filterOptions(options);
47
- const result = await parseMarkdown(text, {
48
- remarkPlugins: [...userOptions.remarkPlugins, ...compileOptions.remarkPlugins],
49
- rehypePlugins: [...userOptions.rehypePlugins, ...compileOptions.rehypePlugins],
50
- isLive,
51
- isPreview,
52
- isBelow,
53
- needsLive,
54
- ALLOWED_FORMATS: allowedFormats,
55
- getFlavorFromMeta
56
- });
57
- const { template } = await api.tryResolve("@ember/template-compiler/runtime");
58
- const scope = {
59
- ...filterOptions(userOptions).scope,
60
- ...filterOptions(options).scope
61
- };
62
- const component = template(result.text, {
63
- scope: () => ({
64
- ...scope
65
- // TODO: compile all the components from "result" and add them to scope here
66
- // would this be better than the markdown style multiple islands
67
- })
68
- });
69
- return { compiled: component, ...result, scope };
70
- },
71
- render: async (element, compiled, extra, compiler2) => {
72
- const attribute = `data-repl-sdk-ember-gmd-${elementId++}`;
73
- element.setAttribute(attribute, "");
74
- const [application, destroyable, resolver, router, route, testWaiters, runloop] = await compiler2.tryResolveAll([
75
- "@ember/application",
76
- "@ember/destroyable",
77
- "ember-resolver",
78
- "@ember/routing/router",
79
- "@ember/routing/route",
80
- "@ember/test-waiters",
81
- "@ember/runloop"
82
- ]);
83
- const destroy = await renderApp({
84
- element,
85
- selector: `[${attribute}]`,
86
- component: compiled,
87
- log: compiler2.announce,
88
- modules: {
89
- application,
90
- destroyable,
91
- resolver,
92
- router,
93
- route,
94
- testWaiters,
95
- runloop
96
- }
97
- });
98
- const destroyables = [];
99
- await Promise.all(
100
- /** @type {unknown[]} */
101
- extra.codeBlocks.map(async (info) => {
102
- const infoObj = (
103
- /** @type {Record<string, unknown>} */
104
- info
105
- );
106
- if (!api.canCompile(
107
- /** @type {string} */
108
- infoObj.format,
109
- /** @type {string} */
110
- infoObj.flavor
111
- )) {
112
- return;
113
- }
114
- const flavor = (
115
- /** @type {string} */
116
- infoObj.flavor
117
- );
118
- const hasScope = flavor === "ember" || infoObj.format === "gjs" || infoObj.format === "hbs";
119
- const subRender = await compiler2.compile(
120
- /** @type {string} */
121
- infoObj.format,
122
- /** @type {string} */
123
- infoObj.code,
124
- {
125
- ...compiler2.optionsFor(
126
- /** @type {string} */
127
- infoObj.format,
128
- flavor
129
- ),
130
- flavor,
131
- // @ts-ignore
132
- ...hasScope ? {
133
- scope: extra.scope
134
- } : {}
135
- }
136
- );
137
- const selector = `#${/** @type {string} */
138
- infoObj.placeholderId}`;
139
- const target = element.querySelector(selector);
140
- assert(
141
- `Could not find placeholder / target element (using selector: \`${selector}\`). Could not render ${/** @type {string} */
142
- infoObj.format} block.`,
143
- target
144
- );
145
- destroyables.push(subRender.destroy);
146
- target.appendChild(subRender.element);
147
- })
148
- );
149
- return () => {
150
- for (const subDestroy of destroyables) {
151
- subDestroy();
152
- }
153
- destroy();
154
- };
155
- }
156
- };
157
- return gmdCompiler;
158
- }
159
- export {
160
- compiler,
161
- filterOptions
162
- };
163
- //# sourceMappingURL=gmd-Yas-Oo8k.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gmd-Yas-Oo8k.js","sources":["../src/compilers/ember/gmd.js"],"sourcesContent":["/**\n * @typedef {import('unified').Plugin} Plugin\n */\nimport { assert, isRecord } from '../../utils.js';\nimport { buildCodeFenceMetaUtils } from '../markdown/utils.js';\nimport { renderApp } from './render-app-island.js';\n\nlet elementId = 0;\n\n/**\n * @param {unknown} [ options ]\n * @returns {{\n * scope: Record<string, unknown>,\n * remarkPlugins: Plugin[],\n * rehypePlugins: Plugin[],\n * ShadowComponent: string | undefined,\n * CopyComponent: string | undefined\n * }}\n */\nexport function filterOptions(options) {\n if (!isRecord(options)) {\n return {\n scope: {},\n remarkPlugins: [],\n rehypePlugins: [],\n ShadowComponent: undefined,\n CopyComponent: undefined,\n };\n }\n\n return {\n scope: /** @type {Record<string, unknown>}*/ (options?.scope || {}),\n remarkPlugins: /** @type {Plugin[]}*/ (options?.remarkPlugins || []),\n rehypePlugins: /** @type {Plugin[]}*/ (options?.rehypePlugins || []),\n ShadowComponent: /** @type {string}*/ (options?.ShadowComponent),\n CopyComponent: /** @type {string}*/ (options?.CopyComponent),\n };\n}\n\n/**\n * @type {import('../../types.ts').CompilerConfig['compiler']}\n */\nexport async function compiler(config, api) {\n const userOptions = filterOptions(\n /** @type {Record<string, unknown>} */ (config.userOptions)?.gmd || config\n );\n\n const { isLive, isPreview, needsLive, allowedFormats, getFlavorFromMeta, isBelow } =\n buildCodeFenceMetaUtils(api);\n\n const { parseMarkdown } = await import('../markdown/parse.js');\n\n /**\n * @type {import('../../types.ts').Compiler}\n */\n const gmdCompiler = {\n compile: async (text, options) => {\n const compileOptions = filterOptions(options);\n const result = await parseMarkdown(text, {\n remarkPlugins: [...userOptions.remarkPlugins, ...compileOptions.remarkPlugins],\n rehypePlugins: [...userOptions.rehypePlugins, ...compileOptions.rehypePlugins],\n isLive,\n isPreview,\n isBelow,\n needsLive,\n ALLOWED_FORMATS: allowedFormats,\n getFlavorFromMeta,\n });\n\n const { template } = await api.tryResolve('@ember/template-compiler/runtime');\n\n const scope = {\n ...filterOptions(userOptions).scope,\n ...filterOptions(options).scope,\n };\n\n const component = template(result.text, {\n scope: () => ({\n ...scope,\n // TODO: compile all the components from \"result\" and add them to scope here\n // would this be better than the markdown style multiple islands\n }),\n });\n\n return { compiled: component, ...result, scope };\n },\n render: async (element, compiled, extra, compiler) => {\n /**\n *\n * TODO: These will make things easier:\n * https://github.com/emberjs/rfcs/pull/1099\n * https://github.com/ember-cli/ember-addon-blueprint/blob/main/files/tests/test-helper.js\n */\n const attribute = `data-repl-sdk-ember-gmd-${elementId++}`;\n\n element.setAttribute(attribute, '');\n\n const [application, destroyable, resolver, router, route, testWaiters, runloop] =\n await compiler.tryResolveAll([\n '@ember/application',\n '@ember/destroyable',\n 'ember-resolver',\n '@ember/routing/router',\n '@ember/routing/route',\n '@ember/test-waiters',\n '@ember/runloop',\n ]);\n\n // We don't want to await here, because we need to early\n // return the element so that the app can render in to it.\n // (Ember will only render in to an element if it's present in the DOM)\n const destroy = await renderApp({\n element,\n selector: `[${attribute}]`,\n component: compiled,\n log: compiler.announce,\n modules: {\n application,\n destroyable,\n resolver,\n router,\n route,\n testWaiters,\n runloop,\n },\n });\n\n /**\n * @type {(() => void)[]}\n */\n const destroyables = [];\n\n await Promise.all(\n /** @type {unknown[]} */ (extra.codeBlocks).map(async (/** @type {unknown} */ info) => {\n /** @type {Record<string, unknown>} */\n const infoObj = /** @type {Record<string, unknown>} */ (info);\n\n if (\n !api.canCompile(\n /** @type {string} */ (infoObj.format),\n /** @type {string} */ (infoObj.flavor)\n )\n ) {\n return;\n }\n\n const flavor = /** @type {string} */ (infoObj.flavor);\n const hasScope =\n flavor === 'ember' || infoObj.format === 'gjs' || infoObj.format === 'hbs';\n const subRender = await compiler.compile(\n /** @type {string} */ (infoObj.format),\n /** @type {string} */ (infoObj.code),\n {\n ...compiler.optionsFor(/** @type {string} */ (infoObj.format), flavor),\n flavor: flavor,\n // @ts-ignore\n ...(hasScope\n ? {\n scope: extra.scope,\n }\n : {}),\n }\n );\n\n const selector = `#${/** @type {string} */ (infoObj.placeholderId)}`;\n const target = element.querySelector(selector);\n\n assert(\n `Could not find placeholder / target element (using selector: \\`${selector}\\`). ` +\n `Could not render ${/** @type {string} */ (infoObj.format)} block.`,\n target\n );\n\n destroyables.push(subRender.destroy);\n target.appendChild(subRender.element);\n })\n );\n\n return () => {\n for (const subDestroy of destroyables) {\n subDestroy();\n }\n\n destroy();\n };\n },\n };\n\n return gmdCompiler;\n}\n"],"names":["compiler"],"mappings":"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"}
@@ -1,224 +0,0 @@
1
- function words(str) {
2
- var obj = {}, words2 = str.split(" ");
3
- for (var i = 0; i < words2.length; ++i) obj[words2[i]] = true;
4
- return obj;
5
- }
6
- var keywords = words(
7
- "abstract as assert boolean break byte case catch char class const continue def default do double else enum extends final finally float for goto if implements import in instanceof int interface long native new package private protected public return short static strictfp super switch synchronized threadsafe throw throws trait transient try void volatile while"
8
- );
9
- var blockKeywords = words("catch class def do else enum finally for if interface switch trait try while");
10
- var standaloneKeywords = words("return break continue");
11
- var atoms = words("null true false this");
12
- var curPunc;
13
- function tokenBase(stream, state) {
14
- var ch = stream.next();
15
- if (ch == '"' || ch == "'") {
16
- return startString(ch, stream, state);
17
- }
18
- if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
19
- curPunc = ch;
20
- return null;
21
- }
22
- if (/\d/.test(ch)) {
23
- stream.eatWhile(/[\w\.]/);
24
- if (stream.eat(/eE/)) {
25
- stream.eat(/\+\-/);
26
- stream.eatWhile(/\d/);
27
- }
28
- return "number";
29
- }
30
- if (ch == "/") {
31
- if (stream.eat("*")) {
32
- state.tokenize.push(tokenComment);
33
- return tokenComment(stream, state);
34
- }
35
- if (stream.eat("/")) {
36
- stream.skipToEnd();
37
- return "comment";
38
- }
39
- if (expectExpression(state.lastToken, false)) {
40
- return startString(ch, stream, state);
41
- }
42
- }
43
- if (ch == "-" && stream.eat(">")) {
44
- curPunc = "->";
45
- return null;
46
- }
47
- if (/[+\-*&%=<>!?|\/~]/.test(ch)) {
48
- stream.eatWhile(/[+\-*&%=<>|~]/);
49
- return "operator";
50
- }
51
- stream.eatWhile(/[\w\$_]/);
52
- if (ch == "@") {
53
- stream.eatWhile(/[\w\$_\.]/);
54
- return "meta";
55
- }
56
- if (state.lastToken == ".") return "property";
57
- if (stream.eat(":")) {
58
- curPunc = "proplabel";
59
- return "property";
60
- }
61
- var cur = stream.current();
62
- if (atoms.propertyIsEnumerable(cur)) {
63
- return "atom";
64
- }
65
- if (keywords.propertyIsEnumerable(cur)) {
66
- if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
67
- else if (standaloneKeywords.propertyIsEnumerable(cur)) curPunc = "standalone";
68
- return "keyword";
69
- }
70
- return "variable";
71
- }
72
- tokenBase.isBase = true;
73
- function startString(quote, stream, state) {
74
- var tripleQuoted = false;
75
- if (quote != "/" && stream.eat(quote)) {
76
- if (stream.eat(quote)) tripleQuoted = true;
77
- else return "string";
78
- }
79
- function t(stream2, state2) {
80
- var escaped = false, next, end = !tripleQuoted;
81
- while ((next = stream2.next()) != null) {
82
- if (next == quote && !escaped) {
83
- if (!tripleQuoted) {
84
- break;
85
- }
86
- if (stream2.match(quote + quote)) {
87
- end = true;
88
- break;
89
- }
90
- }
91
- if (quote == '"' && next == "$" && !escaped) {
92
- if (stream2.eat("{")) {
93
- state2.tokenize.push(tokenBaseUntilBrace());
94
- return "string";
95
- } else if (stream2.match(/^\w/, false)) {
96
- state2.tokenize.push(tokenVariableDeref);
97
- return "string";
98
- }
99
- }
100
- escaped = !escaped && next == "\\";
101
- }
102
- if (end) state2.tokenize.pop();
103
- return "string";
104
- }
105
- state.tokenize.push(t);
106
- return t(stream, state);
107
- }
108
- function tokenBaseUntilBrace() {
109
- var depth = 1;
110
- function t(stream, state) {
111
- if (stream.peek() == "}") {
112
- depth--;
113
- if (depth == 0) {
114
- state.tokenize.pop();
115
- return state.tokenize[state.tokenize.length - 1](stream, state);
116
- }
117
- } else if (stream.peek() == "{") {
118
- depth++;
119
- }
120
- return tokenBase(stream, state);
121
- }
122
- t.isBase = true;
123
- return t;
124
- }
125
- function tokenVariableDeref(stream, state) {
126
- var next = stream.match(/^(\.|[\w\$_]+)/);
127
- if (!next || !stream.match(next[0] == "." ? /^[\w$_]/ : /^\./)) state.tokenize.pop();
128
- if (!next) return state.tokenize[state.tokenize.length - 1](stream, state);
129
- return next[0] == "." ? null : "variable";
130
- }
131
- function tokenComment(stream, state) {
132
- var maybeEnd = false, ch;
133
- while (ch = stream.next()) {
134
- if (ch == "/" && maybeEnd) {
135
- state.tokenize.pop();
136
- break;
137
- }
138
- maybeEnd = ch == "*";
139
- }
140
- return "comment";
141
- }
142
- function expectExpression(last, newline) {
143
- return !last || last == "operator" || last == "->" || /[\.\[\{\(,;:]/.test(last) || last == "newstatement" || last == "keyword" || last == "proplabel" || last == "standalone" && !newline;
144
- }
145
- function Context(indented, column, type, align, prev) {
146
- this.indented = indented;
147
- this.column = column;
148
- this.type = type;
149
- this.align = align;
150
- this.prev = prev;
151
- }
152
- function pushContext(state, col, type) {
153
- return state.context = new Context(state.indented, col, type, null, state.context);
154
- }
155
- function popContext(state) {
156
- var t = state.context.type;
157
- if (t == ")" || t == "]" || t == "}")
158
- state.indented = state.context.indented;
159
- return state.context = state.context.prev;
160
- }
161
- const groovy = {
162
- name: "groovy",
163
- startState: function(indentUnit) {
164
- return {
165
- tokenize: [tokenBase],
166
- context: new Context(-indentUnit, 0, "top", false),
167
- indented: 0,
168
- startOfLine: true,
169
- lastToken: null
170
- };
171
- },
172
- token: function(stream, state) {
173
- var ctx = state.context;
174
- if (stream.sol()) {
175
- if (ctx.align == null) ctx.align = false;
176
- state.indented = stream.indentation();
177
- state.startOfLine = true;
178
- if (ctx.type == "statement" && !expectExpression(state.lastToken, true)) {
179
- popContext(state);
180
- ctx = state.context;
181
- }
182
- }
183
- if (stream.eatSpace()) return null;
184
- curPunc = null;
185
- var style = state.tokenize[state.tokenize.length - 1](stream, state);
186
- if (style == "comment") return style;
187
- if (ctx.align == null) ctx.align = true;
188
- if ((curPunc == ";" || curPunc == ":") && ctx.type == "statement") popContext(state);
189
- else if (curPunc == "->" && ctx.type == "statement" && ctx.prev.type == "}") {
190
- popContext(state);
191
- state.context.align = false;
192
- } else if (curPunc == "{") pushContext(state, stream.column(), "}");
193
- else if (curPunc == "[") pushContext(state, stream.column(), "]");
194
- else if (curPunc == "(") pushContext(state, stream.column(), ")");
195
- else if (curPunc == "}") {
196
- while (ctx.type == "statement") ctx = popContext(state);
197
- if (ctx.type == "}") ctx = popContext(state);
198
- while (ctx.type == "statement") ctx = popContext(state);
199
- } else if (curPunc == ctx.type) popContext(state);
200
- else if (ctx.type == "}" || ctx.type == "top" || ctx.type == "statement" && curPunc == "newstatement")
201
- pushContext(state, stream.column(), "statement");
202
- state.startOfLine = false;
203
- state.lastToken = curPunc || style;
204
- return style;
205
- },
206
- indent: function(state, textAfter, cx) {
207
- if (!state.tokenize[state.tokenize.length - 1].isBase) return null;
208
- var firstChar = textAfter && textAfter.charAt(0), ctx = state.context;
209
- if (ctx.type == "statement" && !expectExpression(state.lastToken, true)) ctx = ctx.prev;
210
- var closing = firstChar == ctx.type;
211
- if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : cx.unit);
212
- else if (ctx.align) return ctx.column + (closing ? 0 : 1);
213
- else return ctx.indented + (closing ? 0 : cx.unit);
214
- },
215
- languageData: {
216
- indentOnInput: /^\s*[{}]$/,
217
- commentTokens: { line: "//", block: { open: "/*", close: "*/" } },
218
- closeBrackets: { brackets: ["(", "[", "{", "'", '"', "'''", '"""'] }
219
- }
220
- };
221
- export {
222
- groovy
223
- };
224
- //# sourceMappingURL=groovy-CpwJiBl7.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"groovy-CpwJiBl7.js","sources":["../../../node_modules/.pnpm/@codemirror+legacy-modes@6.5.2/node_modules/@codemirror/legacy-modes/mode/groovy.js"],"sourcesContent":["function words(str) {\n var obj = {}, words = str.split(\" \");\n for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n return obj;\n}\nvar keywords = words(\n \"abstract as assert boolean break byte case catch char class const continue def default \" +\n \"do double else enum extends final finally float for goto if implements import in \" +\n \"instanceof int interface long native new package private protected public return \" +\n \"short static strictfp super switch synchronized threadsafe throw throws trait transient \" +\n \"try void volatile while\");\nvar blockKeywords = words(\"catch class def do else enum finally for if interface switch trait try while\");\nvar standaloneKeywords = words(\"return break continue\");\nvar atoms = words(\"null true false this\");\n\nvar curPunc;\nfunction tokenBase(stream, state) {\n var ch = stream.next();\n if (ch == '\"' || ch == \"'\") {\n return startString(ch, stream, state);\n }\n if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n curPunc = ch;\n return null;\n }\n if (/\\d/.test(ch)) {\n stream.eatWhile(/[\\w\\.]/);\n if (stream.eat(/eE/)) { stream.eat(/\\+\\-/); stream.eatWhile(/\\d/); }\n return \"number\";\n }\n if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize.push(tokenComment);\n return tokenComment(stream, state);\n }\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n if (expectExpression(state.lastToken, false)) {\n return startString(ch, stream, state);\n }\n }\n if (ch == \"-\" && stream.eat(\">\")) {\n curPunc = \"->\";\n return null;\n }\n if (/[+\\-*&%=<>!?|\\/~]/.test(ch)) {\n stream.eatWhile(/[+\\-*&%=<>|~]/);\n return \"operator\";\n }\n stream.eatWhile(/[\\w\\$_]/);\n if (ch == \"@\") { stream.eatWhile(/[\\w\\$_\\.]/); return \"meta\"; }\n if (state.lastToken == \".\") return \"property\";\n if (stream.eat(\":\")) { curPunc = \"proplabel\"; return \"property\"; }\n var cur = stream.current();\n if (atoms.propertyIsEnumerable(cur)) { return \"atom\"; }\n if (keywords.propertyIsEnumerable(cur)) {\n if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n else if (standaloneKeywords.propertyIsEnumerable(cur)) curPunc = \"standalone\";\n return \"keyword\";\n }\n return \"variable\";\n}\ntokenBase.isBase = true;\n\nfunction startString(quote, stream, state) {\n var tripleQuoted = false;\n if (quote != \"/\" && stream.eat(quote)) {\n if (stream.eat(quote)) tripleQuoted = true;\n else return \"string\";\n }\n function t(stream, state) {\n var escaped = false, next, end = !tripleQuoted;\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) {\n if (!tripleQuoted) { break; }\n if (stream.match(quote + quote)) { end = true; break; }\n }\n if (quote == '\"' && next == \"$\" && !escaped) {\n if (stream.eat(\"{\")) {\n state.tokenize.push(tokenBaseUntilBrace());\n return \"string\";\n } else if (stream.match(/^\\w/, false)) {\n state.tokenize.push(tokenVariableDeref);\n return \"string\";\n }\n }\n escaped = !escaped && next == \"\\\\\";\n }\n if (end) state.tokenize.pop();\n return \"string\";\n }\n state.tokenize.push(t);\n return t(stream, state);\n}\n\nfunction tokenBaseUntilBrace() {\n var depth = 1;\n function t(stream, state) {\n if (stream.peek() == \"}\") {\n depth--;\n if (depth == 0) {\n state.tokenize.pop();\n return state.tokenize[state.tokenize.length-1](stream, state);\n }\n } else if (stream.peek() == \"{\") {\n depth++;\n }\n return tokenBase(stream, state);\n }\n t.isBase = true;\n return t;\n}\n\nfunction tokenVariableDeref(stream, state) {\n var next = stream.match(/^(\\.|[\\w\\$_]+)/)\n if (!next || !stream.match(next[0] == \".\" ? /^[\\w$_]/ : /^\\./)) state.tokenize.pop()\n if (!next) return state.tokenize[state.tokenize.length-1](stream, state)\n return next[0] == \".\" ? null : \"variable\"\n}\n\nfunction tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize.pop();\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return \"comment\";\n}\n\nfunction expectExpression(last, newline) {\n return !last || last == \"operator\" || last == \"->\" || /[\\.\\[\\{\\(,;:]/.test(last) ||\n last == \"newstatement\" || last == \"keyword\" || last == \"proplabel\" ||\n (last == \"standalone\" && !newline);\n}\n\nfunction Context(indented, column, type, align, prev) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.align = align;\n this.prev = prev;\n}\nfunction pushContext(state, col, type) {\n return state.context = new Context(state.indented, col, type, null, state.context);\n}\nfunction popContext(state) {\n var t = state.context.type;\n if (t == \")\" || t == \"]\" || t == \"}\")\n state.indented = state.context.indented;\n return state.context = state.context.prev;\n}\n\n// Interface\n\nexport const groovy = {\n name: \"groovy\",\n startState: function(indentUnit) {\n return {\n tokenize: [tokenBase],\n context: new Context(-indentUnit, 0, \"top\", false),\n indented: 0,\n startOfLine: true,\n lastToken: null\n };\n },\n\n token: function(stream, state) {\n var ctx = state.context;\n if (stream.sol()) {\n if (ctx.align == null) ctx.align = false;\n state.indented = stream.indentation();\n state.startOfLine = true;\n // Automatic semicolon insertion\n if (ctx.type == \"statement\" && !expectExpression(state.lastToken, true)) {\n popContext(state); ctx = state.context;\n }\n }\n if (stream.eatSpace()) return null;\n curPunc = null;\n var style = state.tokenize[state.tokenize.length-1](stream, state);\n if (style == \"comment\") return style;\n if (ctx.align == null) ctx.align = true;\n\n if ((curPunc == \";\" || curPunc == \":\") && ctx.type == \"statement\") popContext(state);\n // Handle indentation for {x -> \\n ... }\n else if (curPunc == \"->\" && ctx.type == \"statement\" && ctx.prev.type == \"}\") {\n popContext(state);\n state.context.align = false;\n }\n else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n else if (curPunc == \"}\") {\n while (ctx.type == \"statement\") ctx = popContext(state);\n if (ctx.type == \"}\") ctx = popContext(state);\n while (ctx.type == \"statement\") ctx = popContext(state);\n }\n else if (curPunc == ctx.type) popContext(state);\n else if (ctx.type == \"}\" || ctx.type == \"top\" || (ctx.type == \"statement\" && curPunc == \"newstatement\"))\n pushContext(state, stream.column(), \"statement\");\n state.startOfLine = false;\n state.lastToken = curPunc || style;\n return style;\n },\n\n indent: function(state, textAfter, cx) {\n if (!state.tokenize[state.tokenize.length-1].isBase) return null;\n var firstChar = textAfter && textAfter.charAt(0), ctx = state.context;\n if (ctx.type == \"statement\" && !expectExpression(state.lastToken, true)) ctx = ctx.prev;\n var closing = firstChar == ctx.type;\n if (ctx.type == \"statement\") return ctx.indented + (firstChar == \"{\" ? 0 : cx.unit);\n else if (ctx.align) return ctx.column + (closing ? 0 : 1);\n else return ctx.indented + (closing ? 0 : cx.unit);\n },\n\n languageData: {\n indentOnInput: /^\\s*[{}]$/,\n commentTokens: {line: \"//\", block: {open: \"/*\", close: \"*/\"}},\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', \"'''\", '\"\"\"']}\n }\n};\n"],"names":["words","stream","state"],"mappings":"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","x_google_ignoreList":[0]}