@bytecodealliance/jco 1.30.0 → 1.32.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 (43) hide show
  1. package/README.md +47 -0
  2. package/dist/cmd/new/builtin-wit.d.ts +13 -0
  3. package/dist/cmd/new/builtin-wit.d.ts.map +1 -0
  4. package/dist/cmd/new/builtin-wit.js +53 -0
  5. package/dist/cmd/new/builtin-wit.js.map +1 -0
  6. package/dist/cmd/new/oci-wit.d.ts +5 -0
  7. package/dist/cmd/new/oci-wit.d.ts.map +1 -0
  8. package/dist/cmd/new/oci-wit.js +124 -0
  9. package/dist/cmd/new/oci-wit.js.map +1 -0
  10. package/dist/cmd/new.d.ts.map +1 -1
  11. package/dist/cmd/new.js +58 -39
  12. package/dist/cmd/new.js.map +1 -1
  13. package/dist/cmd/run.d.ts +8 -0
  14. package/dist/cmd/run.d.ts.map +1 -1
  15. package/dist/cmd/run.js +202 -6
  16. package/dist/cmd/run.js.map +1 -1
  17. package/dist/cmd/transpile.d.ts +3 -0
  18. package/dist/cmd/transpile.d.ts.map +1 -1
  19. package/dist/cmd/transpile.js +3 -0
  20. package/dist/cmd/transpile.js.map +1 -1
  21. package/dist/cmd/types.d.ts +3 -0
  22. package/dist/cmd/types.d.ts.map +1 -1
  23. package/dist/cmd/types.js +6 -1
  24. package/dist/cmd/types.js.map +1 -1
  25. package/dist/jco.js +22 -3
  26. package/dist/jco.js.map +1 -1
  27. package/lib/wit/builtin/0.2.12/wasi-cli/package.wit +64 -0
  28. package/lib/wit/builtin/0.2.12/wasi-clocks/package.wit +43 -0
  29. package/lib/wit/builtin/0.2.12/wasi-filesystem/package.wit +196 -0
  30. package/lib/wit/builtin/0.2.12/wasi-http/package.wit +205 -0
  31. package/lib/wit/builtin/0.2.12/wasi-io/package.wit +66 -0
  32. package/lib/wit/builtin/0.2.12/wasi-random/package.wit +17 -0
  33. package/lib/wit/builtin/0.2.12/wasi-sockets/package.wit +164 -0
  34. package/lib/wit/builtin/0.3.0/wasi-cli/package.wit +70 -0
  35. package/lib/wit/builtin/0.3.0/wasi-clocks/package.wit +42 -0
  36. package/lib/wit/builtin/0.3.0/wasi-filesystem/package.wit +184 -0
  37. package/lib/wit/builtin/0.3.0/wasi-http/package.wit +170 -0
  38. package/lib/wit/builtin/0.3.0/wasi-random/package.wit +17 -0
  39. package/lib/wit/builtin/0.3.0/wasi-sockets/package.wit +105 -0
  40. package/lib/wit/builtin/LICENSE.md +8 -0
  41. package/lib/wit/builtin/README.md +12 -0
  42. package/package.json +4 -4
  43. package/LICENSE +0 -220
package/README.md CHANGED
@@ -90,6 +90,31 @@ jco scaffold my-component --wit path/to/wit
90
90
  `--wit` accepts a self-contained `.wit` file or WIT package directory and copies it into the project. If dealing with a
91
91
  WIT file that contains multiple worlds, supply the `--world` option as well.
92
92
 
