@swiftbrowser/cli 0.6.7 → 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
@@ -0,0 +1,324 @@
1
+ // Reading a package's manifest without SwiftPM: what `swift package
2
+ // dump-package` tells the CLI, from the WebAssembly compiler.
3
+ //
4
+ // A Package.swift is a program: SwiftPM compiles it against PackageDescription,
5
+ // runs it, and reads the description it writes as it exits. This does the
6
+ // same with the WebAssembly tools: compile and link the manifest against
7
+ // PackageDescription built for wasm32-wasip1 (@swiftbrowser/wasm-tools'
8
+ // `manifest-api`, toolchain/build-manifest-api.sh), with the flags SwiftPM's
9
+ // ManifestLoader passes, run it under WASI with `-fileno 1`, and convert the
10
+ // JSON it writes (PackageDescription's `Serialization` types) to the shape of
11
+ // dump-package's that the rest of the CLI reads (`DumpedPackage`). A result is
12
+ // cached by the manifest's contents: the first read of a package takes about
13
+ // ten seconds, later ones none.
14
+ import { createHash } from 'node:crypto';
15
+ import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync } from 'node:fs';
16
+ import path from 'node:path';
17
+ import { packageIdentity } from '@swiftbrowser/xcodeproj';
18
+ import { prepareICUData } from './icu.js';
19
+ import { CliError } from './log.js';
20
+ import { SWIFT_VERSION, cacheDir } from './toolchain.js';
21
+ import { load, toolsDir } from './wasmCompiler.js';
22
+ /** Bumped when the conversion changes, so cached results are read again. */
23
+ const MANIFEST_FORMAT = 2;
24
+ // ---------------------------------------------------------------------------
25
+ // Which manifest, and its tools version
26
+ /** `5.9` → [5, 9, 0]. */
27
+ function versionParts(version) {
28
+ const [major = 0, minor = 0, patch = 0] = version.split('.').map((part) => Number(part) || 0);
29
+ return [major, minor, patch];
30
+ }
31
+ function compareVersions(a, b) {
32
+ const x = versionParts(a);
33
+ const y = versionParts(b);
34
+ for (let i = 0; i < 3; i++)
35
+ if (x[i] !== y[i])
36
+ return x[i] - y[i];
37
+ return 0;
38
+ }
39
+ /**
40
+ * The manifest SwiftPM reads for this Swift version (ToolsVersionParser's
41
+ * `findManifest`): a `Package@swift-6.4.0.swift`, `@swift-6.4` or `@swift-6`
42
+ * for exactly this version; else the newest version-specific one not above
43
+ * it, when its tools version is above `Package.swift`'s or `Package.swift`'s
44
+ * is too new; else `Package.swift`. Null when the folder has no manifest.
45
+ */
46
+ export function selectManifest(dir, swiftVersion = SWIFT_VERSION) {
47
+ const names = readdirSync(dir);
48
+ const [major, minor, patch] = versionParts(swiftVersion);
49
+ for (const key of [`${major}.${minor}.${patch}`, `${major}.${minor}`, `${major}`]) {
50
+ if (names.includes(`Package@swift-${key}.swift`))
51
+ return `Package@swift-${key}.swift`;
52
+ }
53
+ const candidates = names.flatMap((name) => {
54
+ const match = /^Package@swift-(\d+(?:\.\d+){0,2})\.swift$/.exec(name);
55
+ return match && compareVersions(match[1], swiftVersion) <= 0 ? [{ name, version: match[1] }] : [];
56
+ });
57
+ candidates.sort((a, b) => compareVersions(b.version, a.version));
58
+ const regular = names.includes('Package.swift') ? 'Package.swift' : null;
59
+ const candidate = candidates[0];
60
+ if (!candidate)
61
+ return regular;
62
+ // A manifest without the comment is tools version 3.1, as SwiftPM documents.
63
+ const toolsOf = (name) => {
64
+ try {
65
+ return manifestToolsVersion(readFileSync(path.join(dir, name), 'utf8'));
66
+ }
67
+ catch {
68
+ return '3.1.0';
69
+ }
70
+ };
71
+ if (!regular)
72
+ return candidate.name;
73
+ const regularTools = toolsOf(regular);
74
+ if (compareVersions(toolsOf(candidate.name), regularTools) > 0)
75
+ return candidate.name;
76
+ return compareVersions(regularTools, swiftVersion) <= 0 ? regular : candidate.name;
77
+ }
78
+ /** The tools version a manifest declares (`// swift-tools-version: 5.9` → `5.9.0`), as SwiftPM reads it. */
79
+ export function manifestToolsVersion(text) {
80
+ const match = /^\/\/\s*swift-tools-version\s*:\s*(\d+(?:\.\d+){0,2})/i.exec(text.replace(/^/, ''));
81
+ if (!match)
82
+ throw new CliError('the manifest does not start with `// swift-tools-version:`');
83
+ const [major, minor, patch] = versionParts(match[1]);
84
+ return `${major}.${minor}.${patch}`;
85
+ }
86
+ /** The language mode a manifest is compiled in: its tools version's (SwiftPM's `ToolsVersion.swiftLanguageVersion`). */
87
+ export function manifestLanguageMode(toolsVersion) {
88
+ const [major, minor] = versionParts(toolsVersion);
89
+ if (major >= 6)
90
+ return '6';
91
+ if (major === 5)
92
+ return '5';
93
+ return major === 4 && minor >= 2 ? '4.2' : '4';
94
+ }
95
+ /** A Swift enum case as Codable writes it: `{"case": {associated values}}`. */
96
+ function enumCase(value) {
97
+ const [name, payload] = Object.entries((value ?? {}))[0] ?? ['', {}];
98
+ return [name, (payload ?? {})];
99
+ }
100
+ function versionString(value) {
101
+ const v = value;
102
+ const pre = v.prereleaseIdentifiers?.length ? `-${v.prereleaseIdentifiers.join('.')}` : '';
103
+ const build = v.buildMetadataIdentifiers?.length ? `+${v.buildMetadataIdentifiers.join('.')}` : '';
104
+ return `${v.major}.${v.minor}.${v.patch}${pre}${build}`;
105
+ }
106
+ function swiftVersionName(value) {
107
+ const [name, payload] = enumCase(value);
108
+ if (name === 'version')
109
+ return String(payload['_0']);
110
+ return name.replace(/^v/, '').replace('_', '.');
111
+ }
112
+ /** A build setting's condition as dump-package writes it. */
113
+ /** A condition as dump-package writes it: platforms by name, a configuration, traits. */
114
+ function settingCondition(condition) {
115
+ if (!condition)
116
+ return undefined;
117
+ const c = condition;
118
+ return {
119
+ platformNames: (c.platforms ?? []).map((p) => p.name),
120
+ ...(c.config ? { config: c.config.config } : {}),
121
+ ...(c.traits ? { traits: c.traits } : {}),
122
+ };
123
+ }
124
+ /** A C or C++ language standard (`c11`, `cxx17`...), as the manifest wrote it. */
125
+ function languageStandard(value) {
126
+ if (value === null || value === undefined)
127
+ return undefined;
128
+ return typeof value === 'string' ? value : enumCase(value)[0];
129
+ }
130
+ /**
131
+ * Settings as dump-package writes them: `{tool, kind: {<name>: {_0}}}`.
132
+ * PackageDescription names them as SwiftPM's manifest loader reads them; the
133
+ * value is the list for unsafeFlags, else its first element.
134
+ */
135
+ function settings(tool, list) {
136
+ return (list ?? []).map(({ data }) => {
137
+ const name = data.name === 'swiftLanguageVersion' ? 'swiftLanguageMode' : data.name;
138
+ // The associated values of SwiftPM's setting kinds (ManifestJSONParser).
139
+ const payload = name === 'strictMemorySafety' ? {}
140
+ : name === 'unsafeFlags' ? { _0: data.value }
141
+ : name === 'treatWarning' ? { _0: data.value[0], _1: data.value[1] }
142
+ : { _0: data.value[0] };
143
+ const condition = settingCondition(data.condition);
144
+ return { tool, kind: { [name]: payload }, ...(condition ? { condition } : {}) };
145
+ });
146
+ }
147
+ function requirement(value) {
148
+ const [name, payload] = enumCase(value);
149
+ switch (name) {
150
+ case 'exact': return { kind: 'exact', version: versionString(payload['_0']) };
151
+ case 'range': return { kind: 'range', lower: versionString(payload['lowerBound']), upper: versionString(payload['upperBound']) };
152
+ case 'revision': return { kind: 'revision', revision: String(payload['_0']) };
153
+ case 'branch': return { kind: 'branch', branch: String(payload['_0']) };
154
+ default: throw new CliError(`a package dependency's requirement the CLI does not read: ${name}`);
155
+ }
156
+ }
157
+ /** PackageDescription's description of a package → dump-package's shape and its dependencies. */
158
+ export function convertManifest(output, toolsVersion) {
159
+ const { package: pkg, errors } = output;
160
+ if (errors?.length)
161
+ throw new CliError(`the manifest reports: ${errors.join('; ')}`);
162
+ const products = pkg['products'].map((product) => {
163
+ const [type, payload] = enumCase(product['productType']);
164
+ return {
165
+ name: String(product['name']),
166
+ targets: product['targets'],
167
+ type: type === 'library' ? { library: [enumCase(payload['type'])[0]] } : { [type]: null },
168
+ };
169
+ });
170
+ const targets = pkg['targets'].map((target) => ({
171
+ name: String(target['name']),
172
+ type: enumCase(target['type'])[0],
173
+ path: target['path'] ?? null,
174
+ exclude: target['exclude'] ?? [],
175
+ resources: target['resources'] ?? [],
176
+ ...(target['sources'] ? { sources: target['sources'] } : {}),
177
+ ...(target['publicHeadersPath'] ? { publicHeadersPath: String(target['publicHeadersPath']) } : {}),
178
+ dependencies: (target['dependencies'] ?? []).map((dependency) => {
179
+ const [kind, d] = enumCase(dependency);
180
+ const condition = settingCondition(d['condition']) ?? null;
181
+ if (kind === 'target')
182
+ return { target: [String(d['name']), condition] };
183
+ if (kind === 'product')
184
+ return { product: [String(d['name']), d['package'] ?? null, d['moduleAliases'] ?? null, condition] };
185
+ return { byName: [String(d['name']), condition] };
186
+ }),
187
+ settings: [
188
+ ...settings('c', target['cSettings']),
189
+ ...settings('cxx', target['cxxSettings']),
190
+ ...settings('swift', target['swiftSettings']),
191
+ ...settings('linker', target['linkerSettings']),
192
+ ],
193
+ }));
194
+ const dependencies = pkg['dependencies'].map((dependency) => {
195
+ const [kind, d] = enumCase(dependency['kind']);
196
+ const name = d['name'] ?? null;
197
+ const asked = dependency['traits'];
198
+ const traits = asked ? {
199
+ traits: asked.map((trait) => ({ name: trait.name, ...(trait.condition?.traits ? { condition: { traits: trait.condition.traits } } : {}) })),
200
+ } : {};
201
+ if (kind === 'sourceControl') {
202
+ const url = String(d['location']);
203
+ return { kind: 'sourceControl', identity: packageIdentity(url), name, url, requirement: requirement(d['requirement']), ...traits };
204
+ }
205
+ if (kind === 'fileSystem')
206
+ return { kind: 'fileSystem', identity: packageIdentity(String(d['path'])), name, path: String(d['path']), ...traits };
207
+ if (kind === 'registry') {
208
+ const id = String(d['id']);
209
+ return { kind: 'registry', identity: id.toLowerCase(), name: null, id, requirement: requirement(d['requirement']), ...traits };
210
+ }
211
+ throw new CliError(`a package dependency the CLI does not read: ${kind}`);
212
+ });
213
+ const swiftLanguageVersions = pkg['swiftLanguageVersions'];
214
+ return {
215
+ dump: {
216
+ name: String(pkg['name']),
217
+ toolsVersion: { _version: toolsVersion },
218
+ swiftLanguageVersions: swiftLanguageVersions ? swiftLanguageVersions.map(swiftVersionName) : null,
219
+ products,
220
+ targets,
221
+ ...(pkg['traits'] ? { traits: pkg['traits'].map((trait) => ({ name: trait.name, enabledTraits: trait.enabledTraits ?? [] })) } : {}),
222
+ ...(languageStandard(pkg['cLanguageStandard']) ? { cLanguageStandard: languageStandard(pkg['cLanguageStandard']) } : {}),
223
+ ...(languageStandard(pkg['cxxLanguageStandard']) ? { cxxLanguageStandard: languageStandard(pkg['cxxLanguageStandard']) } : {}),
224
+ },
225
+ dependencies,
226
+ };
227
+ }
228
+ /** The JSON a manifest wrote: the last `{"errors":` object of its output (anything it printed comes before). */
229
+ export function manifestOutputJSON(output) {
230
+ const start = output.lastIndexOf('{"errors":');
231
+ if (start < 0)
232
+ throw new CliError(`the manifest wrote no description:\n${output.trim()}`);
233
+ return JSON.parse(output.slice(start, output.lastIndexOf('}') + 1));
234
+ }
235
+ // ---------------------------------------------------------------------------
236
+ // Running it
237
+ /** PackageDescription for the WebAssembly compiler, or why it is missing. */
238
+ async function manifestApi() {
239
+ const { node } = await load();
240
+ const dir = node.findManifestApi(toolsDir());
241
+ if (!dir)
242
+ throw new CliError('the WebAssembly tools have no PackageDescription (manifest-api) to read package manifests with; update @swiftbrowser/wasm-tools');
243
+ return dir;
244
+ }
245
+ /** A key for what decides a manifest's result: its text and name, the manifest API's build, this code. */
246
+ function cacheKey(file, text, api) {
247
+ const hash = createHash('sha256').update(`manifest ${MANIFEST_FORMAT}\nswift ${SWIFT_VERSION}\n${path.basename(file)}\n`);
248
+ for (const library of readdirSync(api).filter((name) => name.endsWith('.a')).sort()) {
249
+ const info = statSync(path.join(api, library));
250
+ hash.update(`${library} ${info.size} ${info.mtimeMs}\n`);
251
+ }
252
+ return hash.update(text).digest('hex').slice(0, 24);
253
+ }
254
+ /**
255
+ * The manifest of the package in `dir`, read with the WebAssembly compiler
256
+ * (or from the cache). `sdk` is the Swift SDK's files, which the manifest is
257
+ * compiled and linked against.
258
+ */
259
+ export async function evaluateManifest(dir, sdk) {
260
+ const name = selectManifest(dir);
261
+ if (!name)
262
+ throw new CliError(`${dir} has no Package.swift`);
263
+ const text = readFileSync(path.join(dir, name), 'utf8');
264
+ const toolsVersion = manifestToolsVersion(text);
265
+ const api = await manifestApi();
266
+ const key = cacheKey(name, text, api);
267
+ const cacheFile = path.join(cacheDir(), 'manifests', `${key}.json`);
268
+ if (existsSync(cacheFile)) {
269
+ try {
270
+ return JSON.parse(readFileSync(cacheFile, 'utf8'));
271
+ }
272
+ catch {
273
+ // Unreadable: read the manifest again.
274
+ }
275
+ }
276
+ const { compiler, node } = await load();
277
+ // The manifest's program (35 MB with the ICU data) is needed only to run it once.
278
+ const work = path.join(cacheDir(), 'manifests', 'work', key);
279
+ mkdirSync(work, { recursive: true });
280
+ try {
281
+ return await evaluateIn(work);
282
+ }
283
+ finally {
284
+ rmSync(work, { recursive: true, force: true });
285
+ }
286
+ async function evaluateIn(work) {
287
+ // Foundation, which PackageDescription writes the JSON with, reads ICU's
288
+ // data through a symbol: the trimmed data the apps link keeps the SDK's
289
+ // 34 MB original out of the link.
290
+ const icu = prepareICUData(sdk, ['en']);
291
+ writeFileSync(path.join(work, 'icudt.o'), compiler.dataObject(icu.symbol, readFileSync(icu.file)));
292
+ const host = node.wasiHost({
293
+ tools: node.findTools(toolsDir()),
294
+ mounts: { '/sdk': sdk.root, '/manifest-api': api, '/package': dir, '/work': work },
295
+ sdkRoot: '/sdk',
296
+ moduleCacheDir: path.join(cacheDir(), 'wasm-compiler', 'module-cache'),
297
+ });
298
+ const built = await compiler.compile(host, {
299
+ moduleName: 'main',
300
+ sources: [`/package/${name}`],
301
+ objectDir: '/work',
302
+ output: '/work/manifest.wasm',
303
+ frontendFlags: ['-swift-version', manifestLanguageMode(toolsVersion), '-I', '/manifest-api', '-package-description-version', toolsVersion],
304
+ objects: ['/work/icudt.o'],
305
+ linkerFlags: ['-L/manifest-api', '--gc-sections'],
306
+ });
307
+ if (!built.ok)
308
+ throw new CliError(`the manifest of ${dir} does not compile:\n${built.output.split('/package/').join(`${dir}${path.sep}`)}`);
309
+ // The CLI's TypeScript library has WebAssembly's types but not its value.
310
+ const wasm = globalThis.WebAssembly;
311
+ const module = await wasm.compile(readFileSync(path.join(work, 'manifest.wasm')));
312
+ const run = await node.runWasiCommand({
313
+ module,
314
+ args: ['manifest', '-fileno', '1', '-context', JSON.stringify({ packageDirectory: '/package' })],
315
+ mounts: { '/package': dir },
316
+ });
317
+ if (run.exitCode !== 0)
318
+ throw new CliError(`the manifest of ${dir} failed (exit ${run.exitCode}):\n${run.output}`);
319
+ const result = convertManifest(manifestOutputJSON(run.output), toolsVersion);
320
+ writeFileSync(cacheFile, JSON.stringify(result));
321
+ return result;
322
+ }
323
+ }
324
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,8DAA8D;AAC9D,EAAE;AACF,gFAAgF;AAChF,0EAA0E;AAC1E,yEAAyE;AACzE,wEAAwE;AACxE,6EAA6E;AAC7E,6EAA6E;AAC7E,8EAA8E;AAC9E,+EAA+E;AAC/E,6EAA6E;AAC7E,gCAAgC;AAEhC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5G,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAInD,4EAA4E;AAC5E,MAAM,eAAe,GAAG,CAAC,CAAC;AA0B1B,8EAA8E;AAC9E,wCAAwC;AAExC,yBAAyB;AACzB,SAAS,YAAY,CAAC,OAAe;IACnC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9F,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,eAAe,CAAC,CAAS,EAAE,CAAS;IAC3C,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;IACpE,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,eAAuB,aAAa;IAC9E,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IACzD,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE,EAAE,GAAG,KAAK,IAAI,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC;QAClF,IAAI,KAAK,CAAC,QAAQ,CAAC,iBAAiB,GAAG,QAAQ,CAAC;YAAE,OAAO,iBAAiB,GAAG,QAAQ,CAAC;IACxF,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,4CAA4C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,OAAO,KAAK,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtG,CAAC,CAAC,CAAC;IACH,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,SAAS;QAAE,OAAO,OAAO,CAAC;IAC/B,6EAA6E;IAC7E,MAAM,OAAO,GAAG,CAAC,IAAY,EAAU,EAAE;QACvC,IAAI,CAAC;YACH,OAAO,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC,IAAI,CAAC;IACpC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC,IAAI,CAAC;IACtF,OAAO,eAAe,CAAC,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;AACrF,CAAC;AAED,4GAA4G;AAC5G,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,KAAK,GAAG,wDAAwD,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACpG,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,QAAQ,CAAC,4DAA4D,CAAC,CAAC;IAC7F,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;IACtD,OAAO,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;AACtC,CAAC;AAED,wHAAwH;AACxH,MAAM,UAAU,oBAAoB,CAAC,YAAoB;IACvD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IAC3B,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAC5B,OAAO,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACjD,CAAC;AAOD,+EAA+E;AAC/E,SAAS,QAAQ,CAAC,KAAc;IAC9B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7E,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CAAS,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,MAAM,CAAC,GAAG,KAA+H,CAAC;IAC1I,MAAM,GAAG,GAAG,CAAC,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,MAAM,KAAK,GAAG,CAAC,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnG,OAAO,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAClD,CAAC;AAED,6DAA6D;AAC7D,yFAAyF;AACzF,SAAS,gBAAgB,CAAC,SAAkB;IAC1C,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,CAAC,GAAG,SAAoH,CAAC;IAC/H,OAAO;QACL,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACrD,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,kFAAkF;AAClF,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5D,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED;;;;GAIG;AACH,SAAS,QAAQ,CAAC,IAAY,EAAE,IAAa;IAC3C,OAAQ,CAAC,IAAI,IAAI,EAAE,CAAwE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;QAC3G,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACpF,yEAAyE;QACzE,MAAM,OAAO,GAAG,IAAI,KAAK,oBAAoB,CAAC,CAAC,CAAC,EAAE;YAChD,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE;gBAC3C,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBAClE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAClF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC9E,KAAK,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACjI,KAAK,UAAU,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC9E,KAAK,QAAQ,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,6DAA6D,IAAI,EAAE,CAAC,CAAC;IACnG,CAAC;AACH,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,eAAe,CAAC,MAAe,EAAE,YAAoB;IACnE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAA6C,CAAC;IAC/E,IAAI,MAAM,EAAE,MAAM;QAAE,MAAM,IAAI,QAAQ,CAAC,yBAAyB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrF,MAAM,QAAQ,GAAI,GAAG,CAAC,UAAU,CAAY,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;QACzD,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC7B,OAAO,EAAE,OAAO,CAAC,SAAS,CAAa;YACvC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;SAC1F,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAI,GAAG,CAAC,SAAS,CAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC1D,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,EAAG,MAAM,CAAC,MAAM,CAA+B,IAAI,IAAI;QAC3D,OAAO,EAAG,MAAM,CAAC,SAAS,CAA0B,IAAI,EAAE;QAC1D,SAAS,EAAG,MAAM,CAAC,WAAW,CAAkC,IAAI,EAAE;QACtE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClG,YAAY,EAAE,CAAE,MAAM,CAAC,cAAc,CAA2B,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YACzF,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACvC,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,IAAI,CAAC;YAC3D,IAAI,IAAI,KAAK,QAAQ;gBAAE,OAAO,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAsB,EAAE,CAAC;YAC9F,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAG,CAAC,CAAC,SAAS,CAA+B,IAAI,IAAI,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE,SAAS,CAA0C,EAAE,CAAC;YACrM,OAAO,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAsB,EAAE,CAAC;QACzE,CAAC,CAAC;QACF,QAAQ,EAAE;YACR,GAAG,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;YACrC,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;YACzC,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;YAC7C,GAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;SAChD;KACF,CAAC,CAAC,CAAC;IACJ,MAAM,YAAY,GAAI,GAAG,CAAC,cAAc,CAAY,CAAC,GAAG,CAAC,CAAC,UAAU,EAAsB,EAAE;QAC1F,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAI,CAAC,CAAC,MAAM,CAA+B,IAAI,IAAI,CAAC;QAC9D,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAA2F,CAAC;QAC7H,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;YACrB,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SAC5I,CAAC,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YAClC,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;QACrI,CAAC;QACD,IAAI,IAAI,KAAK,YAAY;YAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;QACjJ,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;QACjI,CAAC;QACD,MAAM,IAAI,QAAQ,CAAC,+CAA+C,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IACH,MAAM,qBAAqB,GAAG,GAAG,CAAC,uBAAuB,CAAiC,CAAC;IAC3F,OAAO;QACL,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzB,YAAY,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE;YACxC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI;YACjG,QAAQ;YACR,OAAO;YACP,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAG,GAAG,CAAC,QAAQ,CAAkD,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtL,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzH,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChI;QACD,YAAY;KACb,CAAC;AACJ,CAAC;AAED,gHAAgH;AAChH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAC/C,IAAI,KAAK,GAAG,CAAC;QAAE,MAAM,IAAI,QAAQ,CAAC,uCAAuC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1F,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,8EAA8E;AAC9E,aAAa;AAEb,6EAA6E;AAC7E,KAAK,UAAU,WAAW;IACxB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,QAAQ,CAAC,iIAAiI,CAAC,CAAC;IAChK,OAAO,GAAG,CAAC;AACb,CAAC;AAED,0GAA0G;AAC1G,SAAS,QAAQ,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW;IACvD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,eAAe,WAAW,aAAa,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1H,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACpF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,GAAY;IAC9D,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,QAAQ,CAAC,GAAG,GAAG,uBAAuB,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,MAAM,WAAW,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC;IACpE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAsB,CAAC;QAC1E,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;IACH,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;IACxC,kFAAkF;IAClF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7D,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC;QACH,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,UAAU,UAAU,CAAC,IAAY;QACpC,yEAAyE;QACzE,wEAAwE;QACxE,kCAAkC;QAClC,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnG,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;YACzB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;YAClF,OAAO,EAAE,MAAM;YACf,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,eAAe,EAAE,cAAc,CAAC;SACvE,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE;YACzC,UAAU,EAAE,MAAM;YAClB,OAAO,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC;YAC7B,SAAS,EAAE,OAAO;YAClB,MAAM,EAAE,qBAAqB;YAC7B,aAAa,EAAE,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,8BAA8B,EAAE,YAAY,CAAC;YAC1I,OAAO,EAAE,CAAC,eAAe,CAAC;YAC1B,WAAW,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC;SAClD,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,EAAE;YAAE,MAAM,IAAI,QAAQ,CAAC,mBAAmB,GAAG,uBAAuB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5I,0EAA0E;QAC1E,MAAM,IAAI,GAAI,UAAsG,CAAC,WAAW,CAAC;QACjI,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;YACpC,MAAM;YACN,IAAI,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC,CAAC;YAChG,MAAM,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE;SAC5B,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC;YAAE,MAAM,IAAI,QAAQ,CAAC,mBAAmB,GAAG,iBAAiB,GAAG,CAAC,QAAQ,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACnH,MAAM,MAAM,GAAG,eAAe,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC;QAC7E,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { type Hash } from 'node:crypto';
2
+ /** Adds each file's path and contents to the hash; files not there count as such. */
3
+ export declare function hashFiles(hash: Hash, files: readonly string[]): void;
4
+ /** Every file under `dir`, recursively, in a stable order; none when it is not there. */
5
+ export declare function treeFiles(dir: string): string[];
6
+ /** Adds each file's path, size and modification time: for large inputs that change only when replaced (the kit, the tools). */
7
+ export declare function hashStats(hash: Hash, files: readonly string[]): void;
8
+ /**
9
+ * Copies an entry's outputs to where the build expects them (`hostOf` maps
10
+ * a guest path to the host's); returns their guest paths, or null when the
11
+ * entry is not there.
12
+ */
13
+ export declare function restoreOutputs(entry: string, hostOf: (guest: string) => string): string[] | null;
14
+ /**
15
+ * Keeps a module's outputs as an entry, in place of a damaged one. It is
16
+ * written beside the entry and renamed into place, so that a build never
17
+ * reads one half written; two builds that store the same key store the same
18
+ * outputs, and one of them stays.
19
+ */
20
+ export declare function storeOutputs(entry: string, guests: readonly string[], hostOf: (guest: string) => string): void;
@@ -0,0 +1,98 @@
1
+ // The package modules the WebAssembly compiler built, kept between builds
2
+ // (wasmCompiler.ts), as SwiftPM keeps its build directory: a build compiles
3
+ // again only the modules whose inputs changed, and an app shares the modules
4
+ // of the packages another app already built.
5
+ //
6
+ // An entry is named by a hash of everything that goes into the module (the
7
+ // compiler, the kit, the SDK, the module's flags and files, and the entries
8
+ // of the modules it imports), so it is never stale: an edit makes a new key.
9
+ // It holds the module's outputs as files named by their index, with
10
+ // `outputs.json`, their guest paths, written last.
11
+ import { copyFileSync, mkdirSync, readFileSync, readdirSync, renameSync, rmSync, statSync, writeFileSync } from 'node:fs';
12
+ import path from 'node:path';
13
+ /** Adds each file's path and contents to the hash; files not there count as such. */
14
+ export function hashFiles(hash, files) {
15
+ for (const file of files) {
16
+ hash.update(`${file}\n`);
17
+ try {
18
+ hash.update(readFileSync(file));
19
+ }
20
+ catch {
21
+ hash.update('(missing)');
22
+ }
23
+ hash.update('\n');
24
+ }
25
+ }
26
+ /** Every file under `dir`, recursively, in a stable order; none when it is not there. */
27
+ export function treeFiles(dir) {
28
+ let entries;
29
+ try {
30
+ entries = readdirSync(dir, { withFileTypes: true });
31
+ }
32
+ catch {
33
+ return [];
34
+ }
35
+ return entries
36
+ .sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0))
37
+ .flatMap((entry) => {
38
+ const file = path.join(dir, entry.name);
39
+ if (entry.isDirectory())
40
+ return treeFiles(file);
41
+ return entry.isFile() || (entry.isSymbolicLink() && statSync(file, { throwIfNoEntry: false })?.isFile()) ? [file] : [];
42
+ });
43
+ }
44
+ /** Adds each file's path, size and modification time: for large inputs that change only when replaced (the kit, the tools). */
45
+ export function hashStats(hash, files) {
46
+ for (const file of files) {
47
+ const stat = statSync(file, { throwIfNoEntry: false });
48
+ hash.update(`${file} ${stat ? `${stat.size} ${stat.mtimeMs}` : '(missing)'}\n`);
49
+ }
50
+ }
51
+ /**
52
+ * Copies an entry's outputs to where the build expects them (`hostOf` maps
53
+ * a guest path to the host's); returns their guest paths, or null when the
54
+ * entry is not there.
55
+ */
56
+ export function restoreOutputs(entry, hostOf) {
57
+ let guests;
58
+ try {
59
+ guests = JSON.parse(readFileSync(path.join(entry, 'outputs.json'), 'utf8'));
60
+ }
61
+ catch {
62
+ return null;
63
+ }
64
+ try {
65
+ guests.forEach((guest, index) => {
66
+ const file = hostOf(guest);
67
+ mkdirSync(path.dirname(file), { recursive: true });
68
+ copyFileSync(path.join(entry, String(index)), file);
69
+ });
70
+ }
71
+ catch {
72
+ // Damaged: the build compiles the module again and stores it anew.
73
+ rmSync(entry, { recursive: true, force: true });
74
+ return null;
75
+ }
76
+ return guests;
77
+ }
78
+ /**
79
+ * Keeps a module's outputs as an entry, in place of a damaged one. It is
80
+ * written beside the entry and renamed into place, so that a build never
81
+ * reads one half written; two builds that store the same key store the same
82
+ * outputs, and one of them stays.
83
+ */
84
+ export function storeOutputs(entry, guests, hostOf) {
85
+ const temporary = `${entry}.${process.pid}.tmp`;
86
+ rmSync(temporary, { recursive: true, force: true });
87
+ mkdirSync(temporary, { recursive: true });
88
+ guests.forEach((guest, index) => copyFileSync(hostOf(guest), path.join(temporary, String(index))));
89
+ writeFileSync(path.join(temporary, 'outputs.json'), JSON.stringify(guests));
90
+ rmSync(entry, { recursive: true, force: true });
91
+ try {
92
+ renameSync(temporary, entry);
93
+ }
94
+ catch {
95
+ rmSync(temporary, { recursive: true, force: true });
96
+ }
97
+ }
98
+ //# sourceMappingURL=moduleCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moduleCache.js","sourceRoot":"","sources":["../src/moduleCache.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,4EAA4E;AAC5E,6EAA6E;AAC7E,6CAA6C;AAC7C,EAAE;AACF,2EAA2E;AAC3E,4EAA4E;AAC5E,6EAA6E;AAC7E,oEAAoE;AACpE,mDAAmD;AAGnD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1H,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,qFAAqF;AACrF,MAAM,UAAU,SAAS,CAAC,IAAU,EAAE,KAAwB;IAC5D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,OAAO;SACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,WAAW,EAAE;YAAE,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,+HAA+H;AAC/H,MAAM,UAAU,SAAS,CAAC,IAAU,EAAE,KAAwB;IAC5D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;IAClF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,MAAiC;IAC7E,IAAI,MAAgB,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAa,CAAC;IAC1F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;QACnE,MAAM,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,MAAyB,EAAE,MAAiC;IACtG,MAAM,SAAS,GAAG,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;IAChD,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,MAAM,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC"}
package/dist/objc.js CHANGED
@@ -12,7 +12,7 @@
12
12
  // (`extensionOverrides`).
