@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.
Files changed (54) hide show
  1. package/README.md +12 -1
  2. package/dist/bundle.d.ts +2 -0
  3. package/dist/bundle.d.ts.map +1 -1
  4. package/dist/bundle.js +7 -0
  5. package/dist/bundle.js.map +1 -1
  6. package/dist/cmd/componentize.d.ts +24 -0
  7. package/dist/cmd/componentize.d.ts.map +1 -1
  8. package/dist/cmd/componentize.js +82 -8
  9. package/dist/cmd/componentize.js.map +1 -1
  10. package/dist/cmd/opt.d.ts.map +1 -1
  11. package/dist/cmd/opt.js +102 -130
  12. package/dist/cmd/opt.js.map +1 -1
  13. package/dist/cmd/run.d.ts.map +1 -1
  14. package/dist/cmd/run.js +58 -1
  15. package/dist/cmd/run.js.map +1 -1
  16. package/dist/cmd/transpile.d.ts +5 -1
  17. package/dist/cmd/transpile.d.ts.map +1 -1
  18. package/dist/cmd/transpile.js +98 -4
  19. package/dist/cmd/transpile.js.map +1 -1
  20. package/dist/common.d.ts +0 -2
  21. package/dist/common.d.ts.map +1 -1
  22. package/dist/common.js +0 -9
  23. package/dist/common.js.map +1 -1
  24. package/dist/jco.js +8 -1
  25. package/dist/jco.js.map +1 -1
  26. package/dist/node-builtins.d.ts +127 -0
  27. package/dist/node-builtins.d.ts.map +1 -0
  28. package/dist/node-builtins.js +1085 -0
  29. package/dist/node-builtins.js.map +1 -0
  30. package/dist/node-wit.d.ts +67 -0
  31. package/dist/node-wit.d.ts.map +1 -0
  32. package/dist/node-wit.js +338 -0
  33. package/dist/node-wit.js.map +1 -0
  34. package/lib/wasi_snapshot_preview1.command.wasm +0 -0
  35. package/lib/wasi_snapshot_preview1.reactor.wasm +0 -0
  36. package/lib/wit/builtin/0.2.10/wasi-clocks/package.wit +35 -0
  37. package/lib/wit/builtin/0.2.10/wasi-io/package.wit +47 -0
  38. package/lib/wit/builtin/0.2.10/wasi-sockets/package.wit +168 -0
  39. package/lib/wit/builtin/jco-node-0.1.0/child-process.wit +42 -0
  40. package/lib/wit/builtin/jco-node-0.1.0/cluster.wit +111 -0
  41. package/lib/wit/builtin/jco-node-0.1.0/console.wit +12 -0
  42. package/lib/wit/builtin/jco-node-0.1.0/dns.wit +145 -0
  43. package/lib/wit/builtin/jco-node-0.1.0/ffi.wit +116 -0
  44. package/lib/wit/builtin/jco-node-0.1.0/fs.wit +208 -0
  45. package/lib/wit/builtin/jco-node-0.1.0/http.wit +144 -0
  46. package/lib/wit/builtin/jco-node-0.1.0/http2.wit +191 -0
  47. package/lib/wit/builtin/jco-node-0.1.0/inspector.wit +142 -0
  48. package/lib/wit/builtin/jco-node-0.1.0/os.wit +120 -0
  49. package/lib/wit/builtin/jco-node-0.1.0/types.wit +12 -0
  50. package/package.json +6 -12
  51. package/dist/ora-shim.d.ts +0 -9
  52. package/dist/ora-shim.d.ts.map +0 -1
  53. package/dist/ora-shim.js +0 -10
  54. 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 (experimental).
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,
@@ -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;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,qBAAqB,CACvC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,4BAAiC,GAC3C,OAAO,CAAC,MAAM,CAAC,CA2DjB"}
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({
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"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"}
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":"AAcA,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,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,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;AAsED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0D7F"}
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"}
@@ -1,8 +1,11 @@
1
- import { stat, readFile, writeFile } from "node:fs/promises";
2
- import { resolve, basename, extname } from "node:path";
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
- witPath = (isWindows ? "//?/" : "") + resolve(witPath);
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
- const source = shouldBundle
82
- ? await bundleComponentSource(jsSource, { config: bundleConfig, typescript: isTypeScript })
83
- : await readFile(jsSource, "utf8");
84
- const witPath = resolve(opts.wit);
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":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEvD,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAE/E,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD,gDAAgD;AAChD,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;AAE1E,oDAAoD;AACpD,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,CAAC;AAsCjC,MAAM,qBAAqB,GAA0C;IACjE,cAAc,EAAE,gBAAgB;IAChC,EAAE,EAAE,gBAAgB;IACpB,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,SAAS;CACjB,CAAC;AAEF,MAAM,sBAAsB,GAAqC;IAC7D,KAAK;IACL,sBAAsB;IACtB,UAAU;IACV,SAAS;IACT,QAAQ;IACR,OAAO;IACP,iBAAiB;IACjB,0BAA0B;IAC1B,QAAQ;IACR,eAAe;IACf,kBAAkB;IAClB,aAAa;IACb,iBAAiB;IACjB,yBAAyB;CAC5B,CAAC;AAEF;;;;;;GAMG;AACH,KAAK,UAAU,iBAAiB,CAAC,OAAe,EAAE,SAAkB;IAChE,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,aAAa,GAAG,MAAM,4BAA4B,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAEnG,uEAAuE;IACvE,MAAM,yBAAyB,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QACnE,OAAO,CACH,KAAK,CAAC,SAAS,KAAK,MAAM;YAC1B,KAAK,CAAC,OAAO,IAAI,IAAI;YACrB,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE;YAC1B,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE;YACxB,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAC5B,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QACzD,OAAO,CACH,KAAK,CAAC,SAAS,KAAK,MAAM;YAC1B,KAAK,CAAC,OAAO,IAAI,IAAI;YACrB,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE;YAC1B,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE;YACxB,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAC5B,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,OAAO,yBAAyB,IAAI,eAAe,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,IAAyB;IAC1E,+BAA+B;IAC/B,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAEtC,0BAA0B;IAC1B,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,UAAU,KAAK,wBAAwB,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACX,kEAAkE,QAAQ,4DAA4D,CACzI,CAAC;IACN,CAAC;IACD,MAAM,YAAY,GAAG,UAAU,KAAK,YAAY,CAAC;IACjD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,YAAY,CAAC;IAE1D,mBAAmB;IACnB,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,MAAM,MAAM,GAAG,YAAY;QACvB,CAAC,CAAC,MAAM,qBAAqB,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;QAC3F,CAAC,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAErG,sBAAsB;IACtB,IAAI,SAAS,CAAC;IACd,MAAM,WAAW,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACpE,IAAI,CAAC;QACD,QAAQ,OAAO,EAAE,CAAC;YACd,KAAK,SAAS;gBACV,SAAS,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;gBAC/C,MAAM;YACV,KAAK,gBAAgB;gBACjB,SAAS,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;gBAC/C,MAAM;YACV;gBACI,MAAM,IAAI,KAAK,CAAC,0CAA0C,OAAO,GAAG,CAAC,CAAC;QAC9E,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,+EAA+E;QAC/E,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACvE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3D,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC7C,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBACd,GAAG,CAAC,OAAO,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC/B,CAAC;YACL,CAAC;QACL,CAAC;QACD,MAAM,GAAG,CAAC;IACd,CAAC;IAED,0BAA0B;IAC1B,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAErC,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,yBAAyB,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAO,GAAG,gBAAgB;IAChD,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACX,qCAAqC,OAAO,uDAAuD,CACtG,CAAC;IACN,CAAC;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,sBAAsB,CAAC,OAA8B,EAAE,IAAyB;IACrF,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC;QAC/B,OAAO;IACX,CAAC;IAED,MAAM,YAAY,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC;IAC3F,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACX,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,gDAAgD,CAC/N,CAAC;IACN,CAAC;AACL,CAAC;AACD;;;;;GAKG;AACH,KAAK,UAAU,gBAAgB,CAAC,OAAe;IAC3C,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,aAAa,4BAA4B,OAAO,qCAAqC,CAAC;QACnG,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,aAAa,0BAA0B,OAAO,sBAAsB,CAAC;IAClF,MAAM,IAAI,GAAG,aAAa,qGAAqG,CAAC;IAChI,MAAM,IAAI,GAAG,aAAa,oDAAoD,CAAC;IAC/E,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,mBAAmB,CAAC,IAAyB;IAClD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;IAElC,4BAA4B;IAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACJ,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,OAAO;QACH,eAAe,EAAE,CAAC,GAAG,eAAe,CAAC;QACrC,cAAc,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACtE,CAAC;AACN,CAAC;AAED,mDAAmD;AACnD,KAAK,UAAU,eAAe,CAAC,IAA6B;IACxD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,YAAY,CAAC;QACpD,OAAO;QACP,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;QACzB,KAAK,EAAE,IAAI,CAAC,SAAS;QACrB,IAAI,EAAE,IAAI,CAAC,sBAAsB;KACpC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,SAAS,CAAC;AAC5B,CAAC;AAED,yDAAyD;AACzD,KAAK,UAAU,eAAe,CAAC,IAA6B;IACxD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACnD,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACtE,6FAA6F;IAC7F,qGAAqG;IACrG,qBAAqB;IACrB,IAAI,oBAAoB,CAAC;IACzB,MAAM,oBAAoB,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9E,IAAI,oBAAoB,EAAE,CAAC;QACvB,6EAA6E;QAC7E,4EAA4E;QAC5E,aAAa;QACb,OAAO,CAAC,KAAK,CACT,GAAG,SAAS,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,+PAA+P,CAC7S,CAAC;QACF,oBAAoB,GAAG,MAAM,IAAI,CAAC,oDAAoD,CAAC,CAAC;IAC5F,CAAC;SAAM,CAAC;QACJ,oBAAoB,GAAG,MAAM,IAAI,CAAC,6CAA6C,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,YAAY,CAAC,MAAM,EAAE;QAC3D,SAAS,EAAE,IAAI,CAAC,GAAG;QACnB,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;QAC/C,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU;QACV,OAAO;QACP,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,eAAe;QACf,cAAc;QACd,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,UAAU,EAAE,IAAI,CAAC,wBAAwB;QACzC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE;YACH,QAAQ,EAAE,IAAI,CAAC,aAAa;YAC5B,WAAW,EAAE,IAAI,CAAC,gBAAgB;YAClC,MAAM,EAAE,IAAI,CAAC,WAAW;YACxB,UAAU,EAAE,IAAI,CAAC,eAAe;YAChC,kBAAkB,EAAE,IAAI,CAAC,uBAAuB;SACnD;KACJ,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5G,CAAC;IAED,OAAO,MAAM,CAAC,SAAS,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"componentize.js","sourceRoot":"","sources":["../../src/cmd/componentize.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"opt.d.ts","sourceRoot":"","sources":["../../src/cmd/opt.ts"],"names":[],"mappings":"AAaA,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,iBAkDxG;AAgBD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CA6JlH"}
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, setShowSpinner, getShowSpinner } from "../common.js";
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
- if (!opts.quiet) {
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
- const showSpinner = getShowSpinner();
70
- let spinner;
71
- try {
72
- let componentMetadata = (await metadataShow(componentBytes));
73
- componentMetadata.forEach((metadata, index) => {
74
- // add index to the metadata object
75
- metadata.index = index;
76
- const size = metadata.range[1] - metadata.range[0];
77
- // compute previous LEB128 encoding length
78
- metadata.prevLEBLen = byteLengthLEB128(size);
79
- });
80
- const coreModules = componentMetadata.filter(({ metaType }) => metaType.tag === "module");
81
- // log number of core Wasm modules to be run with wasm-opt
82
- let completed = 0;
83
- const spinnerText = () => `${styleText("cyan", `${completed} / ${coreModules.length}`)} Running Binaryen on WebAssembly Component Internal Core Modules \n`;
84
- if (showSpinner) {
85
- spinner = ora({
86
- color: "cyan",
87
- spinner: "bouncingBar",
88
- }).start();
89
- spinner.text = spinnerText();
90
- }
91
- // gather the options for wasm-opt. optionally, adding the asyncify flag
92
- const args = opts?.optArgs
93
- ? [...opts.optArgs]
94
- : ["-Oz", "--low-memory-unused", "--enable-bulk-memory", "--strip-debug"];
95
- if (opts?.asyncify) {
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
- // process core Wasm modules with wasm-opt
99
- await Promise.all(coreModules.map(async (metadata) => {
100
- if (metadata.metaType.tag === "module") {
101
- // store the wasm-opt processed module in the metadata
102
- metadata.optimized = await wasmOpt(componentBytes.subarray(metadata.range[0], metadata.range[1]), args, opts);
103
- // compute the size change, including the change to
104
- // the LEB128 encoding of the size change
105
- const prevModuleSize = metadata.range[1] - metadata.range[0];
106
- const newModuleSize = metadata.optimized.byteLength;
107
- metadata.newLEBLen = byteLengthLEB128(newModuleSize);
108
- metadata.sizeChange = newModuleSize - prevModuleSize;
109
- if (spinner) {
110
- completed++;
111
- spinner.text = spinnerText();
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
- component: outComponentBytes,
186
- compressionInfo: coreModules.map(({ range, optimized }) => ({
187
- beforeBytes: range[1] - range[0],
188
- afterBytes: optimized.byteLength,
189
- })),
190
- };
191
- }
192
- finally {
193
- if (spinner) {
194
- spinner.stop();
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
@@ -1 +1 @@
1
- {"version":3,"file":"opt.js","sourceRoot":"","sources":["../../src/cmd/opt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opt.js","sourceRoot":"","sources":["../../src/cmd/opt.ts"],"names":[],"mappings":"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"}