@swiftbrowser/cli 0.1.0 → 0.3.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 +340 -65
  2. package/dist/assetSymbols.d.ts +25 -0
  3. package/dist/assetSymbols.js +218 -0
  4. package/dist/assetSymbols.js.map +1 -0
  5. package/dist/build.d.ts +27 -2
  6. package/dist/build.js +71 -14
  7. package/dist/build.js.map +1 -1
  8. package/dist/buildSettings.d.ts +15 -0
  9. package/dist/buildSettings.js +74 -0
  10. package/dist/buildSettings.js.map +1 -0
  11. package/dist/cli.d.ts +6 -0
  12. package/dist/cli.js +66 -11
  13. package/dist/cli.js.map +1 -1
  14. package/dist/commands/build.js +6 -5
  15. package/dist/commands/build.js.map +1 -1
  16. package/dist/commands/check.js +2 -2
  17. package/dist/commands/check.js.map +1 -1
  18. package/dist/commands/dev.d.ts +5 -2
  19. package/dist/commands/dev.js +19 -13
  20. package/dist/commands/dev.js.map +1 -1
  21. package/dist/commands/init.d.ts +18 -0
  22. package/dist/commands/init.js +59 -0
  23. package/dist/commands/init.js.map +1 -0
  24. package/dist/commands/kit.d.ts +3 -0
  25. package/dist/commands/kit.js +21 -0
  26. package/dist/commands/kit.js.map +1 -0
  27. package/dist/commands/shared.d.ts +28 -4
  28. package/dist/commands/shared.js +106 -11
  29. package/dist/commands/shared.js.map +1 -1
  30. package/dist/commands/test.d.ts +22 -0
  31. package/dist/commands/test.js +95 -0
  32. package/dist/commands/test.js.map +1 -0
  33. package/dist/compat.d.ts +44 -6
  34. package/dist/compat.js +64 -36
  35. package/dist/compat.js.map +1 -1
  36. package/dist/config.d.ts +48 -10
  37. package/dist/config.js +64 -8
  38. package/dist/config.js.map +1 -1
  39. package/dist/coreml.d.ts +194 -0
  40. package/dist/coreml.js +626 -0
  41. package/dist/coreml.js.map +1 -0
  42. package/dist/icu.d.ts +17 -4
  43. package/dist/icu.js +32 -18
  44. package/dist/icu.js.map +1 -1
  45. package/dist/kit.d.ts +133 -0
  46. package/dist/kit.js +403 -0
  47. package/dist/kit.js.map +1 -0
  48. package/dist/objc.d.ts +31 -0
  49. package/dist/objc.js +319 -0
  50. package/dist/objc.js.map +1 -0
  51. package/dist/packagePatches.d.ts +24 -0
  52. package/dist/packagePatches.js +107 -0
  53. package/dist/packagePatches.js.map +1 -0
  54. package/dist/packages.d.ts +59 -0
  55. package/dist/packages.js +149 -0
  56. package/dist/packages.js.map +1 -0
  57. package/dist/project.d.ts +97 -4
  58. package/dist/project.js +157 -20
  59. package/dist/project.js.map +1 -1
  60. package/dist/protobuf.d.ts +62 -0
  61. package/dist/protobuf.js +233 -0
  62. package/dist/protobuf.js.map +1 -0
  63. package/dist/stage.d.ts +175 -28
  64. package/dist/stage.js +551 -85
  65. package/dist/stage.js.map +1 -1
  66. package/dist/strings.d.ts +44 -0
  67. package/dist/strings.js +386 -0
  68. package/dist/strings.js.map +1 -0
  69. package/dist/template.d.ts +39 -0
  70. package/dist/template.js +678 -0
  71. package/dist/template.js.map +1 -0
  72. package/dist/testRunner.d.ts +1 -0
  73. package/dist/testRunner.js +44 -0
  74. package/dist/testRunner.js.map +1 -0
  75. package/dist/threadStacks.d.ts +14 -0
  76. package/dist/threadStacks.js +78 -0
  77. package/dist/threadStacks.js.map +1 -0
  78. package/dist/toolchain.d.ts +7 -1
  79. package/dist/toolchain.js +8 -2
  80. package/dist/toolchain.js.map +1 -1
  81. package/dist/urlSchemes.d.ts +11 -0
  82. package/dist/urlSchemes.js +58 -0
  83. package/dist/urlSchemes.js.map +1 -0
  84. package/dist/vendor.d.ts +109 -0
  85. package/dist/vendor.js +440 -0
  86. package/dist/vendor.js.map +1 -0
  87. package/dist/wasm.d.ts +28 -0
  88. package/dist/wasm.js +84 -0
  89. package/dist/wasm.js.map +1 -0
  90. package/package.json +7 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../src/template.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,44 @@
