wasm-idle 0.7.2 → 1.0.0

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 (386) hide show
  1. package/README.md +760 -81
  2. package/dist/index.d.ts +4 -9
  3. package/dist/index.js +2 -4
  4. package/dist/playground/applicationAssets.d.ts +4 -0
  5. package/dist/playground/applicationAssets.js +277 -0
  6. package/dist/playground/assemblyscript.d.ts +41 -0
  7. package/dist/playground/assemblyscript.js +630 -0
  8. package/dist/playground/assetBridge.d.ts +18 -7
  9. package/dist/playground/assetBridge.js +824 -100
  10. package/dist/playground/assets.d.ts +813 -19
  11. package/dist/playground/assets.js +2096 -156
  12. package/dist/playground/awk.d.ts +5 -0
  13. package/dist/playground/awk.js +60 -0
  14. package/dist/playground/bash.d.ts +53 -0
  15. package/dist/playground/bash.js +1096 -0
  16. package/dist/playground/bashWorkerProtocol.d.ts +88 -0
  17. package/dist/playground/bashWorkerProtocol.js +135 -0
  18. package/dist/playground/bqn.d.ts +5 -0
  19. package/dist/playground/bqn.js +57 -0
  20. package/dist/playground/bqnPreflight.d.ts +26 -0
  21. package/dist/playground/bqnPreflight.js +399 -0
  22. package/dist/playground/c3.d.ts +15 -0
  23. package/dist/playground/c3.js +154 -0
  24. package/dist/playground/clang.d.ts +35 -19
  25. package/dist/playground/clang.js +241 -52
  26. package/dist/playground/clangAssetIntegrity.d.ts +32 -0
  27. package/dist/playground/clangAssetIntegrity.js +8 -0
  28. package/dist/playground/clojurescript.d.ts +5 -0
  29. package/dist/playground/clojurescript.js +59 -0
  30. package/dist/playground/clojurescriptPreflight.d.ts +26 -0
  31. package/dist/playground/clojurescriptPreflight.js +383 -0
  32. package/dist/playground/cobol.d.ts +46 -0
  33. package/dist/playground/cobol.js +703 -0
  34. package/dist/playground/d.d.ts +47 -0
  35. package/dist/playground/d.js +644 -0
  36. package/dist/playground/dOuterAssets.d.ts +16 -0
  37. package/dist/playground/dOuterAssets.js +163 -0
  38. package/dist/playground/dotnet.d.ts +99 -0
  39. package/dist/playground/dotnet.js +1131 -0
  40. package/dist/playground/duckdb.d.ts +36 -0
  41. package/dist/playground/duckdb.js +542 -0
  42. package/dist/playground/elixir.d.ts +18 -10
  43. package/dist/playground/elixir.js +630 -96
  44. package/dist/playground/elixirAssets.d.ts +6 -0
  45. package/dist/playground/elixirAssets.js +33 -0
  46. package/dist/playground/executionObservation.d.ts +22 -0
  47. package/dist/playground/executionObservation.js +65 -0
  48. package/dist/playground/forth.d.ts +5 -0
  49. package/dist/playground/forth.js +53 -0
  50. package/dist/playground/forthPreflight.d.ts +24 -0
  51. package/dist/playground/forthPreflight.js +198 -0
  52. package/dist/playground/fortran.d.ts +47 -0
  53. package/dist/playground/fortran.js +651 -0
  54. package/dist/playground/fortranAssets.d.ts +6 -0
  55. package/dist/playground/fortranAssets.js +27 -0
  56. package/dist/playground/gleam.d.ts +6 -0
  57. package/dist/playground/gleam.js +33 -0
  58. package/dist/playground/go.d.ts +17 -11
  59. package/dist/playground/go.js +376 -72
  60. package/dist/playground/goDebugInstrumentation.d.ts +1 -0
  61. package/dist/playground/goDebugInstrumentation.js +229 -0
  62. package/dist/playground/haskell.d.ts +44 -0
  63. package/dist/playground/haskell.js +678 -0
  64. package/dist/playground/haskellAssets.d.ts +24 -0
  65. package/dist/playground/haskellAssets.js +93 -0
  66. package/dist/playground/index.d.ts +1 -1
  67. package/dist/playground/index.js +360 -111
  68. package/dist/playground/j.d.ts +5 -0
  69. package/dist/playground/j.js +60 -0
  70. package/dist/playground/jPreflight.d.ts +26 -0
  71. package/dist/playground/jPreflight.js +372 -0
  72. package/dist/playground/janet.d.ts +5 -0
  73. package/dist/playground/janet.js +64 -0
  74. package/dist/playground/java.d.ts +24 -10
  75. package/dist/playground/java.js +706 -84
  76. package/dist/playground/javaSource.d.ts +5 -0
  77. package/dist/playground/javaSource.js +16 -0
  78. package/dist/playground/javaStdin.d.ts +1 -1
  79. package/dist/playground/javaStdin.js +13 -4
  80. package/dist/playground/julia.d.ts +5 -0
  81. package/dist/playground/julia.js +64 -0
  82. package/dist/playground/lfortran.d.ts +8 -0
  83. package/dist/playground/lfortran.js +30 -0
  84. package/dist/playground/lfortranAssets.d.ts +21 -0
  85. package/dist/playground/lfortranAssets.js +118 -0
  86. package/dist/playground/lisp.d.ts +45 -0
  87. package/dist/playground/lisp.js +640 -0
  88. package/dist/playground/lispAssets.d.ts +9 -0
  89. package/dist/playground/lispAssets.js +74 -0
  90. package/dist/playground/lldbManifest.d.ts +3 -0
  91. package/dist/playground/lldbManifest.js +155 -0
  92. package/dist/playground/lldbSession.d.ts +115 -0
  93. package/dist/playground/lldbSession.js +1347 -0
  94. package/dist/playground/loadingProgress.d.ts +16 -0
  95. package/dist/playground/loadingProgress.js +166 -0
  96. package/dist/playground/lua.d.ts +44 -0
  97. package/dist/playground/lua.js +630 -0
  98. package/dist/playground/nim.d.ts +5 -0
  99. package/dist/playground/nim.js +76 -0
  100. package/dist/playground/objectivec.d.ts +39 -0
  101. package/dist/playground/objectivec.js +288 -0
  102. package/dist/playground/ocaml.d.ts +28 -10
  103. package/dist/playground/ocaml.js +815 -253
  104. package/dist/playground/octave.d.ts +43 -0
  105. package/dist/playground/octave.js +783 -0
  106. package/dist/playground/options.d.ts +19 -40
  107. package/dist/playground/options.js +2 -1
  108. package/dist/playground/pascal.d.ts +5 -0
  109. package/dist/playground/pascal.js +60 -0
  110. package/dist/playground/perl.d.ts +5 -0
  111. package/dist/playground/perl.js +61 -0
  112. package/dist/playground/php.d.ts +44 -0
  113. package/dist/playground/php.js +665 -0
  114. package/dist/playground/prolog.d.ts +6 -0
  115. package/dist/playground/prolog.js +75 -0
  116. package/dist/playground/python.d.ts +20 -14
  117. package/dist/playground/python.js +445 -101
  118. package/dist/playground/pythonPackageLock.d.ts +6 -0
  119. package/dist/playground/pythonPackageLock.js +56 -0
  120. package/dist/playground/r.d.ts +44 -0
  121. package/dist/playground/r.js +637 -0
  122. package/dist/playground/ruby.d.ts +46 -0
  123. package/dist/playground/ruby.js +732 -0
  124. package/dist/playground/rubyAssets.d.ts +23 -0
  125. package/dist/playground/rubyAssets.js +68 -0
  126. package/dist/playground/rubyTestPreflight.d.ts +2 -0
  127. package/dist/playground/rubyTestPreflight.js +18 -0
  128. package/dist/playground/runtimeModule.d.ts +1 -0
  129. package/dist/playground/runtimeModule.js +5 -0
  130. package/dist/playground/rust.d.ts +44 -13
  131. package/dist/playground/rust.js +714 -76
  132. package/dist/playground/rustExecutableGraph.d.ts +85 -0
  133. package/dist/playground/rustExecutableGraph.js +946 -0
  134. package/dist/playground/rustWorkerLimits.d.ts +17 -0
  135. package/dist/playground/rustWorkerLimits.js +34 -0
  136. package/dist/playground/sandbox.d.ts +16 -10
  137. package/dist/playground/sharedBuffer.d.ts +6 -0
  138. package/dist/playground/sharedBuffer.js +12 -0
  139. package/dist/playground/sqlite.d.ts +38 -0
  140. package/dist/playground/sqlite.js +550 -0
  141. package/dist/playground/staticRuntimeModuleVersion.d.ts +1 -0
  142. package/dist/playground/staticRuntimeModuleVersion.js +2 -0
  143. package/dist/playground/staticRuntimePreflight.d.ts +13 -0
  144. package/dist/playground/staticRuntimePreflight.js +231 -0
  145. package/dist/playground/staticRuntimePreflightExecute.d.ts +8 -0
  146. package/dist/playground/staticRuntimePreflightExecute.js +66 -0
  147. package/dist/playground/staticRuntimePreflightProtocol.d.ts +68 -0
  148. package/dist/playground/staticRuntimePreflightProtocol.js +339 -0
  149. package/dist/playground/staticStdinRing.d.ts +45 -0
  150. package/dist/playground/staticStdinRing.js +158 -0
  151. package/dist/playground/staticWorkerRuntime.d.ts +154 -0
  152. package/dist/playground/staticWorkerRuntime.js +1917 -0
  153. package/dist/playground/stdinBuffer.d.ts +9 -7
  154. package/dist/playground/stdinBuffer.js +9 -18
  155. package/dist/playground/swift.d.ts +5 -0
  156. package/dist/playground/swift.js +17 -0
  157. package/dist/playground/tcl.d.ts +5 -0
  158. package/dist/playground/tcl.js +62 -0
  159. package/dist/playground/teavmConfig.d.ts +1 -1
  160. package/dist/playground/teavmConfig.js +2 -2
  161. package/dist/playground/tinygo.d.ts +48 -18
  162. package/dist/playground/tinygo.js +1202 -329
  163. package/dist/playground/tinygoExecutableGraph.d.ts +44 -0
  164. package/dist/playground/tinygoExecutableGraph.js +449 -0
  165. package/dist/playground/typescript.d.ts +55 -0
  166. package/dist/playground/typescript.js +924 -0
  167. package/dist/playground/wasm.d.ts +43 -0
  168. package/dist/playground/wasm.js +608 -0
  169. package/dist/playground/wasmAwkVersion.d.ts +59 -0
  170. package/dist/playground/wasmAwkVersion.js +31 -0
  171. package/dist/playground/wasmBashVersion.d.ts +63 -0
  172. package/dist/playground/wasmBashVersion.js +36 -0
  173. package/dist/playground/wasmBqnVersion.d.ts +24 -0
  174. package/dist/playground/wasmBqnVersion.js +24 -0
  175. package/dist/playground/wasmC3Version.d.ts +20 -0
  176. package/dist/playground/wasmC3Version.js +21 -0
  177. package/dist/playground/wasmClojureScriptVersion.d.ts +21 -0
  178. package/dist/playground/wasmClojureScriptVersion.js +21 -0
  179. package/dist/playground/wasmDIntegrity.d.ts +15 -0
  180. package/dist/playground/wasmDIntegrity.js +15 -0
  181. package/dist/playground/wasmDVersion.d.ts +1 -0
  182. package/dist/playground/wasmDVersion.js +1 -0
  183. package/dist/playground/wasmDebugVersion.d.ts +6 -0
  184. package/dist/playground/wasmDebugVersion.js +6 -0
  185. package/dist/playground/wasmDotnetVersion.d.ts +1 -0
  186. package/dist/playground/wasmDotnetVersion.js +1 -0
  187. package/dist/playground/wasmElixirVersion.d.ts +21 -1
  188. package/dist/playground/wasmElixirVersion.js +21 -1
  189. package/dist/playground/wasmForthVersion.d.ts +18 -0
  190. package/dist/playground/wasmForthVersion.js +18 -0
  191. package/dist/playground/wasmFortranExecutionAssets.d.ts +15 -0
  192. package/dist/playground/wasmFortranExecutionAssets.js +15 -0
  193. package/dist/playground/wasmFortranVersion.d.ts +1 -0
  194. package/dist/playground/wasmFortranVersion.js +1 -0
  195. package/dist/playground/wasmGleamVersion.d.ts +5 -0
  196. package/dist/playground/wasmGleamVersion.js +5 -0
  197. package/dist/playground/wasmGoVersion.d.ts +1 -1
  198. package/dist/playground/wasmGoVersion.js +1 -1
  199. package/dist/playground/wasmHaskellVersion.d.ts +1 -0
  200. package/dist/playground/wasmHaskellVersion.js +1 -0
  201. package/dist/playground/wasmJVersion.d.ts +24 -0
  202. package/dist/playground/wasmJVersion.js +24 -0
  203. package/dist/playground/wasmJanetVersion.d.ts +53 -0
  204. package/dist/playground/wasmJanetVersion.js +30 -0
  205. package/dist/playground/wasmJuliaVersion.d.ts +71 -0
  206. package/dist/playground/wasmJuliaVersion.js +39 -0
  207. package/dist/playground/wasmLfortranVersion.d.ts +28 -0
  208. package/dist/playground/wasmLfortranVersion.js +29 -0
  209. package/dist/playground/wasmLispVersion.d.ts +1 -0
  210. package/dist/playground/wasmLispVersion.js +1 -0
  211. package/dist/playground/wasmLuaVersion.d.ts +1 -0
  212. package/dist/playground/wasmLuaVersion.js +1 -0
  213. package/dist/playground/wasmNimVersion.d.ts +125 -0
  214. package/dist/playground/wasmNimVersion.js +66 -0
  215. package/dist/playground/wasmObjectiveCVersion.d.ts +27 -0
  216. package/dist/playground/wasmObjectiveCVersion.js +27 -0
  217. package/dist/playground/wasmOcamlVersion.d.ts +12 -1
  218. package/dist/playground/wasmOcamlVersion.js +12 -1
  219. package/dist/playground/wasmOctaveVersion.d.ts +1 -0
  220. package/dist/playground/wasmOctaveVersion.js +1 -0
  221. package/dist/playground/wasmPascalVersion.d.ts +61 -0
  222. package/dist/playground/wasmPascalVersion.js +34 -0
  223. package/dist/playground/wasmPerlVersion.d.ts +71 -0
  224. package/dist/playground/wasmPerlVersion.js +39 -0
  225. package/dist/playground/wasmPrologVersion.d.ts +31 -0
  226. package/dist/playground/wasmPrologVersion.js +31 -0
  227. package/dist/playground/wasmRVersion.d.ts +1 -0
  228. package/dist/playground/wasmRVersion.js +1 -0
  229. package/dist/playground/wasmRustVersion.d.ts +1306 -1
  230. package/dist/playground/wasmRustVersion.js +1458 -1
  231. package/dist/playground/wasmSwiftVersion.d.ts +1 -0
  232. package/dist/playground/wasmSwiftVersion.js +1 -0
  233. package/dist/playground/wasmTclVersion.d.ts +85 -0
  234. package/dist/playground/wasmTclVersion.js +46 -0
  235. package/dist/playground/wasmTinyGoVersion.d.ts +98 -1
  236. package/dist/playground/wasmTinyGoVersion.js +107 -1
  237. package/dist/playground/wasmTypeScriptVersion.d.ts +5 -0
  238. package/dist/playground/wasmTypeScriptVersion.js +5 -0
  239. package/dist/playground/wasmWatVersion.d.ts +1 -0
  240. package/dist/playground/wasmWatVersion.js +1 -0
  241. package/dist/playground/wasmZigVersion.d.ts +13 -0
  242. package/dist/playground/wasmZigVersion.js +13 -0
  243. package/dist/playground/wat.d.ts +44 -0
  244. package/dist/playground/wat.js +622 -0
  245. package/dist/playground/worker/assemblyscript.js +339 -0
  246. package/dist/playground/worker/assets.d.ts +7 -0
  247. package/dist/playground/worker/assets.js +288 -39
  248. package/dist/playground/worker/bash.js +338 -0
  249. package/dist/playground/worker/bashNestedBootstrap.d.ts +6 -0
  250. package/dist/playground/worker/bashNestedBootstrap.js +59 -0
  251. package/dist/playground/worker/bashRuntime.d.ts +89 -0
  252. package/dist/playground/worker/bashRuntime.js +982 -0
  253. package/dist/playground/worker/clang.js +92 -13
  254. package/dist/playground/worker/cobol.js +107 -0
  255. package/dist/playground/worker/d.js +199 -0
  256. package/dist/playground/worker/dotnet.js +141 -0
  257. package/dist/playground/worker/duckdb.d.ts +1 -0
  258. package/dist/playground/worker/duckdb.js +136 -0
  259. package/dist/playground/worker/elixir.js +307 -41
  260. package/dist/playground/worker/fortran.d.ts +1 -0
  261. package/dist/playground/worker/fortran.js +295 -0
  262. package/dist/playground/worker/go.js +246 -40
  263. package/dist/playground/worker/haskell.d.ts +7 -0
  264. package/dist/playground/worker/haskell.js +465 -0
  265. package/dist/playground/worker/java.js +59 -20
  266. package/dist/playground/worker/lisp.d.ts +1 -0
  267. package/dist/playground/worker/lisp.js +195 -0
  268. package/dist/playground/worker/lua.d.ts +1 -0
  269. package/dist/playground/worker/lua.js +163 -0
  270. package/dist/playground/worker/objectivec.d.ts +1 -0
  271. package/dist/playground/worker/objectivec.js +10 -0
  272. package/dist/playground/worker/ocaml.js +206 -58
  273. package/dist/playground/worker/php.d.ts +1 -0
  274. package/dist/playground/worker/php.js +261 -0
  275. package/dist/playground/worker/python.js +201 -44
  276. package/dist/playground/worker/r.d.ts +1 -0
  277. package/dist/playground/worker/r.js +192 -0
  278. package/dist/playground/worker/ruby.d.ts +1 -0
  279. package/dist/playground/worker/ruby.js +248 -0
  280. package/dist/playground/worker/runtimeAssetFetch.d.ts +15 -0
  281. package/dist/playground/worker/runtimeAssetFetch.js +375 -0
  282. package/dist/playground/worker/rust.js +546 -20
  283. package/dist/playground/worker/sqlite.d.ts +1 -0
  284. package/dist/playground/worker/sqlite.js +112 -0
  285. package/dist/playground/worker/staticRuntimePreflight.d.ts +1 -0
  286. package/dist/playground/worker/staticRuntimePreflight.js +56 -0
  287. package/dist/playground/worker/tinygo.js +34 -9
  288. package/dist/playground/worker/typescript.d.ts +1 -0
  289. package/dist/playground/worker/typescript.js +251 -0
  290. package/dist/playground/worker/wasm.d.ts +1 -0
  291. package/dist/playground/worker/wasm.js +273 -0
  292. package/dist/playground/worker/wat.d.ts +1 -0
  293. package/dist/playground/worker/wat.js +188 -0
  294. package/dist/playground/worker/zig.d.ts +8 -0
  295. package/dist/playground/worker/zig.js +578 -0
  296. package/dist/playground/workerProgress.d.ts +15 -0
  297. package/dist/playground/workerProgress.js +72 -0
  298. package/dist/playground/workerSession.d.ts +28 -0
  299. package/dist/playground/workerSession.js +164 -0
  300. package/dist/playground/zig.d.ts +46 -0
  301. package/dist/playground/zig.js +690 -0
  302. package/dist/playground/zigAssets.d.ts +6 -0
  303. package/dist/playground/zigAssets.js +49 -0
  304. package/package.json +234 -105
  305. package/dist/clang/app.d.ts +0 -75
  306. package/dist/clang/app.js +0 -744
  307. package/dist/clang/apply.d.ts +0 -2
  308. package/dist/clang/apply.js +0 -11
  309. package/dist/clang/color.d.ts +0 -3
  310. package/dist/clang/color.js +0 -3
  311. package/dist/clang/encode.d.ts +0 -4
  312. package/dist/clang/encode.js +0 -20
  313. package/dist/clang/error.d.ts +0 -14
  314. package/dist/clang/error.js +0 -27
  315. package/dist/clang/gccCompat.d.ts +0 -15
  316. package/dist/clang/gccCompat.js +0 -767
  317. package/dist/clang/index.d.ts +0 -85
  318. package/dist/clang/index.js +0 -1077
  319. package/dist/clang/memory/index.d.ts +0 -4
  320. package/dist/clang/memory/index.js +0 -4
  321. package/dist/clang/memory/memFs.d.ts +0 -35
  322. package/dist/clang/memory/memFs.js +0 -132
  323. package/dist/clang/memory/memory.d.ts +0 -22
  324. package/dist/clang/memory/memory.js +0 -73
  325. package/dist/clang/memory/tar.d.ts +0 -2
  326. package/dist/clang/memory/tar.js +0 -59
  327. package/dist/clang/url.d.ts +0 -4
  328. package/dist/clang/url.js +0 -5
  329. package/dist/clang/wasm.d.ts +0 -4
  330. package/dist/clang/wasm.js +0 -50
  331. package/dist/clangd/config.d.ts +0 -18
  332. package/dist/clangd/config.js +0 -14
  333. package/dist/clangd/jsonStream.d.ts +0 -9
  334. package/dist/clangd/jsonStream.js +0 -48
  335. package/dist/clangd/session.d.ts +0 -18
  336. package/dist/clangd/session.js +0 -112
  337. package/dist/clangd/worker.js +0 -131
  338. package/dist/debug/controller.svelte.d.ts +0 -43
  339. package/dist/debug/controller.svelte.js +0 -268
  340. package/dist/debug/editor/index.d.ts +0 -2
  341. package/dist/debug/editor/index.js +0 -1
  342. package/dist/debug/editor/monaco.d.ts +0 -26
  343. package/dist/debug/editor/monaco.js +0 -128
  344. package/dist/debug/expression.d.ts +0 -26
  345. package/dist/debug/expression.js +0 -547
  346. package/dist/debug/index.d.ts +0 -8
  347. package/dist/debug/index.js +0 -5
  348. package/dist/debug/language/cpp.d.ts +0 -2
  349. package/dist/debug/language/cpp.js +0 -7
  350. package/dist/debug/language/index.d.ts +0 -3
  351. package/dist/debug/language/index.js +0 -2
  352. package/dist/debug/language/python.d.ts +0 -2
  353. package/dist/debug/language/python.js +0 -14
  354. package/dist/debug/language/types.d.ts +0 -6
  355. package/dist/debug/locals.d.ts +0 -2
  356. package/dist/debug/locals.js +0 -8
  357. package/dist/lsp/cpp/server.d.ts +0 -2
  358. package/dist/lsp/cpp/server.js +0 -68
  359. package/dist/lsp/index.d.ts +0 -5
  360. package/dist/lsp/index.js +0 -4
  361. package/dist/lsp/python/main.worker.js +0 -92
  362. package/dist/lsp/python/package/arcturus_python_lsp/__init__.py +0 -3
  363. package/dist/lsp/python/package/arcturus_python_lsp/server.py +0 -462
  364. package/dist/lsp/python/server.d.ts +0 -2
  365. package/dist/lsp/python/server.js +0 -54
  366. package/dist/lsp/registry.d.ts +0 -2
  367. package/dist/lsp/registry.js +0 -12
  368. package/dist/lsp/runtime.d.ts +0 -5
  369. package/dist/lsp/runtime.js +0 -31
  370. package/dist/lsp/types.d.ts +0 -17
  371. package/dist/terminal/Terminal.svelte +0 -422
  372. package/dist/terminal/Terminal.svelte.d.ts +0 -26
  373. package/dist/terminal/index.d.ts +0 -7
  374. package/dist/terminal/index.js +0 -5
  375. package/dist/terminal/plugin/index.d.ts +0 -9
  376. package/dist/terminal/plugin/index.js +0 -19
  377. package/dist/terminal/theme.d.ts +0 -49
  378. package/dist/terminal/theme.js +0 -49
  379. package/dist/terminal/types.d.ts +0 -18
  380. package/dist/utils/vscodeJsonrpcBrowser.d.ts +0 -5
  381. package/dist/utils/vscodeJsonrpcBrowser.js +0 -4
  382. /package/dist/{clangd/worker.d.ts → playground/worker/assemblyscript.d.ts} +0 -0
  383. /package/dist/{debug/language/types.js → playground/worker/bash.d.ts} +0 -0
  384. /package/dist/{lsp/python/main.worker.d.ts → playground/worker/cobol.d.ts} +0 -0
  385. /package/dist/{lsp/types.js → playground/worker/d.d.ts} +0 -0
  386. /package/dist/{terminal/types.js → playground/worker/dotnet.d.ts} +0 -0
