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.
- package/README.md +760 -81
- package/dist/index.d.ts +4 -9
- package/dist/index.js +2 -4
- package/dist/playground/applicationAssets.d.ts +4 -0
- package/dist/playground/applicationAssets.js +277 -0
- package/dist/playground/assemblyscript.d.ts +41 -0
- package/dist/playground/assemblyscript.js +630 -0
- package/dist/playground/assetBridge.d.ts +18 -7
- package/dist/playground/assetBridge.js +824 -100
- package/dist/playground/assets.d.ts +813 -19
- package/dist/playground/assets.js +2096 -156
- package/dist/playground/awk.d.ts +5 -0
- package/dist/playground/awk.js +60 -0
- package/dist/playground/bash.d.ts +53 -0
- package/dist/playground/bash.js +1096 -0
- package/dist/playground/bashWorkerProtocol.d.ts +88 -0
- package/dist/playground/bashWorkerProtocol.js +135 -0
- package/dist/playground/bqn.d.ts +5 -0
- package/dist/playground/bqn.js +57 -0
- package/dist/playground/bqnPreflight.d.ts +26 -0
- package/dist/playground/bqnPreflight.js +399 -0
- package/dist/playground/c3.d.ts +15 -0
- package/dist/playground/c3.js +154 -0
- package/dist/playground/clang.d.ts +35 -19
- package/dist/playground/clang.js +241 -52
- package/dist/playground/clangAssetIntegrity.d.ts +32 -0
- package/dist/playground/clangAssetIntegrity.js +8 -0
- package/dist/playground/clojurescript.d.ts +5 -0
- package/dist/playground/clojurescript.js +59 -0
- package/dist/playground/clojurescriptPreflight.d.ts +26 -0
- package/dist/playground/clojurescriptPreflight.js +383 -0
- package/dist/playground/cobol.d.ts +46 -0
- package/dist/playground/cobol.js +703 -0
- package/dist/playground/d.d.ts +47 -0
- package/dist/playground/d.js +644 -0
- package/dist/playground/dOuterAssets.d.ts +16 -0
- package/dist/playground/dOuterAssets.js +163 -0
- package/dist/playground/dotnet.d.ts +99 -0
- package/dist/playground/dotnet.js +1131 -0
- package/dist/playground/duckdb.d.ts +36 -0
- package/dist/playground/duckdb.js +542 -0
- package/dist/playground/elixir.d.ts +18 -10
- package/dist/playground/elixir.js +630 -96
- package/dist/playground/elixirAssets.d.ts +6 -0
- package/dist/playground/elixirAssets.js +33 -0
- package/dist/playground/executionObservation.d.ts +22 -0
- package/dist/playground/executionObservation.js +65 -0
- package/dist/playground/forth.d.ts +5 -0
- package/dist/playground/forth.js +53 -0
- package/dist/playground/forthPreflight.d.ts +24 -0
- package/dist/playground/forthPreflight.js +198 -0
- package/dist/playground/fortran.d.ts +47 -0
- package/dist/playground/fortran.js +651 -0
- package/dist/playground/fortranAssets.d.ts +6 -0
- package/dist/playground/fortranAssets.js +27 -0
- package/dist/playground/gleam.d.ts +6 -0
- package/dist/playground/gleam.js +33 -0
- package/dist/playground/go.d.ts +17 -11
- package/dist/playground/go.js +376 -72
- package/dist/playground/goDebugInstrumentation.d.ts +1 -0
- package/dist/playground/goDebugInstrumentation.js +229 -0
- package/dist/playground/haskell.d.ts +44 -0
- package/dist/playground/haskell.js +678 -0
- package/dist/playground/haskellAssets.d.ts +24 -0
- package/dist/playground/haskellAssets.js +93 -0
- package/dist/playground/index.d.ts +1 -1
- package/dist/playground/index.js +360 -111
- package/dist/playground/j.d.ts +5 -0
- package/dist/playground/j.js +60 -0
- package/dist/playground/jPreflight.d.ts +26 -0
- package/dist/playground/jPreflight.js +372 -0
- package/dist/playground/janet.d.ts +5 -0
- package/dist/playground/janet.js +64 -0
- package/dist/playground/java.d.ts +24 -10
- package/dist/playground/java.js +706 -84
- package/dist/playground/javaSource.d.ts +5 -0
- package/dist/playground/javaSource.js +16 -0
- package/dist/playground/javaStdin.d.ts +1 -1
- package/dist/playground/javaStdin.js +13 -4
- package/dist/playground/julia.d.ts +5 -0
- package/dist/playground/julia.js +64 -0
- package/dist/playground/lfortran.d.ts +8 -0
- package/dist/playground/lfortran.js +30 -0
- package/dist/playground/lfortranAssets.d.ts +21 -0
- package/dist/playground/lfortranAssets.js +118 -0
- package/dist/playground/lisp.d.ts +45 -0
- package/dist/playground/lisp.js +640 -0
- package/dist/playground/lispAssets.d.ts +9 -0
- package/dist/playground/lispAssets.js +74 -0
- package/dist/playground/lldbManifest.d.ts +3 -0
- package/dist/playground/lldbManifest.js +155 -0
- package/dist/playground/lldbSession.d.ts +115 -0
- package/dist/playground/lldbSession.js +1347 -0
- package/dist/playground/loadingProgress.d.ts +16 -0
- package/dist/playground/loadingProgress.js +166 -0
- package/dist/playground/lua.d.ts +44 -0
- package/dist/playground/lua.js +630 -0
- package/dist/playground/nim.d.ts +5 -0
- package/dist/playground/nim.js +76 -0
- package/dist/playground/objectivec.d.ts +39 -0
- package/dist/playground/objectivec.js +288 -0
- package/dist/playground/ocaml.d.ts +28 -10
- package/dist/playground/ocaml.js +815 -253
- package/dist/playground/octave.d.ts +43 -0
- package/dist/playground/octave.js +783 -0
- package/dist/playground/options.d.ts +19 -40
- package/dist/playground/options.js +2 -1
- package/dist/playground/pascal.d.ts +5 -0
- package/dist/playground/pascal.js +60 -0
- package/dist/playground/perl.d.ts +5 -0
- package/dist/playground/perl.js +61 -0
- package/dist/playground/php.d.ts +44 -0
- package/dist/playground/php.js +665 -0
- package/dist/playground/prolog.d.ts +6 -0
- package/dist/playground/prolog.js +75 -0
- package/dist/playground/python.d.ts +20 -14
- package/dist/playground/python.js +445 -101
- package/dist/playground/pythonPackageLock.d.ts +6 -0
- package/dist/playground/pythonPackageLock.js +56 -0
- package/dist/playground/r.d.ts +44 -0
- package/dist/playground/r.js +637 -0
- package/dist/playground/ruby.d.ts +46 -0
- package/dist/playground/ruby.js +732 -0
- package/dist/playground/rubyAssets.d.ts +23 -0
- package/dist/playground/rubyAssets.js +68 -0
- package/dist/playground/rubyTestPreflight.d.ts +2 -0
- package/dist/playground/rubyTestPreflight.js +18 -0
- package/dist/playground/runtimeModule.d.ts +1 -0
- package/dist/playground/runtimeModule.js +5 -0
- package/dist/playground/rust.d.ts +44 -13
- package/dist/playground/rust.js +714 -76
- package/dist/playground/rustExecutableGraph.d.ts +85 -0
- package/dist/playground/rustExecutableGraph.js +946 -0
- package/dist/playground/rustWorkerLimits.d.ts +17 -0
- package/dist/playground/rustWorkerLimits.js +34 -0
- package/dist/playground/sandbox.d.ts +16 -10
- package/dist/playground/sharedBuffer.d.ts +6 -0
- package/dist/playground/sharedBuffer.js +12 -0
- package/dist/playground/sqlite.d.ts +38 -0
- package/dist/playground/sqlite.js +550 -0
- package/dist/playground/staticRuntimeModuleVersion.d.ts +1 -0
- package/dist/playground/staticRuntimeModuleVersion.js +2 -0
- package/dist/playground/staticRuntimePreflight.d.ts +13 -0
- package/dist/playground/staticRuntimePreflight.js +231 -0
- package/dist/playground/staticRuntimePreflightExecute.d.ts +8 -0
- package/dist/playground/staticRuntimePreflightExecute.js +66 -0
- package/dist/playground/staticRuntimePreflightProtocol.d.ts +68 -0
- package/dist/playground/staticRuntimePreflightProtocol.js +339 -0
- package/dist/playground/staticStdinRing.d.ts +45 -0
- package/dist/playground/staticStdinRing.js +158 -0
- package/dist/playground/staticWorkerRuntime.d.ts +154 -0
- package/dist/playground/staticWorkerRuntime.js +1917 -0
- package/dist/playground/stdinBuffer.d.ts +9 -7
- package/dist/playground/stdinBuffer.js +9 -18
- package/dist/playground/swift.d.ts +5 -0
- package/dist/playground/swift.js +17 -0
- package/dist/playground/tcl.d.ts +5 -0
- package/dist/playground/tcl.js +62 -0
- package/dist/playground/teavmConfig.d.ts +1 -1
- package/dist/playground/teavmConfig.js +2 -2
- package/dist/playground/tinygo.d.ts +48 -18
- package/dist/playground/tinygo.js +1202 -329
- package/dist/playground/tinygoExecutableGraph.d.ts +44 -0
- package/dist/playground/tinygoExecutableGraph.js +449 -0
- package/dist/playground/typescript.d.ts +55 -0
- package/dist/playground/typescript.js +924 -0
- package/dist/playground/wasm.d.ts +43 -0
- package/dist/playground/wasm.js +608 -0
- package/dist/playground/wasmAwkVersion.d.ts +59 -0
- package/dist/playground/wasmAwkVersion.js +31 -0
- package/dist/playground/wasmBashVersion.d.ts +63 -0
- package/dist/playground/wasmBashVersion.js +36 -0
- package/dist/playground/wasmBqnVersion.d.ts +24 -0
- package/dist/playground/wasmBqnVersion.js +24 -0
- package/dist/playground/wasmC3Version.d.ts +20 -0
- package/dist/playground/wasmC3Version.js +21 -0
- package/dist/playground/wasmClojureScriptVersion.d.ts +21 -0
- package/dist/playground/wasmClojureScriptVersion.js +21 -0
- package/dist/playground/wasmDIntegrity.d.ts +15 -0
- package/dist/playground/wasmDIntegrity.js +15 -0
- package/dist/playground/wasmDVersion.d.ts +1 -0
- package/dist/playground/wasmDVersion.js +1 -0
- package/dist/playground/wasmDebugVersion.d.ts +6 -0
- package/dist/playground/wasmDebugVersion.js +6 -0
- package/dist/playground/wasmDotnetVersion.d.ts +1 -0
- package/dist/playground/wasmDotnetVersion.js +1 -0
- package/dist/playground/wasmElixirVersion.d.ts +21 -1
- package/dist/playground/wasmElixirVersion.js +21 -1
- package/dist/playground/wasmForthVersion.d.ts +18 -0
- package/dist/playground/wasmForthVersion.js +18 -0
- package/dist/playground/wasmFortranExecutionAssets.d.ts +15 -0
- package/dist/playground/wasmFortranExecutionAssets.js +15 -0
- package/dist/playground/wasmFortranVersion.d.ts +1 -0
- package/dist/playground/wasmFortranVersion.js +1 -0
- package/dist/playground/wasmGleamVersion.d.ts +5 -0
- package/dist/playground/wasmGleamVersion.js +5 -0
- package/dist/playground/wasmGoVersion.d.ts +1 -1
- package/dist/playground/wasmGoVersion.js +1 -1
- package/dist/playground/wasmHaskellVersion.d.ts +1 -0
- package/dist/playground/wasmHaskellVersion.js +1 -0
- package/dist/playground/wasmJVersion.d.ts +24 -0
- package/dist/playground/wasmJVersion.js +24 -0
- package/dist/playground/wasmJanetVersion.d.ts +53 -0
- package/dist/playground/wasmJanetVersion.js +30 -0
- package/dist/playground/wasmJuliaVersion.d.ts +71 -0
- package/dist/playground/wasmJuliaVersion.js +39 -0
- package/dist/playground/wasmLfortranVersion.d.ts +28 -0
- package/dist/playground/wasmLfortranVersion.js +29 -0
- package/dist/playground/wasmLispVersion.d.ts +1 -0
- package/dist/playground/wasmLispVersion.js +1 -0
- package/dist/playground/wasmLuaVersion.d.ts +1 -0
- package/dist/playground/wasmLuaVersion.js +1 -0
- package/dist/playground/wasmNimVersion.d.ts +125 -0
- package/dist/playground/wasmNimVersion.js +66 -0
- package/dist/playground/wasmObjectiveCVersion.d.ts +27 -0
- package/dist/playground/wasmObjectiveCVersion.js +27 -0
- package/dist/playground/wasmOcamlVersion.d.ts +12 -1
- package/dist/playground/wasmOcamlVersion.js +12 -1
- package/dist/playground/wasmOctaveVersion.d.ts +1 -0
- package/dist/playground/wasmOctaveVersion.js +1 -0
- package/dist/playground/wasmPascalVersion.d.ts +61 -0
- package/dist/playground/wasmPascalVersion.js +34 -0
- package/dist/playground/wasmPerlVersion.d.ts +71 -0
- package/dist/playground/wasmPerlVersion.js +39 -0
- package/dist/playground/wasmPrologVersion.d.ts +31 -0
- package/dist/playground/wasmPrologVersion.js +31 -0
- package/dist/playground/wasmRVersion.d.ts +1 -0
- package/dist/playground/wasmRVersion.js +1 -0
- package/dist/playground/wasmRustVersion.d.ts +1306 -1
- package/dist/playground/wasmRustVersion.js +1458 -1
- package/dist/playground/wasmSwiftVersion.d.ts +1 -0
- package/dist/playground/wasmSwiftVersion.js +1 -0
- package/dist/playground/wasmTclVersion.d.ts +85 -0
- package/dist/playground/wasmTclVersion.js +46 -0
- package/dist/playground/wasmTinyGoVersion.d.ts +98 -1
- package/dist/playground/wasmTinyGoVersion.js +107 -1
- package/dist/playground/wasmTypeScriptVersion.d.ts +5 -0
- package/dist/playground/wasmTypeScriptVersion.js +5 -0
- package/dist/playground/wasmWatVersion.d.ts +1 -0
- package/dist/playground/wasmWatVersion.js +1 -0
- package/dist/playground/wasmZigVersion.d.ts +13 -0
- package/dist/playground/wasmZigVersion.js +13 -0
- package/dist/playground/wat.d.ts +44 -0
- package/dist/playground/wat.js +622 -0
- package/dist/playground/worker/assemblyscript.js +339 -0
- package/dist/playground/worker/assets.d.ts +7 -0
- package/dist/playground/worker/assets.js +288 -39
- package/dist/playground/worker/bash.js +338 -0
- package/dist/playground/worker/bashNestedBootstrap.d.ts +6 -0
- package/dist/playground/worker/bashNestedBootstrap.js +59 -0
- package/dist/playground/worker/bashRuntime.d.ts +89 -0
- package/dist/playground/worker/bashRuntime.js +982 -0
- package/dist/playground/worker/clang.js +92 -13
- package/dist/playground/worker/cobol.js +107 -0
- package/dist/playground/worker/d.js +199 -0
- package/dist/playground/worker/dotnet.js +141 -0
- package/dist/playground/worker/duckdb.d.ts +1 -0
- package/dist/playground/worker/duckdb.js +136 -0
- package/dist/playground/worker/elixir.js +307 -41
- package/dist/playground/worker/fortran.d.ts +1 -0
- package/dist/playground/worker/fortran.js +295 -0
- package/dist/playground/worker/go.js +246 -40
- package/dist/playground/worker/haskell.d.ts +7 -0
- package/dist/playground/worker/haskell.js +465 -0
- package/dist/playground/worker/java.js +59 -20
- package/dist/playground/worker/lisp.d.ts +1 -0
- package/dist/playground/worker/lisp.js +195 -0
- package/dist/playground/worker/lua.d.ts +1 -0
- package/dist/playground/worker/lua.js +163 -0
- package/dist/playground/worker/objectivec.d.ts +1 -0
- package/dist/playground/worker/objectivec.js +10 -0
- package/dist/playground/worker/ocaml.js +206 -58
- package/dist/playground/worker/php.d.ts +1 -0
- package/dist/playground/worker/php.js +261 -0
- package/dist/playground/worker/python.js +201 -44
- package/dist/playground/worker/r.d.ts +1 -0
- package/dist/playground/worker/r.js +192 -0
- package/dist/playground/worker/ruby.d.ts +1 -0
- package/dist/playground/worker/ruby.js +248 -0
- package/dist/playground/worker/runtimeAssetFetch.d.ts +15 -0
- package/dist/playground/worker/runtimeAssetFetch.js +375 -0
- package/dist/playground/worker/rust.js +546 -20
- package/dist/playground/worker/sqlite.d.ts +1 -0
- package/dist/playground/worker/sqlite.js +112 -0
- package/dist/playground/worker/staticRuntimePreflight.d.ts +1 -0
- package/dist/playground/worker/staticRuntimePreflight.js +56 -0
- package/dist/playground/worker/tinygo.js +34 -9
- package/dist/playground/worker/typescript.d.ts +1 -0
- package/dist/playground/worker/typescript.js +251 -0
- package/dist/playground/worker/wasm.d.ts +1 -0
- package/dist/playground/worker/wasm.js +273 -0
- package/dist/playground/worker/wat.d.ts +1 -0
- package/dist/playground/worker/wat.js +188 -0
- package/dist/playground/worker/zig.d.ts +8 -0
- package/dist/playground/worker/zig.js +578 -0
- package/dist/playground/workerProgress.d.ts +15 -0
- package/dist/playground/workerProgress.js +72 -0
- package/dist/playground/workerSession.d.ts +28 -0
- package/dist/playground/workerSession.js +164 -0
- package/dist/playground/zig.d.ts +46 -0
- package/dist/playground/zig.js +690 -0
- package/dist/playground/zigAssets.d.ts +6 -0
- package/dist/playground/zigAssets.js +49 -0
- package/package.json +234 -105
- package/dist/clang/app.d.ts +0 -75
- package/dist/clang/app.js +0 -744
- package/dist/clang/apply.d.ts +0 -2
- package/dist/clang/apply.js +0 -11
- package/dist/clang/color.d.ts +0 -3
- package/dist/clang/color.js +0 -3
- package/dist/clang/encode.d.ts +0 -4
- package/dist/clang/encode.js +0 -20
- package/dist/clang/error.d.ts +0 -14
- package/dist/clang/error.js +0 -27
- package/dist/clang/gccCompat.d.ts +0 -15
- package/dist/clang/gccCompat.js +0 -767
- package/dist/clang/index.d.ts +0 -85
- package/dist/clang/index.js +0 -1077
- package/dist/clang/memory/index.d.ts +0 -4
- package/dist/clang/memory/index.js +0 -4
- package/dist/clang/memory/memFs.d.ts +0 -35
- package/dist/clang/memory/memFs.js +0 -132
- package/dist/clang/memory/memory.d.ts +0 -22
- package/dist/clang/memory/memory.js +0 -73
- package/dist/clang/memory/tar.d.ts +0 -2
- package/dist/clang/memory/tar.js +0 -59
- package/dist/clang/url.d.ts +0 -4
- package/dist/clang/url.js +0 -5
- package/dist/clang/wasm.d.ts +0 -4
- package/dist/clang/wasm.js +0 -50
- package/dist/clangd/config.d.ts +0 -18
- package/dist/clangd/config.js +0 -14
- package/dist/clangd/jsonStream.d.ts +0 -9
- package/dist/clangd/jsonStream.js +0 -48
- package/dist/clangd/session.d.ts +0 -18
- package/dist/clangd/session.js +0 -112
- package/dist/clangd/worker.js +0 -131
- package/dist/debug/controller.svelte.d.ts +0 -43
- package/dist/debug/controller.svelte.js +0 -268
- package/dist/debug/editor/index.d.ts +0 -2
- package/dist/debug/editor/index.js +0 -1
- package/dist/debug/editor/monaco.d.ts +0 -26
- package/dist/debug/editor/monaco.js +0 -128
- package/dist/debug/expression.d.ts +0 -26
- package/dist/debug/expression.js +0 -547
- package/dist/debug/index.d.ts +0 -8
- package/dist/debug/index.js +0 -5
- package/dist/debug/language/cpp.d.ts +0 -2
- package/dist/debug/language/cpp.js +0 -7
- package/dist/debug/language/index.d.ts +0 -3
- package/dist/debug/language/index.js +0 -2
- package/dist/debug/language/python.d.ts +0 -2
- package/dist/debug/language/python.js +0 -14
- package/dist/debug/language/types.d.ts +0 -6
- package/dist/debug/locals.d.ts +0 -2
- package/dist/debug/locals.js +0 -8
- package/dist/lsp/cpp/server.d.ts +0 -2
- package/dist/lsp/cpp/server.js +0 -68
- package/dist/lsp/index.d.ts +0 -5
- package/dist/lsp/index.js +0 -4
- package/dist/lsp/python/main.worker.js +0 -92
- package/dist/lsp/python/package/arcturus_python_lsp/__init__.py +0 -3
- package/dist/lsp/python/package/arcturus_python_lsp/server.py +0 -462
- package/dist/lsp/python/server.d.ts +0 -2
- package/dist/lsp/python/server.js +0 -54
- package/dist/lsp/registry.d.ts +0 -2
- package/dist/lsp/registry.js +0 -12
- package/dist/lsp/runtime.d.ts +0 -5
- package/dist/lsp/runtime.js +0 -31
- package/dist/lsp/types.d.ts +0 -17
- package/dist/terminal/Terminal.svelte +0 -422
- package/dist/terminal/Terminal.svelte.d.ts +0 -26
- package/dist/terminal/index.d.ts +0 -7
- package/dist/terminal/index.js +0 -5
- package/dist/terminal/plugin/index.d.ts +0 -9
- package/dist/terminal/plugin/index.js +0 -19
- package/dist/terminal/theme.d.ts +0 -49
- package/dist/terminal/theme.js +0 -49
- package/dist/terminal/types.d.ts +0 -18
- package/dist/utils/vscodeJsonrpcBrowser.d.ts +0 -5
- package/dist/utils/vscodeJsonrpcBrowser.js +0 -4
- /package/dist/{clangd/worker.d.ts → playground/worker/assemblyscript.d.ts} +0 -0
- /package/dist/{debug/language/types.js → playground/worker/bash.d.ts} +0 -0
- /package/dist/{lsp/python/main.worker.d.ts → playground/worker/cobol.d.ts} +0 -0
- /package/dist/{lsp/types.js → playground/worker/d.d.ts} +0 -0
- /package/dist/{terminal/types.js → playground/worker/dotnet.d.ts} +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { RuntimeAssetIntegrityEntry } from '@wasm-idle/core';
|
|
2
|
+
export declare const ELIXIR_RUNTIME_ASSET_NAMES: readonly ["bundle.avm", "AtomVM.mjs", "AtomVM.wasm"];
|
|
3
|
+
export type ElixirRuntimeAssetName = (typeof ELIXIR_RUNTIME_ASSET_NAMES)[number];
|
|
4
|
+
export type ElixirRuntimeAssetReceipt = Readonly<Required<Pick<RuntimeAssetIntegrityEntry, 'bytes' | 'sha256' | 'uncompressedBytes' | 'uncompressedSha256'>>>;
|
|
5
|
+
export type ElixirRuntimeAssetReceipts = Readonly<Record<ElixirRuntimeAssetName, ElixirRuntimeAssetReceipt>>;
|
|
6
|
+
export declare function snapshotElixirRuntimeAssetReceipts(value: ElixirRuntimeAssetReceipts | undefined): ElixirRuntimeAssetReceipts;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export const ELIXIR_RUNTIME_ASSET_NAMES = ['bundle.avm', 'AtomVM.mjs', 'AtomVM.wasm'];
|
|
2
|
+
export function snapshotElixirRuntimeAssetReceipts(value) {
|
|
3
|
+
const receivedAssets = Object.keys(value || {}).sort();
|
|
4
|
+
const expectedAssets = [...ELIXIR_RUNTIME_ASSET_NAMES].sort();
|
|
5
|
+
if (receivedAssets.length !== expectedAssets.length ||
|
|
6
|
+
receivedAssets.some((asset, index) => asset !== expectedAssets[index])) {
|
|
7
|
+
throw new TypeError('Elixir runtime requires exactly three asset receipts');
|
|
8
|
+
}
|
|
9
|
+
const receipts = Object.fromEntries(ELIXIR_RUNTIME_ASSET_NAMES.map((asset) => {
|
|
10
|
+
const receipt = value?.[asset];
|
|
11
|
+
if (!receipt ||
|
|
12
|
+
!Number.isSafeInteger(receipt.bytes) ||
|
|
13
|
+
receipt.bytes <= 0 ||
|
|
14
|
+
typeof receipt.sha256 !== 'string' ||
|
|
15
|
+
!/^[a-f0-9]{64}$/u.test(receipt.sha256) ||
|
|
16
|
+
!Number.isSafeInteger(receipt.uncompressedBytes) ||
|
|
17
|
+
receipt.uncompressedBytes <= 0 ||
|
|
18
|
+
typeof receipt.uncompressedSha256 !== 'string' ||
|
|
19
|
+
!/^[a-f0-9]{64}$/u.test(receipt.uncompressedSha256)) {
|
|
20
|
+
throw new TypeError(`Elixir runtime asset receipt is invalid for ${asset}`);
|
|
21
|
+
}
|
|
22
|
+
return [
|
|
23
|
+
asset,
|
|
24
|
+
Object.freeze({
|
|
25
|
+
bytes: receipt.bytes,
|
|
26
|
+
sha256: receipt.sha256,
|
|
27
|
+
uncompressedBytes: receipt.uncompressedBytes,
|
|
28
|
+
uncompressedSha256: receipt.uncompressedSha256
|
|
29
|
+
})
|
|
30
|
+
];
|
|
31
|
+
}));
|
|
32
|
+
return Object.freeze(receipts);
|
|
33
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ProgressLike } from '@wasm-idle/core';
|
|
2
|
+
export interface ExecutionObservation {
|
|
3
|
+
id: number;
|
|
4
|
+
language: string;
|
|
5
|
+
status: 'idle' | 'preparing' | 'running' | 'waiting-input' | 'paused' | 'completed' | 'failed' | 'cancelled' | 'timed-out';
|
|
6
|
+
/** The legacy runner only confirms zero on success; failed/unfinished runs have no known exit code. */
|
|
7
|
+
exitCode: number | null;
|
|
8
|
+
startedAt: number | null;
|
|
9
|
+
endedAt: number | null;
|
|
10
|
+
stage: string;
|
|
11
|
+
error?: string;
|
|
12
|
+
events: Array<{
|
|
13
|
+
at: number;
|
|
14
|
+
kind: string;
|
|
15
|
+
stage: string;
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
18
|
+
export declare function createExecutionObserver(): {
|
|
19
|
+
snapshot: () => ExecutionObservation;
|
|
20
|
+
start(id: number, language: string, progress: ProgressLike): ProgressLike;
|
|
21
|
+
finish(id: number, status: "completed" | "failed" | "cancelled" | "timed-out", error?: unknown): void;
|
|
22
|
+
};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export function createExecutionObserver() {
|
|
2
|
+
let current = {
|
|
3
|
+
id: 0,
|
|
4
|
+
language: '',
|
|
5
|
+
status: 'idle',
|
|
6
|
+
exitCode: null,
|
|
7
|
+
startedAt: null,
|
|
8
|
+
endedAt: null,
|
|
9
|
+
stage: '',
|
|
10
|
+
events: []
|
|
11
|
+
};
|
|
12
|
+
return {
|
|
13
|
+
snapshot: () => ({
|
|
14
|
+
...current,
|
|
15
|
+
events: current.events.map((event) => ({ ...event }))
|
|
16
|
+
}),
|
|
17
|
+
start(id, language, progress) {
|
|
18
|
+
current = {
|
|
19
|
+
id,
|
|
20
|
+
language,
|
|
21
|
+
status: 'preparing',
|
|
22
|
+
exitCode: null,
|
|
23
|
+
startedAt: Date.now(),
|
|
24
|
+
endedAt: null,
|
|
25
|
+
stage: 'Preparing execution',
|
|
26
|
+
events: []
|
|
27
|
+
};
|
|
28
|
+
const record = (kind, stage) => {
|
|
29
|
+
if (current.id !== id || current.endedAt !== null)
|
|
30
|
+
return;
|
|
31
|
+
current.stage = stage;
|
|
32
|
+
current.events.push({ at: Date.now(), kind, stage });
|
|
33
|
+
if (current.events.length > 128)
|
|
34
|
+
current.events.shift();
|
|
35
|
+
};
|
|
36
|
+
return {
|
|
37
|
+
set(value, stage) {
|
|
38
|
+
if (stage)
|
|
39
|
+
record('legacy', stage);
|
|
40
|
+
progress.set?.(value, stage);
|
|
41
|
+
},
|
|
42
|
+
report(event) {
|
|
43
|
+
if (current.id === id && current.endedAt === null) {
|
|
44
|
+
if (event.kind === 'activity')
|
|
45
|
+
record(event.phase, event.label);
|
|
46
|
+
if (event.kind === 'ready') {
|
|
47
|
+
current.status = event.state;
|
|
48
|
+
record(event.reason, event.label ?? event.state);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
progress.report?.(event);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
},
|
|
55
|
+
finish(id, status, error) {
|
|
56
|
+
if (current.id !== id || current.endedAt !== null)
|
|
57
|
+
return;
|
|
58
|
+
current.status = status;
|
|
59
|
+
current.exitCode = status === 'completed' ? 0 : null;
|
|
60
|
+
current.endedAt = Date.now();
|
|
61
|
+
if (error !== undefined)
|
|
62
|
+
current.error = String(error).slice(0, 2048);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { resolveForthRuntimeAssetConfig } from './assets';
|
|
2
|
+
import { preflightStaticRuntimeAssetsInWorker } from './staticRuntimePreflight';
|
|
3
|
+
import { StaticWorkerRuntimeSandbox } from './staticWorkerRuntime';
|
|
4
|
+
import { RuntimeConfigurationError } from '@wasm-idle/core';
|
|
5
|
+
class Forth extends StaticWorkerRuntimeSandbox {
|
|
6
|
+
constructor() {
|
|
7
|
+
super({
|
|
8
|
+
languageId: 'FORTH',
|
|
9
|
+
displayName: 'Forth',
|
|
10
|
+
defaultActivePath: 'main.fth',
|
|
11
|
+
stdin: {
|
|
12
|
+
mode: 'streaming',
|
|
13
|
+
sourceHintPattern: /\b(?:KEY|ACCEPT|REFILL)\b/i
|
|
14
|
+
},
|
|
15
|
+
inlineVerifiedWorker: true,
|
|
16
|
+
runtimePreflightDelivery: 'transfer-owned',
|
|
17
|
+
resolveRuntimeAssets(runtimeAssets, currentUrl) {
|
|
18
|
+
const resolved = resolveForthRuntimeAssetConfig(runtimeAssets, currentUrl);
|
|
19
|
+
const profile = resolved.preflightProfile;
|
|
20
|
+
if (!/^[a-f0-9]{64}$/u.test(resolved.manifestFingerprint || '') ||
|
|
21
|
+
profile.manifestFingerprint !== resolved.manifestFingerprint ||
|
|
22
|
+
!resolved.workerReceipt) {
|
|
23
|
+
throw new RuntimeConfigurationError('Forth runtime requires one coherent preflight profile, manifest fingerprint, and worker receipt.', { runtimeId: 'FORTH' });
|
|
24
|
+
}
|
|
25
|
+
return resolved;
|
|
26
|
+
},
|
|
27
|
+
async preflightRuntimeAssets(urls, context) {
|
|
28
|
+
const profile = urls.preflightProfile;
|
|
29
|
+
const loadedByAsset = new Map();
|
|
30
|
+
const totalBytes = (profile.manifestReceipt?.bytes ?? 0) + (profile.runtimeReceipt?.bytes ?? 0);
|
|
31
|
+
const payload = await preflightStaticRuntimeAssetsInWorker({
|
|
32
|
+
runtimeId: 'FORTH',
|
|
33
|
+
displayName: 'Forth',
|
|
34
|
+
baseUrl: urls.baseUrl,
|
|
35
|
+
manifestUrl: urls.manifestUrl || '',
|
|
36
|
+
profile,
|
|
37
|
+
limits: context.limits,
|
|
38
|
+
signal: context.signal,
|
|
39
|
+
reportProgress(progress) {
|
|
40
|
+
if (progress.kind !== 'asset')
|
|
41
|
+
return;
|
|
42
|
+
loadedByAsset.set(progress.progress.assetKey, progress.progress.loadedBytes);
|
|
43
|
+
const loadedBytes = [...loadedByAsset.values()].reduce((total, loaded) => total + loaded, 0);
|
|
44
|
+
const fraction = totalBytes > 0 ? loadedBytes / totalBytes : 0;
|
|
45
|
+
context.reportProgress(0.04 + Math.min(1, fraction) * 0.13, `Preflighting Forth asset ${progress.progress.assetKey}`);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
return context.createOwnedDelivery(payload);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export default Forth;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ForthRuntimePreflightProfile } from './assets';
|
|
2
|
+
import { type ExecutionLimits, type RuntimeAssetPreflightProgress } from '@wasm-idle/core';
|
|
3
|
+
export declare const FORTH_PREFLIGHT_PROTOCOL: "wasm-idle-forth-preflight";
|
|
4
|
+
export declare const FORTH_PREFLIGHT_PROTOCOL_VERSION: 1;
|
|
5
|
+
export declare const FORTH_PREFLIGHT_RUNTIME_ID: "FORTH";
|
|
6
|
+
export interface ForthRuntimePreflightRequest {
|
|
7
|
+
readonly baseUrl: string;
|
|
8
|
+
readonly manifestUrl: string;
|
|
9
|
+
readonly profile: ForthRuntimePreflightProfile;
|
|
10
|
+
readonly limits?: Partial<ExecutionLimits>;
|
|
11
|
+
readonly signal?: AbortSignal;
|
|
12
|
+
readonly fetch?: typeof globalThis.fetch;
|
|
13
|
+
readonly reportProgress?: (progress: RuntimeAssetPreflightProgress) => void;
|
|
14
|
+
}
|
|
15
|
+
export interface ForthRuntimePreflightPayload {
|
|
16
|
+
readonly protocol: typeof FORTH_PREFLIGHT_PROTOCOL;
|
|
17
|
+
readonly protocolVersion: typeof FORTH_PREFLIGHT_PROTOCOL_VERSION;
|
|
18
|
+
readonly profileId: string;
|
|
19
|
+
readonly implementationVersion: string;
|
|
20
|
+
readonly manifestFingerprint: string;
|
|
21
|
+
readonly manifestBytes: Uint8Array;
|
|
22
|
+
readonly runtimeBytes: Uint8Array;
|
|
23
|
+
}
|
|
24
|
+
export declare function preflightForthRuntimeAssets(request: ForthRuntimePreflightRequest): Promise<ForthRuntimePreflightPayload>;
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { RuntimeConfigurationError, preflightRuntimeAssets } from '@wasm-idle/core';
|
|
2
|
+
export const FORTH_PREFLIGHT_PROTOCOL = 'wasm-idle-forth-preflight';
|
|
3
|
+
export const FORTH_PREFLIGHT_PROTOCOL_VERSION = 1;
|
|
4
|
+
export const FORTH_PREFLIGHT_RUNTIME_ID = 'FORTH';
|
|
5
|
+
export async function preflightForthRuntimeAssets(request) {
|
|
6
|
+
if (!request || typeof request !== 'object') {
|
|
7
|
+
throw new RuntimeConfigurationError('Forth runtime preflight request is required', {
|
|
8
|
+
phase: 'asset',
|
|
9
|
+
runtimeId: FORTH_PREFLIGHT_RUNTIME_ID
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
let baseUrl;
|
|
13
|
+
let manifestUrl;
|
|
14
|
+
try {
|
|
15
|
+
baseUrl = new URL(request.baseUrl);
|
|
16
|
+
if (!baseUrl.pathname.endsWith('/'))
|
|
17
|
+
baseUrl.pathname += '/';
|
|
18
|
+
manifestUrl = new URL(request.manifestUrl, baseUrl);
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
throw new RuntimeConfigurationError('Forth runtime asset URLs are invalid', {
|
|
22
|
+
cause: error,
|
|
23
|
+
phase: 'asset',
|
|
24
|
+
runtimeId: FORTH_PREFLIGHT_RUNTIME_ID
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
if ((baseUrl.protocol !== 'https:' && baseUrl.protocol !== 'http:') ||
|
|
28
|
+
baseUrl.username ||
|
|
29
|
+
baseUrl.password ||
|
|
30
|
+
baseUrl.search ||
|
|
31
|
+
baseUrl.hash) {
|
|
32
|
+
throw new RuntimeConfigurationError('Forth runtime base must be a credential-free HTTP(S) directory URL without a query or fragment', { phase: 'asset', runtimeId: FORTH_PREFLIGHT_RUNTIME_ID });
|
|
33
|
+
}
|
|
34
|
+
if ((manifestUrl.protocol !== 'https:' && manifestUrl.protocol !== 'http:') ||
|
|
35
|
+
manifestUrl.username ||
|
|
36
|
+
manifestUrl.password ||
|
|
37
|
+
manifestUrl.hash ||
|
|
38
|
+
manifestUrl.origin !== baseUrl.origin ||
|
|
39
|
+
!manifestUrl.pathname.startsWith(baseUrl.pathname)) {
|
|
40
|
+
throw new RuntimeConfigurationError('Forth runtime manifest must be an HTTP(S) asset beneath the configured runtime base', { phase: 'asset', runtimeId: FORTH_PREFLIGHT_RUNTIME_ID });
|
|
41
|
+
}
|
|
42
|
+
const manifestPath = manifestUrl.pathname.slice(baseUrl.pathname.length);
|
|
43
|
+
if (!manifestPath ||
|
|
44
|
+
manifestPath.includes('\\') ||
|
|
45
|
+
manifestPath.includes('\0') ||
|
|
46
|
+
manifestPath.split('/').some((segment) => !segment || segment === '.' || segment === '..')) {
|
|
47
|
+
throw new RuntimeConfigurationError('Forth runtime manifest path must be a normalized file beneath the runtime base', { phase: 'asset', runtimeId: FORTH_PREFLIGHT_RUNTIME_ID });
|
|
48
|
+
}
|
|
49
|
+
const profile = request.profile;
|
|
50
|
+
if (!profile ||
|
|
51
|
+
typeof profile !== 'object' ||
|
|
52
|
+
typeof profile.profileId !== 'string' ||
|
|
53
|
+
!/^waforth-[A-Za-z0-9._-]+$/u.test(profile.profileId) ||
|
|
54
|
+
typeof profile.implementationVersion !== 'string' ||
|
|
55
|
+
!/^[A-Za-z0-9._-]+$/u.test(profile.implementationVersion) ||
|
|
56
|
+
profile.profileId !== `waforth-${profile.implementationVersion}` ||
|
|
57
|
+
typeof profile.manifestFingerprint !== 'string' ||
|
|
58
|
+
!/^[a-f0-9]{64}$/u.test(profile.manifestFingerprint)) {
|
|
59
|
+
throw new RuntimeConfigurationError('Forth runtime preflight profile is invalid', {
|
|
60
|
+
phase: 'asset',
|
|
61
|
+
runtimeId: FORTH_PREFLIGHT_RUNTIME_ID
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
for (const [label, receipt] of [
|
|
65
|
+
['manifest', profile.manifestReceipt],
|
|
66
|
+
['runtime', profile.runtimeReceipt]
|
|
67
|
+
]) {
|
|
68
|
+
if (!receipt ||
|
|
69
|
+
typeof receipt !== 'object' ||
|
|
70
|
+
!Number.isSafeInteger(receipt.bytes) ||
|
|
71
|
+
(receipt.bytes ?? 0) <= 0 ||
|
|
72
|
+
typeof receipt.sha256 !== 'string' ||
|
|
73
|
+
!/^[a-f0-9]{64}$/u.test(receipt.sha256)) {
|
|
74
|
+
throw new RuntimeConfigurationError(`Forth runtime ${label} preflight receipt is invalid`, {
|
|
75
|
+
phase: 'asset',
|
|
76
|
+
profileId: profile.profileId,
|
|
77
|
+
runtimeId: FORTH_PREFLIGHT_RUNTIME_ID
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (manifestPath === 'waforth.js') {
|
|
82
|
+
throw new RuntimeConfigurationError('Forth runtime manifest and executable asset paths must be distinct', {
|
|
83
|
+
phase: 'asset',
|
|
84
|
+
profileId: profile.profileId,
|
|
85
|
+
runtimeId: FORTH_PREFLIGHT_RUNTIME_ID
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
const manifestReceipt = profile.manifestReceipt;
|
|
89
|
+
const runtimeReceipt = profile.runtimeReceipt;
|
|
90
|
+
const expectedManifestQuery = `?v=${profile.manifestFingerprint}`;
|
|
91
|
+
if (manifestUrl.search && manifestUrl.search !== expectedManifestQuery) {
|
|
92
|
+
throw new RuntimeConfigurationError('Forth runtime manifest query must be the pinned manifest fingerprint cache-buster', {
|
|
93
|
+
phase: 'asset',
|
|
94
|
+
profileId: profile.profileId,
|
|
95
|
+
runtimeId: FORTH_PREFLIGHT_RUNTIME_ID
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
const manifestRequestUrl = new URL(manifestUrl);
|
|
99
|
+
if (!manifestRequestUrl.search) {
|
|
100
|
+
manifestRequestUrl.searchParams.set('v', profile.manifestFingerprint);
|
|
101
|
+
}
|
|
102
|
+
const runtimeRequestUrl = new URL('waforth.js', baseUrl);
|
|
103
|
+
runtimeRequestUrl.searchParams.set('v', runtimeReceipt.sha256);
|
|
104
|
+
const registry = {
|
|
105
|
+
schemaVersion: 2,
|
|
106
|
+
manifestId: 'wasm-idle/forth-preflight',
|
|
107
|
+
revision: profile.manifestFingerprint,
|
|
108
|
+
runtimes: [
|
|
109
|
+
{
|
|
110
|
+
runtimeId: FORTH_PREFLIGHT_RUNTIME_ID,
|
|
111
|
+
identity: {
|
|
112
|
+
languageId: 'FORTH',
|
|
113
|
+
implementationId: 'waforth',
|
|
114
|
+
implementationVersion: profile.implementationVersion,
|
|
115
|
+
profile: {
|
|
116
|
+
profileId: profile.profileId,
|
|
117
|
+
manifestSchemaVersion: 2,
|
|
118
|
+
manifestSha256: manifestReceipt.sha256,
|
|
119
|
+
protocolVersion: FORTH_PREFLIGHT_PROTOCOL_VERSION,
|
|
120
|
+
trustProfileId: 'wasm-idle-static-worker-v1',
|
|
121
|
+
trustProfileSchemaVersion: 1
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
capabilities: {
|
|
125
|
+
stdin: 'streaming',
|
|
126
|
+
workspace: false,
|
|
127
|
+
abort: true,
|
|
128
|
+
artifacts: false,
|
|
129
|
+
streamingOutput: true
|
|
130
|
+
},
|
|
131
|
+
workerLifetime: { mode: 'per-run' },
|
|
132
|
+
requiredBrowserFeatures: ['wasm'],
|
|
133
|
+
assetRoot: '.',
|
|
134
|
+
assets: [
|
|
135
|
+
{
|
|
136
|
+
key: 'manifest',
|
|
137
|
+
path: manifestPath,
|
|
138
|
+
compressedSha256: manifestReceipt.sha256,
|
|
139
|
+
uncompressedSha256: manifestReceipt.sha256,
|
|
140
|
+
compressedBytes: manifestReceipt.bytes,
|
|
141
|
+
uncompressedBytes: manifestReceipt.bytes,
|
|
142
|
+
mediaType: 'application/json',
|
|
143
|
+
encoding: 'identity'
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
key: 'runtime',
|
|
147
|
+
path: 'waforth.js',
|
|
148
|
+
compressedSha256: runtimeReceipt.sha256,
|
|
149
|
+
uncompressedSha256: runtimeReceipt.sha256,
|
|
150
|
+
compressedBytes: runtimeReceipt.bytes,
|
|
151
|
+
uncompressedBytes: runtimeReceipt.bytes,
|
|
152
|
+
mediaType: 'application/javascript',
|
|
153
|
+
encoding: 'identity'
|
|
154
|
+
}
|
|
155
|
+
],
|
|
156
|
+
contracts: {
|
|
157
|
+
routeId: 'forth',
|
|
158
|
+
runtimeAssetKey: 'forth',
|
|
159
|
+
documentationId: 'FORTH',
|
|
160
|
+
syncTarget: 'sync:wasm-forth',
|
|
161
|
+
browserTestId: 'browser:forth'
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
]
|
|
165
|
+
};
|
|
166
|
+
const preflight = await preflightRuntimeAssets({
|
|
167
|
+
manifest: registry,
|
|
168
|
+
runtimeId: FORTH_PREFLIGHT_RUNTIME_ID,
|
|
169
|
+
rootUrl: baseUrl,
|
|
170
|
+
assetUrls: {
|
|
171
|
+
manifest: manifestRequestUrl,
|
|
172
|
+
runtime: runtimeRequestUrl
|
|
173
|
+
},
|
|
174
|
+
fetch: request.fetch,
|
|
175
|
+
signal: request.signal,
|
|
176
|
+
limits: request.limits,
|
|
177
|
+
maxConcurrentDownloads: 2,
|
|
178
|
+
reportProgress: request.reportProgress
|
|
179
|
+
});
|
|
180
|
+
const manifestAsset = preflight.assets.manifest;
|
|
181
|
+
const runtimeAsset = preflight.assets.runtime;
|
|
182
|
+
if (!manifestAsset || !runtimeAsset) {
|
|
183
|
+
throw new RuntimeConfigurationError('Forth runtime preflight returned an incomplete asset set', {
|
|
184
|
+
phase: 'asset',
|
|
185
|
+
profileId: profile.profileId,
|
|
186
|
+
runtimeId: FORTH_PREFLIGHT_RUNTIME_ID
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
return Object.freeze({
|
|
190
|
+
protocol: FORTH_PREFLIGHT_PROTOCOL,
|
|
191
|
+
protocolVersion: FORTH_PREFLIGHT_PROTOCOL_VERSION,
|
|
192
|
+
profileId: profile.profileId,
|
|
193
|
+
implementationVersion: profile.implementationVersion,
|
|
194
|
+
manifestFingerprint: profile.manifestFingerprint,
|
|
195
|
+
manifestBytes: Uint8Array.from(manifestAsset.bytes),
|
|
196
|
+
runtimeBytes: Uint8Array.from(runtimeAsset.bytes)
|
|
197
|
+
});
|
|
198
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
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 Fortran 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
|
+
activeFortranAssetsKey: string;
|
|
20
|
+
private activeOperation;
|
|
21
|
+
private preserveOperationOnWorkerDispose;
|
|
22
|
+
private disposed;
|
|
23
|
+
private disposePromise;
|
|
24
|
+
private readonly disposeCancellation;
|
|
25
|
+
private readonly workerSession;
|
|
26
|
+
private disposedConfigurationError;
|
|
27
|
+
private requireOperationIdle;
|
|
28
|
+
private beginOperation;
|
|
29
|
+
private isOperationActive;
|
|
30
|
+
private releaseOperation;
|
|
31
|
+
private cleanupOperation;
|
|
32
|
+
private bindAbortSignal;
|
|
33
|
+
private bindOperationTimeout;
|
|
34
|
+
private resetExplicitStdinState;
|
|
35
|
+
private finishExplicitStdin;
|
|
36
|
+
load(runtimeAssets?: string | PlaygroundRuntimeAssets, code?: string, log?: boolean, args?: string[], options?: SandboxExecutionOptions, progress?: SandboxProgress): Promise<void>;
|
|
37
|
+
write(input: string): void;
|
|
38
|
+
eof(): void;
|
|
39
|
+
private flushPendingInput;
|
|
40
|
+
run(code: string, prepare: boolean, log?: boolean, prog?: SandboxProgress, args?: string[], options?: SandboxExecutionOptions): Promise<boolean | string>;
|
|
41
|
+
private cancelOperation;
|
|
42
|
+
kill(): void;
|
|
43
|
+
terminate(reason?: unknown): void;
|
|
44
|
+
clear(): Promise<void>;
|
|
45
|
+
dispose(): Promise<void>;
|
|
46
|
+
}
|
|
47
|
+
export default Fortran;
|