@bytecodealliance/jco 1.32.0 → 1.33.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 +12 -1
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -1
- package/dist/bundle.js +7 -0
- package/dist/bundle.js.map +1 -1
- package/dist/cmd/componentize.d.ts +24 -0
- package/dist/cmd/componentize.d.ts.map +1 -1
- package/dist/cmd/componentize.js +82 -8
- package/dist/cmd/componentize.js.map +1 -1
- package/dist/cmd/opt.d.ts.map +1 -1
- package/dist/cmd/opt.js +102 -130
- package/dist/cmd/opt.js.map +1 -1
- package/dist/cmd/run.d.ts.map +1 -1
- package/dist/cmd/run.js +58 -1
- package/dist/cmd/run.js.map +1 -1
- package/dist/cmd/transpile.d.ts +5 -1
- package/dist/cmd/transpile.d.ts.map +1 -1
- package/dist/cmd/transpile.js +98 -4
- package/dist/cmd/transpile.js.map +1 -1
- package/dist/common.d.ts +0 -2
- package/dist/common.d.ts.map +1 -1
- package/dist/common.js +0 -9
- package/dist/common.js.map +1 -1
- package/dist/jco.js +8 -1
- package/dist/jco.js.map +1 -1
- package/dist/node-builtins.d.ts +127 -0
- package/dist/node-builtins.d.ts.map +1 -0
- package/dist/node-builtins.js +1085 -0
- package/dist/node-builtins.js.map +1 -0
- package/dist/node-wit.d.ts +67 -0
- package/dist/node-wit.d.ts.map +1 -0
- package/dist/node-wit.js +338 -0
- package/dist/node-wit.js.map +1 -0
- package/lib/wasi_snapshot_preview1.command.wasm +0 -0
- package/lib/wasi_snapshot_preview1.reactor.wasm +0 -0
- package/lib/wit/builtin/0.2.10/wasi-clocks/package.wit +35 -0
- package/lib/wit/builtin/0.2.10/wasi-io/package.wit +47 -0
- package/lib/wit/builtin/0.2.10/wasi-sockets/package.wit +168 -0
- package/lib/wit/builtin/jco-node-0.1.0/child-process.wit +42 -0
- package/lib/wit/builtin/jco-node-0.1.0/cluster.wit +111 -0
- package/lib/wit/builtin/jco-node-0.1.0/console.wit +12 -0
- package/lib/wit/builtin/jco-node-0.1.0/dns.wit +145 -0
- package/lib/wit/builtin/jco-node-0.1.0/ffi.wit +116 -0
- package/lib/wit/builtin/jco-node-0.1.0/fs.wit +208 -0
- package/lib/wit/builtin/jco-node-0.1.0/http.wit +144 -0
- package/lib/wit/builtin/jco-node-0.1.0/http2.wit +191 -0
- package/lib/wit/builtin/jco-node-0.1.0/inspector.wit +142 -0
- package/lib/wit/builtin/jco-node-0.1.0/os.wit +120 -0
- package/lib/wit/builtin/jco-node-0.1.0/types.wit +12 -0
- package/package.json +6 -12
- package/dist/ora-shim.d.ts +0 -9
- package/dist/ora-shim.d.ts.map +0 -1
- package/dist/ora-shim.js +0 -10
- package/dist/ora-shim.js.map +0 -1
package/README.md
CHANGED
|
@@ -25,7 +25,7 @@ Jco provides a fully native JS toolchain for working with [WebAssembly Component
|
|
|
25
25
|
Features include:
|
|
26
26
|
|
|
27
27
|
- "Transpiling" Wasm Component binaries into ES modules that can run in any JS environment.
|
|
28
|
-
- WASI Preview2 support in Node.js & browsers
|
|
28
|
+
- WASI Preview2 support in Node.js & browsers.
|
|
29
29
|
- Component builds of [Wasm Tools](https://github.com/bytecodealliance/wasm-tools) helpers, available for use as a library or CLI commands for use in native JS environments, as well as optimization helper for Components via Binaryen.
|
|
30
30
|
- Run and serve commands like Wasmtime, as JS implementations of the Command and HTTP Proxy worlds.
|
|
31
31
|
- "Componentize" command to easily create components written in JavaScript (wrapper of [ComponentizeJS](https://github.com/bytecodealliance/ComponentizeJS)).
|
|
@@ -227,6 +227,17 @@ jco componentize app.ts --wit wit -n world-name -o component.wasm
|
|
|
227
227
|
The TypeScript transform erases types but does not perform semantic type checking. Run `tsc --noEmit`
|
|
228
228
|
separately when required.
|
|
229
229
|
|
|
230
|
+
#### Experimental Node.js built-in compatibility
|
|
231
|
+
|
|
232
|
+
> **Warning:** Node.js builtin compatibility in components is experimental. Its
|
|
233
|
+
> APIs and generated component requirements may change incompatibly before the
|
|
234
|
+
> feature is stabilized.
|
|
235
|
+
|
|
236
|
+
Bundled source can keep ordinary supported `node:` imports. See the Jco book's
|
|
237
|
+
[Node.js built-in compatibility guide](https://bytecodealliance.github.io/jco/interop/nodejs-builtins.html)
|
|
238
|
+
for the current API inventory, implementation choices, WIT requirements, host
|
|
239
|
+
adapter policy, limitations, and examples.
|
|
240
|
+
|
|
230
241
|
See [ComponentizeJS][cjs] and [componentize-qjs][cqjs] for backend-specific details.
|
|
231
242
|
|
|
232
243
|
[sm]: https://github.com/bytecodealliance/StarlingMonkey
|
package/dist/bundle.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { ExternalOption, RolldownOptions, RolldownPluginOption } from "roll
|
|
|
2
2
|
export interface BundleComponentSourceOptions {
|
|
3
3
|
aliases?: Record<string, string | false | string[]>;
|
|
4
4
|
external?: ExternalOption[];
|
|
5
|
+
inject?: Record<string, string | [string, string]>;
|
|
5
6
|
plugins?: RolldownPluginOption[];
|
|
6
7
|
config?: RolldownOptions;
|
|
7
8
|
typescript?: boolean;
|
|
@@ -32,6 +33,7 @@ export declare function loadBundleConfig(configPath: string): Promise<RolldownOp
|
|
|
32
33
|
* @param {{
|
|
33
34
|
* aliases?: Record<string, string | false | string[]>,
|
|
34
35
|
* external?: Array<string | RegExp>,
|
|
36
|
+
* inject?: Record<string, string | [string, string]>,
|
|
35
37
|
* plugins?: Array<import("rolldown").RolldownPluginOption>,
|
|
36
38
|
* config?: import("rolldown").RolldownOptions,
|
|
37
39
|
* typescript?: boolean,
|
package/dist/bundle.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEtF,MAAM,WAAW,4BAA4B;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC;IACpD,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAOD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,YAAY,GAAG,wBAAwB,CAQlH;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAanF;AAED
|
|
1
|
+
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEtF,MAAM,WAAW,4BAA4B;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC;IACpD,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAOD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,YAAY,GAAG,wBAAwB,CAQlH;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAanF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,qBAAqB,CACvC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,4BAAiC,GAC3C,OAAO,CAAC,MAAM,CAAC,CAiEjB"}
|
package/dist/bundle.js
CHANGED
|
@@ -50,6 +50,7 @@ export async function loadBundleConfig(configPath) {
|
|
|
50
50
|
* @param {{
|
|
51
51
|
* aliases?: Record<string, string | false | string[]>,
|
|
52
52
|
* external?: Array<string | RegExp>,
|
|
53
|
+
* inject?: Record<string, string | [string, string]>,
|
|
53
54
|
* plugins?: Array<import("rolldown").RolldownPluginOption>,
|
|
54
55
|
* config?: import("rolldown").RolldownOptions,
|
|
55
56
|
* typescript?: boolean,
|
|
@@ -83,6 +84,12 @@ export async function bundleComponentSource(entryPath, options = {}) {
|
|
|
83
84
|
...config.resolve,
|
|
84
85
|
alias: aliases,
|
|
85
86
|
},
|
|
87
|
+
transform: {
|
|
88
|
+
...config.transform,
|
|
89
|
+
// Jco supplies defaults, while an explicit bundle configuration
|
|
90
|
+
// remains able to replace any individual injected global.
|
|
91
|
+
inject: { ...options.inject, ...config.transform?.inject },
|
|
92
|
+
},
|
|
86
93
|
});
|
|
87
94
|
try {
|
|
88
95
|
const { output } = await build.generate({
|
package/dist/bundle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,24 @@
|
|
|
1
|
+
import { bundleComponentSource } from "../bundle.js";
|
|
2
|
+
import { type NodejsHttp2Via, type NodejsHttpVia, type WorldMetadata } from "../node-builtins.js";
|
|
3
|
+
import { type NodeGuestExport } from "../node-wit.js";
|
|
1
4
|
type ComponentizeJSBackend = "qjs" | "quickjs" | "starlingmonkey" | "sm";
|
|
2
5
|
export interface ComponentizeOptions {
|
|
3
6
|
wit: string;
|
|
4
7
|
out: string;
|
|
8
|
+
/**
|
|
9
|
+
* Directory componentization runs from.
|
|
10
|
+
*
|
|
11
|
+
* We default to the entry module's directory here rather than a simple
|
|
12
|
+
* cwd() so a build does not depend on where the command was invoked from.
|
|
13
|
+
*/
|
|
14
|
+
cwd?: string;
|
|
5
15
|
worldName?: string;
|
|
6
16
|
bundle?: boolean;
|
|
7
17
|
bundleConfig?: string;
|
|
18
|
+
nodejsHttpVia?: NodejsHttpVia;
|
|
19
|
+
nodejsHttp2Via?: NodejsHttp2Via;
|
|
20
|
+
withNodejsHttpVia?: NodejsHttpVia;
|
|
21
|
+
withNodejsHttp2Via?: NodejsHttp2Via;
|
|
8
22
|
backend?: ComponentizeJSBackend;
|
|
9
23
|
backendQjsDisableAysnc: boolean;
|
|
10
24
|
aot?: boolean;
|
|
@@ -23,6 +37,16 @@ export interface ComponentizeOptions {
|
|
|
23
37
|
debugBinaryPath?: string;
|
|
24
38
|
debugEnableWizerLogging?: boolean;
|
|
25
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Detect whether the WIT of a given component contains an older version of
|
|
42
|
+
* `wasi:http` which necessitates an older version of `componentize-js`
|
|
43
|
+
*
|
|
44
|
+
* @param {string} witPath
|
|
45
|
+
* @returns bool
|
|
46
|
+
*/
|
|
47
|
+
export declare function worldMetadataFor(witPath: string, worldName?: string): Promise<WorldMetadata>;
|
|
48
|
+
/** Re-bundle an entry wrapper that explicitly implements guest callback interface exports. */
|
|
49
|
+
export declare function bundleNodeGuestExportsWrapper(jsSource: string, guestExports: readonly NodeGuestExport[], bundleOptions: Parameters<typeof bundleComponentSource>[1]): Promise<string>;
|
|
26
50
|
/**
|
|
27
51
|
* Componentize a JavaScript or TypeScript entry module against a WIT world.
|
|
28
52
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"componentize.d.ts","sourceRoot":"","sources":["../../src/cmd/componentize.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"componentize.d.ts","sourceRoot":"","sources":["../../src/cmd/componentize.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAA6C,MAAM,cAAc,CAAC;AAEhG,OAAO,EAGH,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,aAAa,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGH,KAAK,eAAe,EAEvB,MAAM,gBAAgB,CAAC;AAQxB,KAAK,qBAAqB,GAAG,KAAK,GAAG,SAAS,GAAG,gBAAgB,GAAG,IAAI,CAAC;AAEzE,MAAM,WAAW,mBAAmB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iBAAiB,CAAC,EAAE,aAAa,CAAC;IAClC,kBAAkB,CAAC,EAAE,cAAc,CAAC;IACpC,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,sBAAsB,EAAE,OAAO,CAAC;IAChC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACrC;AAmCD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAGlG;AAED,8FAA8F;AAC9F,wBAAsB,6BAA6B,CAC/C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,SAAS,eAAe,EAAE,EACxC,aAAa,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAC3D,OAAO,CAAC,MAAM,CAAC,CAgBjB;AA6BD;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6G7F"}
|
package/dist/cmd/componentize.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { stat, readFile, writeFile } from "node:fs/promises";
|
|
2
|
-
import {
|
|
1
|
+
import { mkdtemp, rm, stat, readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import { tmpdir } from "node:os";
|
|
3
|
+
import { resolve, basename, dirname, extname, join } from "node:path";
|
|
3
4
|
import { componentWitMetadataForWorld } from "@bytecodealliance/jco-transpile";
|
|
4
5
|
import { bundleComponentSource, classifyComponentSource, loadBundleConfig } from "../bundle.js";
|
|
5
6
|
import { styleText, isWindows } from "../common.js";
|
|
7
|
+
import { nodeBuiltinPlugin, nodeGlobals, } from "../node-builtins.js";
|
|
8
|
+
import { injectNodeWitImports, witInjectionWarnings, } from "../node-wit.js";
|
|
6
9
|
/** All features that can be enabled/disabled */
|
|
7
10
|
const ALL_FEATURES = ["clocks", "http", "random", "stdio", "fetch-event"];
|
|
8
11
|
/** Features that should be used for --debug mode */
|
|
@@ -36,9 +39,29 @@ const STARLINGMONKEY_OPTIONS = [
|
|
|
36
39
|
* @param {string} witPath
|
|
37
40
|
* @returns bool
|
|
38
41
|
*/
|
|
42
|
+
export async function worldMetadataFor(witPath, worldName) {
|
|
43
|
+
const path = (isWindows ? "//?/" : "") + resolve(witPath);
|
|
44
|
+
return (await componentWitMetadataForWorld({ tag: "path", val: path }, worldName));
|
|
45
|
+
}
|
|
46
|
+
/** Re-bundle an entry wrapper that explicitly implements guest callback interface exports. */
|
|
47
|
+
export async function bundleNodeGuestExportsWrapper(jsSource, guestExports, bundleOptions) {
|
|
48
|
+
const wrapperDir = await mkdtemp(join(tmpdir(), "jco-node-exports-"));
|
|
49
|
+
const wrapperPath = join(wrapperDir, "wrapper.mjs");
|
|
50
|
+
const entry = resolve(jsSource);
|
|
51
|
+
const exports = [
|
|
52
|
+
`export * from ${JSON.stringify(entry)};`,
|
|
53
|
+
...guestExports.map(({ jsExport, moduleSpecifier }) => `export { ${jsExport} } from ${JSON.stringify(moduleSpecifier)};`),
|
|
54
|
+
];
|
|
55
|
+
try {
|
|
56
|
+
await writeFile(wrapperPath, `${exports.join("\n")}\n`);
|
|
57
|
+
return await bundleComponentSource(wrapperPath, bundleOptions);
|
|
58
|
+
}
|
|
59
|
+
finally {
|
|
60
|
+
await rm(wrapperDir, { recursive: true, force: true });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
39
63
|
async function usesOlderWasiHTTP(witPath, worldName) {
|
|
40
|
-
|
|
41
|
-
const worldMetadata = await componentWitMetadataForWorld({ tag: "path", val: witPath }, worldName);
|
|
64
|
+
const worldMetadata = await worldMetadataFor(witPath, worldName);
|
|
42
65
|
// Check if the an old `wasi:http/incoming-handler` version is exported
|
|
43
66
|
const exportsOldIncomingHandler = worldMetadata.exports.some((iface) => {
|
|
44
67
|
return (iface.namespace === "wasi" &&
|
|
@@ -78,15 +101,63 @@ export async function componentize(jsSource, opts) {
|
|
|
78
101
|
throw new Error("--bundle-config requires --bundle");
|
|
79
102
|
}
|
|
80
103
|
const bundleConfig = opts.bundleConfig ? await loadBundleConfig(opts.bundleConfig) : undefined;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
104
|
+
let witPath = resolve(opts.wit);
|
|
105
|
+
const witRequirements = new Map();
|
|
106
|
+
let source;
|
|
107
|
+
if (shouldBundle) {
|
|
108
|
+
const bundleOptions = {
|
|
109
|
+
config: bundleConfig,
|
|
110
|
+
typescript: isTypeScript,
|
|
111
|
+
// The component engine supplies Web globals. Rolldown injects only Jco-backed Node
|
|
112
|
+
// globals when referenced, so unused adapters add no bundle cost.
|
|
113
|
+
inject: nodeGlobals(),
|
|
114
|
+
// Node builtin adapters are supplied while the source graph is bundled, which is
|
|
115
|
+
// why `node:path` only works together with `--bundle`.
|
|
116
|
+
plugins: [
|
|
117
|
+
nodeBuiltinPlugin(await worldMetadataFor(witPath, opts.worldName), {
|
|
118
|
+
nodejsHttpVia: opts.nodejsHttpVia ?? opts.withNodejsHttpVia,
|
|
119
|
+
nodejsHttp2Via: opts.nodejsHttp2Via ?? opts.withNodejsHttp2Via,
|
|
120
|
+
// StarlingMonkey's built-in socket modules are currently WASI 0.2.10.
|
|
121
|
+
// Using that exact version preserves its cross-interface resource identities.
|
|
122
|
+
wasiSocketsVersion: backend === "starlingmonkey" ? "0.2.10" : "0.2.12",
|
|
123
|
+
onWitRequirement(requirement) {
|
|
124
|
+
witRequirements.set(requirement.witImport, requirement);
|
|
125
|
+
},
|
|
126
|
+
}),
|
|
127
|
+
],
|
|
128
|
+
};
|
|
129
|
+
source = await bundleComponentSource(jsSource, bundleOptions);
|
|
130
|
+
const guestExports = [
|
|
131
|
+
...new Map([...witRequirements.values()]
|
|
132
|
+
.flatMap((requirement) => requirement.guestExports ?? [])
|
|
133
|
+
.map((guestExport) => [guestExport.jsExport, guestExport])).values(),
|
|
134
|
+
];
|
|
135
|
+
if (guestExports.length > 0) {
|
|
136
|
+
source = await bundleNodeGuestExportsWrapper(jsSource, guestExports, bundleOptions);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
source = await readFile(jsSource, "utf8");
|
|
141
|
+
}
|
|
142
|
+
const injection = await injectNodeWitImports(witPath, opts.worldName, [...witRequirements.values()]);
|
|
143
|
+
if (injection) {
|
|
144
|
+
witPath = injection.witPath;
|
|
145
|
+
const warning = styleText(["yellow", "bold"], "warning");
|
|
146
|
+
for (const message of witInjectionWarnings(injection)) {
|
|
147
|
+
console.error(`${warning} ${message}`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
85
150
|
const sourceName = isTypeScript ? `${basename(jsSource, extname(jsSource))}.js` : basename(jsSource);
|
|
86
151
|
// Build the component
|
|
87
152
|
let component;
|
|
88
153
|
const backendArgs = { source, sourceName, jsSource, witPath, opts };
|
|
154
|
+
// componentize-js reads the process working directory to decide the path prefix baked into
|
|
155
|
+
// the component and the directory it preopens. Pin it so the build does not depend on where
|
|
156
|
+
// the command ran, restoring the caller's directory afterwards.
|
|
157
|
+
const componentizeCwd = resolve(opts.cwd ?? dirname(resolve(jsSource)));
|
|
158
|
+
const callerCwd = process.cwd();
|
|
89
159
|
try {
|
|
160
|
+
process.chdir(componentizeCwd);
|
|
90
161
|
switch (backend) {
|
|
91
162
|
case "quickjs":
|
|
92
163
|
component = await componentizeQJS(backendArgs);
|
|
@@ -111,6 +182,9 @@ export async function componentize(jsSource, opts) {
|
|
|
111
182
|
}
|
|
112
183
|
throw err;
|
|
113
184
|
}
|
|
185
|
+
finally {
|
|
186
|
+
process.chdir(callerCwd);
|
|
187
|
+
}
|
|
114
188
|
// Write out the component
|
|
115
189
|
await writeFile(opts.out, component);
|
|
116
190
|
console.log(`${styleText("green", "OK")} Successfully written ${styleText("bold", opts.out)}.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"componentize.js","sourceRoot":"","sources":["../../src/cmd/componentize.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"componentize.js","sourceRoot":"","sources":["../../src/cmd/componentize.ts"],"names":[],"mappings":"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"}
|
package/dist/cmd/opt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opt.d.ts","sourceRoot":"","sources":["../../src/cmd/opt.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"opt.d.ts","sourceRoot":"","sources":["../../src/cmd/opt.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,UAAU,CAAC;IACtB,eAAe,EAAE,KAAK,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;CACN;AAED,wBAAsB,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,GAAG,iBA8CxG;AAgBD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAoIlH"}
|
package/dist/cmd/opt.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { fileURLToPath } from "node:url";
|
|
2
2
|
import { writeFile } from "node:fs/promises";
|
|
3
3
|
import { metadataShow, print } from "@bytecodealliance/jco-transpile/wasm-tools";
|
|
4
|
-
import { readFile, sizeStr, fixedDigitDisplay, table, spawnIOTmp
|
|
5
|
-
import ora from "#ora";
|
|
4
|
+
import { readFile, sizeStr, fixedDigitDisplay, table, spawnIOTmp } from "../common.js";
|
|
6
5
|
import { styleText } from "../common.js";
|
|
7
6
|
export async function opt(componentPath, opts, program) {
|
|
8
7
|
const varIdx = program.parent.rawArgs.indexOf("--");
|
|
@@ -10,11 +9,7 @@ export async function opt(componentPath, opts, program) {
|
|
|
10
9
|
opts.optArgs = program.parent.rawArgs.slice(varIdx + 1);
|
|
11
10
|
}
|
|
12
11
|
const componentBytes = await readFile(componentPath);
|
|
13
|
-
|
|
14
|
-
setShowSpinner(true);
|
|
15
|
-
}
|
|
16
|
-
const optPromise = optimizeComponent(componentBytes, opts);
|
|
17
|
-
const { component, compressionInfo } = await optPromise;
|
|
12
|
+
const { component, compressionInfo } = await optimizeComponent(componentBytes, opts);
|
|
18
13
|
await writeFile(opts.output, component);
|
|
19
14
|
let totalBeforeBytes = 0, totalAfterBytes = 0;
|
|
20
15
|
if (!opts.quiet) {
|
|
@@ -66,134 +61,111 @@ function byteLengthLEB128(val) {
|
|
|
66
61
|
* @returns {Promise<{ component: Uint8Array, compressionInfo: { beforeBytes: number, afterBytes: number }[] >}
|
|
67
62
|
*/
|
|
68
63
|
export async function optimizeComponent(componentBytes, opts) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
args.push("--asyncify");
|
|
64
|
+
let componentMetadata = (await metadataShow(componentBytes));
|
|
65
|
+
componentMetadata.forEach((metadata, index) => {
|
|
66
|
+
// add index to the metadata object
|
|
67
|
+
metadata.index = index;
|
|
68
|
+
const size = metadata.range[1] - metadata.range[0];
|
|
69
|
+
// compute previous LEB128 encoding length
|
|
70
|
+
metadata.prevLEBLen = byteLengthLEB128(size);
|
|
71
|
+
});
|
|
72
|
+
const coreModules = componentMetadata.filter(({ metaType }) => metaType.tag === "module");
|
|
73
|
+
// gather the options for wasm-opt. optionally, adding the asyncify flag
|
|
74
|
+
const args = opts?.optArgs
|
|
75
|
+
? [...opts.optArgs]
|
|
76
|
+
: ["-Oz", "--low-memory-unused", "--enable-bulk-memory", "--strip-debug"];
|
|
77
|
+
if (opts?.asyncify) {
|
|
78
|
+
args.push("--asyncify");
|
|
79
|
+
}
|
|
80
|
+
// process core Wasm modules with wasm-opt
|
|
81
|
+
await Promise.all(coreModules.map(async (metadata) => {
|
|
82
|
+
if (metadata.metaType.tag === "module") {
|
|
83
|
+
// store the wasm-opt processed module in the metadata
|
|
84
|
+
metadata.optimized = await wasmOpt(componentBytes.subarray(metadata.range[0], metadata.range[1]), args, opts);
|
|
85
|
+
// compute the size change, including the change to
|
|
86
|
+
// the LEB128 encoding of the size change
|
|
87
|
+
const prevModuleSize = metadata.range[1] - metadata.range[0];
|
|
88
|
+
const newModuleSize = metadata.optimized.byteLength;
|
|
89
|
+
metadata.newLEBLen = byteLengthLEB128(newModuleSize);
|
|
90
|
+
metadata.sizeChange = newModuleSize - prevModuleSize;
|
|
97
91
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
metadata.
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
// organize components in modules into tree parent and children
|
|
116
|
-
const nodes = componentMetadata.slice(1);
|
|
117
|
-
const getChildren = (parentIndex) => {
|
|
118
|
-
const children = [];
|
|
119
|
-
for (let i = 0; i < nodes.length; i++) {
|
|
120
|
-
const metadata = nodes[i];
|
|
121
|
-
if (metadata.parentIndex === parentIndex) {
|
|
122
|
-
nodes.splice(i, 1); // remove from nodes
|
|
123
|
-
i--;
|
|
124
|
-
metadata.children = getChildren(metadata.index);
|
|
125
|
-
metadata.sizeChange = metadata.children.reduce((total, { prevLEBLen, newLEBLen, sizeChange }) => {
|
|
126
|
-
return sizeChange ? total + sizeChange + newLEBLen - prevLEBLen : total;
|
|
127
|
-
}, metadata.sizeChange || 0);
|
|
128
|
-
const prevSize = metadata.range[1] - metadata.range[0];
|
|
129
|
-
metadata.newLEBLen = byteLengthLEB128(prevSize + (metadata.sizeChange ?? 0));
|
|
130
|
-
children.push(metadata);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
return children;
|
|
134
|
-
};
|
|
135
|
-
const componentTree = getChildren(0);
|
|
136
|
-
// compute the total size change in the component binary
|
|
137
|
-
const sizeChange = componentTree.reduce((total, { prevLEBLen, newLEBLen, sizeChange }) => {
|
|
138
|
-
return total + (sizeChange || 0) + newLEBLen - prevLEBLen;
|
|
139
|
-
}, 0);
|
|
140
|
-
let outComponentBytes = new Uint8Array(componentBytes.byteLength + sizeChange);
|
|
141
|
-
let nextReadPos = 0, nextWritePos = 0;
|
|
142
|
-
const write = ({ prevLEBLen, range, optimized, children, sizeChange }) => {
|
|
143
|
-
// write from the last read to the LEB byte start
|
|
144
|
-
outComponentBytes.set(componentBytes.subarray(nextReadPos, range[0] - prevLEBLen), nextWritePos);
|
|
145
|
-
nextWritePos += range[0] - prevLEBLen - nextReadPos;
|
|
146
|
-
// write the new LEB bytes
|
|
147
|
-
let val = range[1] - range[0] + sizeChange;
|
|
148
|
-
do {
|
|
149
|
-
const byte = val & 0x7f;
|
|
150
|
-
val >>>= 7;
|
|
151
|
-
outComponentBytes[nextWritePos++] = val === 0 ? byte : byte | 0x80;
|
|
152
|
-
} while (val !== 0);
|
|
153
|
-
if (optimized) {
|
|
154
|
-
// write the core module
|
|
155
|
-
outComponentBytes.set(optimized, nextWritePos);
|
|
156
|
-
nextReadPos = range[1];
|
|
157
|
-
nextWritePos += optimized.byteLength;
|
|
158
|
-
}
|
|
159
|
-
else if (children.length > 0) {
|
|
160
|
-
// write child components / modules
|
|
161
|
-
nextReadPos = range[0];
|
|
162
|
-
children.forEach(write);
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
// write component
|
|
166
|
-
outComponentBytes.set(componentBytes.subarray(range[0], range[1]), nextWritePos);
|
|
167
|
-
nextReadPos = range[1];
|
|
168
|
-
nextWritePos += range[1] - range[0];
|
|
169
|
-
}
|
|
170
|
-
};
|
|
171
|
-
// write each top-level component / module
|
|
172
|
-
componentTree.forEach(write);
|
|
173
|
-
// write remaining
|
|
174
|
-
outComponentBytes.set(componentBytes.subarray(nextReadPos), nextWritePos);
|
|
175
|
-
// verify it still parses ok
|
|
176
|
-
if (!opts?.noVerify) {
|
|
177
|
-
try {
|
|
178
|
-
await print(outComponentBytes);
|
|
179
|
-
}
|
|
180
|
-
catch (e) {
|
|
181
|
-
throw new Error(`Internal error performing optimization.\n${e.message}`);
|
|
92
|
+
}));
|
|
93
|
+
// organize components in modules into tree parent and children
|
|
94
|
+
const nodes = componentMetadata.slice(1);
|
|
95
|
+
const getChildren = (parentIndex) => {
|
|
96
|
+
const children = [];
|
|
97
|
+
for (let i = 0; i < nodes.length; i++) {
|
|
98
|
+
const metadata = nodes[i];
|
|
99
|
+
if (metadata.parentIndex === parentIndex) {
|
|
100
|
+
nodes.splice(i, 1); // remove from nodes
|
|
101
|
+
i--;
|
|
102
|
+
metadata.children = getChildren(metadata.index);
|
|
103
|
+
metadata.sizeChange = metadata.children.reduce((total, { prevLEBLen, newLEBLen, sizeChange }) => {
|
|
104
|
+
return sizeChange ? total + sizeChange + newLEBLen - prevLEBLen : total;
|
|
105
|
+
}, metadata.sizeChange || 0);
|
|
106
|
+
const prevSize = metadata.range[1] - metadata.range[0];
|
|
107
|
+
metadata.newLEBLen = byteLengthLEB128(prevSize + (metadata.sizeChange ?? 0));
|
|
108
|
+
children.push(metadata);
|
|
182
109
|
}
|
|
183
110
|
}
|
|
184
|
-
return
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
111
|
+
return children;
|
|
112
|
+
};
|
|
113
|
+
const componentTree = getChildren(0);
|
|
114
|
+
// compute the total size change in the component binary
|
|
115
|
+
const sizeChange = componentTree.reduce((total, { prevLEBLen, newLEBLen, sizeChange }) => {
|
|
116
|
+
return total + (sizeChange || 0) + newLEBLen - prevLEBLen;
|
|
117
|
+
}, 0);
|
|
118
|
+
let outComponentBytes = new Uint8Array(componentBytes.byteLength + sizeChange);
|
|
119
|
+
let nextReadPos = 0, nextWritePos = 0;
|
|
120
|
+
const write = ({ prevLEBLen, range, optimized, children, sizeChange }) => {
|
|
121
|
+
// write from the last read to the LEB byte start
|
|
122
|
+
outComponentBytes.set(componentBytes.subarray(nextReadPos, range[0] - prevLEBLen), nextWritePos);
|
|
123
|
+
nextWritePos += range[0] - prevLEBLen - nextReadPos;
|
|
124
|
+
// write the new LEB bytes
|
|
125
|
+
let val = range[1] - range[0] + sizeChange;
|
|
126
|
+
do {
|
|
127
|
+
const byte = val & 0x7f;
|
|
128
|
+
val >>>= 7;
|
|
129
|
+
outComponentBytes[nextWritePos++] = val === 0 ? byte : byte | 0x80;
|
|
130
|
+
} while (val !== 0);
|
|
131
|
+
if (optimized) {
|
|
132
|
+
// write the core module
|
|
133
|
+
outComponentBytes.set(optimized, nextWritePos);
|
|
134
|
+
nextReadPos = range[1];
|
|
135
|
+
nextWritePos += optimized.byteLength;
|
|
136
|
+
}
|
|
137
|
+
else if (children.length > 0) {
|
|
138
|
+
// write child components / modules
|
|
139
|
+
nextReadPos = range[0];
|
|
140
|
+
children.forEach(write);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
// write component
|
|
144
|
+
outComponentBytes.set(componentBytes.subarray(range[0], range[1]), nextWritePos);
|
|
145
|
+
nextReadPos = range[1];
|
|
146
|
+
nextWritePos += range[1] - range[0];
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
// write each top-level component / module
|
|
150
|
+
componentTree.forEach(write);
|
|
151
|
+
// write remaining
|
|
152
|
+
outComponentBytes.set(componentBytes.subarray(nextReadPos), nextWritePos);
|
|
153
|
+
// verify it still parses ok
|
|
154
|
+
if (!opts?.noVerify) {
|
|
155
|
+
try {
|
|
156
|
+
await print(outComponentBytes);
|
|
157
|
+
}
|
|
158
|
+
catch (e) {
|
|
159
|
+
throw new Error(`Internal error performing optimization.\n${e.message}`);
|
|
195
160
|
}
|
|
196
161
|
}
|
|
162
|
+
return {
|
|
163
|
+
component: outComponentBytes,
|
|
164
|
+
compressionInfo: coreModules.map(({ range, optimized }) => ({
|
|
165
|
+
beforeBytes: range[1] - range[0],
|
|
166
|
+
afterBytes: optimized.byteLength,
|
|
167
|
+
})),
|
|
168
|
+
};
|
|
197
169
|
}
|
|
198
170
|
/**
|
|
199
171
|
* @param {Uint8Array} source
|
package/dist/cmd/opt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opt.js","sourceRoot":"","sources":["../../src/cmd/opt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,4CAA4C,CAAC;AAEjF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"opt.js","sourceRoot":"","sources":["../../src/cmd/opt.ts"],"names":[],"mappings":"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"}
|