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.
Files changed (84) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +390 -385
  3. package/README.pt-BR.md +390 -384
  4. package/dist/commands/backup.d.ts.map +1 -1
  5. package/dist/commands/backup.js +8 -9
  6. package/dist/commands/backup.js.map +1 -1
  7. package/dist/commands/clean.d.ts.map +1 -1
  8. package/dist/commands/clean.js +9 -10
  9. package/dist/commands/clean.js.map +1 -1
  10. package/dist/commands/config.js +2 -2
  11. package/dist/commands/config.js.map +1 -1
  12. package/dist/commands/create.d.ts.map +1 -1
  13. package/dist/commands/create.js +5 -5
  14. package/dist/commands/create.js.map +1 -1
  15. package/dist/commands/doctor.d.ts.map +1 -1
  16. package/dist/commands/doctor.js +23 -69
  17. package/dist/commands/doctor.js.map +1 -1
  18. package/dist/commands/drop.d.ts.map +1 -1
  19. package/dist/commands/drop.js +5 -5
  20. package/dist/commands/drop.js.map +1 -1
  21. package/dist/commands/list.d.ts.map +1 -1
  22. package/dist/commands/list.js +8 -6
  23. package/dist/commands/list.js.map +1 -1
  24. package/dist/commands/restore.d.ts.map +1 -1
  25. package/dist/commands/restore.js +6 -7
  26. package/dist/commands/restore.js.map +1 -1
  27. package/dist/commands/version.d.ts.map +1 -1
  28. package/dist/commands/version.js +7 -8
  29. package/dist/commands/version.js.map +1 -1
  30. package/dist/core/interfaces/database-engine.interface.d.ts +78 -0
  31. package/dist/core/interfaces/database-engine.interface.d.ts.map +1 -0
  32. package/dist/core/interfaces/database-engine.interface.js +2 -0
  33. package/dist/core/interfaces/database-engine.interface.js.map +1 -0
  34. package/dist/index.js +0 -0
  35. package/dist/infra/command-runner.d.ts.map +1 -0
  36. package/dist/infra/command-runner.js.map +1 -0
  37. package/dist/{services → infra/config}/config.service.d.ts +1 -1
  38. package/dist/infra/config/config.service.d.ts.map +1 -0
  39. package/dist/infra/config/config.service.js.map +1 -0
  40. package/dist/{services/environment.service.d.ts → infra/engines/postgres/postgres-env.d.ts} +1 -1
  41. package/dist/infra/engines/postgres/postgres-env.d.ts.map +1 -0
  42. package/dist/{services/environment.service.js → infra/engines/postgres/postgres-env.js} +5 -5
  43. package/dist/infra/engines/postgres/postgres-env.js.map +1 -0
  44. package/dist/infra/engines/postgres/postgres.engine.d.ts +17 -0
  45. package/dist/infra/engines/postgres/postgres.engine.d.ts.map +1 -0
  46. package/dist/infra/engines/postgres/postgres.engine.js +377 -0
  47. package/dist/infra/engines/postgres/postgres.engine.js.map +1 -0
  48. package/dist/infra/engines/postgres/resolve-connection.d.ts +3 -0
  49. package/dist/infra/engines/postgres/resolve-connection.d.ts.map +1 -0
  50. package/dist/{utils → infra/engines/postgres}/resolve-connection.js +10 -9
  51. package/dist/infra/engines/postgres/resolve-connection.js.map +1 -0
  52. package/dist/infra/utils/detect-binary.d.ts.map +1 -0
  53. package/dist/{utils → infra/utils}/detect-binary.js +1 -1
  54. package/dist/infra/utils/detect-binary.js.map +1 -0
  55. package/dist/presentation/logger.d.ts.map +1 -0
  56. package/dist/presentation/logger.js.map +1 -0
  57. package/package.json +69 -57
  58. package/dist/core/command-runner.d.ts.map +0 -1
  59. package/dist/core/command-runner.js.map +0 -1
  60. package/dist/core/logger.d.ts.map +0 -1
  61. package/dist/core/logger.js.map +0 -1
  62. package/dist/services/backup.service.d.ts +0 -4
  63. package/dist/services/backup.service.d.ts.map +0 -1
  64. package/dist/services/backup.service.js +0 -99
  65. package/dist/services/backup.service.js.map +0 -1
  66. package/dist/services/config.service.d.ts.map +0 -1
  67. package/dist/services/config.service.js.map +0 -1
  68. package/dist/services/environment.service.d.ts.map +0 -1
  69. package/dist/services/environment.service.js.map +0 -1
  70. package/dist/services/postgres.service.d.ts +0 -27
  71. package/dist/services/postgres.service.d.ts.map +0 -1
  72. package/dist/services/postgres.service.js +0 -180
  73. package/dist/services/postgres.service.js.map +0 -1
  74. package/dist/utils/detect-binary.d.ts.map +0 -1
  75. package/dist/utils/detect-binary.js.map +0 -1
  76. package/dist/utils/resolve-connection.d.ts +0 -3
  77. package/dist/utils/resolve-connection.d.ts.map +0 -1
  78. package/dist/utils/resolve-connection.js.map +0 -1
  79. /package/dist/{core → infra}/command-runner.d.ts +0 -0
  80. /package/dist/{core → infra}/command-runner.js +0 -0
  81. /package/dist/{services → infra/config}/config.service.js +0 -0
  82. /package/dist/{utils → infra/utils}/detect-binary.d.ts +0 -0
  83. /package/dist/{core → presentation}/logger.d.ts +0 -0
  84. /package/dist/{core → presentation}/logger.js +0 -0
