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,338 @@
1
+ import { BASH_WORKER_PROTOCOL_VERSION, isBashHostToWorkerMessage } from '../bashWorkerProtocol';
2
+ import BashWorkerRuntime from './bashRuntime';
3
+ class BashBridgeProtocolError extends Error {
4
+ constructor(message) {
5
+ super(message);
6
+ this.name = 'ProtocolError';
7
+ }
8
+ }
9
+ const workerSelf = globalThis;
10
+ const runtime = new BashWorkerRuntime();
11
+ let activeOperation = null;
12
+ let activeRun = null;
13
+ let loadedSessionId = null;
14
+ function postMessage(message, transfer) {
15
+ if (transfer) {
16
+ workerSelf.postMessage(message, transfer);
17
+ return;
18
+ }
19
+ workerSelf.postMessage(message);
20
+ }
21
+ function copyStringProperty(value, key) {
22
+ if ((typeof value !== 'object' && typeof value !== 'function') || value === null) {
23
+ return undefined;
24
+ }
25
+ try {
26
+ const property = value[key];
27
+ return typeof property === 'string' ? property : undefined;
28
+ }
29
+ catch {
30
+ return undefined;
31
+ }
32
+ }
33
+ function copyBooleanProperty(value, key) {
34
+ if ((typeof value !== 'object' && typeof value !== 'function') || value === null) {
35
+ return undefined;
36
+ }
37
+ try {
38
+ const property = value[key];
39
+ return typeof property === 'boolean' ? property : undefined;
40
+ }
41
+ catch {
42
+ return undefined;
43
+ }
44
+ }
45
+ function copySafeIntegerProperty(value, key) {
46
+ if ((typeof value !== 'object' && typeof value !== 'function') || value === null) {
47
+ return undefined;
48
+ }
49
+ try {
50
+ const property = value[key];
51
+ return Number.isSafeInteger(property) && property >= 0
52
+ ? property
53
+ : undefined;
54
+ }
55
+ catch {
56
+ return undefined;
57
+ }
58
+ }
59
+ function safelyStringify(value) {
60
+ try {
61
+ return String(value);
62
+ }
63
+ catch {
64
+ return 'Unknown Bash worker error';
65
+ }
66
+ }
67
+ function serializeError(error) {
68
+ const name = copyStringProperty(error, 'name') || 'Error';
69
+ const message = copyStringProperty(error, 'message') ||
70
+ (typeof error === 'string' ? error : safelyStringify(error));
71
+ const stack = copyStringProperty(error, 'stack');
72
+ const code = copyStringProperty(error, 'code');
73
+ const recoverable = copyBooleanProperty(error, 'recoverable');
74
+ const profileId = copyStringProperty(error, 'profileId');
75
+ const actual = copySafeIntegerProperty(error, 'actual');
76
+ const limit = copySafeIntegerProperty(error, 'limit');
77
+ const timeoutMs = copySafeIntegerProperty(error, 'timeoutMs');
78
+ const resource = copyStringProperty(error, 'resource');
79
+ const feature = copyStringProperty(error, 'feature');
80
+ const languageId = copyStringProperty(error, 'languageId');
81
+ return {
82
+ name,
83
+ message,
84
+ ...(stack ? { stack } : {}),
85
+ ...(code ? { code } : {}),
86
+ ...(recoverable === undefined ? {} : { recoverable }),
87
+ ...(profileId ? { profileId } : {}),
88
+ ...(actual === undefined ? {} : { actual }),
89
+ ...(limit === undefined ? {} : { limit }),
90
+ ...(timeoutMs === undefined ? {} : { timeoutMs }),
91
+ ...(resource === 'wasm-memory' || resource === 'nested-workers' || resource === 'threads'
92
+ ? { resource }
93
+ : {}),
94
+ ...(feature ? { feature } : {}),
95
+ ...(languageId ? { languageId } : {})
96
+ };
97
+ }
98
+ function errorPhase(error, fallback) {
99
+ if (error instanceof BashBridgeProtocolError)
100
+ return 'protocol';
101
+ if ((typeof error !== 'object' && typeof error !== 'function') || error === null) {
102
+ return fallback;
103
+ }
104
+ try {
105
+ const phase = error.phase;
106
+ if (phase === 'asset' || phase === 'startup' || phase === 'execute')
107
+ return phase;
108
+ }
109
+ catch {
110
+ // An untrusted error getter must not prevent clone-safe reporting.
111
+ }
112
+ return fallback;
113
+ }
114
+ function postError(identity, error, fallbackPhase) {
115
+ postMessage({
116
+ protocolVersion: BASH_WORKER_PROTOCOL_VERSION,
117
+ type: 'error',
118
+ sessionId: identity.sessionId,
119
+ requestId: identity.requestId,
120
+ phase: errorPhase(error, fallbackPhase),
121
+ error: serializeError(error)
122
+ });
123
+ }
124
+ function requestIdentity(value) {
125
+ if (typeof value !== 'object' || value === null)
126
+ return null;
127
+ try {
128
+ const { sessionId, requestId } = value;
129
+ if (!Number.isSafeInteger(sessionId) ||
130
+ sessionId <= 0 ||
131
+ !Number.isSafeInteger(requestId) ||
132
+ requestId <= 0) {
133
+ return null;
134
+ }
135
+ return { sessionId: sessionId, requestId: requestId };
136
+ }
137
+ catch {
138
+ return null;
139
+ }
140
+ }
141
+ function assertIdle(message) {
142
+ if (!activeOperation)
143
+ return;
144
+ throw new BashBridgeProtocolError(`Cannot ${message.type} Bash while ${activeOperation.type} request ${activeOperation.requestId} is active`);
145
+ }
146
+ function ownsOperation(message) {
147
+ return (activeOperation?.type === message.type &&
148
+ activeOperation.sessionId === message.sessionId &&
149
+ activeOperation.requestId === message.requestId);
150
+ }
151
+ async function handleLoad(message) {
152
+ assertIdle(message);
153
+ activeOperation = {
154
+ type: 'load',
155
+ sessionId: message.sessionId,
156
+ requestId: message.requestId
157
+ };
158
+ try {
159
+ await runtime.loadVerified(message.runtimePreflight, message.log ?? false, { limits: { ...message.limits } }, {
160
+ set(value, stage) {
161
+ if (!ownsOperation(message))
162
+ return;
163
+ postMessage({
164
+ protocolVersion: BASH_WORKER_PROTOCOL_VERSION,
165
+ type: 'progress',
166
+ sessionId: message.sessionId,
167
+ requestId: message.requestId,
168
+ value,
169
+ ...(stage === undefined ? {} : { stage })
170
+ });
171
+ }
172
+ });
173
+ if (!ownsOperation(message))
174
+ return;
175
+ loadedSessionId = message.sessionId;
176
+ postMessage({
177
+ protocolVersion: BASH_WORKER_PROTOCOL_VERSION,
178
+ type: 'loaded',
179
+ sessionId: message.sessionId,
180
+ requestId: message.requestId
181
+ });
182
+ }
183
+ finally {
184
+ if (ownsOperation(message))
185
+ activeOperation = null;
186
+ }
187
+ }
188
+ async function handleRun(message) {
189
+ assertIdle(message);
190
+ if (loadedSessionId !== message.sessionId) {
191
+ throw new BashBridgeProtocolError(`Bash worker session ${message.sessionId} has not loaded a runtime`);
192
+ }
193
+ const run = {
194
+ executionReady: false,
195
+ sessionId: message.sessionId,
196
+ requestId: message.requestId,
197
+ stdinDecoder: new TextDecoder()
198
+ };
199
+ activeOperation = {
200
+ type: 'run',
201
+ sessionId: message.sessionId,
202
+ requestId: message.requestId
203
+ };
204
+ activeRun = run;
205
+ try {
206
+ const runPromise = runtime.run(message.code, false, message.log ?? false, {
207
+ report(progress) {
208
+ if (progress.kind !== 'ready' ||
209
+ progress.state !== 'running' ||
210
+ progress.reason !== 'started' ||
211
+ run.executionReady ||
212
+ activeRun !== run ||
213
+ !ownsOperation(message)) {
214
+ return;
215
+ }
216
+ run.executionReady = true;
217
+ postMessage({
218
+ protocolVersion: BASH_WORKER_PROTOCOL_VERSION,
219
+ type: 'execution-ready',
220
+ sessionId: message.sessionId,
221
+ requestId: message.requestId,
222
+ progress: {
223
+ kind: 'ready',
224
+ state: 'running',
225
+ reason: 'started',
226
+ ...(progress.label ? { label: progress.label } : {})
227
+ }
228
+ });
229
+ if (message.stdin === undefined &&
230
+ activeRun === run &&
231
+ ownsOperation(message)) {
232
+ postMessage({
233
+ protocolVersion: BASH_WORKER_PROTOCOL_VERSION,
234
+ type: 'stdin-ready',
235
+ sessionId: message.sessionId,
236
+ requestId: message.requestId
237
+ });
238
+ }
239
+ }
240
+ }, [...message.programArgs], {
241
+ activePath: message.activePath,
242
+ workspaceFiles: message.workspaceFiles.map(({ path, content }) => ({
243
+ path,
244
+ content
245
+ })),
246
+ programArgs: [...message.programArgs],
247
+ ...(message.stdin === undefined ? {} : { stdin: message.stdin }),
248
+ limits: { ...message.limits },
249
+ workspaceLimits: { ...message.workspaceLimits }
250
+ });
251
+ const result = await runPromise;
252
+ if (!ownsOperation(message))
253
+ return;
254
+ postMessage({
255
+ protocolVersion: BASH_WORKER_PROTOCOL_VERSION,
256
+ type: 'result',
257
+ sessionId: message.sessionId,
258
+ requestId: message.requestId,
259
+ result
260
+ });
261
+ }
262
+ finally {
263
+ if (activeRun === run)
264
+ activeRun = null;
265
+ if (ownsOperation(message))
266
+ activeOperation = null;
267
+ }
268
+ }
269
+ function handleStdin(message) {
270
+ const run = activeRun;
271
+ if (!run || run.sessionId !== message.sessionId || run.requestId !== message.requestId) {
272
+ return;
273
+ }
274
+ const input = run.stdinDecoder.decode(message.bytes, { stream: true });
275
+ if (input)
276
+ runtime.write(input);
277
+ }
278
+ function handleStdinEof(message) {
279
+ const run = activeRun;
280
+ if (!run || run.sessionId !== message.sessionId || run.requestId !== message.requestId) {
281
+ return;
282
+ }
283
+ const finalInput = run.stdinDecoder.decode();
284
+ if (finalInput)
285
+ runtime.write(finalInput);
286
+ runtime.eof();
287
+ }
288
+ runtime.outputBytes = (stream, output) => {
289
+ const run = activeRun;
290
+ if (!run)
291
+ return;
292
+ const bytes = Uint8Array.from(output);
293
+ postMessage({
294
+ protocolVersion: BASH_WORKER_PROTOCOL_VERSION,
295
+ type: 'output',
296
+ sessionId: run.sessionId,
297
+ requestId: run.requestId,
298
+ stream,
299
+ bytes
300
+ }, [bytes.buffer]);
301
+ };
302
+ async function dispatch(message) {
303
+ switch (message.type) {
304
+ case 'load':
305
+ await handleLoad(message);
306
+ return;
307
+ case 'run':
308
+ await handleRun(message);
309
+ return;
310
+ case 'stdin':
311
+ handleStdin(message);
312
+ return;
313
+ case 'stdin-eof':
314
+ handleStdinEof(message);
315
+ }
316
+ }
317
+ workerSelf.onmessage = async (event) => {
318
+ const identity = requestIdentity(event.data);
319
+ if (!isBashHostToWorkerMessage(event.data)) {
320
+ if (identity) {
321
+ postError(identity, new BashBridgeProtocolError('Invalid Bash worker protocol message'), 'protocol');
322
+ }
323
+ return;
324
+ }
325
+ try {
326
+ await dispatch(event.data);
327
+ }
328
+ catch (error) {
329
+ postError(event.data, error, event.data.type === 'load'
330
+ ? 'startup'
331
+ : event.data.type === 'run' ||
332
+ event.data.type === 'stdin' ||
333
+ event.data.type === 'stdin-eof'
334
+ ? 'execute'
335
+ : 'protocol');
336
+ }
337
+ };
338
+ export {};
@@ -0,0 +1,6 @@
1
+ export interface BashNestedBootstrapSourceOptions {
2
+ sdkModuleUrl: string;
3
+ sentinelUrl: string;
4
+ realmUrl: string;
5
+ }
6
+ export declare function createBashNestedBootstrapSource(options: BashNestedBootstrapSourceOptions): string;
@@ -0,0 +1,59 @@
1
+ function requireHierarchicalHttpUrl(value, label) {
2
+ let url;
3
+ try {
4
+ url = new URL(value);
5
+ }
6
+ catch (error) {
7
+ throw new TypeError(`Bash ${label} URL is invalid`, { cause: error });
8
+ }
9
+ if ((url.protocol !== 'https:' && url.protocol !== 'http:') || url.username || url.password) {
10
+ throw new TypeError(`Bash ${label} URL must be a credential-free hierarchical HTTP URL`);
11
+ }
12
+ return url;
13
+ }
14
+ export function createBashNestedBootstrapSource(options) {
15
+ const realmUrl = requireHierarchicalHttpUrl(options.realmUrl, 'realm');
16
+ const sentinelUrl = requireHierarchicalHttpUrl(options.sentinelUrl, 'sentinel');
17
+ if (sentinelUrl.origin !== realmUrl.origin || sentinelUrl.hash) {
18
+ throw new TypeError('Bash SDK sentinel URL must be same-origin and must not contain a hash');
19
+ }
20
+ let sdkModuleUrl;
21
+ try {
22
+ sdkModuleUrl = new URL(options.sdkModuleUrl);
23
+ }
24
+ catch (error) {
25
+ throw new TypeError('Bash verified SDK Blob URL is invalid', { cause: error });
26
+ }
27
+ if (sdkModuleUrl.protocol !== 'blob:' || sdkModuleUrl.origin !== realmUrl.origin) {
28
+ throw new TypeError('Bash SDK module URL must be a same-origin verified Blob URL');
29
+ }
30
+ const sdkModuleLiteral = JSON.stringify(sdkModuleUrl.href);
31
+ const sentinelLiteral = JSON.stringify(sentinelUrl.href);
32
+ return `const verifiedSdkUrl = ${sdkModuleLiteral};
33
+ const sdkSentinelUrl = ${sentinelLiteral};
34
+ let threadPoolWorker;
35
+ const pendingMessages = [];
36
+ globalThis.onerror = console.error;
37
+ globalThis.onmessage = async (event) => {
38
+ const data = event.data;
39
+ if (data?.type === 'init') {
40
+ if (threadPoolWorker) {
41
+ throw new Error('Bash nested worker has already been initialized');
42
+ }
43
+ const { memory, module, id } = data;
44
+ const { init, ThreadPoolWorker } = await import(verifiedSdkUrl);
45
+ await init({ module, memory, sdkUrl: sdkSentinelUrl });
46
+ threadPoolWorker = new ThreadPoolWorker(id);
47
+ for (const pending of pendingMessages.splice(0, pendingMessages.length)) {
48
+ await threadPoolWorker.handle(pending);
49
+ }
50
+ return;
51
+ }
52
+ if (threadPoolWorker) {
53
+ await threadPoolWorker.handle(data);
54
+ } else {
55
+ pendingMessages.push(data);
56
+ }
57
+ };
58
+ `;
59
+ }
@@ -0,0 +1,89 @@
1
+ import { type CompilerDiagnostic, type SandboxExecutionOptions } from '../options';
2
+ import type { Sandbox, SandboxProgress, SandboxRuntimeAssets } from '../sandbox';
3
+ import { type BashRuntimePreflightPayload } from '@wasm-idle/core';
4
+ interface WasixInstance {
5
+ stdin?: WritableStream<Uint8Array>;
6
+ stdout: ReadableStream<Uint8Array>;
7
+ stderr: ReadableStream<Uint8Array>;
8
+ wait(): Promise<{
9
+ ok: boolean;
10
+ code: number;
11
+ }>;
12
+ free(): void;
13
+ }
14
+ interface WasmerCommand {
15
+ run(options: Record<string, unknown>): Promise<WasixInstance>;
16
+ free(): void;
17
+ }
18
+ interface WasmerPackage {
19
+ entrypoint?: WasmerCommand;
20
+ free(): void;
21
+ }
22
+ interface WasmerRuntime {
23
+ free?(): void;
24
+ }
25
+ interface WasmerSdk {
26
+ init(options: {
27
+ module: Uint8Array | WebAssembly.Module;
28
+ sdkUrl: string;
29
+ workerUrl: string;
30
+ }): Promise<unknown>;
31
+ Runtime: new (options: {
32
+ registry: null;
33
+ }) => WasmerRuntime;
34
+ Wasmer: {
35
+ fromFile(bytes: Uint8Array, runtime: WasmerRuntime): Promise<WasmerPackage>;
36
+ };
37
+ }
38
+ export interface BashWorkerRuntimeDependencies {
39
+ readonly importVerifiedSdkModule?: (url: string) => Promise<WasmerSdk>;
40
+ }
41
+ declare class BashWorkerRuntime implements Sandbox {
42
+ output?: (data: string) => void;
43
+ outputBytes?: (stream: 'stdout' | 'stderr', data: Uint8Array) => void;
44
+ oncompilerdiagnostic?: (diagnostic: CompilerDiagnostic) => void;
45
+ webcUrl: string;
46
+ runtimePackage: WasmerPackage | null;
47
+ instance: WasixInstance | null;
48
+ stdinWriter: WritableStreamDefaultWriter | null;
49
+ outputController: AbortController | null;
50
+ pendingInput: string[];
51
+ pendingEof: boolean;
52
+ activeLoadReject: ((reason: unknown) => void) | null;
53
+ activeLoadCleanup: (() => void) | null;
54
+ private loadGeneration;
55
+ private sdkModule;
56
+ private sdkRuntime;
57
+ private sdkBlobUrl;
58
+ private nestedWorkerBlobUrl;
59
+ activeReject: ((reason: unknown) => void) | null;
60
+ activeRunCleanup: (() => void) | null;
61
+ begin: number;
62
+ elapse: number;
63
+ uid: number;
64
+ exit: boolean;
65
+ private activeOperation;
66
+ private readonly importVerifiedSdkModule;
67
+ constructor(dependencies?: BashWorkerRuntimeDependencies);
68
+ private beginOperation;
69
+ private isOperationActive;
70
+ private requireOperationActive;
71
+ private snapshotExecutionLimits;
72
+ private releaseOperation;
73
+ private cleanupOperation;
74
+ private abortOperationSignal;
75
+ private bindOperationTimeout;
76
+ private releaseBeforeSession;
77
+ private bindPreSessionAbort;
78
+ load(_runtimeAssets?: SandboxRuntimeAssets, _code?: string, _log?: boolean, _args?: string[], _options?: SandboxExecutionOptions, _progress?: SandboxProgress): Promise<void>;
79
+ loadVerified(runtimePreflight: BashRuntimePreflightPayload, _log?: boolean, options?: SandboxExecutionOptions, progress?: SandboxProgress): Promise<void>;
80
+ write(input: string): void;
81
+ eof(): void;
82
+ private flushPendingInput;
83
+ private disposeRunHandles;
84
+ run(code: string, prepare: boolean, _log?: boolean, progress?: SandboxProgress, args?: string[], options?: SandboxExecutionOptions): Promise<boolean | string>;
85
+ kill(): void;
86
+ terminate(reason?: unknown): void;
87
+ clear(): Promise<void>;
88
+ }
89
+ export default BashWorkerRuntime;