@swiftbrowser/cli 0.6.7 → 0.8.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 +82 -11
- package/dist/appSources.d.ts +116 -0
- package/dist/appSources.js +624 -0
- package/dist/appSources.js.map +1 -0
- package/dist/browser.d.ts +4 -0
- package/dist/browser.js +8 -0
- package/dist/browser.js.map +1 -0
- package/dist/build.d.ts +17 -2
- package/dist/build.js +38 -11
- package/dist/build.js.map +1 -1
- package/dist/cli.js +28 -4
- package/dist/cli.js.map +1 -1
- package/dist/commands/build.js +10 -7
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/check.js +38 -8
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/dev.d.ts +8 -4
- package/dist/commands/dev.js +25 -10
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/doctor.d.ts +8 -0
- package/dist/commands/doctor.js +52 -4
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/kit.d.ts +1 -0
- package/dist/commands/kit.js +20 -5
- package/dist/commands/kit.js.map +1 -1
- package/dist/commands/shared.d.ts +24 -6
- package/dist/commands/shared.js +92 -16
- package/dist/commands/shared.js.map +1 -1
- package/dist/commands/test.d.ts +4 -2
- package/dist/commands/test.js +25 -17
- package/dist/commands/test.js.map +1 -1
- package/dist/compat.d.ts +2 -30
- package/dist/compat.js +2 -44
- package/dist/compat.js.map +1 -1
- package/dist/compiler.d.ts +50 -0
- package/dist/compiler.js +94 -0
- package/dist/compiler.js.map +1 -0
- package/dist/config.d.ts +5 -2
- package/dist/config.js +7 -3
- package/dist/config.js.map +1 -1
- package/dist/frameworks.d.ts +30 -0
- package/dist/frameworks.js +48 -0
- package/dist/frameworks.js.map +1 -0
- package/dist/icu.d.ts +2 -4
- package/dist/icu.js +7 -36
- package/dist/icu.js.map +1 -1
- package/dist/kit.d.ts +62 -17
- package/dist/kit.js +183 -33
- package/dist/kit.js.map +1 -1
- package/dist/log.js +2 -1
- package/dist/log.js.map +1 -1
- package/dist/manifest.d.ts +73 -0
- package/dist/manifest.js +324 -0
- package/dist/manifest.js.map +1 -0
- package/dist/moduleCache.d.ts +20 -0
- package/dist/moduleCache.js +98 -0
- package/dist/moduleCache.js.map +1 -0
- package/dist/objc.js +1 -1
- package/dist/objc.js.map +1 -1
- package/dist/packages.d.ts +8 -1
- package/dist/packages.js +10 -2
- package/dist/packages.js.map +1 -1
- package/dist/registry.d.ts +46 -0
- package/dist/registry.js +184 -0
- package/dist/registry.js.map +1 -0
- package/dist/resolve.d.ts +80 -0
- package/dist/resolve.js +396 -0
- package/dist/resolve.js.map +1 -0
- package/dist/stage.d.ts +5 -144
- package/dist/stage.js +19 -516
- package/dist/stage.js.map +1 -1
- package/dist/testDiscovery.d.ts +44 -0
- package/dist/testDiscovery.js +111 -0
- package/dist/testDiscovery.js.map +1 -0
- package/dist/vendor.d.ts +41 -5
- package/dist/vendor.js +71 -31
- package/dist/vendor.js.map +1 -1
- package/dist/wasmCompiler.d.ts +160 -0
- package/dist/wasmCompiler.js +628 -0
- package/dist/wasmCompiler.js.map +1 -0
- package/dist/wasmFlags.d.ts +31 -0
- package/dist/wasmFlags.js +56 -0
- package/dist/wasmFlags.js.map +1 -0
- package/dist/wasmPackages.d.ts +163 -0
- package/dist/wasmPackages.js +466 -0
- package/dist/wasmPackages.js.map +1 -0
- package/dist/wasmSdk.d.ts +27 -0
- package/dist/wasmSdk.js +103 -0
- package/dist/wasmSdk.js.map +1 -0
- package/package.json +6 -5
package/dist/commands/doctor.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
// `swiftbrowser doctor [--install]`: is everything a build needs here?
|
|
1
|
+
// `swiftbrowser doctor [--install]`: is everything a build needs here? The
|
|
2
|
+
// native toolchain and its Swift SDK for WebAssembly, or the WebAssembly
|
|
3
|
+
// compiler and the SDK's files (the CLI downloads them when there is no
|
|
4
|
+
// toolchain to install them), per SWIFTBROWSER_COMPILER (compiler.ts).
|
|
5
|
+
import { compilerChoice } from '../compiler.js';
|
|
2
6
|
import { SWIFT_VERSION, WASM_SDK, WASM_SDK_CHECKSUM, WASM_SDK_URL, findToolchain, findWasmOpt, hasWasmSdk, installBinaryen, installWasmSdk } from '../toolchain.js';
|
|
3
|
-
import { bad, bold, dim, info, ok, warn } from '../log.js';
|
|
7
|
+
import { CliError, bad, bold, dim, info, ok, warn } from '../log.js';
|
|
8
|
+
import { wasmToolsProblem } from '../wasmCompiler.js';
|
|
9
|
+
import { findWasmSdk, installManagedWasmSdk } from '../wasmSdk.js';
|
|
4
10
|
export const SWIFT_INSTALL_HINT = [
|
|
5
11
|
`install Swift ${SWIFT_VERSION} with swiftly (https://www.swift.org/install/):`,
|
|
6
12
|
` swiftly install ${SWIFT_VERSION} --use`,
|
|
@@ -11,11 +17,23 @@ export async function doctor(options = {}) {
|
|
|
11
17
|
const nodeMajor = Number(process.versions.node.split('.')[0]);
|
|
12
18
|
const node = nodeMajor >= 22;
|
|
13
19
|
info(node ? ok(`Node ${process.versions.node}`) : bad(`Node ${process.versions.node}: 22 or newer is needed`));
|
|
20
|
+
let choice = null;
|
|
21
|
+
try {
|
|
22
|
+
choice = compilerChoice();
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
info(bad(error instanceof CliError ? error.message : String(error)));
|
|
26
|
+
}
|
|
14
27
|
const found = findToolchain();
|
|
15
28
|
let toolchain = found.toolchain;
|
|
16
29
|
if (toolchain) {
|
|
17
30
|
info(ok(`Swift ${toolchain.version} ${dim(toolchain.swift)}`));
|
|
18
31
|
}
|
|
32
|
+
else if (choice === 'wasm' || choice === 'auto') {
|
|
33
|
+
// The WebAssembly compiler builds without it.
|
|
34
|
+
const have = found.fallback ? `Swift ${found.fallback.version} at ${found.fallback.swift}, not ${SWIFT_VERSION}` : `Swift ${SWIFT_VERSION} not found`;
|
|
35
|
+
info(warn(`${have}: the WebAssembly compiler builds without it; only a kit for an edited shim needs it`));
|
|
36
|
+
}
|
|
19
37
|
else if (found.fallback) {
|
|
20
38
|
info(bad(`Swift ${found.fallback.version} at ${found.fallback.swift}: SwiftBrowser needs ${SWIFT_VERSION}`));
|
|
21
39
|
info(` ${SWIFT_INSTALL_HINT}`);
|
|
@@ -42,6 +60,26 @@ export async function doctor(options = {}) {
|
|
|
42
60
|
info(dim(' (or run `swiftbrowser doctor --install`)'));
|
|
43
61
|
}
|
|
44
62
|
}
|
|
63
|
+
const wasmTools = await wasmToolsProblem();
|
|
64
|
+
info(wasmTools ? warn(`the WebAssembly compiler: ${wasmTools}`) : ok('the WebAssembly compiler'));
|
|
65
|
+
let sdk = findWasmSdk(toolchain);
|
|
66
|
+
if (sdk) {
|
|
67
|
+
info(ok(`the Swift SDK for WebAssembly's files ${dim(sdk.root)}`));
|
|
68
|
+
}
|
|
69
|
+
else if (!toolchain && options.install) {
|
|
70
|
+
// No toolchain to install it: the WebAssembly compiler needs only the files.
|
|
71
|
+
info(` downloading ${WASM_SDK} (93 MB)…`);
|
|
72
|
+
try {
|
|
73
|
+
sdk = await installManagedWasmSdk();
|
|
74
|
+
info(ok(`the Swift SDK for WebAssembly's files ${dim(sdk.root)}`));
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
info(bad(`downloading the SDK failed: ${error instanceof Error ? error.message : String(error)}`));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else if (!toolchain) {
|
|
81
|
+
info(bad(`the Swift SDK for WebAssembly (${WASM_SDK}) is not here; \`swiftbrowser doctor --install\` downloads it`));
|
|
82
|
+
}
|
|
45
83
|
let wasmOpt = findWasmOpt();
|
|
46
84
|
if (wasmOpt) {
|
|
47
85
|
info(ok(`wasm-opt ${dim(wasmOpt)}`));
|
|
@@ -59,8 +97,18 @@ export async function doctor(options = {}) {
|
|
|
59
97
|
else {
|
|
60
98
|
info(warn('wasm-opt not found: `build` ships unoptimized modules (about 2.5× larger); `swiftbrowser doctor --install` downloads binaryen'));
|
|
61
99
|
}
|
|
62
|
-
|
|
100
|
+
const nativeReady = toolchain !== null && wasmSdk;
|
|
101
|
+
const wasmReady = sdk !== null && wasmTools === null;
|
|
102
|
+
const ready = choice === 'native' ? nativeReady : choice === 'wasm' ? wasmReady : choice === 'auto' ? nativeReady || wasmReady : false;
|
|
103
|
+
if (choice) {
|
|
104
|
+
// What builds use now: under auto, the toolchain when it is ready, else the WebAssembly compiler.
|
|
105
|
+
const using = choice === 'native' || (choice === 'auto' && nativeReady) ? 'the Swift toolchain'
|
|
106
|
+
: choice === 'wasm' || wasmReady ? 'the Swift compiler built as WebAssembly' : 'nothing yet';
|
|
107
|
+
const hint = choice === 'native' && !nativeReady && wasmReady ? '; --compiler wasm (or auto) builds without a Swift install' : '';
|
|
108
|
+
info(dim(`\ncompiler ${choice}: builds use ${using}${hint}`));
|
|
109
|
+
}
|
|
110
|
+
if (ready)
|
|
63
111
|
info(`\n${ok(bold('ready'))}: swiftbrowser dev <path-to-your-app>`);
|
|
64
|
-
return { toolchain, wasmSdk, wasmOpt, node };
|
|
112
|
+
return { toolchain, wasmSdk, sdk, wasmTools, wasmOpt, node, ready };
|
|
65
113
|
}
|
|
66
114
|
//# sourceMappingURL=doctor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,uEAAuE;AAEvE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAkB,MAAM,iBAAiB,CAAC;AACpL,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,yEAAyE;AACzE,wEAAwE;AACxE,uEAAuE;AAEvE,OAAO,EAAuB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAkB,MAAM,iBAAiB,CAAC;AACpL,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAgB,WAAW,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAoBjF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,iBAAiB,aAAa,iDAAiD;IAC/E,uBAAuB,aAAa,QAAQ;IAC5C,yDAAyD;CAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,UAAyB,EAAE;IACtD,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,OAAO,CAAC,QAAQ,CAAC,IAAI,yBAAyB,CAAC,CAAC,CAAC;IAE/G,IAAI,MAAM,GAA0B,IAAI,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,GAAG,cAAc,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,GAAG,CAAC,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAChC,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;SAAM,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAClD,8CAA8C;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,QAAQ,CAAC,OAAO,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,SAAS,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,aAAa,YAAY,CAAC;QACtJ,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,sFAAsF,CAAC,CAAC,CAAC;IAC5G,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,QAAQ,CAAC,OAAO,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,wBAAwB,aAAa,EAAE,CAAC,CAAC,CAAC;QAC7G,IAAI,CAAC,KAAK,kBAAkB,EAAE,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,CAAC,SAAS,aAAa,YAAY,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,kBAAkB,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QAChC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,6BAA6B,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,QAAQ,kBAAkB,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;YACzC,OAAO,GAAG,MAAM,CAAC,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,6BAA6B,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,+BAA+B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACzH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,8BAA8B,QAAQ,iBAAiB,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,uBAAuB,YAAY,eAAe,iBAAiB,EAAE,CAAC,CAAC;YAC5E,IAAI,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC3C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAClG,IAAI,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,CAAC,yCAAyC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;SAAM,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACzC,6EAA6E;QAC7E,IAAI,CAAC,iBAAiB,QAAQ,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,qBAAqB,EAAE,CAAC;YACpC,IAAI,CAAC,EAAE,CAAC,yCAAyC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,kCAAkC,QAAQ,+DAA+D,CAAC,CAAC,CAAC;IACvH,CAAC;IAED,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;IAC5B,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,EAAE,CAAC,YAAY,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;SAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAChC,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,eAAe,EAAE,CAAC;YAClC,IAAI,CAAC,EAAE,CAAC,YAAY,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,+HAA+H,CAAC,CAAC,CAAC;IAC9I,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,KAAK,IAAI,IAAI,OAAO,CAAC;IAClD,MAAM,SAAS,GAAG,GAAG,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,CAAC;IACrD,MAAM,KAAK,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IACvI,IAAI,MAAM,EAAE,CAAC;QACX,kGAAkG;QAClG,MAAM,KAAK,GAAG,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,qBAAqB;YAC7F,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,aAAa,CAAC;QAC/F,MAAM,IAAI,GAAG,MAAM,KAAK,QAAQ,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,4DAA4D,CAAC,CAAC,CAAC,EAAE,CAAC;QAClI,IAAI,CAAC,GAAG,CAAC,cAAc,MAAM,gBAAgB,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,KAAK;QAAE,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,uCAAuC,CAAC,CAAC;IAC/E,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACtE,CAAC"}
|
package/dist/commands/kit.d.ts
CHANGED
package/dist/commands/kit.js
CHANGED
|
@@ -1,21 +1,36 @@
|
|
|
1
1
|
// `swiftbrowser kit`: compiles the shim for WebAssembly ahead of a build
|
|
2
2
|
// (the first `build` or `dev` does it otherwise) and prints where it is.
|
|
3
|
+
// `--wasm-macros` also builds its macros as WebAssembly, for the WebAssembly
|
|
4
|
+
// compiler (the release packs them into @swiftbrowser/kit).
|
|
3
5
|
import { swiftPackagePath } from '@swiftbrowser/swift';
|
|
4
|
-
import {
|
|
6
|
+
import { findInstalled, swiftVersion } from '../compiler.js';
|
|
7
|
+
import { ensureKit, ensureWasmPlugins, kitId } from '../kit.js';
|
|
5
8
|
import { dim, info, ok, warn } from '../log.js';
|
|
9
|
+
import { probeKitWithWasmCompiler } from '../wasmCompiler.js';
|
|
6
10
|
import { requireToolchain } from './shared.js';
|
|
7
11
|
export async function kit(options = {}) {
|
|
8
12
|
const toolchain = requireToolchain({ wasm: true });
|
|
13
|
+
const installed = findInstalled();
|
|
14
|
+
const sdk = installed.sdk;
|
|
9
15
|
const shim = swiftPackagePath();
|
|
10
16
|
const started = Date.now();
|
|
11
|
-
const
|
|
12
|
-
|
|
17
|
+
const version = swiftVersion(installed);
|
|
18
|
+
const output = options.verbose ? { onOutput: (chunk) => process.stdout.write(chunk) } : {};
|
|
19
|
+
let found = await ensureKit({ toolchain, version, ...(sdk ? { probe: (candidate) => probeKitWithWasmCompiler(sdk, candidate) } : {}) }, shim, {
|
|
20
|
+
onBuild: () => info(dim(`compiling SwiftBrowser (${shim}) for WebAssembly, kit ${kitId(shim, { version })}…`)),
|
|
13
21
|
onPackaged: () => info(dim('copied from @swiftbrowser/kit')),
|
|
14
22
|
onPackagedRejected: (reason) => info(warn(`@swiftbrowser/kit's modules do not load with this toolchain (${reason})`)),
|
|
15
|
-
...
|
|
23
|
+
...output,
|
|
16
24
|
});
|
|
25
|
+
if (options.wasmMacros) {
|
|
26
|
+
found = await ensureWasmPlugins(found, toolchain, shim, {
|
|
27
|
+
onBuild: () => info(dim(`building ${found.manifest.macros.join(', ')} as WebAssembly…`)),
|
|
28
|
+
...output,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
17
31
|
const modules = Object.keys(found.manifest.targets).length;
|
|
18
|
-
|
|
32
|
+
const macros = found.manifest.wasmPlugins?.length ? `, macros as WebAssembly: ${found.manifest.wasmPlugins.join(', ')}` : '';
|
|
33
|
+
info(ok(`kit ${dim(`${found.dir} (${modules} modules${macros}, ${((Date.now() - started) / 1000).toFixed(1)} s)`)}`));
|
|
19
34
|
return found.dir;
|
|
20
35
|
}
|
|
21
36
|
//# sourceMappingURL=kit.js.map
|
package/dist/commands/kit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kit.js","sourceRoot":"","sources":["../../src/commands/kit.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,yEAAyE;
|
|
1
|
+
{"version":3,"file":"kit.js","sourceRoot":"","sources":["../../src/commands/kit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { type CompatReport } from '../compat.js';
|
|
2
|
+
import { type Compiler, type Installed } from '../compiler.js';
|
|
2
3
|
import { type Kit } from '../kit.js';
|
|
3
4
|
import { type ResolvedApp } from '../project.js';
|
|
4
5
|
import { type StagedApp } from '../stage.js';
|
|
5
6
|
import { type Toolchain } from '../toolchain.js';
|
|
6
|
-
import { type Vendored } from '../vendor.js';
|
|
7
|
+
import { type PackageNode, type Vendored } from '../vendor.js';
|
|
7
8
|
export interface AppOptions {
|
|
8
9
|
target?: string;
|
|
9
10
|
config?: string;
|
|
@@ -18,6 +19,8 @@ export interface Prepared {
|
|
|
18
19
|
staged: StagedApp;
|
|
19
20
|
/** Packages built from a copy adjusted for the shim (vendor.ts). */
|
|
20
21
|
vendored: Vendored;
|
|
22
|
+
/** Every package of the build, copied or not. */
|
|
23
|
+
packages: PackageNode[];
|
|
21
24
|
}
|
|
22
25
|
/** The required toolchain, or a CliError saying how to get it. */
|
|
23
26
|
export declare function requireToolchain(options: {
|
|
@@ -30,18 +33,33 @@ export interface Shim {
|
|
|
30
33
|
kit: Kit | null;
|
|
31
34
|
}
|
|
32
35
|
/**
|
|
33
|
-
* The shim as `build` and `
|
|
34
|
-
* this version, kit.ts),
|
|
35
|
-
*
|
|
36
|
-
* SWIFTBROWSER_KIT=0.
|
|
36
|
+
* The shim as `build`, `dev` and `check` use it: the kit (the shim compiled
|
|
37
|
+
* once for this version, kit.ts), or the shim's sources when there is nothing
|
|
38
|
+
* to get a kit with yet (the command stops after the report) or with
|
|
39
|
+
* SWIFTBROWSER_KIT=0. A native toolchain with its Swift SDK for WebAssembly
|
|
40
|
+
* checks a released kit and builds one when there is none; without one, the
|
|
41
|
+
* WebAssembly compiler checks a released kit and a kit cannot be built.
|
|
37
42
|
*/
|
|
38
|
-
export declare function wasmShim(options?: {
|
|
43
|
+
export declare function wasmShim(installed: Installed, options?: {
|
|
39
44
|
verbose?: boolean;
|
|
40
45
|
}): Promise<Shim>;
|
|
46
|
+
/**
|
|
47
|
+
* The compiler for this app (compiler.ts), said when `auto` takes the
|
|
48
|
+
* WebAssembly compiler; for the WebAssembly compiler, the shim's kit with
|
|
49
|
+
* its macros built as WebAssembly.
|
|
50
|
+
*/
|
|
51
|
+
export declare function resolveCompiler(installed: Installed, app: ResolvedApp, packages: readonly PackageNode[], shim: Shim, purpose: 'build' | 'check', options?: {
|
|
52
|
+
verbose?: boolean;
|
|
53
|
+
}): Promise<{
|
|
54
|
+
compiler: Compiler;
|
|
55
|
+
shim: Shim;
|
|
56
|
+
}>;
|
|
41
57
|
/** `stageOptions.tests` stages the app with its test targets (`swiftbrowser test`; stage.ts). */
|
|
42
58
|
export declare function prepare(input: string, options: AppOptions, shimPackage?: string, stageOptions?: {
|
|
43
59
|
tests?: boolean;
|
|
44
60
|
}): Promise<Prepared>;
|
|
61
|
+
/** Where an app's Package.resolved may be: its Xcode project's (or its workspace's), or its folder's. */
|
|
62
|
+
export declare function pinLocations(app: ResolvedApp): string[];
|
|
45
63
|
export declare function describeApp(app: ResolvedApp): void;
|
|
46
64
|
/** Prints the import report; returns whether anything is known to be unsupported. */
|
|
47
65
|
export declare function describeReport(report: CompatReport, app: ResolvedApp, vendored?: Vendored): boolean;
|
package/dist/commands/shared.js
CHANGED
|
@@ -5,11 +5,17 @@ import { swiftPackagePath } from '@swiftbrowser/swift';
|
|
|
5
5
|
import { compatReport, rewrittenTo } from '../compat.js';
|
|
6
6
|
import { CliError, bad, bold, cyan, dim, info, ok, warn, yellow } from '../log.js';
|
|
7
7
|
import { packageDisplayName, packageModules, packageSource, planPackages } from '../packages.js';
|
|
8
|
-
import {
|
|
8
|
+
import { chooseCompiler, compilerChoice, swiftVersion, wasmBlockers } from '../compiler.js';
|
|
9
|
+
import { ensureKit, ensureWasmPlugins, kitEnabled, kitSwiftFlags } from '../kit.js';
|
|
9
10
|
import { resolveApp } from '../project.js';
|
|
10
11
|
import { stage } from '../stage.js';
|
|
11
12
|
import { SWIFT_VERSION, findToolchain, hasWasmSdk } from '../toolchain.js';
|
|
12
|
-
import {
|
|
13
|
+
import { evaluateManifest } from '../manifest.js';
|
|
14
|
+
import { appPins, resolverPackageTools } from '../resolve.js';
|
|
15
|
+
import { httpRegistry, readRegistryConfiguration, registryConfigurationFiles } from '../registry.js';
|
|
16
|
+
import { swiftPMPackageTools, vendorPackages } from '../vendor.js';
|
|
17
|
+
import { findWasmSdk } from '../wasmSdk.js';
|
|
18
|
+
import { probeKitWithWasmCompiler, wasmToolsProblem } from '../wasmCompiler.js';
|
|
13
19
|
import { SWIFT_INSTALL_HINT } from './doctor.js';
|
|
14
20
|
/** The required toolchain, or a CliError saying how to get it. */
|
|
15
21
|
export function requireToolchain(options) {
|
|
@@ -24,31 +30,69 @@ export function requireToolchain(options) {
|
|
|
24
30
|
return found.toolchain;
|
|
25
31
|
}
|
|
26
32
|
/**
|
|
27
|
-
* The shim as `build` and `
|
|
28
|
-
* this version, kit.ts),
|
|
29
|
-
*
|
|
30
|
-
* SWIFTBROWSER_KIT=0.
|
|
33
|
+
* The shim as `build`, `dev` and `check` use it: the kit (the shim compiled
|
|
34
|
+
* once for this version, kit.ts), or the shim's sources when there is nothing
|
|
35
|
+
* to get a kit with yet (the command stops after the report) or with
|
|
36
|
+
* SWIFTBROWSER_KIT=0. A native toolchain with its Swift SDK for WebAssembly
|
|
37
|
+
* checks a released kit and builds one when there is none; without one, the
|
|
38
|
+
* WebAssembly compiler checks a released kit and a kit cannot be built.
|
|
31
39
|
*/
|
|
32
|
-
export async function wasmShim(options = {}) {
|
|
40
|
+
export async function wasmShim(installed, options = {}) {
|
|
33
41
|
const source = { path: swiftPackagePath(), swiftFlags: [], kit: null };
|
|
34
|
-
|
|
35
|
-
|
|
42
|
+
if (!kitEnabled())
|
|
43
|
+
return source;
|
|
44
|
+
const toolchain = installed.toolchain && installed.toolchainWasmSdk ? installed.toolchain : null;
|
|
45
|
+
const sdk = installed.sdk;
|
|
46
|
+
// Without a toolchain only the WebAssembly compiler can use a kit; the
|
|
47
|
+
// native one stops after the report, saying how to install Swift.
|
|
48
|
+
if (!toolchain && (compilerChoice() === 'native' || !sdk || (await wasmToolsProblem()) !== null))
|
|
36
49
|
return source;
|
|
37
50
|
const started = Date.now();
|
|
38
51
|
let built = false;
|
|
39
|
-
const kit = await ensureKit(
|
|
52
|
+
const kit = await ensureKit({
|
|
53
|
+
toolchain,
|
|
54
|
+
version: swiftVersion(installed),
|
|
55
|
+
...(sdk ? { probe: (candidate) => probeKitWithWasmCompiler(sdk, candidate) } : {}),
|
|
56
|
+
}, source.path, {
|
|
40
57
|
onBuild: () => {
|
|
41
58
|
built = true;
|
|
42
59
|
info(dim(`compiling SwiftBrowser for WebAssembly, once for this version (a few minutes; later builds reuse it)…`));
|
|
43
60
|
},
|
|
44
61
|
onPackaged: (packaged) => info(ok(`SwiftBrowser's prebuilt modules ${dim(`(@swiftbrowser/kit, ${packaged.dir})`)}`)),
|
|
45
|
-
onPackagedRejected: (reason) => info(warn(`@swiftbrowser/kit's modules do not load with this
|
|
62
|
+
onPackagedRejected: (reason) => info(warn(`@swiftbrowser/kit's modules do not load with this compiler (${reason}); compiling SwiftBrowser instead`)),
|
|
46
63
|
...(options.verbose ? { onOutput: (chunk) => process.stdout.write(chunk) } : {}),
|
|
47
64
|
});
|
|
48
65
|
if (built)
|
|
49
66
|
info(ok(`SwiftBrowser compiled ${dim(`(${((Date.now() - started) / 1000).toFixed(1)} s, ${kit.dir})`)}`));
|
|
50
67
|
return { path: kit.package, swiftFlags: kitSwiftFlags(kit), kit };
|
|
51
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* The compiler for this app (compiler.ts), said when `auto` takes the
|
|
71
|
+
* WebAssembly compiler; for the WebAssembly compiler, the shim's kit with
|
|
72
|
+
* its macros built as WebAssembly.
|
|
73
|
+
*/
|
|
74
|
+
export async function resolveCompiler(installed, app, packages, shim, purpose, options = {}) {
|
|
75
|
+
const choice = compilerChoice();
|
|
76
|
+
const compiler = chooseCompiler({
|
|
77
|
+
choice,
|
|
78
|
+
installed,
|
|
79
|
+
wasmTools: choice === 'native' ? null : await wasmToolsProblem(),
|
|
80
|
+
// check type-checks the app alone: its packages' modules come from a build.
|
|
81
|
+
blockers: [...wasmBlockers(app, packages), ...(purpose === 'check' && packages.length > 0 ? ['checking against its packages takes their build'] : [])],
|
|
82
|
+
purpose,
|
|
83
|
+
nativeHint: SWIFT_INSTALL_HINT,
|
|
84
|
+
});
|
|
85
|
+
if (compiler.fallback)
|
|
86
|
+
info(dim(` the Swift compiler as WebAssembly: ${compiler.fallback} (--compiler native needs it)`));
|
|
87
|
+
if (compiler.kind !== 'wasm' || !shim.kit)
|
|
88
|
+
return { compiler, shim };
|
|
89
|
+
const toolchain = installed.toolchain && installed.toolchainWasmSdk ? installed.toolchain : null;
|
|
90
|
+
const kit = await ensureWasmPlugins(shim.kit, toolchain, swiftPackagePath(), {
|
|
91
|
+
onBuild: () => info(dim('building SwiftBrowser\'s macros as WebAssembly, once for this version (minutes the first time)…')),
|
|
92
|
+
...(options.verbose ? { onOutput: (chunk) => process.stdout.write(chunk) } : {}),
|
|
93
|
+
});
|
|
94
|
+
return { compiler, shim: { ...shim, kit } };
|
|
95
|
+
}
|
|
52
96
|
/** `stageOptions.tests` stages the app with its test targets (`swiftbrowser test`; stage.ts). */
|
|
53
97
|
export async function prepare(input, options, shimPackage = swiftPackagePath(), stageOptions = {}) {
|
|
54
98
|
const resolveOptions = {};
|
|
@@ -61,10 +105,7 @@ export async function prepare(input, options, shimPackage = swiftPackagePath(),
|
|
|
61
105
|
app.corsProxy = options.corsProxy;
|
|
62
106
|
if (options.blockHosts?.length)
|
|
63
107
|
app.blockHosts = [...new Set([...(app.blockHosts ?? []), ...options.blockHosts])];
|
|
64
|
-
|
|
65
|
-
// toolchain the command stops with how to get it once the report is out.
|
|
66
|
-
const toolchain = findToolchain().toolchain;
|
|
67
|
-
const vendored = toolchain ? await vendorPackages(app, toolchain, shimPackage) : new Map();
|
|
108
|
+
const { vendored, packages } = await vendorPackages(app, await packageTools(app), shimPackage);
|
|
68
109
|
// The modules of every package built against the shim count as supported
|
|
69
110
|
// too: an app imports its local packages' dependencies (Nuke through its
|
|
70
111
|
// own DesignSystem package, say) without linking them itself.
|
|
@@ -78,7 +119,42 @@ export async function prepare(input, options, shimPackage = swiftPackagePath(),
|
|
|
78
119
|
const staged = stage(app, shimPackage, { vendored, ...(stageOptions.tests ? { tests: true } : {}) });
|
|
79
120
|
for (const warning of staged.localizationWarnings)
|
|
80
121
|
info(warn(`string tables: ${warning}`));
|
|
81
|
-
return { app, report, staged, vendored };
|
|
122
|
+
return { app, report, staged, vendored, packages };
|
|
123
|
+
}
|
|
124
|
+
/** Where an app's Package.resolved may be: its Xcode project's (or its workspace's), or its folder's. */
|
|
125
|
+
export function pinLocations(app) {
|
|
126
|
+
const resolved = path.join('xcshareddata', 'swiftpm', 'Package.resolved');
|
|
127
|
+
if (app.origin.kind === 'xcodeproj') {
|
|
128
|
+
const project = app.origin.project;
|
|
129
|
+
return [
|
|
130
|
+
path.join(project, 'project.xcworkspace', resolved),
|
|
131
|
+
path.join(path.dirname(project), `${path.basename(project, '.xcodeproj')}.xcworkspace`, resolved),
|
|
132
|
+
path.join(path.dirname(project), 'Package.resolved'),
|
|
133
|
+
];
|
|
134
|
+
}
|
|
135
|
+
return [path.join(app.root, 'Package.resolved')];
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* How the app's packages are resolved and read: SwiftPM when there is a
|
|
139
|
+
* toolchain and SWIFTBROWSER_COMPILER is not `wasm`, else the CLI's resolver
|
|
140
|
+
* with manifests read by the WebAssembly compiler (resolve.ts, manifest.ts).
|
|
141
|
+
* Without either, none: the
|
|
142
|
+
* command reports the packages and stops with what to install.
|
|
143
|
+
*/
|
|
144
|
+
async function packageTools(app) {
|
|
145
|
+
const none = { resolve: async () => [], targets: async () => [] };
|
|
146
|
+
const toolchain = findToolchain().toolchain;
|
|
147
|
+
if (toolchain && compilerChoice() !== 'wasm')
|
|
148
|
+
return swiftPMPackageTools(toolchain);
|
|
149
|
+
const sdk = findWasmSdk(toolchain);
|
|
150
|
+
if (!sdk || (await wasmToolsProblem()) !== null)
|
|
151
|
+
return none;
|
|
152
|
+
return resolverPackageTools({
|
|
153
|
+
readManifest: (dir) => evaluateManifest(dir, sdk),
|
|
154
|
+
pins: appPins(pinLocations(app)),
|
|
155
|
+
registry: httpRegistry(readRegistryConfiguration(registryConfigurationFiles(app.root))),
|
|
156
|
+
onProgress: (text) => info(dim(` ${text}`)),
|
|
157
|
+
});
|
|
82
158
|
}
|
|
83
159
|
export function describeApp(app) {
|
|
84
160
|
const origin = app.origin.kind === 'xcodeproj'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/test.d.ts
CHANGED
|
@@ -15,8 +15,10 @@ export declare function testingLibraries(sources: readonly string[]): {
|
|
|
15
15
|
export declare function test(input: string, options: TestOptions): Promise<void>;
|
|
16
16
|
/**
|
|
17
17
|
* Runs one test module in a child process (testRunner.ts), printing its output
|
|
18
|
-
* with staged paths mapped back to the user's files
|
|
18
|
+
* with staged paths mapped back to the user's files (`stagedRoot`: where the
|
|
19
|
+
* compiler saw the staged app, when not at its own path); resolves to its exit
|
|
20
|
+
* status.
|
|
19
21
|
* Both of its streams print to stdout, where the rest of the command's output
|
|
20
22
|
* goes: XCTest reports on stdout, Swift Testing on stderr.
|
|
21
23
|
*/
|
|
22
|
-
export declare function runTestModule(module: string, args: readonly string[], staged: StagedApp): Promise<number>;
|
|
24
|
+
export declare function runTestModule(module: string, args: readonly string[], staged: StagedApp, stagedRoot?: string): Promise<number>;
|
package/dist/commands/test.js
CHANGED
|
@@ -2,19 +2,25 @@
|
|
|
2
2
|
// targets hosted by the app, or a folder's `*Tests` folders) built for
|
|
3
3
|
// WebAssembly against the shim and run under Node's WASI, in the runtime the
|
|
4
4
|
// browser runs the app in. XCTest and Swift Testing both run, as with
|
|
5
|
-
// `swift test`.
|
|
5
|
+
// `swift test`. SwiftPM builds them, or, when SWIFTBROWSER_COMPILER picks it,
|
|
6
|
+
// the WebAssembly compiler (wasmCompiler.ts, buildTestsWithWasmCompiler).
|
|
6
7
|
import { spawn } from 'node:child_process';
|
|
7
8
|
import { readFileSync } from 'node:fs';
|
|
8
9
|
import path from 'node:path';
|
|
9
10
|
import { createInterface } from 'node:readline';
|
|
10
11
|
import { fileURLToPath } from 'node:url';
|
|
11
12
|
import { buildTests } from '../build.js';
|
|
13
|
+
import { findInstalled } from '../compiler.js';
|
|
14
|
+
import { buildTestsWithWasmCompiler } from '../wasmCompiler.js';
|
|
12
15
|
import { importsOf } from '../compat.js';
|
|
13
16
|
import { CliError, bold, dim, info, ok } from '../log.js';
|
|
14
17
|
import { remapDiagnostics } from '../stage.js';
|
|
15
|
-
import {
|
|
18
|
+
import { describeCompiler } from './dev.js';
|
|
19
|
+
import { describeApp, describeReport, prepare, resolveCompiler, wasmShim } from './shared.js';
|
|
16
20
|
/** The runner script (testRunner.ts), beside this command's folder in dist/. */
|
|
17
21
|
const RUNNER = fileURLToPath(new URL('../testRunner.js', import.meta.url));
|
|
22
|
+
/** Where the WebAssembly compiler sees the staged app (wasmCompiler.ts): the paths its tests report from `#file`. */
|
|
23
|
+
const WASM_STAGED_ROOT = '/app/';
|
|
18
24
|
/** Swift Testing's exit status when no test ran (EX_UNAVAILABLE): not a failure. */
|
|
19
25
|
const NO_TESTS_RAN = 69;
|
|
20
26
|
/**
|
|
@@ -29,8 +35,10 @@ export function testingLibraries(sources) {
|
|
|
29
35
|
return xctest || swiftTesting ? { xctest, swiftTesting } : { xctest: true, swiftTesting: true };
|
|
30
36
|
}
|
|
31
37
|
export async function test(input, options) {
|
|
32
|
-
const
|
|
33
|
-
const
|
|
38
|
+
const installed = findInstalled();
|
|
39
|
+
const verbose = options.verbose ? { verbose: true } : {};
|
|
40
|
+
const kitShim = await wasmShim(installed, verbose);
|
|
41
|
+
const { app, report, staged, vendored, packages } = await prepare(input, options, kitShim.path, { tests: true });
|
|
34
42
|
describeApp(app);
|
|
35
43
|
describeReport(report, app, vendored);
|
|
36
44
|
const targets = app.tests ?? [];
|
|
@@ -42,16 +50,13 @@ export async function test(input, options) {
|
|
|
42
50
|
}
|
|
43
51
|
for (const target of targets)
|
|
44
52
|
info(dim(` tests: ${target.name}, ${target.sources.length} Swift file${target.sources.length === 1 ? '' : 's'}`));
|
|
45
|
-
const
|
|
46
|
-
info(dim(`\nbuilding ${app.name}'s tests for WebAssembly (debug)…`));
|
|
53
|
+
const { compiler, shim } = await resolveCompiler(installed, app, packages, kitShim, 'build', verbose);
|
|
54
|
+
info(dim(`\nbuilding ${app.name}'s tests for WebAssembly (debug, ${describeCompiler(compiler)})…`));
|
|
47
55
|
const started = Date.now();
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
staged,
|
|
51
|
-
app,
|
|
52
|
-
swiftFlags: shim.swiftFlags,
|
|
53
|
-
...(options.verbose ? { onOutput: (chunk) => process.stdout.write(chunk) } : {}),
|
|
54
|
-
});
|
|
56
|
+
const onOutput = options.verbose ? { onOutput: (chunk) => process.stdout.write(chunk) } : {};
|
|
57
|
+
const modules = compiler.kind === 'wasm'
|
|
58
|
+
? await buildTestsWithWasmCompiler({ toolchain: compiler.toolchain, sdk: compiler.sdk, staged, app, kit: shim.kit, icu: null, vendored, packages, tests: targets, ...onOutput })
|
|
59
|
+
: await buildTests({ toolchain: compiler.toolchain, staged, app, swiftFlags: shim.swiftFlags, ...onOutput });
|
|
55
60
|
info(ok(`built ${dim(`(${((Date.now() - started) / 1000).toFixed(1)} s)`)}`));
|
|
56
61
|
const libraries = testingLibraries(targets.flatMap((target) => target.sources.map((file) => readFileSync(file, 'utf8'))));
|
|
57
62
|
const passes = [
|
|
@@ -63,7 +68,7 @@ export async function test(input, options) {
|
|
|
63
68
|
const name = path.basename(module).replace(/(-test-runner\.wasm|\.xctest)$/, '');
|
|
64
69
|
for (const pass of passes) {
|
|
65
70
|
info(dim(`\n${name} · ${pass.library}`));
|
|
66
|
-
const status = await runTestModule(module, pass.args, staged);
|
|
71
|
+
const status = await runTestModule(module, pass.args, staged, compiler.kind === 'wasm' ? WASM_STAGED_ROOT : undefined);
|
|
67
72
|
if (status !== 0 && !(pass.library === 'Swift Testing' && status === NO_TESTS_RAN))
|
|
68
73
|
failed.push(`${name} (${pass.library})`);
|
|
69
74
|
}
|
|
@@ -76,15 +81,18 @@ export async function test(input, options) {
|
|
|
76
81
|
}
|
|
77
82
|
/**
|
|
78
83
|
* Runs one test module in a child process (testRunner.ts), printing its output
|
|
79
|
-
* with staged paths mapped back to the user's files
|
|
84
|
+
* with staged paths mapped back to the user's files (`stagedRoot`: where the
|
|
85
|
+
* compiler saw the staged app, when not at its own path); resolves to its exit
|
|
86
|
+
* status.
|
|
80
87
|
* Both of its streams print to stdout, where the rest of the command's output
|
|
81
88
|
* goes: XCTest reports on stdout, Swift Testing on stderr.
|
|
82
89
|
*/
|
|
83
|
-
export function runTestModule(module, args, staged) {
|
|
90
|
+
export function runTestModule(module, args, staged, stagedRoot) {
|
|
84
91
|
return new Promise((resolve, reject) => {
|
|
85
92
|
const child = spawn(process.execPath, ['--no-warnings', RUNNER, module, ...args], { stdio: ['ignore', 'pipe', 'pipe'] });
|
|
86
93
|
const forward = (stream) => {
|
|
87
|
-
|
|
94
|
+
const staging = (line) => (stagedRoot ? line.split(stagedRoot).join(`${staged.dir}${path.sep}`) : line);
|
|
95
|
+
createInterface({ input: stream, crlfDelay: Infinity }).on('line', (line) => process.stdout.write(`${remapDiagnostics(staging(line), staged)}\n`));
|
|
88
96
|
};
|
|
89
97
|
forward(child.stdout);
|
|
90
98
|
forward(child.stderr);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,uEAAuE;AACvE,6EAA6E;AAC7E,sEAAsE;AACtE,
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"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"}
|
package/dist/compat.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { EMPTY_FRAMEWORKS, LINKED_FRAMEWORKS, STAND_IN_FRAMEWORKS, importsOf } from './frameworks.js';
|
|
2
|
+
export { EMPTY_FRAMEWORKS, LINKED_FRAMEWORKS, STAND_IN_FRAMEWORKS, importsOf };
|
|
1
3
|
/**
|
|
2
4
|
* `empty`: the shim has a module of that name with nothing in it, so an
|
|
3
5
|
* unused import compiles, and any use is a compile error (EMPTY_FRAMEWORKS;
|
|
@@ -21,36 +23,6 @@ export interface CompatReport {
|
|
|
21
23
|
/** Whether some file declares `@main`. */
|
|
22
24
|
hasMain: boolean;
|
|
23
25
|
}
|
|
24
|
-
/**
|
|
25
|
-
* Apple frameworks the shim stands in for, as far as apps commonly use them:
|
|
26
|
-
* StoreKit's `requestReview` (a no-op), Core Location's coordinate type, a
|
|
27
|
-
* LocalAuthentication `LAContext` that always succeeds, Core ML for the
|
|
28
|
-
* tabular models Create ML makes (coreml.ts), PhotosUI's `PhotosPicker` over
|
|
29
|
-
* the page's file chooser (with the `UTType`s of UniformTypeIdentifiers),
|
|
30
|
-
* Core Image's built-in filters and QR code generator (drawn by the page), and
|
|
31
|
-
* UserNotifications over the browser's Notification API; the frameworks under
|
|
32
|
-
* SwiftUI that packages build on (UIKit's images and colors, Core Graphics
|
|
33
|
-
* contexts and Image I/O sources over the shim's image recipes, CryptoKit's
|
|
34
|
-
* hashes and CommonCrypto's digest functions over them, os's locks and logs
|
|
35
|
-
* (and OSLog, which re-exports it),
|
|
36
|
-
* Combine (OpenCombine), MobileCoreServices' kUTType constants, Security's
|
|
37
|
-
* keychain items over a file in the app's home, zlib's inflate API, which
|
|
38
|
-
* re-exports Compression's, Core Text's font registration, MapKit's
|
|
39
|
-
* SwiftUI map, drawn without map data, and WeatherKit's service, whose
|
|
40
|
-
* requests throw); plus
|
|
41
|
-
* packages that cannot build for the browser (none today; see packages.ts).
|
|
42
|
-
* Each is a small module linked only into apps that import it (stage.ts).
|
|
43
|
-
*/
|
|
44
|
-
export declare const STAND_IN_FRAMEWORKS: readonly ["StoreKit", "CoreLocation", "LocalAuthentication", "CoreML", "PhotosUI", "UniformTypeIdentifiers", "CoreImage", "UserNotifications", "UIKit", "CoreGraphics", "ImageIO", "CryptoKit", "os", "Combine", "CommonCrypto", "MobileCoreServices", "OSLog", "Security", "Accelerate", "AppIntents", "CoreHaptics", "NaturalLanguage", "Compression", "Symbols", "AudioToolbox", "AuthenticationServices", "SafariServices", "WebKit", "CoreTransferable", "Photos", "LinkPresentation", "Translation", "FoundationModels", "AVFoundation", "AVKit", "QuickLook", "zlib", "CoreText", "MapKit", "WeatherKit"];
|
|
45
|
-
/**
|
|
46
|
-
* Frameworks the shim has as empty modules: an import compiles, a use does
|
|
47
|
-
* not. Linked like the stand-ins when a source imports them.
|
|
48
|
-
*/
|
|
49
|
-
export declare const EMPTY_FRAMEWORKS: Readonly<Record<string, string>>;
|
|
50
|
-
/** The modules the staging links when a source imports them: the stand-ins and the empty ones. */
|
|
51
|
-
export declare const LINKED_FRAMEWORKS: readonly string[];
|
|
52
|
-
/** The modules a Swift source imports (first path component of each import). */
|
|
53
|
-
export declare function importsOf(source: string): string[];
|
|
54
26
|
/** Number of `#Preview` macro uses in a source. */
|
|
55
27
|
export declare function previewCount(source: string): number;
|
|
56
28
|
export declare function classify(module: string): ModuleStatus;
|