@swiftbrowser/cli 0.1.0 → 0.2.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 (84) hide show
  1. package/README.md +330 -64
  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 +17 -2
  6. package/dist/build.js +40 -13
  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 +60 -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 +57 -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 +25 -4
  28. package/dist/commands/shared.js +104 -10
  29. package/dist/commands/shared.js.map +1 -1
  30. package/dist/compat.d.ts +44 -6
  31. package/dist/compat.js +64 -36
  32. package/dist/compat.js.map +1 -1
  33. package/dist/config.d.ts +48 -10
  34. package/dist/config.js +64 -8
  35. package/dist/config.js.map +1 -1
  36. package/dist/coreml.d.ts +194 -0
  37. package/dist/coreml.js +626 -0
  38. package/dist/coreml.js.map +1 -0
  39. package/dist/icu.d.ts +17 -4
  40. package/dist/icu.js +32 -18
  41. package/dist/icu.js.map +1 -1
  42. package/dist/kit.d.ts +133 -0
  43. package/dist/kit.js +403 -0
  44. package/dist/kit.js.map +1 -0
  45. package/dist/objc.d.ts +31 -0
  46. package/dist/objc.js +319 -0
  47. package/dist/objc.js.map +1 -0
  48. package/dist/packagePatches.d.ts +24 -0
  49. package/dist/packagePatches.js +107 -0
  50. package/dist/packagePatches.js.map +1 -0
  51. package/dist/packages.d.ts +59 -0
  52. package/dist/packages.js +149 -0
  53. package/dist/packages.js.map +1 -0
  54. package/dist/project.d.ts +45 -4
  55. package/dist/project.js +91 -18
  56. package/dist/project.js.map +1 -1
  57. package/dist/protobuf.d.ts +62 -0
  58. package/dist/protobuf.js +233 -0
  59. package/dist/protobuf.js.map +1 -0
  60. package/dist/stage.d.ts +155 -27
  61. package/dist/stage.js +483 -79
  62. package/dist/stage.js.map +1 -1
  63. package/dist/strings.d.ts +44 -0
  64. package/dist/strings.js +386 -0
  65. package/dist/strings.js.map +1 -0
  66. package/dist/template.d.ts +29 -0
  67. package/dist/template.js +438 -0
  68. package/dist/template.js.map +1 -0
  69. package/dist/threadStacks.d.ts +14 -0
  70. package/dist/threadStacks.js +78 -0
  71. package/dist/threadStacks.js.map +1 -0
  72. package/dist/toolchain.d.ts +7 -1
  73. package/dist/toolchain.js +8 -2
  74. package/dist/toolchain.js.map +1 -1
  75. package/dist/urlSchemes.d.ts +11 -0
  76. package/dist/urlSchemes.js +58 -0
  77. package/dist/urlSchemes.js.map +1 -0
  78. package/dist/vendor.d.ts +109 -0
  79. package/dist/vendor.js +440 -0
  80. package/dist/vendor.js.map +1 -0
  81. package/dist/wasm.d.ts +28 -0
  82. package/dist/wasm.js +84 -0
  83. package/dist/wasm.js.map +1 -0
  84. package/package.json +7 -6
