@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.
- package/README.md +47 -0
- package/dist/cmd/new/builtin-wit.d.ts +13 -0
- package/dist/cmd/new/builtin-wit.d.ts.map +1 -0
- package/dist/cmd/new/builtin-wit.js +53 -0
- package/dist/cmd/new/builtin-wit.js.map +1 -0
- package/dist/cmd/new/oci-wit.d.ts +5 -0
- package/dist/cmd/new/oci-wit.d.ts.map +1 -0
- package/dist/cmd/new/oci-wit.js +124 -0
- package/dist/cmd/new/oci-wit.js.map +1 -0
- package/dist/cmd/new.d.ts.map +1 -1
- package/dist/cmd/new.js +58 -39
- package/dist/cmd/new.js.map +1 -1
- package/dist/cmd/run.d.ts +8 -0
- package/dist/cmd/run.d.ts.map +1 -1
- package/dist/cmd/run.js +202 -6
- package/dist/cmd/run.js.map +1 -1
- package/dist/cmd/transpile.d.ts +3 -0
- package/dist/cmd/transpile.d.ts.map +1 -1
- package/dist/cmd/transpile.js +3 -0
- package/dist/cmd/transpile.js.map +1 -1
- package/dist/cmd/types.d.ts +3 -0
- package/dist/cmd/types.d.ts.map +1 -1
- package/dist/cmd/types.js +6 -1
- package/dist/cmd/types.js.map +1 -1
- package/dist/jco.js +22 -3
- package/dist/jco.js.map +1 -1
- package/lib/wit/builtin/0.2.12/wasi-cli/package.wit +64 -0
- package/lib/wit/builtin/0.2.12/wasi-clocks/package.wit +43 -0
- package/lib/wit/builtin/0.2.12/wasi-filesystem/package.wit +196 -0
- package/lib/wit/builtin/0.2.12/wasi-http/package.wit +205 -0
- package/lib/wit/builtin/0.2.12/wasi-io/package.wit +66 -0
- package/lib/wit/builtin/0.2.12/wasi-random/package.wit +17 -0
- package/lib/wit/builtin/0.2.12/wasi-sockets/package.wit +164 -0
- package/lib/wit/builtin/0.3.0/wasi-cli/package.wit +70 -0
- package/lib/wit/builtin/0.3.0/wasi-clocks/package.wit +42 -0
- package/lib/wit/builtin/0.3.0/wasi-filesystem/package.wit +184 -0
- package/lib/wit/builtin/0.3.0/wasi-http/package.wit +170 -0
- package/lib/wit/builtin/0.3.0/wasi-random/package.wit +17 -0
- package/lib/wit/builtin/0.3.0/wasi-sockets/package.wit +105 -0
- package/lib/wit/builtin/LICENSE.md +8 -0
- package/lib/wit/builtin/README.md +12 -0
- package/package.json +4 -4
- 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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"}
|
package/dist/cmd/new.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/cmd/new.ts"],"names":[],"mappings":"
|
|
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
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
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()) {
|
package/dist/cmd/new.js.map
CHANGED
|
@@ -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;
|
package/dist/cmd/run.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|