@swiftbrowser/cli 0.6.6 → 0.7.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 (90) hide show
  1. package/README.md +73 -5
  2. package/dist/appSources.d.ts +116 -0
  3. package/dist/appSources.js +624 -0
  4. package/dist/appSources.js.map +1 -0
  5. package/dist/browser.d.ts +4 -0
  6. package/dist/browser.js +8 -0
  7. package/dist/browser.js.map +1 -0
  8. package/dist/build.d.ts +17 -2
  9. package/dist/build.js +38 -11
  10. package/dist/build.js.map +1 -1
  11. package/dist/cli.js +28 -4
  12. package/dist/cli.js.map +1 -1
  13. package/dist/commands/build.js +10 -7
  14. package/dist/commands/build.js.map +1 -1
  15. package/dist/commands/check.js +38 -8
  16. package/dist/commands/check.js.map +1 -1
  17. package/dist/commands/dev.d.ts +8 -4
  18. package/dist/commands/dev.js +25 -10
  19. package/dist/commands/dev.js.map +1 -1
  20. package/dist/commands/doctor.d.ts +8 -0
  21. package/dist/commands/doctor.js +52 -4
  22. package/dist/commands/doctor.js.map +1 -1
  23. package/dist/commands/kit.d.ts +1 -0
  24. package/dist/commands/kit.js +20 -5
  25. package/dist/commands/kit.js.map +1 -1
  26. package/dist/commands/shared.d.ts +24 -6
  27. package/dist/commands/shared.js +92 -16
  28. package/dist/commands/shared.js.map +1 -1
  29. package/dist/commands/test.d.ts +4 -2
  30. package/dist/commands/test.js +25 -17
  31. package/dist/commands/test.js.map +1 -1
  32. package/dist/compat.d.ts +2 -30
  33. package/dist/compat.js +2 -44
  34. package/dist/compat.js.map +1 -1
  35. package/dist/compiler.d.ts +50 -0
  36. package/dist/compiler.js +94 -0
  37. package/dist/compiler.js.map +1 -0
  38. package/dist/config.d.ts +5 -2
  39. package/dist/config.js +7 -3
  40. package/dist/config.js.map +1 -1
  41. package/dist/frameworks.d.ts +30 -0
  42. package/dist/frameworks.js +48 -0
  43. package/dist/frameworks.js.map +1 -0
  44. package/dist/icu.d.ts +2 -4
  45. package/dist/icu.js +7 -36
  46. package/dist/icu.js.map +1 -1
  47. package/dist/kit.d.ts +44 -12
  48. package/dist/kit.js +149 -27
  49. package/dist/kit.js.map +1 -1
  50. package/dist/log.js +2 -1
  51. package/dist/log.js.map +1 -1
  52. package/dist/manifest.d.ts +73 -0
  53. package/dist/manifest.js +324 -0
  54. package/dist/manifest.js.map +1 -0
  55. package/dist/moduleCache.d.ts +20 -0
  56. package/dist/moduleCache.js +98 -0
  57. package/dist/moduleCache.js.map +1 -0
  58. package/dist/objc.js +1 -1
  59. package/dist/objc.js.map +1 -1
  60. package/dist/packages.d.ts +8 -1
  61. package/dist/packages.js +10 -2
  62. package/dist/packages.js.map +1 -1
  63. package/dist/registry.d.ts +46 -0
  64. package/dist/registry.js +184 -0
  65. package/dist/registry.js.map +1 -0
  66. package/dist/resolve.d.ts +80 -0
  67. package/dist/resolve.js +396 -0
  68. package/dist/resolve.js.map +1 -0
  69. package/dist/stage.d.ts +5 -144
  70. package/dist/stage.js +19 -516
  71. package/dist/stage.js.map +1 -1
  72. package/dist/testDiscovery.d.ts +44 -0
  73. package/dist/testDiscovery.js +111 -0
  74. package/dist/testDiscovery.js.map +1 -0
  75. package/dist/vendor.d.ts +41 -5
  76. package/dist/vendor.js +71 -31
  77. package/dist/vendor.js.map +1 -1
  78. package/dist/wasmCompiler.d.ts +160 -0
  79. package/dist/wasmCompiler.js +628 -0
  80. package/dist/wasmCompiler.js.map +1 -0
  81. package/dist/wasmFlags.d.ts +31 -0
  82. package/dist/wasmFlags.js +56 -0
  83. package/dist/wasmFlags.js.map +1 -0
  84. package/dist/wasmPackages.d.ts +163 -0
  85. package/dist/wasmPackages.js +466 -0
  86. package/dist/wasmPackages.js.map +1 -0
  87. package/dist/wasmSdk.d.ts +27 -0
  88. package/dist/wasmSdk.js +103 -0
  89. package/dist/wasmSdk.js.map +1 -0
  90. package/package.json +6 -5
