@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
package/dist/compat.js CHANGED
@@ -2,46 +2,12 @@
2
2
  // build, so the report names the frameworks that will not compile instead of
3
3
  // a wall of unresolved-identifier errors.
4
4
  import { readFileSync } from 'node:fs';
5
+ import { EMPTY_FRAMEWORKS, LINKED_FRAMEWORKS, STAND_IN_FRAMEWORKS, importsOf } from './frameworks.js';
6
+ export { EMPTY_FRAMEWORKS, LINKED_FRAMEWORKS, STAND_IN_FRAMEWORKS, importsOf };
5
7
  // The C libraries are usually behind `#if canImport(...)`; whichever branch the wasm build takes is fine.
6
8
  const SUPPORTED = new Set(['SwiftUI', 'Swift', 'Observation', 'Foundation', 'FoundationEssentials', 'FoundationInternationalization', 'FoundationBridge', 'Charts', 'SwiftData', 'SwiftBrowser', 'WASILibc', 'Glibc', 'Musl', 'Darwin']);
7
- /**
8
- * Apple frameworks the shim stands in for, as far as apps commonly use them:
9
- * StoreKit's `requestReview` (a no-op), Core Location's coordinate type, a
10
- * LocalAuthentication `LAContext` that always succeeds, Core ML for the
11
- * tabular models Create ML makes (coreml.ts), PhotosUI's `PhotosPicker` over
12
- * the page's file chooser (with the `UTType`s of UniformTypeIdentifiers),
13
- * Core Image's built-in filters and QR code generator (drawn by the page), and
14
- * UserNotifications over the browser's Notification API; the frameworks under
15
- * SwiftUI that packages build on (UIKit's images and colors, Core Graphics
16
- * contexts and Image I/O sources over the shim's image recipes, CryptoKit's
17
- * hashes and CommonCrypto's digest functions over them, os's locks and logs
18
- * (and OSLog, which re-exports it),
19
- * Combine (OpenCombine), MobileCoreServices' kUTType constants, Security's
20
- * keychain items over a file in the app's home, zlib's inflate API, which
21
- * re-exports Compression's, Core Text's font registration, MapKit's
22
- * SwiftUI map, drawn without map data, and WeatherKit's service, whose
23
- * requests throw); plus
24
- * packages that cannot build for the browser (none today; see packages.ts).
25
- * Each is a small module linked only into apps that import it (stage.ts).
26
- */
27
- export const STAND_IN_FRAMEWORKS = [
28
- 'StoreKit', 'CoreLocation', 'LocalAuthentication', 'CoreML', 'PhotosUI', 'UniformTypeIdentifiers', 'CoreImage',
29
- 'UserNotifications', 'UIKit', 'CoreGraphics', 'ImageIO', 'CryptoKit', 'os', 'Combine',
30
- 'CommonCrypto', 'MobileCoreServices', 'OSLog', 'Security', 'Accelerate',
31
- 'AppIntents', 'CoreHaptics', 'NaturalLanguage', 'Compression',
32
- 'Symbols', 'AudioToolbox', 'AuthenticationServices', 'SafariServices', 'WebKit',
33
- 'CoreTransferable', 'Photos', 'LinkPresentation', 'Translation', 'FoundationModels',
34
- 'AVFoundation', 'AVKit', 'QuickLook', 'zlib', 'CoreText', 'MapKit', 'WeatherKit',
35
- ];
36
9
  for (const framework of STAND_IN_FRAMEWORKS)
37
10
  SUPPORTED.add(framework);
38
- /**
39
- * Frameworks the shim has as empty modules: an import compiles, a use does
40
- * not. Linked like the stand-ins when a source imports them.
41
- */
42
- export const EMPTY_FRAMEWORKS = {};
43
- /** The modules the staging links when a source imports them: the stand-ins and the empty ones. */
44
- export const LINKED_FRAMEWORKS = [...STAND_IN_FRAMEWORKS, ...Object.keys(EMPTY_FRAMEWORKS)];
45
11
  /** Frameworks the browser has no counterpart for yet, with the usual way out. */
