@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.
Files changed (90) hide show
  1. package/README.md +82 -11
  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 +62 -17
  48. package/dist/kit.js +183 -33
  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/stage.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"stage.js","sourceRoot":"","sources":["../src/stage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stage.js","sourceRoot":"","sources":["../src/stage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /** A symbol graph as `-emit-symbol-graph` writes it, as far as discovery reads it. */
2
+ export interface SymbolGraph {
3
+ symbols: {
4
+ kind: {
5
+ identifier: string;
6
+ };
7
+ identifier: {
8
+ precise: string;
9
+ };
10
+ pathComponents: string[];
11
+ names: {
12
+ title: string;
13
+ };
14
+ declarationFragments?: {
15
+ kind: string;
16
+ spelling: string;
17
+ }[];
18
+ }[];
19
+ relationships: {
20
+ kind: string;
21
+ source: string;
22
+ target: string;
23
+ targetFallback?: string;
24
+ }[];
25
+ }
26
+ export interface TestCaseClass {
27
+ /** The class's name in its module (`Outer.Inner` for a nested one). */
28
+ name: string;
29
+ methods: {
30
+ name: string;
31
+ async: boolean;
32
+ }[];
33
+ }
34
+ /** The XCTest classes of a test module and their test methods, by class name. */
35
+ export declare function xctestCases(graph: SymbolGraph): TestCaseClass[];
36
+ /**
37
+ * The runner's source: the XCTest list SwiftPM's discovery writes, and its
38
+ * entry point, which runs Swift Testing with `--testing-library
39
+ * swift-testing` and XCTest otherwise. Each class's methods are listed in
40
+ * the `testCase` call, as SwiftPM's build system writes them, so that a
41
+ * `@MainActor` method converts to the type XCTest takes where it is named
42
+ * (a list built first would be cast at run time, which fails).
43
+ */
44
+ export declare function testRunnerSource(module: string, cases: readonly TestCaseClass[]): string;
@@ -0,0 +1,111 @@
1
+ // The test runner the WebAssembly compiler links a test module into
2
+ // (wasmCompiler.ts, buildTestsWithWasmCompiler): what SwiftPM generates for a
3
+ // test product off Apple platforms. Swift Testing finds its tests at run time;
4
+ // XCTest's are listed here, as SwiftPM lists them (LLBuildCommands.swift,
5
+ // TestDiscoveryCommand), from the module's symbol graph in place of its index
6
+ // store: the classes that inherit from XCTestCase, and their `test` methods
7
+ // that take no arguments, inherited ones included.
8
+ const XCTEST_CASE = 'XCTest.XCTestCase';
9
+ /** The XCTest classes of a test module and their test methods, by class name. */
10
+ export function xctestCases(graph) {
11
+ const symbols = new Map(graph.symbols.map((symbol) => [symbol.identifier.precise, symbol]));
12
+ const superclass = new Map();
13
+ const members = new Map();
14
+ for (const relationship of graph.relationships) {
15
+ if (relationship.kind === 'inheritsFrom') {
16
+ superclass.set(relationship.source, { target: relationship.target, ...(relationship.targetFallback ? { fallback: relationship.targetFallback } : {}) });
17
+ }
18
+ else if (relationship.kind === 'memberOf') {
19
+ members.set(relationship.target, [...(members.get(relationship.target) ?? []), relationship.source]);
20
+ }
21
+ }
22
+ // A class's superclasses in this module, nearest first, if XCTestCase is among its ancestors.
23
+ const ancestry = (usr) => {
24
+ const chain = [];
25
+ for (let current = superclass.get(usr); current; current = superclass.get(current.target)) {
26
+ if (current.fallback === XCTEST_CASE || current.target.startsWith('s:6XCTest0A4CaseC'))
27
+ return chain;
28
+ if (!symbols.has(current.target) || chain.includes(current.target))
29
+ return null;
30
+ chain.push(current.target);
31
+ }
32
+ return null;
33
+ };
34
+ const testMethods = (usr) => (members.get(usr) ?? []).flatMap((member) => {
35
+ const symbol = symbols.get(member);
36
+ if (!symbol || symbol.kind.identifier !== 'swift.method')
37
+ return [];
38
+ const match = /^(test\w*)\(\)$/.exec(symbol.names.title);
39
+ if (!match)
40
+ return [];
41
+ const async = (symbol.declarationFragments ?? []).some((fragment) => fragment.kind === 'keyword' && fragment.spelling === 'async');
42
+ return [{ name: match[1], async }];
43
+ });
44
+ const cases = [];
45
+ for (const symbol of graph.symbols) {
46
+ if (symbol.kind.identifier !== 'swift.class')
47
+ continue;
48
+ const ancestors = ancestry(symbol.identifier.precise);
49
+ if (!ancestors)
50
+ continue;
51
+ const methods = [];
52
+ for (const usr of [symbol.identifier.precise, ...ancestors]) {
53
+ for (const method of testMethods(usr))
54
+ if (!methods.some((m) => m.name === method.name))
55
+ methods.push(method);
56
+ }
57
+ if (methods.length > 0)
58
+ cases.push({ name: symbol.pathComponents.join('.'), methods: methods.sort((a, b) => a.name.localeCompare(b.name)) });
59
+ }
60
+ return cases.sort((a, b) => a.name.localeCompare(b.name));
61
+ }
62
+ const DEPRECATED = '@available(*, deprecated, message: "Not actually deprecated. Marked as deprecated to allow inclusion of deprecated tests (which test deprecated functionality) without warnings")';
63
+ /**
64
+ * The runner's source: the XCTest list SwiftPM's discovery writes, and its
65
+ * entry point, which runs Swift Testing with `--testing-library
66
+ * swift-testing` and XCTest otherwise. Each class's methods are listed in
67
+ * the `testCase` call, as SwiftPM's build system writes them, so that a
68
+ * `@MainActor` method converts to the type XCTest takes where it is named
69
+ * (a list built first would be cast at run time, which fails).
70
+ */
71
+ export function testRunnerSource(module, cases) {
72
+ const entries = cases.map((testCase) => {
73
+ const methods = testCase.methods.map((method) => {
74
+ const reference = `${testCase.name}.${method.name}`;
75
+ return `("${method.name}", ${method.async ? `asyncTest(${reference})` : reference})`;
76
+ });
77
+ return `testCase([${methods.join(', ')}])`;
78
+ });
79
+ return `// Generated by @swiftbrowser/cli: the test runner of ${module} (testDiscovery.ts).
80
+ #if canImport(Testing)
81
+ import Testing
82
+ #endif
83
+ import XCTest
84
+ @testable import ${module}
85
+
86
+ ${DEPRECATED}
87
+ func __allDiscoveredTests() -> [XCTestCaseEntry] {
88
+ return [
89
+ ${entries.map((entry) => ` ${entry},\n`).join('')} ]
90
+ }
91
+
92
+ @main
93
+ ${DEPRECATED}
94
+ struct __SwiftBrowserTestRunner {
95
+ static func main() async {
96
+ var arguments = CommandLine.arguments.makeIterator()
97
+ var library = "xctest"
98
+ while let argument = arguments.next() {
99
+ if argument == "--testing-library", let name = arguments.next() { library = name.lowercased() }
100
+ }
101
+ #if canImport(Testing)
102
+ if library == "swift-testing" {
103
+ await Testing.__swiftPMEntryPoint() as Never
104
+ }
105
+ #endif
106
+ await XCTMain(__allDiscoveredTests()) as Never
107
+ }
108
+ }
109
+ `;
110
+ }
111
+ //# sourceMappingURL=testDiscovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testDiscovery.js","sourceRoot":"","sources":["../src/testDiscovery.ts"],"names":[],"mappings":"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"}
package/dist/vendor.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { type PackagePatch } from './packagePatches.js';
1
2
  import { type PackagePlan } from './packages.js';
2
3
  import type { ResolvedApp } from './project.js';
3
4
  import { type StageFeatures } from './stage.js';
@@ -16,7 +17,22 @@ export interface PackageNode {
16
17
  path: string;
17
18
  /** Identities of the packages it depends on. */
18
19
  dependencies: string[];
20
+ /** A folder of the user's (a local package) rather than a checkout; when absent, judged by the path. */
21
+ local?: boolean;
19
22
  }
23
+ /**
24
+ * How packages are resolved and read: SwiftPM with the native toolchain, or
25
+ * without it, the CLI's own resolver (resolve.ts) and manifests read with the
26
+ * WebAssembly compiler (manifest.ts).
27
+ */
28
+ export interface PackageTools {
29
+ /** The packages of the build: the app's dependencies, their dependencies, each once. */
30
+ resolve(plans: readonly PackagePlan[], resolveDir: string): Promise<PackageNode[]>;
31
+ /** A package's targets, from its manifest. */
32
+ targets(packageDir: string, cache: string): Promise<DumpedTarget[]>;
33
+ }
34
+ /** SwiftPM's: `swift package show-dependencies` and `dump-package`. */
35
+ export declare function swiftPMPackageTools(toolchain: Toolchain): PackageTools;
20
36
  /** A package copied into the staging package and built against the shim. */
21
37
  export interface VendoredPackage {
22
38
  identity: string;
@@ -77,7 +93,7 @@ export declare function toolsVersion(manifest: string): [number, number];
77
93
  export declare function manifestPatch(targets: readonly {
78
94
  name: string;
79
95
  modules: readonly string[];
80
- }[], swiftPackagePath: string, copies?: ReadonlyMap<string, string>, tools?: readonly [number, number]): string;
96
+ }[], swiftPackagePath: string, copies?: ReadonlyMap<string, string>, tools?: readonly [number, number], coreFoundationTargets?: readonly string[]): string;
81
97
  /** The shim products a target needs for its imports: the app's set (stage.ts), minus what only apps use. */
82
98
  export declare function targetProducts(features: StageFeatures): string[];
83
99
  /**
@@ -97,13 +113,33 @@ export declare function importsShim(dir: string): boolean;
97
113
  * inside the app's bundle, or the app's bundle when there is none.
98
114
  */
99
115
  export declare function moduleBundleSource(bundleName: string): string;
116
+ /** A target as `swift package dump-package` describes it. */
117
+ export interface DumpedTarget {
118
+ name: string;
119
+ type: string;
120
+ path?: string | null;
121
+ }
122
+ /** Where SwiftPM looks for a target's sources when the manifest gives no path. */
123
+ export declare function targetDir(packageDir: string, target: DumpedTarget): string | undefined;
124
+ /**
125
+ * Copies `from` into `to` (dot folders and `.build` left out), adjusting Swift
126
+ * sources (those under a `bridged` folder as sources of a module built against
127
+ * the bridge) after `patch`'s edits; removes what `from` no longer has.
128
+ */
129
+ export declare function copyPackage(from: string, to: string, bridged?: readonly string[], patch?: PackagePatch): Set<string>;
100
130
  /** Where the copies live, and the package that resolves the originals. */
101
131
  export declare function vendorDir(app: ResolvedApp): string;
132
+ /** The app's packages: the copies built against the shim, and every package of the build. */
133
+ export interface VendorResult {
134
+ vendored: Map<string, VendoredPackage>;
135
+ /** Every package, copied or not (a plain one is built from `path`); empty without packages. */
136
+ packages: PackageNode[];
137
+ }
102
138
  /**
103
139
  * Resolves the app's package dependencies and copies the ones that import a
104
140
  * shim module, and the ones that depend on those, into the staging package.
105
- * Packages that are plain Swift all the way down are left to SwiftPM, as
106
- * before. Returns the copies by identity; empty, without running SwiftPM,
107
- * when the app has no packages to fetch.
141
+ * Packages that are plain Swift all the way down are left as they are: SwiftPM
142
+ * builds them from its checkout, the WebAssembly compiler from `path`. Empty,
143
+ * without resolving anything, when the app has no packages to fetch.
108
144
  */
109
- export declare function vendorPackages(app: ResolvedApp, toolchain: Toolchain, swiftPackagePath: string): Promise<Map<string, VendoredPackage>>;
145
+ export declare function vendorPackages(app: ResolvedApp, tools: PackageTools, swiftPackagePath: string): Promise<VendorResult>;
package/dist/vendor.js CHANGED
@@ -22,7 +22,7 @@
22
22
  // out, comes from resolving the project's dependencies in a package of their
23
23
  // own (`Packages/.resolve/`), with `swift package show-dependencies`.
24
24
  import { createHash } from 'node:crypto';
25
- import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync } from 'node:fs';
25
+ import { existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, rmSync, statSync, writeFileSync } from 'node:fs';
26
26
  import path from 'node:path';