93
+ It can also pull a versioned WASI package from the Bytecode Alliance OCI registry. The package and its embedded dependencies are
94
+ expanded into the generated project's `wit/` directory, so subsequent builds do not access the registry:
95
+
96
+ ```console
97
+ jco scaffold my-command --wit wasi:cli@0.3.0 --world wasi:cli/command@0.3.0
98
+ ```
99
+
100
+ Use an `oci://` reference to scaffold from an arbitrary OCI registry package, including WIT-only components:
101
+
102
+ ```console
103
+ jco scaffold my-adder --wit oci://ghcr.io/bytecodealliance/docs/adder:0.1.0 --world docs:adder/adder@0.1.0
104
+ ```
105
+
106
+ For a quick WASI starting point, use one of Jco's bundled WIT packages:
107
+
108
+ ```console
109
+ jco scaffold my-command --wit builtin:wasi-command
110
+ jco scaffold my-http-service --wit builtin:wasi-proxy
111
+ jco scaffold my-reactor --wit builtin:wasi-reactor
112
+ ```
113
+
114
+ These aliases default to WASI 0.3.0. Use the `@0.2.x` suffix, for example
115
+ `builtin:wasi-command@0.2.x`, to select the latest bundled WASI 0.2 release (currently 0.2.12). Jco copies the bundled
116
+ official WASI sources into the generated project's `wit/` directory, so scaffolding does not require network access.
117
+
93
118
  Immediately, you should be able to install and build the component:
94
119
 
95
120
  ```console
@@ -144,10 +169,32 @@ Using the preview2-shim WASI implementation, full access to the underlying syste
144
169
 
145
170
  For HTTP Proxy components, `jco serve` provides a JS server implementation:
146
171
 
172
+ > **Warning:** `jco serve` is intended for development and testing only. It is not production ready.
173
+
147
174
  ```
148
175
  jco serve --port 8080 server.wasm
