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
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { Memory } from './';
|
|
2
|
-
import type { Writable } from 'svelte/store';
|
|
3
|
-
interface MemFsOptions {
|
|
4
|
-
stdin: () => string;
|
|
5
|
-
stdout: (str: string) => void;
|
|
6
|
-
stdinStr?: string;
|
|
7
|
-
path: string;
|
|
8
|
-
progress?: Writable<number>;
|
|
9
|
-
trace?: (message: string) => void;
|
|
10
|
-
}
|
|
11
|
-
export default class MemFS {
|
|
12
|
-
ready: Promise<void>;
|
|
13
|
-
mem: Memory;
|
|
14
|
-
hostMem_: Memory;
|
|
15
|
-
stdinStr: string;
|
|
16
|
-
stdin: () => string;
|
|
17
|
-
stdout: (str: string) => void;
|
|
18
|
-
trace: (message: string) => void;
|
|
19
|
-
instance: WebAssembly.Instance;
|
|
20
|
-
exports: any;
|
|
21
|
-
out: boolean;
|
|
22
|
-
constructor(options: MemFsOptions);
|
|
23
|
-
set hostMem(mem: Memory);
|
|
24
|
-
setStdinStr(str: string): void;
|
|
25
|
-
addDirectory(path: string): void;
|
|
26
|
-
addFile(path: string, contents: string | ArrayBuffer | Uint8Array): void;
|
|
27
|
-
getFileContents(path: string): Uint8Array<ArrayBufferLike>;
|
|
28
|
-
abort(): void;
|
|
29
|
-
host_write(fd: number, iovs: number, iovs_len: number, nwritten_out: number): number;
|
|
30
|
-
host_read(fd: number, iovs: number, iovs_len: number, nread: number): number;
|
|
31
|
-
memfs_log(buf: number, len: number): void;
|
|
32
|
-
copy_out(clang_dst: number, memfs_src: number, size: number): void;
|
|
33
|
-
copy_in(memfs_dst: number, clang_src: number, size: number): void;
|
|
34
|
-
}
|
|
35
|
-
export {};
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import { Memory } from './';
|
|
2
|
-
import { bindNew } from '../apply';
|
|
3
|
-
import { AbortError, assert } from '../error';
|
|
4
|
-
import { compile } from '../wasm';
|
|
5
|
-
import { memfsUrl } from '../url';
|
|
6
|
-
const ESUCCESS = 0;
|
|
7
|
-
const previewText = (text) => JSON.stringify(text.length > 96 ? text.slice(0, 93) + '...' : text);
|
|
8
|
-
export default class MemFS {
|
|
9
|
-
ready;
|
|
10
|
-
mem = null;
|
|
11
|
-
hostMem_ = null;
|
|
12
|
-
stdinStr;
|
|
13
|
-
stdin;
|
|
14
|
-
stdout;
|
|
15
|
-
trace;
|
|
16
|
-
instance = null;
|
|
17
|
-
exports;
|
|
18
|
-
out = true;
|
|
19
|
-
constructor(options) {
|
|
20
|
-
this.stdin = options.stdin;
|
|
21
|
-
this.stdout = options.stdout;
|
|
22
|
-
this.stdinStr = options.stdinStr || '';
|
|
23
|
-
this.trace = options.trace || (() => { });
|
|
24
|
-
const env = bindNew(this, 'abort', 'host_write', 'host_read', 'memfs_log', 'copy_in', 'copy_out');
|
|
25
|
-
this.ready = compile(memfsUrl(options.path), options.progress)
|
|
26
|
-
.then((module) => WebAssembly.instantiate(module, { env }))
|
|
27
|
-
.then((instance) => {
|
|
28
|
-
this.instance = instance;
|
|
29
|
-
this.exports = instance.exports;
|
|
30
|
-
this.mem = new Memory(this.exports.memory);
|
|
31
|
-
this.exports.init();
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
set hostMem(mem) {
|
|
35
|
-
this.hostMem_ = mem;
|
|
36
|
-
}
|
|
37
|
-
setStdinStr(str) {
|
|
38
|
-
this.stdinStr = str;
|
|
39
|
-
}
|
|
40
|
-
addDirectory(path) {
|
|
41
|
-
this.mem.check();
|
|
42
|
-
this.mem.write(this.exports.GetPathBuf(), path);
|
|
43
|
-
this.exports.AddDirectoryNode(path.length);
|
|
44
|
-
}
|
|
45
|
-
addFile(path, contents) {
|
|
46
|
-
const length = contents instanceof ArrayBuffer ? contents.byteLength : contents.length;
|
|
47
|
-
this.mem.check();
|
|
48
|
-
this.mem.write(this.exports.GetPathBuf(), path);
|
|
49
|
-
const inode = this.exports.AddFileNode(path.length, length);
|
|
50
|
-
const addr = this.exports.GetFileNodeAddress(inode);
|
|
51
|
-
this.mem.check();
|
|
52
|
-
this.mem.write(addr, contents);
|
|
53
|
-
}
|
|
54
|
-
getFileContents(path) {
|
|
55
|
-
this.mem.check();
|
|
56
|
-
this.mem.write(this.exports.GetPathBuf(), path);
|
|
57
|
-
const inode = this.exports.FindNode(path.length);
|
|
58
|
-
const addr = this.exports.GetFileNodeAddress(inode);
|
|
59
|
-
const size = this.exports.GetFileNodeSize(inode);
|
|
60
|
-
return new Uint8Array(this.mem.buffer, addr, size);
|
|
61
|
-
}
|
|
62
|
-
abort() {
|
|
63
|
-
this.trace('abort()');
|
|
64
|
-
throw new AbortError();
|
|
65
|
-
}
|
|
66
|
-
host_write(fd, iovs, iovs_len, nwritten_out) {
|
|
67
|
-
this.hostMem_.check();
|
|
68
|
-
assert(fd <= 2);
|
|
69
|
-
let size = 0;
|
|
70
|
-
let str = '';
|
|
71
|
-
for (let i = 0; i < iovs_len; ++i) {
|
|
72
|
-
const buf = this.hostMem_.read32(iovs);
|
|
73
|
-
iovs += 4;
|
|
74
|
-
const len = this.hostMem_.read32(iovs);
|
|
75
|
-
iovs += 4;
|
|
76
|
-
str += this.hostMem_.readStrR(buf, len);
|
|
77
|
-
size += len;
|
|
78
|
-
}
|
|
79
|
-
this.hostMem_.write32(nwritten_out, size);
|
|
80
|
-
this.trace(`host_write(fd=${fd}, bytes=${size}, data=${previewText(str)})`);
|
|
81
|
-
if (this.out)
|
|
82
|
-
this.stdout(str);
|
|
83
|
-
return ESUCCESS;
|
|
84
|
-
}
|
|
85
|
-
host_read(fd, iovs, iovs_len, nread) {
|
|
86
|
-
this.hostMem_.check();
|
|
87
|
-
assert(fd === 0);
|
|
88
|
-
let size = 0;
|
|
89
|
-
for (let i = 0; i < iovs_len; ++i) {
|
|
90
|
-
const buf = this.hostMem_.read32(iovs);
|
|
91
|
-
iovs += 4;
|
|
92
|
-
const len = this.hostMem_.read32(iovs);
|
|
93
|
-
iovs += 4;
|
|
94
|
-
if (!this.stdinStr.length)
|
|
95
|
-
this.stdinStr = this.stdin();
|
|
96
|
-
const lenToWrite = Math.min(len, this.stdinStr.length);
|
|
97
|
-
if (lenToWrite === 0)
|
|
98
|
-
break;
|
|
99
|
-
const chunk = this.stdinStr.substring(0, lenToWrite);
|
|
100
|
-
this.hostMem_.write(buf, this.stdinStr.substring(0, lenToWrite));
|
|
101
|
-
this.stdinStr = this.stdinStr.substring(lenToWrite);
|
|
102
|
-
size += lenToWrite;
|
|
103
|
-
this.trace(`host_read(fd=${fd}, bytes=${lenToWrite}, data=${previewText(chunk)})`);
|
|
104
|
-
if (lenToWrite !== len)
|
|
105
|
-
break;
|
|
106
|
-
}
|
|
107
|
-
this.hostMem_.write32(nread, size);
|
|
108
|
-
if (size === 0)
|
|
109
|
-
this.trace(`host_read(fd=${fd}, bytes=0)`);
|
|
110
|
-
return ESUCCESS;
|
|
111
|
-
}
|
|
112
|
-
memfs_log(buf, len) {
|
|
113
|
-
this.mem.check();
|
|
114
|
-
const message = this.mem.readStr(buf, len);
|
|
115
|
-
this.trace(`memfs_log(${previewText(message)})`);
|
|
116
|
-
console.log(message);
|
|
117
|
-
}
|
|
118
|
-
copy_out(clang_dst, memfs_src, size) {
|
|
119
|
-
this.hostMem_.check();
|
|
120
|
-
const dst = new Uint8Array(this.hostMem_.buffer, clang_dst, size);
|
|
121
|
-
this.mem.check();
|
|
122
|
-
const src = new Uint8Array(this.mem.buffer, memfs_src, size);
|
|
123
|
-
dst.set(src);
|
|
124
|
-
}
|
|
125
|
-
copy_in(memfs_dst, clang_src, size) {
|
|
126
|
-
this.mem.check();
|
|
127
|
-
const dst = new Uint8Array(this.mem.buffer, memfs_dst, size);
|
|
128
|
-
this.hostMem_.check();
|
|
129
|
-
const src = new Uint8Array(this.hostMem_.buffer, clang_src, size);
|
|
130
|
-
dst.set(src);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export default class Memory {
|
|
2
|
-
memory: WebAssembly.Memory;
|
|
3
|
-
view: DataView;
|
|
4
|
-
buffer: ArrayBufferLike;
|
|
5
|
-
u8: Uint8Array;
|
|
6
|
-
u32: Uint32Array;
|
|
7
|
-
constructor(memory: WebAssembly.Memory);
|
|
8
|
-
check(): void;
|
|
9
|
-
read8(o: number): number;
|
|
10
|
-
read32(o: number): number;
|
|
11
|
-
readInt32(o: number): number;
|
|
12
|
-
readFloat32(o: number): number;
|
|
13
|
-
readFloat64(o: number): number;
|
|
14
|
-
readStr(o: number, len: number): string;
|
|
15
|
-
readStrR(o: number, len: number): string;
|
|
16
|
-
write8(o: number, v: number): void;
|
|
17
|
-
write32(o: number, v: number): void;
|
|
18
|
-
write64(o: number, vlo: number, vhi?: number): void;
|
|
19
|
-
writeStr(o: number, str: string): number;
|
|
20
|
-
writeUint8(o: number, arr: ArrayLike<number>): number;
|
|
21
|
-
write(o: number, buf: ArrayBufferLike | string | Uint8Array): number;
|
|
22
|
-
}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { readStr, readStrR } from '../encode';
|
|
2
|
-
export default class Memory {
|
|
3
|
-
memory;
|
|
4
|
-
view;
|
|
5
|
-
buffer;
|
|
6
|
-
u8;
|
|
7
|
-
u32;
|
|
8
|
-
constructor(memory) {
|
|
9
|
-
this.memory = memory;
|
|
10
|
-
this.buffer = memory.buffer;
|
|
11
|
-
this.view = new DataView(this.buffer);
|
|
12
|
-
this.u8 = new Uint8Array(this.buffer);
|
|
13
|
-
this.u32 = new Uint32Array(this.buffer);
|
|
14
|
-
}
|
|
15
|
-
check() {
|
|
16
|
-
if (this.buffer.byteLength === 0) {
|
|
17
|
-
this.buffer = this.memory.buffer;
|
|
18
|
-
this.view = new DataView(this.buffer);
|
|
19
|
-
this.u8 = new Uint8Array(this.buffer);
|
|
20
|
-
this.u32 = new Uint32Array(this.buffer);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
read8(o) {
|
|
24
|
-
return this.u8[o];
|
|
25
|
-
}
|
|
26
|
-
read32(o) {
|
|
27
|
-
return this.u32[o >> 2];
|
|
28
|
-
}
|
|
29
|
-
readInt32(o) {
|
|
30
|
-
return this.view.getInt32(o, true);
|
|
31
|
-
}
|
|
32
|
-
readFloat32(o) {
|
|
33
|
-
return this.view.getFloat32(o, true);
|
|
34
|
-
}
|
|
35
|
-
readFloat64(o) {
|
|
36
|
-
return this.view.getFloat64(o, true);
|
|
37
|
-
}
|
|
38
|
-
readStr(o, len) {
|
|
39
|
-
return readStr(this.u8, o, len);
|
|
40
|
-
}
|
|
41
|
-
readStrR(o, len) {
|
|
42
|
-
return readStrR(this.u8, o, len);
|
|
43
|
-
}
|
|
44
|
-
write8(o, v) {
|
|
45
|
-
this.u8[o] = v;
|
|
46
|
-
}
|
|
47
|
-
write32(o, v) {
|
|
48
|
-
this.u32[o >> 2] = v;
|
|
49
|
-
}
|
|
50
|
-
write64(o, vlo, vhi = 0) {
|
|
51
|
-
this.write32(o, vlo);
|
|
52
|
-
this.write32(o + 4, vhi);
|
|
53
|
-
}
|
|
54
|
-
writeStr(o, str) {
|
|
55
|
-
o += this.write(o, str);
|
|
56
|
-
this.write8(o, 0);
|
|
57
|
-
return str.length + 1;
|
|
58
|
-
}
|
|
59
|
-
writeUint8(o, arr) {
|
|
60
|
-
new Uint8Array(this.buffer, o, arr.length).set(arr);
|
|
61
|
-
return arr.length;
|
|
62
|
-
}
|
|
63
|
-
write(o, buf) {
|
|
64
|
-
if (buf instanceof ArrayBuffer)
|
|
65
|
-
return this.writeUint8(o, new Uint8Array(buf));
|
|
66
|
-
if (buf instanceof SharedArrayBuffer)
|
|
67
|
-
return this.writeUint8(o, new Uint8Array(buf));
|
|
68
|
-
else if (typeof buf === 'string')
|
|
69
|
-
return this.writeUint8(o, buf.split('').map((x) => x.charCodeAt(0)));
|
|
70
|
-
else
|
|
71
|
-
return this.writeUint8(o, buf);
|
|
72
|
-
}
|
|
73
|
-
}
|
package/dist/clang/memory/tar.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { readStr, readOct } from '../encode';
|
|
2
|
-
import { assert } from '../error';
|
|
3
|
-
function* readEntry(buffer) {
|
|
4
|
-
const u8 = buffer instanceof Uint8Array ? buffer : new Uint8Array(buffer);
|
|
5
|
-
let offset = 0;
|
|
6
|
-
const str = (len) => {
|
|
7
|
-
offset += len;
|
|
8
|
-
return readStr(u8, offset - len, len);
|
|
9
|
-
}, oct = (len) => {
|
|
10
|
-
offset += len;
|
|
11
|
-
return readOct(u8, offset - len, len);
|
|
12
|
-
}, align = () => (offset = (offset + 511) & ~511);
|
|
13
|
-
while (offset + 512 <= u8.length) {
|
|
14
|
-
const entryInit = {
|
|
15
|
-
filename: str(100),
|
|
16
|
-
mode: oct(8),
|
|
17
|
-
owner: oct(8),
|
|
18
|
-
group: oct(8),
|
|
19
|
-
size: oct(12),
|
|
20
|
-
mtime: oct(12),
|
|
21
|
-
checksum: oct(8),
|
|
22
|
-
type: str(1),
|
|
23
|
-
linkname: str(100),
|
|
24
|
-
ustar: str(8)
|
|
25
|
-
};
|
|
26
|
-
if (!entryInit.ustar)
|
|
27
|
-
return;
|
|
28
|
-
const entry = {
|
|
29
|
-
...entryInit,
|
|
30
|
-
ownerName: str(32),
|
|
31
|
-
groupName: str(32),
|
|
32
|
-
devMajor: str(8),
|
|
33
|
-
devMinor: str(8),
|
|
34
|
-
filenamePrefix: str(155)
|
|
35
|
-
};
|
|
36
|
-
align();
|
|
37
|
-
if (entry.type === '0') {
|
|
38
|
-
entry.contents = u8.subarray(offset, offset + entry.size);
|
|
39
|
-
offset += entry.size;
|
|
40
|
-
align();
|
|
41
|
-
}
|
|
42
|
-
yield entry;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
export default function untar(buffer, memfs) {
|
|
46
|
-
for (const entry of readEntry(buffer)) {
|
|
47
|
-
switch (entry.type) {
|
|
48
|
-
case '0': // Regular file.
|
|
49
|
-
memfs.addFile(entry.filename, entry.contents);
|
|
50
|
-
break;
|
|
51
|
-
case '5': // Folder.
|
|
52
|
-
memfs.addDirectory(entry.filename);
|
|
53
|
-
break;
|
|
54
|
-
default:
|
|
55
|
-
console.log('type', entry.type);
|
|
56
|
-
assert(false);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
package/dist/clang/url.d.ts
DELETED
package/dist/clang/url.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
const normalizeBaseUrl = (baseUrl) => baseUrl ? (baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`) : '/clang/';
|
|
2
|
-
export const memfsUrl = (baseUrl) => `${normalizeBaseUrl(baseUrl)}bin/memfs.zip`;
|
|
3
|
-
export const clangUrl = (baseUrl) => `${normalizeBaseUrl(baseUrl)}bin/clang.zip`;
|
|
4
|
-
export const lldUrl = (baseUrl) => `${normalizeBaseUrl(baseUrl)}bin/lld.zip`;
|
|
5
|
-
export const rootUrl = (baseUrl) => `${normalizeBaseUrl(baseUrl)}bin/sysroot.tar.zip`;
|
package/dist/clang/wasm.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { Writable } from 'svelte/store';
|
|
2
|
-
export declare const readBuffer: (name: string, progress?: Writable<number>) => Promise<Uint8Array<ArrayBuffer>>;
|
|
3
|
-
export declare function compile(filename: string, progress?: Writable<number>): Promise<any>;
|
|
4
|
-
export declare function getInstance(module: WebAssembly.Module, imports: WebAssembly.Imports): Promise<WebAssembly.Instance>;
|
package/dist/clang/wasm.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import * as zip from '@zip.js/zip.js';
|
|
2
|
-
const store = {};
|
|
3
|
-
export const readBuffer = async (name, progress) => {
|
|
4
|
-
const response = await fetch(name);
|
|
5
|
-
const contentLength = +(response.headers.get('Content-Length') || 0);
|
|
6
|
-
if (!response.body) {
|
|
7
|
-
progress?.set?.(1);
|
|
8
|
-
return new Uint8Array(await response.arrayBuffer());
|
|
9
|
-
}
|
|
10
|
-
const r = response.body.getReader();
|
|
11
|
-
let receivedLength = 0;
|
|
12
|
-
const chunks = [];
|
|
13
|
-
while (true) {
|
|
14
|
-
const { done, value } = await r.read();
|
|
15
|
-
if (done)
|
|
16
|
-
break;
|
|
17
|
-
if (!value)
|
|
18
|
-
continue;
|
|
19
|
-
chunks.push(Uint8Array.from(value));
|
|
20
|
-
receivedLength += value.length;
|
|
21
|
-
if (contentLength > 0)
|
|
22
|
-
progress?.set?.(receivedLength / contentLength);
|
|
23
|
-
}
|
|
24
|
-
progress?.set?.(1);
|
|
25
|
-
const chunksAll = new Uint8Array(receivedLength); // (4.1)
|
|
26
|
-
let position = 0;
|
|
27
|
-
for (const chunk of chunks) {
|
|
28
|
-
chunksAll.set(chunk, position);
|
|
29
|
-
position += chunk.length;
|
|
30
|
-
}
|
|
31
|
-
const reader = new zip.ZipReader(new zip.Uint8ArrayReader(chunksAll));
|
|
32
|
-
const entries = await reader.getEntries();
|
|
33
|
-
for (const entry of entries) {
|
|
34
|
-
if (!('getData' in entry))
|
|
35
|
-
continue;
|
|
36
|
-
const data = await entry.getData(new zip.Uint8ArrayWriter());
|
|
37
|
-
return data;
|
|
38
|
-
}
|
|
39
|
-
throw new Error('No entry found');
|
|
40
|
-
};
|
|
41
|
-
export async function compile(filename, progress) {
|
|
42
|
-
// TODO: make compileStreaming work. It needs the server to use the
|
|
43
|
-
// application/wasm mimetype.
|
|
44
|
-
if (store[filename])
|
|
45
|
-
return store[filename];
|
|
46
|
-
return (store[filename] = WebAssembly.compile(await readBuffer(filename, progress)));
|
|
47
|
-
}
|
|
48
|
-
export function getInstance(module, imports) {
|
|
49
|
-
return WebAssembly.instantiate(module, imports);
|
|
50
|
-
}
|
package/dist/clangd/config.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export declare const CLANGD_WORKSPACE_PATH = "/workspace";
|
|
2
|
-
export declare const CLANGD_WORKSPACE_URI = "file:///workspace";
|
|
3
|
-
export declare const CLANGD_CPP_FILE_PATH = "/workspace/main.cpp";
|
|
4
|
-
export declare const CLANGD_CPP_FILE_URI = "file:///workspace/main.cpp";
|
|
5
|
-
export type ClangdStatus = {
|
|
6
|
-
state: 'disabled';
|
|
7
|
-
} | {
|
|
8
|
-
state: 'loading';
|
|
9
|
-
loaded?: number;
|
|
10
|
-
total?: number;
|
|
11
|
-
} | {
|
|
12
|
-
state: 'ready';
|
|
13
|
-
} | {
|
|
14
|
-
state: 'error';
|
|
15
|
-
message: string;
|
|
16
|
-
};
|
|
17
|
-
export declare const normalizeClangdBaseUrl: (baseUrl: string) => string;
|
|
18
|
-
export declare const createClangdCompileFlags: () => string[];
|
package/dist/clangd/config.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export const CLANGD_WORKSPACE_PATH = '/workspace';
|
|
2
|
-
export const CLANGD_WORKSPACE_URI = `file://${CLANGD_WORKSPACE_PATH}`;
|
|
3
|
-
export const CLANGD_CPP_FILE_PATH = `${CLANGD_WORKSPACE_PATH}/main.cpp`;
|
|
4
|
-
export const CLANGD_CPP_FILE_URI = `file://${CLANGD_CPP_FILE_PATH}`;
|
|
5
|
-
export const normalizeClangdBaseUrl = (baseUrl) => baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl;
|
|
6
|
-
export const createClangdCompileFlags = () => [
|
|
7
|
-
'-std=gnu++2a',
|
|
8
|
-
'-xc++',
|
|
9
|
-
'--target=wasm32-wasi',
|
|
10
|
-
'-isystem/usr/include/c++/v1',
|
|
11
|
-
'-isystem/usr/include/wasm32-wasi/c++/v1',
|
|
12
|
-
'-isystem/usr/include',
|
|
13
|
-
'-isystem/usr/include/wasm32-wasi'
|
|
14
|
-
];
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
const QUOTE = 34;
|
|
2
|
-
const LEFT_BRACE = 123;
|
|
3
|
-
const RIGHT_BRACE = 125;
|
|
4
|
-
const BACKSLASH = 92;
|
|
5
|
-
export class JsonStream {
|
|
6
|
-
inJson = false;
|
|
7
|
-
rawText = [];
|
|
8
|
-
unbalancedBraces = 0;
|
|
9
|
-
inString = false;
|
|
10
|
-
inEscape = 0;
|
|
11
|
-
textDecoder = new TextDecoder();
|
|
12
|
-
insert(charCode) {
|
|
13
|
-
if (!this.inJson && charCode === LEFT_BRACE) {
|
|
14
|
-
this.inJson = true;
|
|
15
|
-
this.rawText = [];
|
|
16
|
-
}
|
|
17
|
-
if (!this.inJson)
|
|
18
|
-
return null;
|
|
19
|
-
this.rawText.push(charCode);
|
|
20
|
-
if (this.inString) {
|
|
21
|
-
if (this.inEscape) {
|
|
22
|
-
if (charCode === 75)
|
|
23
|
-
this.inEscape += 4;
|
|
24
|
-
this.inEscape -= 1;
|
|
25
|
-
}
|
|
26
|
-
else if (charCode === BACKSLASH) {
|
|
27
|
-
this.inEscape = 1;
|
|
28
|
-
}
|
|
29
|
-
else if (charCode === QUOTE) {
|
|
30
|
-
this.inString = false;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
else if (charCode === LEFT_BRACE) {
|
|
34
|
-
this.unbalancedBraces += 1;
|
|
35
|
-
}
|
|
36
|
-
else if (charCode === RIGHT_BRACE) {
|
|
37
|
-
this.unbalancedBraces -= 1;
|
|
38
|
-
if (this.unbalancedBraces === 0) {
|
|
39
|
-
this.inJson = false;
|
|
40
|
-
return this.textDecoder.decode(new Uint8Array(this.rawText));
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
else if (charCode === QUOTE) {
|
|
44
|
-
this.inString = true;
|
|
45
|
-
}
|
|
46
|
-
return null;
|
|
47
|
-
}
|
|
48
|
-
}
|
package/dist/clangd/session.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { MonacoLanguageClient } from '@hancomac/monaco-languageclient';
|
|
2
|
-
import type * as Monaco from 'monaco-editor';
|
|
3
|
-
import { type ClangdStatus } from './config';
|
|
4
|
-
import { WorkerAssetBridge } from '../playground/assetBridge';
|
|
5
|
-
import { type ResolvedRuntimeAssetConfig, type RuntimeAssetConfig } from '../playground/assets';
|
|
6
|
-
export declare class ClangdSession {
|
|
7
|
-
Monaco: typeof Monaco;
|
|
8
|
-
baseUrl: string;
|
|
9
|
-
assetConfig: ResolvedRuntimeAssetConfig;
|
|
10
|
-
assetBridge: WorkerAssetBridge | null;
|
|
11
|
-
onStatus?: (status: ClangdStatus) => void;
|
|
12
|
-
worker: Worker | null;
|
|
13
|
-
languageClient: MonacoLanguageClient | null;
|
|
14
|
-
constructor(MonacoModule: typeof Monaco, baseUrl: string | RuntimeAssetConfig, onStatus?: (status: ClangdStatus) => void);
|
|
15
|
-
createModel(value: string): Monaco.editor.ITextModel;
|
|
16
|
-
start(): Promise<void>;
|
|
17
|
-
dispose(): void;
|
|
18
|
-
}
|
package/dist/clangd/session.js
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { CloseAction, ErrorAction, MonacoLanguageClient, MonacoServices } from '@hancomac/monaco-languageclient';
|
|
2
|
-
import { CLANGD_CPP_FILE_URI, CLANGD_WORKSPACE_URI } from './config';
|
|
3
|
-
import ClangdWorker from './worker?worker';
|
|
4
|
-
import { WorkerAssetBridge } from '../playground/assetBridge';
|
|
5
|
-
import { resolveRuntimeAssetConfig } from '../playground/assets';
|
|
6
|
-
import { BrowserMessageReader, BrowserMessageWriter } from '../utils/vscodeJsonrpcBrowser';
|
|
7
|
-
let servicesInstalled = false;
|
|
8
|
-
export class ClangdSession {
|
|
9
|
-
Monaco;
|
|
10
|
-
baseUrl;
|
|
11
|
-
assetConfig;
|
|
12
|
-
assetBridge = null;
|
|
13
|
-
onStatus;
|
|
14
|
-
worker = null;
|
|
15
|
-
languageClient = null;
|
|
16
|
-
constructor(MonacoModule, baseUrl, onStatus) {
|
|
17
|
-
this.Monaco = MonacoModule;
|
|
18
|
-
this.onStatus = onStatus;
|
|
19
|
-
this.assetConfig = resolveRuntimeAssetConfig('clangd', { clangd: typeof baseUrl === 'string' ? { baseUrl } : baseUrl }, globalThis.location?.href || '');
|
|
20
|
-
this.baseUrl = this.assetConfig.baseUrl;
|
|
21
|
-
if (!servicesInstalled) {
|
|
22
|
-
MonacoServices.install(MonacoModule);
|
|
23
|
-
servicesInstalled = true;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
createModel(value) {
|
|
27
|
-
const uri = this.Monaco.Uri.parse(CLANGD_CPP_FILE_URI);
|
|
28
|
-
this.Monaco.editor.getModel(uri)?.dispose();
|
|
29
|
-
return this.Monaco.editor.createModel(value, 'cpp', uri);
|
|
30
|
-
}
|
|
31
|
-
async start() {
|
|
32
|
-
if (this.worker)
|
|
33
|
-
return;
|
|
34
|
-
this.onStatus?.({ state: 'loading' });
|
|
35
|
-
const worker = new ClangdWorker();
|
|
36
|
-
this.worker = worker;
|
|
37
|
-
this.assetBridge = new WorkerAssetBridge(worker, 'clangd', this.assetConfig, {
|
|
38
|
-
set: (value) => this.onStatus?.({ state: 'loading', loaded: value, total: 1 })
|
|
39
|
-
});
|
|
40
|
-
await new Promise((resolve, reject) => {
|
|
41
|
-
const cleanup = () => {
|
|
42
|
-
worker.removeEventListener('message', handleMessage);
|
|
43
|
-
worker.removeEventListener('error', handleError);
|
|
44
|
-
};
|
|
45
|
-
const handleMessage = (event) => {
|
|
46
|
-
if (this.assetBridge?.handleMessage(event))
|
|
47
|
-
return;
|
|
48
|
-
const { type, value, max, message } = event.data || {};
|
|
49
|
-
if (type === 'progress') {
|
|
50
|
-
this.onStatus?.({ state: 'loading', loaded: value, total: max });
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
if (type === 'ready') {
|
|
54
|
-
cleanup();
|
|
55
|
-
resolve();
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
if (type === 'error') {
|
|
59
|
-
cleanup();
|
|
60
|
-
reject(new Error(message || 'clangd failed to start'));
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
const handleError = (event) => {
|
|
64
|
-
cleanup();
|
|
65
|
-
reject(event.error || new Error(event.message || 'clangd worker failed'));
|
|
66
|
-
};
|
|
67
|
-
worker.addEventListener('message', handleMessage);
|
|
68
|
-
worker.addEventListener('error', handleError);
|
|
69
|
-
worker.postMessage({
|
|
70
|
-
type: 'init',
|
|
71
|
-
baseUrl: this.baseUrl,
|
|
72
|
-
assets: {
|
|
73
|
-
baseUrl: this.assetConfig.baseUrl,
|
|
74
|
-
useAssetBridge: this.assetConfig.useAssetBridge
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
const reader = new BrowserMessageReader(worker);
|
|
79
|
-
const writer = new BrowserMessageWriter(worker);
|
|
80
|
-
this.languageClient = new MonacoLanguageClient({
|
|
81
|
-
name: 'wasm-idle clangd',
|
|
82
|
-
clientOptions: {
|
|
83
|
-
documentSelector: ['cpp'],
|
|
84
|
-
errorHandler: {
|
|
85
|
-
error: () => ({ action: ErrorAction.Continue }),
|
|
86
|
-
closed: () => ({ action: CloseAction.DoNotRestart })
|
|
87
|
-
},
|
|
88
|
-
workspaceFolder: {
|
|
89
|
-
index: 0,
|
|
90
|
-
name: 'workspace',
|
|
91
|
-
uri: this.Monaco.Uri.parse(CLANGD_WORKSPACE_URI)
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
connectionProvider: {
|
|
95
|
-
get: async () => ({ reader, writer })
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
this.languageClient.start();
|
|
99
|
-
reader.onClose(() => {
|
|
100
|
-
this.languageClient?.stop();
|
|
101
|
-
this.onStatus?.({ state: 'disabled' });
|
|
102
|
-
});
|
|
103
|
-
this.onStatus?.({ state: 'ready' });
|
|
104
|
-
}
|
|
105
|
-
dispose() {
|
|
106
|
-
this.languageClient?.stop();
|
|
107
|
-
this.languageClient = null;
|
|
108
|
-
this.worker?.terminate();
|
|
109
|
-
this.worker = null;
|
|
110
|
-
this.assetBridge = null;
|
|
111
|
-
}
|
|
112
|
-
}
|