herdux-cli 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +390 -385
- package/README.pt-BR.md +390 -384
- package/dist/commands/backup.d.ts.map +1 -1
- package/dist/commands/backup.js +8 -9
- package/dist/commands/backup.js.map +1 -1
- package/dist/commands/clean.d.ts.map +1 -1
- package/dist/commands/clean.js +9 -10
- package/dist/commands/clean.js.map +1 -1
- package/dist/commands/config.js +2 -2
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +5 -5
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +23 -69
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/drop.d.ts.map +1 -1
- package/dist/commands/drop.js +5 -5
- package/dist/commands/drop.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +8 -6
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/restore.d.ts.map +1 -1
- package/dist/commands/restore.js +6 -7
- package/dist/commands/restore.js.map +1 -1
- package/dist/commands/version.d.ts.map +1 -1
- package/dist/commands/version.js +7 -8
- package/dist/commands/version.js.map +1 -1
- package/dist/core/interfaces/database-engine.interface.d.ts +78 -0
- package/dist/core/interfaces/database-engine.interface.d.ts.map +1 -0
- package/dist/core/interfaces/database-engine.interface.js +2 -0
- package/dist/core/interfaces/database-engine.interface.js.map +1 -0
- package/dist/index.js +0 -0
- package/dist/infra/command-runner.d.ts.map +1 -0
- package/dist/infra/command-runner.js.map +1 -0
- package/dist/{services → infra/config}/config.service.d.ts +1 -1
- package/dist/infra/config/config.service.d.ts.map +1 -0
- package/dist/infra/config/config.service.js.map +1 -0
- package/dist/{services/environment.service.d.ts → infra/engines/postgres/postgres-env.d.ts} +1 -1
- package/dist/infra/engines/postgres/postgres-env.d.ts.map +1 -0
- package/dist/{services/environment.service.js → infra/engines/postgres/postgres-env.js} +5 -5
- package/dist/infra/engines/postgres/postgres-env.js.map +1 -0
- package/dist/infra/engines/postgres/postgres.engine.d.ts +17 -0
- package/dist/infra/engines/postgres/postgres.engine.d.ts.map +1 -0
- package/dist/infra/engines/postgres/postgres.engine.js +377 -0
- package/dist/infra/engines/postgres/postgres.engine.js.map +1 -0
- package/dist/infra/engines/postgres/resolve-connection.d.ts +3 -0
- package/dist/infra/engines/postgres/resolve-connection.d.ts.map +1 -0
- package/dist/{utils → infra/engines/postgres}/resolve-connection.js +10 -9
- package/dist/infra/engines/postgres/resolve-connection.js.map +1 -0
- package/dist/infra/utils/detect-binary.d.ts.map +1 -0
- package/dist/{utils → infra/utils}/detect-binary.js +1 -1
- package/dist/infra/utils/detect-binary.js.map +1 -0
- package/dist/presentation/logger.d.ts.map +1 -0
- package/dist/presentation/logger.js.map +1 -0
- package/package.json +69 -57
- package/dist/core/command-runner.d.ts.map +0 -1
- package/dist/core/command-runner.js.map +0 -1
- package/dist/core/logger.d.ts.map +0 -1
- package/dist/core/logger.js.map +0 -1
- package/dist/services/backup.service.d.ts +0 -4
- package/dist/services/backup.service.d.ts.map +0 -1
- package/dist/services/backup.service.js +0 -99
- package/dist/services/backup.service.js.map +0 -1
- package/dist/services/config.service.d.ts.map +0 -1
- package/dist/services/config.service.js.map +0 -1
- package/dist/services/environment.service.d.ts.map +0 -1
- package/dist/services/environment.service.js.map +0 -1
- package/dist/services/postgres.service.d.ts +0 -27
- package/dist/services/postgres.service.d.ts.map +0 -1
- package/dist/services/postgres.service.js +0 -180
- package/dist/services/postgres.service.js.map +0 -1
- package/dist/utils/detect-binary.d.ts.map +0 -1
- package/dist/utils/detect-binary.js.map +0 -1
- package/dist/utils/resolve-connection.d.ts +0 -3
- package/dist/utils/resolve-connection.d.ts.map +0 -1
- package/dist/utils/resolve-connection.js.map +0 -1
- /package/dist/{core → infra}/command-runner.d.ts +0 -0
- /package/dist/{core → infra}/command-runner.js +0 -0
- /package/dist/{services → infra/config}/config.service.js +0 -0
- /package/dist/{utils → infra/utils}/detect-binary.d.ts +0 -0
- /package/dist/{core → presentation}/logger.d.ts +0 -0
- /package/dist/{core → presentation}/logger.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiG5D"}
|
package/dist/commands/backup.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import ora from "ora";
|
|
3
3
|
import prompts from "prompts";
|
|
4
|
-
import {
|
|
5
|
-
import * as
|
|
6
|
-
import
|
|
7
|
-
import * as config from "../services/config.service.js";
|
|
8
|
-
import { resolveConnectionOptions } from "../utils/resolve-connection.js";
|
|
4
|
+
import { PostgresEngine } from "../infra/engines/postgres/postgres.engine.js";
|
|
5
|
+
import * as config from "../infra/config/config.service.js";
|
|
6
|
+
import { resolveConnectionOptions } from "../infra/engines/postgres/resolve-connection.js";
|
|
9
7
|
import { join } from "path";
|
|
10
8
|
import { homedir } from "os";
|
|
11
9
|
export function registerBackupCommand(program) {
|
|
@@ -18,8 +16,9 @@ export function registerBackupCommand(program) {
|
|
|
18
16
|
.option("-F, --format <type>", "Backup format format (custom, plain)", "custom")
|
|
19
17
|
.action(async (database, cmdOpts) => {
|
|
20
18
|
try {
|
|
21
|
-
|
|
22
|
-
await
|
|
19
|
+
const engine = new PostgresEngine();
|
|
20
|
+
await engine.checkClientVersion();
|
|
21
|
+
await engine.checkBackupRequirements();
|
|
23
22
|
const rawOpts = program.opts();
|
|
24
23
|
const opts = await resolveConnectionOptions(rawOpts, rawOpts.server);
|
|
25
24
|
if (cmdOpts.format !== "custom" && cmdOpts.format !== "plain") {
|
|
@@ -33,7 +32,7 @@ export function registerBackupCommand(program) {
|
|
|
33
32
|
configDefaults.output || join(homedir(), ".herdux", "backups");
|
|
34
33
|
}
|
|
35
34
|
const spinner = ora(`Generating backup for "${database}"...`).start();
|
|
36
|
-
const outputPath = await
|
|
35
|
+
const outputPath = await engine.backupDatabase(database, finalOutputDir, opts, cmdOpts.format);
|
|
37
36
|
spinner.succeed(`Backup saved at ${chalk.cyan(outputPath)}\n`);
|
|
38
37
|
if (cmdOpts.drop) {
|
|
39
38
|
let shouldDrop = cmdOpts.yes;
|
|
@@ -48,7 +47,7 @@ export function registerBackupCommand(program) {
|
|
|
48
47
|
}
|
|
49
48
|
if (shouldDrop) {
|
|
50
49
|
const dropSpinner = ora(`Dropping database "${database}"...`).start();
|
|
51
|
-
await
|
|
50
|
+
await engine.dropDatabase(database, opts);
|
|
52
51
|
dropSpinner.succeed(`Database "${database}" dropped successfully\n`);
|
|
53
52
|
}
|
|
54
53
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,
|
|
1
|
+
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4H3D"}
|
package/dist/commands/clean.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import ora from "ora";
|
|
3
3
|
import prompts from "prompts";
|
|
4
|
-
import {
|
|
5
|
-
import * as
|
|
6
|
-
import
|
|
7
|
-
import * as config from "../services/config.service.js";
|
|
8
|
-
import { resolveConnectionOptions } from "../utils/resolve-connection.js";
|
|
4
|
+
import { PostgresEngine } from "../infra/engines/postgres/postgres.engine.js";
|
|
5
|
+
import * as config from "../infra/config/config.service.js";
|
|
6
|
+
import { resolveConnectionOptions } from "../infra/engines/postgres/resolve-connection.js";
|
|
9
7
|
import { join } from "path";
|
|
10
8
|
import { homedir } from "os";
|
|
11
9
|
export function registerCleanCommand(program) {
|
|
@@ -14,11 +12,12 @@ export function registerCleanCommand(program) {
|
|
|
14
12
|
.description("Interactive bulk cleanup tool to drop multiple databases")
|
|
15
13
|
.action(async () => {
|
|
16
14
|
try {
|
|
17
|
-
|
|
15
|
+
const engine = new PostgresEngine();
|
|
16
|
+
await engine.checkClientVersion();
|
|
18
17
|
const rawOpts = program.opts();
|
|
19
18
|
const opts = await resolveConnectionOptions(rawOpts, rawOpts.server);
|
|
20
19
|
let spinner = ora("Fetching databases...").start();
|
|
21
|
-
const databases = await
|
|
20
|
+
const databases = await engine.listDatabases(opts);
|
|
22
21
|
spinner.stop();
|
|
23
22
|
if (databases.length === 0) {
|
|
24
23
|
console.log(chalk.yellow(" No databases found to clean.\n"));
|
|
@@ -48,14 +47,14 @@ export function registerCleanCommand(program) {
|
|
|
48
47
|
initial: true,
|
|
49
48
|
});
|
|
50
49
|
if (backupResponse.backupFirst) {
|
|
51
|
-
await
|
|
50
|
+
await engine.checkBackupRequirements();
|
|
52
51
|
const configDefaults = config.getDefault();
|
|
53
52
|
const backupDir = configDefaults.output || join(homedir(), ".herdux", "backups");
|
|
54
53
|
console.log(chalk.cyan("\nStarting backups..."));
|
|
55
54
|
for (const db of selectedDbs) {
|
|
56
55
|
spinner = ora(`Backing up "${db}"...`).start();
|
|
57
56
|
try {
|
|
58
|
-
const outObj = await
|
|
57
|
+
const outObj = await engine.backupDatabase(db, backupDir, opts, "custom");
|
|
59
58
|
spinner.succeed(`Saved to ${outObj}`);
|
|
60
59
|
}
|
|
61
60
|
catch (err) {
|
|
@@ -81,7 +80,7 @@ export function registerCleanCommand(program) {
|
|
|
81
80
|
for (const db of selectedDbs) {
|
|
82
81
|
spinner = ora(`Dropping "${db}"...`).start();
|
|
83
82
|
try {
|
|
84
|
-
await
|
|
83
|
+
await engine.dropDatabase(db, opts);
|
|
85
84
|
spinner.succeed(`Dropped "${db}"`);
|
|
86
85
|
}
|
|
87
86
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,
|
|
1
|
+
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/config.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
-
import * as config from "../
|
|
3
|
-
import { logger } from "../
|
|
2
|
+
import * as config from "../infra/config/config.service.js";
|
|
3
|
+
import { logger } from "../presentation/logger.js";
|
|
4
4
|
const VALID_KEYS = ["host", "port", "user", "password", "output"];
|
|
5
5
|
export function registerConfigCommand(program) {
|
|
6
6
|
const configCmd = program
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyB5D"}
|
package/dist/commands/create.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import ora from "ora";
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import { resolveConnectionOptions } from "../utils/resolve-connection.js";
|
|
3
|
+
import { PostgresEngine } from "../infra/engines/postgres/postgres.engine.js";
|
|
4
|
+
import { resolveConnectionOptions } from "../infra/engines/postgres/resolve-connection.js";
|
|
6
5
|
export function registerCreateCommand(program) {
|
|
7
6
|
program
|
|
8
7
|
.command("create <name>")
|
|
9
8
|
.description("Create a new database")
|
|
10
9
|
.action(async (name) => {
|
|
11
10
|
try {
|
|
12
|
-
|
|
11
|
+
const engine = new PostgresEngine();
|
|
12
|
+
await engine.checkClientVersion();
|
|
13
13
|
const rawOpts = program.opts();
|
|
14
14
|
const opts = await resolveConnectionOptions(rawOpts, rawOpts.server);
|
|
15
15
|
const spinner = ora(`Creating database "${name}"...`).start();
|
|
16
|
-
await
|
|
16
|
+
await engine.createDatabase(name, opts);
|
|
17
17
|
spinner.succeed(`Database "${name}" created successfully\n`);
|
|
18
18
|
}
|
|
19
19
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAE9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAE3F,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACpC,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAElC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,MAAM,wBAAwB,CACzC,OAA4B,EAC5B,OAAO,CAAC,MAAM,CACf,CAAC;YAEF,MAAM,OAAO,GAAG,GAAG,CAAC,sBAAsB,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;YAE9D,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxC,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,0BAA0B,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsD5D"}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import ora from "ora";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
async function checkBin(binName) {
|
|
6
|
-
try {
|
|
7
|
-
const result = await execa(binName, ["--version"], { timeout: 5000 });
|
|
8
|
-
return { ok: true, version: result.stdout.trim().split("\n")[0] };
|
|
9
|
-
}
|
|
10
|
-
catch (err) {
|
|
11
|
-
return { ok: false, error: err.message };
|
|
12
|
-
}
|
|
13
|
-
}
|
|
3
|
+
import { resolveConnectionOptions } from "../infra/engines/postgres/resolve-connection.js";
|
|
4
|
+
import { PostgresEngine } from "../infra/engines/postgres/postgres.engine.js";
|
|
14
5
|
export function registerDoctorCommand(program) {
|
|
15
6
|
program
|
|
16
7
|
.command("doctor")
|
|
@@ -19,68 +10,31 @@ export function registerDoctorCommand(program) {
|
|
|
19
10
|
console.log(chalk.bold("\n--- Herdux Doctor - System Health Check ---\n"));
|
|
20
11
|
const rawOpts = program.opts();
|
|
21
12
|
const opts = await resolveConnectionOptions(rawOpts, rawOpts.server);
|
|
22
|
-
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const restoreCheck = await checkBin("pg_restore");
|
|
40
|
-
if (restoreCheck.ok) {
|
|
41
|
-
spinner.succeed(`pg_restore is installed: ${chalk.cyan(restoreCheck.version)}`);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
spinner.fail(`pg_restore is missing. Custom format restores will not work.`);
|
|
45
|
-
}
|
|
46
|
-
spinner = ora(`Testing connection to ${opts.host}:${opts.port} as '${opts.user}'...`).start();
|
|
47
|
-
try {
|
|
48
|
-
const env = { PAGER: "", PSQL_PAGER: "" };
|
|
49
|
-
if (opts.password)
|
|
50
|
-
env.PGPASSWORD = opts.password;
|
|
51
|
-
const args = [
|
|
52
|
-
"-w",
|
|
53
|
-
"-h",
|
|
54
|
-
opts.host ?? "localhost",
|
|
55
|
-
"-p",
|
|
56
|
-
opts.port ?? "5432",
|
|
57
|
-
"-U",
|
|
58
|
-
opts.user ?? "postgres",
|
|
59
|
-
"-c",
|
|
60
|
-
"SELECT 1;",
|
|
61
|
-
"-q",
|
|
62
|
-
"-t",
|
|
63
|
-
"-A",
|
|
64
|
-
];
|
|
65
|
-
const result = await execa("psql", args, { env, timeout: 5000 });
|
|
66
|
-
if (result.exitCode === 0) {
|
|
67
|
-
spinner.succeed(`Successfully connected to PostgreSQL at ${chalk.cyan(`${opts.host}:${opts.port}`)}`);
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
spinner.fail(`Connection check returned exit code ${result.exitCode}`);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
catch (err) {
|
|
74
|
-
if (err.message.includes("password authentication failed")) {
|
|
75
|
-
spinner.fail(`Connection failed: Password authentication rejected for user '${opts.user}'`);
|
|
13
|
+
const engine = new PostgresEngine();
|
|
14
|
+
const checks = engine.getHealthChecks();
|
|
15
|
+
let allOk = true;
|
|
16
|
+
for (const check of checks) {
|
|
17
|
+
const spinner = ora(check.pendingMessage).start();
|
|
18
|
+
try {
|
|
19
|
+
const result = await check.run(opts);
|
|
20
|
+
if (result.status === "success") {
|
|
21
|
+
spinner.succeed(result.message);
|
|
22
|
+
}
|
|
23
|
+
else if (result.status === "warn") {
|
|
24
|
+
spinner.warn(chalk.yellow(result.message));
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
spinner.fail(chalk.red(result.message));
|
|
28
|
+
allOk = false;
|
|
29
|
+
}
|
|
76
30
|
}
|
|
77
|
-
|
|
78
|
-
spinner.fail(
|
|
79
|
-
|
|
31
|
+
catch (err) {
|
|
32
|
+
spinner.fail(chalk.red(`${check.name} failed: ${err.message}`));
|
|
33
|
+
allOk = false;
|
|
80
34
|
}
|
|
81
35
|
}
|
|
82
36
|
console.log();
|
|
83
|
-
if (
|
|
37
|
+
if (allOk) {
|
|
84
38
|
console.log(chalk.green("✔ Your system is fully equipped to run Herdux commands!"));
|
|
85
39
|
}
|
|
86
40
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAG9E,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,+CAA+C,CAAC;SAC5D,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAC9D,CAAC;QAEF,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,MAAM,wBAAwB,CACzC,OAA4B,EAC5B,OAAO,CAAC,MAAM,CACf,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QAExC,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;YAClD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAChC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAClC,CAAC;qBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBACpC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;oBACxC,KAAK,GAAG,KAAK,CAAC;gBAChB,CAAC;YACH,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAChE,KAAK,GAAG,KAAK,CAAC;YAChB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CACT,yDAAyD,CAC1D,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,iEAAiE,CAClE,CACF,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop.d.ts","sourceRoot":"","sources":["../../src/commands/drop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"drop.d.ts","sourceRoot":"","sources":["../../src/commands/drop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwC1D"}
|
package/dist/commands/drop.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import ora from "ora";
|
|
3
3
|
import prompts from "prompts";
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import { resolveConnectionOptions } from "../utils/resolve-connection.js";
|
|
4
|
+
import { PostgresEngine } from "../infra/engines/postgres/postgres.engine.js";
|
|
5
|
+
import { resolveConnectionOptions } from "../infra/engines/postgres/resolve-connection.js";
|
|
7
6
|
export function registerDropCommand(program) {
|
|
8
7
|
program
|
|
9
8
|
.command("drop <name>")
|
|
@@ -11,7 +10,8 @@ export function registerDropCommand(program) {
|
|
|
11
10
|
.option("-y, --yes", "Skip confirmation prompt")
|
|
12
11
|
.action(async (name, cmdOpts) => {
|
|
13
12
|
try {
|
|
14
|
-
|
|
13
|
+
const engine = new PostgresEngine();
|
|
14
|
+
await engine.checkClientVersion();
|
|
15
15
|
const rawOpts = program.opts();
|
|
16
16
|
const opts = await resolveConnectionOptions(rawOpts, rawOpts.server);
|
|
17
17
|
if (!cmdOpts.yes) {
|
|
@@ -27,7 +27,7 @@ export function registerDropCommand(program) {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
const spinner = ora(`Dropping database "${name}"...`).start();
|
|
30
|
-
await
|
|
30
|
+
await engine.dropDatabase(name, opts);
|
|
31
31
|
spinner.succeed(`Database "${name}" dropped successfully\n`);
|
|
32
32
|
}
|
|
33
33
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop.js","sourceRoot":"","sources":["../../src/commands/drop.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"drop.js","sourceRoot":"","sources":["../../src/commands/drop.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAE9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAE3F,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,iBAAiB,CAAC;SAC9B,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC;SAC/C,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAA0B,EAAE,EAAE;QACzD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACpC,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAElC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,MAAM,wBAAwB,CACzC,OAA4B,EAC5B,OAAO,CAAC,MAAM,CACf,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACjB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC;oBAC7B,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,2CAA2C,IAAI,iCAAiC;oBACzF,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;oBACxD,OAAO;gBACT,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,GAAG,CAAC,sBAAsB,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;YAE9D,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACtC,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,0BAA0B,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0E1D"}
|
package/dist/commands/list.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import ora from "ora";
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import { resolveConnectionOptions } from "../utils/resolve-connection.js";
|
|
3
|
+
import { PostgresEngine } from "../infra/engines/postgres/postgres.engine.js";
|
|
4
|
+
import { resolveConnectionOptions } from "../infra/engines/postgres/resolve-connection.js";
|
|
6
5
|
export function registerListCommand(program) {
|
|
7
6
|
program
|
|
8
7
|
.command("list")
|
|
@@ -11,13 +10,14 @@ export function registerListCommand(program) {
|
|
|
11
10
|
.option("-S, --size", "Calculate and include database sizes (sorted from largest to smallest)")
|
|
12
11
|
.action(async (options) => {
|
|
13
12
|
try {
|
|
14
|
-
|
|
13
|
+
const engine = new PostgresEngine();
|
|
14
|
+
await engine.checkClientVersion();
|
|
15
15
|
const rawOpts = program.opts();
|
|
16
16
|
const opts = await resolveConnectionOptions(rawOpts, rawOpts.server);
|
|
17
17
|
const spinner = ora(options.size
|
|
18
18
|
? "Fetching database list and calculating sizes..."
|
|
19
19
|
: "Fetching database list...").start();
|
|
20
|
-
const databases = await
|
|
20
|
+
const databases = await engine.listDatabases({
|
|
21
21
|
...opts,
|
|
22
22
|
includeSize: options.size,
|
|
23
23
|
});
|
|
@@ -37,7 +37,9 @@ export function registerListCommand(program) {
|
|
|
37
37
|
console.log(chalk.bold(header));
|
|
38
38
|
console.log(chalk.gray(` ${"─".repeat(nameWidth + ownerWidth + encodingWidth + sizeWidth - 4)}`));
|
|
39
39
|
for (const db of databases) {
|
|
40
|
-
|
|
40
|
+
const owner = db.owner ?? "";
|
|
41
|
+
const encoding = db.encoding ?? "";
|
|
42
|
+
let row = ` ${chalk.cyan(db.name.padEnd(nameWidth))}${owner.padEnd(ownerWidth)}${encoding.padEnd(encodingWidth)}`;
|
|
41
43
|
if (options.size && db.size) {
|
|
42
44
|
row += chalk.green(db.size.padEnd(sizeWidth));
|
|
43
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restore.d.ts","sourceRoot":"","sources":["../../src/commands/restore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"restore.d.ts","sourceRoot":"","sources":["../../src/commands/restore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2E7D"}
|
package/dist/commands/restore.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import ora from "ora";
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import { createDatabase, } from "../services/postgres.service.js";
|
|
6
|
-
import { resolveConnectionOptions } from "../utils/resolve-connection.js";
|
|
3
|
+
import { PostgresEngine } from "../infra/engines/postgres/postgres.engine.js";
|
|
4
|
+
import { resolveConnectionOptions } from "../infra/engines/postgres/resolve-connection.js";
|
|
7
5
|
export function registerRestoreCommand(program) {
|
|
8
6
|
program
|
|
9
7
|
.command("restore <file>")
|
|
@@ -12,7 +10,8 @@ export function registerRestoreCommand(program) {
|
|
|
12
10
|
.option("-F, --format <type>", "Override auto-detection (custom, plain)")
|
|
13
11
|
.action(async (file, cmdOpts) => {
|
|
14
12
|
try {
|
|
15
|
-
|
|
13
|
+
const engine = new PostgresEngine();
|
|
14
|
+
await engine.checkClientVersion();
|
|
16
15
|
const rawOpts = program.opts();
|
|
17
16
|
const opts = await resolveConnectionOptions(rawOpts, rawOpts.server);
|
|
18
17
|
if (cmdOpts.format &&
|
|
@@ -25,7 +24,7 @@ export function registerRestoreCommand(program) {
|
|
|
25
24
|
let didCreateDb = false;
|
|
26
25
|
try {
|
|
27
26
|
spinner.text = `Ensuring database "${cmdOpts.db}" exists...`;
|
|
28
|
-
await createDatabase(cmdOpts.db, opts);
|
|
27
|
+
await engine.createDatabase(cmdOpts.db, opts);
|
|
29
28
|
didCreateDb = true;
|
|
30
29
|
}
|
|
31
30
|
catch (err) {
|
|
@@ -37,7 +36,7 @@ export function registerRestoreCommand(program) {
|
|
|
37
36
|
}
|
|
38
37
|
}
|
|
39
38
|
spinner.text = `Restoring data into "${cmdOpts.db}"...`;
|
|
40
|
-
await
|
|
39
|
+
await engine.restoreDatabase(file, cmdOpts.db, opts, cmdOpts.format);
|
|
41
40
|
let successMsg = `Database "${cmdOpts.db}" restored successfully from ${chalk.cyan(file)}`;
|
|
42
41
|
if (didCreateDb) {
|
|
43
42
|
successMsg += chalk.dim(`\n ↳ Note: Database did not exist and was automatically created.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../src/commands/restore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../src/commands/restore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0C7D"}
|
package/dist/commands/version.js
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import ora from "ora";
|
|
3
|
-
import {
|
|
4
|
-
import * as postgres from "../services/postgres.service.js";
|
|
3
|
+
import { PostgresEngine } from "../infra/engines/postgres/postgres.engine.js";
|
|
5
4
|
export function registerVersionCommand(program) {
|
|
6
5
|
program
|
|
7
6
|
.command("version")
|
|
8
7
|
.description("Show Database client and server versions")
|
|
9
8
|
.action(async () => {
|
|
10
9
|
try {
|
|
11
|
-
|
|
12
|
-
const clientVersion = await
|
|
13
|
-
console.log(chalk.bold.cyan(
|
|
10
|
+
const engine = new PostgresEngine();
|
|
11
|
+
const clientVersion = await engine.checkClientVersion();
|
|
12
|
+
console.log(chalk.bold.cyan(`\n--- ${engine.getEngineName()} Client ---`));
|
|
14
13
|
console.log(` ${clientVersion}`);
|
|
15
14
|
const opts = program.opts();
|
|
16
|
-
const spinner = ora(
|
|
17
|
-
const instances = await
|
|
15
|
+
const spinner = ora(`Scanning for running ${engine.getEngineName()} servers...`).start();
|
|
16
|
+
const instances = await engine.discoverInstances(opts);
|
|
18
17
|
if (instances.length === 0) {
|
|
19
|
-
spinner.warn(
|
|
18
|
+
spinner.warn(`No running ${engine.getEngineName()} servers found`);
|
|
20
19
|
console.log(chalk.yellow(" No servers detected on common ports."));
|
|
21
20
|
console.log(chalk.gray(" Use --port to specify a custom port.\n"));
|
|
22
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAE9E,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACpC,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACxD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAC9D,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC;YAEnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,GAAG,CACjB,wBAAwB,MAAM,CAAC,aAAa,EAAE,aAAa,CAC5D,CAAC,KAAK,EAAE,CAAC;YACV,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAEvD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;gBACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,OAAO,CAAC,SAAS,SAAS,CAAC,MAAM,sBAAsB,CAAC,CAAC;gBAEjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;gBACxD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;oBAC7D,OAAO,CAAC,GAAG,CAAC,MAAM,SAAS,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBACrD,CAAC;gBACD,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|