@@ -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
- if (toolchain && wasmSdk)
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;AAa3D,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,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,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,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,IAAI,SAAS,IAAI,OAAO;QAAE,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,uCAAuC,CAAC,CAAC;IAC9F,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export declare function kit(options?: {
2
2
  verbose?: boolean;
3
+ wasmMacros?: boolean;
3
4
  }): Promise<string>;
@@ -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 { ensureKit, kitId } from '../kit.js';
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 found = await ensureKit(toolchain, shim, {
12
- onBuild: () => info(dim(`compiling SwiftBrowser (${shim}) for WebAssembly, kit ${kitId(shim, toolchain)}…`)),
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
- ...(options.verbose ? { onOutput: (chunk) => process.stdout.write(chunk) } : {}),
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
- info(ok(`kit ${dim(`${found.dir} (${modules} modules, ${((Date.now() - started) / 1000).toFixed(1)} s)`)}`));
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
@@ -1 +1 @@
1
- {"version":3,"file":"kit.js","sourceRoot":"","sources":["../../src/commands/kit.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,yEAAyE;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,UAAiC,EAAE;IAC3D,MAAM,SAAS,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE;QAC7C,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,2BAA2B,IAAI,0BAA0B,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QAC5G,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC5D,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,gEAAgE,MAAM,GAAG,CAAC,CAAC;QACrH,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzF,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAC3D,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,OAAO,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7G,OAAO,KAAK,CAAC,GAAG,CAAC;AACnB,CAAC"}
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 `dev` use it: the kit (the shim compiled once for
34
- * this version, kit.ts), built first if there is none, or the shim's sources
35
- * when there is no toolchain yet (the command stops after the report) or with
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;
@@ -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 { ensureKit, kitEnabled, kitSwiftFlags } from '../kit.js';
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 { vendorPackages } from '../vendor.js';
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 `dev` use it: the kit (the shim compiled once for
28
- * this version, kit.ts), built first if there is none, or the shim's sources
29
- * when there is no toolchain yet (the command stops after the report) or with
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
- const toolchain = findToolchain().toolchain;
35
- if (!toolchain || !kitEnabled() || !hasWasmSdk(toolchain))
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(toolchain, source.path, {
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 toolchain (${reason}); compiling SwiftBrowser instead`)),
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
- // Finding the packages that import SwiftUI takes SwiftPM; without the
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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"}
@@ -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; resolves to its exit status.
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>;
@@ -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 { describeApp, describeReport, prepare, requireToolchain, wasmShim } from './shared.js';
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 shim = await wasmShim(options.verbose ? { verbose: true } : {});
33
- const { app, report, staged, vendored } = await prepare(input, options, shim.path, { tests: true });
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 toolchain = requireToolchain({ wasm: true });
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 modules = await buildTests({
49
- toolchain,
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; resolves to its exit status.
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
- createInterface({ input: stream, crlfDelay: Infinity }).on('line', (line) => process.stdout.write(`${remapDiagnostics(line, staged)}\n`));
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":"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"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,uEAAuE;AACvE,6EAA6E;AAC7E,sEAAsE;AACtE,8EAA8E;AAC9E,0EAA0E;AAE1E,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAkB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAmB,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAM/G,gFAAgF;AAChF,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE3E,qHAAqH;AACrH,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEjC,oFAAoF;AACpF,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAA0B;IACzD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AAClG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,KAAa,EAAE,OAAoB;IAC5D,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjH,WAAW,CAAC,GAAG,CAAC,CAAC;IACjB,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;IAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW;YAC3C,CAAC,CAAC,2CAA2C,GAAG,CAAC,MAAM,CAAC,MAAM,+BAA+B;YAC7F,CAAC,CAAC,8CAA8C,CAAC;QACnD,MAAM,IAAI,QAAQ,CAAC,2BAA2B,GAAG,CAAC,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,IAAI,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM,cAAc,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACjJ,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACtG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,IAAI,oCAAoC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACpG,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrG,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,KAAK,MAAM;QACtC,CAAC,CAAC,MAAM,0BAA0B,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC;QACjL,CAAC,CAAC,MAAM,UAAU,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAU,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;IAChH,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9E,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1H,MAAM,MAAM,GAA0C;QACpD,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,mBAAmB,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAChH,CAAC;IACF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,gCAAgC,EAAE,EAAE,CAAC,CAAC;QACjF,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACvH,IAAI,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,eAAe,IAAI,MAAM,KAAK,YAAY,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QAC/H,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACzE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,iBAAiB,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;IACtH,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,IAAuB,EAAE,MAAiB,EAAE,UAAmB;IAC3G,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACzH,MAAM,OAAO,GAAG,CAAC,MAA6B,EAAQ,EAAE;YACtD,MAAM,OAAO,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxH,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACrJ,CAAC,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC"}
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;