27
27
  import { ASSET_SYMBOLS_FILE, assetSymbolsSource, declaredStaticMembers, targetCatalogs } from './assetSymbols.js';
28
28
  import { run } from './build.js';
@@ -32,9 +32,26 @@ import { optionalRequirementNames } from './objc.js';
32
32
  import { PACKAGE_PATCHES, applyPatch, checkPatch } from './packagePatches.js';
33
33
  import { PACKAGE_STAND_INS, planPackages } from './packages.js';
34
34
  import { FULL_FOUNDATION_FILE, declaredTypeNames, featuresOf, fullFoundationSource, stagingDir, transformSource, importsDispatch, importsObjectiveC, usesObjC, usesPosixMutex } from './stage.js';
35
+ import { WASI_EMULATION_FLAGS, importsCoreFoundation } from './appSources.js';
35
36
  import { toolchainEnv } from './toolchain.js';
36
37
  /** Modules the SwiftBrowser package provides in place of Apple's: a package importing one is built against the shim. */
37
38
  export const SHIM_MODULES = new Set(['SwiftUI', 'Charts', 'SwiftData', 'FoundationBridge', ...LINKED_FRAMEWORKS]);
39
+ /** SwiftPM's: `swift package show-dependencies` and `dump-package`. */
40
+ export function swiftPMPackageTools(toolchain) {
41
+ return {
42
+ async resolve(plans, resolveDir) {
43
+ writeIfChanged(path.join(resolveDir, 'Package.swift'), resolveManifest(plans));
44
+ writeIfChanged(path.join(resolveDir, 'Sources', 'Resolve.swift'), '// Nothing to build: the package only resolves dependencies.\n');
45
+ const treeFile = path.join(resolveDir, 'dependencies.json');
46
+ const shown = await run(toolchain.swift, ['package', 'show-dependencies', '--format', 'json', '--output-path', treeFile], { cwd: resolveDir, env: toolchainEnv(toolchain) });
47
+ if (shown.status !== 0 || !existsSync(treeFile)) {
48
+ throw new CliError(`could not resolve the app's Swift packages:\n${shown.output.trim()}`);
49
+ }
50
+ return packageNodes(JSON.parse(readFileSync(treeFile, 'utf8'))).map((node) => ({ ...node, local: !node.path.startsWith(`${resolveDir}${path.sep}`) }));
51
+ },
52
+ targets: (packageDir, cache) => dumpTargets(packageDir, cache, toolchain),
53
+ };
54
+ }
38
55
  /** The packages of a `show-dependencies --format json` tree, root excluded, each once. */