46
12
  const UNSUPPORTED = {
47
13
  AppKit: 'AppKit has no browser counterpart; keep it behind `#if !SWIFTBROWSER`',
@@ -65,14 +31,6 @@ const UNSUPPORTED = {
65
31
  Network: 'Network.framework is not available; URLSession (over the browser\'s fetch) is',
66
32
  TipKit: 'TipKit is not available',
67
33
  };
68
- const IMPORT = /^\s*(?:@[A-Za-z_]+(?:\([^)]*\))?\s+)*(?:(?:public|package|internal|fileprivate|private)\s+)?import\s+(?:(?:struct|class|enum|protocol|typealias|func|let|var|actor)\s+)?([A-Za-z_][A-Za-z0-9_]*)/gm;
69
- /** The modules a Swift source imports (first path component of each import). */
70
- export function importsOf(source) {
71
- const out = [];
72
- for (const match of source.matchAll(IMPORT))
73
- out.push(match[1]);
74
- return out;
75
- }
76
34
  /** Number of `#Preview` macro uses in a source. */
77
35
  export function previewCount(source) {
78
36
  return (source.match(/^\s*#Preview\b/gm) ?? []).length;
@@ -1 +1 @@
1
- {"version":3,"file":"compat.js","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { ResolvedApp } from './project.js';
2
+ import { type Toolchain } from './toolchain.js';
3
+ import type { PackageNode } from './vendor.js';
4
+ import { type WasmSdk } from './wasmSdk.js';
5
+ export type CompilerChoice = 'native' | 'wasm' | 'auto';
6
+ /** What the compiler is when neither `--compiler` nor SWIFTBROWSER_COMPILER says. */
7
+ export declare const DEFAULT_COMPILER: CompilerChoice;
8
+ export declare function compilerChoice(env?: NodeJS.ProcessEnv): CompilerChoice;
9
+ /** The Swift version the native toolchain reports for SWIFT_VERSION (`6.4.0` → `6.4`), which kits are named with. */
10
+ export declare function reportedSwiftVersion(version?: string): string;
11
+ /** What this machine has for building. */
12
+ export interface Installed {
13
+ /** The native toolchain of the required version. */
14
+ toolchain: Toolchain | null;
15
+ /** Whether that toolchain has the Swift SDK for WebAssembly installed (what SwiftPM builds with). */
16
+ toolchainWasmSdk: boolean;
17
+ /** The SDK's files: the toolchain's install or the CLI's own download (wasmSdk.ts). */
18
+ sdk: WasmSdk | null;
19
+ }
20
+ export declare function findInstalled(env?: NodeJS.ProcessEnv): Installed;
21
+ /** The Swift version builds use: the toolchain's, else the one the WebAssembly tools are built from. */
22
+ export declare function swiftVersion(installed: Pick<Installed, 'toolchain'>): string;
23
+ /**
24
+ * Why the WebAssembly compiler cannot build this app here; empty when it can.
25
+ * Its packages it builds once they are resolved, by SwiftPM or without it
26
+ * (resolve.ts); `packages` is every package resolved.
27
+ */
28
+ export declare function wasmBlockers(app: Pick<ResolvedApp, 'packages'>, packages: readonly PackageNode[]): string[];
29
+ /** How a command builds this app. */
30
+ export interface Compiler {
31
+ kind: 'native' | 'wasm';
32
+ toolchain: Toolchain | null;
33
+ sdk: WasmSdk | null;
34
+ /** Why `auto` took the WebAssembly compiler: what the native toolchain lacks. */
35
+ fallback?: string;
36
+ }
37
+ export declare const WASM_SDK_HINT = "run `swiftbrowser doctor --install` to download the Swift SDK for WebAssembly";
38
+ /**
39
+ * The compiler for a build of `app` (`purpose: 'check'` needs no SDK for a
40
+ * native host compile). `wasmTools` is the problem with the WebAssembly tools,
41
+ * null when they are there (`wasmToolsProblem`).
42
+ */
43
+ export declare function chooseCompiler(options: {
44
+ choice: CompilerChoice;
45
+ installed: Installed;
46
+ wasmTools: string | null;
47
+ blockers: string[];
48
+ purpose: 'build' | 'check';
49
+ nativeHint: string;
50
+ }): Compiler;
@@ -0,0 +1,94 @@
1
+ // Which compiler builds an app: the native Swift toolchain through SwiftPM,
2
+ // or the Swift compiler built as WebAssembly (wasmCompiler.ts), which needs
3
+ // no Swift install. `--compiler` or SWIFTBROWSER_COMPILER picks:
4
+ //
5
+ // - `auto` (the default): the native toolchain when it is installed (it is
6
+ // faster), else the WebAssembly compiler from the npm packages, with a
7
+ // note saying why;
8
+ // - `native`: the toolchain and SwiftPM, or an error saying how to install it;
9
+ // - `wasm`: the WebAssembly compiler, or an error saying what it cannot build.
10
+ //
11
+ // What the WebAssembly compiler cannot build (wasmBlockers): packages nothing
12
+ // could resolve.
13
+ import { planPackages } from './packages.js';
14
+ import { CliError } from './log.js';
15
+ import { SWIFT_VERSION, findToolchain, hasWasmSdk } from './toolchain.js';
16
+ import { findWasmSdk } from './wasmSdk.js';
17
+ /** What the compiler is when neither `--compiler` nor SWIFTBROWSER_COMPILER says. */
18
+ export const DEFAULT_COMPILER = 'auto';
19
+ export function compilerChoice(env = process.env) {
20
+ const value = env['SWIFTBROWSER_COMPILER'];
21
+ if (value === undefined || value === '')
22
+ return DEFAULT_COMPILER;
23
+ if (value === 'native' || value === 'wasm' || value === 'auto')
24
+ return value;
25
+ throw new CliError(`SWIFTBROWSER_COMPILER=${value}: use auto, native or wasm`);
26
+ }
27
+ /** The Swift version the native toolchain reports for SWIFT_VERSION (`6.4.0` → `6.4`), which kits are named with. */
28
+ export function reportedSwiftVersion(version = SWIFT_VERSION) {
29
+ return version.replace(/^(\d+\.\d+)\.0$/, '$1');
30
+ }
31
+ export function findInstalled(env = process.env) {
32
+ const toolchain = findToolchain(env).toolchain;
33
+ const toolchainWasmSdk = toolchain ? hasWasmSdk(toolchain) : false;
34
+ return { toolchain, toolchainWasmSdk, sdk: findWasmSdk(toolchain, env) };
35
+ }
36
+ /** The Swift version builds use: the toolchain's, else the one the WebAssembly tools are built from. */
37
+ export function swiftVersion(installed) {
38
+ return installed.toolchain?.version ?? reportedSwiftVersion();
39
+ }
40
+ /**
41
+ * Why the WebAssembly compiler cannot build this app here; empty when it can.
42
+ * Its packages it builds once they are resolved, by SwiftPM or without it
43
+ * (resolve.ts); `packages` is every package resolved.
44
+ */
45
+ export function wasmBlockers(app, packages) {
46
+ const dependencies = planPackages(app.packages).flatMap((plan) => (plan.kind === 'dependency' ? [plan.identity] : []));
47
+ if (dependencies.length === 0 || packages.length > 0)
48
+ return [];
49
+ return [`its Swift packages (${dependencies.join(', ')}) were not resolved: that takes Swift, or the Swift SDK for WebAssembly (\`swiftbrowser doctor --install\`)`];
50
+ }
51
+ export const WASM_SDK_HINT = 'run `swiftbrowser doctor --install` to download the Swift SDK for WebAssembly';
52
+ /**
53
+ * The compiler for a build of `app` (`purpose: 'check'` needs no SDK for a
54
+ * native host compile). `wasmTools` is the problem with the WebAssembly tools,
55
+ * null when they are there (`wasmToolsProblem`).
56
+ */
57
+ export function chooseCompiler(options) {
58
+ const { choice, installed, wasmTools, blockers, purpose } = options;
59
+ const wasmProblems = [
60
+ ...(wasmTools ? [wasmTools] : []),
61
+ ...(installed.sdk ? [] : [`the Swift SDK for WebAssembly is not here (${WASM_SDK_HINT})`]),
62
+ ...blockers,
63
+ ];
64
+ const native = () => {
65
+ if (!installed.toolchain)
66
+ throw new CliError(`SwiftBrowser needs Swift ${SWIFT_VERSION}\n ${options.nativeHint}`);
67
+ if (purpose === 'build' && !installed.toolchainWasmSdk) {
68
+ throw new CliError('the Swift SDK for WebAssembly is not installed for the Swift toolchain; run `swiftbrowser doctor --install`');
69
+ }
70
+ return { kind: 'native', toolchain: installed.toolchain, sdk: installed.sdk };
71
+ };
72
+ const wasm = () => ({ kind: 'wasm', toolchain: installed.toolchain, sdk: installed.sdk });
73
+ if (choice === 'native')
74
+ return native();
75
+ if (choice === 'wasm') {
76
+ if (wasmProblems.length === 0)
77
+ return wasm();
78
+ throw new CliError(`the WebAssembly compiler (--compiler wasm) cannot build this app: ${wasmProblems.join('; ')}`);
79
+ }
80
+ // auto: the native toolchain when it has what this compile needs.
81
+ const nativeProblem = !installed.toolchain ? `Swift ${SWIFT_VERSION} is not installed`
82
+ : purpose === 'build' && !installed.toolchainWasmSdk ? `Swift ${installed.toolchain.version} has no Swift SDK for WebAssembly installed`
83
+ : null;
84
+ if (!nativeProblem)
85
+ return native();
86
+ if (wasmProblems.length === 0)
87
+ return { ...wasm(), fallback: nativeProblem };
88
+ if (!installed.toolchain) {
89
+ throw new CliError(`SwiftBrowser needs Swift ${SWIFT_VERSION}, or the WebAssembly compiler, which cannot build this app (${wasmProblems.join('; ')})\n ${options.nativeHint}`);
90
+ }
91
+ // The toolchain lacks its SDK, and the WebAssembly compiler cannot stand in: say how to install the SDK.
92
+ return native();
93
+ }
94
+ //# sourceMappingURL=compiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -2,11 +2,14 @@ export type SwiftLanguageMode = '5' | '6';
2
2
  /**
3
3
  * A Swift package the app depends on, for a folder of sources (an Xcode
4
4
  * project lists its own): a remote `url` with one rule (`from`: up to the next
5
- * major version, `exact`, `branch` or `revision`), or a local `path` (relative
6
- * to the project), and the products the app imports.
5
+ * major version, `exact`, `branch` or `revision`), a registry package's `id`
6
+ * (`scope.name`) with `from` or `exact`, or a local `path` (relative to the
7
+ * project), and the products the app imports.
7
8
  */
8
9
  export interface ConfigPackage {
9
10
  url?: string;
11
+ /** A package registry's `scope.name` (registry.ts). */
12
+ id?: string;
10
13
  path?: string;
11
14
  from?: string;
12
15
  exact?: string;
package/dist/config.js CHANGED
@@ -75,7 +75,7 @@ export function validateConfig(raw, source = CONFIG_FILE) {
75
75
  }
76
76
  return config;
77
77
  }
78
- const PACKAGE_KEYS = ['url', 'path', 'from', 'exact', 'branch', 'revision'];
78
+ const PACKAGE_KEYS = ['url', 'id', 'path', 'from', 'exact', 'branch', 'revision'];
79
79
  const PACKAGE_RULES = ['from', 'exact', 'branch', 'revision'];
80
80
  function validatePackages(value, source) {
81
81
  if (!Array.isArray(value))
@@ -103,9 +103,13 @@ function validatePackages(value, source) {
103
103
  throw new CliError(`${where}: "products" must be a non-empty array of strings`);
104
104
  }
105
105
  pkg.products = products;
106
- if (!pkg.url === !pkg.path)
107
- throw new CliError(`${where}: give either "url" or "path"`);
106
+ if ([pkg.url, pkg.id, pkg.path].filter(Boolean).length !== 1)
107
+ throw new CliError(`${where}: give one of "url", "id" or "path"`);
108
108
  const rules = PACKAGE_RULES.filter((key) => pkg[key] !== undefined);
109
+ if (pkg.id && !/^[A-Za-z0-9][A-Za-z0-9-]{0,38}\.[A-Za-z0-9][A-Za-z0-9_-]{0,99}$/.test(pkg.id))
110
+ throw new CliError(`${where}: "id" must be a registry identifier, scope.name`);
111
+ if (pkg.id && (rules.length !== 1 || (pkg.branch ?? pkg.revision) !== undefined))
112
+ throw new CliError(`${where}: an "id" needs one of "from" or "exact"`);
109
113
  if (pkg.url && rules.length !== 1)
110
114
  throw new CliError(`${where}: a "url" needs one of "from", "exact", "branch" or "revision"`);
111
115
  if (pkg.path && rules.length > 0)
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Apple frameworks the shim stands in for, as far as apps commonly use them:
3
+ * StoreKit's `requestReview` (a no-op), Core Location's coordinate type, a
4
+ * LocalAuthentication `LAContext` that always succeeds, Core ML for the
5
+ * tabular models Create ML makes (coreml.ts), PhotosUI's `PhotosPicker` over
6
+ * the page's file chooser (with the `UTType`s of UniformTypeIdentifiers),
7
+ * Core Image's built-in filters and QR code generator (drawn by the page), and
8
+ * UserNotifications over the browser's Notification API; the frameworks under
9
+ * SwiftUI that packages build on (UIKit's images and colors, Core Graphics
10
+ * contexts and Image I/O sources over the shim's image recipes, CryptoKit's
11
+ * hashes and CommonCrypto's digest functions over them, os's locks and logs
12
+ * (and OSLog, which re-exports it),
13
+ * Combine (OpenCombine), MobileCoreServices' kUTType constants, Security's
14
+ * keychain items over a file in the app's home, zlib's inflate API, which
15
+ * re-exports Compression's, Core Text's font registration, MapKit's
16
+ * SwiftUI map, drawn without map data, and WeatherKit's service, whose
17
+ * requests throw); plus
18
+ * packages that cannot build for the browser (none today; see packages.ts).
19
+ * Each is a small module linked only into apps that import it (stage.ts).
20
+ */
21
+ 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"];
22
+ /**
23
+ * Frameworks the shim has as empty modules: an import compiles, a use does
24
+ * not. Linked like the stand-ins when a source imports them.
25
+ */
26
+ export declare const EMPTY_FRAMEWORKS: Readonly<Record<string, string>>;
27
+ /** The modules the staging links when a source imports them: the stand-ins and the empty ones. */
28
+ export declare const LINKED_FRAMEWORKS: readonly string[];
29
+ /** The modules a Swift source imports (first path component of each import). */
30
+ export declare function importsOf(source: string): string[];
@@ -0,0 +1,48 @@
1
+ // The frameworks the shim stands in for and the modules a source imports:
2
+ // what decides which of the shim's products an app links. No Node APIs
3
+ // (appSources.ts uses them in the browser); compat.ts re-exports them.
4
+ /**
5
+ * Apple frameworks the shim stands in for, as far as apps commonly use them:
6
+ * StoreKit's `requestReview` (a no-op), Core Location's coordinate type, a
7
+ * LocalAuthentication `LAContext` that always succeeds, Core ML for the
8
+ * tabular models Create ML makes (coreml.ts), PhotosUI's `PhotosPicker` over
9
+ * the page's file chooser (with the `UTType`s of UniformTypeIdentifiers),
10
+ * Core Image's built-in filters and QR code generator (drawn by the page), and
11
+ * UserNotifications over the browser's Notification API; the frameworks under
12
+ * SwiftUI that packages build on (UIKit's images and colors, Core Graphics
13
+ * contexts and Image I/O sources over the shim's image recipes, CryptoKit's
14
+ * hashes and CommonCrypto's digest functions over them, os's locks and logs
15
+ * (and OSLog, which re-exports it),
16
+ * Combine (OpenCombine), MobileCoreServices' kUTType constants, Security's
17
+ * keychain items over a file in the app's home, zlib's inflate API, which
18
+ * re-exports Compression's, Core Text's font registration, MapKit's
19
+ * SwiftUI map, drawn without map data, and WeatherKit's service, whose
20
+ * requests throw); plus
21
+ * packages that cannot build for the browser (none today; see packages.ts).
22
+ * Each is a small module linked only into apps that import it (stage.ts).
23
+ */
24
+ export const STAND_IN_FRAMEWORKS = [
25
+ 'StoreKit', 'CoreLocation', 'LocalAuthentication', 'CoreML', 'PhotosUI', 'UniformTypeIdentifiers', 'CoreImage',
26
+ 'UserNotifications', 'UIKit', 'CoreGraphics', 'ImageIO', 'CryptoKit', 'os', 'Combine',
27
+ 'CommonCrypto', 'MobileCoreServices', 'OSLog', 'Security', 'Accelerate',
28
+ 'AppIntents', 'CoreHaptics', 'NaturalLanguage', 'Compression',
29
+ 'Symbols', 'AudioToolbox', 'AuthenticationServices', 'SafariServices', 'WebKit',
30
+ 'CoreTransferable', 'Photos', 'LinkPresentation', 'Translation', 'FoundationModels',
31
+ 'AVFoundation', 'AVKit', 'QuickLook', 'zlib', 'CoreText', 'MapKit', 'WeatherKit',
32
+ ];
33
+ /**
34
+ * Frameworks the shim has as empty modules: an import compiles, a use does
35
+ * not. Linked like the stand-ins when a source imports them.
36
+ */
37
+ export const EMPTY_FRAMEWORKS = {};
38
+ /** The modules the staging links when a source imports them: the stand-ins and the empty ones. */
39
+ export const LINKED_FRAMEWORKS = [...STAND_IN_FRAMEWORKS, ...Object.keys(EMPTY_FRAMEWORKS)];
40
+ const IMPORT = /^\s*(?:@[A-Za-z_]+(?:\([^)]*\))?\s+)*(?:(?:public|package|internal|fileprivate|private)\s+)?import\s+(?:(?:struct|class|enum|protocol|typealias|func|let|var|actor)\s+)?([A-Za-z_][A-Za-z0-9_]*)/gm;
41
+ /** The modules a Swift source imports (first path component of each import). */
42
+ export function importsOf(source) {
43
+ const out = [];
44
+ for (const match of source.matchAll(IMPORT))
45
+ out.push(match[1]);
46
+ return out;
47
+ }
48
+ //# sourceMappingURL=frameworks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frameworks.js","sourceRoot":"","sources":["../src/frameworks.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,uEAAuE;AACvE,uEAAuE;AAEvE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,UAAU,EAAE,cAAc,EAAE,qBAAqB,EAAE,QAAQ,EAAE,UAAU,EAAE,wBAAwB,EAAE,WAAW;IAC9G,mBAAmB,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS;IACrF,cAAc,EAAE,oBAAoB,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY;IACvE,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa;IAC7D,SAAS,EAAE,cAAc,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,QAAQ;IAC/E,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,aAAa,EAAE,kBAAkB;IACnF,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY;CACxE,CAAC;AACX;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAqC,EAAE,CAAC;AAErE,kGAAkG;AAClG,MAAM,CAAC,MAAM,iBAAiB,GAAsB,CAAC,GAAG,mBAAmB,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAE/G,MAAM,MAAM,GAAG,oMAAoM,CAAC;AAEpN,gFAAgF;AAChF,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;IACjE,OAAO,GAAG,CAAC;AACb,CAAC"}
package/dist/icu.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type Toolchain } from './toolchain.js';
1
+ import { type WasmSdk } from './wasmSdk.js';
2
2
  export declare const ICU_ARCHIVE = "lib_FoundationICU.a";
3
3
  export declare const ICU_MEMBER = "icu_packaged_data.cpp.obj";
4
4
  /** The trimmed data package, ready to be assembled into the staged app. */
@@ -16,8 +16,6 @@ export interface ICUData {
16
16
  /** Whether the collation tables are in (`collation` in swiftbrowser.json; default true). */
17
17
  collation: boolean;
18
18
  }
19
- /** The wasm SDK's `swift_static/wasi` directory, where Foundation's archives are. */
20
- export declare function wasmStaticLibDir(toolchain: Toolchain, env?: NodeJS.ProcessEnv): string | null;
21
19
  /** One member of a static archive. */
22
20
  export interface ArchiveMember {
23
21
  name: string;
@@ -89,7 +87,7 @@ export declare function icuCacheDir(): string;
89
87
  * from the wasm SDK's archive (a second or two; cached per SDK archive and
90
88
  * language set under `~/.cache/swiftbrowser/icu/`).
91
89
  */
92
- export declare function prepareICUData(toolchain: Toolchain, languages: readonly string[], options?: {
90
+ export declare function prepareICUData(sdk: WasmSdk, languages: readonly string[], options?: {
93
91
  cache?: string;
94
92
  collation?: boolean;
95
93
  }): ICUData;
package/dist/icu.js CHANGED
@@ -16,43 +16,15 @@
16
16
  //
17
17
  // Everything here is plain parsing: the `ar` archive, the wasm object's data
18
18
  // section, and the CmnD table of contents (udata.cpp's layout).
19
- import { spawnSync } from 'node:child_process';
20
19
  import { createHash } from 'node:crypto';
21
- import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, statSync, writeFileSync } from 'node:fs';
22
- import { homedir } from 'node:os';
20
+ import { existsSync, mkdirSync, readFileSync, renameSync, statSync, writeFileSync } from 'node:fs';
23
21
  import path from 'node:path';
24
22
  import { CliError } from './log.js';
25
- import { WASM_SDK, cacheDir, toolchainEnv } from './toolchain.js';
23
+ import { WASM_SDK, cacheDir } from './toolchain.js';
24
+ import { wasmSdkLibDir } from './wasmSdk.js';
26
25
  export const ICU_ARCHIVE = 'lib_FoundationICU.a';
27
26
  export const ICU_MEMBER = 'icu_packaged_data.cpp.obj';
28
27
  const TRIM_VERSION = 3;
29
- // ---------------------------------------------------------------------------
30
- // Locating the SDK's archive
31
- /** The wasm SDK's `swift_static/wasi` directory, where Foundation's archives are. */
32
- export function wasmStaticLibDir(toolchain, env = process.env) {
33
- const shown = spawnSync(toolchain.swift, ['sdk', 'configure', WASM_SDK, 'wasm32-unknown-wasip1', '--show-configuration'], {
34
- encoding: 'utf8',
35
- env: toolchainEnv(toolchain, env),
36
- });
37
- if (shown.status === 0) {
38
- const match = /^swiftStaticResourcesPath: (.+)$/m.exec(shown.stdout);
39
- if (match) {
40
- const dir = path.join(match[1].trim(), 'wasi');
41
- if (existsSync(path.join(dir, ICU_ARCHIVE)))
42
- return dir;
43
- }
44
- }
45
- // The default install location, for an SDK whose configuration is not shown.
46
- const bundle = path.join(env['SWIFTPM_HOME'] ?? path.join(homedir(), '.swiftpm'), 'swift-sdks', `${WASM_SDK}.artifactbundle`);
47
- if (existsSync(bundle)) {
48
- for (const entry of readdirSync(bundle)) {
49
- const dir = path.join(bundle, entry, 'wasm32-unknown-wasip1', 'swift.xctoolchain', 'usr', 'lib', 'swift_static', 'wasi');
50
- if (existsSync(path.join(dir, ICU_ARCHIVE)))
51
- return dir;
52
- }
53
- }
54
- return null;
55
- }
56
28
  /** Every member of a (GNU or BSD) `ar` archive, long names resolved. */
57
29
  export function readArchive(archive) {
58
30
  if (archive.subarray(0, 8).toString('latin1') !== '!<arch>\n')
@@ -299,11 +271,10 @@ export function icuCacheDir() {
299
271
  * from the wasm SDK's archive (a second or two; cached per SDK archive and
300
272
  * language set under `~/.cache/swiftbrowser/icu/`).
301
273
  */
302
- export function prepareICUData(toolchain, languages, options = {}) {
303
- const libDir = wasmStaticLibDir(toolchain);
304
- if (!libDir)
305
- throw new CliError(`cannot find ${ICU_ARCHIVE} in the Swift SDK for WebAssembly (${WASM_SDK}); run \`swiftbrowser doctor\``);
306
- const archivePath = path.join(libDir, ICU_ARCHIVE);
274
+ export function prepareICUData(sdk, languages, options = {}) {
275
+ const archivePath = path.join(wasmSdkLibDir(sdk), ICU_ARCHIVE);
276
+ if (!existsSync(archivePath))
277
+ throw new CliError(`cannot find ${ICU_ARCHIVE} in the Swift SDK for WebAssembly (${WASM_SDK}, ${sdk.root}); run \`swiftbrowser doctor\``);
307
278
  const stat = statSync(archivePath);
308
279
  const wanted = normalizeLanguages(languages);
309
280
  const collation = options.collation !== false;
package/dist/icu.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"icu.js","sourceRoot":"","sources":["../src/icu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"icu.js","sourceRoot":"","sources":["../src/icu.ts"],"names":[],"mappings":"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"}