@@ -0,0 +1,149 @@
1
+ // The Swift packages an Xcode project depends on (Package Dependencies in
2
+ // Xcode: `XCRemoteSwiftPackageReference`, `XCLocalSwiftPackageReference`).
3
+ // Each becomes one of two things in the staging package:
4
+ //
5
+ // - a real SwiftPM dependency, with the version rule the project records, so
6
+ // a pure-Swift package that builds for WASI is fetched and compiled into
7
+ // the module like any other code;
8
+ // - nothing, for a package SwiftBrowser knows cannot work in the browser
9
+ // (a camera scanner over AVFoundation and UIKit): the shim ships a module
10
+ // of the same name with the package's public API (`STAND_IN_FRAMEWORKS`
11
+ // in compat.ts), linked when a source imports it.
12
+ import path from 'node:path';
13
+ import { packageIdentity } from '@swiftbrowser/xcodeproj';
14
+ /**
15
+ * Packages the shim stands in for, by SwiftPM identity, with the reason the
16
+ * real one cannot be used and the products it provides. Each product is a
17
+ * module of the SwiftBrowser package (Sources/<Product>), listed in
18
+ * `STAND_IN_FRAMEWORKS`. When another package depends on one, the staging
19
+ * gives that package a redirect in its place (vendor.ts).
20
+ */
21
+ export const PACKAGE_STAND_INS = {};
22
+ /** `swiftbrowser.json`'s packages (config.ts), as the Xcode project's are: paths relative to `root`. */
23
+ export function configPackages(packages, root) {
24
+ return packages.map((entry) => {
25
+ if (entry.path) {
26
+ const dir = path.resolve(root, entry.path);
27
+ return { reference: { kind: 'local', path: dir, identity: packageIdentity(dir) }, products: [...entry.products] };
28
+ }
29
+ const url = entry.url;
30
+ const requirement = entry.from
31
+ ? { kind: 'upToNextMajorVersion', minimumVersion: entry.from }
32
+ : entry.exact
33
+ ? { kind: 'exactVersion', version: entry.exact }
34
+ : entry.branch
35
+ ? { kind: 'branch', branch: entry.branch }
36
+ : { kind: 'revision', revision: entry.revision };
37
+ return { reference: { kind: 'remote', url, identity: packageIdentity(url), requirement }, products: [...entry.products] };
38
+ });
39
+ }
40
+ /** Groups a target's package products by package, in the order the project lists them. */
41
+ export function groupPackageProducts(dependencies) {
42
+ const byIdentity = new Map();
43
+ const out = [];
44
+ for (const dependency of dependencies) {
45
+ if (!dependency.package) {
46
+ out.push({ products: [dependency.product] });
47
+ continue;
48
+ }
49
+ const key = `${dependency.package.kind}:${dependency.package.identity}`;
50
+ let entry = byIdentity.get(key);
51
+ if (!entry) {
52
+ entry = { reference: dependency.package, products: [] };
53
+ byIdentity.set(key, entry);
54
+ out.push(entry);
55
+ }
56
+ if (!entry.products.includes(dependency.product))
57
+ entry.products.push(dependency.product);
58
+ }
59
+ return out;
60
+ }
61
+ /** What the staging does with each package (`standIns` for tests: none today). */
62
+ export function planPackages(packages, standIns = PACKAGE_STAND_INS) {
63
+ return packages.map((entry) => {
64
+ const reference = entry.reference;
65
+ if (!reference) {
66
+ return { kind: 'unresolved', package: entry, problem: 'the project does not say which package it comes from' };
67
+ }
68
+ const standIn = standIns[reference.identity];
69
+ if (standIn)
70
+ return { kind: 'stand-in', package: entry, reason: standIn.reason };
71
+ if (reference.kind === 'local') {
72
+ return { kind: 'dependency', package: entry, identity: reference.identity, declaration: `.package(path: ${JSON.stringify(reference.path)})` };
73
+ }
74
+ if (!reference.requirement) {
75
+ return { kind: 'unresolved', package: entry, problem: 'its dependency rule is not one SwiftBrowser knows; set a version in Xcode' };
76
+ }
77
+ return {
78
+ kind: 'dependency',
79
+ package: entry,
80
+ identity: reference.identity,
81
+ declaration: `.package(url: ${JSON.stringify(reference.url)}, ${requirementArgument(reference.requirement)})`,
82
+ };
83
+ });
84
+ }
85
+ /** Xcode's dependency rule as the argument of SwiftPM's `.package(url:…)`. */
86
+ export function requirementArgument(requirement) {
87
+ switch (requirement.kind) {
88
+ case 'upToNextMajorVersion':
89
+ return `from: ${JSON.stringify(requirement.minimumVersion)}`;
90
+ case 'upToNextMinorVersion':
91
+ return `.upToNextMinor(from: ${JSON.stringify(requirement.minimumVersion)})`;
92
+ case 'exactVersion':
93
+ return `exact: ${JSON.stringify(requirement.version)}`;
94
+ case 'versionRange':
95
+ return `${JSON.stringify(requirement.minimumVersion)}..<${JSON.stringify(requirement.maximumVersion)}`;
96
+ case 'branch':
97
+ return `branch: ${JSON.stringify(requirement.branch)}`;
98
+ case 'revision':
99
+ return `revision: ${JSON.stringify(requirement.revision)}`;
100
+ }
101
+ }
102
+ /** The rule in words, as Xcode's package list shows it. */
103
+ export function describeRequirement(requirement) {
104
+ switch (requirement.kind) {
105
+ case 'upToNextMajorVersion':
106
+ return `up to next major from ${requirement.minimumVersion}`;
107
+ case 'upToNextMinorVersion':
108
+ return `up to next minor from ${requirement.minimumVersion}`;
109
+ case 'exactVersion':
110
+ return `exactly ${requirement.version}`;
111
+ case 'versionRange':
112
+ return `${requirement.minimumVersion} to ${requirement.maximumVersion}`;
113
+ case 'branch':
114
+ return `branch ${requirement.branch}`;
115
+ case 'revision':
116
+ return `revision ${requirement.revision.slice(0, 12)}`;
117
+ }
118
+ }
119
+ /** A package as people name it: the URL's last component (case kept), or the folder. */
120
+ export function packageDisplayName(entry) {
121
+ const reference = entry.reference;
122
+ if (!reference)
123
+ return entry.products.join(', ');
124
+ const location = reference.kind === 'remote' ? reference.url : reference.path;
125
+ const last = location.replace(/[/\\]+$/, '').split(/[/\\:]/).pop() ?? location;
126
+ return last.replace(/\.git$/i, '');
127
+ }
128
+ /** Where a package comes from, and on what rule, for the `check` report. */
129
+ export function packageSource(entry) {
130
+ const reference = entry.reference;
131
+ if (!reference)
132
+ return '';
133
+ if (reference.kind === 'local')
134
+ return reference.path;
135
+ const url = reference.url.replace(/^https?:\/\//, '').replace(/\.git$/i, '');
136
+ return reference.requirement ? `${url}, ${describeRequirement(reference.requirement)}` : url;
137
+ }
138
+ /** Module names the dependency packages provide, guessed as their product names → the package's name. */
139
+ export function packageModules(plans) {
140
+ const modules = new Map();
141
+ for (const plan of plans) {
142
+ if (plan.kind !== 'dependency')
143
+ continue;
144
+ for (const product of plan.package.products)
145
+ modules.set(product, packageDisplayName(plan.package));
146
+ }
147
+ return modules;
148
+ }
149
+ //# sourceMappingURL=packages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packages.js","sourceRoot":"","sources":["../src/packages.ts"],"names":[],"mappings":"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"}
package/dist/project.d.ts CHANGED
@@ -1,4 +1,6 @@
1
- import { type FoundationMode, type SwiftLanguageMode } from './config.js';
1
+ import { type SwiftLanguageMode } from './config.js';
2
+ import { type AppPackage } from './packages.js';
3
+ import { type SwiftSettings } from './buildSettings.js';
2
4
  export interface ResolvedApp {
3
5
  /** Swift module name (`[A-Za-z_][A-Za-z0-9_]*`); also the URL name. */
4
6
  name: string;
@@ -7,17 +9,53 @@ export interface ResolvedApp {
7
9
  root: string;
8
10
  /** Absolute paths of the Swift sources, in build order. */
9
11
  sources: string[];
12
+ /**
13
+ * Absolute paths of the Core ML models (`.mlmodel`, `.mlpackage`) the app
14
+ * compiles; each becomes a generated class (coreml.ts). Absent means none.
15
+ */
16
+ models?: string[];
10
17
  /** Absolute paths of `*.xcassets` directories. */
11
18
  catalogs: string[];
12
19
  /** Absolute paths of the resource files and folders `Bundle.main` serves. */
13
20
  resources: string[];
21
+ /**
22
+ * Absolute paths of the string catalogs (`.xcstrings`) and `.strings` /
23
+ * `.stringsdict` files compiled into the app's string tables (strings.ts).
24
+ * Absent means none.
25
+ */
26
+ localizations?: string[];
14
27
  /** A PNG app icon, when one was found. */
15
28
  icon?: string;
16
29
  swiftLanguageMode: SwiftLanguageMode;
17
- foundation: FoundationMode;
30
+ /**
31
+ * The Xcode target's concurrency settings (default actor isolation,
32
+ * upcoming features; buildSettings.ts). Absent for a folder of sources.
33
+ */
34
+ swiftSettings?: SwiftSettings;
35
+ /**
36
+ * The generated asset symbols (assetSymbols.ts): `false` when the Xcode
37
+ * target turns them off (`ASSETCATALOG_COMPILER_GENERATE_ASSET_SYMBOLS =
38
+ * NO`), `'extensions'` when it also wants the `Color` and `ShapeStyle`
39
+ * members (`ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS =
40
+ * YES`, which Xcode's templates set). Absent: the resource members only.
41
+ */
42
+ assetSymbols?: false | 'extensions';
18
43
  /** Languages whose ICU data a full-Foundation build keeps. */
19
44
  locales: string[];
45
+ /** The app's URL schemes (Info.plist `CFBundleURLTypes`, or `urlSchemes` in swiftbrowser.json); see urlSchemes.ts. */
46
+ urlSchemes?: string[];
47
+ /** A CORS proxy the page retries refused cross-origin reads through (`corsProxy` in swiftbrowser.json, `--cors-proxy`). */
48
+ corsProxy?: string;
49
+ /** Hosts the app's requests may not reach (`blockHosts` in swiftbrowser.json, `--block-host`). */
50
+ blockHosts?: string[];
51
+ /** Whether ICU's collation tables ship (`collation` in swiftbrowser.json; default true). */
52
+ collation: boolean;
20
53
  defines: string[];
54
+ /**
55
+ * The Swift packages the Xcode target links (Package Dependencies), and
56
+ * those `swiftbrowser.json` lists, each with its products. See packages.ts.
57
+ */
58
+ packages: AppPackage[];
21
59
  /** How the app was found. */
22
60
  origin: {
23
61
  kind: 'xcodeproj';
@@ -30,14 +68,17 @@ export interface ResolvedApp {
30
68
  export interface ResolveOptions {
31
69
  target?: string;
32
70
  configFile?: string;
33
- foundation?: FoundationMode;
34
71
  }
35
72
  /** `Guess The Flag` → `GuessTheFlag`; a leading digit gets an underscore. */
36
73
  export declare function moduleName(raw: string): string;
37
- /** Every `.swift` file and `.xcassets` folder under `dir`, by convention. */
74
+ /** A Core ML model Xcode compiles into a class: an `.mlmodel` file or an `.mlpackage` bundle. */
75
+ export declare function isCoreMLModel(file: string): boolean;
76
+ /** Every `.swift` file, Core ML model and `.xcassets` folder under `dir`, by convention. */
38
77
  export declare function discoverByConvention(dir: string): {
39
78
  sources: string[];
79
+ models: string[];
40
80
  catalogs: string[];
81
+ localizations: string[];
41
82
  };
42
83
  /** The largest PNG of the app icon set, for the home-screen manifest. */
43
84
  export declare function findAppIcon(catalogs: readonly string[], iconName?: string): string | undefined;
package/dist/project.js CHANGED
@@ -5,6 +5,10 @@ import { existsSync, readdirSync, statSync } from 'node:fs';
5
5
  import path from 'node:path';
6
6
  import { loadConfig } from './config.js';
7
7
  import { CliError } from './log.js';
8
+ import { configPackages, groupPackageProducts } from './packages.js';
9
+ import { swiftSettingsOf } from './buildSettings.js';
10
+ import { isLocalizationFile, localizationsAmong } from './strings.js';
11
+ import { urlSchemesOfTarget } from './urlSchemes.js';
8
12
  /** Directories never searched for sources or catalogs. */
9
13
  const SKIP_DIRS = new Set(['.build', '.swiftbrowser', '.git', 'node_modules', 'DerivedData', 'Pods', 'Carthage', 'build', 'Preview Content']);
10
14
  /** `Guess The Flag` → `GuessTheFlag`; a leading digit gets an underscore. */
@@ -20,7 +24,7 @@ function walk(dir, visit) {
20
24
  if (entry.isDirectory()) {
21
25
  if (SKIP_DIRS.has(entry.name) || entry.name.startsWith('.') || /(Tests|UITests)$/.test(entry.name))
22
26
  continue;
23
- if (entry.name.endsWith('.xcassets') || entry.name.endsWith('.xcodeproj') || entry.name.endsWith('.xcworkspace')) {
27
+ if (entry.name.endsWith('.xcassets') || entry.name.endsWith('.xcodeproj') || entry.name.endsWith('.xcworkspace') || entry.name.endsWith('.mlpackage')) {
24
28
  visit(full, statSync(full));
25
29
  continue;
26
30
  }
@@ -31,31 +35,56 @@ function walk(dir, visit) {
31
35
  }
32
36
  }
33
37
  }
34
- /** Every `.swift` file and `.xcassets` folder under `dir`, by convention. */
38
+ /** A Core ML model Xcode compiles into a class: an `.mlmodel` file or an `.mlpackage` bundle. */
39
+ export function isCoreMLModel(file) {
40
+ return file.endsWith('.mlmodel') || file.endsWith('.mlpackage');
41
+ }
42
+ /** Every `.swift` file, Core ML model and `.xcassets` folder under `dir`, by convention. */
35
43
  export function discoverByConvention(dir) {
36
44
  const sources = [];
45
+ const models = [];
37
46
  const catalogs = [];
47
+ const localizations = [];
38
48
  walk(dir, (file) => {
39
49
  if (file.endsWith('.swift') && !/(Tests|UITests)\.swift$/.test(path.basename(file)) && !/Package\.swift$/.test(file))
40
50
  sources.push(file);
51
+ else if (isCoreMLModel(file))
52
+ models.push(file);
41
53
  else if (file.endsWith('.xcassets'))
42
54
  catalogs.push(file);
55
+ else if (file.endsWith('.xcstrings') || (isLocalizationFile(file) && path.dirname(file).endsWith('.lproj')))
56
+ localizations.push(file);
43
57
  });
44
- return { sources, catalogs };
58
+ return { sources, models, catalogs, localizations };
59
+ }
60
+ /** A string catalog, table or `.lproj` folder: compiled into string tables, not copied. */
61
+ function isLocalizationSource(file) {
62
+ return isLocalizationFile(file) || file.endsWith('.lproj');
45
63
  }
46
- /** Swift files named by a config `sources` list: files as is, directories recursively. */
64
+ /**
65
+ * Swift files and Core ML models named by a config `sources` list: files as
66
+ * is (a model by its extension), directories recursively.
67
+ */
47
68
  function expandSources(root, entries) {
48
- const out = [];
69
+ const sources = [];
70
+ const models = [];
49
71
  for (const entry of entries) {
50
72
  const full = path.resolve(root, entry);
51
73
  if (!existsSync(full))
52
74
  throw new CliError(`sources entry not found: ${entry}`);
53
- if (statSync(full).isDirectory())
54
- out.push(...discoverByConvention(full).sources);
55
- else
56
- out.push(full);
75
+ if (isCoreMLModel(full)) {
76
+ models.push(full);
77
+ }
78
+ else if (statSync(full).isDirectory()) {
79
+ const found = discoverByConvention(full);
80
+ sources.push(...found.sources);
81
+ models.push(...found.models);
82
+ }
83
+ else {
84
+ sources.push(full);
85
+ }
57
86
  }
58
- return out;
87
+ return { sources, models };
59
88
  }
60
89
  function applyExcludes(root, files, exclude) {
61
90
  if (!exclude || exclude.length === 0)
@@ -137,9 +166,9 @@ export async function resolveApp(input, options = {}) {
137
166
  }
138
167
  const config = loadConfig(root, options.configFile);
139
168
  const swiftLanguageMode = config.swiftLanguageMode ?? '5';
140
- const foundation = options.foundation ?? config.foundation ?? 'full';
141
169
  const defines = config.defines ?? [];
142
170
  const locales = config.locales ?? ['en'];
171
+ const collation = config.collation ?? true;
143
172
  if (projectPath) {
144
173
  const project = await readXcode(projectPath);
145
174
  const apps = project.appTargets();
@@ -161,48 +190,86 @@ export async function resolveApp(input, options = {}) {
161
190
  }
162
191
  if (!chosen)
163
192
  throw new CliError('no target chosen');
164
- const sources = applyExcludes(root, config.sources ? expandSources(root, config.sources) : chosen.sources.filter((f) => f.endsWith('.swift')), config.exclude);
193
+ const listed = config.sources ? expandSources(root, config.sources) : null;
194
+ const sources = applyExcludes(root, listed ? listed.sources : chosen.sources.filter((f) => f.endsWith('.swift')), config.exclude);
195
+ const models = applyExcludes(root, listed ? listed.models : (chosen.models ?? []), config.exclude);
165
196
  const catalogs = config.catalogs ? config.catalogs.map((c) => path.resolve(root, c)) : chosen.assetCatalogs;
166
- const resources = config.resources ? config.resources.map((r) => path.resolve(root, r)) : bundleResources(chosen.resources ?? []);
197
+ const listedResources = config.resources?.map((r) => path.resolve(root, r));
198
+ const resources = listedResources ? listedResources.filter((r) => !isLocalizationSource(r)) : bundleResources(chosen.resources ?? []);
199
+ const localizations = listedResources ? localizationsAmong(listedResources) : (chosen.localizations ?? []);
167
200
  const icon = config.icon ? path.resolve(root, config.icon) : findAppIcon(catalogs, chosen.appIconName);
168
201
  const app = {
169
202
  name: config.name ?? moduleName(chosen.productName || chosen.name),
170
203
  displayName: config.displayName ?? chosen.displayName ?? chosen.productName ?? chosen.name,
171
204
  root,
172
205
  sources,
206
+ models,
173
207
  catalogs,
174
208
  resources,
209
+ ...(localizations.length > 0 ? { localizations } : {}),
175
210
  swiftLanguageMode: config.swiftLanguageMode ?? (chosen.swiftVersion?.startsWith('6') ? '6' : swiftLanguageMode),
176
- foundation,
177
211
  locales,
212
+ collation,
178
213
  defines,
214
+ packages: [...groupPackageProducts(chosen.packageDependencies ?? []), ...configPackages(config.packages ?? [], root)],
179
215
  origin: { kind: 'xcodeproj', project: projectPath, target: chosen.name },
180
216
  };
181
217
  if (icon)
182
218
  app.icon = icon;
219
+ const buildSettings = chosen.settings?.();
220
+ if (buildSettings) {
221
+ const settings = swiftSettingsOf(buildSettings, app.swiftLanguageMode);
222
+ if (settings.defaultIsolationMainActor || settings.upcomingFeatures.length > 0)
223
+ app.swiftSettings = settings;
224
+ if (/^(NO|FALSE|0)$/i.test(buildSettings['ASSETCATALOG_COMPILER_GENERATE_ASSET_SYMBOLS'] ?? ''))
225
+ app.assetSymbols = false;
226
+ else if (/^(YES|TRUE|1)$/i.test(buildSettings['ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS'] ?? ''))
227
+ app.assetSymbols = 'extensions';
228
+ }
229
+ const urlSchemes = config.urlSchemes ?? urlSchemesOfTarget(chosen, root);
230
+ if (urlSchemes.length > 0)
231
+ app.urlSchemes = urlSchemes;
232
+ if (config.corsProxy)
233
+ app.corsProxy = config.corsProxy;
234
+ if (config.blockHosts?.length)
235
+ app.blockHosts = config.blockHosts;
183
236
  return finish(app);
184
237
  }
185
238
  const discovered = discoverByConvention(root);
186
- const sources = applyExcludes(root, config.sources ? expandSources(root, config.sources) : discovered.sources, config.exclude);
239
+ const listed = config.sources ? expandSources(root, config.sources) : null;
240
+ const sources = applyExcludes(root, listed ? listed.sources : discovered.sources, config.exclude);
241
+ const models = applyExcludes(root, listed ? listed.models : discovered.models, config.exclude);
187
242
  const catalogs = config.catalogs ? config.catalogs.map((c) => path.resolve(root, c)) : discovered.catalogs;
188
- // A plain folder has no Copy Bundle Resources phase: resources come from the config only.
189
- const resources = (config.resources ?? []).map((r) => path.resolve(root, r));
243
+ // A plain folder has no Copy Bundle Resources phase: resources come from the
244
+ // config only, string tables from the config or the folder.
245
+ const listedResources = (config.resources ?? []).map((r) => path.resolve(root, r));
246
+ const resources = listedResources.filter((r) => !isLocalizationSource(r));
247
+ const localizations = config.resources ? localizationsAmong(listedResources) : discovered.localizations;
190
248
  const icon = config.icon ? path.resolve(root, config.icon) : findAppIcon(catalogs);
191
249
  const app = {
192
250
  name: config.name ?? moduleName(path.basename(root)),
193
251
  displayName: config.displayName ?? path.basename(root),
194
252
  root,
195
253
  sources,
254
+ models,
196
255
  catalogs,
197
256
  resources,
257
+ ...(localizations.length > 0 ? { localizations } : {}),
198
258
  swiftLanguageMode,
199
- foundation,
200
259
  locales,
260
+ collation,
201
261
  defines,
262
+ packages: configPackages(config.packages ?? [], root),
202
263
  origin: { kind: 'folder' },
203
264
  };
204
265
  if (icon)
205
266
  app.icon = icon;
267
+ if (config.urlSchemes?.length)
268
+ app.urlSchemes = config.urlSchemes;
269
+ if (config.corsProxy)
270
+ app.corsProxy = config.corsProxy;
271
+ if (config.blockHosts?.length)
272
+ app.blockHosts = config.blockHosts;
206
273
  return finish(app);
207
274
  }
208
275
  /**
@@ -239,6 +306,8 @@ function finish(app) {
239
306
  // An Xcode project made on macOS can name files whose case differs from the
240
307
  // disk's; repair what can be repaired, report the rest.
241
308
  app.sources = app.sources.map(repairCase);
309
+ if (app.models)
310
+ app.models = app.models.map(repairCase);
242
311
  app.catalogs = app.catalogs.map(repairCase);
243
312
  app.resources = app.resources.map(repairCase);
244
313
  if (app.icon)
@@ -247,6 +316,10 @@ function finish(app) {
247
316
  if (missing.length > 0) {
248
317
  throw new CliError(`${missing.length} source file${missing.length === 1 ? '' : 's'} named by the project ${missing.length === 1 ? 'does' : 'do'} not exist:\n ${missing.join('\n ')}`);
249
318
  }
319
+ const missingModels = (app.models ?? []).filter((file) => !existsSync(file));
320
+ if (missingModels.length > 0) {
321
+ throw new CliError(`${missingModels.length} Core ML model${missingModels.length === 1 ? '' : 's'} named by the project ${missingModels.length === 1 ? 'does' : 'do'} not exist:\n ${missingModels.join('\n ')}`);
322
+ }
250
323
  const missingResources = app.resources.filter((file) => !existsSync(file));
251
324
  if (missingResources.length > 0) {
252
325
  throw new CliError(`${missingResources.length} resource${missingResources.length === 1 ? '' : 's'} named by the project ${missingResources.length === 1 ? 'does' : 'do'} not exist:\n ${missingResources.join('\n ')}`);
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /** Wire types (the low three bits of a field's key). Groups (3, 4) are long deprecated and rejected. */
2
+ export declare const WIRE_VARINT = 0;
3
+ export declare const WIRE_FIXED64 = 1;
4
+ export declare const WIRE_BYTES = 2;
5
+ export declare const WIRE_FIXED32 = 5;
6
+ /** A malformed message: truncated, a bad varint, an unknown wire type. */
7
+ export declare class ProtobufError extends Error {
8
+ readonly offset?: number | undefined;
9
+ constructor(message: string, offset?: number | undefined);
10
+ }
11
+ /** One occurrence of a field: a varint, 8 or 4 raw bytes, or a length-delimited payload. */
12
+ export interface RawField {
13
+ wireType: number;
14
+ /** For `WIRE_VARINT`. */
15
+ varint?: bigint;
16
+ /** For the other wire types: the payload (a view into the message's buffer). */
17
+ bytes?: Uint8Array;
18
+ }
19
+ /** Reads a base-128 varint at `offset`; returns the value (unsigned, at most 64 bits) and the offset after it. */
20
+ export declare function readVarint(buffer: Uint8Array, offset: number): [bigint, number];
21
+ /** A decoded message: its fields by number, in the order they appeared. */
22
+ export declare class ProtoMessage {
23
+ readonly buffer: Uint8Array;
24
+ readonly fields: Map<number, RawField[]>;
25
+ constructor(buffer: Uint8Array);
26
+ has(number: number): boolean;
27
+ /** The field numbers present, ascending. */
28
+ numbers(): number[];
29
+ private last;
30
+ /** An embedded message (the last occurrence), or undefined when absent. */
31
+ message(number: number): ProtoMessage | undefined;
32
+ /** Every occurrence of a repeated message field. */
33
+ messages(number: number): ProtoMessage[];
34
+ /** A `bytes` field ('' → empty). */
35
+ bytes(number: number): Uint8Array;
36
+ /** A `string` field (UTF-8; '' when absent). */
37
+ string(number: number): string;
38
+ /** A `repeated string` field. */
39
+ strings(number: number): string[];
40
+ /** An unsigned varint field (`uint32`, `uint64`, `bool`, enums): 0n when absent. */
41
+ uint64(number: number): bigint;
42
+ /** A signed `int32` / `int64` field (two's complement, not zigzag). */
43
+ int64(number: number): bigint;
44
+ /** A varint field as a JavaScript number; throws when it does not fit exactly. */
45
+ int(number: number): number;
46
+ bool(number: number): boolean;
47
+ /** A `double` field: 0 when absent. */
48
+ double(number: number): number;
49
+ /** A `float` field: 0 when absent. */
50
+ float(number: number): number;
51
+ /** A `repeated double` field, packed or not. */
52
+ doubles(number: number): number[];
53
+ /** A `repeated float` field, packed or not. */
54
+ floats(number: number): number[];
55
+ /** A `repeated int64` / `uint64` / enum field, packed or not, signed. */
56
+ int64s(number: number): bigint[];
57
+ /** `int64s` as JavaScript numbers; throws when one does not fit exactly. */
58
+ ints(number: number): number[];
59
+ private fixedList;
60
+ }
61
+ /** Decodes a message from `bytes`. */
62
+ export declare function decodeMessage(bytes: Uint8Array): ProtoMessage;