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
@@ -0,0 +1,273 @@
1
+ import { ConsoleStdout, Fd, WASI, WASIProcExit, wasi } from '@bjorn3/browser_wasi_shim';
2
+ import { waitForBufferedStdin } from '../stdinBuffer';
3
+ const encoder = new TextEncoder();
4
+ const decoder = new TextDecoder();
5
+ let stdinChunkWasm = new Uint8Array(0);
6
+ let stdinChunkOffsetWasm = 0;
7
+ class WasmStdin extends Fd {
8
+ buffer;
9
+ log;
10
+ initialStdin;
11
+ hasInitialStdin;
12
+ constructor(initialStdin, buffer, log) {
13
+ super();
14
+ this.buffer = buffer;
15
+ this.log = log;
16
+ this.initialStdin = typeof initialStdin === 'string' ? initialStdin : null;
17
+ this.hasInitialStdin = typeof initialStdin === 'string';
18
+ }
19
+ fd_fdstat_get() {
20
+ const fdstat = new wasi.Fdstat(wasi.FILETYPE_CHARACTER_DEVICE, 0);
21
+ fdstat.fs_rights_base = BigInt(wasi.RIGHTS_FD_READ);
22
+ fdstat.fs_rights_inherited = 0n;
23
+ return { ret: wasi.ERRNO_SUCCESS, fdstat };
24
+ }
25
+ fd_filestat_get() {
26
+ return {
27
+ ret: wasi.ERRNO_SUCCESS,
28
+ filestat: new wasi.Filestat(0n, wasi.FILETYPE_CHARACTER_DEVICE, 0n)
29
+ };
30
+ }
31
+ fd_read(size) {
32
+ if (stdinChunkOffsetWasm >= stdinChunkWasm.length) {
33
+ const nextChunk = this.readNextChunk();
34
+ if (nextChunk === null) {
35
+ stdinChunkWasm = new Uint8Array(0);
36
+ stdinChunkOffsetWasm = 0;
37
+ return {
38
+ ret: wasi.ERRNO_SUCCESS,
39
+ data: new Uint8Array(0)
40
+ };
41
+ }
42
+ stdinChunkWasm = encoder.encode(nextChunk);
43
+ stdinChunkOffsetWasm = 0;
44
+ }
45
+ const end = Math.min(stdinChunkOffsetWasm + size, stdinChunkWasm.length);
46
+ const data = stdinChunkWasm.slice(stdinChunkOffsetWasm, end);
47
+ stdinChunkOffsetWasm = end;
48
+ return {
49
+ ret: wasi.ERRNO_SUCCESS,
50
+ data
51
+ };
52
+ }
53
+ readByte() {
54
+ if (stdinChunkOffsetWasm >= stdinChunkWasm.length) {
55
+ const nextChunk = this.readNextChunk();
56
+ if (nextChunk === null) {
57
+ stdinChunkWasm = new Uint8Array(0);
58
+ stdinChunkOffsetWasm = 0;
59
+ return -1;
60
+ }
61
+ stdinChunkWasm = encoder.encode(nextChunk);
62
+ stdinChunkOffsetWasm = 0;
63
+ }
64
+ return stdinChunkWasm[stdinChunkOffsetWasm++] ?? -1;
65
+ }
66
+ readNextChunk() {
67
+ if (this.hasInitialStdin) {
68
+ const chunk = this.initialStdin;
69
+ this.initialStdin = null;
70
+ this.logRead(chunk);
71
+ return chunk;
72
+ }
73
+ if (!this.buffer) {
74
+ this.logRead(null);
75
+ return null;
76
+ }
77
+ const chunk = waitForBufferedStdin(this.buffer, () => postMessage({ buffer: true }));
78
+ this.logRead(chunk);
79
+ return chunk;
80
+ }
81
+ logRead(chunk) {
82
+ if (!this.log)
83
+ return;
84
+ if (chunk === null) {
85
+ console.log('[wasm-idle:wasm-stdin] read(bytes=0, eof=true)');
86
+ return;
87
+ }
88
+ console.log(`[wasm-idle:wasm-stdin] read(bytes=${encoder.encode(chunk).byteLength}, text=${JSON.stringify(chunk)})`);
89
+ }
90
+ }
91
+ function normalizeWorkspacePath(path) {
92
+ return path
93
+ .replace(/^\/+/, '')
94
+ .split('/')
95
+ .filter((part) => part && part !== '.' && part !== '..' && !part.includes('\0'))
96
+ .join('/');
97
+ }
98
+ function sourceFromWorkspace(code, activePath, workspaceFiles) {
99
+ const normalizedActivePath = normalizeWorkspacePath(activePath || 'main.wasm');
100
+ const file = workspaceFiles.find((entry) => normalizeWorkspacePath(entry.path) === normalizedActivePath);
101
+ return file?.content || code;
102
+ }
103
+ function decodeBase64(value) {
104
+ const normalized = value.replace(/-/g, '+').replace(/_/g, '/');
105
+ const padded = normalized.padEnd(Math.ceil(normalized.length / 4) * 4, '=');
106
+ const binary = atob(padded);
107
+ return Uint8Array.from(binary, (character) => character.charCodeAt(0));
108
+ }
109
+ function decodeHex(value) {
110
+ const normalized = value.replace(/^0x/iu, '').replace(/\s+/gu, '');
111
+ const bytes = new Uint8Array(normalized.length / 2);
112
+ for (let index = 0; index < bytes.length; index += 1) {
113
+ bytes[index] = Number.parseInt(normalized.slice(index * 2, index * 2 + 2), 16);
114
+ }
115
+ return bytes;
116
+ }
117
+ function decodeWasmBytes(source) {
118
+ const withoutComments = source
119
+ .split(/\r?\n/u)
120
+ .filter((line) => !line.trimStart().startsWith('#'))
121
+ .join('\n')
122
+ .trim();
123
+ const dataUrlMatch = /^data:[^,]*,\s*([\s\S]+)$/iu.exec(withoutComments);
124
+ const prefixedBase64 = /^(?:base64|wasm):\s*([\s\S]+)$/iu.exec(withoutComments);
125
+ const candidate = (dataUrlMatch?.[1] || prefixedBase64?.[1] || withoutComments).replace(/\s+/gu, '');
126
+ let bytes;
127
+ try {
128
+ bytes =
129
+ /^(?:0x)?[0-9a-f]+$/iu.test(candidate) &&
130
+ candidate.replace(/^0x/iu, '').length % 2 === 0
131
+ ? decodeHex(candidate)
132
+ : decodeBase64(candidate);
133
+ }
134
+ catch {
135
+ throw new Error('WASM source must decode to a WebAssembly binary');
136
+ }
137
+ if (bytes.length < 4 ||
138
+ bytes[0] !== 0x00 ||
139
+ bytes[1] !== 0x61 ||
140
+ bytes[2] !== 0x73 ||
141
+ bytes[3] !== 0x6d) {
142
+ throw new Error('WASM source must decode to a WebAssembly binary');
143
+ }
144
+ return bytes;
145
+ }
146
+ self.onmessage = async (event) => {
147
+ const { load, code, prepare, buffer, stdin, args = [], activePath = 'main.wasm', workspaceFiles = [], log } = event.data;
148
+ try {
149
+ if (load) {
150
+ postMessage({ load: true });
151
+ return;
152
+ }
153
+ const source = sourceFromWorkspace(code, activePath, workspaceFiles);
154
+ const bytes = decodeWasmBytes(source);
155
+ const wasmBuffer = new ArrayBuffer(bytes.byteLength);
156
+ new Uint8Array(wasmBuffer).set(bytes);
157
+ if (prepare) {
158
+ await WebAssembly.compile(wasmBuffer);
159
+ postMessage({ results: true });
160
+ return;
161
+ }
162
+ stdinChunkWasm = new Uint8Array(0);
163
+ stdinChunkOffsetWasm = 0;
164
+ const stdinReader = new WasmStdin(stdin, buffer ? new Int32Array(buffer) : null, Boolean(log));
165
+ const stdout = new ConsoleStdout((chunk) => {
166
+ const text = decoder.decode(chunk);
167
+ if (text)
168
+ postMessage({ output: text });
169
+ });
170
+ const stderr = new ConsoleStdout((chunk) => {
171
+ const text = decoder.decode(chunk);
172
+ if (text)
173
+ postMessage({ output: text });
174
+ });
175
+ const wasiRuntime = new WASI(args, ['USER=wasm-idle'], [stdinReader, stdout, stderr]);
176
+ const compiledModule = await WebAssembly.compile(wasmBuffer);
177
+ const importModules = WebAssembly.Module.imports(compiledModule).map((entry) => entry.module);
178
+ const usesWasi = importModules.includes('wasi_snapshot_preview1') ||
179
+ importModules.includes('wasi_unstable');
180
+ const instance = await WebAssembly.instantiate(compiledModule, {
181
+ env: {
182
+ readByte() {
183
+ return stdinReader.readByte();
184
+ }
185
+ },
186
+ wasi_snapshot_preview1: wasiRuntime.wasiImport,
187
+ wasi_unstable: wasiRuntime.wasiImport
188
+ });
189
+ const exportsObject = instance.exports;
190
+ postMessage({
191
+ progress: {
192
+ kind: 'ready',
193
+ state: 'running',
194
+ reason: 'started',
195
+ label: 'WASM program started'
196
+ }
197
+ });
198
+ let exitCode = 0;
199
+ let printed = false;
200
+ try {
201
+ if (usesWasi && typeof exportsObject._start === 'function') {
202
+ exitCode = wasiRuntime.start(instance);
203
+ }
204
+ else if (usesWasi && typeof exportsObject.memory === 'object') {
205
+ wasiRuntime.initialize(instance);
206
+ if (typeof exportsObject.main === 'function') {
207
+ const result = exportsObject.main();
208
+ if (typeof result === 'number' || typeof result === 'bigint') {
209
+ postMessage({ output: `main=${String(result)}\n` });
210
+ printed = true;
211
+ }
212
+ }
213
+ }
214
+ else if (typeof exportsObject._start === 'function') {
215
+ const result = exportsObject._start();
216
+ if (typeof result === 'number' || typeof result === 'bigint') {
217
+ postMessage({ output: `_start=${String(result)}\n` });
218
+ printed = true;
219
+ }
220
+ }
221
+ else if (typeof exportsObject.main === 'function') {
222
+ const result = exportsObject.main();
223
+ if (typeof result === 'number' || typeof result === 'bigint') {
224
+ postMessage({ output: `main=${String(result)}\n` });
225
+ printed = true;
226
+ }
227
+ }
228
+ else {
229
+ for (const [name, value] of Object.entries(exportsObject)) {
230
+ if (name.startsWith('_') || typeof value !== 'function')
231
+ continue;
232
+ try {
233
+ const result = value();
234
+ if (typeof result === 'number' || typeof result === 'bigint') {
235
+ postMessage({ output: `${name}=${String(result)}\n` });
236
+ printed = true;
237
+ }
238
+ }
239
+ catch {
240
+ // Parameterized exports are still valid but cannot be auto-run.
241
+ }
242
+ }
243
+ }
244
+ }
245
+ catch (error) {
246
+ if (error instanceof WASIProcExit) {
247
+ exitCode = error.code;
248
+ }
249
+ else {
250
+ throw error;
251
+ }
252
+ }
253
+ if (exitCode !== 0) {
254
+ throw new Error(`WASM module exited with code ${exitCode}`);
255
+ }
256
+ if (!printed && !usesWasi && typeof exportsObject._start !== 'function') {
257
+ const exportNames = Object.keys(exportsObject).sort().join(', ');
258
+ postMessage({
259
+ output: exportNames ? `exports: ${exportNames}\n` : 'compiled WebAssembly module\n'
260
+ });
261
+ }
262
+ if (log) {
263
+ console.log('[wasm-idle:wasm-worker] run settled');
264
+ }
265
+ postMessage({ results: true });
266
+ }
267
+ catch (error) {
268
+ if (log) {
269
+ console.error('[wasm-idle:wasm-worker] failed', error);
270
+ }
271
+ postMessage({ error: error?.message || String(error) });
272
+ }
273
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,188 @@
1
+ import { waitForBufferedStdin } from '../stdinBuffer';
2
+ const encoder = new TextEncoder();
3
+ let moduleUrl = '';
4
+ let loadedModuleUrl = '';
5
+ let runtimePromise = null;
6
+ let compiledArtifact = null;
7
+ let compiledCacheKey = '';
8
+ class WatStdin {
9
+ buffer;
10
+ log;
11
+ initialStdin;
12
+ fixedInitialStdin;
13
+ currentBytes = new Uint8Array(0);
14
+ currentOffset = 0;
15
+ constructor(initialStdin, buffer, log) {
16
+ this.buffer = buffer;
17
+ this.log = log;
18
+ this.initialStdin = typeof initialStdin === 'string' ? initialStdin : null;
19
+ this.fixedInitialStdin = typeof initialStdin === 'string';
20
+ }
21
+ readByte() {
22
+ while (this.currentOffset >= this.currentBytes.length) {
23
+ const chunk = this.readChunk();
24
+ if (chunk == null)
25
+ return -1;
26
+ if (!chunk)
27
+ continue;
28
+ this.currentBytes = encoder.encode(chunk);
29
+ this.currentOffset = 0;
30
+ }
31
+ return this.currentBytes[this.currentOffset++] ?? -1;
32
+ }
33
+ readChunk() {
34
+ if (this.initialStdin != null) {
35
+ const chunk = this.initialStdin;
36
+ this.initialStdin = null;
37
+ return chunk;
38
+ }
39
+ if (this.fixedInitialStdin || !this.buffer)
40
+ return null;
41
+ const chunk = waitForBufferedStdin(this.buffer, () => postMessage({ buffer: true }));
42
+ if (this.log) {
43
+ console.log(chunk == null
44
+ ? '[wasm-idle:wat-stdin] read(bytes=0, eof=true)'
45
+ : `[wasm-idle:wat-stdin] read(bytes=${encoder.encode(chunk).byteLength}, text=${JSON.stringify(chunk)})`);
46
+ }
47
+ return chunk;
48
+ }
49
+ }
50
+ async function loadRuntime(url) {
51
+ if (!url) {
52
+ throw new Error('WAT runtime is not configured. Set PUBLIC_WASM_WAT_MODULE_URL or runtimeAssets.wat.moduleUrl.');
53
+ }
54
+ if (loadedModuleUrl === url && runtimePromise) {
55
+ return await runtimePromise;
56
+ }
57
+ loadedModuleUrl = url;
58
+ compiledArtifact = null;
59
+ compiledCacheKey = '';
60
+ runtimePromise = (async () => {
61
+ const module = await import(/* @vite-ignore */ url);
62
+ const factory = typeof module.createWatCompiler === 'function'
63
+ ? module.createWatCompiler
64
+ : typeof module.default === 'function'
65
+ ? module.default
66
+ : null;
67
+ if (!factory) {
68
+ throw new Error('wasm-wat module must export createWatCompiler or a default factory');
69
+ }
70
+ if (typeof module.executeBrowserWatArtifact !== 'function') {
71
+ throw new Error('wasm-wat module must export executeBrowserWatArtifact');
72
+ }
73
+ return {
74
+ compiler: await factory(),
75
+ executeBrowserWatArtifact: module.executeBrowserWatArtifact
76
+ };
77
+ })();
78
+ return await runtimePromise;
79
+ }
80
+ function normalizeDiagnostic(diagnostic) {
81
+ return {
82
+ fileName: diagnostic?.fileName ?? null,
83
+ lineNumber: Math.max(1, Number(diagnostic?.lineNumber || 1)),
84
+ columnNumber: typeof diagnostic?.columnNumber === 'number'
85
+ ? Math.max(1, diagnostic.columnNumber)
86
+ : undefined,
87
+ endColumnNumber: typeof diagnostic?.endColumnNumber === 'number'
88
+ ? Math.max(1, diagnostic.endColumnNumber)
89
+ : undefined,
90
+ severity: diagnostic?.severity === 'warning' || diagnostic?.severity === 'other'
91
+ ? diagnostic.severity
92
+ : 'error',
93
+ message: String(diagnostic?.message || '')
94
+ };
95
+ }
96
+ self.onmessage = async (event) => {
97
+ const { load, moduleUrl: nextModuleUrl, code, prepare, buffer, stdin, activePath = 'main.wat', workspaceFiles = [], log } = event.data;
98
+ try {
99
+ if (load) {
100
+ moduleUrl = nextModuleUrl;
101
+ if (log) {
102
+ console.log(`[wasm-idle:wat-worker] load moduleUrl=${moduleUrl}`);
103
+ }
104
+ await loadRuntime(moduleUrl);
105
+ postMessage({ load: true });
106
+ return;
107
+ }
108
+ const runtime = await loadRuntime(moduleUrl);
109
+ const compileCacheKey = JSON.stringify({
110
+ activePath,
111
+ code,
112
+ workspaceFiles
113
+ });
114
+ if (!compiledArtifact || compiledCacheKey !== compileCacheKey) {
115
+ if (log) {
116
+ console.log(`[wasm-idle:wat-worker] compile start prepare=${String(prepare)} bytes=${code.length}`);
117
+ }
118
+ const result = await runtime.compiler.compile({
119
+ code,
120
+ fileName: activePath,
121
+ log
122
+ });
123
+ if (log) {
124
+ console.log(`[wasm-idle:wat-worker] compile settled success=${String(result.success)} stdout=${String(Boolean(result.stdout))} stderr=${String(Boolean(result.stderr))}`);
125
+ }
126
+ for (const diagnostic of result.diagnostics || []) {
127
+ postMessage({ diagnostic: normalizeDiagnostic(diagnostic) });
128
+ }
129
+ if (result.stdout)
130
+ postMessage({ output: result.stdout });
131
+ if (!result.success || !result.artifact) {
132
+ throw new Error(result.stderr ||
133
+ result.diagnostics
134
+ ?.map((diagnostic) => diagnostic.message)
135
+ .join('\n') ||
136
+ 'WAT compilation failed');
137
+ }
138
+ if (result.stderr)
139
+ postMessage({ output: result.stderr });
140
+ compiledArtifact = result.artifact;
141
+ compiledCacheKey = compileCacheKey;
142
+ }
143
+ if (prepare) {
144
+ postMessage({ results: true });
145
+ return;
146
+ }
147
+ const stdinReader = new WatStdin(stdin, buffer ? new Int32Array(buffer) : null, Boolean(log));
148
+ const execution = await runtime.executeBrowserWatArtifact(compiledArtifact, {
149
+ files: workspaceFiles,
150
+ activePath,
151
+ onReady: () => postMessage({
152
+ progress: {
153
+ kind: 'ready',
154
+ state: 'running',
155
+ reason: 'started',
156
+ label: 'WAT program started'
157
+ }
158
+ }),
159
+ imports: {
160
+ env: {
161
+ readByte() {
162
+ return stdinReader.readByte();
163
+ }
164
+ }
165
+ },
166
+ stdout: (output) => {
167
+ if (output)
168
+ postMessage({ output });
169
+ },
170
+ stderr: (output) => {
171
+ if (output)
172
+ postMessage({ output });
173
+ }
174
+ });
175
+ if (execution.exitCode !== 0) {
176
+ throw new Error(execution.stderr
177
+ ? `WAT module exited with code ${execution.exitCode}\n${execution.stderr}`
178
+ : `WAT module exited with code ${execution.exitCode}`);
179
+ }
180
+ postMessage({ results: true });
181
+ }
182
+ catch (error) {
183
+ if (log) {
184
+ console.error('[wasm-idle:wat-worker] failed', error);
185
+ }
186
+ postMessage({ error: error?.message || String(error) });
187
+ }
188
+ };
@@ -0,0 +1,8 @@
1
+ import { Directory } from '@bjorn3/browser_wasi_shim';
2
+ import { type ZigExecutionAssetReceipt } from '../zigAssets';
3
+ interface ZigStdlibArchiveLimits {
4
+ maxExpandedBytes?: number;
5
+ maxFiles?: number;
6
+ }
7
+ export declare function loadStdDirectory(source: Uint8Array, assetUrl: string, limits?: ZigStdlibArchiveLimits, receipt?: ZigExecutionAssetReceipt): Promise<Directory>;
8
+ export {};