149
176
  ```
150
177
 
178
+ By default, the server reuses one component instance for all requests. Pass `--isolate-requests`
179
+ to run every request in a fresh Node.js worker thread (equivalent to
180
+ `--isolate-requests=worker`):
181
+
182
+ ```
183
+ jco serve --isolate-requests --port 8080 server.wasm
184
+ ```
185
+
186
+ Worker isolation gives each request a separate V8 isolate, JavaScript global scope, module cache, and
187
+ component instance. Request and response bodies are streamed through a local HTTP proxy. For lower
188
+ overhead, `--isolate-requests=instance` creates fresh component memories, tables, globals, and resource
189
+ tables while sharing the JavaScript isolate and module cache. Neither mode is a security sandbox or
190
+ isolates external filesystem and network side effects. Both modes have a significant performance cost,
191
+ especially worker isolation. Instance isolation is generally the faster isolation mechanism; worker
192
+ isolation trades additional worker startup and HTTP proxy overhead for separate JavaScript globals and
193
+ module caches. To reduce per-request startup latency without reusing JavaScript state, worker mode
194
+ prewarms 50 one-shot workers by default; configure this with `--isolate-worker-pool-size`. See the
195
+ [development-use `jco serve` benchmark](https://bytecodealliance.github.io/jco/performance/benchmarks/development-use-jco-serve.html)
196
+ page for benchmark results and reproduction instructions.
197
+
151
198
  > [Wasmtime](https://github.com/bytecodealliance/wasmtime) generally provides the most performant implementation for executing command and proxy worlds to use. These implementations are rather for when JS virtualization is required or the most convenient approach.
152
199
 
153
200
  ### Componentize
@@ -0,0 +1,13 @@
1
+ export type BuiltinWitName = "wasi-command" | "wasi-proxy" | "wasi-reactor";
2
+ export type BuiltinWitVersion = "0.3.0" | "0.2.12";
3
+ export interface BuiltinWit {
4
+ name: BuiltinWitName;
5
+ version: BuiltinWitVersion;
6
+ world: string;
7
+ rootPackage: "wasi-cli" | "wasi-http";
8
+ }
9
+ /** Parse a builtin WIT starting point, returning undefined for regular filesystem paths. */
10
+ export declare function resolveBuiltinWit(input: string): BuiltinWit | undefined;
11
+ /** Copy a bundled snapshot into the conventional root-package-plus-deps WIT layout. */
12
+ export declare function copyBuiltinWit(builtin: BuiltinWit, destination: string): Promise<void>;
13
+ //# sourceMappingURL=builtin-wit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-wit.d.ts","sourceRoot":"","sources":["../../../src/cmd/new/builtin-wit.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,YAAY,GAAG,cAAc,CAAC;AAC5E,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,UAAU,GAAG,WAAW,CAAC;CACzC;AAeD,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAgCvE;AAED,uFAAuF;AACvF,wBAAsB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW5F"}
@@ -0,0 +1,53 @@
1
+ import { copyFile, mkdir } from "node:fs/promises";
2
+ import { fileURLToPath } from "node:url";
3
+ import { dirname, join } from "node:path";
4
+ const DEFAULT_VERSION = "0.3.0";
5
+ const VERSION_ALIASES = new Map([
6
+ ["0.3.x", "0.3.0"],
7
+ ["0.3.0", "0.3.0"],
8
+ ["0.2.x", "0.2.12"],
9
+ ["0.2.12", "0.2.12"],
10
+ ]);
11
+ const PACKAGE_NAMES = {
12
+ "0.3.0": ["wasi-cli", "wasi-clocks", "wasi-filesystem", "wasi-http", "wasi-random", "wasi-sockets"],
13
+ "0.2.12": ["wasi-cli", "wasi-clocks", "wasi-filesystem", "wasi-http", "wasi-io", "wasi-random", "wasi-sockets"],
14
+ };
15
+ const BUNDLED_WIT_ROOT = new URL("../../../lib/wit/builtin/", import.meta.url);
16
+ /** Parse a builtin WIT starting point, returning undefined for regular filesystem paths. */
17
+ export function resolveBuiltinWit(input) {
18
+ if (!input.startsWith("builtin:")) {
19
+ return undefined;
20
+ }
21
+ const match = /^builtin:(wasi-command|wasi-proxy|wasi-reactor)(?:@(.+))?$/.exec(input);
22
+ if (!match) {
23
+ throw new Error(`Unknown builtin WIT ${JSON.stringify(input)}. Expected builtin:wasi-command, builtin:wasi-proxy, or builtin:wasi-reactor`);
24
+ }
25
+ const name = match[1];
26
+ const requestedVersion = match[2];
27
+ const version = requestedVersion === undefined ? DEFAULT_VERSION : VERSION_ALIASES.get(requestedVersion);
28
+ if (!version) {
29
+ throw new Error(`Unsupported builtin WASI version ${JSON.stringify(requestedVersion)}. Supported versions are 0.3.x and 0.2.x`);
30
+ }
31
+ const rootPackage = name === "wasi-proxy" ? "wasi-http" : "wasi-cli";
32
+ const world = name === "wasi-command"
33
+ ? `wasi:cli/command@${version}`
34
+ : name === "wasi-reactor"
35
+ ? `wasi:cli/imports@${version}`
36
+ : version === "0.3.0"
37
+ ? "wasi:http/service@0.3.0"
38
+ : "wasi:http/proxy@0.2.12";
39
+ return { name, version, world, rootPackage };
40
+ }
41
+ /** Copy a bundled snapshot into the conventional root-package-plus-deps WIT layout. */
42
+ export async function copyBuiltinWit(builtin, destination) {
43
+ await mkdir(destination, { recursive: true });
44
+ for (const packageName of PACKAGE_NAMES[builtin.version]) {
45
+ const source = fileURLToPath(new URL(`${builtin.version}/${packageName}/package.wit`, BUNDLED_WIT_ROOT));
46
+ const output = packageName === builtin.rootPackage
47
+ ? join(destination, "package.wit")
48
+ : join(destination, "deps", `${packageName}-${builtin.version}`, "package.wit");
49
+ await mkdir(dirname(output), { recursive: true });
50
+ await copyFile(source, output);
51
+ }
52
+ }
53
+ //# sourceMappingURL=builtin-wit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-wit.js","sourceRoot":"","sources":["../../../src/cmd/new/builtin-wit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** Return whether an argument denotes an OCI registry artifact. */
2
+ export declare function isOciWit(input: string): boolean;
3
+ /** Pull an encoded WIT package from OCI and expand it into a WIT directory. */
4
+ export declare function pullOciWit(input: string, destination: string): Promise<void>;
5
+ //# sourceMappingURL=oci-wit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oci-wit.d.ts","sourceRoot":"","sources":["../../../src/cmd/new/oci-wit.ts"],"names":[],"mappings":"AA0BA,mEAAmE;AACnE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED,+EAA+E;AAC/E,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BlF"}
@@ -0,0 +1,124 @@
1
+ import { createHash } from "node:crypto";
2
+ import { mkdir, writeFile } from "node:fs/promises";
3
+ import { dirname, join } from "node:path";
4
+ const MANIFEST_TYPES = [
5
+ "application/vnd.oci.image.manifest.v1+json",
6
+ "application/vnd.docker.distribution.manifest.v2+json",
7
+ ].join(", ");
8
+ /** Return whether an argument denotes an OCI registry artifact. */
9
+ export function isOciWit(input) {
10
+ return input.startsWith("oci://") || /^wasi:[a-z][a-z0-9-]*@\d+\.\d+\.\d+(?:[-+].+)?$/.test(input);
11
+ }
12
+ /** Pull an encoded WIT package from OCI and expand it into a WIT directory. */
13
+ export async function pullOciWit(input, destination) {
14
+ const { ref, packageSpec } = resolveReference(input);
15
+ const base = `https://${ref.registry}/v2/${ref.repository}`;
16
+ const manifestResponse = await registryFetch(`${base}/manifests/${encodeURIComponent(ref.reference)}`, {
17
+ headers: { accept: MANIFEST_TYPES },
18
+ repository: ref.repository,
19
+ });
20
+ const manifest = (await manifestResponse.json());
21
+ if (manifest.schemaVersion !== 2 || !Array.isArray(manifest.layers)) {
22
+ throw new Error(`Invalid OCI manifest returned for ${input}`);
23
+ }
24
+ const layer = manifest.layers.find(({ mediaType }) => mediaType === "application/wasm") ?? manifest.layers[0];
25
+ if (!layer) {
26
+ throw new Error(`OCI artifact ${input} has no layers`);
27
+ }
28
+ const blobResponse = await registryFetch(`${base}/blobs/${layer.digest}`, { repository: ref.repository });
29
+ const bytes = new Uint8Array(await blobResponse.arrayBuffer());
30
+ verifyDescriptor(input, layer, bytes);
31
+ // Use a dynamic import so Jco can build against the latest published compatible
32
+ // jco-transpile while this new API is released alongside it.
33
+ const { unpackWit } = (await import("@bytecodealliance/jco-transpile"));
34
+ const files = await unpackWit(packageSpec, bytes);
35
+ for (const [path, contents] of files) {
36
+ const output = join(destination, path);
37
+ await mkdir(dirname(output), { recursive: true });
38
+ await writeFile(output, contents);
39
+ }
40
+ }
41
+ function resolveReference(input) {
42
+ if (!input.startsWith("oci://")) {
43
+ const [name, reference] = input.split("@", 2);
44
+ const [namespace, packageName] = name.split(":", 2);
45
+ return {
46
+ ref: {
47
+ registry: "ghcr.io",
48
+ repository: `webassembly/${namespace}/${packageName}`,
49
+ reference,
50
+ },
51
+ packageSpec: input,
52
+ };
53
+ }
54
+ const value = input.slice("oci://".length);
55
+ const slash = value.indexOf("/");
56
+ const path = value.slice(slash + 1);
57
+ const digestSeparator = path.lastIndexOf("@");
58
+ const tagSeparator = path.lastIndexOf(":");
59
+ const separator = digestSeparator >= 0 ? digestSeparator : tagSeparator;
60
+ if (slash <= 0 || separator <= path.lastIndexOf("/")) {
61
+ throw new Error(`Invalid OCI reference ${JSON.stringify(input)}; expected oci://registry/repository:tag`);
62
+ }
63
+ return {
64
+ ref: {
65
+ registry: value.slice(0, slash),
66
+ repository: path.slice(0, separator),
67
+ reference: path.slice(separator + 1),
68
+ },
69
+ };
70
+ }
71
+ async function registryFetch(url, options) {
72
+ let response = await fetch(url, { headers: options.headers });
73
+ if (response.status === 401) {
74
+ const challenge = response.headers.get("www-authenticate");
75
+ if (!challenge) {
76
+ throw new Error(`OCI registry denied access to ${url}`);
77
+ }
78
+ const auth = parseBearerChallenge(challenge);
79
+ const tokenUrl = new URL(auth.realm);
80
+ tokenUrl.searchParams.set("service", auth.service);
81
+ tokenUrl.searchParams.set("scope", auth.scope ?? `repository:${options.repository}:pull`);
82
+ const tokenResponse = await fetch(tokenUrl);
83
+ if (!tokenResponse.ok) {
84
+ throw new Error(`OCI registry authentication failed: ${tokenResponse.statusText}`);
85
+ }
86
+ const tokenBody = (await tokenResponse.json());
87
+ const token = tokenBody.token ?? tokenBody.access_token;
88
+ if (!token) {
89
+ throw new Error("OCI registry authentication response did not include a token");
90
+ }
91
+ response = await fetch(url, { headers: { ...options.headers, authorization: `Bearer ${token}` } });
92
+ }
93
+ if (!response.ok) {
94
+ throw new Error(`Failed to pull OCI artifact: ${response.status} ${response.statusText}`);
95
+ }
96
+ return response;
97
+ }
98
+ function parseBearerChallenge(challenge) {
99
+ if (!challenge.startsWith("Bearer ")) {
100
+ throw new Error(`Unsupported OCI authentication challenge: ${challenge}`);
101
+ }
102
+ const values = {};
103
+ for (const match of challenge.slice(7).matchAll(/([a-zA-Z]+)="([^"]*)"/g)) {
104
+ values[match[1]] = match[2];
105
+ }
106
+ if (!values.realm || !values.service) {
107
+ throw new Error(`Invalid OCI authentication challenge: ${challenge}`);
108
+ }
109
+ return values;
110
+ }
111
+ function verifyDescriptor(input, descriptor, bytes) {
112
+ if (descriptor.size !== undefined && descriptor.size !== bytes.byteLength) {
113
+ throw new Error(`OCI layer for ${input} has an invalid size`);
114
+ }
115
+ const [algorithm, expected] = descriptor.digest.split(":", 2);
116
+ if (algorithm !== "sha256" || !expected) {
117
+ throw new Error(`Unsupported OCI digest ${descriptor.digest}`);
118
+ }
119
+ const actual = createHash("sha256").update(bytes).digest("hex");
120
+ if (actual !== expected) {
121
+ throw new Error(`OCI layer for ${input} failed digest verification`);
122
+ }
123
+ }
124
+ //# sourceMappingURL=oci-wit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oci-wit.js","sourceRoot":"","sources":["../../../src/cmd/new/oci-wit.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/cmd/new.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;AACtD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AACxD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEzC,MAAM,WAAW,iBAAiB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;IACrC,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,+CAA+C;AAC/C,wBAAsB,aAAa,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4DzG"}
1
+ {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/cmd/new.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;AACtD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AACxD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEzC,MAAM,WAAW,iBAAiB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;IACrC,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,+CAA+C;AAC/C,wBAAsB,aAAa,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0EzG"}
package/dist/cmd/new.js CHANGED
@@ -1,53 +1,70 @@
1
1
  import { cp, lstat, mkdir, mkdtemp, readFile, readdir, rename, rm, stat, writeFile } from "node:fs/promises";
2
2
  import { basename, dirname, extname, join, relative, resolve, sep } from "node:path";
3
3
  import { typesComponent } from "./types.js";
4
+ import { copyBuiltinWit, resolveBuiltinWit } from "./new/builtin-wit.js";
4
5
  import { declarationModel, validateComponentSource } from "./new/declarations.js";
6
+ import { isOciWit, pullOciWit } from "./new/oci-wit.js";
5
7
  import { packageManagerAdapter } from "./new/package-manager.js";
6
8
  import { renderComponent, renderComponentTest, renderHostPlugin, renderHostPluginTest } from "./new/render.js";
7
9
  /** Create a JS project to match a given WIT */
8
10
  export async function createProject(projectDirectory, options) {
9
11
  const destination = resolve(projectDirectory);
10
- const witSource = resolve(options.wit);
12
+ const builtinWit = resolveBuiltinWit(options.wit);
13
+ const ociWit = isOciWit(options.wit);
14
+ const witSource = builtinWit || ociWit ? undefined : resolve(options.wit);
11
15
  const language = normalizeLanguage(options.language);
12
16
  const packageManager = options.packageManager ?? "pnpm";
13
17
  const targets = normalizeTargets(options.targets);
14
18
  await validatePaths(destination, witSource);
15
- // TypeScript 7's native compiler does not yet expose the stable JS
16
- // Program/factory/printer API. Keep this compatibility dependency isolated
17
- // so it can be removed when the native API stabilizes.
18
- const typescript = (await import("typescript-compiler-api")).default;
19
- const host = options.host ?? false;
20
- const generatedTypes = await typesComponent(witSource, {
21
- guest: !host,
22
- worldName: options.world,
23
- strict: true,
24
- });
25
- const model = declarationModel(typescript, generatedTypes, host);
26
- const source = host ? renderHostPlugin(typescript, model, language) : renderComponent(typescript, model, language);
27
- const testSource = host
28
- ? renderHostPluginTest(typescript, model, language)
29
- : renderComponentTest(typescript, model, language);
30
- validateComponentSource(typescript, generatedTypes, source, language);
31
- const files = await scaffoldFiles({
32
- projectName: npmPackageName(basename(destination)),
33
- language,
34
- packageManager,
35
- targets,
36
- world: model.world,
37
- source,
38
- testSource,
39
- generatedTypes,
40
- witSource,
41
- host,
42
- });
19
+ if (builtinWit && options.world) {
20
+ throw new Error("--world cannot be used with a builtin WIT starting point");
21
+ }
43
22
  const temporary = await mkdtemp(join(dirname(destination), `.${basename(destination)}-jco-new-`));
44
23
  try {
24
+ const projectWit = join(temporary, "wit");
25
+ if (builtinWit) {
26
+ await copyBuiltinWit(builtinWit, projectWit);
27
+ }
28
+ else if (ociWit) {
29
+ await pullOciWit(options.wit, projectWit);
30
+ }
31
+ else {
32
+ await copyWit(witSource, projectWit);
33
+ }
34
+ // TypeScript 7's native compiler does not yet expose the stable JS
35
+ // Program/factory/printer API. Keep this compatibility dependency isolated
36
+ // so it can be removed when the native API stabilizes.
37
+ const typescript = (await import("typescript-compiler-api")).default;
38
+ const host = options.host ?? false;
39
+ const generatedTypes = await typesComponent(projectWit, {
40
+ guest: !host,
41
+ worldName: builtinWit?.world ?? options.world,
42
+ strict: true,
43
+ });
44
+ const model = declarationModel(typescript, generatedTypes, host);
45
+ const source = host
46
+ ? renderHostPlugin(typescript, model, language)
47
+ : renderComponent(typescript, model, language);
48
+ const testSource = host
49
+ ? renderHostPluginTest(typescript, model, language)
50
+ : renderComponentTest(typescript, model, language);
51
+ validateComponentSource(typescript, generatedTypes, source, language);
52
+ const files = await scaffoldFiles({
53
+ projectName: npmPackageName(basename(destination)),
54
+ language,
55
+ packageManager,
56
+ targets,
57
+ world: model.world,
58
+ source,
59
+ testSource,
60
+ generatedTypes,
61
+ host,
62
+ });
45
63
  for (const [name, contents] of Object.entries(files)) {
46
64
  const output = join(temporary, name);
47
65
  await mkdir(dirname(output), { recursive: true });
48
66
  await writeFile(output, contents);
49
67
  }
50
- await copyWit(witSource, join(temporary, "wit"));
51
68
  if (await exists(destination)) {
52
69
  await rm(destination, { recursive: false });
53
70
  }
@@ -180,15 +197,17 @@ function readme(input, extension) {
180
197
  return `# JavaScript component\n\nThis project implements the \`${input.world}\` WIT world. Edit \`src/component.${extension}\` and replace the generated TODO bodies.\n\n## Develop\n\n\`\`\`console\n${manager.install}\n${manager.run("types")}\n${manager.run("check")}\n${manager.run("test")}\n${manager.run("build")}\n\`\`\`\n\nThe WIT package is copied into \`wit/\`; generated guest declarations live in \`types/generated/\`. Run \`${manager.run("types")}\` after changing WIT. Build individual targets with ${builds}.\n\nThe scripts are standard package scripts, so npm, pnpm, or Yarn can be used with their equivalent \`install\` and \`run\` commands. Rolldown settings are in the generated configuration file${input.targets.length === 2 ? "s" : ""}.\n`;
181
198
  }
182
199
  async function validatePaths(destination, witSource) {
183
- const witStat = await stat(witSource).catch(() => undefined);
184
- if (!witStat || (!witStat.isFile() && !witStat.isDirectory())) {
185
- throw new Error(`WIT path does not exist: ${witSource}`);
186
- }
187
- if (witStat.isFile() && extname(witSource) !== ".wit") {
188
- throw new Error("--wit must name a .wit file or directory");
189
- }
190
- if (destination === witSource || witSource.startsWith(destination + sep)) {
191
- throw new Error("The project destination cannot contain the WIT source");
200
+ if (witSource) {
201
+ const witStat = await stat(witSource).catch(() => undefined);
202
+ if (!witStat || (!witStat.isFile() && !witStat.isDirectory())) {
203
+ throw new Error(`WIT path does not exist: ${witSource}`);
204
+ }
205
+ if (witStat.isFile() && extname(witSource) !== ".wit") {
206
+ throw new Error("--wit must name a .wit file or directory");
207
+ }
208
+ if (destination === witSource || witSource.startsWith(destination + sep)) {
209
+ throw new Error("The project destination cannot contain the WIT source");
210
+ }
192
211
  }
193
212
  const destinationStat = await stat(destination).catch(() => undefined);
194
213
  if (destinationStat && !destinationStat.isDirectory()) {
@@ -1 +1 @@
1
- {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/cmd/new.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/cmd/new.ts"],"names":[],"mappings":"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"}
package/dist/cmd/run.d.ts CHANGED
@@ -15,8 +15,16 @@ interface RunComponentOptions extends GetSandboxSetupArgs {
15
15
  export type RunOptions = RunComponentOptions;
16
16
  export interface ServeOptions extends RunComponentOptions {
17
17
  host?: string;
18
+ isolateRequests?: "instance" | "worker";
19
+ isolateWorkerPoolSize?: number;
18
20
  port?: string;
19
21
  }
22
+ interface IncomingHandler {
23
+ handle(request: unknown, responseOutparam: unknown): unknown;
24
+ }
25
+ export declare function createRequestIsolatedHandler(instantiate: (getCoreModule: (path: string) => WebAssembly.Module, imports: Record<string, unknown>) => {
26
+ incomingHandler?: IncomingHandler;
27
+ }, getCoreModule: (path: string) => WebAssembly.Module, getImportObject: () => Record<string, unknown>): IncomingHandler;
20
28
  export declare function run(componentPath: string, args: string[], opts: RunOptions): Promise<void>;
21
29
  export declare function serve(componentPath: string, args: string[], opts: ServeOptions): Promise<void>;
22
30
  export declare function getSandboxSetup(opts: GetSandboxSetupArgs): string;
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cmd/run.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,mBAAmB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,UAAU,mBAAoB,SAAQ,mBAAmB;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,QAAQ,GAAG,kBAAkB,CAAC;IACvE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAE7C,MAAM,WAAW,YAAa,SAAQ,mBAAmB;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,iBAwBhF;AAED,wBAAsB,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,iBAqCpF;AA8FD,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAuDjE"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cmd/run.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,mBAAmB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,UAAU,mBAAoB,SAAQ,mBAAmB;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,QAAQ,GAAG,kBAAkB,CAAC;IACvE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAE7C,MAAM,WAAW,YAAa,SAAQ,mBAAmB;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IACxC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,eAAe;IACrB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAC;CAChE;AAED,wBAAgB,4BAA4B,CACxC,WAAW,EAAE,CACT,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,WAAW,CAAC,MAAM,EACnD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B;IAAE,eAAe,CAAC,EAAE,eAAe,CAAA;CAAE,EAC1C,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,WAAW,CAAC,MAAM,EACnD,eAAe,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/C,eAAe,CAUjB;AAED,wBAAsB,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,iBAwBhF;AAED,wBAAsB,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,iBAmMpF;AAoID,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAuDjE"}