@@ -1,4 +1,6 @@
1
+ import { normalizeDwarfWorkspacePath } from '@wasm-idle/llvm-core/clang';
1
2
  import { waitForBufferedStdin } from '../stdinBuffer';
3
+ import { isSharedBufferBackedView } from '../sharedBuffer';
2
4
  import { configureWorkerRuntimeAssets, handleWorkerAssetMessage } from './assets';
3
5
  self.document = {
4
6
  querySelectorAll() {
@@ -6,26 +8,48 @@ self.document = {
6
8
  }
7
9
  };
8
10
  let stdinBufferClang, debugBufferClang, watchBufferClang, watchResultBufferClang, interruptBufferClang, clang;
9
- async function loadClang(path, log) {
10
- const { default: Clang } = await import('../../clang');
11
- clang = new Clang({
11
+ let hasInitialStdinClang = false;
12
+ let initialStdinClang = null;
13
+ function postProgress(percent, stage) {
14
+ postMessage({ progress: { percent, stage } });
15
+ }
16
+ async function loadClang(path, log, maxAssetBytes) {
17
+ const { BrowserClangRuntime, loadRuntimeManifest, resolveRuntimeManifestUrl } = await import('@wasm-idle/llvm-core/clang');
18
+ const manifest = await loadRuntimeManifest(resolveRuntimeManifestUrl(path), fetch, undefined, maxAssetBytes);
19
+ clang = new BrowserClangRuntime({
12
20
  stdout: (output) => postMessage({ output }),
13
21
  onDebugEvent: (debugEvent) => postMessage({ debugEvent }),
14
- stdin: () => waitForBufferedStdin(stdinBufferClang, () => postMessage({ buffer: true })) ?? '',
22
+ stdin: () => {
23
+ if (hasInitialStdinClang) {
24
+ const chunk = initialStdinClang;
25
+ initialStdinClang = null;
26
+ return chunk ?? '';
27
+ }
28
+ return (waitForBufferedStdin(stdinBufferClang, () => postMessage({ buffer: true })) ?? '');
29
+ },
15
30
  progress: (value) => postMessage({ progress: value }),
16
31
  log,
17
- path
32
+ maxAssetBytes,
33
+ runtimeBaseUrl: path,
34
+ manifest
18
35
  });
36
+ await clang.ready;
19
37
  }
20
38
  self.onmessage = async (event) => {
21
39
  if (handleWorkerAssetMessage(event.data))
22
40
  return;
23
- const { code, buffer, debugBuffer, watchBuffer, watchResultBuffer, load, interrupt, log, path, assets, prepare, language, compileArgs, programArgs, cppVersion, cVersion, debug, breakpoints, pauseOnEntry } = event.data;
41
+ const { code, buffer, debugBuffer, watchBuffer, watchResultBuffer, load, interrupt, log, path, assets, prepare, language, compileArgs, programArgs, activePath, workspaceFiles, cppVersion, cVersion, debugMode, debug, breakpoints, pauseOnEntry, stdin, maxAssetBytes } = event.data;
42
+ const resolvedDebugMode = debugMode || (debug ? 'trace' : 'none');
24
43
  if (load) {
25
- const runtimeAssets = assets;
26
- configureWorkerRuntimeAssets(runtimeAssets || null);
27
- await loadClang(runtimeAssets?.baseUrl || path || '', log);
28
- postMessage({ load: true });
44
+ try {
45
+ const runtimeAssets = assets;
46
+ configureWorkerRuntimeAssets(runtimeAssets || null);
47
+ await loadClang(runtimeAssets?.baseUrl || path || '', log, maxAssetBytes);
48
+ postMessage({ load: true });
49
+ }
50
+ catch (error) {
51
+ self.postMessage({ error: error.message || 'Unable to load the C/C++ runtime.' });
52
+ }
29
53
  }
30
54
  else if (prepare) {
31
55
  stdinBufferClang = new Int32Array(buffer);
@@ -33,14 +57,23 @@ self.onmessage = async (event) => {
33
57
  watchBufferClang = new Int32Array(watchBuffer);
34
58
  watchResultBufferClang = new Int32Array(watchResultBuffer);
35
59
  interruptBufferClang = new Uint8Array(interrupt);
60
+ hasInitialStdinClang = typeof stdin === 'string';
61
+ initialStdinClang = hasInitialStdinClang ? stdin : null;
62
+ if (resolvedDebugMode === 'trace' && !isSharedBufferBackedView(debugBufferClang)) {
63
+ self.postMessage({ error: 'C/C++ debugging requires SharedArrayBuffer.' });
64
+ return;
65
+ }
36
66
  try {
37
- await clang.compileLink(code, {
67
+ postProgress(5, `Compiling ${language === 'C' ? 'C' : 'C++'} source`);
68
+ await clang.compileArtifact(code, {
38
69
  language,
39
70
  compileArgs,
40
71
  programArgs,
72
+ activePath,
73
+ workspaceFiles,
41
74
  cppVersion,
42
75
  cVersion,
43
- debug,
76
+ debugMode: resolvedDebugMode,
44
77
  breakpoints,
45
78
  pauseOnEntry,
46
79
  debugBuffer: debugBufferClang,
@@ -48,6 +81,7 @@ self.onmessage = async (event) => {
48
81
  watchBuffer: watchBufferClang,
49
82
  watchResultBuffer: watchResultBufferClang
50
83
  });
84
+ postProgress(100, `${language === 'C' ? 'C' : 'C++'} program ready`);
51
85
  self.postMessage({ results: true });
52
86
  }
53
87
  catch (error) {
@@ -61,14 +95,59 @@ self.onmessage = async (event) => {
61
95
  watchBufferClang = new Int32Array(watchBuffer);
62
96
  watchResultBufferClang = new Int32Array(watchResultBuffer);
63
97
  interruptBufferClang = new Uint8Array(interrupt);
98
+ hasInitialStdinClang = typeof stdin === 'string';
99
+ initialStdinClang = hasInitialStdinClang ? stdin : null;
100
+ if (resolvedDebugMode === 'trace' && !isSharedBufferBackedView(debugBufferClang)) {
101
+ self.postMessage({ error: 'C/C++ debugging requires SharedArrayBuffer.' });
102
+ return;
103
+ }
64
104
  try {
105
+ if (resolvedDebugMode === 'lldb') {
106
+ const artifact = await clang.compileArtifact(code, {
107
+ language,
108
+ compileArgs,
109
+ programArgs,
110
+ activePath,
111
+ workspaceFiles,
112
+ cppVersion,
113
+ cVersion,
114
+ debugMode: 'lldb'
115
+ });
116
+ if (!artifact.debug) {
117
+ throw new Error('wasm-clang did not return an LLDB DWARF descriptor');
118
+ }
119
+ const inputPath = normalizeDwarfWorkspacePath(activePath || (language === 'C' ? 'main.c' : 'main.cc')) || (language === 'C' ? 'main.c' : 'main.cc');
120
+ const sources = new Map();
121
+ for (const file of workspaceFiles || []) {
122
+ const sourcePath = normalizeDwarfWorkspacePath(file.path);
123
+ if (sourcePath)
124
+ sources.set(`/workspace/${sourcePath}`, file.content);
125
+ }
126
+ sources.set(`/workspace/${inputPath}`, code);
127
+ self.postMessage({
128
+ lldbArtifact: {
129
+ bytes: new Uint8Array(artifact.bytes),
130
+ descriptor: artifact.debug,
131
+ sources: artifact.debug.files.map(({ path, contentSha256 }) => {
132
+ const content = sources.get(path);
133
+ if (content === undefined) {
134
+ throw new Error(`Missing LLDB source content for ${path}`);
135
+ }
136
+ return { path, content, contentSha256 };
137
+ })
138
+ }
139
+ });
140
+ return;
141
+ }
65
142
  await clang.compileLinkRun(code, {
66
143
  language,
67
144
  compileArgs,
68
145
  programArgs,
146
+ activePath,
147
+ workspaceFiles,
69
148
  cppVersion,
70
149
  cVersion,
71
- debug,
150
+ debugMode: resolvedDebugMode,
72
151
  breakpoints,
73
152
  pauseOnEntry,
74
153
  debugBuffer: debugBufferClang,
@@ -0,0 +1,107 @@
1
+ import { waitForBufferedStdin } from '../stdinBuffer';
2
+ import { configureWorkerRuntimeAssets, handleWorkerAssetMessage } from './assets';
3
+ import { createCobolCompiler, executeBrowserCobolArtifact } from '@wasm-idle/llvm-core/cobol';
4
+ self.document = {
5
+ querySelectorAll() {
6
+ return [];
7
+ }
8
+ };
9
+ let compiler = null;
10
+ let stdinBufferCobol = null;
11
+ let hasInitialStdinCobol = false;
12
+ let initialStdinCobol = null;
13
+ let initialStdinConsumedCobol = false;
14
+ const normalizeWorkspacePath = (value) => value
15
+ .replaceAll('\\', '/')
16
+ .split('/')
17
+ .filter((part) => part && part !== '.' && part !== '..')
18
+ .join('/');
19
+ const ensureTrailingNewline = (source) => (source.endsWith('\n') ? source : `${source}\n`);
20
+ function resolveInputPath(activePath) {
21
+ const normalized = normalizeWorkspacePath(activePath || '');
22
+ if (!normalized)
23
+ return 'main.cob';
24
+ return /\.[A-Za-z0-9_-]+$/.test(normalized) ? normalized : `${normalized}.cob`;
25
+ }
26
+ function readProgramStdin() {
27
+ if (hasInitialStdinCobol) {
28
+ if (initialStdinConsumedCobol)
29
+ return null;
30
+ initialStdinConsumedCobol = true;
31
+ return initialStdinCobol ?? '';
32
+ }
33
+ return waitForBufferedStdin(stdinBufferCobol, () => postMessage({ buffer: true }));
34
+ }
35
+ async function loadCobolRuntime(clangAssets, cobolBaseUrl, maxAssetBytes, log) {
36
+ configureWorkerRuntimeAssets(clangAssets || null);
37
+ compiler = await createCobolCompiler({
38
+ runtimeBaseUrl: cobolBaseUrl,
39
+ clangRuntimeBaseUrl: clangAssets?.baseUrl || '',
40
+ maxAssetBytes,
41
+ log
42
+ });
43
+ }
44
+ self.onmessage = async (event) => {
45
+ if (handleWorkerAssetMessage(event.data))
46
+ return;
47
+ const { code, buffer, load, log, prepare, compileArgs, programArgs, activePath, workspaceFiles, stdin, clangAssets, cobolBaseUrl, maxAssetBytes } = event.data;
48
+ if (load) {
49
+ try {
50
+ await loadCobolRuntime(clangAssets, cobolBaseUrl, maxAssetBytes, log);
51
+ postMessage({ load: true });
52
+ }
53
+ catch (error) {
54
+ postMessage({ error: error.message });
55
+ }
56
+ }
57
+ else if (typeof log === 'boolean' && !code) {
58
+ // The compiler receives the current logging preference for every compilation.
59
+ if (typeof code === 'string')
60
+ postMessage({ results: true });
61
+ }
62
+ else if (code) {
63
+ if (!compiler) {
64
+ postMessage({ error: 'COBOL runtime is not loaded.' });
65
+ return;
66
+ }
67
+ stdinBufferCobol = new Int32Array(buffer);
68
+ hasInitialStdinCobol = typeof stdin === 'string';
69
+ initialStdinCobol = hasInitialStdinCobol ? stdin : null;
70
+ initialStdinConsumedCobol = false;
71
+ try {
72
+ const files = (workspaceFiles || []);
73
+ const result = await compiler.compile({
74
+ code: ensureTrailingNewline(code),
75
+ fileName: resolveInputPath(activePath),
76
+ sourceFormat: 'free',
77
+ compileArgs: compileArgs || [],
78
+ workspaceFiles: files,
79
+ log,
80
+ onProgress: ({ percent, message }) => {
81
+ postMessage({ progress: percent / 100 });
82
+ if (log)
83
+ postMessage({ log: message });
84
+ }
85
+ });
86
+ if (!result.success || !result.artifact) {
87
+ throw new Error(result.stderr || 'GnuCOBOL did not produce a WebAssembly program.');
88
+ }
89
+ if (!prepare) {
90
+ const execution = await executeBrowserCobolArtifact(result.artifact, {
91
+ args: programArgs || [],
92
+ stdin: readProgramStdin,
93
+ stdout: (output) => postMessage({ output }),
94
+ stderr: (output) => postMessage({ output }),
95
+ files: files.map(({ path, content }) => ({ path, contents: content }))
96
+ });
97
+ if (execution.exitCode) {
98
+ throw new Error(`COBOL program exited with ${execution.exitCode}`);
99
+ }
100
+ }
101
+ postMessage({ results: true });
102
+ }
103
+ catch (error) {
104
+ postMessage({ error: error.message });
105
+ }
106
+ }
107
+ };
@@ -0,0 +1,199 @@
1
+ import { waitForBufferedStdin } from '../stdinBuffer';
2
+ import { loadVerifiedDOuterAssets, snapshotDOuterAssetConfig } from '../dOuterAssets';
3
+ import { createRuntimeAssetsKey, verifyRuntimeAssetIntegrity } from '@wasm-idle/core';
4
+ let stdinBufferD = null;
5
+ let runtimeConfig = null;
6
+ let loadedRuntimeKey = '';
7
+ let runtimePromise = null;
8
+ let compiledArtifact = null;
9
+ let compiledCacheKey = '';
10
+ async function loadRuntime(config) {
11
+ const snapshot = snapshotDOuterAssetConfig(config);
12
+ const runtimeKey = createRuntimeAssetsKey({ d: snapshot });
13
+ if (!runtimeKey)
14
+ throw new TypeError('D runtime asset key could not be created');
15
+ if (loadedRuntimeKey === runtimeKey && runtimePromise) {
16
+ return await runtimePromise;
17
+ }
18
+ loadedRuntimeKey = runtimeKey;
19
+ compiledArtifact = null;
20
+ compiledCacheKey = '';
21
+ const pendingRuntime = (async () => {
22
+ const { moduleBytes, manifestBytes } = await loadVerifiedDOuterAssets(snapshot);
23
+ const moduleObjectUrl = URL.createObjectURL(new Blob([moduleBytes.slice().buffer], { type: 'text/javascript' }));
24
+ let module;
25
+ try {
26
+ module = await import(/* @vite-ignore */ moduleObjectUrl);
27
+ }
28
+ finally {
29
+ try {
30
+ URL.revokeObjectURL(moduleObjectUrl);
31
+ }
32
+ catch {
33
+ // Cleanup must not replace module import success or failure.
34
+ }
35
+ }
36
+ const factory = typeof module.createDCompiler === 'function'
37
+ ? module.createDCompiler
38
+ : typeof module.default === 'function'
39
+ ? module.default
40
+ : null;
41
+ if (!factory) {
42
+ throw new Error('wasm-d module must export createDCompiler or a default factory');
43
+ }
44
+ if (typeof module.executeBrowserDArtifact !== 'function') {
45
+ throw new Error('wasm-d module must export executeBrowserDArtifact');
46
+ }
47
+ if (typeof module.parseRuntimeManifest !== 'function') {
48
+ throw new Error('wasm-d module must export parseRuntimeManifest');
49
+ }
50
+ const manifestSource = new TextDecoder('utf-8', { fatal: true }).decode(manifestBytes);
51
+ const manifest = module.parseRuntimeManifest(JSON.parse(manifestSource));
52
+ const manifestUrl = new URL(snapshot.manifestUrl);
53
+ const runtimeBaseUrl = new URL('./', manifestUrl);
54
+ runtimeBaseUrl.search = manifestUrl.search;
55
+ return {
56
+ compiler: await factory({
57
+ runtimeBaseUrl: runtimeBaseUrl.href,
58
+ manifest,
59
+ verifyRuntimeAssetIntegrity
60
+ }),
61
+ executeBrowserDArtifact: module.executeBrowserDArtifact
62
+ };
63
+ })();
64
+ runtimePromise = pendingRuntime;
65
+ try {
66
+ return await pendingRuntime;
67
+ }
68
+ catch (error) {
69
+ if (runtimePromise === pendingRuntime && loadedRuntimeKey === runtimeKey) {
70
+ runtimePromise = null;
71
+ loadedRuntimeKey = '';
72
+ }
73
+ throw error;
74
+ }
75
+ }
76
+ function normalizeDiagnostic(diagnostic) {
77
+ return {
78
+ fileName: diagnostic?.fileName ?? null,
79
+ lineNumber: Math.max(1, Number(diagnostic?.lineNumber || 1)),
80
+ columnNumber: typeof diagnostic?.columnNumber === 'number'
81
+ ? Math.max(1, diagnostic.columnNumber)
82
+ : undefined,
83
+ severity: diagnostic?.severity === 'warning' || diagnostic?.severity === 'other'
84
+ ? diagnostic.severity
85
+ : 'error',
86
+ message: String(diagnostic?.message || '')
87
+ };
88
+ }
89
+ self.onmessage = async (event) => {
90
+ const { load, moduleUrl: nextModuleUrl, manifestUrl: nextManifestUrl, outerIntegrity, buffer, code, prepare, args = [], stdin, fileName = 'main.d', log } = event.data;
91
+ try {
92
+ if (load) {
93
+ runtimeConfig = snapshotDOuterAssetConfig({
94
+ moduleUrl: nextModuleUrl,
95
+ manifestUrl: nextManifestUrl,
96
+ integrity: outerIntegrity
97
+ });
98
+ if (log)
99
+ console.log(`[wasm-idle:d-worker] load moduleUrl=${runtimeConfig.moduleUrl}`);
100
+ await loadRuntime(runtimeConfig);
101
+ postMessage({ load: true });
102
+ return;
103
+ }
104
+ stdinBufferD = new Int32Array(buffer);
105
+ if (!runtimeConfig)
106
+ throw new Error('D runtime has not been loaded');
107
+ const runtime = await loadRuntime(runtimeConfig);
108
+ const compileCacheKey = `${fileName}\n${code}`;
109
+ if (!compiledArtifact || compiledCacheKey !== compileCacheKey) {
110
+ if (log) {
111
+ console.log(`[wasm-idle:d-worker] compile start prepare=${String(prepare)} file=${fileName} bytes=${code.length}`);
112
+ }
113
+ const result = await runtime.compiler.compile({
114
+ code,
115
+ fileName,
116
+ target: 'wasm32-wasi',
117
+ log,
118
+ onProgress(progress) {
119
+ postMessage({ progress });
120
+ }
121
+ });
122
+ if (log) {
123
+ console.log(`[wasm-idle:d-worker] compile settled success=${String(result.success)} hasWasm=${String(Boolean(result.artifact?.wasm))} stdout=${String(Boolean(result.stdout))} stderr=${String(Boolean(result.stderr))}`);
124
+ }
125
+ for (const diagnostic of result.diagnostics || []) {
126
+ postMessage({ diagnostic: normalizeDiagnostic(diagnostic) });
127
+ }
128
+ if (result.stdout)
129
+ postMessage({ output: result.stdout });
130
+ if (!result.success) {
131
+ throw new Error(result.stderr ||
132
+ result.diagnostics
133
+ ?.map((diagnostic) => diagnostic.message)
134
+ .join('\n') ||
135
+ 'D compilation failed');
136
+ }
137
+ if (result.stderr)
138
+ postMessage({ output: result.stderr });
139
+ if (!result.artifact?.wasm && !result.artifact?.bytes) {
140
+ throw new Error('wasm-d did not return a wasm artifact');
141
+ }
142
+ compiledArtifact = result.artifact;
143
+ compiledCacheKey = compileCacheKey;
144
+ }
145
+ if (prepare) {
146
+ postMessage({ results: true });
147
+ return;
148
+ }
149
+ const hasInitialStdin = typeof stdin === 'string';
150
+ let initialStdin = hasInitialStdin ? stdin : null;
151
+ const execution = await runtime.executeBrowserDArtifact(compiledArtifact, {
152
+ args,
153
+ env: {
154
+ USER: 'jungol'
155
+ },
156
+ stdin: () => {
157
+ if (hasInitialStdin) {
158
+ const chunk = initialStdin;
159
+ initialStdin = null;
160
+ if (log) {
161
+ console.log(chunk == null
162
+ ? '[wasm-idle:d-stdin] read(bytes=0, eof=true)'
163
+ : `[wasm-idle:d-stdin] read(bytes=${new TextEncoder().encode(chunk).byteLength}, text=${JSON.stringify(chunk)})`);
164
+ }
165
+ return chunk;
166
+ }
167
+ const chunk = waitForBufferedStdin(stdinBufferD, () => postMessage({ buffer: true }));
168
+ if (chunk == null) {
169
+ if (log)
170
+ console.log('[wasm-idle:d-stdin] read(bytes=0, eof=true)');
171
+ return null;
172
+ }
173
+ if (log) {
174
+ console.log(`[wasm-idle:d-stdin] read(bytes=${new TextEncoder().encode(chunk).byteLength}, text=${JSON.stringify(chunk)})`);
175
+ }
176
+ return chunk;
177
+ },
178
+ stdout: (output) => {
179
+ if (output)
180
+ postMessage({ output });
181
+ },
182
+ stderr: (output) => {
183
+ if (output)
184
+ postMessage({ output });
185
+ }
186
+ });
187
+ if (execution.exitCode !== 0) {
188
+ throw new Error(execution.stderr
189
+ ? `D program exited with code ${execution.exitCode}\n${execution.stderr}`
190
+ : `D program exited with code ${execution.exitCode}`);
191
+ }
192
+ postMessage({ results: true });
193
+ }
194
+ catch (error) {
195
+ if (log)
196
+ console.error('[wasm-idle:d-worker] failed', error);
197
+ postMessage({ error: error?.message || String(error) });
198
+ }
199
+ };
@@ -0,0 +1,141 @@
1
+ export {};
2
+ const workerSelf = globalThis;
3
+ workerSelf.dotnetSidecar = true;
4
+ workerSelf.document ??= {
5
+ addEventListener() { },
6
+ dispatchEvent() {
7
+ return true;
8
+ },
9
+ querySelectorAll() {
10
+ return [];
11
+ },
12
+ removeEventListener() { }
13
+ };
14
+ let moduleUrl = '';
15
+ let loadedModuleUrl = '';
16
+ let runtimePromise = null;
17
+ let compiler = null;
18
+ let compiledArtifact = null;
19
+ let compiledCacheKey = '';
20
+ function languageLabel(language) {
21
+ return language === 'csharp' ? 'C#' : language === 'vbnet' ? 'VB.NET' : 'F#';
22
+ }
23
+ async function loadRuntime(url) {
24
+ if (!url) {
25
+ throw new Error('.NET runtime module is not configured. Set runtimeAssets.dotnet.moduleUrl.');
26
+ }
27
+ if (loadedModuleUrl === url && runtimePromise && compiler) {
28
+ return await runtimePromise;
29
+ }
30
+ loadedModuleUrl = url;
31
+ compiledArtifact = null;
32
+ compiledCacheKey = '';
33
+ runtimePromise = (async () => {
34
+ const runtimeModule = (await import(/* @vite-ignore */ url));
35
+ if (typeof runtimeModule.createDotnetCompiler !== 'function') {
36
+ throw new Error('wasm-dotnet module must export createDotnetCompiler');
37
+ }
38
+ if (typeof runtimeModule.executeBrowserDotnetArtifact !== 'function') {
39
+ throw new Error('wasm-dotnet module must export executeBrowserDotnetArtifact');
40
+ }
41
+ compiler = runtimeModule.createDotnetCompiler({
42
+ onFatalError(error) {
43
+ postMessage({ error: error.message, fatal: true });
44
+ }
45
+ });
46
+ return runtimeModule;
47
+ })();
48
+ return await runtimePromise;
49
+ }
50
+ workerSelf.onmessage = async (event) => {
51
+ const { load, moduleUrl: nextModuleUrl, code, language = 'fsharp', prepare, args = [], stdin = '', maxOutputBytes = 1024 * 1024, log } = event.data;
52
+ try {
53
+ if (load) {
54
+ moduleUrl = nextModuleUrl;
55
+ if (log) {
56
+ console.log(`[wasm-idle:dotnet-worker] load moduleUrl=${moduleUrl}`);
57
+ }
58
+ await loadRuntime(moduleUrl);
59
+ postMessage({ load: true });
60
+ return;
61
+ }
62
+ const runtime = await loadRuntime(moduleUrl);
63
+ const compileLanguage = language === 'csharp' ? 'csharp' : language === 'vbnet' ? 'vbnet' : 'fsharp';
64
+ const compileCacheKey = `${compileLanguage}\n${code}`;
65
+ if (!compiledArtifact || compiledCacheKey !== compileCacheKey) {
66
+ if (!compiler) {
67
+ throw new Error('.NET compiler was not initialized');
68
+ }
69
+ if (log) {
70
+ console.log(`[wasm-idle:dotnet-worker] compile start language=${compileLanguage} prepare=${String(prepare)} bytes=${code.length}`);
71
+ }
72
+ const result = await compiler.compile({
73
+ code,
74
+ language: compileLanguage,
75
+ target: 'browser-wasm',
76
+ prepare,
77
+ log,
78
+ onProgress(progress) {
79
+ postMessage({ progress });
80
+ }
81
+ });
82
+ for (const diagnostic of result.diagnostics || []) {
83
+ postMessage({ diagnostic });
84
+ }
85
+ for (const line of result.logs || []) {
86
+ postMessage({ output: line.endsWith('\n') ? line : `${line}\n` });
87
+ }
88
+ if (result.stdout)
89
+ postMessage({ output: result.stdout });
90
+ if (!result.success || !result.artifact) {
91
+ throw new Error(result.stderr ||
92
+ result.diagnostics
93
+ ?.map((diagnostic) => diagnostic.message)
94
+ .join('\n') ||
95
+ `${languageLabel(compileLanguage)} compilation failed`);
96
+ }
97
+ if (result.stderr)
98
+ postMessage({ output: result.stderr });
99
+ compiledArtifact = result.artifact;
100
+ compiledCacheKey = compileCacheKey;
101
+ }
102
+ if (prepare) {
103
+ postMessage({ results: true });
104
+ return;
105
+ }
106
+ postMessage({
107
+ progress: {
108
+ kind: 'ready',
109
+ state: 'running',
110
+ reason: 'started',
111
+ label: `Running ${languageLabel(compileLanguage)} program`
112
+ }
113
+ });
114
+ const execution = await runtime.executeBrowserDotnetArtifact(compiledArtifact, {
115
+ args,
116
+ env: {
117
+ USER: 'jungol'
118
+ },
119
+ stdin,
120
+ maxOutputBytes,
121
+ stdout: (output) => {
122
+ if (output)
123
+ postMessage({ output });
124
+ },
125
+ stderr: (output) => {
126
+ if (output)
127
+ postMessage({ output });
128
+ }
129
+ });
130
+ if (execution.exitCode !== 0) {
131
+ throw new Error(`${languageLabel(compileLanguage)} program exited with code ${execution.exitCode}`);
132
+ }
133
+ postMessage({ results: true });
134
+ }
135
+ catch (error) {
136
+ if (log) {
137
+ console.error('[wasm-idle:dotnet-worker] failed', error);
138
+ }
139
+ postMessage({ error: error?.message || String(error) });
140
+ }
141
+ };
@@ -0,0 +1 @@
1
+ export {};