@elaraai/e3-cloud-cli 1.0.91 → 1.0.92

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.
@@ -0,0 +1,339 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Licensed under BSL 1.1. See LICENSE for details.
4
+ */
5
+ /**
6
+ * Files commands — deploy, bind, sync, status.
7
+ *
8
+ * A solution declares in its code which of its inputs come from files in a
9
+ * bucket (`@elaraai/e3-cloud-files`). `deploy` checks the declarations
10
+ * against the package a workspace runs and keeps them; `bind` says where a
11
+ * source's files are for that workspace; `sync` brings in what changed;
12
+ * `status` shows all three. Every command takes a local repository's path or
13
+ * a repository's URL: a path syncs on this machine with your own cloud
14
+ * credentials, and the files land only in that repository; a URL asks the
15
+ * platform, which reads each binding with its own read-only role, in rounds,
16
+ * and the CLI follows the sync to its end.
17
+ *
18
+ * A deployed workspace with a staging is protected: its declarations come by
19
+ * a release from its staging (`e3-cloud release`), with its package and
20
+ * apps, and a deploy to it is refused unless an admin forces it (`--force`).
21
+ * Its bindings are its own, bound before the release that brings
22
+ * declarations reading them.
23
+ */
24
+ import { none, some } from '@elaraai/east';
25
+ import { filesProblemText, } from '@elaraai/e3-cloud-types';
26
+ import { bindFilesSource, deployFiles, filesSyncWait, getFiles, startFilesSync } from '@elaraai/e3-cloud-client';
27
+ import { getValidToken } from '../credentials.js';
28
+ import { exitError, formatError, parseRepoUrl } from '../utils.js';
29
+ /**
30
+ * A local repository's Files, and the declarations' source, loaded only by a
31
+ * command that needs them: e3-core and the bucket client are no other
32
+ * command's to start up with.
33
+ */
34
+ const local = () => import('../files-local.js');
35
+ const declarations = async (source) => (await import('../files-source.js')).filesFromSource(source);
36
+ /** Whether a repository argument is a URL, rather than a local repository's path. */
37
+ function isUrl(repo) {
38
+ return repo.startsWith('https://') || repo.startsWith('http://');
39
+ }
40
+ /** A deployed repository's server and name, and a token for it. */
41
+ async function remote(repo) {
42
+ const { baseUrl, repo: name } = parseRepoUrl(repo);
43
+ return { baseUrl, name, token: await getValidToken(baseUrl) };
44
+ }
45
+ /** Where a deployed repository's bindings may point, in words. */
46
+ function grantsText(granted) {
47
+ if (granted.length === 0)
48
+ return 'Bindings may point: nowhere (the deployment grants no bucket)';
49
+ return ['Bindings may point under:', ...granted.flatMap((g) => g.prefixes.map((prefix) => ` s3://${g.bucket}/${prefix}`))].join('\n');
50
+ }
51
+ /** A count of bytes, as people read it. */
52
+ export function bytesWords(bytes) {
53
+ const n = Number(bytes);
54
+ if (n < 1024)
55
+ return `${n} B`;
56
+ const units = ['KB', 'MB', 'GB', 'TB'];
57
+ let value = n / 1024;
58
+ let unit = 0;
59
+ while (value >= 1024 && unit < units.length - 1) {
60
+ value /= 1024;
61
+ unit += 1;
62
+ }
63
+ return `${value < 10 ? value.toFixed(1) : Math.round(value)} ${units[unit]}`;
64
+ }
65
+ /** What a shape selects, as `status` lists it. */
66
+ export function shapeWords(shape) {
67
+ if (shape.type === 'file')
68
+ return `file ${shape.value.key}`;
69
+ const include = shape.value.include.type === 'some' ? ` ${shape.value.include.value}` : '';
70
+ return `${shape.type} ${shape.value.prefix === '' ? '(everything)' : shape.value.prefix}${include}`;
71
+ }
72
+ /** A binding, as people read it. */
73
+ export function bindingWords(binding) {
74
+ const extras = [
75
+ binding.region.type === 'some' ? `region ${binding.region.value}` : null,
76
+ binding.profile.type === 'some' ? `profile ${binding.profile.value}` : null,
77
+ binding.latest.type === 'some' ? `the latest ${binding.latest.value} of each folder` : null,
78
+ ].filter((extra) => extra !== null);
79
+ return extras.length === 0 ? binding.url : `${binding.url} (${extras.join(', ')})`;
80
+ }
81
+ /** What a sync did, or would do, to one input. */
82
+ function mappingWords(report) {
83
+ const counts = [
84
+ report.added > 0n ? `${report.added} new` : null,
85
+ report.changed > 0n ? `${report.changed} changed` : null,
86
+ report.removed > 0n ? `${report.removed} removed` : null,
87
+ ].filter((count) => count !== null);
88
+ const what = counts.length === 0 ? (report.unchanged > 0n ? 'unchanged' : 'no files') : counts.join(', ');
89
+ const bytes = report.bytes > 0n ? `, ${bytesWords(report.bytes)}` : '';
90
+ return `${what}${bytes}${report.updated ? '' : ' · not written'}`;
91
+ }
92
+ /**
93
+ * A sync's report, as the CLI prints it: a line per input, then every file
94
+ * it did not take.
95
+ *
96
+ * @param report - The report
97
+ * @returns Its lines
98
+ */
99
+ export function syncReportText(report) {
100
+ const width = Math.max(...report.mappings.map((m) => m.input.length), 5);
101
+ const lines = report.mappings.map((m) => ` ${m.input.padEnd(width)} ${mappingWords(m)}`);
102
+ const refused = report.mappings.flatMap((m) => m.refused.map((r) => ` ${m.input}: ${r.key} ${r.reason}`));
103
+ if (refused.length > 0)
104
+ lines.push('Not taken:', ...refused);
105
+ return lines.join('\n');
106
+ }
107
+ /**
108
+ * A workspace's Files, as `status` prints them.
109
+ *
110
+ * @param status - The status
111
+ * @returns Its lines
112
+ */
113
+ export function statusText(status) {
114
+ if (status.manifest.type === 'none')
115
+ return 'No Files declarations are deployed here (e3-cloud files deploy)';
116
+ const { sources, mappings } = status.manifest.value;
117
+ const bound = new Map(status.bindings.map((b) => [b.source, b]));
118
+ const width = Math.max(...mappings.map((m) => m.input.length), 5);
119
+ const lines = [`Declarations: ${mappings.length} ${mappings.length === 1 ? 'input' : 'inputs'} from ${sources.length} ${sources.length === 1 ? 'source' : 'sources'}`];
120
+ for (const m of mappings)
121
+ lines.push(` ${m.input.padEnd(width)} ${m.source}: ${shapeWords(m.shape)}`);
122
+ lines.push('Sources:');
123
+ for (const source of sources) {
124
+ const binding = bound.get(source);
125
+ lines.push(` ${source} ${binding === undefined ? 'not bound (e3-cloud files bind)' : bindingWords(binding)}`);
126
+ }
127
+ for (const binding of status.bindings) {
128
+ if (!sources.includes(binding.source))
129
+ lines.push(` ${binding.source} ${bindingWords(binding)} · not declared, so never read`);
130
+ }
131
+ if (status.lastSync.type === 'none') {
132
+ lines.push('Last sync: never');
133
+ }
134
+ else {
135
+ const last = status.lastSync.value;
136
+ const updated = last.mappings.filter((m) => m.updated).length;
137
+ lines.push(`Last sync: ${last.finished.toISOString().replace('T', ' ').slice(0, 16)} UTC, ${updated} of ${last.mappings.length} ${last.mappings.length === 1 ? 'input' : 'inputs'} written`);
138
+ lines.push(syncReportText(last));
139
+ }
140
+ return lines.join('\n');
141
+ }
142
+ /** Problems, a line each. */
143
+ function problemsText(problems) {
144
+ return problems.map((p) => ` - ${filesProblemText(p)}`).join('\n');
145
+ }
146
+ /** A positive whole number from an option. */
147
+ function positive(option, value) {
148
+ if (!/^[1-9][0-9]*$/.test(value))
149
+ exitError(`${option} takes a whole number of at least 1, not '${value}'`);
150
+ return BigInt(value);
151
+ }
152
+ /** The sync's lines, and the next command when anything changed: local and remote alike. */
153
+ function printSync(report, repo, workspace, what) {
154
+ console.log(what);
155
+ console.log(syncReportText(report));
156
+ if (!report.dryRun && report.mappings.some((m) => m.updated))
157
+ console.log(`Run the dataflow on what changed: e3 dataflow run ${repo} ${workspace}`);
158
+ if (report.mappings.some((m) => m.refused.length > 0))
159
+ process.exitCode = 1;
160
+ }
161
+ /** e3-cloud files deploy, given a repository's URL. */
162
+ async function deployRemote(repo, workspace, source, options) {
163
+ try {
164
+ const { baseUrl, name, token } = await remote(repo);
165
+ const manifest = await declarations(source);
166
+ const response = await deployFiles(baseUrl, name, workspace, manifest, { token }, { dryRun: options.dryRun === true, force: options.force === true });
167
+ const pkg = `${response.value.package.name}@${response.value.package.version}`;
168
+ const inputs = manifest.mappings.map((m) => m.input).join(', ');
169
+ if (response.type === 'refused')
170
+ exitError(`The declarations don't fit ${pkg}, which ${workspace} runs:\n${problemsText(response.value.problems)}`);
171
+ if (response.type === 'checked') {
172
+ console.log(`The declarations fit ${pkg}, which ${workspace} runs: a deploy would keep them (${inputs})`);
173
+ return;
174
+ }
175
+ console.log(`Deployed the declarations to ${workspace}, which runs ${pkg}: ${inputs}`);
176
+ if (response.value.retaken.length > 0)
177
+ console.log(` The next sync takes ${response.value.retaken.join(', ')} again whole: ${response.value.retaken.length === 1 ? 'its declaration' : 'their declarations'} changed`);
178
+ const files = await getFiles(baseUrl, name, workspace, { token });
179
+ for (const s of manifest.sources.filter((src) => !files.status.bindings.some((b) => b.source === src))) {
180
+ const where = files.granted[0] === undefined ? 's3://<bucket>/<prefix>/' : `s3://${files.granted[0].bucket}/${files.granted[0].prefixes[0] ?? ''}<folder>/`;
181
+ console.log(` Bind ${s} next: e3-cloud files bind ${repo} ${workspace} ${s} ${where}`);
182
+ }
183
+ }
184
+ catch (err) {
185
+ exitError(formatError(err));
186
+ }
187
+ }
188
+ /** e3-cloud files bind, given a repository's URL. */
189
+ async function bindRemote(repo, workspace, binding) {
190
+ try {
191
+ const { baseUrl, name, token } = await remote(repo);
192
+ const response = await bindFilesSource(baseUrl, name, workspace, binding, { token });
193
+ if (response.type === 'refused') {
194
+ const granted = response.value.some((p) => p.type === 'not_granted') ? `\n${grantsText((await getFiles(baseUrl, name, workspace, { token })).granted)}` : '';
195
+ exitError(`${binding.source} can't be bound there:\n${problemsText(response.value)}${granted}`);
196
+ }
197
+ console.log(`${binding.source} is bound to ${bindingWords(binding)} for ${workspace}`);
198
+ if (response.value.retaken.length > 0)
199
+ console.log(` The next sync takes ${response.value.retaken.join(', ')} again whole: the source moved`);
200
+ // Bound before any declaration reads it: a release may bring them
201
+ const declared = (await getFiles(baseUrl, name, workspace, { token })).status.manifest;
202
+ if (declared.type === 'none' || !declared.value.mappings.some((m) => m.source === binding.source)) {
203
+ console.log(` No declaration of ${workspace} reads ${binding.source} yet: declarations that do, deployed or released to it, read it there`);
204
+ }
205
+ }
206
+ catch (err) {
207
+ exitError(formatError(err));
208
+ }
209
+ }
210
+ /** e3-cloud files sync, given a repository's URL: started, then followed to its end. */
211
+ async function syncRemote(repo, workspace, options) {
212
+ try {
213
+ const { baseUrl, name, token } = await remote(repo);
214
+ const dryRun = options.dryRun === true;
215
+ const start = await startFilesSync(baseUrl, name, workspace, { dryRun, ...(options.input !== undefined && { inputs: options.input }) }, { token });
216
+ if (start.type === 'running')
217
+ console.log(`A sync of ${workspace} is under way (${start.value}): following it rather than start another`);
218
+ else
219
+ console.log(`Syncing ${workspace} (${start.value})…`);
220
+ const job = await filesSyncWait(baseUrl, name, workspace, start.value, { token }, {
221
+ // The token read afresh for each poll: a long sync outlives it
222
+ refresh: async () => ({ token: await getValidToken(baseUrl) }),
223
+ });
224
+ if (job.state.type === 'failed')
225
+ exitError(`The sync failed: ${job.state.value}`);
226
+ const report = job.report.type === 'some' ? job.report.value : null;
227
+ if (report === null)
228
+ return;
229
+ const seconds = job.finishedAt.type === 'some' ? ((job.finishedAt.value.getTime() - job.startedAt.getTime()) / 1000).toFixed(1) : '?';
230
+ printSync(report, repo, workspace, report.dryRun ? `A sync of ${workspace} would take:` : `Synced ${workspace} in ${seconds} s:`);
231
+ }
232
+ catch (err) {
233
+ exitError(formatError(err));
234
+ }
235
+ }
236
+ /** e3-cloud files status, given a repository's URL. */
237
+ async function statusRemote(repo, workspace) {
238
+ try {
239
+ const { baseUrl, name, token } = await remote(repo);
240
+ const files = await getFiles(baseUrl, name, workspace, { token });
241
+ console.log(statusText(files.status));
242
+ if (files.syncing.type === 'some')
243
+ console.log(`A sync is under way: ${files.syncing.value}`);
244
+ console.log(grantsText(files.granted));
245
+ }
246
+ catch (err) {
247
+ exitError(formatError(err));
248
+ }
249
+ }
250
+ export const filesCommand = {
251
+ /** e3-cloud files deploy <repo> <workspace> <source> [--dry-run] [--force] */
252
+ async deploy(repo, workspace, source, options) {
253
+ if (isUrl(repo))
254
+ return deployRemote(repo, workspace, source, options);
255
+ if (options.force === true)
256
+ exitError('--force is for a deployed workspace a staging protects: a local repository has no protection to force');
257
+ try {
258
+ const { deployLocal, openLocalRepository, statusLocal } = await local();
259
+ const path = await openLocalRepository(repo);
260
+ const manifest = await declarations(source);
261
+ const result = await deployLocal(path, workspace, manifest, { dryRun: options.dryRun });
262
+ const pkg = `${result.package.name}@${result.package.version}`;
263
+ if (result.problems.length > 0)
264
+ exitError(`The declarations don't fit ${pkg}, which ${workspace} runs:\n${problemsText(result.problems)}`);
265
+ const inputs = manifest.mappings.map((m) => m.input).join(', ');
266
+ if (options.dryRun === true) {
267
+ console.log(`The declarations fit ${pkg}, which ${workspace} runs: a deploy would keep them (${inputs})`);
268
+ return;
269
+ }
270
+ console.log(`Deployed the declarations to ${workspace}, which runs ${pkg}: ${inputs}`);
271
+ if (result.retaken.length > 0)
272
+ console.log(` The next sync takes ${result.retaken.join(', ')} again whole: ${result.retaken.length === 1 ? 'its declaration' : 'their declarations'} changed`);
273
+ const unbound = manifest.sources.filter((s) => !statusLocal(path, workspace).bindings.some((b) => b.source === s));
274
+ for (const s of unbound)
275
+ console.log(` Bind ${s} next: e3-cloud files bind ${repo} ${workspace} ${s} s3://<bucket>/<prefix>/`);
276
+ }
277
+ catch (err) {
278
+ exitError(formatError(err));
279
+ }
280
+ },
281
+ /** e3-cloud files bind <repo> <workspace> <source> <url> [--region <r>] [--profile <p>] [--latest <n>] */
282
+ async bind(repo, workspace, source, url, options) {
283
+ const binding = {
284
+ source,
285
+ url,
286
+ region: options.region === undefined ? none : some(options.region),
287
+ profile: options.profile === undefined ? none : some(options.profile),
288
+ latest: options.latest === undefined ? none : some(positive('--latest', options.latest)),
289
+ };
290
+ if (isUrl(repo))
291
+ return bindRemote(repo, workspace, binding);
292
+ try {
293
+ const { bindLocal, openLocalRepository } = await local();
294
+ const path = await openLocalRepository(repo);
295
+ const result = bindLocal(path, workspace, binding);
296
+ if (result.problems.length > 0)
297
+ exitError(`${source} can't be bound there:\n${problemsText(result.problems)}`);
298
+ console.log(`${source} is bound to ${bindingWords(binding)} for ${workspace}`);
299
+ if (result.retaken.length > 0)
300
+ console.log(` The next sync takes ${result.retaken.join(', ')} again whole: the source moved`);
301
+ }
302
+ catch (err) {
303
+ exitError(formatError(err));
304
+ }
305
+ },
306
+ /** e3-cloud files sync <repo> <workspace> [--input <name...>] [--dry-run] */
307
+ async sync(repo, workspace, options) {
308
+ if (isUrl(repo))
309
+ return syncRemote(repo, workspace, options);
310
+ try {
311
+ const { openLocalRepository, syncLocal } = await local();
312
+ const path = await openLocalRepository(repo);
313
+ const dryRun = options.dryRun === true;
314
+ const report = await syncLocal(path, workspace, { inputs: options.input, dryRun });
315
+ const seconds = ((report.finished.getTime() - report.started.getTime()) / 1000).toFixed(1);
316
+ printSync(report, repo, workspace, dryRun ? `A sync of ${workspace} would take:` : `Synced ${workspace} in ${seconds} s:`);
317
+ }
318
+ catch (err) {
319
+ const { FilesSyncError } = await import('@elaraai/e3-cloud-files/sync');
320
+ if (err instanceof FilesSyncError)
321
+ exitError(`${err.message}\n\nIf ${workspace} runs another package since the declarations were deployed, deploy them again: e3-cloud files deploy ${repo} ${workspace} <source>`);
322
+ exitError(formatError(err));
323
+ }
324
+ },
325
+ /** e3-cloud files status <repo> <workspace> */
326
+ async status(repo, workspace) {
327
+ if (isUrl(repo))
328
+ return statusRemote(repo, workspace);
329
+ try {
330
+ const { openLocalRepository, statusLocal } = await local();
331
+ const path = await openLocalRepository(repo);
332
+ console.log(statusText(statusLocal(path, workspace)));
333
+ }
334
+ catch (err) {
335
+ exitError(formatError(err));
336
+ }
337
+ },
338
+ };
339
+ //# sourceMappingURL=files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/commands/files.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,9 @@
13
13
  * there. One that deploys its package waits for its deploy job. A workspace