13
13
  // - `#keyPath(Type.property)` becomes the string `"property"`, which is all
14
14
  // key-value coding on Apple platforms takes from it (`keyPathStrings`).
15
- import { matchingBrace } from './stage.js';
15
+ import { matchingBrace } from './appSources.js';
16
16
  const ATTRIBUTE = String.raw `@[A-Za-z_][A-Za-z0-9_]*(?:\([^()\n]*(?:\([^()\n]*\)[^()\n]*)*\))?`;
17
17
  const ACCESS = String.raw `(?:public|package|internal|fileprivate|private|open)`;
18
18
  /** An `@objc` protocol's head, up to its `{`. */
package/dist/objc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"objc.js","sourceRoot":"","sources":["../src/objc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"objc.js","sourceRoot":"","sources":["../src/objc.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,8EAA8E;AAC9E,8EAA8E;AAC9E,gEAAgE;AAChE,EAAE;AACF,yEAAyE;AACzE,2DAA2D;AAC3D,iEAAiE;AACjE,2EAA2E;AAC3E,uEAAuE;AACvE,uDAAuD;AACvD,4BAA4B;AAC5B,4EAA4E;AAC5E,0EAA0E;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAA,mEAAmE,CAAC;AAChG,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA,sDAAsD,CAAC;AAEhF,iDAAiD;AACjD,MAAM,aAAa,GAAG,IAAI,MAAM,CAC9B,MAAM,CAAC,GAAG,CAAA,gBAAgB,SAAS,UAAU,SAAS,2BAA2B,MAAM,4DAA4D,EACnJ,IAAI,CACL,CAAC;AAEF,+GAA+G;AAC/G,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,OAAO,SAAS,kCAAkC,SAAS,sCAAsC,EAAE,GAAG,CAAC,CAAC;AAE1J;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACrE,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC;IAC5B,SAAS,CAAC;QACR,aAAa,CAAC,SAAS,GAAG,KAAK,CAAC;QAChC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,MAAM;QAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;YACtC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM;QACrB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACvB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAC9B,oDAAoD;QACpD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;QACzE,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACvC,MAAM,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,CAAC;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC9D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAM,CAAC;YACjC,IAAI,KAAK,GAAG,SAAS;gBAAE,SAAS;YAChC,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC/C,IAAI,WAAW,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;gBAC1D,qEAAqE;gBACrE,iEAAiE;gBACjE,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClG,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC;gBAC5B,SAAS;YACX,CAAC;YACD,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;YAClD,SAAS,GAAG,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1C,IAAI,WAAW;gBAAE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;QACzF,CAAC;QACD,MAAM,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,IAAI,GAAG,CAAC;QACd,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,YAAY,aAAa,IAAI,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACnG,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,mGAAmG;AACnG,SAAS,mBAAmB,CAAC,IAAY,EAAE,MAAc;IACvD,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACnD,wEAAwE;IACxE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAChF,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,gBAAgB,SAAS,qCAAqC,CAAC,CAAC;IAC3G,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC;QACjB,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM;QACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAC/D,KAAK,GAAG,aAAa,CAAC;IACxB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,wIAAwI;AACxI,SAAS,kBAAkB,CAAC,UAAkB;IAC5C,OAAO,4CAA4C,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,2CAA2C,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACvI,CAAC;AAED,0DAA0D;AAC1D,SAAS,KAAK,CAAC,IAAY;IACzB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,0FAA0F;AAC1F,SAAS,UAAU,CAAC,WAAmB;IACrC,IAAI,yBAAyB,CAAC,IAAI,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IACpE,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IACvE,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrG,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACjF,CAAC;AAaD,oEAAoE;AACpE,SAAS,aAAa,CAAC,IAAY,EAAE,KAAa;IAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,iDAAiD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/E,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAChC,sEAAsE;QACtE,2DAA2D;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACzD,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3D,IAAI,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxD,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/D,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACpF,MAAM,KAAK,GAAG,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACrG,CAAC;IACD,MAAM,QAAQ,GAAG,oGAAoG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjI,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;IAClL,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY,EAAE,IAAY;IACrD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,KAAK,IAAI,CAAC,CAAC;aAC3B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACzB,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,0EAA0E;AAC1E,SAAS,qBAAqB,CAAC,UAAkB,EAAE,WAAwB;IACzE,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,gCAAgC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAClG,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACtC,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;QACrD,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC,SAAS,KAAK,IAAI,GAAG,CAAC;IACvD,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,IAAI,sDAAsD,CAAC;IAC/E,OAAO,WAAW,CAAC,QAAQ;QACzB,CAAC,CAAC,GAAG,MAAM,GAAG,WAAW,CAAC,SAAS,YAAY,MAAM,aAAa;QAClE,CAAC,CAAC,GAAG,MAAM,GAAG,WAAW,CAAC,SAAS,MAAM,MAAM,IAAI,CAAC;AACxD,CAAC;AAED,sEAAsE;AACtE,SAAS,SAAS,CAAC,IAAwB;IACzC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAChE,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,OAAO,CAAC;IACpC,IAAI,mFAAmF,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IAC/G,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,OAAO,gEAAgE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;AACpG,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,wBAAwB,CAAC,KAAuB;IAC9D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,OAAO,GAAG,gHAAgH,CAAC;IACjI,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,KAA0B;IAC/E,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QAClC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,KAAK,IAAI,WAAW,EAAE,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;QACjF,GAAG,GAAG,GAAG,CAAC,OAAO,CACf,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,gGAAgG,IAAI,4BAA4B,EAAE,GAAG,CAAC,EAC3J,gBAAgB,CACjB,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3E,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,aAAa,SAAS,cAAc,MAAM,kCAAkC,EAAE,IAAI,CAAC,CAAC;IAC/H,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,GAAG,CAAC;YAAE,SAAS;QACxB,wCAAwC;QACxC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QACjB,OAAO,CAAC,GAAG,KAAK,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACtC,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,gBAAgB,SAAS,IAAI,MAAM,8DAA8D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClJ,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAClD,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,KAAK;oBAAE,MAAM;gBAChD,yCAAyC;gBACzC,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,SAAS,CAAC;oBACR,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI;wBAAE,MAAM;oBACnD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC5D,IAAI,aAAa,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,UAAU,SAAS,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;wBAAE,MAAM;oBACtI,KAAK,GAAG,aAAa,CAAC;gBACxB,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;gBACrC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBAC5C,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBAChC,SAAS;YACX,CAAC;YACD,yEAAyE;YACzE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;gBACnD,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,KAAK;oBAAE,MAAM;gBAClD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC7C,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBAChC,SAAS;YACX,CAAC;YACD,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,IAAI,KAAK,GAAG,KAAK;YAAE,SAAS;QAC5B,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClF,KAAK,GAAG,GAAG,CAAC;IACd,CAAC;IACD,OAAO,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,sCAAsC,EAAE,CAAC,CAAC,EAAE,IAAY,EAAE,EAAE;QAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC;YAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,9 +1,16 @@
1
1
  import { type SwiftPackageReference, type SwiftPackageRequirement } from '@swiftbrowser/xcodeproj';
2
2
  import type { ConfigPackage } from './config.js';
3
+ /** Where a package comes from: the project's references, or a package registry (`swiftbrowser.json`'s `id`). */
4
+ export type PackageReference = SwiftPackageReference | {
5
+ kind: 'registry';
6
+ id: string;
7
+ identity: string;
8
+ requirement: SwiftPackageRequirement;
9
+ };
3
10
  /** A package the app target links, with the products it links from it. */
4
11
  export interface AppPackage {
5
12
  /** Absent when the project names the product but no package (or folder holding a `Package.swift`) provides it. */
6
- reference?: SwiftPackageReference;
13
+ reference?: PackageReference;
7
14
  products: string[];
8
15
  }
9
16
  /**
package/dist/packages.js CHANGED
@@ -26,7 +26,6 @@ export function configPackages(packages, root) {
26
26
  const dir = path.resolve(root, entry.path);
27
27
  return { reference: { kind: 'local', path: dir, identity: packageIdentity(dir) }, products: [...entry.products] };
28
28
  }
29
- const url = entry.url;
30
29
  const requirement = entry.from
31
30
  ? { kind: 'upToNextMajorVersion', minimumVersion: entry.from }
32
31
  : entry.exact
@@ -34,6 +33,9 @@ export function configPackages(packages, root) {
34
33
  : entry.branch
35
34
  ? { kind: 'branch', branch: entry.branch }
36
35
  : { kind: 'revision', revision: entry.revision };
36
+ if (entry.id)
37
+ return { reference: { kind: 'registry', id: entry.id, identity: entry.id.toLowerCase(), requirement }, products: [...entry.products] };
38
+ const url = entry.url;
37
39
  return { reference: { kind: 'remote', url, identity: packageIdentity(url), requirement }, products: [...entry.products] };
38
40
  });
39
41
  }
@@ -78,7 +80,9 @@ export function planPackages(packages, standIns = PACKAGE_STAND_INS) {
78
80
  kind: 'dependency',
79
81
  package: entry,
80
82
  identity: reference.identity,
81
- declaration: `.package(url: ${JSON.stringify(reference.url)}, ${requirementArgument(reference.requirement)})`,
83
+ declaration: reference.kind === 'registry'
84
+ ? `.package(id: ${JSON.stringify(reference.id)}, ${requirementArgument(reference.requirement)})`
85
+ : `.package(url: ${JSON.stringify(reference.url)}, ${requirementArgument(reference.requirement)})`,
82
86
  };
83
87
  });
84
88
  }
@@ -121,6 +125,8 @@ export function packageDisplayName(entry) {
121
125
  const reference = entry.reference;
122
126
  if (!reference)
123
127
  return entry.products.join(', ');
128
+ if (reference.kind === 'registry')
129
+ return reference.id.slice(reference.id.indexOf('.') + 1);
124
130
  const location = reference.kind === 'remote' ? reference.url : reference.path;
125
131
  const last = location.replace(/[/\\]+$/, '').split(/[/\\:]/).pop() ?? location;
126
132
  return last.replace(/\.git$/i, '');
@@ -132,6 +138,8 @@ export function packageSource(entry) {
132
138
  return '';
133
139
  if (reference.kind === 'local')
134
140
  return reference.path;
141
+ if (reference.kind === 'registry')
142
+ return `${reference.id} (registry), ${describeRequirement(reference.requirement)}`;
135
143
  const url = reference.url.replace(/^https?:\/\//, '').replace(/\.git$/i, '');
136
144
  return reference.requirement ? `${url}, ${describeRequirement(reference.requirement)}` : url;
137
145
  }