1
+ // Runs one test module for WebAssembly under Node's WASI, as
2
+ // `node testRunner.js <module.wasm> [arguments…]`; its exit status is the
3
+ // tests'. `swiftbrowser test` starts it in a child process (commands/test.ts)
4
+ // so that a trap or a hang ends that process only, and so that its output can
5
+ // be read line by line.
6
+ //
7
+ // The module gets a directory of its own, a fresh temporary one that is gone
8
+ // afterwards: XCTest finds `Bundle.main` from the program's path, which must
9
+ // be in a directory that exists (`/tests/<module>`), and tests that write files
10
+ // get a home (`HOME`) and `/tmp`.
11
+ import { mkdtempSync, rmSync } from 'node:fs';
12
+ import { readFile } from 'node:fs/promises';
13
+ import { tmpdir } from 'node:os';
14
+ import path from 'node:path';
15
+ import { WASI } from 'node:wasi';
16
+ const [wasm, ...args] = process.argv.slice(2);
17
+ if (!wasm) {
18
+ console.error('usage: node testRunner.js <module.wasm> [arguments…]');
19
+ process.exit(2);
20
+ }
21
+ const home = mkdtempSync(path.join(tmpdir(), 'swiftbrowser-test-'));
22
+ let status = 1;
23
+ try {
24
+ const wasi = new WASI({
25
+ version: 'preview1',
26
+ args: [`/tests/${path.basename(wasm)}`, ...args],
27
+ env: { HOME: '/tests', TMPDIR: '/tmp' },
28
+ preopens: { '/tests': home, '/tmp': home },
29
+ returnOnExit: true,
30
+ });
31
+ const { instance } = await WebAssembly.instantiate(await readFile(wasm), wasi.getImportObject());
32
+ status = wasi.start(instance);
33
+ }
34
+ catch (error) {
35
+ // A trap (`fatalError`, a failed force unwrap…) ends the run here; the
36
+ // Swift runtime has printed why, and the first frames say where.
37
+ const stack = error instanceof Error ? (error.stack ?? error.message) : String(error);
38
+ console.error(stack.split('\n').slice(0, 12).join('\n'));
39
+ }
40
+ finally {
41
+ rmSync(home, { recursive: true, force: true });
42
+ }
43
+ process.exitCode = status;
44
+ //# sourceMappingURL=testRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testRunner.js","sourceRoot":"","sources":["../src/testRunner.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,0EAA0E;AAC1E,8EAA8E;AAC9E,8EAA8E;AAC9E,wBAAwB;AACxB,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,gFAAgF;AAChF,kCAAkC;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;IACV,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;AACpE,IAAI,MAAM,GAAG,CAAC,CAAC;AACf,IAAI,CAAC;IACH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC;QACpB,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;QAChD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QACvC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAC1C,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IACjG,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,uEAAuE;IACvE,iEAAiE;IACjE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3D,CAAC;QAAS,CAAC;IACT,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,CAAC;AACD,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC"}
@@ -0,0 +1,14 @@
1
+ /** musl's largest default thread stack (DEFAULT_STACK_MAX), which PT_GNU_STACK can ask for. */
2
+ export declare const THREAD_STACK_SIZE: number;
3
+ /**
4
+ * `binary` with its PT_GNU_STACK size raised to `THREAD_STACK_SIZE`, or null
5
+ * when there is nothing to raise: not a little-endian 64-bit ELF, dynamically
6
+ * linked (glibc sizes thread stacks from `ulimit -s`, not this header), no
7
+ * PT_GNU_STACK, or one already as large.
8
+ */
9
+ export declare function withThreadStacks(binary: Buffer): Buffer | null;
10
+ /**
11
+ * The wasm-opt to run: on Linux, a copy of `wasmOpt` in `cacheDir` whose
12
+ * threads have 8 MiB stacks (made once per binary), else `wasmOpt` itself.
13
+ */
14
+ export declare function wasmOptWithThreadStacks(wasmOpt: string, cacheDir: string, platform?: NodeJS.Platform): string;
@@ -0,0 +1,78 @@
1
+ // wasm-opt's worker threads, given stacks large enough for big modules.
2
+ //
3
+ // Binaryen's Linux release binaries are linked statically against musl, whose
4
+ // threads get 128 KiB stacks whatever `ulimit -s` says. Optimizing a large
5
+ // module (Ice Cubes': 142 MB before) overflows them, so `build` fell back to
6
+ // one thread, five minutes for Ice Cubes. musl takes the default thread stack
7
+ // size from the executable's PT_GNU_STACK program header (its p_memsz, up to
8
+ // 8 MiB), which these binaries leave at 0: a copy with that one field set to
9
+ // 8 MiB runs on every core (106 s for Ice Cubes on four) and writes the same
10
+ // module, byte for byte.
11
+ import { createHash } from 'node:crypto';
12
+ import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
13
+ import path from 'node:path';
14
+ /** musl's largest default thread stack (DEFAULT_STACK_MAX), which PT_GNU_STACK can ask for. */
15
+ export const THREAD_STACK_SIZE = 8 << 20;
16
+ const PT_INTERP = 3;
17
+ const PT_GNU_STACK = 0x6474e551;
18
+ /**
19
+ * `binary` with its PT_GNU_STACK size raised to `THREAD_STACK_SIZE`, or null
20
+ * when there is nothing to raise: not a little-endian 64-bit ELF, dynamically
21
+ * linked (glibc sizes thread stacks from `ulimit -s`, not this header), no
22
+ * PT_GNU_STACK, or one already as large.
23
+ */
24
+ export function withThreadStacks(binary) {
25
+ if (binary.length < 64 || binary.readUInt32BE(0) !== 0x7f454c46)
26
+ return null;
27
+ // EI_CLASS 2 (64-bit), EI_DATA 1 (little-endian).
28
+ if (binary[4] !== 2 || binary[5] !== 1)
29
+ return null;
30
+ const phoff = Number(binary.readBigUInt64LE(0x20));
31
+ const phentsize = binary.readUInt16LE(0x36);
32
+ const phnum = binary.readUInt16LE(0x38);
33
+ if (phentsize < 56 || phoff + phentsize * phnum > binary.length)
34
+ return null;
35
+ let stack = -1;
36
+ for (let i = 0; i < phnum; i++) {
37
+ const entry = phoff + i * phentsize;
38
+ const type = binary.readUInt32LE(entry);
39
+ if (type === PT_INTERP)
40
+ return null;
41
+ if (type === PT_GNU_STACK)
42
+ stack = entry;
43
+ }
44
+ if (stack < 0 || Number(binary.readBigUInt64LE(stack + 40)) >= THREAD_STACK_SIZE)
45
+ return null;
46
+ const patched = Buffer.from(binary);
47
+ patched.writeBigUInt64LE(BigInt(THREAD_STACK_SIZE), stack + 40);
48
+ return patched;
49
+ }
50
+ /**
51
+ * The wasm-opt to run: on Linux, a copy of `wasmOpt` in `cacheDir` whose
52
+ * threads have 8 MiB stacks (made once per binary), else `wasmOpt` itself.
53
+ */
54
+ export function wasmOptWithThreadStacks(wasmOpt, cacheDir, platform = process.platform) {
55
+ if (platform !== 'linux')
56
+ return wasmOpt;
57
+ let binary;
58
+ try {
59
+ binary = readFileSync(wasmOpt);
60
+ }
61
+ catch {
62
+ return wasmOpt;
63
+ }
64
+ const patched = withThreadStacks(binary);
65
+ if (!patched)
66
+ return wasmOpt;
67
+ const digest = createHash('sha256').update(binary).digest('hex').slice(0, 16);
68
+ const copy = path.join(cacheDir, 'wasm-opt-threads', `wasm-opt-${digest}`);
69
+ if (!existsSync(copy)) {
70
+ mkdirSync(path.dirname(copy), { recursive: true });
71
+ const temp = `${copy}.${process.pid}`;
72
+ writeFileSync(temp, patched);
73
+ chmodSync(temp, 0o755);
74
+ renameSync(temp, copy);
75
+ }
76
+ return copy;
77
+ }
78
+ //# sourceMappingURL=threadStacks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threadStacks.js","sourceRoot":"","sources":["../src/threadStacks.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,13 @@ export declare function findToolchain(env?: NodeJS.ProcessEnv): {
24
24
  toolchain: Toolchain | null;
