@bytecodealliance/jco 1.8.1 → 1.9.1
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 +1 -0
- package/lib/wasi_snapshot_preview1.command.wasm +0 -0
- package/lib/wasi_snapshot_preview1.reactor.wasm +0 -0
- package/obj/js-component-bindgen-component.core.wasm +0 -0
- package/obj/js-component-bindgen-component.core2.wasm +0 -0
- package/obj/js-component-bindgen-component.d.ts +2 -0
- package/obj/js-component-bindgen-component.js +101 -85
- package/obj/wasm-tools.core.wasm +0 -0
- package/obj/wasm-tools.core2.wasm +0 -0
- package/obj/wasm-tools.js +17 -17
- package/package.json +3 -3
- package/src/cmd/componentize.js +1 -0
- package/src/cmd/transpile.js +7 -0
- package/src/common.d.ts +2 -2
- package/src/common.d.ts.map +1 -1
- package/src/jco.js +15 -2
package/README.md
CHANGED
|
@@ -60,6 +60,7 @@ Commands:
|
|
|
60
60
|
componentize [options] <js-source> Create a component from a JavaScript module
|
|
61
61
|
transpile [options] <component-path> Transpile a WebAssembly Component to JS + core Wasm for JavaScript execution
|
|
62
62
|
types [options] <wit-path> Generate types for the given WIT
|
|
63
|
+
guest-types [options] <wit-path> (experimental) Generate guest types for the given WIT
|
|
63
64
|
run [options] <command> [args...] Run a WASI Command component
|
|
64
65
|
serve [options] <server> [args...] Serve a WASI HTTP component
|
|
65
66
|
opt [options] <component-file> optimizes a Wasm component, including running wasm-opt Binaryen optimizations
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -33,6 +33,7 @@ export interface GenerateOptions {
|
|
|
33
33
|
validLiftingOptimization?: boolean,
|
|
34
34
|
tracing?: boolean,
|
|
35
35
|
noNamespacedExports?: boolean,
|
|
36
|
+
guest?: boolean,
|
|
36
37
|
multiMemory?: boolean,
|
|
37
38
|
}
|
|
38
39
|
export type Wit = WitSource | WitBinary | WitPath;
|
|
@@ -63,6 +64,7 @@ export interface TypeGenerationOptions {
|
|
|
63
64
|
instantiation?: InstantiationMode,
|
|
64
65
|
map?: Maps,
|
|
65
66
|
features?: EnabledFeatureSet,
|
|
67
|
+
guest?: boolean,
|
|
66
68
|
}
|
|
67
69
|
/**
|
|
68
70
|
* # Variants
|
|
@@ -3475,7 +3475,7 @@ function generate(arg0, arg1) {
|
|
|
3475
3475
|
(new Uint8Array(memory0.buffer, ptr1, len1 * 1)).set(src1);
|
|
3476
3476
|
dataView(memory0).setInt32(ptr0 + 4, len1, true);
|
|
3477
3477
|
dataView(memory0).setInt32(ptr0 + 0, ptr1, true);
|
|
3478
|
-
var {name: v2_0, noTypescript: v2_1, instantiation: v2_2, importBindings: v2_3, map: v2_4, compat: v2_5, noNodejsCompat: v2_6, base64Cutoff: v2_7, tlaCompat: v2_8, validLiftingOptimization: v2_9, tracing: v2_10, noNamespacedExports: v2_11,
|
|
3478
|
+
var {name: v2_0, noTypescript: v2_1, instantiation: v2_2, importBindings: v2_3, map: v2_4, compat: v2_5, noNodejsCompat: v2_6, base64Cutoff: v2_7, tlaCompat: v2_8, validLiftingOptimization: v2_9, tracing: v2_10, noNamespacedExports: v2_11, guest: v2_12, multiMemory: v2_13 } = arg1;
|
|
3479
3479
|
var ptr3 = utf8Encode(v2_0, realloc1, memory0);
|
|
3480
3480
|
var len3 = utf8EncodedLen;
|
|
3481
3481
|
dataView(memory0).setInt32(ptr0 + 12, len3, true);
|
|
@@ -3626,74 +3626,82 @@ function generate(arg0, arg1) {
|
|
|
3626
3626
|
dataView(memory0).setInt8(ptr0 + 56, 1, true);
|
|
3627
3627
|
dataView(memory0).setInt8(ptr0 + 57, e ? 1 : 0, true);
|
|
3628
3628
|
}
|
|
3629
|
+
var variant22 = v2_13;
|
|
3630
|
+
if (variant22 === null || variant22=== undefined) {
|
|
3631
|
+
dataView(memory0).setInt8(ptr0 + 58, 0, true);
|
|
3632
|
+
} else {
|
|
3633
|
+
const e = variant22;
|
|
3634
|
+
dataView(memory0).setInt8(ptr0 + 58, 1, true);
|
|
3635
|
+
dataView(memory0).setInt8(ptr0 + 59, e ? 1 : 0, true);
|
|
3636
|
+
}
|
|
3629
3637
|
const ret = exports1.generate(ptr0);
|
|
3630
|
-
let
|
|
3638
|
+
let variant32;
|
|
3631
3639
|
switch (dataView(memory0).getUint8(ret + 0, true)) {
|
|
3632
3640
|
case 0: {
|
|
3633
|
-
var
|
|
3634
|
-
var
|
|
3635
|
-
var
|
|
3636
|
-
for (let i = 0; i <
|
|
3637
|
-
const base =
|
|
3638
|
-
var
|
|
3639
|
-
var
|
|
3640
|
-
var
|
|
3641
|
-
var
|
|
3642
|
-
var
|
|
3643
|
-
var
|
|
3644
|
-
|
|
3641
|
+
var len25 = dataView(memory0).getInt32(ret + 8, true);
|
|
3642
|
+
var base25 = dataView(memory0).getInt32(ret + 4, true);
|
|
3643
|
+
var result25 = [];
|
|
3644
|
+
for (let i = 0; i < len25; i++) {
|
|
3645
|
+
const base = base25 + i * 16;
|
|
3646
|
+
var ptr23 = dataView(memory0).getInt32(base + 0, true);
|
|
3647
|
+
var len23 = dataView(memory0).getInt32(base + 4, true);
|
|
3648
|
+
var result23 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr23, len23));
|
|
3649
|
+
var ptr24 = dataView(memory0).getInt32(base + 8, true);
|
|
3650
|
+
var len24 = dataView(memory0).getInt32(base + 12, true);
|
|
3651
|
+
var result24 = new Uint8Array(memory0.buffer.slice(ptr24, ptr24 + len24 * 1));
|
|
3652
|
+
result25.push([result23, result24]);
|
|
3645
3653
|
}
|
|
3646
|
-
var
|
|
3647
|
-
var
|
|
3648
|
-
var
|
|
3649
|
-
for (let i = 0; i <
|
|
3650
|
-
const base =
|
|
3651
|
-
var
|
|
3652
|
-
var
|
|
3653
|
-
var
|
|
3654
|
-
|
|
3654
|
+
var len27 = dataView(memory0).getInt32(ret + 16, true);
|
|
3655
|
+
var base27 = dataView(memory0).getInt32(ret + 12, true);
|
|
3656
|
+
var result27 = [];
|
|
3657
|
+
for (let i = 0; i < len27; i++) {
|
|
3658
|
+
const base = base27 + i * 8;
|
|
3659
|
+
var ptr26 = dataView(memory0).getInt32(base + 0, true);
|
|
3660
|
+
var len26 = dataView(memory0).getInt32(base + 4, true);
|
|
3661
|
+
var result26 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr26, len26));
|
|
3662
|
+
result27.push(result26);
|
|
3655
3663
|
}
|
|
3656
|
-
var
|
|
3657
|
-
var
|
|
3658
|
-
var
|
|
3659
|
-
for (let i = 0; i <
|
|
3660
|
-
const base =
|
|
3661
|
-
var
|
|
3662
|
-
var
|
|
3663
|
-
var
|
|
3664
|
-
let
|
|
3664
|
+
var len30 = dataView(memory0).getInt32(ret + 24, true);
|
|
3665
|
+
var base30 = dataView(memory0).getInt32(ret + 20, true);
|
|
3666
|
+
var result30 = [];
|
|
3667
|
+
for (let i = 0; i < len30; i++) {
|
|
3668
|
+
const base = base30 + i * 12;
|
|
3669
|
+
var ptr28 = dataView(memory0).getInt32(base + 0, true);
|
|
3670
|
+
var len28 = dataView(memory0).getInt32(base + 4, true);
|
|
3671
|
+
var result28 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr28, len28));
|
|
3672
|
+
let enum29;
|
|
3665
3673
|
switch (dataView(memory0).getUint8(base + 8, true)) {
|
|
3666
3674
|
case 0: {
|
|
3667
|
-
|
|
3675
|
+
enum29 = 'function';
|
|
3668
3676
|
break;
|
|
3669
3677
|
}
|
|
3670
3678
|
case 1: {
|
|
3671
|
-
|
|
3679
|
+
enum29 = 'instance';
|
|
3672
3680
|
break;
|
|
3673
3681
|
}
|
|
3674
3682
|
default: {
|
|
3675
3683
|
throw new TypeError('invalid discriminant specified for ExportType');
|
|
3676
3684
|
}
|
|
3677
3685
|
}
|
|
3678
|
-
|
|
3686
|
+
result30.push([result28, enum29]);
|
|
3679
3687
|
}
|
|
3680
|
-
|
|
3688
|
+
variant32= {
|
|
3681
3689
|
tag: 'ok',
|
|
3682
3690
|
val: {
|
|
3683
|
-
files:
|
|
3684
|
-
imports:
|
|
3685
|
-
exports:
|
|
3691
|
+
files: result25,
|
|
3692
|
+
imports: result27,
|
|
3693
|
+
exports: result30,
|
|
3686
3694
|
}
|
|
3687
3695
|
};
|
|
3688
3696
|
break;
|
|
3689
3697
|
}
|
|
3690
3698
|
case 1: {
|
|
3691
|
-
var
|
|
3692
|
-
var
|
|
3693
|
-
var
|
|
3694
|
-
|
|
3699
|
+
var ptr31 = dataView(memory0).getInt32(ret + 4, true);
|
|
3700
|
+
var len31 = dataView(memory0).getInt32(ret + 8, true);
|
|
3701
|
+
var result31 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr31, len31));
|
|
3702
|
+
variant32= {
|
|
3695
3703
|
tag: 'err',
|
|
3696
|
-
val:
|
|
3704
|
+
val: result31
|
|
3697
3705
|
};
|
|
3698
3706
|
break;
|
|
3699
3707
|
}
|
|
@@ -3701,7 +3709,7 @@ function generate(arg0, arg1) {
|
|
|
3701
3709
|
throw new TypeError('invalid variant discriminant for expected');
|
|
3702
3710
|
}
|
|
3703
3711
|
}
|
|
3704
|
-
const retVal =
|
|
3712
|
+
const retVal = variant32;
|
|
3705
3713
|
postReturn0(ret);
|
|
3706
3714
|
if (typeof retVal === 'object' && retVal.tag === 'err') {
|
|
3707
3715
|
throw new ComponentError(retVal.val);
|
|
@@ -3711,12 +3719,12 @@ function generate(arg0, arg1) {
|
|
|
3711
3719
|
|
|
3712
3720
|
function generateTypes(arg0, arg1) {
|
|
3713
3721
|
if (!_initialized) throwUninitialized();
|
|
3714
|
-
var ptr0 = realloc1(0, 0, 4,
|
|
3722
|
+
var ptr0 = realloc1(0, 0, 4, 68);
|
|
3715
3723
|
var ptr1 = utf8Encode(arg0, realloc1, memory0);
|
|
3716
3724
|
var len1 = utf8EncodedLen;
|
|
3717
3725
|
dataView(memory0).setInt32(ptr0 + 4, len1, true);
|
|
3718
3726
|
dataView(memory0).setInt32(ptr0 + 0, ptr1, true);
|
|
3719
|
-
var {wit: v2_0, world: v2_1, tlaCompat: v2_2, instantiation: v2_3, map: v2_4, features: v2_5 } = arg1;
|
|
3727
|
+
var {wit: v2_0, world: v2_1, tlaCompat: v2_2, instantiation: v2_3, map: v2_4, features: v2_5, guest: v2_6 } = arg1;
|
|
3720
3728
|
var variant6 = v2_0;
|
|
3721
3729
|
switch (variant6.tag) {
|
|
3722
3730
|
case 'source': {
|
|
@@ -3851,36 +3859,44 @@ function generateTypes(arg0, arg1) {
|
|
|
3851
3859
|
}
|
|
3852
3860
|
}
|
|
3853
3861
|
}
|
|
3862
|
+
var variant21 = v2_6;
|
|
3863
|
+
if (variant21 === null || variant21=== undefined) {
|
|
3864
|
+
dataView(memory0).setInt8(ptr0 + 64, 0, true);
|
|
3865
|
+
} else {
|
|
3866
|
+
const e = variant21;
|
|
3867
|
+
dataView(memory0).setInt8(ptr0 + 64, 1, true);
|
|
3868
|
+
dataView(memory0).setInt8(ptr0 + 65, e ? 1 : 0, true);
|
|
3869
|
+
}
|
|
3854
3870
|
const ret = exports1['generate-types'](ptr0);
|
|
3855
|
-
let
|
|
3871
|
+
let variant26;
|
|
3856
3872
|
switch (dataView(memory0).getUint8(ret + 0, true)) {
|
|
3857
3873
|
case 0: {
|
|
3858
|
-
var
|
|
3859
|
-
var
|
|
3860
|
-
var
|
|
3861
|
-
for (let i = 0; i <
|
|
3862
|
-
const base =
|
|
3863
|
-
var
|
|
3864
|
-
var
|
|
3865
|
-
var
|
|
3866
|
-
var
|
|
3867
|
-
var
|
|
3868
|
-
var
|
|
3869
|
-
|
|
3874
|
+
var len24 = dataView(memory0).getInt32(ret + 8, true);
|
|
3875
|
+
var base24 = dataView(memory0).getInt32(ret + 4, true);
|
|
3876
|
+
var result24 = [];
|
|
3877
|
+
for (let i = 0; i < len24; i++) {
|
|
3878
|
+
const base = base24 + i * 16;
|
|
3879
|
+
var ptr22 = dataView(memory0).getInt32(base + 0, true);
|
|
3880
|
+
var len22 = dataView(memory0).getInt32(base + 4, true);
|
|
3881
|
+
var result22 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr22, len22));
|
|
3882
|
+
var ptr23 = dataView(memory0).getInt32(base + 8, true);
|
|
3883
|
+
var len23 = dataView(memory0).getInt32(base + 12, true);
|
|
3884
|
+
var result23 = new Uint8Array(memory0.buffer.slice(ptr23, ptr23 + len23 * 1));
|
|
3885
|
+
result24.push([result22, result23]);
|
|
3870
3886
|
}
|
|
3871
|
-
|
|
3887
|
+
variant26= {
|
|
3872
3888
|
tag: 'ok',
|
|
3873
|
-
val:
|
|
3889
|
+
val: result24
|
|
3874
3890
|
};
|
|
3875
3891
|
break;
|
|
3876
3892
|
}
|
|
3877
3893
|
case 1: {
|
|
3878
|
-
var
|
|
3879
|
-
var
|
|
3880
|
-
var
|
|
3881
|
-
|
|
3894
|
+
var ptr25 = dataView(memory0).getInt32(ret + 4, true);
|
|
3895
|
+
var len25 = dataView(memory0).getInt32(ret + 8, true);
|
|
3896
|
+
var result25 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr25, len25));
|
|
3897
|
+
variant26= {
|
|
3882
3898
|
tag: 'err',
|
|
3883
|
-
val:
|
|
3899
|
+
val: result25
|
|
3884
3900
|
};
|
|
3885
3901
|
break;
|
|
3886
3902
|
}
|
|
@@ -3888,7 +3904,7 @@ function generateTypes(arg0, arg1) {
|
|
|
3888
3904
|
throw new TypeError('invalid variant discriminant for expected');
|
|
3889
3905
|
}
|
|
3890
3906
|
}
|
|
3891
|
-
const retVal =
|
|
3907
|
+
const retVal = variant26;
|
|
3892
3908
|
postReturn1(ret);
|
|
3893
3909
|
if (typeof retVal === 'object' && retVal.tag === 'err') {
|
|
3894
3910
|
throw new ComponentError(retVal.val);
|
|
@@ -3992,8 +4008,8 @@ export const $init = (() => {
|
|
|
3992
4008
|
let gen = (function* init () {
|
|
3993
4009
|
const module0 = fetchCompile(new URL('./js-component-bindgen-component.core.wasm', import.meta.url));
|
|
3994
4010
|
const module1 = fetchCompile(new URL('./js-component-bindgen-component.core2.wasm', import.meta.url));
|
|
3995
|
-
const module2 = base64Compile('AGFzbQEAAAABZw5gAn9/AGABfwBgAn9/AX9gA39+fwBgBH9/f38Bf2AFf39/f38AYAR/f39/AGAJf39/f39+fn9/AX9gBX9/f35/AX9gBX9/f39/AX9gAX8Bf2ADf39/AX9gB39/f39/f38AYAJ+fwADJiUEBwgJAgIEAgIKAgsBAQAAAAAABQMDAAUMAAMDAAYGAA0BAQEBBAUBcAElJQe7ASYBMAAAATEAAQEyAAIBMwADATQABAE1AAUBNgAGATcABwE4AAgBOQAJAjEwAAoCMTEACwIxMgAMAjEzAA0CMTQADgIxNQAPAjE2ABACMTcAEQIxOAASAjE5ABMCMjAAFAIyMQAVAjIyABYCMjMAFwIyNAAYAjI1ABkCMjYAGgIyNwAbAjI4ABwCMjkAHQIzMAAeAjMxAB8CMzIAIAIzMwAhAjM0ACICMzUAIwIzNgAkCCRpbXBvcnRzAQAK+
|
|
3996
|
-
const module3 = base64Compile('AGFzbQEAAAABaw9gBH9/f38Bf2AJf39/f39+fn9/AX9gBX9/f35/AX9gBX9/f39/AX9gAn9/AX9gAX8Bf2ADf39/AX9gAX8AYAF/AGACf38AYAV/f39/fwBgA39+fwBgB39/f39/f38AYAR/f39/
|
|
4011
|
+
const module2 = base64Compile('AGFzbQEAAAABZw5gAn9/AGABfwBgAn9/AX9gA39+fwBgBH9/f38Bf2AFf39/f38AYAR/f39/AGAJf39/f39+fn9/AX9gBX9/f35/AX9gBX9/f39/AX9gAX8Bf2ADf39/AX9gB39/f39/f38AYAJ+fwADJiUEBwgJAgIEAgIKAgsBAQAAAAAABQMDAAUMAAMDAAYGAA0BAQEBBAUBcAElJQe7ASYBMAAAATEAAQEyAAIBMwADATQABAE1AAUBNgAGATcABwE4AAgBOQAJAjEwAAoCMTEACwIxMgAMAjEzAA0CMTQADgIxNQAPAjE2ABACMTcAEQIxOAASAjE5ABMCMjAAFAIyMQAVAjIyABYCMjMAFwIyNAAYAjI1ABkCMjYAGgIyNwAbAjI4ABwCMjkAHQIzMAAeAjMxAB8CMzIAIAIzMwAhAjM0ACICMzUAIwIzNgAkCCRpbXBvcnRzAQAK+QMlDwAgACABIAIgA0EAEQQACxkAIAAgASACIAMgBCAFIAYgByAIQQERBwALEQAgACABIAIgAyAEQQIRCAALEQAgACABIAIgAyAEQQMRCQALCwAgACABQQQRAgALCwAgACABQQURAgALDwAgACABIAIgA0EGEQQACwsAIAAgAUEHEQIACwsAIAAgAUEIEQIACwkAIABBCREKAAsLACAAIAFBChECAAsNACAAIAEgAkELEQsACwkAIABBDBEBAAsJACAAQQ0RAQALCwAgACABQQ4RAAALCwAgACABQQ8RAAALCwAgACABQRARAAALCwAgACABQRERAAALCwAgACABQRIRAAALEQAgACABIAIgAyAEQRMRBQALDQAgACABIAJBFBEDAAsNACAAIAEgAkEVEQMACwsAIAAgAUEWEQAACxEAIAAgASACIAMgBEEXEQUACxUAIAAgASACIAMgBCAFIAZBGBEMAAsLACAAIAFBGREAAAsNACAAIAEgAkEaEQMACw0AIAAgASACQRsRAwALCwAgACABQRwRAAALDwAgACABIAIgA0EdEQYACw8AIAAgASACIANBHhEGAAsLACAAIAFBHxEAAAsLACAAIAFBIBENAAsJACAAQSERAQALCQAgAEEiEQEACwkAIABBIxEBAAsJACAAQSQRAQALAC8JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQHMC4yMjAuMA');
|
|
4012
|
+
const module3 = base64Compile('AGFzbQEAAAABaw9gBH9/f38Bf2AJf39/f39+fn9/AX9gBX9/f35/AX9gBX9/f39/AX9gAn9/AX9gAX8Bf2ADf39/AX9gAX8AYAF/AGACf38AYAV/f39/fwBgA39+fwBgB39/f39/f38AYAR/f39/AGACfn8AAuQBJgABMAAAAAExAAEAATIAAgABMwADAAE0AAQAATUABAABNgAAAAE3AAQAATgABAABOQAFAAIxMAAEAAIxMQAGAAIxMgAHAAIxMwAIAAIxNAAJAAIxNQAJAAIxNgAJAAIxNwAJAAIxOAAJAAIxOQAKAAIyMAALAAIyMQALAAIyMgAJAAIyMwAKAAIyNAAMAAIyNQAJAAIyNgALAAIyNwALAAIyOAAJAAIyOQANAAIzMAANAAIzMQAJAAIzMgAOAAIzMwAIAAIzNAAIAAIzNQAIAAIzNgAIAAgkaW1wb3J0cwFwASUlCSsBAEEACyUAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkAC8JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQHMC4yMjAuMAAcBG5hbWUAFRR3aXQtY29tcG9uZW50OmZpeHVwcw');
|
|
3997
4013
|
({ exports: exports0 } = yield instantiateCore(yield module2));
|
|
3998
4014
|
({ exports: exports1 } = yield instantiateCore(yield module0, {
|
|
3999
4015
|
wasi_snapshot_preview1: {
|
|
@@ -4019,40 +4035,40 @@ export const $init = (() => {
|
|
|
4019
4035
|
env: {
|
|
4020
4036
|
memory: exports1.memory,
|
|
4021
4037
|
},
|
|
4022
|
-
'wasi:cli/environment@0.2.
|
|
4038
|
+
'wasi:cli/environment@0.2.3': {
|
|
4023
4039
|
'get-environment': exports0['13'],
|
|
4024
4040
|
},
|
|
4025
|
-
'wasi:cli/exit@0.2.
|
|
4041
|
+
'wasi:cli/exit@0.2.3': {
|
|
4026
4042
|
exit: trampoline10,
|
|
4027
4043
|
},
|
|
4028
|
-
'wasi:cli/stderr@0.2.
|
|
4044
|
+
'wasi:cli/stderr@0.2.3': {
|
|
4029
4045
|
'get-stderr': trampoline5,
|
|
4030
4046
|
},
|
|
4031
|
-
'wasi:cli/stdin@0.2.
|
|
4047
|
+
'wasi:cli/stdin@0.2.3': {
|
|
4032
4048
|
'get-stdin': trampoline8,
|
|
4033
4049
|
},
|
|
4034
|
-
'wasi:cli/stdout@0.2.
|
|
4050
|
+
'wasi:cli/stdout@0.2.3': {
|
|
4035
4051
|
'get-stdout': trampoline9,
|
|
4036
4052
|
},
|
|
4037
|
-
'wasi:cli/terminal-input@0.2.
|
|
4053
|
+
'wasi:cli/terminal-input@0.2.3': {
|
|
4038
4054
|
'[resource-drop]terminal-input': trampoline6,
|
|
4039
4055
|
},
|
|
4040
|
-
'wasi:cli/terminal-output@0.2.
|
|
4056
|
+
'wasi:cli/terminal-output@0.2.3': {
|
|
4041
4057
|
'[resource-drop]terminal-output': trampoline7,
|
|
4042
4058
|
},
|
|
4043
|
-
'wasi:cli/terminal-stderr@0.2.
|
|
4059
|
+
'wasi:cli/terminal-stderr@0.2.3': {
|
|
4044
4060
|
'get-terminal-stderr': exports0['36'],
|
|
4045
4061
|
},
|
|
4046
|
-
'wasi:cli/terminal-stdin@0.2.
|
|
4062
|
+
'wasi:cli/terminal-stdin@0.2.3': {
|
|
4047
4063
|
'get-terminal-stdin': exports0['34'],
|
|
4048
4064
|
},
|
|
4049
|
-
'wasi:cli/terminal-stdout@0.2.
|
|
4065
|
+
'wasi:cli/terminal-stdout@0.2.3': {
|
|
4050
4066
|
'get-terminal-stdout': exports0['35'],
|
|
4051
4067
|
},
|
|
4052
|
-
'wasi:filesystem/preopens@0.2.
|
|
4068
|
+
'wasi:filesystem/preopens@0.2.3': {
|
|
4053
4069
|
'get-directories': exports0['33'],
|
|
4054
4070
|
},
|
|
4055
|
-
'wasi:filesystem/types@0.2.
|
|
4071
|
+
'wasi:filesystem/types@0.2.3': {
|
|
4056
4072
|
'[method]descriptor.append-via-stream': exports0['16'],
|
|
4057
4073
|
'[method]descriptor.get-type': exports0['14'],
|
|
4058
4074
|
'[method]descriptor.metadata-hash': exports0['15'],
|
|
@@ -4068,10 +4084,10 @@ export const $init = (() => {
|
|
|
4068
4084
|
'[resource-drop]directory-entry-stream': trampoline0,
|
|
4069
4085
|
'filesystem-error-code': exports0['17'],
|
|
4070
4086
|
},
|
|
4071
|
-
'wasi:io/error@0.2.
|
|
4087
|
+
'wasi:io/error@0.2.3': {
|
|
4072
4088
|
'[resource-drop]error': trampoline2,
|
|
4073
4089
|
},
|
|
4074
|
-
'wasi:io/streams@0.2.
|
|
4090
|
+
'wasi:io/streams@0.2.3': {
|
|
4075
4091
|
'[method]input-stream.blocking-read': exports0['27'],
|
|
4076
4092
|
'[method]input-stream.read': exports0['26'],
|
|
4077
4093
|
'[method]output-stream.blocking-flush': exports0['31'],
|
|
@@ -4081,7 +4097,7 @@ export const $init = (() => {
|
|
|
4081
4097
|
'[resource-drop]input-stream': trampoline3,
|
|
4082
4098
|
'[resource-drop]output-stream': trampoline1,
|
|
4083
4099
|
},
|
|
4084
|
-
'wasi:random/random@0.2.
|
|
4100
|
+
'wasi:random/random@0.2.3': {
|
|
4085
4101
|
'get-random-bytes': exports0['32'],
|
|
4086
4102
|
},
|
|
4087
4103
|
}));
|
package/obj/wasm-tools.core.wasm
CHANGED
|
Binary file
|
|
Binary file
|
package/obj/wasm-tools.js
CHANGED
|
@@ -4134,8 +4134,8 @@ export const $init = (() => {
|
|
|
4134
4134
|
let gen = (function* init () {
|
|
4135
4135
|
const module0 = fetchCompile(new URL('./wasm-tools.core.wasm', import.meta.url));
|
|
4136
4136
|
const module1 = fetchCompile(new URL('./wasm-tools.core2.wasm', import.meta.url));
|
|
4137
|
-
const module2 = base64Compile('AGFzbQEAAAABZw5gAn9/AGABfwBgAn9/AX9gA39+fwBgBH9/f38Bf2AFf39/f38AYAR/f39/AGAJf39/f39+fn9/AX9gBX9/f35/AX9gBX9/f39/AX9gAX8Bf2ADf39/AX9gB39/f39/f38AYAJ+fwADJiUEBwgJAgIEAgIKAgsBAQAAAAAABQMDAAUMAAMDAAYGAA0BAQEBBAUBcAElJQe7ASYBMAAAATEAAQEyAAIBMwADATQABAE1AAUBNgAGATcABwE4AAgBOQAJAjEwAAoCMTEACwIxMgAMAjEzAA0CMTQADgIxNQAPAjE2ABACMTcAEQIxOAASAjE5ABMCMjAAFAIyMQAVAjIyABYCMjMAFwIyNAAYAjI1ABkCMjYAGgIyNwAbAjI4ABwCMjkAHQIzMAAeAjMxAB8CMzIAIAIzMwAhAjM0ACICMzUAIwIzNgAkCCRpbXBvcnRzAQAK+
|
|
4138
|
-
const module3 = base64Compile('AGFzbQEAAAABZw5gAn9/AGABfwBgAn9/AX9gA39+fwBgBH9/f38Bf2AFf39/f38AYAR/f39/AGAJf39/f39+fn9/AX9gBX9/f35/AX9gBX9/f39/AX9gAX8Bf2ADf39/AX9gB39/f39/f38AYAJ+
|
|
4137
|
+
const module2 = base64Compile('AGFzbQEAAAABZw5gAn9/AGABfwBgAn9/AX9gA39+fwBgBH9/f38Bf2AFf39/f38AYAR/f39/AGAJf39/f39+fn9/AX9gBX9/f35/AX9gBX9/f39/AX9gAX8Bf2ADf39/AX9gB39/f39/f38AYAJ+fwADJiUEBwgJAgIEAgIKAgsBAQAAAAAABQMDAAUMAAMDAAYGAA0BAQEBBAUBcAElJQe7ASYBMAAAATEAAQEyAAIBMwADATQABAE1AAUBNgAGATcABwE4AAgBOQAJAjEwAAoCMTEACwIxMgAMAjEzAA0CMTQADgIxNQAPAjE2ABACMTcAEQIxOAASAjE5ABMCMjAAFAIyMQAVAjIyABYCMjMAFwIyNAAYAjI1ABkCMjYAGgIyNwAbAjI4ABwCMjkAHQIzMAAeAjMxAB8CMzIAIAIzMwAhAjM0ACICMzUAIwIzNgAkCCRpbXBvcnRzAQAK+QMlDwAgACABIAIgA0EAEQQACxkAIAAgASACIAMgBCAFIAYgByAIQQERBwALEQAgACABIAIgAyAEQQIRCAALEQAgACABIAIgAyAEQQMRCQALCwAgACABQQQRAgALCwAgACABQQURAgALDwAgACABIAIgA0EGEQQACwsAIAAgAUEHEQIACwsAIAAgAUEIEQIACwkAIABBCREKAAsLACAAIAFBChECAAsNACAAIAEgAkELEQsACwkAIABBDBEBAAsJACAAQQ0RAQALCwAgACABQQ4RAAALCwAgACABQQ8RAAALCwAgACABQRARAAALCwAgACABQRERAAALCwAgACABQRIRAAALEQAgACABIAIgAyAEQRMRBQALDQAgACABIAJBFBEDAAsNACAAIAEgAkEVEQMACwsAIAAgAUEWEQAACxEAIAAgASACIAMgBEEXEQUACxUAIAAgASACIAMgBCAFIAZBGBEMAAsLACAAIAFBGREAAAsNACAAIAEgAkEaEQMACw0AIAAgASACQRsRAwALCwAgACABQRwRAAALDwAgACABIAIgA0EdEQYACw8AIAAgASACIANBHhEGAAsLACAAIAFBHxEAAAsLACAAIAFBIBENAAsJACAAQSERAQALCQAgAEEiEQEACwkAIABBIxEBAAsJACAAQSQRAQALAC8JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQHMC4yMjAuMA');
|
|
4138
|
+
const module3 = base64Compile('AGFzbQEAAAABZw5gAn9/AGABfwBgAn9/AX9gA39+fwBgBH9/f38Bf2AFf39/f38AYAR/f39/AGAJf39/f39+fn9/AX9gBX9/f35/AX9gBX9/f39/AX9gAX8Bf2ADf39/AX9gB39/f39/f38AYAJ+fwAC5AEmAAEwAAQAATEABwABMgAIAAEzAAkAATQAAgABNQACAAE2AAQAATcAAgABOAACAAE5AAoAAjEwAAIAAjExAAsAAjEyAAEAAjEzAAEAAjE0AAAAAjE1AAAAAjE2AAAAAjE3AAAAAjE4AAAAAjE5AAUAAjIwAAMAAjIxAAMAAjIyAAAAAjIzAAUAAjI0AAwAAjI1AAAAAjI2AAMAAjI3AAMAAjI4AAAAAjI5AAYAAjMwAAYAAjMxAAAAAjMyAA0AAjMzAAEAAjM0AAEAAjM1AAEAAjM2AAEACCRpbXBvcnRzAXABJSUJKwEAQQALJQABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQALwlwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQENd2l0LWNvbXBvbmVudAcwLjIyMC4w');
|
|
4139
4139
|
({ exports: exports0 } = yield instantiateCore(yield module2));
|
|
4140
4140
|
({ exports: exports1 } = yield instantiateCore(yield module0, {
|
|
4141
4141
|
wasi_snapshot_preview1: {
|
|
@@ -4161,40 +4161,40 @@ export const $init = (() => {
|
|
|
4161
4161
|
env: {
|
|
4162
4162
|
memory: exports1.memory,
|
|
4163
4163
|
},
|
|
4164
|
-
'wasi:cli/environment@0.2.
|
|
4164
|
+
'wasi:cli/environment@0.2.3': {
|
|
4165
4165
|
'get-environment': exports0['13'],
|
|
4166
4166
|
},
|
|
4167
|
-
'wasi:cli/exit@0.2.
|
|
4167
|
+
'wasi:cli/exit@0.2.3': {
|
|
4168
4168
|
exit: trampoline10,
|
|
4169
4169
|
},
|
|
4170
|
-
'wasi:cli/stderr@0.2.
|
|
4170
|
+
'wasi:cli/stderr@0.2.3': {
|
|
4171
4171
|
'get-stderr': trampoline5,
|
|
4172
4172
|
},
|
|
4173
|
-
'wasi:cli/stdin@0.2.
|
|
4173
|
+
'wasi:cli/stdin@0.2.3': {
|
|
4174
4174
|
'get-stdin': trampoline8,
|
|
4175
4175
|
},
|
|
4176
|
-
'wasi:cli/stdout@0.2.
|
|
4176
|
+
'wasi:cli/stdout@0.2.3': {
|
|
4177
4177
|
'get-stdout': trampoline9,
|
|
4178
4178
|
},
|
|
4179
|
-
'wasi:cli/terminal-input@0.2.
|
|
4179
|
+
'wasi:cli/terminal-input@0.2.3': {
|
|
4180
4180
|
'[resource-drop]terminal-input': trampoline6,
|
|
4181
4181
|
},
|
|
4182
|
-
'wasi:cli/terminal-output@0.2.
|
|
4182
|
+
'wasi:cli/terminal-output@0.2.3': {
|
|
4183
4183
|
'[resource-drop]terminal-output': trampoline7,
|
|
4184
4184
|
},
|
|
4185
|
-
'wasi:cli/terminal-stderr@0.2.
|
|
4185
|
+
'wasi:cli/terminal-stderr@0.2.3': {
|
|
4186
4186
|
'get-terminal-stderr': exports0['36'],
|
|
4187
4187
|
},
|
|
4188
|
-
'wasi:cli/terminal-stdin@0.2.
|
|
4188
|
+
'wasi:cli/terminal-stdin@0.2.3': {
|
|
4189
4189
|
'get-terminal-stdin': exports0['34'],
|
|
4190
4190
|
},
|
|
4191
|
-
'wasi:cli/terminal-stdout@0.2.
|
|
4191
|
+
'wasi:cli/terminal-stdout@0.2.3': {
|
|
4192
4192
|
'get-terminal-stdout': exports0['35'],
|
|
4193
4193
|
},
|
|
4194
|
-
'wasi:filesystem/preopens@0.2.
|
|
4194
|
+
'wasi:filesystem/preopens@0.2.3': {
|
|
4195
4195
|
'get-directories': exports0['33'],
|
|
4196
4196
|
},
|
|
4197
|
-
'wasi:filesystem/types@0.2.
|
|
4197
|
+
'wasi:filesystem/types@0.2.3': {
|
|
4198
4198
|
'[method]descriptor.append-via-stream': exports0['16'],
|
|
4199
4199
|
'[method]descriptor.get-type': exports0['14'],
|
|
4200
4200
|
'[method]descriptor.metadata-hash': exports0['15'],
|
|
@@ -4210,10 +4210,10 @@ export const $init = (() => {
|
|
|
4210
4210
|
'[resource-drop]directory-entry-stream': trampoline0,
|
|
4211
4211
|
'filesystem-error-code': exports0['17'],
|
|
4212
4212
|
},
|
|
4213
|
-
'wasi:io/error@0.2.
|
|
4213
|
+
'wasi:io/error@0.2.3': {
|
|
4214
4214
|
'[resource-drop]error': trampoline2,
|
|
4215
4215
|
},
|
|
4216
|
-
'wasi:io/streams@0.2.
|
|
4216
|
+
'wasi:io/streams@0.2.3': {
|
|
4217
4217
|
'[method]input-stream.blocking-read': exports0['27'],
|
|
4218
4218
|
'[method]input-stream.read': exports0['26'],
|
|
4219
4219
|
'[method]output-stream.blocking-flush': exports0['31'],
|
|
@@ -4223,7 +4223,7 @@ export const $init = (() => {
|
|
|
4223
4223
|
'[resource-drop]input-stream': trampoline3,
|
|
4224
4224
|
'[resource-drop]output-stream': trampoline1,
|
|
4225
4225
|
},
|
|
4226
|
-
'wasi:random/random@0.2.
|
|
4226
|
+
'wasi:random/random@0.2.3': {
|
|
4227
4227
|
'get-random-bytes': exports0['32'],
|
|
4228
4228
|
},
|
|
4229
4229
|
}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bytecodealliance/jco",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.1",
|
|
4
4
|
"description": "JavaScript tooling for working with WebAssembly Components",
|
|
5
5
|
"author": "Guy Bedford",
|
|
6
6
|
"bin": {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"type": "module",
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@bytecodealliance/componentize-js": "^0.
|
|
27
|
+
"@bytecodealliance/componentize-js": "^0.15.0",
|
|
28
28
|
"@bytecodealliance/preview2-shim": "^0.17.1",
|
|
29
29
|
"binaryen": "^120.0.0",
|
|
30
30
|
"chalk-template": "^1",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"eslint": "^9.9.0",
|
|
41
41
|
"mime": "^4.0.4",
|
|
42
42
|
"mocha": "^10.7.0",
|
|
43
|
-
"puppeteer": "^
|
|
43
|
+
"puppeteer": "^24.0.1",
|
|
44
44
|
"typescript": "^5.5.4"
|
|
45
45
|
},
|
|
46
46
|
"repository": {
|
package/src/cmd/componentize.js
CHANGED
|
@@ -10,6 +10,7 @@ export async function componentize (jsSource, opts) {
|
|
|
10
10
|
const source = await readFile(jsSource, 'utf8');
|
|
11
11
|
const { component } = await componentizeFn(source, {
|
|
12
12
|
enableAot: opts.aot,
|
|
13
|
+
wevalBin: opts.wevalBin,
|
|
13
14
|
sourceName: basename(jsSource),
|
|
14
15
|
witPath: resolve(opts.wit),
|
|
15
16
|
worldName: opts.worldName,
|
package/src/cmd/transpile.js
CHANGED
|
@@ -19,6 +19,11 @@ export async function types (witPath, opts) {
|
|
|
19
19
|
await writeFiles(files, opts.quiet ? false : 'Generated Type Files');
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
export async function guestTypes (witPath, opts) {
|
|
23
|
+
const files = await typesComponent(witPath, { ...opts, guest: true });
|
|
24
|
+
await writeFiles(files, opts.quiet ? false : 'Generated Guest Typescript Definition Files (.d.ts)');
|
|
25
|
+
}
|
|
26
|
+
|
|
22
27
|
/**
|
|
23
28
|
* @param {string} witPath
|
|
24
29
|
* @param {{
|
|
@@ -28,6 +33,7 @@ export async function types (witPath, opts) {
|
|
|
28
33
|
* tlaCompat?: bool,
|
|
29
34
|
* outDir?: string,
|
|
30
35
|
* features?: string[] | 'all',
|
|
36
|
+
* guest?: bool,
|
|
31
37
|
* }} opts
|
|
32
38
|
* @returns {Promise<{ [filename: string]: Uint8Array }>}
|
|
33
39
|
*/
|
|
@@ -57,6 +63,7 @@ export async function typesComponent (witPath, opts) {
|
|
|
57
63
|
tlaCompat: opts.tlaCompat ?? false,
|
|
58
64
|
world: opts.worldName,
|
|
59
65
|
features,
|
|
66
|
+
guest: opts.guest ?? false,
|
|
60
67
|
}).map(([name, file]) => [`${outDir}${name}`, file]));
|
|
61
68
|
}
|
|
62
69
|
|
package/src/common.d.ts
CHANGED
|
@@ -9,8 +9,8 @@ export function table(data: any, align?: any[]): string;
|
|
|
9
9
|
* The new directory is created using `fsPromises.mkdtemp()`.
|
|
10
10
|
*/
|
|
11
11
|
export function getTmpDir(): Promise<string>;
|
|
12
|
-
export function spawnIOTmp(cmd: any, input: any, args: any): Promise<Buffer
|
|
12
|
+
export function spawnIOTmp(cmd: any, input: any, args: any): Promise<Buffer<ArrayBufferLike>>;
|
|
13
13
|
export const isWindows: boolean;
|
|
14
14
|
export { readFileCli as readFile };
|
|
15
|
-
declare function readFileCli(file: any, encoding: any): Promise<Buffer
|
|
15
|
+
declare function readFileCli(file: any, encoding: any): Promise<Buffer<ArrayBufferLike>>;
|
|
16
16
|
//# sourceMappingURL=common.d.ts.map
|
package/src/common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["common.js"],"names":[],"mappings":"AAWA,+CAEC;AACD,0CAIC;AAED,0CAOC;AAED,mEAaC;AAED,wDAcC;AAED;;;;GAIG;AACH,6CAEC;AAYD,
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["common.js"],"names":[],"mappings":"AAWA,+CAEC;AACD,0CAIC;AAED,0CAOC;AAED,mEAaC;AAED,wDAcC;AAED;;;;GAIG;AACH,6CAEC;AAYD,8FA8BC;AArGD,gCAA8C;;AA6D9C,yFAOC"}
|
package/src/jco.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { program, Option } from 'commander';
|
|
3
3
|
import { opt } from './cmd/opt.js';
|
|
4
|
-
import { transpile, types } from './cmd/transpile.js';
|
|
4
|
+
import { transpile, types, guestTypes } from './cmd/transpile.js';
|
|
5
5
|
import { run as runCmd, serve as serveCmd } from './cmd/run.js';
|
|
6
6
|
import { parse, print, componentNew, componentEmbed, metadataAdd, metadataShow, componentWit } from './cmd/wasm-tools.js';
|
|
7
7
|
import { componentize } from './cmd/componentize.js';
|
|
@@ -11,7 +11,7 @@ program
|
|
|
11
11
|
.name('jco')
|
|
12
12
|
.description(c`{bold jco - WebAssembly JS Component Tools}\n JS Component Transpilation Bindgen & Wasm Tools for JS`)
|
|
13
13
|
.usage('<command> [options]')
|
|
14
|
-
.version('1.
|
|
14
|
+
.version('1.9.1');
|
|
15
15
|
|
|
16
16
|
function myParseInt(value) {
|
|
17
17
|
return parseInt(value, 10);
|
|
@@ -34,6 +34,7 @@ program.command('componentize')
|
|
|
34
34
|
.requiredOption('-w, --wit <path>', 'WIT path to build with')
|
|
35
35
|
.option('-n, --world-name <name>', 'WIT world to build')
|
|
36
36
|
.option('--aot', 'Enable Weval AOT compilation of JS')
|
|
37
|
+
.option('--weval-bin <path>', 'Specify a custom weval binary to use')
|
|
37
38
|
.addOption(new Option('-d, --disable <feature...>', 'disable WASI features').choices(['clocks', 'http', 'random', 'stdio', 'all']))
|
|
38
39
|
// .addOption(new Option('-e, --enable <feature...>', 'enable WASI features').choices(['http']))
|
|
39
40
|
.option('--preview2-adapter <adapter>', 'provide a custom preview2 adapter path')
|
|
@@ -80,6 +81,18 @@ program.command('types')
|
|
|
80
81
|
.option('--all-features', 'enable all features')
|
|
81
82
|
.action(asyncAction(types));
|
|
82
83
|
|
|
84
|
+
program.command('guest-types')
|
|
85
|
+
.description('(experimental) Generate guest types for the given WIT')
|
|
86
|
+
.usage('<wit-path> -o <out-dir>')
|
|
87
|
+
.argument('<wit-path>', 'path to a WIT file or directory')
|
|
88
|
+
.option('--name <name>', 'custom output name')
|
|
89
|
+
.option('-n, --world-name <world>', 'WIT world to generate types for')
|
|
90
|
+
.requiredOption('-o, --out-dir <out-dir>', 'output directory')
|
|
91
|
+
.option('-q, --quiet', 'disable output summary')
|
|
92
|
+
.option('--feature <feature>', 'enable one specific WIT feature (repeatable)', collectOptions, [])
|
|
93
|
+
.option('--all-features', 'enable all features')
|
|
94
|
+
.action(asyncAction(guestTypes));
|
|
95
|
+
|
|
83
96
|
program.command('run')
|
|
84
97
|
.description('Run a WASI Command component')
|
|
85
98
|
.usage('<command.wasm> <args...>')
|