@bytecodealliance/jco 0.11.2 → 0.12.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/lib/wasi_snapshot_preview1.command.wasm +0 -0
- package/lib/wasi_snapshot_preview1.reactor.wasm +0 -0
- package/obj/{exports → interfaces}/local-wasm-tools-tools.d.ts +5 -5
- package/obj/{imports → interfaces}/wasi-cli-stderr.d.ts +1 -1
- package/obj/{exports → interfaces}/wasi-cli-stdin.d.ts +1 -1
- package/obj/{exports → interfaces}/wasi-cli-stdout.d.ts +1 -1
- package/obj/interfaces/wasi-cli-terminal-stderr.d.ts +5 -0
- package/obj/interfaces/wasi-cli-terminal-stdin.d.ts +5 -0
- package/obj/interfaces/wasi-cli-terminal-stdout.d.ts +5 -0
- package/obj/{exports → interfaces}/wasi-filesystem-preopens.d.ts +1 -1
- package/obj/{exports → interfaces}/wasi-filesystem-types.d.ts +3 -3
- package/obj/{exports → interfaces}/wasi-io-streams.d.ts +12 -2
- package/obj/js-component-bindgen-component.component.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 +17 -16
- package/obj/js-component-bindgen-component.js +263 -162
- package/obj/wasm-tools.component.wasm +0 -0
- package/obj/wasm-tools.core.wasm +0 -0
- package/obj/wasm-tools.core2.wasm +0 -0
- package/obj/wasm-tools.d.ts +16 -16
- package/obj/wasm-tools.js +208 -115
- package/package.json +3 -3
- package/src/cmd/transpile.js +3 -1
- package/src/cmd/wasm-tools.js +1 -1
- package/src/jco.js +2 -1
- package/obj/exports/wasi-cli-stderr.d.ts +0 -5
- package/obj/exports/wasi-cli-terminal-stderr.d.ts +0 -5
- package/obj/exports/wasi-cli-terminal-stdin.d.ts +0 -5
- package/obj/exports/wasi-cli-terminal-stdout.d.ts +0 -5
- package/obj/imports/wasi-cli-environment.d.ts +0 -3
- package/obj/imports/wasi-cli-exit.d.ts +0 -4
- package/obj/imports/wasi-cli-stdin.d.ts +0 -5
- package/obj/imports/wasi-cli-stdout.d.ts +0 -5
- package/obj/imports/wasi-cli-terminal-input.d.ts +0 -4
- package/obj/imports/wasi-cli-terminal-output.d.ts +0 -4
- package/obj/imports/wasi-cli-terminal-stderr.d.ts +0 -5
- package/obj/imports/wasi-cli-terminal-stdin.d.ts +0 -5
- package/obj/imports/wasi-cli-terminal-stdout.d.ts +0 -5
- package/obj/imports/wasi-clocks-wall-clock.d.ts +0 -6
- package/obj/imports/wasi-filesystem-preopens.d.ts +0 -5
- package/obj/imports/wasi-filesystem-types.d.ts +0 -153
- package/obj/imports/wasi-io-streams.d.ts +0 -18
- package/obj/imports/wasi-random-random.d.ts +0 -3
- /package/obj/{exports → interfaces}/wasi-cli-environment.d.ts +0 -0
- /package/obj/{exports → interfaces}/wasi-cli-exit.d.ts +0 -0
- /package/obj/{exports → interfaces}/wasi-cli-terminal-input.d.ts +0 -0
- /package/obj/{exports → interfaces}/wasi-cli-terminal-output.d.ts +0 -0
- /package/obj/{exports → interfaces}/wasi-clocks-wall-clock.d.ts +0 -0
- /package/obj/{exports → interfaces}/wasi-random-random.d.ts +0 -0
package/obj/wasm-tools.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { WasiCliEnvironment } from './
|
|
2
|
-
import { WasiCliExit } from './
|
|
3
|
-
import { WasiCliStderr } from './
|
|
4
|
-
import { WasiCliStdin } from './
|
|
5
|
-
import { WasiCliStdout } from './
|
|
6
|
-
import { WasiCliTerminalInput } from './
|
|
7
|
-
import { WasiCliTerminalOutput } from './
|
|
8
|
-
import { WasiCliTerminalStderr } from './
|
|
9
|
-
import { WasiCliTerminalStdin } from './
|
|
10
|
-
import { WasiCliTerminalStdout } from './
|
|
11
|
-
import { WasiClocksWallClock } from './
|
|
12
|
-
import { WasiFilesystemPreopens } from './
|
|
13
|
-
import { WasiFilesystemTypes } from './
|
|
14
|
-
import { WasiIoStreams } from './
|
|
15
|
-
import { WasiRandomRandom } from './
|
|
16
|
-
import { LocalWasmToolsTools } from './
|
|
1
|
+
import { WasiCliEnvironment } from './interfaces/wasi-cli-environment';
|
|
2
|
+
import { WasiCliExit } from './interfaces/wasi-cli-exit';
|
|
3
|
+
import { WasiCliStderr } from './interfaces/wasi-cli-stderr';
|
|
4
|
+
import { WasiCliStdin } from './interfaces/wasi-cli-stdin';
|
|
5
|
+
import { WasiCliStdout } from './interfaces/wasi-cli-stdout';
|
|
6
|
+
import { WasiCliTerminalInput } from './interfaces/wasi-cli-terminal-input';
|
|
7
|
+
import { WasiCliTerminalOutput } from './interfaces/wasi-cli-terminal-output';
|
|
8
|
+
import { WasiCliTerminalStderr } from './interfaces/wasi-cli-terminal-stderr';
|
|
9
|
+
import { WasiCliTerminalStdin } from './interfaces/wasi-cli-terminal-stdin';
|
|
10
|
+
import { WasiCliTerminalStdout } from './interfaces/wasi-cli-terminal-stdout';
|
|
11
|
+
import { WasiClocksWallClock } from './interfaces/wasi-clocks-wall-clock';
|
|
12
|
+
import { WasiFilesystemPreopens } from './interfaces/wasi-filesystem-preopens';
|
|
13
|
+
import { WasiFilesystemTypes } from './interfaces/wasi-filesystem-types';
|
|
14
|
+
import { WasiIoStreams } from './interfaces/wasi-io-streams';
|
|
15
|
+
import { WasiRandomRandom } from './interfaces/wasi-random-random';
|
|
16
|
+
import { LocalWasmToolsTools } from './interfaces/local-wasm-tools-tools';
|
|
17
17
|
export const tools: typeof LocalWasmToolsTools;
|
|
18
18
|
|
|
19
19
|
export const $init: Promise<void>;
|
package/obj/wasm-tools.js
CHANGED
|
@@ -22,8 +22,10 @@ const { appendViaStream,
|
|
|
22
22
|
readViaStream,
|
|
23
23
|
stat,
|
|
24
24
|
writeViaStream } = types;
|
|
25
|
-
const {
|
|
26
|
-
|
|
25
|
+
const { blockingFlush,
|
|
26
|
+
blockingRead,
|
|
27
|
+
blockingWriteAndFlush,
|
|
28
|
+
checkWrite,
|
|
27
29
|
dropInputStream,
|
|
28
30
|
dropOutputStream,
|
|
29
31
|
read,
|
|
@@ -1628,39 +1630,7 @@ function trampoline17(arg0, arg1) {
|
|
|
1628
1630
|
}
|
|
1629
1631
|
}
|
|
1630
1632
|
|
|
1631
|
-
function trampoline18(arg0, arg1) {
|
|
1632
|
-
const ret = getRandomBytes(BigInt.asUintN(64, arg0));
|
|
1633
|
-
const val0 = ret;
|
|
1634
|
-
const len0 = val0.byteLength;
|
|
1635
|
-
const ptr0 = realloc0(0, 0, 1, len0 * 1);
|
|
1636
|
-
const src0 = new Uint8Array(val0.buffer || val0, val0.byteOffset, len0 * 1);
|
|
1637
|
-
(new Uint8Array(memory0.buffer, ptr0, len0 * 1)).set(src0);
|
|
1638
|
-
dataView(memory0).setInt32(arg1 + 4, len0, true);
|
|
1639
|
-
dataView(memory0).setInt32(arg1 + 0, ptr0, true);
|
|
1640
|
-
}
|
|
1641
|
-
|
|
1642
|
-
function trampoline19(arg0) {
|
|
1643
|
-
const ret = getEnvironment();
|
|
1644
|
-
const vec3 = ret;
|
|
1645
|
-
const len3 = vec3.length;
|
|
1646
|
-
const result3 = realloc0(0, 0, 4, len3 * 16);
|
|
1647
|
-
for (let i = 0; i < vec3.length; i++) {
|
|
1648
|
-
const e = vec3[i];
|
|
1649
|
-
const base = result3 + i * 16;const [tuple0_0, tuple0_1] = e;
|
|
1650
|
-
const ptr1 = utf8Encode(tuple0_0, realloc0, memory0);
|
|
1651
|
-
const len1 = utf8EncodedLen;
|
|
1652
|
-
dataView(memory0).setInt32(base + 4, len1, true);
|
|
1653
|
-
dataView(memory0).setInt32(base + 0, ptr1, true);
|
|
1654
|
-
const ptr2 = utf8Encode(tuple0_1, realloc0, memory0);
|
|
1655
|
-
const len2 = utf8EncodedLen;
|
|
1656
|
-
dataView(memory0).setInt32(base + 12, len2, true);
|
|
1657
|
-
dataView(memory0).setInt32(base + 8, ptr2, true);
|
|
1658
|
-
}
|
|
1659
|
-
dataView(memory0).setInt32(arg0 + 4, len3, true);
|
|
1660
|
-
dataView(memory0).setInt32(arg0 + 0, result3, true);
|
|
1661
|
-
}
|
|
1662
|
-
|
|
1663
|
-
function trampoline20(arg0, arg1, arg2) {
|
|
1633
|
+
function trampoline18(arg0, arg1, arg2) {
|
|
1664
1634
|
let ret;
|
|
1665
1635
|
try {
|
|
1666
1636
|
ret = { tag: 'ok', val: read(arg0 >>> 0, BigInt.asUintN(64, arg1)) };
|
|
@@ -1713,7 +1683,7 @@ function trampoline20(arg0, arg1, arg2) {
|
|
|
1713
1683
|
}
|
|
1714
1684
|
}
|
|
1715
1685
|
|
|
1716
|
-
function
|
|
1686
|
+
function trampoline19(arg0, arg1, arg2) {
|
|
1717
1687
|
let ret;
|
|
1718
1688
|
try {
|
|
1719
1689
|
ret = { tag: 'ok', val: blockingRead(arg0 >>> 0, BigInt.asUintN(64, arg1)) };
|
|
@@ -1766,7 +1736,53 @@ function trampoline21(arg0, arg1, arg2) {
|
|
|
1766
1736
|
}
|
|
1767
1737
|
}
|
|
1768
1738
|
|
|
1769
|
-
function
|
|
1739
|
+
function trampoline20(arg0, arg1) {
|
|
1740
|
+
let ret;
|
|
1741
|
+
try {
|
|
1742
|
+
ret = { tag: 'ok', val: checkWrite(arg0 >>> 0) };
|
|
1743
|
+
} catch (e) {
|
|
1744
|
+
ret = { tag: 'err', val: getErrorPayload(e) };
|
|
1745
|
+
}
|
|
1746
|
+
const variant1 = ret;
|
|
1747
|
+
switch (variant1.tag) {
|
|
1748
|
+
case 'ok': {
|
|
1749
|
+
const e = variant1.val;
|
|
1750
|
+
dataView(memory0).setInt8(arg1 + 0, 0, true);
|
|
1751
|
+
dataView(memory0).setBigInt64(arg1 + 8, toUint64(e), true);
|
|
1752
|
+
break;
|
|
1753
|
+
}
|
|
1754
|
+
case 'err': {
|
|
1755
|
+
const e = variant1.val;
|
|
1756
|
+
dataView(memory0).setInt8(arg1 + 0, 1, true);
|
|
1757
|
+
const val0 = e;
|
|
1758
|
+
let enum0;
|
|
1759
|
+
switch (val0) {
|
|
1760
|
+
case 'last-operation-failed': {
|
|
1761
|
+
enum0 = 0;
|
|
1762
|
+
break;
|
|
1763
|
+
}
|
|
1764
|
+
case 'closed': {
|
|
1765
|
+
enum0 = 1;
|
|
1766
|
+
break;
|
|
1767
|
+
}
|
|
1768
|
+
default: {
|
|
1769
|
+
if ((e) instanceof Error) {
|
|
1770
|
+
console.error(e);
|
|
1771
|
+
}
|
|
1772
|
+
|
|
1773
|
+
throw new TypeError(`"${val0}" is not one of the cases of write-error`);
|
|
1774
|
+
}
|
|
1775
|
+
}
|
|
1776
|
+
dataView(memory0).setInt8(arg1 + 8, enum0, true);
|
|
1777
|
+
break;
|
|
1778
|
+
}
|
|
1779
|
+
default: {
|
|
1780
|
+
throw new TypeError('invalid variant specified for result');
|
|
1781
|
+
}
|
|
1782
|
+
}
|
|
1783
|
+
}
|
|
1784
|
+
|
|
1785
|
+
function trampoline21(arg0, arg1, arg2, arg3) {
|
|
1770
1786
|
const ptr0 = arg1;
|
|
1771
1787
|
const len0 = arg2;
|
|
1772
1788
|
const result0 = new Uint8Array(memory0.buffer.slice(ptr0, ptr0 + len0 * 1));
|
|
@@ -1776,38 +1792,36 @@ function trampoline22(arg0, arg1, arg2, arg3) {
|
|
|
1776
1792
|
} catch (e) {
|
|
1777
1793
|
ret = { tag: 'err', val: getErrorPayload(e) };
|
|
1778
1794
|
}
|
|
1779
|
-
const
|
|
1780
|
-
switch (
|
|
1795
|
+
const variant2 = ret;
|
|
1796
|
+
switch (variant2.tag) {
|
|
1781
1797
|
case 'ok': {
|
|
1782
|
-
const e =
|
|
1798
|
+
const e = variant2.val;
|
|
1783
1799
|
dataView(memory0).setInt8(arg3 + 0, 0, true);
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1800
|
+
break;
|
|
1801
|
+
}
|
|
1802
|
+
case 'err': {
|
|
1803
|
+
const e = variant2.val;
|
|
1804
|
+
dataView(memory0).setInt8(arg3 + 0, 1, true);
|
|
1805
|
+
const val1 = e;
|
|
1806
|
+
let enum1;
|
|
1807
|
+
switch (val1) {
|
|
1808
|
+
case 'last-operation-failed': {
|
|
1809
|
+
enum1 = 0;
|
|
1791
1810
|
break;
|
|
1792
1811
|
}
|
|
1793
|
-
case '
|
|
1794
|
-
|
|
1812
|
+
case 'closed': {
|
|
1813
|
+
enum1 = 1;
|
|
1795
1814
|
break;
|
|
1796
1815
|
}
|
|
1797
1816
|
default: {
|
|
1798
|
-
if ((
|
|
1799
|
-
console.error(
|
|
1817
|
+
if ((e) instanceof Error) {
|
|
1818
|
+
console.error(e);
|
|
1800
1819
|
}
|
|
1801
1820
|
|
|
1802
|
-
throw new TypeError(`"${
|
|
1821
|
+
throw new TypeError(`"${val1}" is not one of the cases of write-error`);
|
|
1803
1822
|
}
|
|
1804
1823
|
}
|
|
1805
|
-
dataView(memory0).setInt8(arg3 +
|
|
1806
|
-
break;
|
|
1807
|
-
}
|
|
1808
|
-
case 'err': {
|
|
1809
|
-
const e = variant3.val;
|
|
1810
|
-
dataView(memory0).setInt8(arg3 + 0, 1, true);
|
|
1824
|
+
dataView(memory0).setInt8(arg3 + 1, enum1, true);
|
|
1811
1825
|
break;
|
|
1812
1826
|
}
|
|
1813
1827
|
default: {
|
|
@@ -1816,48 +1830,91 @@ function trampoline22(arg0, arg1, arg2, arg3) {
|
|
|
1816
1830
|
}
|
|
1817
1831
|
}
|
|
1818
1832
|
|
|
1819
|
-
function
|
|
1833
|
+
function trampoline22(arg0, arg1, arg2, arg3) {
|
|
1820
1834
|
const ptr0 = arg1;
|
|
1821
1835
|
const len0 = arg2;
|
|
1822
1836
|
const result0 = new Uint8Array(memory0.buffer.slice(ptr0, ptr0 + len0 * 1));
|
|
1823
1837
|
let ret;
|
|
1824
1838
|
try {
|
|
1825
|
-
ret = { tag: 'ok', val:
|
|
1839
|
+
ret = { tag: 'ok', val: blockingWriteAndFlush(arg0 >>> 0, result0) };
|
|
1826
1840
|
} catch (e) {
|
|
1827
1841
|
ret = { tag: 'err', val: getErrorPayload(e) };
|
|
1828
1842
|
}
|
|
1829
|
-
const
|
|
1830
|
-
switch (
|
|
1843
|
+
const variant2 = ret;
|
|
1844
|
+
switch (variant2.tag) {
|
|
1831
1845
|
case 'ok': {
|
|
1832
|
-
const e =
|
|
1846
|
+
const e = variant2.val;
|
|
1833
1847
|
dataView(memory0).setInt8(arg3 + 0, 0, true);
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1848
|
+
break;
|
|
1849
|
+
}
|
|
1850
|
+
case 'err': {
|
|
1851
|
+
const e = variant2.val;
|
|
1852
|
+
dataView(memory0).setInt8(arg3 + 0, 1, true);
|
|
1853
|
+
const val1 = e;
|
|
1854
|
+
let enum1;
|
|
1855
|
+
switch (val1) {
|
|
1856
|
+
case 'last-operation-failed': {
|
|
1857
|
+
enum1 = 0;
|
|
1841
1858
|
break;
|
|
1842
1859
|
}
|
|
1843
|
-
case '
|
|
1844
|
-
|
|
1860
|
+
case 'closed': {
|
|
1861
|
+
enum1 = 1;
|
|
1845
1862
|
break;
|
|
1846
1863
|
}
|
|
1847
1864
|
default: {
|
|
1848
|
-
if ((
|
|
1849
|
-
console.error(
|
|
1865
|
+
if ((e) instanceof Error) {
|
|
1866
|
+
console.error(e);
|
|
1850
1867
|
}
|
|
1851
1868
|
|
|
1852
|
-
throw new TypeError(`"${
|
|
1869
|
+
throw new TypeError(`"${val1}" is not one of the cases of write-error`);
|
|
1853
1870
|
}
|
|
1854
1871
|
}
|
|
1855
|
-
dataView(memory0).setInt8(arg3 +
|
|
1872
|
+
dataView(memory0).setInt8(arg3 + 1, enum1, true);
|
|
1873
|
+
break;
|
|
1874
|
+
}
|
|
1875
|
+
default: {
|
|
1876
|
+
throw new TypeError('invalid variant specified for result');
|
|
1877
|
+
}
|
|
1878
|
+
}
|
|
1879
|
+
}
|
|
1880
|
+
|
|
1881
|
+
function trampoline23(arg0, arg1) {
|
|
1882
|
+
let ret;
|
|
1883
|
+
try {
|
|
1884
|
+
ret = { tag: 'ok', val: blockingFlush(arg0 >>> 0) };
|
|
1885
|
+
} catch (e) {
|
|
1886
|
+
ret = { tag: 'err', val: getErrorPayload(e) };
|
|
1887
|
+
}
|
|
1888
|
+
const variant1 = ret;
|
|
1889
|
+
switch (variant1.tag) {
|
|
1890
|
+
case 'ok': {
|
|
1891
|
+
const e = variant1.val;
|
|
1892
|
+
dataView(memory0).setInt8(arg1 + 0, 0, true);
|
|
1856
1893
|
break;
|
|
1857
1894
|
}
|
|
1858
1895
|
case 'err': {
|
|
1859
|
-
const e =
|
|
1860
|
-
dataView(memory0).setInt8(
|
|
1896
|
+
const e = variant1.val;
|
|
1897
|
+
dataView(memory0).setInt8(arg1 + 0, 1, true);
|
|
1898
|
+
const val0 = e;
|
|
1899
|
+
let enum0;
|
|
1900
|
+
switch (val0) {
|
|
1901
|
+
case 'last-operation-failed': {
|
|
1902
|
+
enum0 = 0;
|
|
1903
|
+
break;
|
|
1904
|
+
}
|
|
1905
|
+
case 'closed': {
|
|
1906
|
+
enum0 = 1;
|
|
1907
|
+
break;
|
|
1908
|
+
}
|
|
1909
|
+
default: {
|
|
1910
|
+
if ((e) instanceof Error) {
|
|
1911
|
+
console.error(e);
|
|
1912
|
+
}
|
|
1913
|
+
|
|
1914
|
+
throw new TypeError(`"${val0}" is not one of the cases of write-error`);
|
|
1915
|
+
}
|
|
1916
|
+
}
|
|
1917
|
+
dataView(memory0).setInt8(arg1 + 1, enum0, true);
|
|
1861
1918
|
break;
|
|
1862
1919
|
}
|
|
1863
1920
|
default: {
|
|
@@ -1866,7 +1923,39 @@ function trampoline23(arg0, arg1, arg2, arg3) {
|
|
|
1866
1923
|
}
|
|
1867
1924
|
}
|
|
1868
1925
|
|
|
1869
|
-
function trampoline24(arg0) {
|
|
1926
|
+
function trampoline24(arg0, arg1) {
|
|
1927
|
+
const ret = getRandomBytes(BigInt.asUintN(64, arg0));
|
|
1928
|
+
const val0 = ret;
|
|
1929
|
+
const len0 = val0.byteLength;
|
|
1930
|
+
const ptr0 = realloc0(0, 0, 1, len0 * 1);
|
|
1931
|
+
const src0 = new Uint8Array(val0.buffer || val0, val0.byteOffset, len0 * 1);
|
|
1932
|
+
(new Uint8Array(memory0.buffer, ptr0, len0 * 1)).set(src0);
|
|
1933
|
+
dataView(memory0).setInt32(arg1 + 4, len0, true);
|
|
1934
|
+
dataView(memory0).setInt32(arg1 + 0, ptr0, true);
|
|
1935
|
+
}
|
|
1936
|
+
|
|
1937
|
+
function trampoline25(arg0) {
|
|
1938
|
+
const ret = getEnvironment();
|
|
1939
|
+
const vec3 = ret;
|
|
1940
|
+
const len3 = vec3.length;
|
|
1941
|
+
const result3 = realloc0(0, 0, 4, len3 * 16);
|
|
1942
|
+
for (let i = 0; i < vec3.length; i++) {
|
|
1943
|
+
const e = vec3[i];
|
|
1944
|
+
const base = result3 + i * 16;const [tuple0_0, tuple0_1] = e;
|
|
1945
|
+
const ptr1 = utf8Encode(tuple0_0, realloc0, memory0);
|
|
1946
|
+
const len1 = utf8EncodedLen;
|
|
1947
|
+
dataView(memory0).setInt32(base + 4, len1, true);
|
|
1948
|
+
dataView(memory0).setInt32(base + 0, ptr1, true);
|
|
1949
|
+
const ptr2 = utf8Encode(tuple0_1, realloc0, memory0);
|
|
1950
|
+
const len2 = utf8EncodedLen;
|
|
1951
|
+
dataView(memory0).setInt32(base + 12, len2, true);
|
|
1952
|
+
dataView(memory0).setInt32(base + 8, ptr2, true);
|
|
1953
|
+
}
|
|
1954
|
+
dataView(memory0).setInt32(arg0 + 4, len3, true);
|
|
1955
|
+
dataView(memory0).setInt32(arg0 + 0, result3, true);
|
|
1956
|
+
}
|
|
1957
|
+
|
|
1958
|
+
function trampoline26(arg0) {
|
|
1870
1959
|
const ret = getTerminalStdin();
|
|
1871
1960
|
const variant0 = ret;
|
|
1872
1961
|
if (variant0 === null || variant0=== undefined) {
|
|
@@ -1878,7 +1967,7 @@ function trampoline24(arg0) {
|
|
|
1878
1967
|
}
|
|
1879
1968
|
}
|
|
1880
1969
|
|
|
1881
|
-
function
|
|
1970
|
+
function trampoline27(arg0) {
|
|
1882
1971
|
const ret = getTerminalStdout();
|
|
1883
1972
|
const variant0 = ret;
|
|
1884
1973
|
if (variant0 === null || variant0=== undefined) {
|
|
@@ -1890,7 +1979,7 @@ function trampoline25(arg0) {
|
|
|
1890
1979
|
}
|
|
1891
1980
|
}
|
|
1892
1981
|
|
|
1893
|
-
function
|
|
1982
|
+
function trampoline28(arg0) {
|
|
1894
1983
|
const ret = getTerminalStderr();
|
|
1895
1984
|
const variant0 = ret;
|
|
1896
1985
|
if (variant0 === null || variant0=== undefined) {
|
|
@@ -2279,7 +2368,7 @@ function metadataShow(arg0) {
|
|
|
2279
2368
|
let variant2;
|
|
2280
2369
|
switch (dataView(memory0).getUint8(base + 0, true)) {
|
|
2281
2370
|
case 0: {
|
|
2282
|
-
variant2 =
|
|
2371
|
+
variant2 = undefined;
|
|
2283
2372
|
break;
|
|
2284
2373
|
}
|
|
2285
2374
|
case 1: {
|
|
@@ -2442,25 +2531,25 @@ let _initialized = false;
|
|
|
2442
2531
|
export const $init = (async() => {
|
|
2443
2532
|
const module0 = fetchCompile(new URL('./wasm-tools.core.wasm', import.meta.url));
|
|
2444
2533
|
const module1 = fetchCompile(new URL('./wasm-tools.core2.wasm', import.meta.url));
|
|
2445
|
-
const module2 = base64Compile('AGFzbQEAAAABUgxgAX8AYAN/fn8AYAJ/fwBgCH9/f39/f39/
|
|
2446
|
-
const module3 = base64Compile('AGFzbQEAAAABUgxgAX8AYAN/fn8AYAJ/fwBgCH9/f39/f39/
|
|
2534
|
+
const module2 = base64Compile('AGFzbQEAAAABUgxgAX8AYAN/fn8AYAJ/fwBgCH9/f39/f39/AGAEf39/fwBgAn5/AGACf38Bf2AEf39/fwF/YAl/f39/f35+f38Bf2ABfwF/YAN/f38Bf2ABfwADHx4AAQECAgIDAgEBAgQEAgUAAAAABgcHCAYGBgkGCgsEBQFwAR4eB5gBHwEwAAABMQABATIAAgEzAAMBNAAEATUABQE2AAYBNwAHATgACAE5AAkCMTAACgIxMQALAjEyAAwCMTMADQIxNAAOAjE1AA8CMTYAEAIxNwARAjE4ABICMTkAEwIyMAAUAjIxABUCMjIAFgIyMwAXAjI0ABgCMjUAGQIyNgAaAjI3ABsCMjgAHAIyOQAdCCRpbXBvcnRzAQAKjwMeCQAgAEEAEQAACw0AIAAgASACQQERAQALDQAgACABIAJBAhEBAAsLACAAIAFBAxECAAsLACAAIAFBBBECAAsLACAAIAFBBRECAAsXACAAIAEgAiADIAQgBSAGIAdBBhEDAAsLACAAIAFBBxECAAsNACAAIAEgAkEIEQEACw0AIAAgASACQQkRAQALCwAgACABQQoRAgALDwAgACABIAIgA0ELEQQACw8AIAAgASACIANBDBEEAAsLACAAIAFBDRECAAsLACAAIAFBDhEFAAsJACAAQQ8RAAALCQAgAEEQEQAACwkAIABBEREAAAsJACAAQRIRAAALCwAgACABQRMRBgALDwAgACABIAIgA0EUEQcACw8AIAAgASACIANBFREHAAsZACAAIAEgAiADIAQgBSAGIAcgCEEWEQgACwsAIAAgAUEXEQYACwsAIAAgAUEYEQYACwsAIAAgAUEZEQYACwkAIABBGhEJAAsLACAAIAFBGxEGAAsNACAAIAEgAkEcEQoACwkAIABBHRELAAsALglwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQENd2l0LWNvbXBvbmVudAYwLjE0LjIAxQoEbmFtZQATEndpdC1jb21wb25lbnQ6c2hpbQGoCh4AMWluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS9wcmVvcGVucy1nZXQtZGlyZWN0b3JpZXMBLmluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy1yZWFkLXZpYS1zdHJlYW0CL2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy13cml0ZS12aWEtc3RyZWFtAzBpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXMtYXBwZW5kLXZpYS1zdHJlYW0EJ2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy1nZXQtdHlwZQUjaW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzLXN0YXQGJmluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy1vcGVuLWF0ByxpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXMtbWV0YWRhdGEtaGFzaAgdaW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zLXJlYWQJJmluZGlyZWN0LXdhc2k6aW8vc3RyZWFtcy1ibG9ja2luZy1yZWFkCiRpbmRpcmVjdC13YXNpOmlvL3N0cmVhbXMtY2hlY2std3JpdGULHmluZGlyZWN0LXdhc2k6aW8vc3RyZWFtcy13cml0ZQwxaW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zLWJsb2NraW5nLXdyaXRlLWFuZC1mbHVzaA0naW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zLWJsb2NraW5nLWZsdXNoDixpbmRpcmVjdC13YXNpOnJhbmRvbS9yYW5kb20tZ2V0LXJhbmRvbS1ieXRlcw8taW5kaXJlY3Qtd2FzaTpjbGkvZW52aXJvbm1lbnQtZ2V0LWVudmlyb25tZW50EDNpbmRpcmVjdC13YXNpOmNsaS90ZXJtaW5hbC1zdGRpbi1nZXQtdGVybWluYWwtc3RkaW4RNWluZGlyZWN0LXdhc2k6Y2xpL3Rlcm1pbmFsLXN0ZG91dC1nZXQtdGVybWluYWwtc3Rkb3V0EjVpbmRpcmVjdC13YXNpOmNsaS90ZXJtaW5hbC1zdGRlcnItZ2V0LXRlcm1pbmFsLXN0ZGVychMsYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9maWxlc3RhdF9nZXQUJGFkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtZmRfcmVhZBUlYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF93cml0ZRYmYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1wYXRoX29wZW4XJ2FkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtcmFuZG9tX2dldBgoYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1lbnZpcm9uX2dldBkuYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1lbnZpcm9uX3NpemVzX2dldBolYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9jbG9zZRsrYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9wcmVzdGF0X2dldBwwYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9wcmVzdGF0X2Rpcl9uYW1lHSZhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLXByb2NfZXhpdA');
|
|
2535
|
+
const module3 = base64Compile('AGFzbQEAAAABUgxgAX8AYAN/fn8AYAJ/fwBgCH9/f39/f39/AGAEf39/fwBgAn5/AGACf38Bf2AEf39/fwF/YAl/f39/f35+f38Bf2ABfwF/YAN/f38Bf2ABfwACugEfAAEwAAAAATEAAQABMgABAAEzAAIAATQAAgABNQACAAE2AAMAATcAAgABOAABAAE5AAEAAjEwAAIAAjExAAQAAjEyAAQAAjEzAAIAAjE0AAUAAjE1AAAAAjE2AAAAAjE3AAAAAjE4AAAAAjE5AAYAAjIwAAcAAjIxAAcAAjIyAAgAAjIzAAYAAjI0AAYAAjI1AAYAAjI2AAkAAjI3AAYAAjI4AAoAAjI5AAsACCRpbXBvcnRzAXABHh4JJAEAQQALHgABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHQAuCXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AQ13aXQtY29tcG9uZW50BjAuMTQuMgAcBG5hbWUAFRR3aXQtY29tcG9uZW50OmZpeHVwcw');
|
|
2447
2536
|
const instanceFlags0 = new WebAssembly.Global({ value: "i32", mutable: true }, 3);
|
|
2448
2537
|
const instanceFlags1 = new WebAssembly.Global({ value: "i32", mutable: true }, 3);
|
|
2449
2538
|
Promise.all([module0, module1, module2, module3]).catch(() => {});
|
|
2450
2539
|
({ exports: exports0 } = await instantiateCore(await module2));
|
|
2451
2540
|
({ exports: exports1 } = await instantiateCore(await module0, {
|
|
2452
2541
|
wasi_snapshot_preview1: {
|
|
2453
|
-
environ_get: exports0['
|
|
2454
|
-
environ_sizes_get: exports0['
|
|
2455
|
-
fd_close: exports0['
|
|
2456
|
-
fd_filestat_get: exports0['
|
|
2457
|
-
fd_prestat_dir_name: exports0['
|
|
2458
|
-
fd_prestat_get: exports0['
|
|
2459
|
-
fd_read: exports0['
|
|
2460
|
-
fd_write: exports0['
|
|
2461
|
-
path_open: exports0['
|
|
2462
|
-
proc_exit: exports0['
|
|
2463
|
-
random_get: exports0['
|
|
2542
|
+
environ_get: exports0['24'],
|
|
2543
|
+
environ_sizes_get: exports0['25'],
|
|
2544
|
+
fd_close: exports0['26'],
|
|
2545
|
+
fd_filestat_get: exports0['19'],
|
|
2546
|
+
fd_prestat_dir_name: exports0['28'],
|
|
2547
|
+
fd_prestat_get: exports0['27'],
|
|
2548
|
+
fd_read: exports0['20'],
|
|
2549
|
+
fd_write: exports0['21'],
|
|
2550
|
+
path_open: exports0['22'],
|
|
2551
|
+
proc_exit: exports0['29'],
|
|
2552
|
+
random_get: exports0['23'],
|
|
2464
2553
|
},
|
|
2465
2554
|
}));
|
|
2466
2555
|
({ exports: exports2 } = await instantiateCore(await module1, {
|
|
@@ -2471,7 +2560,7 @@ export const $init = (async() => {
|
|
|
2471
2560
|
memory: exports1.memory,
|
|
2472
2561
|
},
|
|
2473
2562
|
'wasi:cli/environment': {
|
|
2474
|
-
'get-environment': exports0['
|
|
2563
|
+
'get-environment': exports0['15'],
|
|
2475
2564
|
},
|
|
2476
2565
|
'wasi:cli/exit': {
|
|
2477
2566
|
exit: trampoline9,
|
|
@@ -2492,13 +2581,13 @@ export const $init = (async() => {
|
|
|
2492
2581
|
'drop-terminal-output': trampoline7,
|
|
2493
2582
|
},
|
|
2494
2583
|
'wasi:cli/terminal-stderr': {
|
|
2495
|
-
'get-terminal-stderr': exports0['
|
|
2584
|
+
'get-terminal-stderr': exports0['18'],
|
|
2496
2585
|
},
|
|
2497
2586
|
'wasi:cli/terminal-stdin': {
|
|
2498
|
-
'get-terminal-stdin': exports0['
|
|
2587
|
+
'get-terminal-stdin': exports0['16'],
|
|
2499
2588
|
},
|
|
2500
2589
|
'wasi:cli/terminal-stdout': {
|
|
2501
|
-
'get-terminal-stdout': exports0['
|
|
2590
|
+
'get-terminal-stdout': exports0['17'],
|
|
2502
2591
|
},
|
|
2503
2592
|
'wasi:filesystem/preopens': {
|
|
2504
2593
|
'get-directories': exports0['0'],
|
|
@@ -2515,15 +2604,17 @@ export const $init = (async() => {
|
|
|
2515
2604
|
'write-via-stream': exports0['2'],
|
|
2516
2605
|
},
|
|
2517
2606
|
'wasi:io/streams': {
|
|
2518
|
-
'blocking-
|
|
2519
|
-
'blocking-
|
|
2607
|
+
'blocking-flush': exports0['13'],
|
|
2608
|
+
'blocking-read': exports0['9'],
|
|
2609
|
+
'blocking-write-and-flush': exports0['12'],
|
|
2610
|
+
'check-write': exports0['10'],
|
|
2520
2611
|
'drop-input-stream': trampoline1,
|
|
2521
2612
|
'drop-output-stream': trampoline2,
|
|
2522
|
-
read: exports0['
|
|
2523
|
-
write: exports0['
|
|
2613
|
+
read: exports0['8'],
|
|
2614
|
+
write: exports0['11'],
|
|
2524
2615
|
},
|
|
2525
2616
|
'wasi:random/random': {
|
|
2526
|
-
'get-random-bytes': exports0['
|
|
2617
|
+
'get-random-bytes': exports0['14'],
|
|
2527
2618
|
},
|
|
2528
2619
|
}));
|
|
2529
2620
|
memory0 = exports1.memory;
|
|
@@ -2540,18 +2631,20 @@ export const $init = (async() => {
|
|
|
2540
2631
|
'14': trampoline24,
|
|
2541
2632
|
'15': trampoline25,
|
|
2542
2633
|
'16': trampoline26,
|
|
2543
|
-
'17':
|
|
2544
|
-
'18':
|
|
2545
|
-
'19': exports2.
|
|
2634
|
+
'17': trampoline27,
|
|
2635
|
+
'18': trampoline28,
|
|
2636
|
+
'19': exports2.fd_filestat_get,
|
|
2546
2637
|
'2': trampoline12,
|
|
2547
|
-
'20': exports2.
|
|
2548
|
-
'21': exports2.
|
|
2549
|
-
'22': exports2.
|
|
2550
|
-
'23': exports2.
|
|
2551
|
-
'24': exports2.
|
|
2552
|
-
'25': exports2.
|
|
2553
|
-
'26': exports2.
|
|
2554
|
-
'27': exports2.
|
|
2638
|
+
'20': exports2.fd_read,
|
|
2639
|
+
'21': exports2.fd_write,
|
|
2640
|
+
'22': exports2.path_open,
|
|
2641
|
+
'23': exports2.random_get,
|
|
2642
|
+
'24': exports2.environ_get,
|
|
2643
|
+
'25': exports2.environ_sizes_get,
|
|
2644
|
+
'26': exports2.fd_close,
|
|
2645
|
+
'27': exports2.fd_prestat_get,
|
|
2646
|
+
'28': exports2.fd_prestat_dir_name,
|
|
2647
|
+
'29': exports2.proc_exit,
|
|
2555
2648
|
'3': trampoline13,
|
|
2556
2649
|
'4': trampoline14,
|
|
2557
2650
|
'5': trampoline15,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bytecodealliance/jco",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "JavaScript tooling for working with WebAssembly Components",
|
|
5
5
|
"author": "Guy Bedford",
|
|
6
6
|
"bin": {
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
},
|
|
19
19
|
"type": "module",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@bytecodealliance/preview2-shim": "0.0.
|
|
21
|
+
"@bytecodealliance/preview2-shim": "0.0.15",
|
|
22
22
|
"binaryen": "^111.0.0",
|
|
23
23
|
"chalk-template": "^0.4.0",
|
|
24
24
|
"commander": "^9.4.1",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"build": "cargo build --workspace --target wasm32-wasi --release && cargo run",
|
|
55
55
|
"build:types:preview2-shim": "PREVIEW2_SHIM_TYPES=* cargo build -p jco",
|
|
56
56
|
"lint": "eslint -c eslintrc.cjs lib/**/*.js packages/*/lib/**/*.js",
|
|
57
|
-
"test": "mocha -u tdd test/test.js --timeout 120000"
|
|
57
|
+
"test": "rm -rf $(pwd)/node_modules/@bytecodealliance/jco/lib && ln -s $(pwd)/lib $(pwd)/node_modules/@bytecodealliance/jco/ && mocha -u tdd test/test.js --timeout 120000"
|
|
58
58
|
},
|
|
59
59
|
"files": [
|
|
60
60
|
"lib",
|
package/src/cmd/transpile.js
CHANGED
|
@@ -67,6 +67,7 @@ async function wasm2Js (source) {
|
|
|
67
67
|
* instantiation?: bool,
|
|
68
68
|
* map?: Record<string, string>,
|
|
69
69
|
* validLiftingOptimization?: bool,
|
|
70
|
+
* tracing?: bool,
|
|
70
71
|
* noNodejsCompat?: bool,
|
|
71
72
|
* tlaCompat?: bool,
|
|
72
73
|
* base64Cutoff?: bool,
|
|
@@ -107,6 +108,7 @@ export async function transpileComponent (component, opts = {}) {
|
|
|
107
108
|
map: Object.entries(opts.map ?? {}),
|
|
108
109
|
instantiation: opts.instantiation || opts.js,
|
|
109
110
|
validLiftingOptimization: opts.validLiftingOptimization ?? false,
|
|
111
|
+
tracing: opts.tracing ?? false,
|
|
110
112
|
noNodejsCompat: !(opts.nodejsCompat ?? true),
|
|
111
113
|
noTypescript: opts.noTypescript || false,
|
|
112
114
|
tlaCompat: opts.tlaCompat ?? false,
|
|
@@ -369,4 +371,4 @@ function asmMangle (name) {
|
|
|
369
371
|
}
|
|
370
372
|
}
|
|
371
373
|
return name;
|
|
372
|
-
}
|
|
374
|
+
}
|
package/src/cmd/wasm-tools.js
CHANGED
|
@@ -37,7 +37,7 @@ export async function componentWit(file, opts) {
|
|
|
37
37
|
export async function componentNew(file, opts) {
|
|
38
38
|
await $init;
|
|
39
39
|
const source = file ? await readFile(file) : null;
|
|
40
|
-
let adapters =
|
|
40
|
+
let adapters = [];
|
|
41
41
|
if (opts.wasiReactor && opts.wasiCommand)
|
|
42
42
|
throw new Error('Must select one of --wasi-command or --wasi-reactor');
|
|
43
43
|
if (opts.wasiReactor)
|
package/src/jco.js
CHANGED
|
@@ -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('0.
|
|
14
|
+
.version('0.12.0');
|
|
15
15
|
|
|
16
16
|
function myParseInt(value) {
|
|
17
17
|
return parseInt(value, 10);
|
|
@@ -37,6 +37,7 @@ program.command('transpile')
|
|
|
37
37
|
.option('-O, --optimize', 'optimize the component first')
|
|
38
38
|
.option('--no-typescript', 'do not output TypeScript .d.ts types')
|
|
39
39
|
.option('--valid-lifting-optimization', 'optimize component binary validations assuming all lifted values are valid')
|
|
40
|
+
.option('--tracing', 'emit `tracing` calls on function entry/exit')
|
|
40
41
|
.option('-b, --base64-cutoff <bytes>', 'set the byte size under which core Wasm binaries will be inlined as base64', myParseInt)
|
|
41
42
|
.option('--tla-compat', 'enables compatibility for JS environments without top-level await support via an async $init promise export')
|
|
42
43
|
.option('--no-nodejs-compat', 'disables compatibility in Node.js without a fetch global')
|