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,88 @@
|
|
|
1
|
+
import { type BashRuntimePreflightPayload, type ExecutionLimits, type RuntimeResourceKind, type WorkspaceLimits } from '@wasm-idle/core';
|
|
2
|
+
export declare const BASH_WORKER_PROTOCOL_VERSION: 1;
|
|
3
|
+
export interface BashSerializedError {
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly message: string;
|
|
6
|
+
readonly stack?: string;
|
|
7
|
+
readonly code?: string;
|
|
8
|
+
readonly recoverable?: boolean;
|
|
9
|
+
readonly profileId?: string;
|
|
10
|
+
readonly actual?: number;
|
|
11
|
+
readonly limit?: number;
|
|
12
|
+
readonly timeoutMs?: number;
|
|
13
|
+
readonly resource?: RuntimeResourceKind;
|
|
14
|
+
readonly feature?: string;
|
|
15
|
+
readonly languageId?: string;
|
|
16
|
+
}
|
|
17
|
+
export type BashWorkerErrorPhase = 'asset' | 'startup' | 'execute' | 'protocol';
|
|
18
|
+
interface BashWorkerEnvelope {
|
|
19
|
+
readonly protocolVersion: typeof BASH_WORKER_PROTOCOL_VERSION;
|
|
20
|
+
readonly sessionId: number;
|
|
21
|
+
readonly requestId: number;
|
|
22
|
+
}
|
|
23
|
+
export interface BashWorkerLoadMessage extends BashWorkerEnvelope {
|
|
24
|
+
readonly type: 'load';
|
|
25
|
+
readonly runtimePreflight: BashRuntimePreflightPayload;
|
|
26
|
+
readonly limits: ExecutionLimits;
|
|
27
|
+
readonly log?: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface BashWorkerRunMessage extends BashWorkerEnvelope {
|
|
30
|
+
readonly type: 'run';
|
|
31
|
+
readonly code: string;
|
|
32
|
+
readonly activePath: string;
|
|
33
|
+
readonly workspaceFiles: ReadonlyArray<Readonly<{
|
|
34
|
+
path: string;
|
|
35
|
+
content: string;
|
|
36
|
+
}>>;
|
|
37
|
+
readonly programArgs: readonly string[];
|
|
38
|
+
readonly stdin?: string;
|
|
39
|
+
readonly limits: ExecutionLimits;
|
|
40
|
+
readonly workspaceLimits: WorkspaceLimits;
|
|
41
|
+
readonly log?: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface BashWorkerStdinMessage extends BashWorkerEnvelope {
|
|
44
|
+
readonly type: 'stdin';
|
|
45
|
+
readonly bytes: Uint8Array;
|
|
46
|
+
}
|
|
47
|
+
export interface BashWorkerStdinEofMessage extends BashWorkerEnvelope {
|
|
48
|
+
readonly type: 'stdin-eof';
|
|
49
|
+
}
|
|
50
|
+
export type BashHostToWorkerMessage = BashWorkerLoadMessage | BashWorkerRunMessage | BashWorkerStdinMessage | BashWorkerStdinEofMessage;
|
|
51
|
+
export interface BashWorkerProgressMessage extends BashWorkerEnvelope {
|
|
52
|
+
readonly type: 'progress';
|
|
53
|
+
readonly value: number;
|
|
54
|
+
readonly stage?: string;
|
|
55
|
+
}
|
|
56
|
+
export interface BashWorkerLoadedMessage extends BashWorkerEnvelope {
|
|
57
|
+
readonly type: 'loaded';
|
|
58
|
+
}
|
|
59
|
+
export interface BashWorkerStdinReadyMessage extends BashWorkerEnvelope {
|
|
60
|
+
readonly type: 'stdin-ready';
|
|
61
|
+
}
|
|
62
|
+
export interface BashWorkerExecutionReadyMessage extends BashWorkerEnvelope {
|
|
63
|
+
readonly type: 'execution-ready';
|
|
64
|
+
readonly progress: Readonly<{
|
|
65
|
+
kind: 'ready';
|
|
66
|
+
state: 'running';
|
|
67
|
+
reason: 'started';
|
|
68
|
+
label?: string;
|
|
69
|
+
}>;
|
|
70
|
+
}
|
|
71
|
+
export interface BashWorkerOutputMessage extends BashWorkerEnvelope {
|
|
72
|
+
readonly type: 'output';
|
|
73
|
+
readonly stream: 'stdout' | 'stderr';
|
|
74
|
+
readonly bytes: Uint8Array;
|
|
75
|
+
}
|
|
76
|
+
export interface BashWorkerResultMessage extends BashWorkerEnvelope {
|
|
77
|
+
readonly type: 'result';
|
|
78
|
+
readonly result: boolean | string;
|
|
79
|
+
}
|
|
80
|
+
export interface BashWorkerErrorMessage extends BashWorkerEnvelope {
|
|
81
|
+
readonly type: 'error';
|
|
82
|
+
readonly phase: BashWorkerErrorPhase;
|
|
83
|
+
readonly error: BashSerializedError;
|
|
84
|
+
}
|
|
85
|
+
export type BashWorkerToHostMessage = BashWorkerProgressMessage | BashWorkerLoadedMessage | BashWorkerStdinReadyMessage | BashWorkerExecutionReadyMessage | BashWorkerOutputMessage | BashWorkerResultMessage | BashWorkerErrorMessage;
|
|
86
|
+
export declare function isBashHostToWorkerMessage(value: unknown): value is BashHostToWorkerMessage;
|
|
87
|
+
export declare function isBashWorkerToHostMessage(value: unknown): value is BashWorkerToHostMessage;
|
|
88
|
+
export {};
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { requireBashRuntimePreflightPayload } from '@wasm-idle/core';
|
|
2
|
+
export const BASH_WORKER_PROTOCOL_VERSION = 1;
|
|
3
|
+
const EXECUTION_LIMIT_KEYS = [
|
|
4
|
+
'assetTimeoutMs',
|
|
5
|
+
'startupTimeoutMs',
|
|
6
|
+
'compileTimeoutMs',
|
|
7
|
+
'runTimeoutMs',
|
|
8
|
+
'maxOutputBytes',
|
|
9
|
+
'maxDiagnostics',
|
|
10
|
+
'maxWorkspaceBytes',
|
|
11
|
+
'maxAssetBytes',
|
|
12
|
+
'maxWasmMemoryBytes',
|
|
13
|
+
'maxWorkers',
|
|
14
|
+
'maxThreads'
|
|
15
|
+
];
|
|
16
|
+
const WORKSPACE_LIMIT_KEYS = [
|
|
17
|
+
'maxFiles',
|
|
18
|
+
'maxFileBytes',
|
|
19
|
+
'maxTotalBytes',
|
|
20
|
+
'maxPathBytes'
|
|
21
|
+
];
|
|
22
|
+
function isRecord(value) {
|
|
23
|
+
return typeof value === 'object' && value !== null;
|
|
24
|
+
}
|
|
25
|
+
function isUint8Array(value) {
|
|
26
|
+
return (ArrayBuffer.isView(value) && Object.prototype.toString.call(value) === '[object Uint8Array]');
|
|
27
|
+
}
|
|
28
|
+
function isIdentifier(value) {
|
|
29
|
+
return Number.isSafeInteger(value) && value > 0;
|
|
30
|
+
}
|
|
31
|
+
function hasEnvelope(value) {
|
|
32
|
+
return (value.protocolVersion === BASH_WORKER_PROTOCOL_VERSION &&
|
|
33
|
+
isIdentifier(value.sessionId) &&
|
|
34
|
+
isIdentifier(value.requestId));
|
|
35
|
+
}
|
|
36
|
+
function hasResolvedExecutionLimits(value) {
|
|
37
|
+
if (!isRecord(value))
|
|
38
|
+
return false;
|
|
39
|
+
return EXECUTION_LIMIT_KEYS.every((key) => Number.isSafeInteger(value[key]) && value[key] > 0);
|
|
40
|
+
}
|
|
41
|
+
function hasResolvedWorkspaceLimits(value) {
|
|
42
|
+
if (!isRecord(value) || typeof value.caseSensitive !== 'boolean')
|
|
43
|
+
return false;
|
|
44
|
+
return WORKSPACE_LIMIT_KEYS.every((key) => Number.isSafeInteger(value[key]) && value[key] >= 0);
|
|
45
|
+
}
|
|
46
|
+
function hasRuntimePreflight(value) {
|
|
47
|
+
try {
|
|
48
|
+
requireBashRuntimePreflightPayload(value);
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function hasWorkspaceFiles(value) {
|
|
56
|
+
return (Array.isArray(value) &&
|
|
57
|
+
value.every((file) => isRecord(file) && typeof file.path === 'string' && typeof file.content === 'string'));
|
|
58
|
+
}
|
|
59
|
+
function hasStringArray(value) {
|
|
60
|
+
return Array.isArray(value) && value.every((entry) => typeof entry === 'string');
|
|
61
|
+
}
|
|
62
|
+
export function isBashHostToWorkerMessage(value) {
|
|
63
|
+
if (!isRecord(value) || !hasEnvelope(value))
|
|
64
|
+
return false;
|
|
65
|
+
switch (value.type) {
|
|
66
|
+
case 'load':
|
|
67
|
+
return (hasRuntimePreflight(value.runtimePreflight) &&
|
|
68
|
+
hasResolvedExecutionLimits(value.limits) &&
|
|
69
|
+
(value.log === undefined || typeof value.log === 'boolean'));
|
|
70
|
+
case 'run':
|
|
71
|
+
return (typeof value.code === 'string' &&
|
|
72
|
+
typeof value.activePath === 'string' &&
|
|
73
|
+
hasWorkspaceFiles(value.workspaceFiles) &&
|
|
74
|
+
hasStringArray(value.programArgs) &&
|
|
75
|
+
(value.stdin === undefined || typeof value.stdin === 'string') &&
|
|
76
|
+
hasResolvedExecutionLimits(value.limits) &&
|
|
77
|
+
hasResolvedWorkspaceLimits(value.workspaceLimits) &&
|
|
78
|
+
(value.log === undefined || typeof value.log === 'boolean'));
|
|
79
|
+
case 'stdin':
|
|
80
|
+
return isUint8Array(value.bytes);
|
|
81
|
+
case 'stdin-eof':
|
|
82
|
+
return true;
|
|
83
|
+
default:
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function hasSerializedError(value) {
|
|
88
|
+
return (isRecord(value) &&
|
|
89
|
+
typeof value.name === 'string' &&
|
|
90
|
+
typeof value.message === 'string' &&
|
|
91
|
+
(value.stack === undefined || typeof value.stack === 'string') &&
|
|
92
|
+
(value.code === undefined || typeof value.code === 'string') &&
|
|
93
|
+
(value.recoverable === undefined || typeof value.recoverable === 'boolean') &&
|
|
94
|
+
(value.profileId === undefined || typeof value.profileId === 'string') &&
|
|
95
|
+
(value.actual === undefined || Number.isSafeInteger(value.actual)) &&
|
|
96
|
+
(value.limit === undefined || Number.isSafeInteger(value.limit)) &&
|
|
97
|
+
(value.timeoutMs === undefined || Number.isSafeInteger(value.timeoutMs)) &&
|
|
98
|
+
(value.resource === undefined ||
|
|
99
|
+
value.resource === 'wasm-memory' ||
|
|
100
|
+
value.resource === 'nested-workers' ||
|
|
101
|
+
value.resource === 'threads') &&
|
|
102
|
+
(value.feature === undefined || typeof value.feature === 'string') &&
|
|
103
|
+
(value.languageId === undefined || typeof value.languageId === 'string'));
|
|
104
|
+
}
|
|
105
|
+
export function isBashWorkerToHostMessage(value) {
|
|
106
|
+
if (!isRecord(value) || !hasEnvelope(value))
|
|
107
|
+
return false;
|
|
108
|
+
switch (value.type) {
|
|
109
|
+
case 'progress':
|
|
110
|
+
return (Number.isFinite(value.value) &&
|
|
111
|
+
(value.stage === undefined || typeof value.stage === 'string'));
|
|
112
|
+
case 'loaded':
|
|
113
|
+
case 'stdin-ready':
|
|
114
|
+
return true;
|
|
115
|
+
case 'execution-ready':
|
|
116
|
+
return (isRecord(value.progress) &&
|
|
117
|
+
value.progress.kind === 'ready' &&
|
|
118
|
+
value.progress.state === 'running' &&
|
|
119
|
+
value.progress.reason === 'started' &&
|
|
120
|
+
(value.progress.label === undefined || typeof value.progress.label === 'string'));
|
|
121
|
+
case 'output':
|
|
122
|
+
return ((value.stream === 'stdout' || value.stream === 'stderr') &&
|
|
123
|
+
isUint8Array(value.bytes));
|
|
124
|
+
case 'result':
|
|
125
|
+
return typeof value.result === 'boolean' || typeof value.result === 'string';
|
|
126
|
+
case 'error':
|
|
127
|
+
return ((value.phase === 'asset' ||
|
|
128
|
+
value.phase === 'startup' ||
|
|
129
|
+
value.phase === 'execute' ||
|
|
130
|
+
value.phase === 'protocol') &&
|
|
131
|
+
hasSerializedError(value.error));
|
|
132
|
+
default:
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { resolveBqnRuntimeAssetConfig } from './assets';
|
|
2
|
+
import { preflightStaticRuntimeAssetsInWorker } from './staticRuntimePreflight';
|
|
3
|
+
import { StaticWorkerRuntimeSandbox } from './staticWorkerRuntime';
|
|
4
|
+
import { RuntimeConfigurationError } from '@wasm-idle/core';
|
|
5
|
+
class Bqn extends StaticWorkerRuntimeSandbox {
|
|
6
|
+
constructor() {
|
|
7
|
+
super({
|
|
8
|
+
languageId: 'BQN',
|
|
9
|
+
displayName: 'BQN',
|
|
10
|
+
defaultActivePath: 'main.bqn',
|
|
11
|
+
moduleWorker: true,
|
|
12
|
+
inlineVerifiedWorker: true,
|
|
13
|
+
stdin: { mode: 'streaming', sourceHintPattern: /•GetLine|stdin/iu },
|
|
14
|
+
runtimePreflightDelivery: 'transfer-owned',
|
|
15
|
+
resolveRuntimeAssets(runtimeAssets, currentUrl) {
|
|
16
|
+
const resolved = resolveBqnRuntimeAssetConfig(runtimeAssets, currentUrl);
|
|
17
|
+
const profile = resolved.preflightProfile;
|
|
18
|
+
if (!/^[a-f0-9]{64}$/u.test(resolved.manifestFingerprint || '') ||
|
|
19
|
+
profile.manifestFingerprint !== resolved.manifestFingerprint ||
|
|
20
|
+
!resolved.workerReceipt) {
|
|
21
|
+
throw new RuntimeConfigurationError('BQN runtime requires one coherent preflight profile, manifest fingerprint, and worker receipt.', { runtimeId: 'BQN' });
|
|
22
|
+
}
|
|
23
|
+
return resolved;
|
|
24
|
+
},
|
|
25
|
+
async preflightRuntimeAssets(urls, context) {
|
|
26
|
+
const profile = urls.preflightProfile;
|
|
27
|
+
const loadedByAsset = new Map();
|
|
28
|
+
const totalDownloadBytes = (profile.manifestReceipt?.bytes ?? 0) +
|
|
29
|
+
(profile.moduleReceipt?.bytes ?? 0) +
|
|
30
|
+
(profile.wasmReceipt?.bytes ?? 0);
|
|
31
|
+
const payload = await preflightStaticRuntimeAssetsInWorker({
|
|
32
|
+
runtimeId: 'BQN',
|
|
33
|
+
displayName: 'BQN',
|
|
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
|
+
loadedByAsset.set(progress.progress.assetKey, progress.progress.loadedBytes);
|
|
42
|
+
const loadedBytes = [...loadedByAsset.values()].reduce((total, loaded) => total + loaded, 0);
|
|
43
|
+
const fraction = totalDownloadBytes > 0 ? loadedBytes / totalDownloadBytes : 0;
|
|
44
|
+
context.reportProgress(0.04 + Math.min(1, fraction) * 0.11, `Preflighting BQN asset ${progress.progress.assetKey}`);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const { loadedBytes, totalBytes } = progress;
|
|
48
|
+
const fraction = totalBytes > 0 ? loadedBytes / totalBytes : 0;
|
|
49
|
+
context.reportProgress(0.15 + Math.min(1, fraction) * 0.02, 'Decompressing verified BQN Wasm');
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
return context.createOwnedDelivery(payload);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export default Bqn;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { BqnRuntimePreflightProfile } from './assets';
|
|
2
|
+
import { type ExecutionLimits, type RuntimeAssetPreflightProgress } from '@wasm-idle/core';
|
|
3
|
+
export declare const BQN_PREFLIGHT_PROTOCOL: "wasm-idle-bqn-preflight";
|
|
4
|
+
export declare const BQN_PREFLIGHT_PROTOCOL_VERSION: 1;
|
|
5
|
+
export declare const BQN_PREFLIGHT_RUNTIME_ID: "BQN";
|
|
6
|
+
export interface BqnRuntimePreflightRequest {
|
|
7
|
+
readonly baseUrl: string;
|
|
8
|
+
readonly manifestUrl: string;
|
|
9
|
+
readonly profile: BqnRuntimePreflightProfile;
|
|
10
|
+
readonly limits?: Partial<ExecutionLimits>;
|
|
11
|
+
readonly signal?: AbortSignal;
|
|
12
|
+
readonly fetch?: typeof globalThis.fetch;
|
|
13
|
+
readonly reportProgress?: (progress: RuntimeAssetPreflightProgress) => void;
|
|
14
|
+
readonly reportDecompressionProgress?: (loadedBytes: number, totalBytes: number) => void;
|
|
15
|
+
}
|
|
16
|
+
export interface BqnRuntimePreflightPayload {
|
|
17
|
+
readonly protocol: typeof BQN_PREFLIGHT_PROTOCOL;
|
|
18
|
+
readonly protocolVersion: typeof BQN_PREFLIGHT_PROTOCOL_VERSION;
|
|
19
|
+
readonly profileId: string;
|
|
20
|
+
readonly sourceRevision: string;
|
|
21
|
+
readonly manifestFingerprint: string;
|
|
22
|
+
readonly manifestBytes: Uint8Array;
|
|
23
|
+
readonly moduleBytes: Uint8Array;
|
|
24
|
+
readonly wasmBytes: Uint8Array;
|
|
25
|
+
}
|
|
26
|
+
export declare function preflightBqnRuntimeAssets(request: BqnRuntimePreflightRequest): Promise<BqnRuntimePreflightPayload>;
|