@@ -0,0 +1,78 @@
1
+ export interface DatabaseInstance {
2
+ port: string;
3
+ version: string;
4
+ status: "running" | "unreachable";
5
+ }
6
+ export interface DatabaseInfo {
7
+ name: string;
8
+ owner?: string;
9
+ encoding?: string;
10
+ size?: string;
11
+ }
12
+ export interface ConnectionOptions {
13
+ host?: string;
14
+ port?: string;
15
+ user?: string;
16
+ password?: string;
17
+ }
18
+ export interface HealthCheckResult {
19
+ status: "success" | "warn" | "error";
20
+ message: string;
21
+ }
22
+ export interface HealthCheck {
23
+ name: string;
24
+ pendingMessage: string;
25
+ run: (opts: ConnectionOptions) => Promise<HealthCheckResult>;
26
+ }
27
+ export interface IDatabaseEngine {
28
+ /**
29
+ * Returns a list of health checks that the doctor command can execute.
30
+ */
31
+ getHealthChecks(): HealthCheck[];
32
+ /**
33
+ * Returns the display name of the database engine (e.g., "PostgreSQL").
34
+ */
35
+ getEngineName(): string;
36
+ /**
37
+ * Validates the client tools (e.g., psql) and returns the client version.
38
+ * Throws an error if required tools are missing.
39
+ */
40
+ checkClientVersion(): Promise<string>;
41
+ /**
42
+ * Validates the tools required for backup and restore operations (e.g., pg_dump).
43
+ * Throws an error if required tools are missing.
44
+ */
45
+ checkBackupRequirements(): Promise<void>;
46
+ /**
47
+ * Discovers running instances of the database engine on the host.
48
+ */
49
+ discoverInstances(opts?: ConnectionOptions): Promise<DatabaseInstance[]>;
50
+ /**
51
+ * Retrieves the version of the database server.
52
+ */
53
+ getServerVersion(opts?: ConnectionOptions): Promise<string | null>;
54
+ /**
55
+ * Lists all available databases on the server.
56
+ */
57
+ listDatabases(opts?: ConnectionOptions & {
58
+ includeSize?: boolean;
59
+ }): Promise<DatabaseInfo[]>;
60
+ /**
61
+ * Creates a new database.
62
+ */
63
+ createDatabase(name: string, opts?: ConnectionOptions): Promise<void>;
64
+ /**
65
+ * Drops an existing database.
66
+ */
67
+ dropDatabase(name: string, opts?: ConnectionOptions): Promise<void>;
68
+ /**
69
+ * Backups a database to the specified output directory.
70
+ * @returns the absolute path to the generated backup file.
71
+ */
72
+ backupDatabase(dbName: string, outputDir: string, opts?: ConnectionOptions, format?: string): Promise<string>;
73
+ /**
74
+ * Restores a database from a backup file.
75
+ */
76
+ restoreDatabase(filePath: string, dbName: string, opts?: ConnectionOptions, format?: string, clean?: boolean): Promise<void>;
77
+ }
78
+ //# sourceMappingURL=database-engine.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-engine.interface.d.ts","sourceRoot":"","sources":["../../../src/core/interfaces/database-engine.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,aAAa,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,eAAe,IAAI,WAAW,EAAE,CAAC;IAEjC;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC;IAExB;;;OAGG;IACH,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEtC;;;OAGG;IACH,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH,iBAAiB,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEzE;;OAEG;IACH,gBAAgB,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEnE;;OAEG;IACH,aAAa,CACX,IAAI,CAAC,EAAE,iBAAiB,GAAG;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GACnD,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAE3B;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtE;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;OAGG;IACH,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,iBAAiB,EACxB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;OAEG;IACH,eAAe,CACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,iBAAiB,EACxB,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=database-engine.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-engine.interface.js","sourceRoot":"","sources":["../../../src/core/interfaces/database-engine.interface.ts"],"names":[],"mappings":""}
package/dist/index.js CHANGED
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-runner.d.ts","sourceRoot":"","sources":["../../src/infra/command-runner.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,SAAS,CAAC,CAmBpB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-runner.js","sourceRoot":"","sources":["../../src/infra/command-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAgC,MAAM,OAAO,CAAC;AAc5D,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAe,EACf,OAAiB,EAAE,EACnB,UAAsB,EAAE;IAExB,MAAM,YAAY,GAAiB;QACjC,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,MAAM;QAClC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;QACxC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;KAChE,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IAExD,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC7C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACxD,MAAM,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,OAAO,IAAI,qBAAqB,CAAC;IAC1E,CAAC;IAED,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvC,MAAM;QACN,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACrD,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { ConnectionOptions } from "./postgres.service.js";
1
+ import type { ConnectionOptions } from "../../core/interfaces/database-engine.interface.js";
2
2
  export interface ServerProfile extends ConnectionOptions {
3
3
  name?: string;
4
4
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.service.d.ts","sourceRoot":"","sources":["../../../src/infra/config/config.service.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AAK5F,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,iBAAiB,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC3C,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAUD,wBAAgB,UAAU,IAAI,YAAY,CAgBzC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAMrD;AAED,wBAAgB,UAAU,IAAI,iBAAiB,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAGpE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAGhE;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAI3D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAIrE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMlD;AAED,wBAAgB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAG/D;AAED,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAGvC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAIlD;AAED,wBAAgB,WAAW,IAAI,IAAI,CAIlC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/infra/config/config.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACb,UAAU,GACX,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAG7B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAYpD,SAAS,cAAc;IACrB,OAAO;QACL,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,EAAE;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,OAAO,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;YAC7B,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;SACpC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,cAAc,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAoB;IAC7C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,KAAa;IACnD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC3B,MAAM,CAAC,OAAkC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACxD,UAAU,CAAC,MAAM,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,IAAuB;IAC7D,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;IAC5D,UAAU,CAAC,MAAM,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,UAAU,CAAC,MAAM,CAAC,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,MAAM,CAAC,UAAU,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAe;IAC1C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,UAAU,CAAC,MAAM,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,UAAU,CAAC,WAAW,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export declare function checkPostgresClient(): Promise<string>;
2
2
  export declare function checkPgDump(): Promise<string>;
3
3
  export declare function checkDocker(): Promise<boolean>;
4
- //# sourceMappingURL=environment.service.d.ts.map
4
+ //# sourceMappingURL=postgres-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-env.d.ts","sourceRoot":"","sources":["../../../../src/infra/engines/postgres/postgres-env.ts"],"names":[],"mappings":"AAIA,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CA0B3D;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAkBnD;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAWpD"}
@@ -1,6 +1,6 @@
1
1
  import ora from "ora";
2
- import { logger } from "../core/logger.js";
3
- import { binaryExists, getBinaryVersion } from "../utils/detect-binary.js";
2
+ import { logger } from "../../../presentation/logger.js";
3
+ import { binaryExists, getBinaryVersion } from "../../utils/detect-binary.js";
4
4
  export async function checkPostgresClient() {
5
5
  const spinner = ora("Checking PostgreSQL client...").start();
6
6
  const exists = await binaryExists("psql");
@@ -21,7 +21,7 @@ export async function checkPostgresClient() {
21
21
  process.exit(1);
22
22
  }
23
23
  const version = await getBinaryVersion("psql");
24
- spinner.succeed(` Found ${version ?? "psql"}`);
24
+ spinner.succeed(`Found ${version ?? "psql"}`);
25
25
  return version ?? "unknown";
26
26
  }
27
27
  export async function checkPgDump() {
@@ -34,7 +34,7 @@ export async function checkPgDump() {
34
34
  process.exit(1);
35
35
  }
36
36
  const version = await getBinaryVersion("pg_dump");
37
- spinner.succeed(` Found ${version ?? "pg_dump"}`);
37
+ spinner.succeed(`Found ${version ?? "pg_dump"}`);
38
38
  return version ?? "unknown";
39
39
  }
40
40
  export async function checkDocker() {
@@ -48,4 +48,4 @@ export async function checkDocker() {
48
48
  }
49
49
  return exists;
50
50
  }
51
- //# sourceMappingURL=environment.service.js.map
51
+ //# sourceMappingURL=postgres-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-env.js","sourceRoot":"","sources":["../../../../src/infra/engines/postgres/postgres-env.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAE9E,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,OAAO,GAAG,GAAG,CAAC,+BAA+B,CAAC,CAAC,KAAK,EAAE,CAAC;IAE7D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IAE1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAChE,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QACjE,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,CAAC,OAAO,CAAC,SAAS,OAAO,IAAI,MAAM,EAAE,CAAC,CAAC;IAE9C,OAAO,OAAO,IAAI,SAAS,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEnD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;IAE7C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAI,CACT,iEAAiE,CAClE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAClD,OAAO,CAAC,OAAO,CAAC,SAAS,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;IAEjD,OAAO,OAAO,IAAI,SAAS,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IAE5C,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,CAAC,OAAO,CAAC,oBAAoB,OAAO,IAAI,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { IDatabaseEngine, ConnectionOptions, DatabaseInstance, DatabaseInfo } from "../../../core/interfaces/database-engine.interface.js";
2
+ export declare class PostgresEngine implements IDatabaseEngine {
3
+ getHealthChecks(): import("../../../core/interfaces/database-engine.interface.js").HealthCheck[];
4
+ getEngineName(): string;
5
+ checkClientVersion(): Promise<string>;
6
+ checkBackupRequirements(): Promise<void>;
7
+ discoverInstances(opts?: ConnectionOptions): Promise<DatabaseInstance[]>;
8
+ getServerVersion(opts?: ConnectionOptions): Promise<string | null>;
9
+ listDatabases(opts?: ConnectionOptions & {
10
+ includeSize?: boolean;
11
+ }): Promise<DatabaseInfo[]>;
12
+ createDatabase(name: string, opts?: ConnectionOptions): Promise<void>;
13
+ dropDatabase(name: string, opts?: ConnectionOptions): Promise<void>;
14
+ backupDatabase(dbName: string, outputDir?: string, opts?: ConnectionOptions, format?: string): Promise<string>;
15
+ restoreDatabase(inputPath: string, dbName: string, opts?: ConnectionOptions, format?: string, clean?: boolean): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=postgres.engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.engine.d.ts","sourceRoot":"","sources":["../../../../src/infra/engines/postgres/postgres.engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACb,MAAM,uDAAuD,CAAC;AAkF/D,qBAAa,cAAe,YAAW,eAAe;IACpD,eAAe,IAAI,OAAO,uDAAuD,EAAE,WAAW,EAAE;IAqGhG,aAAa,IAAI,MAAM;IAIjB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIrC,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC,iBAAiB,CACrB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAoCxB,gBAAgB,CAAC,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAwBtE,aAAa,CACjB,IAAI,GAAE,iBAAiB,GAAG;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO,GACvD,OAAO,CAAC,YAAY,EAAE,CAAC;IA8CpB,cAAc,CAClB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC;IAwBV,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC;IAwBV,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,MAAoB,EAC/B,IAAI,GAAE,iBAAsB,EAC5B,MAAM,GAAE,MAAiB,GACxB,OAAO,CAAC,MAAM,CAAC;IAiCZ,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,iBAAsB,EAC5B,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC;CAmDjB"}
@@ -0,0 +1,377 @@
1
+ import { runCommand } from "../../command-runner.js";
2
+ import { getScanPorts } from "../../config/config.service.js";
3
+ import { existsSync, mkdirSync } from "fs";
4
+ import { join, resolve } from "path";
5
+ import { execa } from "execa";
6
+ import { checkPostgresClient, checkPgDump } from "./postgres-env.js";
7
+ async function checkBin(binName) {
8
+ try {
9
+ const result = await execa(binName, ["--version"], { timeout: 5000 });
10
+ return { ok: true, version: result.stdout.trim().split("\n")[0] };
11
+ }
12
+ catch (err) {
13
+ return { ok: false, error: err.message };
14
+ }
15
+ }
16
+ // Internal Helpers
17
+ function buildConnectionArgs(opts) {
18
+ const args = ["-w"];
19
+ if (opts.host)
20
+ args.push("-h", opts.host);
21
+ if (opts.port)
22
+ args.push("-p", opts.port);
23
+ if (opts.user)
24
+ args.push("-U", opts.user);
25
+ return args;
26
+ }
27
+ function buildEnv(opts) {
28
+ const env = {
29
+ PAGER: "",
30
+ PSQL_PAGER: "",
31
+ };
32
+ if (opts.password)
33
+ env["PGPASSWORD"] = opts.password;
34
+ return env;
35
+ }
36
+ function buildDumpConnectionArgs(opts) {
37
+ const args = [];
38
+ if (opts.host)
39
+ args.push("-h", opts.host);
40
+ if (opts.port)
41
+ args.push("-p", opts.port);
42
+ if (opts.user)
43
+ args.push("-U", opts.user);
44
+ return args;
45
+ }
46
+ function generateBackupFilename(dbName, format) {
47
+ const date = new Date().toISOString().slice(0, 10);
48
+ return `${dbName}_${date}.${format === "plain" ? "sql" : "dump"}`;
49
+ }
50
+ const DEFAULT_SCAN_PORTS = [
51
+ "5432",
52
+ "5433",
53
+ "5434",
54
+ "5435",
55
+ "5416",
56
+ "5417",
57
+ "5418",
58
+ "5419",
59
+ "5420",
60
+ ];
61
+ async function detectVersionFromPort(host, port) {
62
+ const result = await runCommand("pg_isready", ["-h", host, "-p", port], {
63
+ timeout: 3000,
64
+ });
65
+ if (result.exitCode === 0) {
66
+ const portNum = parseInt(port);
67
+ if (portNum >= 5410 && portNum <= 5420) {
68
+ const majorVersion = portNum - 5400;
69
+ return `PostgreSQL ${majorVersion} (inferred from port)`;
70
+ }
71
+ }
72
+ return null;
73
+ }
74
+ export class PostgresEngine {
75
+ getHealthChecks() {
76
+ return [
77
+ {
78
+ name: "psql",
79
+ pendingMessage: "Checking psql...",
80
+ run: async () => {
81
+ const res = await checkBin("psql");
82
+ if (res.ok)
83
+ return {
84
+ status: "success",
85
+ message: `psql is installed: ${res.version}`,
86
+ };
87
+ return {
88
+ status: "error",
89
+ message: `psql is missing. Please install PostgreSQL client tools.`,
90
+ };
91
+ },
92
+ },
93
+ {
94
+ name: "pg_dump",
95
+ pendingMessage: "Checking pg_dump...",
96
+ run: async () => {
97
+ const res = await checkBin("pg_dump");
98
+ if (res.ok)
99
+ return {
100
+ status: "success",
101
+ message: `pg_dump is installed: ${res.version}`,
102
+ };
103
+ return {
104
+ status: "error",
105
+ message: `pg_dump is missing. Backups will not work.`,
106
+ };
107
+ },
108
+ },
109
+ {
110
+ name: "pg_restore",
111
+ pendingMessage: "Checking pg_restore...",
112
+ run: async () => {
113
+ const res = await checkBin("pg_restore");
114
+ if (res.ok)
115
+ return {
116
+ status: "success",
117
+ message: `pg_restore is installed: ${res.version}`,
118
+ };
119
+ return {
120
+ status: "error",
121
+ message: `pg_restore is missing. Custom format restores will not work.`,
122
+ };
123
+ },
124
+ },
125
+ {
126
+ name: "Connection",
127
+ pendingMessage: "Testing database connection...",
128
+ run: async (opts) => {
129
+ try {
130
+ const env = { PAGER: "", PSQL_PAGER: "" };
131
+ if (opts.password)
132
+ env.PGPASSWORD = opts.password;
133
+ const args = [
134
+ "-w",
135
+ "-h",
136
+ opts.host ?? "localhost",
137
+ "-p",
138
+ opts.port ?? "5432",
139
+ "-U",
140
+ opts.user ?? "postgres",
141
+ "-c",
142
+ "SELECT 1;",
143
+ "-q",
144
+ "-t",
145
+ "-A",
146
+ ];
147
+ const result = await execa("psql", args, { env, timeout: 5000 });
148
+ if (result.exitCode === 0) {
149
+ return {
150
+ status: "success",
151
+ message: `Successfully connected to PostgreSQL at ${opts.host ?? "localhost"}:${opts.port ?? "5432"}`,
152
+ };
153
+ }
154
+ return {
155
+ status: "error",
156
+ message: `Connection check returned exit code ${result.exitCode}`,
157
+ };
158
+ }
159
+ catch (err) {
160
+ if (err.message.includes("password authentication failed")) {
161
+ return {
162
+ status: "error",
163
+ message: `Password authentication rejected for user '${opts.user ?? "postgres"}'`,
164
+ };
165
+ }
166
+ return {
167
+ status: "error",
168
+ message: `Could not connect to the database. Make sure PostgreSQL is running and port is open.`,
169
+ };
170
+ }
171
+ },
172
+ },
173
+ ];
174
+ }
175
+ getEngineName() {
176
+ return "PostgreSQL";
177
+ }
178
+ async checkClientVersion() {
179
+ return await checkPostgresClient();
180
+ }
181
+ async checkBackupRequirements() {
182
+ await checkPgDump();
183
+ }
184
+ async discoverInstances(opts = {}) {
185
+ const instances = [];
186
+ const host = opts.host ?? "localhost";
187
+ const customPorts = getScanPorts();
188
+ const portsToScan = customPorts.length > 0 ? customPorts : DEFAULT_SCAN_PORTS;
189
+ const checks = portsToScan.map(async (port) => {
190
+ const result = await runCommand("pg_isready", ["-h", host, "-p", port], {
191
+ timeout: 3000,
192
+ });
193
+ if (result.exitCode === 0) {
194
+ let serverVersion = await this.getServerVersion({
195
+ ...opts,
196
+ host,
197
+ port,
198
+ });
199
+ if (!serverVersion) {
200
+ serverVersion = await detectVersionFromPort(host, port);
201
+ }
202
+ instances.push({
203
+ port,
204
+ version: serverVersion ?? "running",
205
+ status: "running",
206
+ });
207
+ }
208
+ });
209
+ await Promise.all(checks);
210
+ instances.sort((a, b) => parseInt(a.port) - parseInt(b.port));
211
+ return instances;
212
+ }
213
+ async getServerVersion(opts = {}) {
214
+ const args = [
215
+ ...buildConnectionArgs(opts),
216
+ "-d",
217
+ "postgres",
218
+ "-t",
219
+ "-A",
220
+ "-c",
221
+ "SELECT version();",
222
+ ];
223
+ const result = await runCommand("psql", args, {
224
+ env: buildEnv(opts),
225
+ timeout: 5000,
226
+ });
227
+ if (result.exitCode !== 0) {
228
+ return null;
229
+ }
230
+ const output = result.stdout.trim().split(",")[0];
231
+ return output || null;
232
+ }
233
+ async listDatabases(opts = {}) {
234
+ let query = "SELECT json_agg(json_build_object('name', datname, 'owner', pg_catalog.pg_get_userbyid(datdba), 'encoding', pg_encoding_to_char(encoding))) FROM pg_database WHERE datistemplate = false;";
235
+ if (opts.includeSize) {
236
+ query = `SELECT json_agg(json_build_object('name', datname, 'owner', pg_catalog.pg_get_userbyid(datdba), 'encoding', pg_encoding_to_char(encoding), 'size', pg_size_pretty(size_bytes))) FROM (SELECT datname, datdba, encoding, pg_database_size(datname) as size_bytes FROM pg_database WHERE datistemplate = false ORDER BY size_bytes DESC) as sorted_dbs;`;
237
+ }
238
+ const args = [
239
+ ...buildConnectionArgs(opts),
240
+ "-d",
241
+ "postgres",
242
+ "-t",
243
+ "-A",
244
+ "-c",
245
+ query,
246
+ ];
247
+ const result = await runCommand("psql", args, {
248
+ env: buildEnv(opts),
249
+ timeout: opts.includeSize ? 0 : 60000,
250
+ });
251
+ if (result.exitCode !== 0) {
252
+ const errMsg = result.stderr;
253
+ if (errMsg.includes("password") || errMsg.includes("authentication")) {
254
+ throw new Error(`Authentication failed. Use --password to provide credentials:\n herdux --password <password> list`);
255
+ }
256
+ throw new Error(`Failed to list databases: ${errMsg}`);
257
+ }
258
+ const output = result.stdout.trim();
259
+ if (!output || output === "" || output === "null") {
260
+ return [];
261
+ }
262
+ try {
263
+ return JSON.parse(output);
264
+ }
265
+ catch {
266
+ throw new Error(`Failed to parse database list: ${output}`);
267
+ }
268
+ }
269
+ async createDatabase(name, opts = {}) {
270
+ const args = [
271
+ ...buildConnectionArgs(opts),
272
+ "-d",
273
+ "postgres",
274
+ "-c",
275
+ `CREATE DATABASE "${name}";`,
276
+ ];
277
+ const result = await runCommand("psql", args, {
278
+ env: buildEnv(opts),
279
+ });
280
+ if (result.exitCode !== 0) {
281
+ const errMsg = result.stderr;
282
+ if (errMsg.includes("password") || errMsg.includes("authentication")) {
283
+ throw new Error(`Authentication failed. Use --password to provide credentials:\n herdux --password <password> create "${name}"`);
284
+ }
285
+ throw new Error(`Failed to create database "${name}": ${errMsg}`);
286
+ }
287
+ }
288
+ async dropDatabase(name, opts = {}) {
289
+ const args = [
290
+ ...buildConnectionArgs(opts),
291
+ "-d",
292
+ "postgres",
293
+ "-c",
294
+ `DROP DATABASE "${name}";`,
295
+ ];
296
+ const result = await runCommand("psql", args, {
297
+ env: buildEnv(opts),
298
+ });
299
+ if (result.exitCode !== 0) {
300
+ const errMsg = result.stderr;
301
+ if (errMsg.includes("password") || errMsg.includes("authentication")) {
302
+ throw new Error(`Authentication failed. Use --password to provide credentials:\n herdux --password <password> drop "${name}"`);
303
+ }
304
+ throw new Error(`Failed to drop database "${name}": ${errMsg}`);
305
+ }
306
+ }
307
+ async backupDatabase(dbName, outputDir = "./backups", opts = {}, format = "custom") {
308
+ const resolvedDir = resolve(outputDir);
309
+ if (!existsSync(resolvedDir)) {
310
+ mkdirSync(resolvedDir, { recursive: true });
311
+ }
312
+ const typedFormat = format === "plain" ? "plain" : "custom";
313
+ const filename = generateBackupFilename(dbName, typedFormat);
314
+ const outputPath = join(resolvedDir, filename);
315
+ const formatFlag = typedFormat === "plain" ? "-Fp" : "-Fc";
316
+ const args = [
317
+ ...buildDumpConnectionArgs(opts),
318
+ formatFlag,
319
+ "-f",
320
+ outputPath,
321
+ dbName,
322
+ ];
323
+ const result = await runCommand("pg_dump", args, {
324
+ env: buildEnv(opts),
325
+ timeout: 0,
326
+ });
327
+ if (result.exitCode !== 0) {
328
+ throw new Error(`Backup failed for "${dbName}": ${result.stderr}`);
329
+ }
330
+ return outputPath;
331
+ }
332
+ async restoreDatabase(inputPath, dbName, opts = {}, format, clean) {
333
+ const resolvedPath = resolve(inputPath);
334
+ if (!existsSync(resolvedPath)) {
335
+ throw new Error(`Backup file not found: ${resolvedPath}`);
336
+ }
337
+ const isPlainFormat = format
338
+ ? format === "plain"
339
+ : resolvedPath.toLowerCase().endsWith(".sql");
340
+ if (isPlainFormat) {
341
+ const args = [
342
+ ...buildConnectionArgs(opts),
343
+ "-d",
344
+ dbName,
345
+ "-f",
346
+ resolvedPath,
347
+ ];
348
+ const result = await runCommand("psql", args, {
349
+ env: buildEnv(opts),
350
+ timeout: 0,
351
+ });
352
+ if (result.exitCode !== 0) {
353
+ throw new Error(`SQL Restore failed: ${result.stderr}`);
354
+ }
355
+ }
356
+ else {
357
+ const args = [...buildDumpConnectionArgs(opts), "-d", dbName];
358
+ if (clean) {
359
+ args.push("--clean", "--if-exists");
360
+ }
361
+ args.push(resolvedPath);
362
+ const result = await runCommand("pg_restore", args, {
363
+ env: buildEnv(opts),
364
+ timeout: 0,
365
+ });
366
+ if (result.exitCode === 1) {
367
+ throw new Error(`Restore failed with a fatal error: ${result.stderr}`);
368
+ }
369
+ else if (result.exitCode > 1) {
370
+ if (result.stderr.toLowerCase().includes("fatal")) {
371
+ throw new Error(`Restore failed: ${result.stderr}`);
372
+ }
373
+ }
374
+ }
375
+ }
376
+ }
377
+ //# sourceMappingURL=postgres.engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.engine.js","sourceRoot":"","sources":["../../../../src/infra/engines/postgres/postgres.engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ConnectionOptions } from "../../../core/interfaces/database-engine.interface.js";
2
+ export declare function resolveConnectionOptions(opts: ConnectionOptions, serverName?: string): Promise<ConnectionOptions>;
3
+ //# sourceMappingURL=resolve-connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-connection.d.ts","sourceRoot":"","sources":["../../../../src/infra/engines/postgres/resolve-connection.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAI/F,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,iBAAiB,EACvB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,CAAC,CA+H5B"}