25
25
  fallback: Toolchain | null;
26
26
  };
27
- /** Environment for `swift` child processes: the toolchain first on PATH. */
27
+ /**
28
+ * Environment for `swift` child processes: the toolchain first on PATH, and
29
+ * SWIFT_BUILD_SCRIPT_ENVIRONMENT, which swift-syntax's manifest reads to stop
30
+ * logging through OSLog. Where SwiftPM has no prebuilt swift-syntax it
31
+ * compiles it, and after the shim's OSLog module (a stand-in, not the
32
+ * system's) that logging would leave SwiftData's macros unlinkable.
33
+ */
28
34
  export declare function toolchainEnv(toolchain: Toolchain, env?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
29
35
  /** Whether `swift sdk list` names the wasm SDK. */
30
36
  export declare function hasWasmSdk(toolchain: Toolchain): boolean;
package/dist/toolchain.js CHANGED
@@ -83,9 +83,15 @@ export function findToolchain(env = process.env) {
83
83
  }
84
84
  return { toolchain: null, fallback };
85
85
  }
86
- /** Environment for `swift` child processes: the toolchain first on PATH. */
86
+ /**
87
+ * Environment for `swift` child processes: the toolchain first on PATH, and
88
+ * SWIFT_BUILD_SCRIPT_ENVIRONMENT, which swift-syntax's manifest reads to stop
89
+ * logging through OSLog. Where SwiftPM has no prebuilt swift-syntax it
90
+ * compiles it, and after the shim's OSLog module (a stand-in, not the
91
+ * system's) that logging would leave SwiftData's macros unlinkable.
92
+ */
87
93
  export function toolchainEnv(toolchain, env = process.env) {
88
- return { ...env, PATH: `${toolchain.bin}${path.delimiter}${env['PATH'] ?? ''}` };
94
+ return { SWIFT_BUILD_SCRIPT_ENVIRONMENT: '1', ...env, PATH: `${toolchain.bin}${path.delimiter}${env['PATH'] ?? ''}` };
89
95
  }
