ninedeploy 0.10.5 → 0.16.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 (149) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +1 -0
  3. package/dist/client.d.ts +34 -0
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +81 -22
  6. package/dist/client.js.map +1 -1
  7. package/dist/commands/backupPolicy.d.ts +29 -0
  8. package/dist/commands/backupPolicy.d.ts.map +1 -0
  9. package/dist/commands/backupPolicy.js +111 -0
  10. package/dist/commands/backupPolicy.js.map +1 -0
  11. package/dist/commands/certificates.d.ts +18 -7
  12. package/dist/commands/certificates.d.ts.map +1 -1
  13. package/dist/commands/certificates.js +121 -1
  14. package/dist/commands/certificates.js.map +1 -1
  15. package/dist/commands/databaseAccess.d.ts +37 -0
  16. package/dist/commands/databaseAccess.d.ts.map +1 -0
  17. package/dist/commands/databaseAccess.js +306 -0
  18. package/dist/commands/databaseAccess.js.map +1 -0
  19. package/dist/commands/deploy.d.ts.map +1 -1
  20. package/dist/commands/deploy.js +28 -7
  21. package/dist/commands/deploy.js.map +1 -1
  22. package/dist/commands/githubApps.d.ts +40 -0
  23. package/dist/commands/githubApps.d.ts.map +1 -0
  24. package/dist/commands/githubApps.js +278 -0
  25. package/dist/commands/githubApps.js.map +1 -0
  26. package/dist/commands/housekeeping.d.ts +7 -0
  27. package/dist/commands/housekeeping.d.ts.map +1 -1
  28. package/dist/commands/housekeeping.js +16 -0
  29. package/dist/commands/housekeeping.js.map +1 -1
  30. package/dist/commands/logs.d.ts.map +1 -1
  31. package/dist/commands/logs.js +17 -2
  32. package/dist/commands/logs.js.map +1 -1
  33. package/dist/commands/manage.d.ts +26 -10
  34. package/dist/commands/manage.d.ts.map +1 -1
  35. package/dist/commands/manage.js +219 -65
  36. package/dist/commands/manage.js.map +1 -1
  37. package/dist/commands/manifest.d.ts.map +1 -1
  38. package/dist/commands/manifest.js +9 -1
  39. package/dist/commands/manifest.js.map +1 -1
  40. package/dist/commands/misc.d.ts +4 -2
  41. package/dist/commands/misc.d.ts.map +1 -1
  42. package/dist/commands/misc.js +25 -11
  43. package/dist/commands/misc.js.map +1 -1
  44. package/dist/commands/multiNode.d.ts +55 -0
  45. package/dist/commands/multiNode.d.ts.map +1 -0
  46. package/dist/commands/multiNode.js +438 -0
  47. package/dist/commands/multiNode.js.map +1 -0
  48. package/dist/commands/notifications.d.ts +1 -1
  49. package/dist/commands/operations.d.ts +89 -0
  50. package/dist/commands/operations.d.ts.map +1 -0
  51. package/dist/commands/operations.js +468 -0
  52. package/dist/commands/operations.js.map +1 -0
  53. package/dist/commands/panelBackup.d.ts +28 -0
  54. package/dist/commands/panelBackup.d.ts.map +1 -0
  55. package/dist/commands/panelBackup.js +153 -0
  56. package/dist/commands/panelBackup.js.map +1 -0
  57. package/dist/commands/plugins.d.ts +1 -1
  58. package/dist/commands/plugins.d.ts.map +1 -1
  59. package/dist/commands/plugins.js +7 -3
  60. package/dist/commands/plugins.js.map +1 -1
  61. package/dist/commands/proxyConfig.d.ts +16 -0
  62. package/dist/commands/proxyConfig.d.ts.map +1 -0
  63. package/dist/commands/proxyConfig.js +122 -0
  64. package/dist/commands/proxyConfig.js.map +1 -0
  65. package/dist/commands/secretProviders.d.ts +59 -0
  66. package/dist/commands/secretProviders.d.ts.map +1 -0
  67. package/dist/commands/secretProviders.js +212 -0
  68. package/dist/commands/secretProviders.js.map +1 -0
  69. package/dist/commands/services.d.ts.map +1 -1
  70. package/dist/commands/services.js +3 -5
  71. package/dist/commands/services.js.map +1 -1
  72. package/dist/commands/setup.d.ts +3 -1
  73. package/dist/commands/setup.d.ts.map +1 -1
  74. package/dist/commands/setup.js +19 -3
  75. package/dist/commands/setup.js.map +1 -1
  76. package/dist/commands/sources.d.ts +10 -3
  77. package/dist/commands/sources.d.ts.map +1 -1
  78. package/dist/commands/sources.js +116 -18
  79. package/dist/commands/sources.js.map +1 -1
  80. package/dist/commands/templates.d.ts.map +1 -1
  81. package/dist/commands/templates.js +8 -1
  82. package/dist/commands/templates.js.map +1 -1
  83. package/dist/config.d.ts.map +1 -1
  84. package/dist/config.js +2 -1
  85. package/dist/config.js.map +1 -1
  86. package/dist/index.js +427 -23
  87. package/dist/index.js.map +1 -1
  88. package/dist/lib/format.d.ts.map +1 -1
  89. package/dist/lib/format.js +5 -4
  90. package/dist/lib/format.js.map +1 -1
  91. package/dist/lib/panelBackupFile.d.ts +3 -0
  92. package/dist/lib/panelBackupFile.d.ts.map +1 -0
  93. package/dist/lib/panelBackupFile.js +71 -0
  94. package/dist/lib/panelBackupFile.js.map +1 -0
  95. package/dist/lib/serverRunner.d.ts +6 -0
  96. package/dist/lib/serverRunner.d.ts.map +1 -1
  97. package/dist/lib/serverRunner.js +18 -3
  98. package/dist/lib/serverRunner.js.map +1 -1
  99. package/dist/prompts.d.ts.map +1 -1
  100. package/dist/prompts.js +9 -2
  101. package/dist/prompts.js.map +1 -1
  102. package/package.json +6 -5
  103. package/src/client.ts +137 -0
  104. package/src/commands/backupPolicy.ts +123 -0
  105. package/src/commands/branding.ts +83 -0
  106. package/src/commands/buildCache.ts +72 -0
  107. package/src/commands/certificates.ts +208 -0
  108. package/src/commands/communityTemplates.ts +97 -0
  109. package/src/commands/configCenter.ts +71 -0
  110. package/src/commands/configPresets.ts +215 -0
  111. package/src/commands/databaseAccess.ts +333 -0
  112. package/src/commands/demo.ts +22 -0
  113. package/src/commands/deploy.ts +284 -0
  114. package/src/commands/doctor.ts +170 -0
  115. package/src/commands/domains.ts +170 -0
  116. package/src/commands/egress.ts +135 -0
  117. package/src/commands/emailTemplates.ts +112 -0
  118. package/src/commands/firewall.ts +82 -0
  119. package/src/commands/githubApps.ts +292 -0
  120. package/src/commands/housekeeping.ts +106 -0
  121. package/src/commands/login.ts +58 -0
  122. package/src/commands/logs.ts +91 -0
  123. package/src/commands/manage.ts +714 -0
  124. package/src/commands/manifest.ts +314 -0
  125. package/src/commands/metrics.ts +69 -0
  126. package/src/commands/misc.ts +307 -0
  127. package/src/commands/multiNode.ts +442 -0
  128. package/src/commands/notifications.ts +174 -0
  129. package/src/commands/operations.ts +519 -0
  130. package/src/commands/panelBackup.ts +167 -0
  131. package/src/commands/pgbouncer.ts +65 -0
  132. package/src/commands/plugins.ts +123 -0
  133. package/src/commands/proxyConfig.ts +117 -0
  134. package/src/commands/secretProviders.ts +228 -0
  135. package/src/commands/server.ts +126 -0
  136. package/src/commands/services.ts +249 -0
  137. package/src/commands/setup.ts +94 -0
  138. package/src/commands/sources.ts +317 -0
  139. package/src/commands/sso.ts +106 -0
  140. package/src/commands/templates.ts +158 -0
  141. package/src/commands/token.ts +66 -0
  142. package/src/commands/webhooks.ts +93 -0
  143. package/src/commands/workspaces.ts +63 -0
  144. package/src/config.ts +53 -0
  145. package/src/index.ts +1273 -0
  146. package/src/lib/format.ts +182 -0
  147. package/src/lib/panelBackupFile.ts +67 -0
  148. package/src/lib/serverRunner.ts +223 -0
  149. package/src/prompts.ts +238 -0