39
56
  export function packageNodes(tree) {
40
57
  const out = new Map();
@@ -116,17 +133,26 @@ export function toolsVersion(manifest) {
116
133
  * version 5.6; an older manifest keeps its URLs, and the staging manifest's
117
134
  * declaration of the copy takes their place (with a warning from SwiftPM).
118
135
  */
119
- export function manifestPatch(targets, swiftPackagePath, copies = new Map(), tools = [6, 0]) {
136
+ export function manifestPatch(targets, swiftPackagePath, copies = new Map(), tools = [6, 0], coreFoundationTargets = []) {
120
137
  const lines = ['', '', '// Added by @swiftbrowser/cli to build this package in the browser (vendor.ts).'];
121
138
  if (targets.length > 0) {
122
139
  const entries = targets.map((t) => ` ${JSON.stringify(t.name)}: [${t.modules.map((m) => JSON.stringify(m)).join(', ')}],`);
123
- lines.push('// These targets import SwiftUI (or another module SwiftBrowser provides),', '// so they build against its shim.', `package.dependencies.append(.package(name: "SwiftBrowser", path: ${JSON.stringify(swiftPackagePath)}))`, 'let _swiftBrowserProducts: [String: [String]] = [', ...entries, ']', 'for target in package.targets {', ' guard let products = _swiftBrowserProducts[target.name] else { continue }', ' target.dependencies += products.map { .product(name: $0, package: "SwiftBrowser") }', ' target.swiftSettings = (target.swiftSettings ?? []) + [.define("SWIFTBROWSER")]', '}');
140
+ lines.push('// These targets import SwiftUI (or another module SwiftBrowser provides),', '// so they build against its shim.', `package.dependencies.append(.package(name: "SwiftBrowser", path: ${JSON.stringify(swiftPackagePath)}))`, 'let _swiftBrowserProducts: [String: [String]] = [', ...entries, ']', 'for target in package.targets {', ' guard let products = _swiftBrowserProducts[target.name] else { continue }', ' target.dependencies += products.map { .product(name: $0, package: "SwiftBrowser") }', ' target.swiftSettings = (target.swiftSettings ?? []) + [.define("SWIFTBROWSER")]',
141
+ // `Bundle` is FoundationBridge's here (the alias file), which SwiftPM's
142
+ // generated resource accessor does not import: member import
143
+ // visibility is left off (`SwiftSetting` is opaque; its description names the feature).
144
+ ' target.swiftSettings = target.swiftSettings?.filter { !String(describing: $0).contains("\\"MemberImportVisibility\\"") }', '}');
124
145
  }
125
- lines.push('// The browser build is one module: a dynamic library (Backyard Birds\'s', '// packages are) would link the shim products into each library.', 'package.products = package.products.map { product in', ' guard let library = product as? Product.Library, library.type == .dynamic else { return product }', ' return .library(name: library.name, targets: library.targets)', '}');
146
+ if (coreFoundationTargets.length > 0) {
147
+ lines.push('// These import CoreFoundation, whose headers need wasi-libc\'s emulations.', `for target in package.targets where [${coreFoundationTargets.map((name) => JSON.stringify(name)).join(', ')}].contains(target.name) {`, ` target.swiftSettings = (target.swiftSettings ?? []) + [.unsafeFlags(${JSON.stringify(WASI_EMULATION_FLAGS)})]`, '}');
148
+ }
149
+ lines.push('// Darwin\'s linker flags (`-ObjC`, which loads Objective-C categories) mean nothing to wasm-ld.', 'for target in package.targets {', ' target.linkerSettings = target.linkerSettings?.filter { !String(describing: $0).contains("\\"-ObjC\\"") }', '}', '// The browser build is one module: a dynamic library (Backyard Birds\'s', '// packages are) would link the shim products into each library.', 'package.products = package.products.map { product in', ' guard let library = product as? Product.Library, library.type == .dynamic else { return product }', ' return .library(name: library.name, targets: library.targets)', '}');
126
150
  const [major, minor] = tools;
127
151
  if (copies.size > 0 && (major > 5 || (major === 5 && minor >= 6))) {
128
152
  const entries = [...copies].map(([identity, dir]) => ` ${JSON.stringify(identity)}: ${JSON.stringify(dir)},`);
129
- lines.push('// Packages it depends on that are built against the shim too, from their copies.', 'let _swiftBrowserCopies: [String: String] = [', ...entries, ']', 'package.dependencies = package.dependencies.map { dependency in', ' guard case .sourceControl(let name, let location, _) = dependency.kind else { return dependency }', ' var identity = String(location.split(separator: "/").last ?? "")', ' if identity.hasSuffix(".git") { identity.removeLast(4) }', ' guard let copy = _swiftBrowserCopies[identity.lowercased()] else { return dependency }',
153
+ lines.push('// Packages it depends on that are built against the shim too, from their copies.', 'let _swiftBrowserCopies: [String: String] = [', ...entries, ']', 'package.dependencies = package.dependencies.map { dependency in', ' var identity: String', ' var name: String?', ' switch dependency.kind {', ' case .sourceControl(let declared, let location, _):', ' identity = String(location.split(separator: "/").last ?? "")', ' if identity.hasSuffix(".git") { identity.removeLast(4) }', ' name = declared',
154
+ // A registry package (5.7 and later) is named by its id.
155
+ ...(major > 5 || minor >= 7 ? [' case .registry(let id, _):', ' identity = id', ' name = id'] : []), ' default:', ' return dependency', ' }', ' guard let copy = _swiftBrowserCopies[identity.lowercased()] else { return dependency }',
130
156
  // A path names the package after the copy's (lowercased) folder; a
131
157
  // target that lists the product by itself ("SwiftSoup") finds it by
132
158
  // the package's name, so the copy keeps the URL's.
@@ -152,7 +178,7 @@ function swiftFiles(dir, out = []) {
152
178
  if (!entry.name.startsWith('.'))
153
179
  swiftFiles(full, out);
154
180
  }
155
- else if (entry.name.endsWith('.swift')) {
181
+ else if (entry.name.endsWith('.swift') && existsSync(full)) {
156
182
  out.push(full);
157
183
  }
158
184
  }
@@ -177,7 +203,8 @@ export function importsShim(dir) {
177
203
  const text = readFileSync(file, 'utf8');
178
204
  // Selectors and `@objc` need the bridge too (stage.ts, rewriteObjC), and
179
205
  // so do POSIX mutexes (FoundationBridge/Locks.swift) and Dispatch.
180
- if (importsOf(text).some((module) => SHIM_MODULES.has(module)) || usesObjC(text) || usesPosixMutex(text) || importsDispatch(text) || importsObjectiveC(text))
206
+ // A CoreFoundation import needs the copy's manifest (manifestPatch).
207
+ if (importsOf(text).some((module) => SHIM_MODULES.has(module)) || usesObjC(text) || usesPosixMutex(text) || importsDispatch(text) || importsObjectiveC(text) || importsCoreFoundation(text))
181
208
  return true;
182
209
  }
183
210
  return false;
@@ -202,7 +229,7 @@ extension FoundationBridge.Bundle {
202
229
  `;
203
230
  }
204
231
  /** Where SwiftPM looks for a target's sources when the manifest gives no path. */
205
- function targetDir(packageDir, target) {
232
+ export function targetDir(packageDir, target) {
206
233
  if (target.path)
207
234
  return path.join(packageDir, target.path);
208
235
  for (const parent of ['Sources', 'Source', 'src', 'srcs']) {
@@ -224,20 +251,37 @@ function writeIfChanged(file, content) {
224
251
  * sources (those under a `bridged` folder as sources of a module built against
225
252
  * the bridge) after `patch`'s edits; removes what `from` no longer has.
226
253
  */
227
- function copyPackage(from, to, bridged = [], patch) {
254
+ export function copyPackage(from, to, bridged = [], patch) {
228
255
  const kept = new Set();
229
256
  // Optional requirements are called in other files than the protocol's.
230
257
  const optionalRequirements = optionalRequirementNames(swiftFiles(from).map((file) => readFileSync(file, 'utf8')));
231
- const walk = (dir) => {
258
+ // A symbolic link is copied as what it points at, at its own path, as
259
+ // SwiftPM follows it (swift-issue-reporting links in a folder of sources;
260
+ // purchases-ios-spm's CustomEntitlementComputation is its Sources again),
261
+ // short of a link back to a folder it is in.
262
+ const walk = (dir, above = new Set()) => {
263
+ const real = realpathSync(dir);
264
+ if (above.has(real))
265
+ return;
266
+ const within = new Set([...above, real]);
232
267
  for (const entry of readdirSync(dir, { withFileTypes: true })) {
233
268
  if (entry.name.startsWith('.'))
234
269
  continue;
235
270
  const full = path.join(dir, entry.name);
236
271
  const target = path.join(to, path.relative(from, full));
237
- if (entry.isDirectory()) {
238
- walk(full);
272
+ let kind = entry;
273
+ if (entry.isSymbolicLink()) {
274
+ try {
275
+ kind = statSync(full);
276
+ }
277
+ catch {
278
+ continue; // A link to nothing.
279
+ }
280
+ }
281
+ if (kind.isDirectory()) {
282
+ walk(full, within);
239
283
  }
240
- else if (entry.isFile()) {
284
+ else if (kind.isFile()) {
241
285
  const isManifest = dir === from && /^Package(@swift-[\d.]+)?\.swift$/.test(entry.name);
242
286
  const inBridged = bridged.some((dir) => full.startsWith(dir + path.sep));
243
287
  const content = entry.name.endsWith('.swift') && !isManifest
@@ -273,26 +317,19 @@ export function vendorDir(app) {
273
317
  /**
274
318
  * Resolves the app's package dependencies and copies the ones that import a
275
319
  * shim module, and the ones that depend on those, into the staging package.
276
- * Packages that are plain Swift all the way down are left to SwiftPM, as
277
- * before. Returns the copies by identity; empty, without running SwiftPM,
278
- * when the app has no packages to fetch.
320
+ * Packages that are plain Swift all the way down are left as they are: SwiftPM
321
+ * builds them from its checkout, the WebAssembly compiler from `path`. Empty,
322
+ * without resolving anything, when the app has no packages to fetch.
279
323
  */
280
- export async function vendorPackages(app, toolchain, swiftPackagePath) {
324
+ export async function vendorPackages(app, tools, swiftPackagePath) {
281
325
  const vendored = new Map();
282
326
  const plans = planPackages(app.packages);
283
327
  if (!plans.some((plan) => plan.kind === 'dependency'))
284
- return vendored;
328
+ return { vendored, packages: [] };
285
329
  const root = vendorDir(app);
286
330
  const resolveDir = path.join(root, '.resolve');
287
- writeIfChanged(path.join(resolveDir, 'Package.swift'), resolveManifest(plans));
288
- writeIfChanged(path.join(resolveDir, 'Sources', 'Resolve.swift'), '// Nothing to build: the package only resolves dependencies.\n');
289
- const treeFile = path.join(resolveDir, 'dependencies.json');
290
- const env = toolchainEnv(toolchain);
291
- const shown = await run(toolchain.swift, ['package', 'show-dependencies', '--format', 'json', '--output-path', treeFile], { cwd: resolveDir, env });
292
- if (shown.status !== 0 || !existsSync(treeFile)) {
293
- throw new CliError(`could not resolve the app's Swift packages:\n${shown.output.trim()}`);
294
- }
295
- const nodes = packageNodes(JSON.parse(readFileSync(treeFile, 'utf8')));
331
+ mkdirSync(resolveDir, { recursive: true });
332
+ const nodes = await tools.resolve(plans, resolveDir);
296
333
  // The packages that import a shim module, and every package that depends on
297
334
  // one of them (so that it depends on the copy).
298
335
  // A package SwiftBrowser stands in for counts as copied: its "copy" is a redirect.
@@ -332,8 +369,9 @@ export async function vendorPackages(app, toolchain, swiftPackagePath) {
332
369
  // The targets built against the shim, found in the original sources
333
370
  // first: their copies are adjusted as bridged modules.
334
371
  const shimTargets = [];
372
+ const coreFoundationTargets = [];
335
373
  mkdirSync(dir, { recursive: true });
336
- for (const target of await dumpTargets(node.path, cache, toolchain)) {
374
+ for (const target of await tools.targets(node.path, cache)) {
337
375
  if (target.type !== 'regular' && target.type !== 'executable')
338
376
  continue;
339
377
  moduleNames.push(target.name);
@@ -341,6 +379,8 @@ export async function vendorPackages(app, toolchain, swiftPackagePath) {
341
379
  if (!sourceDir)
342
380
  continue;
343
381
  const texts = swiftFiles(sourceDir).map((file) => readFileSync(file, 'utf8'));
382
+ if (texts.some(importsCoreFoundation))
383
+ coreFoundationTargets.push(target.name);
344
384
  const modules = new Set(texts.flatMap((text) => importsOf(text)).filter((module) => SHIM_MODULES.has(module)));
345
385
  const uses = [
346
386
  ...(texts.some(usesObjC) ? ['Objective-C selectors'] : []),
@@ -377,7 +417,7 @@ export async function vendorPackages(app, toolchain, swiftPackagePath) {
377
417
  const copies = new Map(node.dependencies.filter((identity) => copied.has(identity)).map((identity) => [identity, copyDir(identity)]));
378
418
  for (const manifest of manifestFiles(node.path)) {
379
419
  const text = readFileSync(path.join(node.path, manifest), 'utf8');
380
- writeIfChanged(path.join(dir, manifest), text + manifestPatch(targets, swiftPackagePath, copies, toolsVersion(text)));
420
+ writeIfChanged(path.join(dir, manifest), text + manifestPatch(targets, swiftPackagePath, copies, toolsVersion(text), coreFoundationTargets));
381
421
  }
382
422
  removeStale(dir, files);
383
423
  keep.add(dir);
@@ -385,7 +425,7 @@ export async function vendorPackages(app, toolchain, swiftPackagePath) {
385
425
  identity: node.identity,
386
426
  name: node.name,
387
427
  source: node.path,
388
- local: !node.path.startsWith(`${resolveDir}${path.sep}`),
428
+ local: node.local ?? !node.path.startsWith(`${resolveDir}${path.sep}`),
389
429
  version: node.version,
390
430
  dir,
391
431
  targets,
@@ -400,7 +440,7 @@ export async function vendorPackages(app, toolchain, swiftPackagePath) {
400
440
  if (!keep.has(full))
401
441
  rmSync(full, { recursive: true, force: true });
402
442
  }
403
- return vendored;
443
+ return { vendored, packages: nodes };
404
444
  }
405
445
  /** Next to a copy: its targets, keyed by the manifests they were read from. */
406
446
  const TARGETS_CACHE = '.swiftbrowser-targets.json';