90
96
  /** Whether `swift sdk list` names the wasm SDK. */
91
97
  export function hasWasmSdk(toolchain) {
@@ -1 +1 @@
1
- {"version":3,"file":"toolchain.js","sourceRoot":"","sources":["../src/toolchain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolchain.js","sourceRoot":"","sources":["../src/toolchain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /** The URL schemes an Info.plist declares (XML plists only), in order, without duplicates. */
2
+ export declare function urlSchemesInPlist(text: string): string[];
3
+ /** The URL schemes of the Info.plist at `file` (none when it cannot be read). */
4
+ export declare function urlSchemesInPlistFile(file: string): string[];
5
+ /**
6
+ * The URL schemes of an Xcode target: its `INFOPLIST_FILE` (relative to the
7
+ * project's directory, `root`), when it has one.
8
+ */
9
+ export declare function urlSchemesOfTarget(target: {
10
+ settings?: (configuration?: string) => Record<string, string>;
11
+ }, root: string): string[];
@@ -0,0 +1,58 @@
1
+ // The app's URL schemes, from its Info.plist: `CFBundleURLSchemes` of each
2
+ // `CFBundleURLTypes` entry. An app registers `myapp://` as its OAuth redirect
3
+ // and signs in with `ASWebAuthenticationSession`; in the browser that
4
+ // redirect has to come back through the page's callback page, and the shim
5
+ // swaps it in only for the app's own schemes (docs/ops-protocol.md, "Signing
6
+ // in"). The registry entry carries them to the page, which hands them to the
7
+ // app as `SB_URL_SCHEMES`.
8
+ import { readFileSync } from 'node:fs';
9
+ import path from 'node:path';
10
+ import { parseXmlPlist } from '@swiftbrowser/xcodeproj';
11
+ /** A URL scheme as RFC 3986 spells one. */
12
+ const SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*$/;
13
+ /** The URL schemes an Info.plist declares (XML plists only), in order, without duplicates. */
14
+ export function urlSchemesInPlist(text) {
15
+ let plist;
16
+ try {
17
+ plist = parseXmlPlist(text);
18
+ }
19
+ catch {
20
+ return [];
21
+ }
22
+ if (typeof plist !== 'object' || plist === null || Array.isArray(plist))
23
+ return [];
24
+ const types = plist['CFBundleURLTypes'];
25
+ if (!Array.isArray(types))
26
+ return [];
27
+ const schemes = [];
28
+ for (const type of types) {
29
+ if (typeof type !== 'object' || type === null || Array.isArray(type))
30
+ continue;
31
+ const names = type['CFBundleURLSchemes'];
32
+ if (!Array.isArray(names))
33
+ continue;
34
+ for (const name of names) {
35
+ if (typeof name === 'string' && SCHEME.test(name) && !schemes.includes(name))
36
+ schemes.push(name);
37
+ }
38
+ }
39
+ return schemes;
40
+ }
41
+ /** The URL schemes of the Info.plist at `file` (none when it cannot be read). */
42
+ export function urlSchemesInPlistFile(file) {
43
+ try {
44
+ return urlSchemesInPlist(readFileSync(file, 'utf8'));
45
+ }
46
+ catch {
47
+ return [];
48
+ }
49
+ }
50
+ /**
51
+ * The URL schemes of an Xcode target: its `INFOPLIST_FILE` (relative to the
52
+ * project's directory, `root`), when it has one.
53
+ */
54
+ export function urlSchemesOfTarget(target, root) {
55
+ const file = target.settings?.()['INFOPLIST_FILE'];
56
+ return file ? urlSchemesInPlistFile(path.resolve(root, file)) : [];
57
+ }
58
+ //# sourceMappingURL=urlSchemes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urlSchemes.js","sourceRoot":"","sources":["../src/urlSchemes.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,8EAA8E;AAC9E,sEAAsE;AACtE,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,2BAA2B;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,2CAA2C;AAC3C,MAAM,MAAM,GAAG,2BAA2B,CAAC;AAE3C,8FAA8F;AAC9F,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnF,MAAM,KAAK,GAAI,KAAiC,CAAC,kBAAkB,CAAC,CAAC;IACrE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,SAAS;QAC/E,MAAM,KAAK,GAAI,IAAgC,CAAC,oBAAoB,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,SAAS;QACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnG,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,IAAI,CAAC;QACH,OAAO,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAyE,EAAE,IAAY;IACxH,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrE,CAAC"}
@@ -0,0 +1,109 @@
1
+ import { type PackagePlan } from './packages.js';
2
+ import type { ResolvedApp } from './project.js';
3
+ import { type StageFeatures } from './stage.js';
4
+ import { type Toolchain } from './toolchain.js';
5
+ /** Modules the SwiftBrowser package provides in place of Apple's: a package importing one is built against the shim. */
6
+ export declare const SHIM_MODULES: ReadonlySet<string>;
7
+ /** A package of the build, as `swift package show-dependencies` lists it. */
8
+ export interface PackageNode {
9
+ identity: string;
10
+ name: string;
11
+ /** The repository URL, or the folder of a local package. */
12
+ url: string;
13
+ /** A version, or `unspecified` for a local package or a branch. */
14
+ version: string;
15
+ /** Where its sources are: SwiftPM's checkout, or the local folder. */
16
+ path: string;
17
+ /** Identities of the packages it depends on. */
18
+ dependencies: string[];
19
+ }
20
+ /** A package copied into the staging package and built against the shim. */
21
+ export interface VendoredPackage {
22
+ identity: string;
23
+ name: string;
24
+ /** Where it came from (checkout or local folder). */
25
+ source: string;
26
+ /** Whether `source` is a folder of the user's (a local package) rather than SwiftPM's checkout. */
27
+ local: boolean;
28
+ version: string;
29
+ /** The copy: `<staging>/Packages/<identity>`. */
30
+ dir: string;
31
+ /**
32
+ * Its targets that import a shim module: the shim modules they import, and
33
+ * the products they link; none for a package copied only because it
34
+ * depends on one.
35
+ */
36
+ /**
37
+ * `uses`: why a target that imports no shim module is built against it
38
+ * anyway (Objective-C selectors, POSIX mutexes, Dispatch).
39
+ */
40
+ targets: {
41
+ name: string;
42
+ imports: string[];
43
+ modules: string[];
44
+ uses?: string[];
45
+ }[];
46
+ /** For a package SwiftBrowser stands in for, why: `dir` holds a redirect to the shim's modules, not a copy. */
47
+ standIn?: string;
48
+ /** The modules it provides (its regular targets), which a source may import. */
49
+ modules?: string[];
50
+ /** How many edits SwiftBrowser's patch made to it (packagePatches.ts). */
51
+ patched?: number;
52
+ /** Its targets' asset catalogs (in `source`), which join the app's on the page. */
53
+ catalogs?: string[];
54
+ }
55
+ /** Identity → the copy; empty when no package imports a shim module. */
56
+ export type Vendored = ReadonlyMap<string, VendoredPackage>;
57
+ /** The packages of a `show-dependencies --format json` tree, root excluded, each once. */
58
+ export declare function packageNodes(tree: unknown): PackageNode[];
59
+ /** The Package.swift that only resolves the app's package dependencies. */
60
+ export declare function resolveManifest(plans: readonly PackagePlan[]): string;
61
+ /**
62
+ * The package that takes a stand-in's place for the packages that depend on
63
+ * it: a library per product, each forwarding to SwiftBrowser's module of the
64
+ * same name, through a target of its own (`_<Product>StandIn`, empty).
65
+ */
66
+ export declare function redirectManifest(name: string, products: readonly string[], reason: string, swiftPackagePath: string): string;
67
+ /** `// swift-tools-version: 5.9` → [5, 9]; [5, 0] when the line is missing or unreadable. */
68
+ export declare function toolsVersion(manifest: string): [number, number];
69
+ /**
70
+ * The lines appended to a copied package's manifest: the SwiftBrowser package,
71
+ * the shim products and `SWIFTBROWSER` for `targets`, and its dependencies on
72
+ * other copied packages (`copies`, identity → folder) pointed at the copies.
73
+ * Reading a dependency's location (`Package.Dependency.kind`) takes tools
74
+ * version 5.6; an older manifest keeps its URLs, and the staging manifest's
75
+ * declaration of the copy takes their place (with a warning from SwiftPM).
76
+ */
77
+ export declare function manifestPatch(targets: readonly {
78
+ name: string;
79
+ modules: readonly string[];
80
+ }[], swiftPackagePath: string, copies?: ReadonlyMap<string, string>, tools?: readonly [number, number]): string;
81
+ /** The shim products a target needs for its imports: the app's set (stage.ts), minus what only apps use. */
82
+ export declare function targetProducts(features: StageFeatures): string[];
83
+ /**
84
+ * Whether a package's sources import a shim module: a quick scan before
85
+ * asking SwiftPM. The sources are the folders SwiftPM looks in by default
86
+ * (`Sources`, `Source`, `src`, `srcs`) when the package has one, else the
87
+ * whole package; manifests and tests never count, nor a demo app beside the
88
+ * library.
89
+ */
90
+ export declare function importsShim(dir: string): boolean;
91
+ /**
92
+ * `Bundle.module` on the bridge's `Bundle`. SwiftPM's generated accessor
93
+ * declares `module` on Foundation's `Bundle` (for a target with resources),
94
+ * but in a staged target `Bundle` is the bridge's (the alias file), so
95
+ * `Bundle.module` and `bundle: .module` would find nothing. This one is the
96
+ * folder SwiftPM names the target's resources (`<package>_<target>.bundle`)
97
+ * inside the app's bundle, or the app's bundle when there is none.
98
+ */
99
+ export declare function moduleBundleSource(bundleName: string): string;
100
+ /** Where the copies live, and the package that resolves the originals. */
101
+ export declare function vendorDir(app: ResolvedApp): string;
102
+ /**
103
+ * Resolves the app's package dependencies and copies the ones that import a
104
+ * 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.
108
+ */
109
+ export declare function vendorPackages(app: ResolvedApp, toolchain: Toolchain, swiftPackagePath: string): Promise<Map<string, VendoredPackage>>;