@@ -1,8 +1,12 @@
1
1
  import { c, error, fmtTime, header, info, spinner, success, table } from '../lib/format.js';
2
2
  import { prompt } from '../prompts.js';
3
+ /** F537: canonical decimal ids only — the server's `parseId` rule (r260).
4
+ * Bare `Number()` turned `0x10`/`1e1`/`0b11` into 16/10/3 and `""` into 0,
5
+ * so a destructive call (rm, restore, revoke) hit an id nobody typed. */
6
+ const CANONICAL_ID = /^[1-9]\d*$/;
3
7
  const num = (v, usage) => {
4
- const n = Number(v);
5
- if (Number.isNaN(n)) {
8
+ const n = CANONICAL_ID.test(v) ? Number(v) : Number.NaN;
9
+ if (!Number.isSafeInteger(n)) {
6
10
  error(usage);
7
11
  // error() sets the exit code; throw so execution never continues with
8
12
  // NaN (and tests can observe the failure).
@@ -13,13 +17,13 @@ const num = (v, usage) => {
13
17
  const fail = (err) => {
14
18
  error(err instanceof Error ? err.message : String(err));
15
19
  };
16
- // ── env ────────────────────────────────────────────────────────────────────
17
- /** `ninedeploy env list <serviceId>` */
18
- export async function envList(client, idStr) {
20
+ const envApi = (client, opts = {}) => (opts.preview ? client.previewEnv : client.env);
21
+ /** `ninedeploy env list <serviceId> [--preview]` */
22
+ export async function envList(client, idStr, opts = {}) {
19
23
  const id = num(idStr, 'Usage: ninedeploy env list <serviceId>');
20
- header('Environment Variables');
24
+ header(opts.preview ? 'Preview-only Environment Variables' : 'Environment Variables');
21
25
  await spinner('Fetching', async () => {
22
- const vars = await client.env.list(id);
26
+ const vars = await envApi(client, opts).list(id);
23
27
  if (vars.length === 0) {
24
28
  info('No env vars.');
25
29
  return;
@@ -27,38 +31,40 @@ export async function envList(client, idStr) {
27
31
  table(vars.map((v) => ({ id: v.id, key: v.key, secret: v.isSecret ? '•••' : 'plain', value: v.isSecret ? '—' : v.value })), ['id', 'key', 'secret', 'value']);
28
32
  });
29
33
  }
30
- /** `ninedeploy env set <serviceId> <key> <value> [--public]` */
34
+ /** `ninedeploy env set <serviceId> <key> <value> [--public] [--preview]` */
31
35
  export async function envSet(client, idStr, key, value, opts) {
32
36
  const id = num(idStr, 'Usage: ninedeploy env set <serviceId> <key> <value>');
33
37
  if (!key || value === undefined)
34
38
  return error('Usage: ninedeploy env set <serviceId> <key> <value>');
35
39
  const input = { key, value, isSecret: !opts.public };
40
+ const api = envApi(client, opts);
36
41
  try {
37
- const vars = await client.env.list(id);
42
+ const vars = await api.list(id);
38
43
  const existing = vars.find((v) => v.key === key);
39
44
  if (existing) {
40
- await client.env.update(id, existing.id, input);
45
+ await api.update(id, existing.id, input);
41
46
  }
42
47
  else {
43
- await client.env.create(id, input);
48
+ await api.create(id, input);
44
49
  }
45
- success(`Set ${c.cyan(key)}${input.isSecret ? ' (secret)' : ''}.`);
50
+ success(`Set ${c.cyan(key)}${input.isSecret ? ' (secret)' : ''}${opts.preview ? ' for PR previews only' : ''}.`);
46
51
  }
47
52
  catch (err) {
48
53
  fail(err);
49
54
  }
50
55
  }
51
- /** `ninedeploy env rm <serviceId> <key>` */
52
- export async function envRemove(client, idStr, key) {
56
+ /** `ninedeploy env rm <serviceId> <key> [--preview]` */
57
+ export async function envRemove(client, idStr, key, opts = {}) {
53
58
  const id = num(idStr, 'Usage: ninedeploy env rm <serviceId> <key>');
54
59
  if (!key)
55
60
  return error('Usage: ninedeploy env rm <serviceId> <key>');
61
+ const api = envApi(client, opts);
56
62
  try {
57
- const vars = await client.env.list(id);
63
+ const vars = await api.list(id);
58
64
  const existing = vars.find((v) => v.key === key);
59
65
  if (!existing)
60
66
  return info(`No env var named "${key}".`);
61
- await client.env.remove(id, existing.id);
67
+ await api.remove(id, existing.id);
62
68
  success(`Removed ${c.cyan(key)}.`);
63
69
  }
64
70
  catch (err) {
@@ -93,6 +99,39 @@ export async function domainsAdd(client, idStr, host, opts) {
93
99
  try {
94
100
  const d = await client.domains.create(id, { hostname: host, path: opts.path ?? '/', ssl: opts.ssl !== false });
95
101
  success(`Domain ${c.cyan(d.hostname)} added (id: ${d.id}).`);
102
+ // r332: a hostname outside the instance zone is stored `pending` and is
103
+ // not routed until its DNS owner publishes the TXT challenge — say so,
104
+ // and how to finish, instead of leaving a silently dead domain.
105
+ if (d.verification) {
106
+ info('Pending ownership proof — this domain is not routed yet. Publish this DNS record:');
107
+ info(` ${d.verification.recordType} ${c.cyan(d.verification.recordName)} "${d.verification.recordValue}"`);
108
+ info(`then run: ninedeploy domains verify ${id} ${d.id}`);
109
+ }
110
+ }
111
+ catch (err) {
112
+ fail(err);
113
+ }
114
+ }
115
+ /** `ninedeploy domains verify <serviceId> <domainId>` — r332: check the TXT
116
+ * ownership challenge of a pending domain and bring it live. Safe to re-run
117
+ * while DNS propagates. */
118
+ export async function domainsVerify(client, idStr, domainIdStr) {
119
+ const serviceId = num(idStr, 'Usage: ninedeploy domains verify <serviceId> <domainId>');
120
+ const domainId = num(domainIdStr, 'Usage: ninedeploy domains verify <serviceId> <domainId>');
121
+ try {
122
+ const res = await spinner('Checking DNS', () => client.domains.verify(serviceId, domainId));
123
+ if (res.verified) {
124
+ success(`Domain ${c.cyan(res.hostname)} verified — it is live.`);
125
+ if (res.dnsWarning)
126
+ info(`DNS provider: ${res.dnsWarning}`);
127
+ return;
128
+ }
129
+ error(res.error ?? `Domain ${res.hostname} is not verified yet.`);
130
+ if (res.found?.length)
131
+ info(`TXT values found: ${res.found.join(', ')}`);
132
+ if (res.verification) {
133
+ info(`Expected: ${res.verification.recordType} ${c.cyan(res.verification.recordName)} "${res.verification.recordValue}"`);
134
+ }
96
135
  }
97
136
  catch (err) {
98
137
  fail(err);
@@ -211,11 +250,12 @@ export async function domainsCancelTransfer(client, token) {
211
250
  }
212
251
  }
213
252
  // ── volumes ────────────────────────────────────────────────────────────────
214
- /** `ninedeploy volumes list` */
215
- export async function volumesList(client) {
216
- header('Volumes');
253
+ /** `ninedeploy volumes list [--server <id>]` (0.16 T8: `--server` lists a node's volumes through its agent) */
254
+ export async function volumesList(client, opts = {}) {
255
+ const serverId = opts.server === undefined ? undefined : num(opts.server, 'Usage: ninedeploy volumes list [--server <id>]');
256
+ header(serverId === undefined ? 'Volumes' : `Volumes on server #${serverId}`);
217
257
  await spinner('Fetching', async () => {
218
- const rows = await client.volumes.list();
258
+ const rows = await client.volumes.list(serverId === undefined ? undefined : { serverId });
219
259
  if (rows.length === 0) {
220
260
  info('No volumes.');
221
261
  return;
@@ -223,16 +263,18 @@ export async function volumesList(client) {
223
263
  table(rows.map((v) => ({ name: v.name, owner: v.owner ? `${v.owner.kind}: ${v.owner.name}` : '—', size: v.sizeBytes })), ['name', 'owner', 'size']);
224
264
  });
225
265
  }
226
- /** `ninedeploy volumes rm <name>` */
227
- export async function volumesRemove(client, name) {
266
+ /** `ninedeploy volumes rm <name> [--server <id>]` (0.16 T8: `--server` deletes it on that node) */
267
+ export async function volumesRemove(client, name, opts = {}) {
228
268
  if (!name)
229
- return error('Usage: ninedeploy volumes rm <name>');
230
- const confirm = await prompt(`Type the volume name (${name}) to confirm deletion`);
269
+ return error('Usage: ninedeploy volumes rm <name> [--server <id>]');
270
+ const serverId = opts.server === undefined ? undefined : num(opts.server, 'Usage: ninedeploy volumes rm <name> [--server <id>]');
271
+ const where = serverId === undefined ? '' : ` on server #${serverId}`;
272
+ const confirm = await prompt(`Type the volume name (${name}) to confirm deletion${where}`);
231
273
  if (confirm !== name)
232
274
  return error('Cancelled.');
233
275
  try {
234
- await spinner('Removing volume', () => client.volumes.remove(name));
235
- success(`Volume ${c.cyan(name)} removed.`);
276
+ await spinner('Removing volume', () => (serverId === undefined ? client.volumes.remove(name) : client.volumes.remove(name, { serverId })));
277
+ success(`Volume ${c.cyan(name)} removed${where}.`);
236
278
  }
237
279
  catch (err) {
238
280
  fail(err);
@@ -298,7 +340,7 @@ export async function sessionsList(client) {
298
340
  /** `ninedeploy sessions revoke <id>` */
299
341
  export async function sessionsRevoke(client, idStr) {
300
342
  const id = Number(idStr);
301
- if (!Number.isInteger(id) || id <= 0)
343
+ if (!CANONICAL_ID.test(idStr) || !Number.isSafeInteger(id))
302
344
  return error('Usage: ninedeploy sessions revoke <id>');
303
345
  try {
304
346
  await spinner('Revoking session', () => client.auth.sessions.revoke(id));
@@ -378,6 +420,11 @@ export async function backupsDrill(client, idStr, backupIdStr) {
378
420
  if (result.status === 'passed') {
379
421
  success(`Backup #${backupId} passed the drill in ${result.durationMs} ms.`);
380
422
  }
423
+ else if (result.status === 'unverifiable') {
424
+ // r356: the check could not run (docker / engine image / tool missing) —
425
+ // not a verdict on the backup. Exit 2 keeps it apart from a real failure.
426
+ console.log(` ${c.yellow('!')} ${c.yellow(`Backup #${backupId} could not be verified: ${result.error ?? 'tool unavailable'}`)}`);
427
+ }
381
428
  else {
382
429
  error(`Backup #${backupId} FAILED the drill: ${result.error ?? 'unknown reason'}`);
383
430
  }
@@ -386,7 +433,7 @@ export async function backupsDrill(client, idStr, backupIdStr) {
386
433
  console.log(` ${c.dim(`${k}:`)} ${typeof v === 'string' ? v : JSON.stringify(v)}`);
387
434
  }
388
435
  }
389
- process.exitCode = result.status === 'passed' ? 0 : 1;
436
+ process.exitCode = result.status === 'passed' ? 0 : result.status === 'unverifiable' ? 2 : 1;
390
437
  }
391
438
  /**
392
439
  * `ninedeploy backups drills <databaseId>` — list the most
@@ -434,18 +481,23 @@ export async function alertsList(client) {
434
481
  /** `ninedeploy alerts create <name> <metric> <operator> <threshold> [--windows n] [--service id]` */
435
482
  export async function alertsCreate(client, name, metric, operator, thresholdStr, opts) {
436
483
  if (!name || !metric || !operator || !thresholdStr) {
437
- return error('Usage: ninedeploy alerts create <name> <cpu|memory|cert-expiry> <|<> <threshold>');
484
+ return error('Usage: ninedeploy alerts create <name> <cpu|memory|cert-expiry|disk|server_offline> <|<> <threshold>');
438
485
  }
439
486
  const threshold = Number(thresholdStr);
440
- if (!threshold)
487
+ // F536: 0 is a valid threshold; only a non-number (or blank) is refused.
488
+ if (thresholdStr.trim() === '' || !Number.isFinite(threshold))
441
489
  return error('Threshold must be a number.');
490
+ // F536: `Number('web')` is NaN, which JSON-serializes to null — the server
491
+ // reads null as "host-wide", so a typoed scope silently watched the host.
492
+ if (opts.service !== undefined && !CANONICAL_ID.test(opts.service))
493
+ return error('--service must be a service id.');
442
494
  try {
443
495
  const rule = await client.alerts.create({
444
496
  name,
445
497
  metric: metric,
446
498
  operator: operator,
447
499
  threshold,
448
- serviceId: opts.service ? Number(opts.service) : null,
500
+ serviceId: opts.service !== undefined ? Number(opts.service) : null,
449
501
  durationWindows: opts.windows ? Number(opts.windows) : undefined,
450
502
  });
451
503
  success(`Alert "${rule.name}" created (id: ${rule.id}).`);
@@ -519,17 +571,15 @@ export async function activityList(client) {
519
571
  /** `ninedeploy system export [file]` — downloads the full system bundle. */
520
572
  export async function systemExport(file) {
521
573
  const { writeFileSync } = await import('node:fs');
522
- const { loadConfig } = await import('../config.js');
523
- const cfg = loadConfig();
574
+ const { authedFetch } = await import('../client.js');
524
575
  // r192: the export is a gzip'd tar (`application/gzip`). It used to be read
525
576
  // with `res.text()` — UTF-8 decoding replaces every invalid byte with U+FFFD —
526
577
  // and saved as `.json`, so the file was corrupt and could never be imported.
527
578
  const filename = file ?? `ninedeploy-export-${new Date().toISOString().slice(0, 10)}.tar.gz`;
528
579
  try {
529
580
  const data = await spinner('Exporting system', async () => {
530
- const res = await fetch(`${cfg.baseUrl}/v1/system/export`, {
531
- headers: { Authorization: `Bearer ${cfg.token ?? ''}` },
532
- });
581
+ // r550: refresh-aware and base-path preserving (was a bare fetch).
582
+ const res = await authedFetch('/v1/system/export');
533
583
  if (!res.ok)
534
584
  throw new Error(`Export failed (${res.status})`);
535
585
  return Buffer.from(await res.arrayBuffer());
@@ -541,6 +591,21 @@ export async function systemExport(file) {
541
591
  fail(err);
542
592
  }
543
593
  }
594
+ /**
595
+ * F538: a build log is repo-controlled text (Dockerfile RUN output, install
596
+ * scripts), so its frames must not drive the operator's terminal. SGR colour
597
+ * sequences (`ESC [ … m`) are kept; every other control is dropped — OSC
598
+ * strings (OSC 52 clipboard write, window title, hyperlinks) and the other
599
+ * ESC P/X/^/_ strings, non-SGR CSI (cursor moves / line erase that hide
600
+ * output), stray escapes, and C0/DEL/C1 controls other than tab, LF and CR.
601
+ */
602
+ const ESC = String.fromCharCode(27);
603
+ const TERMINAL_CONTROL = new RegExp(`${ESC}[\\]PX^_][\\s\\S]*?(?:${String.fromCharCode(7)}|${ESC}\\\\|$)` +
604
+ `|${ESC}\\[[0-?]*[ -/]*[@-~]` +
605
+ `|${ESC}[\\s\\S]?` +
606
+ '|[\\u0000-\\u0008\\u000b\\u000c\\u000e-\\u001f\\u007f-\\u009f]', 'g');
607
+ const SGR_ONLY = new RegExp(`^${ESC}\\[[0-9;]*m$`);
608
+ const terminalSafe = (s) => s.replace(TERMINAL_CONTROL, (m) => (SGR_ONLY.test(m) ? m : ''));
544
609
  /** `ninedeploy deploys watch <serviceId> <deployId>` — stream deploy logs over WebSocket. */
545
610
  export async function deploysWatch(serviceIdStr, deployIdStr, timeoutMs = 30 * 60_000) {
546
611
  const serviceId = Number(serviceIdStr);
@@ -548,34 +613,116 @@ export async function deploysWatch(serviceIdStr, deployIdStr, timeoutMs = 30 * 6
548
613
  if (!serviceId || !deployId)
549
614
  return error('Usage: ninedeploy deploys watch <serviceId> <deployId>');
550
615
  const { loadConfig } = await import('../config.js');
551
- const cfg = loadConfig();
616
+ const { apiUrl, refreshAccessToken, tokenExpiresSoon } = await import('../client.js');
552
617
  const { WebSocket } = await import('ws');
553
- const url = new URL(`/v1/services/${serviceId}/deploys/${deployId}/logs`, cfg.baseUrl.replace(/^http/, 'ws'));
554
- // L-3: the token travels as a WebSocket subprotocol, not `?token=`. A query
555
- // string lands in Traefik's access log (`accessLog: {}` is on by default)
556
- // and in any intermediate proxy's log; a subprotocol is a header.
557
- const ws = new WebSocket(url, [`ninedeploy.bearer.${cfg.token ?? ''}`]);
618
+ // r550: built by concatenation so a sub-path base URL keeps its prefix
619
+ // (`new URL('/v1/…', base)` dropped it), and the token is refreshed before
620
+ // connecting — a WebSocket handshake never went through the client's 401
621
+ // refresh-and-retry, so `deploys watch` failed once the 15-minute access
622
+ // token expired.
623
+ const url = apiUrl(`/v1/services/${serviceId}/deploys/${deployId}/logs`).replace(/^http/, 'ws');
624
+ if (tokenExpiresSoon(loadConfig().token))
625
+ await refreshAccessToken();
558
626
  let closed = false;
559
- ws.on('message', (data) => process.stdout.write(String(data)));
560
- ws.on('close', () => {
561
- closed = true;
562
- info('Log stream closed.');
563
- });
564
- // `close` normally follows `error`, but `unexpected-response` (handshake
565
- // rejection) never reaches the close event on some ws versions — flag the
566
- // loop here too or it spins to the hard cap printing nothing.
567
- ws.on('error', (err) => {
568
- closed = true;
569
- error(`Stream error: ${err.message}`);
570
- });
571
- ws.on('unexpected-response', (_req, res) => {
572
- closed = true;
573
- error(`Stream rejected (${res.statusCode}).`);
574
- });
627
+ let ws;
628
+ /** 'failed' / 'cancelled' when this deploy ended badly, else null (also when unreadable). */
629
+ const finalStatus = async () => {
630
+ try {
631
+ const { authedFetch } = await import('../client.js');
632
+ const res = await authedFetch(`/v1/services/${serviceId}/deploys`);
633
+ if (!res.ok)
634
+ return null;
635
+ const body = (await res.json());
636
+ const all = (Array.isArray(body) ? body : (body?.deploys ?? []));
637
+ const status = all.find((d) => d.id === deployId)?.status;
638
+ return status === 'failed' || status === 'cancelled' ? status : null;
639
+ }
640
+ catch {
641
+ return null;
642
+ }
643
+ };
644
+ const connect = (retryOn401) => {
645
+ // L-3: the token travels as a WebSocket subprotocol, not `?token=`. A query
646
+ // string lands in Traefik's access log (`accessLog: {}` is on by default)
647
+ // and in any intermediate proxy's log; a subprotocol is a header.
648
+ const socket = new WebSocket(url, [`ninedeploy.bearer.${loadConfig().token ?? ''}`]);
649
+ ws = socket;
650
+ let retrying = false;
651
+ // r550: the server accepts the upgrade and then closes 1008 "unauthorized"
652
+ // for a dead token (a proxy may instead answer the handshake with 401).
653
+ // Refresh once and reconnect; a second rejection is final.
654
+ const retryAfterRefresh = (why) => {
655
+ if (!retryOn401)
656
+ return false;
657
+ retrying = true;
658
+ void refreshAccessToken().then((ok) => {
659
+ if (closed)
660
+ return; // Ctrl-C while refreshing
661
+ if (ok)
662
+ return connect(false);
663
+ closed = true;
664
+ error(`Stream rejected (${why}): the session expired. Run \`ninedeploy login\` again.`);
665
+ });
666
+ return true;
667
+ };
668
+ socket.on('message', (data) => process.stdout.write(terminalSafe(String(data))));
669
+ socket.on('close', (code, reason) => {
670
+ if (retrying)
671
+ return;
672
+ if (code === 1008 && String(reason ?? '') === 'unauthorized') {
673
+ if (retryAfterRefresh('unauthorized'))
674
+ return;
675
+ closed = true;
676
+ error('Stream rejected (unauthorized). Run `ninedeploy login` again.');
677
+ return;
678
+ }
679
+ // F956/F980: only a normal close (1000, the server's 'deploy finished')
680
+ // is a clean end. A policy close (1008 'not found' for a wrong or foreign
681
+ // deploy id, 'forbidden' for a scoped token, 'session revoked' / 'access
682
+ // revoked' mid-stream) or an abnormal one (1006: server crash or network
683
+ // drop, which ws reports without an 'error' event) must fail, or
684
+ // `deploys watch && next-step` carries on as if the deploy had finished.
685
+ // A close we started (Ctrl-C, the hard cap) or one following an already
686
+ // reported error is not re-reported.
687
+ if (code !== 1000 && !closed) {
688
+ closed = true;
689
+ const why = String(reason ?? '');
690
+ error(code === 1008 ? `Stream rejected (${why || 'policy violation'}).` : `Log stream ended abnormally (${code ?? 'no close code'}${why ? `: ${why}` : ''}).`);
691
+ return;
692
+ }
693
+ // A normal close only says the stream ended, not how the deploy did.
694
+ // Read its final status so `deploys watch && next-step` stops after a
695
+ // failed or cancelled deploy. If the status cannot be read the old
696
+ // behaviour stands: the stream ended cleanly, exit 0.
697
+ void finalStatus().then((bad) => {
698
+ closed = true;
699
+ if (bad)
700
+ error(`Deploy #${deployId} ${bad}.`);
701
+ else
702
+ info('Log stream closed.');
703
+ });
704
+ });
705
+ // `close` normally follows `error`, but `unexpected-response` (handshake
706
+ // rejection) never reaches the close event on some ws versions — flag the
707
+ // loop here too or it spins to the hard cap printing nothing.
708
+ socket.on('error', (err) => {
709
+ if (retrying)
710
+ return;
711
+ closed = true;
712
+ error(`Stream error: ${err.message}`);
713
+ });
714
+ socket.on('unexpected-response', (_req, res) => {
715
+ if (res.statusCode === 401 && retryAfterRefresh('401'))
716
+ return;
717
+ closed = true;
718
+ error(`Stream rejected (${res.statusCode}).`);
719
+ });
720
+ };
721
+ connect(true);
575
722
  // Exit when the server closes the stream (deploy finished) or on Ctrl-C.
576
723
  process.on('SIGINT', () => {
577
724
  closed = true;
578
- ws.close();
725
+ ws?.close();
579
726
  process.exitCode = 0;
580
727
  });
581
728
  // Hard cap so a stuck stream can never hang the CLI forever.
@@ -583,16 +730,22 @@ export async function deploysWatch(serviceIdStr, deployIdStr, timeoutMs = 30 * 6
583
730
  while (!closed && Date.now() < deadline) {
584
731
  await new Promise((resolve) => setTimeout(resolve, 250));
585
732
  }
586
- if (!closed)
587
- ws.close();
733
+ if (!closed) {
734
+ closed = true; // F956/F980: our own close is not a server rejection
735
+ ws?.close();
736
+ // F997 (D8): the cap is not a finished deploy — exit 1 like every other
737
+ // unfinished end (F956/F980), or `deploys watch && next-step` carries on.
738
+ const waited = timeoutMs % 60_000 === 0 ? `${timeoutMs / 60_000} min` : `${Math.ceil(timeoutMs / 1000)} s`;
739
+ error(`Stopped waiting after ${waited} — the deploy may still be running. ` +
740
+ `Check \`ninedeploy deploys list ${serviceId}\` or re-attach with \`ninedeploy deploys watch ${serviceId} ${deployId}\`.`);
741
+ }
588
742
  }
589
743
  /** `ninedeploy system import <file>` — restores a system bundle (destructive). */
590
744
  export async function systemImport(file) {
591
745
  if (!file)
592
746
  return error('Usage: ninedeploy system import <file>');
593
747
  const { readFileSync } = await import('node:fs');
594
- const { loadConfig } = await import('../config.js');
595
- const cfg = loadConfig();
748
+ const { authedFetch } = await import('../client.js');
596
749
  const confirm = await prompt('Import OVERWRITES the current system state. Type "yes" to continue');
597
750
  if (confirm.toLowerCase() !== 'yes')
598
751
  return error('Cancelled.');
@@ -600,9 +753,10 @@ export async function systemImport(file) {
600
753
  // r192: the server reads the raw archive (`application/octet-stream`),
601
754
  // as the web panel sends it. A multipart form was refused (415) or, at
602
755
  // best, restored from the multipart envelope instead of the archive.
603
- const res = await spinner('Importing system', () => fetch(`${cfg.baseUrl}/v1/system/import`, {
756
+ // r550: refresh-aware and base-path preserving (was a bare fetch).
757
+ const res = await spinner('Importing system', () => authedFetch('/v1/system/import', {
604
758
  method: 'POST',
605
- headers: { Authorization: `Bearer ${cfg.token ?? ''}`, 'Content-Type': 'application/octet-stream' },
759
+ headers: { 'Content-Type': 'application/octet-stream' },
606
760
  body: readFileSync(file),
607
761
  }));
608
762
  if (!res.ok)
@@ -1 +1 @@
1
- {"version":3,"file":"manage.js","sourceRoot":"","sources":["../../src/commands/manage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manage.js","sourceRoot":"","sources":["../../src/commands/manage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC;;0EAE0E;AAC1E,MAAM,YAAY,GAAG,YAAY,CAAC;AAElC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,KAAa,EAAU,EAAE;IAC/C,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,sEAAsE;QACtE,2CAA2C;QAC3C,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,GAAY,EAAQ,EAAE;IAClC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC;AASF,MAAM,MAAM,GAAG,CAAC,MAAwB,EAAE,IAAI,GAAc,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAEnH,oDAAoD;AACpD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAwB,EAAE,KAAa,EAAE,IAAI,GAAc,EAAE;IACzF,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,wCAAwC,CAAC,CAAC;IAChE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;IACtF,MAAM,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAChK,CAAC,CAAC,CAAC;AACL,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,MAAwB,EAAE,KAAa,EAAE,GAAW,EAAE,KAAa,EAAE,IAAsC;IACtI,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,qDAAqD,CAAC,CAAC;IAC7E,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACrG,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACrD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACjD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AAC9B,CAAC;AAED,wDAAwD;AACxD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAwB,EAAE,KAAa,EAAE,GAAW,EAAE,IAAI,GAAc,EAAE;IACxG,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,4CAA4C,CAAC,CAAC;IACpE,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACrE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;QACzD,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AAC9B,CAAC;AAED,8EAA8E;AAE9E,gCAAgC;AAChC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAwB;IACxD,MAAM,CAAC,SAAS,CAAC,CAAC;IAClB,MAAM,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrB,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,QAAQ;YAChB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACtB,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;YAC9G,OAAO,EAAE,CAAC,CAAC,WAAW,IAAI,GAAG;SAC9B,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAwB,EAAE,KAAa,EAAE,IAAY,EAAE,IAAsC;IAC5H,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,kDAAkD,CAAC,CAAC;IAC1E,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAC5E,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;QAC/G,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC7D,wEAAwE;QACxE,uEAAuE;QACvE,gEAAgE;QAChE,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;YACnB,IAAI,CAAC,mFAAmF,CAAC,CAAC;YAC1F,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,UAAU,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC;YAC9G,IAAI,CAAC,uCAAuC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AAC9B,CAAC;AAED;;4BAE4B;AAC5B,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAwB,EAAE,KAAa,EAAE,WAAmB;IAC9F,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,EAAE,yDAAyD,CAAC,CAAC;IACxF,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,yDAAyD,CAAC,CAAC;IAC7F,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC5F,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;YACjE,IAAI,GAAG,CAAC,UAAU;gBAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,UAAU,GAAG,CAAC,QAAQ,uBAAuB,CAAC,CAAC;QAClE,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM;YAAE,IAAI,CAAC,qBAAqB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzE,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,CAAC,YAAY,CAAC,UAAU,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC;QAC9H,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AAC9B,CAAC;AAED,yCAAyC;AACzC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAwB,EAAE,KAAa,EAAE,WAAmB;IAC9F,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,EAAE,qDAAqD,CAAC,CAAC;IACpF,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,qDAAqD,CAAC,CAAC;IACzF,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACjD,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAwB,EACxB,WAAmB,EACnB,IAAoB;IAEpB,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,4DAA4D,CAAC,CAAC;IAChG,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC,4DAA4D,CAAC,CAAC;IACzF,IAAI,GAAiE,CAAC;IACtE,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,OAAO,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9G,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IACpC,OAAO,CAAC,yCAAyC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7E,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC9F,IAAI,CAAC,gEAAgE,CAAC,CAAC;IACvE,IAAI,CAAC,4CAA4C,CAAC,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAwB,EACxB,KAAa;IAEb,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC/E,IAAI,GAAwE,CAAC;IAC7E,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IACpC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC;QACvD,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAC7B,IAAI,CAAC,sDAAsD,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,CAAC,WAAW,eAAe,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;QACnF,OAAO;IACT,CAAC;IACD,MAAM,CAAC,aAAa,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,cAAc,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,cAAc,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,cAAc,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7E,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7D,IAAI,GAAG,CAAC,UAAU;QAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACxF,IAAI,GAAG,CAAC,WAAW;QAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAwB,EACxB,KAAa,EACb,IAA2B;IAE3B,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC,qEAAqE,CAAC,CAAC;IAChG,IAAI,CAAC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzG,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,qEAAqE,CAAC,CAAC;IAC7G,IAAI,GAAuE,CAAC;IAC5E,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,OAAO,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAC7C,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,CACrE,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IACpC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,2BAA2B,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;AACrF,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAwB,EACxB,KAAa;IAEb,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAC9E,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AAC9B,CAAC;AAED,8EAA8E;AAE9E,+GAA+G;AAC/G,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAwB,EAAE,IAAI,GAAwB,EAAE;IACxF,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,gDAAgD,CAAC,CAAC;IAC5H,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;IAC9E,MAAM,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1F,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACvD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACtJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAwB,EAAE,IAAY,EAAE,IAAI,GAAwB,EAAE;IACxG,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,qDAAqD,CAAC,CAAC;IACjI,MAAM,KAAK,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,QAAQ,EAAE,CAAC;IACtE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,yBAAyB,IAAI,wBAAwB,KAAK,EAAE,CAAC,CAAC;IAC3F,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC;IACjD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3I,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AAC9B,CAAC;AAED,8EAA8E;AAE9E,iCAAiC;AACjC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAwB;IACzD,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC1B,MAAM,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACzE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IACxI,CAAC,CAAC,CAAC;AACL,CAAC;AAED,mDAAmD;AACnD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAwB,EAAE,IAAY,EAAE,MAA4B;IACvG,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AAC9B,CAAC;AAED,sCAAsC;AACtC,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAwB,EAAE,IAAY;IACzE,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,0BAA0B,IAAI,uBAAuB,CAAC,CAAC;IACpF,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC;IACjD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AAC9B,CAAC;AAED,8EAA8E;AAE9E,iCAAiC;AACjC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAwB;IACzD,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC1B,MAAM,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrB,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YAC/B,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG;YACf,QAAQ,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS;YACrC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SAC7C,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,wCAAwC;AACxC,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAwB,EAAE,KAAa;IAC1E,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACnH,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AAC9B,CAAC;AAED,8EAA8E;AAE9E,mFAAmF;AACnF,SAAS,aAAa,CAAC,CAAwD;IAC7E,IAAI,CAAC,CAAC,YAAY;QAAE,OAAO,CAAC,CAAC,YAAY,CAAC;IAC1C,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACtD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,6CAA6C;AAC7C,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAwB,EAAE,KAAc;IACxE,MAAM,CAAC,SAAS,CAAC,CAAC;IAClB,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAClG,MAAM,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,IAAI,GAAG,MAAM,SAAS,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACvD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAC9K,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+CAA+C;AAC/C,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAwB,EAAE,KAAa;IACzE,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,+CAA+C,CAAC,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AAC9B,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAwB,EAAE,KAAa,EAAE,WAAmB;IAC/F,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,2DAA2D,CAAC,CAAC;IACnF,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,2DAA2D,CAAC,CAAC;IAC/F,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,yDAAyD,CAAC,CAAC;IACxF,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC;IAChE,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,WAAW,QAAQ,YAAY,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAwB,EAAE,KAAa,EAAE,WAAmB;IAC7F,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,yDAAyD,CAAC,CAAC;IACjF,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,yDAAyD,CAAC,CAAC;IAC7F,IAAI,MAAyE,CAAC;IAC9E,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC3F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IACpC,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,CAAC,WAAW,QAAQ,wBAAwB,MAAM,CAAC,UAAU,MAAM,CAAC,CAAC;IAC9E,CAAC;SAAM,IAAI,MAAM,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QAC5C,yEAAyE;QACzE,0EAA0E;QAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,QAAQ,2BAA2B,MAAM,CAAC,KAAK,IAAI,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC;IACpI,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,WAAW,QAAQ,sBAAsB,MAAM,CAAC,KAAK,IAAI,gBAAgB,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAwB,EAAE,KAAa;IACzE,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,+CAA+C,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACvB,OAAO;IACT,CAAC;IACD,KAAK,CACH,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACf,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,MAAM,EAAE,CAAC,CAAC,QAAQ;QAClB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,0EAA0E;QAC1E,0EAA0E;QAC1E,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/F,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;KACrB,CAAC,CAAC,EACH,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CACvE,CAAC;AACJ,CAAC;AAED,8EAA8E;AAE9E,+BAA+B;AAC/B,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAwB;IACvD,MAAM,CAAC,aAAa,CAAC,CAAC;IACtB,MAAM,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC5D,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtB,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,EAAE;YAChD,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,OAAO,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG;YAC3B,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;SAC9B,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,qGAAqG;AACrG,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAwB,EAAE,IAAY,EAAE,MAAc,EAAE,QAAgB,EAAE,YAAoB,EAAE,IAA4C;IAC7K,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC,sGAAsG,CAAC,CAAC;IACvH,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IACvC,yEAAyE;IACzE,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC3G,2EAA2E;IAC3E,0EAA0E;IAC1E,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACpH,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YACtC,IAAI;YACJ,MAAM,EAAE,MAAuE;YAC/E,QAAQ,EAAE,QAAqB;YAC/B,SAAS;YACT,SAAS,EAAE,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;YACnE,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;SACjE,CAAC,CAAC;QACH,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,kBAAkB,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AAC9B,CAAC;AAED,kCAAkC;AAClC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAwB,EAAE,KAAa;IACxE,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,kCAAkC,CAAC,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/B,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AAC9B,CAAC;AAED,8EAA8E;AAE9E,8BAA8B;AAC9B,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAwB;IACtD,MAAM,CAAC,OAAO,CAAC,CAAC;IAChB,MAAM,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACtD,KAAK,CACH,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChB,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG;YACnB,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;YAC1C,UAAU,EAAE,CAAC,CAAC,cAAc;SAC7B,CAAC,CAAC,EACH,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAC9C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAwB,EAAE,GAAW;IACxE,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;YAC1E,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,GAAG,CAAC,CAAC;YACzD,OAAO,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,iDAAiD,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AAC9B,CAAC;AAED,iCAAiC;AACjC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAwB;IACzD,MAAM,CAAC,UAAU,CAAC,CAAC;IACnB,MAAM,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC/D,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7J,CAAC,CAAC,CAAC;AACL,CAAC;AAED,8EAA8E;AAE9E,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAa;IAC9C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IACrD,4EAA4E;IAC5E,+EAA+E;IAC/E,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,IAAI,IAAI,qBAAqB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC;IAC7F,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;YACxD,mEAAmE;YACnE,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,mBAAmB,CAAC,CAAC;YACnD,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC9B,OAAO,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACpC,MAAM,gBAAgB,GAAG,IAAI,MAAM,CACjC,GAAG,GAAG,yBAAyB,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS;IACnE,IAAI,GAAG,sBAAsB;IAC7B,IAAI,GAAG,WAAW;IAClB,gEAAgE,EAClE,GAAG,CACJ,CAAC;AACF,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC;AACnD,MAAM,YAAY,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE5G,6FAA6F;AAC7F,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,YAAoB,EAAE,WAAmB,EAAE,SAAS,GAAG,EAAE,GAAG,MAAM;IACnG,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACrC,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC,wDAAwD,CAAC,CAAC;IACpG,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IACpD,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IACtF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,uEAAuE;IACvE,2EAA2E;IAC3E,yEAAyE;IACzE,yEAAyE;IACzE,iBAAiB;IACjB,MAAM,GAAG,GAAG,MAAM,CAAC,gBAAgB,SAAS,YAAY,QAAQ,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAChG,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC;QAAE,MAAM,kBAAkB,EAAE,CAAC;IACrE,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,EAA8C,CAAC;IACnD,6FAA6F;IAC7F,MAAM,WAAW,GAAG,KAAK,IAA4B,EAAE;QACrD,IAAI,CAAC;YACH,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;YACrD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,gBAAgB,SAAS,UAAU,CAAC,CAAC;YACnE,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAC;YACzB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAY,CAAC;YAC3C,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAqC,EAAE,OAAO,IAAI,EAAE,CAAC,CAA4C,CAAC;YAC9I,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC;YAC1D,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,UAAmB,EAAQ,EAAE;QAC5C,4EAA4E;QAC5E,0EAA0E;QAC1E,kEAAkE;QAClE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,qBAAqB,UAAU,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACrF,EAAE,GAAG,MAAM,CAAC;QACZ,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,2EAA2E;QAC3E,wEAAwE;QACxE,2DAA2D;QAC3D,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAW,EAAE;YACjD,IAAI,CAAC,UAAU;gBAAE,OAAO,KAAK,CAAC;YAC9B,QAAQ,GAAG,IAAI,CAAC;YAChB,KAAK,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;gBACpC,IAAI,MAAM;oBAAE,OAAO,CAAC,0BAA0B;gBAC9C,IAAI,EAAE;oBAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC9B,MAAM,GAAG,IAAI,CAAC;gBACd,KAAK,CAAC,oBAAoB,GAAG,yDAAyD,CAAC,CAAC;YAC1F,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QACF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAa,EAAE,MAAe,EAAE,EAAE;YACpD,IAAI,QAAQ;gBAAE,OAAO;YACrB,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,cAAc,EAAE,CAAC;gBAC7D,IAAI,iBAAiB,CAAC,cAAc,CAAC;oBAAE,OAAO;gBAC9C,MAAM,GAAG,IAAI,CAAC;gBACd,KAAK,CAAC,+DAA+D,CAAC,CAAC;gBACvE,OAAO;YACT,CAAC;YACD,wEAAwE;YACxE,0EAA0E;YAC1E,yEAAyE;YACzE,yEAAyE;YACzE,iEAAiE;YACjE,yEAAyE;YACzE,wEAAwE;YACxE,qCAAqC;YACrC,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBACjC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,oBAAoB,GAAG,IAAI,kBAAkB,IAAI,CAAC,CAAC,CAAC,gCAAgC,IAAI,IAAI,eAAe,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC/J,OAAO;YACT,CAAC;YACD,qEAAqE;YACrE,sEAAsE;YACtE,mEAAmE;YACnE,sDAAsD;YACtD,KAAK,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC9B,MAAM,GAAG,IAAI,CAAC;gBACd,IAAI,GAAG;oBAAE,KAAK,CAAC,WAAW,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC;;oBACzC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,yEAAyE;QACzE,0EAA0E;QAC1E,8DAA8D;QAC9D,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YAChC,IAAI,QAAQ;gBAAE,OAAO;YACrB,MAAM,GAAG,IAAI,CAAC;YACd,KAAK,CAAC,iBAAiB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAC7C,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,IAAI,iBAAiB,CAAC,KAAK,CAAC;gBAAE,OAAO;YAC/D,MAAM,GAAG,IAAI,CAAC;YACd,KAAK,CAAC,oBAAoB,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC;IACd,yEAAyE;IACzE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,MAAM,GAAG,IAAI,CAAC;QACd,EAAE,EAAE,KAAK,EAAE,CAAC;QACZ,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,IAAI,CAAC,CAAC,qDAAqD;QACpE,EAAE,EAAE,KAAK,EAAE,CAAC;QACZ,wEAAwE;QACxE,0EAA0E;QAC1E,MAAM,MAAM,GAAG,SAAS,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3G,KAAK,CACH,yBAAyB,MAAM,sCAAsC;YACnE,mCAAmC,SAAS,mDAAmD,SAAS,IAAI,QAAQ,KAAK,CAC5H,CAAC;IACJ,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY;IAC7C,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAClE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,oEAAoE,CAAC,CAAC;IACnG,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC;IAChE,IAAI,CAAC;QACH,uEAAuE;QACvE,uEAAuE;QACvE,qEAAqE;QACrE,mEAAmE;QACnE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,kBAAkB,EAAE,GAAG,EAAE,CACjD,WAAW,CAAC,mBAAmB,EAAE;YAC/B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE;YACvD,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;SACzB,CAAC,CACH,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9D,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AAC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/commands/manifest.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAiBrD,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkD7D;AAID,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CA0ClD;AAID,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAsE9C;AAID;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAwEf"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/commands/manifest.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAiBrD,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwD7D;AAID,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CA0ClD;AAID,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAsE9C;AAID;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAwEf"}
@@ -55,7 +55,15 @@ export async function manifestInit(cwd) {
55
55
  const filename = (await prompt('Filename (.ninedeploy, .ninedeploy.yml, …)', '.ninedeploy'))
56
56
  .trim() || '.ninedeploy';
57
57
  const out = resolve(cwd, filename);
58
- writeFileSync(out, yaml, 'utf8');
58
+ try {
59
+ writeFileSync(out, yaml, { encoding: 'utf8', flag: 'wx' });
60
+ }
61
+ catch (err) {
62
+ if (err.code !== 'EEXIST')
63
+ throw err;
64
+ error(`A file already exists at ${out}. Refusing to overwrite.`);
65
+ return;
66
+ }
59
67
  success(`Wrote ${filename}`);
60
68
  console.log();
61
69
  console.log(c.dim(yaml.split('\n').slice(0, 12).join('\n')));