14
14
  * is released to only by its staging (`e3-cloud staging`);
15
15
  * the plan names any change an admin forced onto it since its last release,
16
- * which the release undoes.
16
+ * which the release undoes. The Files declarations go with a release, as its
17
+ * package and apps do; the plan says what it does to each input they fill,
18
+ * and the target's next sync takes a changed one again whole.
17
19
  */
18
20
  import { type ReleasePlan, type WorkspaceHistoryEntry } from '@elaraai/e3-cloud-client';
19
21
  /** What a plan does, a line for each part. */
@@ -1 +1 @@
1
- {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../../src/commands/release.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;GAYG;AAEH,OAAO,EAML,KAAK,WAAW,EAEhB,KAAK,qBAAqB,EAC3B,MAAM,0BAA0B,CAAC;AAoBlC,8CAA8C;AAC9C,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,EAAE,CA0DrD;AAoDD,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC,GAAG,MAAM,CAW1E;AAWD,eAAO,MAAM,cAAc;IACzB,0FAA0F;iBACvE,MAAM,QAAQ,MAAM,MAAM,MAAM,WAAW;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxI,mEAAmE;kBAC/C,MAAM,aAAa,MAAM,MAAM,MAAM,GAAG,SAAS,WAAW;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBlH,2DAA2D;iBACxC,MAAM,aAAa,MAAM,WAAW;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAiB1F,CAAC"}
1
+ {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../../src/commands/release.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAML,KAAK,WAAW,EAEhB,KAAK,qBAAqB,EAC3B,MAAM,0BAA0B,CAAC;AAqBlC,8CAA8C;AAC9C,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,EAAE,CAiErD;AA2ED,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC,GAAG,MAAM,CAiB1E;AAWD,eAAO,MAAM,cAAc;IACzB,0FAA0F;iBACvE,MAAM,QAAQ,MAAM,MAAM,MAAM,WAAW;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxI,mEAAmE;kBAC/C,MAAM,aAAa,MAAM,MAAM,MAAM,GAAG,SAAS,WAAW;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBlH,2DAA2D;iBACxC,MAAM,aAAa,MAAM,WAAW;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAiB1F,CAAC"}
@@ -13,10 +13,13 @@
13
13
  * there. One that deploys its package waits for its deploy job. A workspace
14
14
  * is released to only by its staging (`e3-cloud staging`);
15
15
  * the plan names any change an admin forced onto it since its last release,
16
- * which the release undoes.
16
+ * which the release undoes. The Files declarations go with a release, as its
17
+ * package and apps do; the plan says what it does to each input they fill,
18
+ * and the target's next sync takes a changed one again whole.
17
19
  */
18
20
  import { appDeployWait, releasePlanRefusalLines, releaseWorkspace, rollbackWorkspace, workspaceHistory, } from '@elaraai/e3-cloud-client';
19
21
  import { none, some } from '@elaraai/east';
22
+ import { filesProblemText } from '@elaraai/e3-cloud-types';
20
23
  import { getValidToken } from '../credentials.js';
21
24
  import { exitError, formatError, parseRepoUrl } from '../utils.js';
22
25
  /** A package, as people name it: `acme@1.5.0`. */
@@ -88,6 +91,14 @@ export function planLines(plan) {
88
91
  row('Inputs', inputs.join(' · '));
89
92
  if (plan.carry.length > 0)
90
93
  row('Carry', plan.carry.map((ref) => ref.path).join(' · '));
94
+ // The Files declarations, which go with the package; the target's bindings stay its own
95
+ const files = filesWords(plan);
96
+ if (files !== null)
97
+ row('Files', files);
98
+ // The target's own declarations a rollback keeps, where they no longer fit: never a refusal
99
+ for (const [i, warning] of plan.files.warnings.entries()) {
100
+ row(i === 0 ? 'Warning' : '', `${filesProblemText(warning)} (${plan.target}'s syncs refuse until declarations that fit reach it)`);
101
+ }
91
102
  if (to !== null)
92
103
  row('Checks', plan.checks.length === 0 ? `every app fits ${packageWords(to)}` : `${plan.checks.length} app${plan.checks.length === 1 ? '' : 's'} would not fit`);
93
104
  // The changes forced onto the target past its protection, which this undoes
@@ -96,6 +107,30 @@ export function planLines(plan) {
96
107
  }
97
108
  return lines;
98
109
  }
110
+ /**
111
+ * What a plan does to the target's Files declarations, in words: each input
112
+ * it adds, changes or removes, and those it keeps; null when there are none,
113
+ * or it leaves them as they are without any.
114
+ */
115
+ function filesWords(plan) {
116
+ const { released, inputs } = plan.files;
117
+ if (inputs.length === 0)
118
+ return null;
119
+ if (!released)
120
+ return `${plan.target}'s as they are (the entry was recorded before Files): ${inputs.map((input) => input.input).join(', ')}`;
121
+ const changed = inputs.flatMap((input) => {
122
+ switch (input.change.type) {
123
+ case 'added': return [`${input.input} added`];
124
+ case 'changed': return [`${input.input} changed`];
125
+ case 'removed': return [`${input.input} removed`];
126
+ case 'unchanged': return [];
127
+ }
128
+ });
129
+ const kept = inputs.filter((input) => input.change.type === 'unchanged').map((input) => input.input);
130
+ const words = [...changed, ...(kept.length > 0 ? [`${kept.join(', ')} unchanged`] : [])].join(' · ');
131
+ const retaken = inputs.filter((input) => input.change.type === 'added' || input.change.type === 'changed').map((input) => input.input);
132
+ return retaken.length === 0 ? words : `${words} (${plan.target}'s next sync takes ${retaken.join(', ')} whole)`;
133
+ }
99
134
  /** Shows a plan, ends with its refusal if it has one, and applies it once shown unless asked only for the plan. */
100
135
  async function planThenApply(plan, apply, planOnly, wait) {
101
136
  const planned = planOf(await plan());
@@ -114,7 +149,7 @@ async function planThenApply(plan, apply, planOnly, wait) {
114
149
  process.exit(1);
115
150
  break;
116
151
  case 'released':
117
- console.log(`Done: ${response.value.target}'s apps switched`);
152
+ console.log(`Done: ${response.value.target} runs what was released`);
118
153
  break;
119
154
  case 'releasing':
120
155
  await wait(response.value.job);
@@ -152,7 +187,15 @@ export function entryKindWords(kind) {
152
187
  case 'deploy': return 'deploy';
153
188
  case 'staging_added': return `staging ${kind.value.staging} added`;
154
189
  case 'staging_stopped': return `staging ${kind.value.staging} stopped`;
155
- case 'staging_skipped': return kind.value.type === 'app_deploy' ? 'app deploy, forced' : `${kind.value.value.app} removed, forced`;
190
+ case 'staging_skipped': {
191
+ const forced = kind.value;
192
+ if (forced.type === 'app_deploy')
193
+ return 'app deploy, forced';
194
+ if (forced.type === 'app_removal')
195
+ return `${forced.value.app} removed, forced`;
196
+ return 'files deploy, forced';
197
+ }
198
+ case 'workspace_files': return kind.value.type === 'deployed' ? 'files deploy' : `source ${kind.value.value.source} bound`;
156
199
  }
157
200
  }
158
201
  /** An entry of a workspace's history, as a line. */
@@ -1 +1 @@
1
- {"version":3,"file":"release.js","sourceRoot":"","sources":["../../../src/commands/release.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../../../src/commands/release.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GAIjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEnE,kDAAkD;AAClD,SAAS,YAAY,CAAC,GAAsC;IAC1D,OAAO,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;AACtC,CAAC;AAED,8DAA8D;AAC9D,SAAS,IAAI,CAAC,EAAQ;IACpB,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,mCAAmC;AACnC,SAAS,MAAM,CAAC,QAAyB;IACvC,OAAO,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC9E,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,SAAS,CAAC,IAAiB;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW;QAC3C,CAAC,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,KAAK,OAAO,IAAI,CAAC,MAAM,EAAE;QAClD,CAAC,CAAC,QAAQ,IAAI,CAAC,MAAM,yBAAyB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IAC7E,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;IACrB,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IAE1F,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1E,IAAI,EAAE,KAAK,IAAI;QAAE,GAAG,CAAC,SAAS,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAE9K,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACjC,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACxB,KAAK,OAAO,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,WAAW,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC;YACnF,KAAK,SAAS,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,MAAM,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;YAChH,KAAK,WAAW,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,YAAY,CAAC;YACjD,KAAK,SAAS,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,UAAU,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACnD,sEAAsE;IACtE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACvC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC;QAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAClH,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,oBAAoB,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,oBAAoB,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACnK,CAAC,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACrD,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAK,MAAM,CAAC,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC;YAClC,KAAK,MAAM,CAAC,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC;YACnC,KAAK,SAAS,CAAC,CAAC,OAAO,GAAG,IAAI,cAAc,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,QAAQ,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACzI,KAAK,OAAO,CAAC,CAAC,OAAO,GAAG,IAAI,WAAW,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpE,KAAK,MAAM,CAAC,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC;YACtC,KAAK,SAAS,CAAC,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrG,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvG,MAAM,MAAM,GAAG;QACb,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACvF,wFAAwF;IACxF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,KAAK,KAAK,IAAI;QAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACxC,4FAA4F;IAC5F,KAAK,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QACzD,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,uDAAuD,CAAC,CAAC;IACrI,CAAC;IACD,IAAI,EAAE,KAAK,IAAI;QAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAClL,4EAA4E;IAC5E,KAAK,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAChD,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,eAAe,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACpG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,IAAiB;IACnC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;IACxC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,CAAC,QAAQ;QAAE,OAAO,GAAG,IAAI,CAAC,MAAM,yDAAyD,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7I,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvC,QAAQ,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC1B,KAAK,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC;YAC9C,KAAK,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,UAAU,CAAC,CAAC;YAClD,KAAK,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,UAAU,CAAC,CAAC;YAClD,KAAK,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrG,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrG,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvI,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,MAAM,sBAAsB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAClH,CAAC;AAED,mHAAmH;AACnH,KAAK,UAAU,aAAa,CAC1B,IAAoC,EACpC,KAAyD,EACzD,QAAiB,EACjB,IAAoC;IAEpC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,QAAQ;QAAE,OAAO;IACrB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;IACtC,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,SAAS;YACZ,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,GAAG,uBAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM;QACR,KAAK,UAAU;YACb,OAAO,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,KAAK,CAAC,MAAM,yBAAyB,CAAC,CAAC;YACrE,MAAM;QACR,KAAK,WAAW;YACd,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM;QACR,KAAK,SAAS;YACZ,MAAM;IACV,CAAC;AACH,CAAC;AAED,iFAAiF;AACjF,KAAK,UAAU,OAAO,CAAC,OAAe,EAAE,IAAY,EAAE,SAAiB,EAAE,GAAW,EAAE,KAAa;IACjG,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,SAAS,GAAG,IAAI,CAAC,CAAC;IACvD,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;QAC3E,iEAAiE;QACjE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9D,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;YACvB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,WAAW,CAAC;YACpF,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;YAC3C,IAAI,GAAG,GAAG,CAAC;QACb,CAAC;KACF,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,aAAa,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,gBAAgB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrI,OAAO,CAAC,GAAG,CAAC,SAAS,SAAS,yBAAyB,CAAC,CAAC;AAC3D,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,cAAc,CAAC,IAAmC;IAChE,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC,CAAC,OAAO,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACzD,KAAK,UAAU,CAAC,CAAC,OAAO,UAAU,CAAC;QACnC,KAAK,MAAM,CAAC,CAAC,OAAO,aAAa,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACnD,KAAK,YAAY,CAAC,CAAC,OAAO,YAAY,CAAC;QACvC,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC/B,KAAK,eAAe,CAAC,CAAC,OAAO,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC;QACnE,KAAK,iBAAiB,CAAC,CAAC,OAAO,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC;QACvE,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;YAC1B,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;gBAAE,OAAO,oBAAoB,CAAC;YAC9D,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa;gBAAE,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAAC;YAChF,OAAO,sBAAsB,CAAC;QAChC,CAAC;QACD,KAAK,iBAAiB,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC;IAC7H,CAAC;AACH,CAAC;AAED,oDAAoD;AACpD,SAAS,SAAS,CAAC,KAA4B;IAC7C,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IAC7F,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;IACxG,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,OAAO,SAAS,KAAK,CAAC,EAAE,EAAE,CAAC;AACvH,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,0FAA0F;IAC1F,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,IAAY,EAAE,EAAU,EAAE,OAAmE;QACtH,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC9F,MAAM,aAAa,CACjB,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAChF,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EACjF,OAAO,CAAC,IAAI,KAAK,IAAI,EACrB,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAChD,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,SAAiB,EAAE,EAAsB,EAAE,OAA2B;QAChG,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,EAAE,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,aAAa,CACjB,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;YAChF,0EAA0E;YAC1E,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;gBACvD,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC1E,IAAI,EAAE,KAAK;aACZ,EAAE,EAAE,KAAK,EAAE,CAAC,EACb,OAAO,CAAC,IAAI,KAAK,IAAI,EACrB,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CACvD,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,SAAiB,EAAE,OAA2B;QACvE,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9E,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;gBAAE,SAAS,CAAC,0CAA0C,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;YAC1I,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/G,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,qBAAqB,CAAC,CAAC;gBAC/C,OAAO;YACT,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAChE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,OAAO,CAAC,MAAM,SAAS,CAAC,CAAC;QACtG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;CACF,CAAC"}