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,383 @@
1
+ import { AssetIntegrityError, AssetTooLargeError, CancelledError, RuntimeConfigurationError, TimeoutError, UnsupportedBrowserFeatureError, isWasmIdleError, preflightRuntimeAssets, resolveExecutionLimits, verifyRuntimeAssetIntegrity } from '@wasm-idle/core';
2
+ export const CLOJURESCRIPT_PREFLIGHT_PROTOCOL = 'wasm-idle-clojurescript-preflight';
3
+ export const CLOJURESCRIPT_PREFLIGHT_PROTOCOL_VERSION = 1;
4
+ export const CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID = 'CLOJURESCRIPT';
5
+ const MAX_MANIFEST_BYTES = 64 * 1024;
6
+ const HARD_MAX_ASSET_BYTES = 16 * 1024 * 1024;
7
+ const VERIFIED_COMPILER_STORAGE_PATH = 'compiler.js.gz.bin';
8
+ export async function preflightClojureScriptRuntimeAssets(request) {
9
+ if (!request || typeof request !== 'object') {
10
+ throw new RuntimeConfigurationError('ClojureScript runtime preflight request is required', {
11
+ phase: 'asset',
12
+ runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID
13
+ });
14
+ }
15
+ let baseUrl;
16
+ let manifestUrl;
17
+ try {
18
+ baseUrl = new URL(request.baseUrl);
19
+ if (!baseUrl.pathname.endsWith('/'))
20
+ baseUrl.pathname += '/';
21
+ manifestUrl = new URL(request.manifestUrl, baseUrl);
22
+ }
23
+ catch (error) {
24
+ throw new RuntimeConfigurationError('ClojureScript runtime asset URLs are invalid', {
25
+ cause: error,
26
+ phase: 'asset',
27
+ runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID
28
+ });
29
+ }
30
+ if ((baseUrl.protocol !== 'https:' && baseUrl.protocol !== 'http:') ||
31
+ baseUrl.username ||
32
+ baseUrl.password ||
33
+ baseUrl.search ||
34
+ baseUrl.hash) {
35
+ throw new RuntimeConfigurationError('ClojureScript runtime base must be a credential-free HTTP(S) directory URL without a query or fragment', { phase: 'asset', runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID });
36
+ }
37
+ if ((manifestUrl.protocol !== 'https:' && manifestUrl.protocol !== 'http:') ||
38
+ manifestUrl.username ||
39
+ manifestUrl.password ||
40
+ manifestUrl.hash ||
41
+ manifestUrl.origin !== baseUrl.origin ||
42
+ !manifestUrl.pathname.startsWith(baseUrl.pathname)) {
43
+ throw new RuntimeConfigurationError('ClojureScript runtime manifest must be an HTTP(S) asset beneath the configured runtime base', { phase: 'asset', runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID });
44
+ }
45
+ const manifestPath = manifestUrl.pathname.slice(baseUrl.pathname.length);
46
+ if (!manifestPath ||
47
+ manifestPath.includes('\\') ||
48
+ manifestPath.includes('\0') ||
49
+ manifestPath.split('/').some((segment) => !segment || segment === '.' || segment === '..')) {
50
+ throw new RuntimeConfigurationError('ClojureScript runtime manifest path must be a normalized file beneath the runtime base', { phase: 'asset', runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID });
51
+ }
52
+ if (manifestPath === VERIFIED_COMPILER_STORAGE_PATH) {
53
+ throw new RuntimeConfigurationError('ClojureScript runtime manifest and compiler storage paths must be distinct', { phase: 'asset', runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID });
54
+ }
55
+ const profile = request.profile;
56
+ if (!profile ||
57
+ typeof profile !== 'object' ||
58
+ typeof profile.profileId !== 'string' ||
59
+ !/^clojurescript-[A-Za-z0-9._+-]+$/u.test(profile.profileId) ||
60
+ typeof profile.sourceRevision !== 'string' ||
61
+ profile.sourceRevision !== 'r1.12.134' ||
62
+ typeof profile.integrationRevision !== 'string' ||
63
+ !/^[a-f0-9]{40}$/u.test(profile.integrationRevision) ||
64
+ typeof profile.manifestFingerprint !== 'string' ||
65
+ !/^[a-f0-9]{64}$/u.test(profile.manifestFingerprint)) {
66
+ throw new RuntimeConfigurationError('ClojureScript runtime preflight profile is invalid', {
67
+ phase: 'asset',
68
+ runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID
69
+ });
70
+ }
71
+ const manifestReceipt = profile.manifestReceipt;
72
+ if (!manifestReceipt ||
73
+ typeof manifestReceipt !== 'object' ||
74
+ !Number.isSafeInteger(manifestReceipt.bytes) ||
75
+ (manifestReceipt.bytes ?? 0) <= 0 ||
76
+ typeof manifestReceipt.sha256 !== 'string' ||
77
+ !/^[a-f0-9]{64}$/u.test(manifestReceipt.sha256)) {
78
+ throw new RuntimeConfigurationError('ClojureScript runtime manifest preflight receipt is invalid', {
79
+ phase: 'asset',
80
+ profileId: profile.profileId,
81
+ runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID
82
+ });
83
+ }
84
+ const compilerReceipt = profile.compilerReceipt;
85
+ if (!compilerReceipt ||
86
+ typeof compilerReceipt !== 'object' ||
87
+ !Number.isSafeInteger(compilerReceipt.bytes) ||
88
+ (compilerReceipt.bytes ?? 0) <= 0 ||
89
+ typeof compilerReceipt.sha256 !== 'string' ||
90
+ !/^[a-f0-9]{64}$/u.test(compilerReceipt.sha256) ||
91
+ !Number.isSafeInteger(compilerReceipt.uncompressedBytes) ||
92
+ (compilerReceipt.uncompressedBytes ?? 0) <= 0 ||
93
+ typeof compilerReceipt.uncompressedSha256 !== 'string' ||
94
+ !/^[a-f0-9]{64}$/u.test(compilerReceipt.uncompressedSha256)) {
95
+ throw new RuntimeConfigurationError('ClojureScript runtime compiler preflight receipt is invalid', {
96
+ phase: 'asset',
97
+ profileId: profile.profileId,
98
+ runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID
99
+ });
100
+ }
101
+ const limits = resolveExecutionLimits(request.limits);
102
+ const maxAssetBytes = Math.min(limits.maxAssetBytes, HARD_MAX_ASSET_BYTES);
103
+ const oversized = [
104
+ ['manifest', manifestReceipt.bytes, Math.min(MAX_MANIFEST_BYTES, maxAssetBytes)],
105
+ ['compressed compiler', compilerReceipt.bytes, maxAssetBytes],
106
+ ['logical compiler', compilerReceipt.uncompressedBytes, maxAssetBytes]
107
+ ];
108
+ for (const [label, bytes, limit] of oversized) {
109
+ if (bytes > limit) {
110
+ throw new AssetTooLargeError(`ClojureScript runtime ${label} exceeds the ${limit} byte limit`, {
111
+ actual: bytes,
112
+ limit,
113
+ phase: 'asset',
114
+ profileId: profile.profileId,
115
+ runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID
116
+ });
117
+ }
118
+ }
119
+ if (typeof DecompressionStream !== 'function') {
120
+ throw new UnsupportedBrowserFeatureError('DecompressionStream(gzip)', {
121
+ phase: 'asset',
122
+ profileId: profile.profileId,
123
+ runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID
124
+ });
125
+ }
126
+ const expectedManifestQuery = `?v=${profile.manifestFingerprint}`;
127
+ if (manifestUrl.search && manifestUrl.search !== expectedManifestQuery) {
128
+ throw new RuntimeConfigurationError('ClojureScript runtime manifest query must be the pinned manifest fingerprint cache-buster', {
129
+ phase: 'asset',
130
+ profileId: profile.profileId,
131
+ runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID
132
+ });
133
+ }
134
+ const manifestRequestUrl = new URL(manifestUrl);
135
+ if (!manifestRequestUrl.search) {
136
+ manifestRequestUrl.searchParams.set('v', profile.manifestFingerprint);
137
+ }
138
+ const compilerRequestUrl = new URL(VERIFIED_COMPILER_STORAGE_PATH, baseUrl);
139
+ compilerRequestUrl.searchParams.set('v', compilerReceipt.sha256);
140
+ const registry = {
141
+ schemaVersion: 2,
142
+ manifestId: 'wasm-idle/clojurescript-preflight',
143
+ revision: profile.manifestFingerprint,
144
+ runtimes: [
145
+ {
146
+ runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID,
147
+ identity: {
148
+ languageId: 'CLOJURESCRIPT',
149
+ implementationId: 'cljs.js',
150
+ implementationVersion: profile.sourceRevision,
151
+ profile: {
152
+ profileId: profile.profileId,
153
+ manifestSchemaVersion: 2,
154
+ manifestSha256: manifestReceipt.sha256,
155
+ protocolVersion: CLOJURESCRIPT_PREFLIGHT_PROTOCOL_VERSION,
156
+ trustProfileId: 'wasm-idle-static-worker-v1',
157
+ trustProfileSchemaVersion: 1
158
+ }
159
+ },
160
+ capabilities: {
161
+ stdin: 'streaming',
162
+ workspace: true,
163
+ abort: true,
164
+ artifacts: false,
165
+ streamingOutput: true
166
+ },
167
+ workerLifetime: { mode: 'per-run' },
168
+ requiredBrowserFeatures: ['decompression-stream'],
169
+ assetRoot: '.',
170
+ assets: [
171
+ {
172
+ key: 'manifest',
173
+ path: manifestPath,
174
+ compressedSha256: manifestReceipt.sha256,
175
+ uncompressedSha256: manifestReceipt.sha256,
176
+ compressedBytes: manifestReceipt.bytes,
177
+ uncompressedBytes: manifestReceipt.bytes,
178
+ mediaType: 'application/json',
179
+ encoding: 'identity'
180
+ },
181
+ {
182
+ key: 'compiler',
183
+ path: VERIFIED_COMPILER_STORAGE_PATH,
184
+ compressedSha256: compilerReceipt.sha256,
185
+ uncompressedSha256: compilerReceipt.uncompressedSha256,
186
+ compressedBytes: compilerReceipt.bytes,
187
+ uncompressedBytes: compilerReceipt.uncompressedBytes,
188
+ mediaType: 'text/javascript',
189
+ encoding: 'gzip'
190
+ }
191
+ ],
192
+ contracts: {
193
+ routeId: 'clojurescript',
194
+ runtimeAssetKey: 'clojurescript',
195
+ documentationId: 'CLOJURESCRIPT',
196
+ syncTarget: 'sync:wasm-clojurescript',
197
+ browserTestId: 'browser:clojurescript'
198
+ }
199
+ }
200
+ ]
201
+ };
202
+ const controller = new AbortController();
203
+ let timedOut = false;
204
+ const abortFromCaller = () => controller.abort(request.signal?.reason);
205
+ request.signal?.addEventListener('abort', abortFromCaller, { once: true });
206
+ if (request.signal?.aborted)
207
+ abortFromCaller();
208
+ const timeout = setTimeout(() => {
209
+ timedOut = true;
210
+ controller.abort(new DOMException('ClojureScript runtime preflight timed out', 'TimeoutError'));
211
+ }, limits.assetTimeoutMs);
212
+ try {
213
+ const preflight = await preflightRuntimeAssets({
214
+ manifest: registry,
215
+ runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID,
216
+ rootUrl: baseUrl,
217
+ assetUrls: {
218
+ manifest: manifestRequestUrl,
219
+ compiler: compilerRequestUrl
220
+ },
221
+ fetch: request.fetch,
222
+ signal: controller.signal,
223
+ limits: { ...limits, maxAssetBytes },
224
+ maxConcurrentDownloads: 2,
225
+ reportProgress: request.reportProgress
226
+ });
227
+ const manifestAsset = preflight.assets.manifest;
228
+ const compilerAsset = preflight.assets.compiler;
229
+ if (!manifestAsset || !compilerAsset) {
230
+ throw new RuntimeConfigurationError('ClojureScript runtime preflight returned an incomplete asset set', {
231
+ phase: 'asset',
232
+ profileId: profile.profileId,
233
+ runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID
234
+ });
235
+ }
236
+ if (compilerAsset.bytes[0] !== 0x1f || compilerAsset.bytes[1] !== 0x8b) {
237
+ throw new AssetIntegrityError('ClojureScript runtime compiler storage asset is not gzip data', {
238
+ profileId: profile.profileId,
239
+ runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID
240
+ });
241
+ }
242
+ const compressedBody = new Response(Uint8Array.from(compilerAsset.bytes)).body;
243
+ if (!compressedBody) {
244
+ throw new UnsupportedBrowserFeatureError('ReadableStream response bodies', {
245
+ phase: 'asset',
246
+ profileId: profile.profileId,
247
+ runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID
248
+ });
249
+ }
250
+ const stream = compressedBody.pipeThrough(new DecompressionStream('gzip'));
251
+ const reader = stream.getReader();
252
+ const compilerBytes = new Uint8Array(compilerReceipt.uncompressedBytes);
253
+ let offset = 0;
254
+ const cancelDecompression = () => {
255
+ try {
256
+ void reader.cancel(controller.signal.reason).catch(() => undefined);
257
+ }
258
+ catch {
259
+ // Preserve the cancellation or integrity failure that stopped decompression.
260
+ }
261
+ };
262
+ controller.signal.addEventListener('abort', cancelDecompression, { once: true });
263
+ try {
264
+ for (;;) {
265
+ if (controller.signal.aborted)
266
+ throw controller.signal.reason;
267
+ const { done, value } = await reader.read();
268
+ if (done)
269
+ break;
270
+ if (offset + value.byteLength > compilerBytes.byteLength) {
271
+ const error = new AssetIntegrityError('ClojureScript compiler gzip output exceeds its logical receipt', {
272
+ profileId: profile.profileId,
273
+ runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID
274
+ });
275
+ try {
276
+ await reader.cancel(error);
277
+ }
278
+ catch {
279
+ // Preserve the expansion-limit failure.
280
+ }
281
+ throw error;
282
+ }
283
+ compilerBytes.set(value, offset);
284
+ offset += value.byteLength;
285
+ request.reportDecompressionProgress?.(offset, compilerBytes.byteLength);
286
+ }
287
+ }
288
+ catch (error) {
289
+ if (controller.signal.aborted || isWasmIdleError(error))
290
+ throw error;
291
+ throw new AssetIntegrityError('ClojureScript runtime compiler gzip decompression failed', {
292
+ cause: error,
293
+ profileId: profile.profileId,
294
+ runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID
295
+ });
296
+ }
297
+ finally {
298
+ controller.signal.removeEventListener('abort', cancelDecompression);
299
+ try {
300
+ reader.releaseLock();
301
+ }
302
+ catch {
303
+ // Cancellation may already have detached the stream reader.
304
+ }
305
+ }
306
+ if (offset !== compilerBytes.byteLength) {
307
+ throw new AssetIntegrityError('ClojureScript compiler gzip output is shorter than its logical receipt', {
308
+ profileId: profile.profileId,
309
+ runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID
310
+ });
311
+ }
312
+ const logicalIntegrity = verifyRuntimeAssetIntegrity({
313
+ asset: 'compiler.js',
314
+ bytes: compilerBytes,
315
+ expected: compilerReceipt,
316
+ stage: 'uncompressed',
317
+ mimeType: 'text/javascript',
318
+ profileId: profile.profileId,
319
+ runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID
320
+ });
321
+ await new Promise((resolve, reject) => {
322
+ let settled = false;
323
+ const rejectOnAbort = () => {
324
+ if (settled)
325
+ return;
326
+ settled = true;
327
+ controller.signal.removeEventListener('abort', rejectOnAbort);
328
+ reject(controller.signal.reason ??
329
+ new DOMException('ClojureScript runtime integrity verification aborted', 'AbortError'));
330
+ };
331
+ controller.signal.addEventListener('abort', rejectOnAbort, { once: true });
332
+ void logicalIntegrity.then(() => {
333
+ if (settled)
334
+ return;
335
+ settled = true;
336
+ controller.signal.removeEventListener('abort', rejectOnAbort);
337
+ resolve();
338
+ }, (error) => {
339
+ if (settled)
340
+ return;
341
+ settled = true;
342
+ controller.signal.removeEventListener('abort', rejectOnAbort);
343
+ reject(error);
344
+ });
345
+ if (controller.signal.aborted)
346
+ rejectOnAbort();
347
+ });
348
+ return Object.freeze({
349
+ protocol: CLOJURESCRIPT_PREFLIGHT_PROTOCOL,
350
+ protocolVersion: CLOJURESCRIPT_PREFLIGHT_PROTOCOL_VERSION,
351
+ profileId: profile.profileId,
352
+ sourceRevision: profile.sourceRevision,
353
+ integrationRevision: profile.integrationRevision,
354
+ manifestFingerprint: profile.manifestFingerprint,
355
+ manifestBytes: Uint8Array.from(manifestAsset.bytes),
356
+ compilerBytes
357
+ });
358
+ }
359
+ catch (error) {
360
+ if (timedOut) {
361
+ throw new TimeoutError(`ClojureScript runtime preflight timed out after ${limits.assetTimeoutMs} ms`, {
362
+ cause: error,
363
+ phase: 'asset',
364
+ profileId: profile.profileId,
365
+ runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID,
366
+ timeoutMs: limits.assetTimeoutMs
367
+ });
368
+ }
369
+ if (request.signal?.aborted) {
370
+ throw new CancelledError('ClojureScript runtime preflight cancelled', {
371
+ cause: request.signal.reason,
372
+ phase: 'asset',
373
+ profileId: profile.profileId,
374
+ runtimeId: CLOJURESCRIPT_PREFLIGHT_RUNTIME_ID
375
+ });
376
+ }
377
+ throw error;
378
+ }
379
+ finally {
380
+ clearTimeout(timeout);
381
+ request.signal?.removeEventListener('abort', abortFromCaller);
382
+ }
383
+ }
@@ -0,0 +1,46 @@
1
+ import { WorkerAssetBridge } from './assetBridge';
2
+ import { type PlaygroundRuntimeAssets } from './assets';
3
+ import type { SandboxExecutionOptions } from './options';
4
+ import type { Sandbox, SandboxProgress } from './sandbox';
5
+ declare class Cobol implements Sandbox {
6
+ language: string;
7
+ output?: (data: string) => void;
8
+ worker?: Worker;
9
+ buffer: import("./sharedBuffer").WasmIdleSharedBuffer;
10
+ pendingInput: string[];
11
+ begin: number;
12
+ elapse: number;
13
+ uid: number;
14
+ log: boolean;
15
+ waitingForInput: boolean;
16
+ pendingEof: boolean;
17
+ exit: boolean;
18
+ assetBridge: WorkerAssetBridge | null;
19
+ activeCobolBaseUrl: string;
20
+ private activeOperation;
21
+ private disposed;
22
+ private disposePromise;
23
+ private readonly disposeCancellation;
24
+ private readonly workerSession;
25
+ private beginOperation;
26
+ private isOperationActive;
27
+ private releaseOperation;
28
+ private cleanupOperation;
29
+ private releaseBeforeSession;
30
+ private bindPreSessionAbort;
31
+ private bindAbortSignal;
32
+ private bindOperationTimeout;
33
+ private resetExplicitStdinState;
34
+ private finishExplicitStdin;
35
+ load(runtimeAssets?: string | PlaygroundRuntimeAssets, code?: string, log?: boolean, args?: string[], options?: SandboxExecutionOptions, progress?: SandboxProgress): Promise<void>;
36
+ write(input: string): void;
37
+ eof(): void;
38
+ private flushPendingInput;
39
+ run(code: string, prepare: boolean, log?: boolean, prog?: SandboxProgress, args?: string[], options?: SandboxExecutionOptions): Promise<boolean | string>;
40
+ private cancelOperation;
41
+ kill(): void;
42
+ terminate(reason?: unknown): void;
43
+ clear(): Promise<void>;
44
+ dispose(): Promise<void>;
45
+ }
46
+ export default Cobol;