@heronlabs/terminal-cli 2.2.4 → 2.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 (111) hide show
  1. package/README.md +15 -10
  2. package/bin/src/application/cli/cli-module.d.ts +5 -0
  3. package/bin/src/application/cli/cli-module.d.ts.map +1 -0
  4. package/bin/src/application/cli/cli-module.js +1 -0
  5. package/bin/src/application/cli/cli-module.js.map +1 -0
  6. package/bin/src/application/cli/commands/backup/easypanel-backup-command.d.ts +11 -0
  7. package/bin/src/application/cli/commands/backup/easypanel-backup-command.d.ts.map +1 -0
  8. package/bin/src/application/cli/commands/backup/easypanel-backup-command.js +1 -0
  9. package/bin/src/application/cli/commands/backup/easypanel-backup-command.js.map +1 -0
  10. package/bin/src/application/cli/commands/backup/mysql-backup-command.d.ts +11 -0
  11. package/bin/src/application/cli/commands/backup/mysql-backup-command.d.ts.map +1 -0
  12. package/bin/src/application/cli/commands/backup/mysql-backup-command.js +1 -0
  13. package/bin/src/application/cli/commands/backup/mysql-backup-command.js.map +1 -0
  14. package/bin/src/application/cli/commands/backup/psql-backup-command.d.ts +11 -0
  15. package/bin/src/application/cli/commands/backup/psql-backup-command.d.ts.map +1 -0
  16. package/bin/src/application/cli/commands/backup/psql-backup-command.js +1 -0
  17. package/bin/src/application/cli/commands/backup/psql-backup-command.js.map +1 -0
  18. package/bin/src/application/cli/commands/backup/types/backup-options.d.ts +9 -0
  19. package/bin/src/application/cli/commands/backup/types/backup-options.d.ts.map +1 -0
  20. package/bin/src/application/cli/commands/backup/types/backup-options.js +1 -0
  21. package/bin/src/application/cli/commands/backup/types/backup-options.js.map +1 -0
  22. package/bin/src/application/cli/commands/rollup/easypanel-rollup-command.d.ts +11 -0
  23. package/bin/src/application/cli/commands/rollup/easypanel-rollup-command.d.ts.map +1 -0
  24. package/bin/src/application/cli/commands/rollup/easypanel-rollup-command.js +1 -0
  25. package/bin/src/application/cli/commands/rollup/easypanel-rollup-command.js.map +1 -0
  26. package/bin/src/application/cli/commands/rollup/mysql-rollup-command.d.ts +11 -0
  27. package/bin/src/application/cli/commands/rollup/mysql-rollup-command.d.ts.map +1 -0
  28. package/bin/src/application/cli/commands/rollup/mysql-rollup-command.js +1 -0
  29. package/bin/src/application/cli/commands/rollup/mysql-rollup-command.js.map +1 -0
  30. package/bin/src/application/cli/commands/rollup/psql-rollup-command.d.ts +11 -0
  31. package/bin/src/application/cli/commands/rollup/psql-rollup-command.d.ts.map +1 -0
  32. package/bin/src/application/cli/commands/rollup/psql-rollup-command.js +1 -0
  33. package/bin/src/application/cli/commands/rollup/psql-rollup-command.js.map +1 -0
  34. package/bin/src/application/cli/commands/rollup/types/rollup-options.d.ts +9 -0
  35. package/bin/src/application/cli/commands/rollup/types/rollup-options.d.ts.map +1 -0
  36. package/bin/src/application/cli/commands/rollup/types/rollup-options.js +1 -0
  37. package/bin/src/application/cli/commands/rollup/types/rollup-options.js.map +1 -0
  38. package/bin/src/application/cli/commands/version/version-command.d.ts +8 -0
  39. package/bin/src/application/cli/commands/version/version-command.d.ts.map +1 -0
  40. package/bin/src/application/cli/commands/version/version-command.js +1 -0
  41. package/bin/src/application/cli/commands/version/version-command.js.map +1 -0
  42. package/bin/src/core/core-module.d.ts +3 -0
  43. package/bin/src/core/core-module.d.ts.map +1 -0
  44. package/bin/src/core/core-module.js +1 -0
  45. package/bin/src/core/core-module.js.map +1 -0
  46. package/bin/src/core/interfaces/backup-service.d.ts +21 -0
  47. package/bin/src/core/interfaces/backup-service.d.ts.map +1 -0
  48. package/bin/src/core/interfaces/backup-service.js +1 -0
  49. package/bin/src/core/interfaces/backup-service.js.map +1 -0
  50. package/bin/src/core/interfaces/rollup-service.d.ts +18 -0
  51. package/bin/src/core/interfaces/rollup-service.d.ts.map +1 -0
  52. package/bin/src/core/interfaces/rollup-service.js +1 -0
  53. package/bin/src/core/interfaces/rollup-service.js.map +1 -0
  54. package/bin/src/core/services/easy-panel/easypanel-backup-service.d.ts +22 -0
  55. package/bin/src/core/services/easy-panel/easypanel-backup-service.d.ts.map +1 -0
  56. package/bin/src/core/services/easy-panel/easypanel-backup-service.js +1 -0
  57. package/bin/src/core/services/easy-panel/easypanel-backup-service.js.map +1 -0
  58. package/bin/src/core/services/easy-panel/easypanel-rollup-service.d.ts +22 -0
  59. package/bin/src/core/services/easy-panel/easypanel-rollup-service.d.ts.map +1 -0
  60. package/bin/src/core/services/easy-panel/easypanel-rollup-service.js +1 -0
  61. package/bin/src/core/services/easy-panel/easypanel-rollup-service.js.map +1 -0
  62. package/bin/src/core/services/mysql/mysql-backup-service.d.ts +24 -0
  63. package/bin/src/core/services/mysql/mysql-backup-service.d.ts.map +1 -0
  64. package/bin/src/core/services/mysql/mysql-backup-service.js +1 -0
  65. package/bin/src/core/services/mysql/mysql-backup-service.js.map +1 -0
  66. package/bin/src/core/services/mysql/mysql-rollup-service.d.ts +24 -0
  67. package/bin/src/core/services/mysql/mysql-rollup-service.d.ts.map +1 -0
  68. package/bin/src/core/services/mysql/mysql-rollup-service.js +1 -0
  69. package/bin/src/core/services/mysql/mysql-rollup-service.js.map +1 -0
  70. package/bin/src/core/services/psql/psql-backup-service.d.ts +24 -0
  71. package/bin/src/core/services/psql/psql-backup-service.d.ts.map +1 -0
  72. package/bin/src/core/services/psql/psql-backup-service.js +1 -0
  73. package/bin/src/core/services/psql/psql-backup-service.js.map +1 -0
  74. package/bin/src/core/services/psql/psql-rollup-service.d.ts +24 -0
  75. package/bin/src/core/services/psql/psql-rollup-service.d.ts.map +1 -0
  76. package/bin/src/core/services/psql/psql-rollup-service.js +1 -0
  77. package/bin/src/core/services/psql/psql-rollup-service.js.map +1 -0
  78. package/bin/src/core/services/script-loader-service.d.ts +4 -0
  79. package/bin/src/core/services/script-loader-service.d.ts.map +1 -0
  80. package/bin/src/core/services/script-loader-service.js +1 -0
  81. package/bin/src/core/services/script-loader-service.js.map +1 -0
  82. package/bin/src/infrastructure/environment/environment-module.d.ts +5 -0
  83. package/bin/src/infrastructure/environment/environment-module.d.ts.map +1 -0
  84. package/bin/src/infrastructure/environment/environment-module.js +2 -1
  85. package/bin/src/infrastructure/environment/environment-module.js.map +1 -0
  86. package/bin/src/infrastructure/environment/services/database-url-service.d.ts +24 -0
  87. package/bin/src/infrastructure/environment/services/database-url-service.d.ts.map +1 -0
  88. package/bin/src/infrastructure/environment/services/database-url-service.js +1 -0
  89. package/bin/src/infrastructure/environment/services/database-url-service.js.map +1 -0
  90. package/bin/src/infrastructure/environment/services/environment-service.d.ts +26 -0
  91. package/bin/src/infrastructure/environment/services/environment-service.d.ts.map +1 -0
  92. package/bin/src/infrastructure/environment/services/environment-service.js +1 -0
  93. package/bin/src/infrastructure/environment/services/environment-service.js.map +1 -0
  94. package/bin/src/infrastructure/log/log-module.d.ts +3 -0
  95. package/bin/src/infrastructure/log/log-module.d.ts.map +1 -0
  96. package/bin/src/infrastructure/log/log-module.js +1 -0
  97. package/bin/src/infrastructure/log/log-module.js.map +1 -0
  98. package/bin/src/infrastructure/storage/services/s3-storage-service.d.ts +24 -0
  99. package/bin/src/infrastructure/storage/services/s3-storage-service.d.ts.map +1 -0
  100. package/bin/src/infrastructure/storage/services/s3-storage-service.js +1 -0
  101. package/bin/src/infrastructure/storage/services/s3-storage-service.js.map +1 -0
  102. package/bin/src/infrastructure/storage/storage-module.d.ts +5 -0
  103. package/bin/src/infrastructure/storage/storage-module.d.ts.map +1 -0
  104. package/bin/src/infrastructure/storage/storage-module.js +1 -0
  105. package/bin/src/infrastructure/storage/storage-module.js.map +1 -0
  106. package/bin/src/main.d.ts +3 -0
  107. package/bin/src/main.d.ts.map +1 -0
  108. package/bin/src/main.js +1 -0
  109. package/bin/src/main.js.map +1 -0
  110. package/bin/tsconfig.bin.tsbuildinfo +1 -0
  111. package/package.json +8 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql-backup-service.js","sourceRoot":"","sources":["../../../../../src/core/services/mysql/mysql-backup-service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAkD;AAClD,iDAAuC;AAEvC,0GAAoG;AACpG,oGAA6F;AAC7F,oEAA8D;AAC9D,oEAA6D;AAGtD,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,8BAAa;IAsC9B;IACF;IACE;IACF;IAxCT,KAAK,CAAC,IAAI,CAAC,QAAiB;QACpC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;QAEpD,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACX,OAAO,EAAC,EAAE,EAAE,KAAc,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAC,CAAC;QAC/C,CAAC;QAED,MAAM,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAC,GAAG,EAAE,CAAC,UAAU,CAAC;QAEzD,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE5E,IAAI,CAAC;YACH,IAAA,wBAAQ,EAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE;gBACxD,GAAG,EAAE;oBACH,GAAG,OAAO,CAAC,GAAG;oBACd,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,QAAQ;oBACnB,WAAW,EAAE,cAAc;iBAC5B;gBACD,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC;gBACrC,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,iDAAiD,cAAc,EAAE,CAClE,CAAC;YAEF,OAAO,EAAC,EAAE,EAAE,IAAa,EAAE,IAAI,EAAE,EAAC,cAAc,EAAC,EAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAC,EAAE,EAAE,KAAc,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,qBAAqB,CAAC,EAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,YACqB,MAAc,EAChB,kBAAsC,EACpC,gBAAkC,EACpC,YAAiC;QAElD,KAAK,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QALb,WAAM,GAAN,MAAM,CAAQ;QAChB,uBAAkB,GAAlB,kBAAkB,CAAoB;QACpC,qBAAgB,GAAhB,gBAAgB,CAAkB;QACpC,iBAAY,GAAZ,YAAY,CAAqB;IAGpD,CAAC;CACF,CAAA;AA7CY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCAuCkB,eAAM;QACI,wCAAkB;QAClB,qCAAgB;QACtB,2CAAmB;GAzCzC,kBAAkB,CA6C9B","sourcesContent":["import {Injectable, Logger} from '@nestjs/common';\nimport {execSync} from 'child_process';\n\nimport {EnvironmentService} from '../../../infrastructure/environment/services/environment-service';\nimport {S3StorageService} from '../../../infrastructure/storage/services/s3-storage-service';\nimport {BackupService} from '../../interfaces/backup-service';\nimport {ScriptLoaderService} from '../script-loader-service';\n\n@Injectable()\nexport class MysqlBackupService extends BackupService {\n protected async dump(filename?: string) {\n const db = await this.environmentService.database();\n\n if (!db.ok) {\n return {ok: false as const, error: db.error};\n }\n\n const {host, port, name, user, password} = db.connection;\n\n const backupFileName = this.resolveBackupFileName(filename, name, 'sql.gz');\n\n try {\n execSync(this.scriptLoader.load('mysql', 'mysql-backup'), {\n env: {\n ...process.env,\n DB_USER: user,\n DB_HOST: host,\n DB_PORT: port,\n DB_NAME: name,\n MYSQL_PWD: password,\n BACKUP_FILE: backupFileName,\n },\n stdio: ['inherit', 'pipe', 'inherit'],\n shell: '/bin/bash',\n });\n\n this.logger.log(\n `Backup MySQL database successfully! Filename: ${backupFileName}`,\n );\n\n return {ok: true as const, data: {backupFileName}};\n } catch {\n return {ok: false as const, error: new Error('mariadb-dump failed')};\n }\n }\n\n constructor(\n protected readonly logger: Logger,\n private readonly environmentService: EnvironmentService,\n protected readonly s3StorageService: S3StorageService,\n private readonly scriptLoader: ScriptLoaderService,\n ) {\n super(logger, s3StorageService);\n }\n}\n"]}
@@ -0,0 +1,24 @@
1
+ import { Logger } from '@nestjs/common';
2
+ import { EnvironmentService } from '../../../infrastructure/environment/services/environment-service';
3
+ import { S3StorageService } from '../../../infrastructure/storage/services/s3-storage-service';
4
+ import { RollupService } from '../../interfaces/rollup-service';
5
+ import { ScriptLoaderService } from '../script-loader-service';
6
+ export declare class MysqlRollupService extends RollupService {
7
+ protected readonly logger: Logger;
8
+ private readonly environmentService;
9
+ protected readonly s3StorageService: S3StorageService;
10
+ private readonly scriptLoader;
11
+ protected restore(backupFileName: string): Promise<{
12
+ ok: false;
13
+ error: Error;
14
+ data?: undefined;
15
+ } | {
16
+ ok: true;
17
+ data: {
18
+ backupFileName: string;
19
+ };
20
+ error?: undefined;
21
+ }>;
22
+ constructor(logger: Logger, environmentService: EnvironmentService, s3StorageService: S3StorageService, scriptLoader: ScriptLoaderService);
23
+ }
24
+ //# sourceMappingURL=mysql-rollup-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql-rollup-service.d.ts","sourceRoot":"","sources":["../../../../../src/core/services/mysql/mysql-rollup-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAC,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAAC,kBAAkB,EAAC,MAAM,kEAAkE,CAAC;AACpG,OAAO,EAAC,gBAAgB,EAAC,MAAM,6DAA6D,CAAC;AAC7F,OAAO,EAAC,aAAa,EAAC,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAE7D,qBACa,kBAAmB,SAAQ,aAAa;IAgCjD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY;cAlCf,OAAO,CAAC,cAAc,EAAE,MAAM;;;;;;;;;;;gBA+BzB,MAAM,EAAE,MAAM,EAChB,kBAAkB,EAAE,kBAAkB,EACpC,gBAAgB,EAAE,gBAAgB,EACpC,YAAY,EAAE,mBAAmB;CAIrD"}
@@ -63,3 +63,4 @@ exports.MysqlRollupService = MysqlRollupService = __decorate([
63
63
  s3_storage_service_1.S3StorageService,
64
64
  script_loader_service_1.ScriptLoaderService])
65
65
  ], MysqlRollupService);
66
+ //# sourceMappingURL=mysql-rollup-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql-rollup-service.js","sourceRoot":"","sources":["../../../../../src/core/services/mysql/mysql-rollup-service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAkD;AAClD,iDAAuC;AAEvC,0GAAoG;AACpG,oGAA6F;AAC7F,oEAA8D;AAC9D,oEAA6D;AAGtD,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,8BAAa;IAgC9B;IACF;IACE;IACF;IAlCT,KAAK,CAAC,OAAO,CAAC,cAAsB;QAC5C,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;QAEpD,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACX,OAAO,EAAC,EAAE,EAAE,KAAc,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAC,CAAC;QAC/C,CAAC;QAED,MAAM,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAC,GAAG,EAAE,CAAC,UAAU,CAAC;QAEzD,IAAI,CAAC;YACH,IAAA,wBAAQ,EAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE;gBACxD,GAAG,EAAE;oBACH,GAAG,OAAO,CAAC,GAAG;oBACd,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,QAAQ;oBACnB,WAAW,EAAE,cAAc;iBAC5B;gBACD,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC;gBACrC,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;YAEH,OAAO,EAAC,EAAE,EAAE,IAAa,EAAE,IAAI,EAAE,EAAC,cAAc,EAAC,EAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAC,EAAE,EAAE,KAAc,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,wBAAwB,CAAC,EAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,YACqB,MAAc,EAChB,kBAAsC,EACpC,gBAAkC,EACpC,YAAiC;QAElD,KAAK,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QALb,WAAM,GAAN,MAAM,CAAQ;QAChB,uBAAkB,GAAlB,kBAAkB,CAAoB;QACpC,qBAAgB,GAAhB,gBAAgB,CAAkB;QACpC,iBAAY,GAAZ,YAAY,CAAqB;IAGpD,CAAC;CACF,CAAA;AAvCY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCAiCkB,eAAM;QACI,wCAAkB;QAClB,qCAAgB;QACtB,2CAAmB;GAnCzC,kBAAkB,CAuC9B","sourcesContent":["import {Injectable, Logger} from '@nestjs/common';\nimport {execSync} from 'child_process';\n\nimport {EnvironmentService} from '../../../infrastructure/environment/services/environment-service';\nimport {S3StorageService} from '../../../infrastructure/storage/services/s3-storage-service';\nimport {RollupService} from '../../interfaces/rollup-service';\nimport {ScriptLoaderService} from '../script-loader-service';\n\n@Injectable()\nexport class MysqlRollupService extends RollupService {\n protected async restore(backupFileName: string) {\n const db = await this.environmentService.database();\n\n if (!db.ok) {\n return {ok: false as const, error: db.error};\n }\n\n const {host, port, name, user, password} = db.connection;\n\n try {\n execSync(this.scriptLoader.load('mysql', 'mysql-rollup'), {\n env: {\n ...process.env,\n DB_USER: user,\n DB_HOST: host,\n DB_PORT: port,\n DB_NAME: name,\n MYSQL_PWD: password,\n BACKUP_FILE: backupFileName,\n },\n stdio: ['inherit', 'pipe', 'inherit'],\n shell: '/bin/bash',\n });\n\n return {ok: true as const, data: {backupFileName}};\n } catch {\n return {ok: false as const, error: new Error('mariadb restore failed')};\n }\n }\n\n constructor(\n protected readonly logger: Logger,\n private readonly environmentService: EnvironmentService,\n protected readonly s3StorageService: S3StorageService,\n private readonly scriptLoader: ScriptLoaderService,\n ) {\n super(logger, s3StorageService);\n }\n}\n"]}
@@ -0,0 +1,24 @@
1
+ import { Logger } from '@nestjs/common';
2
+ import { EnvironmentService } from '../../../infrastructure/environment/services/environment-service';
3
+ import { S3StorageService } from '../../../infrastructure/storage/services/s3-storage-service';
4
+ import { BackupService } from '../../interfaces/backup-service';
5
+ import { ScriptLoaderService } from '../script-loader-service';
6
+ export declare class PsqlBackupService extends BackupService {
7
+ protected readonly logger: Logger;
8
+ private readonly environmentService;
9
+ protected readonly s3StorageService: S3StorageService;
10
+ private readonly scriptLoader;
11
+ protected dump(filename?: string): Promise<{
12
+ ok: false;
13
+ error: Error;
14
+ data?: undefined;
15
+ } | {
16
+ ok: true;
17
+ data: {
18
+ backupFileName: string;
19
+ };
20
+ error?: undefined;
21
+ }>;
22
+ constructor(logger: Logger, environmentService: EnvironmentService, s3StorageService: S3StorageService, scriptLoader: ScriptLoaderService);
23
+ }
24
+ //# sourceMappingURL=psql-backup-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"psql-backup-service.d.ts","sourceRoot":"","sources":["../../../../../src/core/services/psql/psql-backup-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAC,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAAC,kBAAkB,EAAC,MAAM,kEAAkE,CAAC;AACpG,OAAO,EAAC,gBAAgB,EAAC,MAAM,6DAA6D,CAAC;AAC7F,OAAO,EAAC,aAAa,EAAC,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAE7D,qBACa,iBAAkB,SAAQ,aAAa;IAsChD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY;cAxCf,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM;;;;;;;;;;;gBAqCjB,MAAM,EAAE,MAAM,EAChB,kBAAkB,EAAE,kBAAkB,EACpC,gBAAgB,EAAE,gBAAgB,EACpC,YAAY,EAAE,mBAAmB;CAIrD"}
@@ -65,3 +65,4 @@ exports.PsqlBackupService = PsqlBackupService = __decorate([
65
65
  s3_storage_service_1.S3StorageService,
66
66
  script_loader_service_1.ScriptLoaderService])
67
67
  ], PsqlBackupService);
68
+ //# sourceMappingURL=psql-backup-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"psql-backup-service.js","sourceRoot":"","sources":["../../../../../src/core/services/psql/psql-backup-service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAkD;AAClD,iDAAuC;AAEvC,0GAAoG;AACpG,oGAA6F;AAC7F,oEAA8D;AAC9D,oEAA6D;AAGtD,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,8BAAa;IAsC7B;IACF;IACE;IACF;IAxCT,KAAK,CAAC,IAAI,CAAC,QAAiB;QACpC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;QAEpD,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACX,OAAO,EAAC,EAAE,EAAE,KAAc,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAC,CAAC;QAC/C,CAAC;QAED,MAAM,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAC,GAAG,EAAE,CAAC,UAAU,CAAC;QAEzD,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE5E,IAAI,CAAC;YACH,IAAA,wBAAQ,EAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE;gBACtD,GAAG,EAAE;oBACH,GAAG,OAAO,CAAC,GAAG;oBACd,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,IAAI;oBACZ,UAAU,EAAE,IAAI;oBAChB,MAAM,EAAE,IAAI;oBACZ,UAAU,EAAE,QAAQ;oBACpB,WAAW,EAAE,cAAc;iBAC5B;gBACD,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC;gBACrC,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,sDAAsD,cAAc,EAAE,CACvE,CAAC;YAEF,OAAO,EAAC,EAAE,EAAE,IAAa,EAAE,IAAI,EAAE,EAAC,cAAc,EAAC,EAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAC,EAAE,EAAE,KAAc,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,gBAAgB,CAAC,EAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,YACqB,MAAc,EAChB,kBAAsC,EACpC,gBAAkC,EACpC,YAAiC;QAElD,KAAK,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QALb,WAAM,GAAN,MAAM,CAAQ;QAChB,uBAAkB,GAAlB,kBAAkB,CAAoB;QACpC,qBAAgB,GAAhB,gBAAgB,CAAkB;QACpC,iBAAY,GAAZ,YAAY,CAAqB;IAGpD,CAAC;CACF,CAAA;AA7CY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAuCkB,eAAM;QACI,wCAAkB;QAClB,qCAAgB;QACtB,2CAAmB;GAzCzC,iBAAiB,CA6C7B","sourcesContent":["import {Injectable, Logger} from '@nestjs/common';\nimport {execSync} from 'child_process';\n\nimport {EnvironmentService} from '../../../infrastructure/environment/services/environment-service';\nimport {S3StorageService} from '../../../infrastructure/storage/services/s3-storage-service';\nimport {BackupService} from '../../interfaces/backup-service';\nimport {ScriptLoaderService} from '../script-loader-service';\n\n@Injectable()\nexport class PsqlBackupService extends BackupService {\n protected async dump(filename?: string) {\n const db = await this.environmentService.database();\n\n if (!db.ok) {\n return {ok: false as const, error: db.error};\n }\n\n const {host, port, name, user, password} = db.connection;\n\n const backupFileName = this.resolveBackupFileName(filename, name, 'sql.gz');\n\n try {\n execSync(this.scriptLoader.load('psql', 'psql-backup'), {\n env: {\n ...process.env,\n PGHOST: host,\n PGPORT: port,\n PGDATABASE: name,\n PGUSER: user,\n PGPASSWORD: password,\n BACKUP_FILE: backupFileName,\n },\n stdio: ['inherit', 'pipe', 'inherit'],\n shell: '/bin/bash',\n });\n\n this.logger.log(\n `Backup PostgreSQL database successfully! Filename: ${backupFileName}`,\n );\n\n return {ok: true as const, data: {backupFileName}};\n } catch {\n return {ok: false as const, error: new Error('pg_dump failed')};\n }\n }\n\n constructor(\n protected readonly logger: Logger,\n private readonly environmentService: EnvironmentService,\n protected readonly s3StorageService: S3StorageService,\n private readonly scriptLoader: ScriptLoaderService,\n ) {\n super(logger, s3StorageService);\n }\n}\n"]}
@@ -0,0 +1,24 @@
1
+ import { Logger } from '@nestjs/common';
2
+ import { EnvironmentService } from '../../../infrastructure/environment/services/environment-service';
3
+ import { S3StorageService } from '../../../infrastructure/storage/services/s3-storage-service';
4
+ import { RollupService } from '../../interfaces/rollup-service';
5
+ import { ScriptLoaderService } from '../script-loader-service';
6
+ export declare class PsqlRollupService extends RollupService {
7
+ protected readonly logger: Logger;
8
+ private readonly environmentService;
9
+ protected readonly s3StorageService: S3StorageService;
10
+ private readonly scriptLoader;
11
+ protected restore(backupFileName: string): Promise<{
12
+ ok: false;
13
+ error: Error;
14
+ data?: undefined;
15
+ } | {
16
+ ok: true;
17
+ data: {
18
+ backupFileName: string;
19
+ };
20
+ error?: undefined;
21
+ }>;
22
+ constructor(logger: Logger, environmentService: EnvironmentService, s3StorageService: S3StorageService, scriptLoader: ScriptLoaderService);
23
+ }
24
+ //# sourceMappingURL=psql-rollup-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"psql-rollup-service.d.ts","sourceRoot":"","sources":["../../../../../src/core/services/psql/psql-rollup-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAC,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAAC,kBAAkB,EAAC,MAAM,kEAAkE,CAAC;AACpG,OAAO,EAAC,gBAAgB,EAAC,MAAM,6DAA6D,CAAC;AAC7F,OAAO,EAAC,aAAa,EAAC,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAE7D,qBACa,iBAAkB,SAAQ,aAAa;IAgChD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY;cAlCf,OAAO,CAAC,cAAc,EAAE,MAAM;;;;;;;;;;;gBA+BzB,MAAM,EAAE,MAAM,EAChB,kBAAkB,EAAE,kBAAkB,EACpC,gBAAgB,EAAE,gBAAgB,EACpC,YAAY,EAAE,mBAAmB;CAIrD"}
@@ -63,3 +63,4 @@ exports.PsqlRollupService = PsqlRollupService = __decorate([
63
63
  s3_storage_service_1.S3StorageService,
64
64
  script_loader_service_1.ScriptLoaderService])
65
65
  ], PsqlRollupService);
66
+ //# sourceMappingURL=psql-rollup-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"psql-rollup-service.js","sourceRoot":"","sources":["../../../../../src/core/services/psql/psql-rollup-service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAkD;AAClD,iDAAuC;AAEvC,0GAAoG;AACpG,oGAA6F;AAC7F,oEAA8D;AAC9D,oEAA6D;AAGtD,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,8BAAa;IAgC7B;IACF;IACE;IACF;IAlCT,KAAK,CAAC,OAAO,CAAC,cAAsB;QAC5C,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;QAEpD,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACX,OAAO,EAAC,EAAE,EAAE,KAAc,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAC,CAAC;QAC/C,CAAC;QAED,MAAM,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAC,GAAG,EAAE,CAAC,UAAU,CAAC;QAEzD,IAAI,CAAC;YACH,IAAA,wBAAQ,EAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE;gBACtD,GAAG,EAAE;oBACH,GAAG,OAAO,CAAC,GAAG;oBACd,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,IAAI;oBACZ,UAAU,EAAE,IAAI;oBAChB,MAAM,EAAE,IAAI;oBACZ,UAAU,EAAE,QAAQ;oBACpB,WAAW,EAAE,cAAc;iBAC5B;gBACD,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC;gBACrC,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;YAEH,OAAO,EAAC,EAAE,EAAE,IAAa,EAAE,IAAI,EAAE,EAAC,cAAc,EAAC,EAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAC,EAAE,EAAE,KAAc,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,qBAAqB,CAAC,EAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,YACqB,MAAc,EAChB,kBAAsC,EACpC,gBAAkC,EACpC,YAAiC;QAElD,KAAK,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QALb,WAAM,GAAN,MAAM,CAAQ;QAChB,uBAAkB,GAAlB,kBAAkB,CAAoB;QACpC,qBAAgB,GAAhB,gBAAgB,CAAkB;QACpC,iBAAY,GAAZ,YAAY,CAAqB;IAGpD,CAAC;CACF,CAAA;AAvCY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAiCkB,eAAM;QACI,wCAAkB;QAClB,qCAAgB;QACtB,2CAAmB;GAnCzC,iBAAiB,CAuC7B","sourcesContent":["import {Injectable, Logger} from '@nestjs/common';\nimport {execSync} from 'child_process';\n\nimport {EnvironmentService} from '../../../infrastructure/environment/services/environment-service';\nimport {S3StorageService} from '../../../infrastructure/storage/services/s3-storage-service';\nimport {RollupService} from '../../interfaces/rollup-service';\nimport {ScriptLoaderService} from '../script-loader-service';\n\n@Injectable()\nexport class PsqlRollupService extends RollupService {\n protected async restore(backupFileName: string) {\n const db = await this.environmentService.database();\n\n if (!db.ok) {\n return {ok: false as const, error: db.error};\n }\n\n const {host, port, name, user, password} = db.connection;\n\n try {\n execSync(this.scriptLoader.load('psql', 'psql-rollup'), {\n env: {\n ...process.env,\n PGHOST: host,\n PGPORT: port,\n PGDATABASE: name,\n PGUSER: user,\n PGPASSWORD: password,\n BACKUP_FILE: backupFileName,\n },\n stdio: ['inherit', 'pipe', 'inherit'],\n shell: '/bin/bash',\n });\n\n return {ok: true as const, data: {backupFileName}};\n } catch {\n return {ok: false as const, error: new Error('psql restore failed')};\n }\n }\n\n constructor(\n protected readonly logger: Logger,\n private readonly environmentService: EnvironmentService,\n protected readonly s3StorageService: S3StorageService,\n private readonly scriptLoader: ScriptLoaderService,\n ) {\n super(logger, s3StorageService);\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ export declare class ScriptLoaderService {
2
+ load(dir: string, name: string): string;
3
+ }
4
+ //# sourceMappingURL=script-loader-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script-loader-service.d.ts","sourceRoot":"","sources":["../../../../src/core/services/script-loader-service.ts"],"names":[],"mappings":"AAIA,qBACa,mBAAmB;IACvB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;CAG/C"}
@@ -19,3 +19,4 @@ exports.ScriptLoaderService = ScriptLoaderService;
19
19
  exports.ScriptLoaderService = ScriptLoaderService = __decorate([
20
20
  (0, common_1.Injectable)()
21
21
  ], ScriptLoaderService);
22
+ //# sourceMappingURL=script-loader-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script-loader-service.js","sourceRoot":"","sources":["../../../../src/core/services/script-loader-service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA0C;AAC1C,2BAAgC;AAChC,+BAA0B;AAGnB,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IACvB,IAAI,CAAC,GAAW,EAAE,IAAY;QACnC,OAAO,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;CACF,CAAA;AAJY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;GACA,mBAAmB,CAI/B","sourcesContent":["import {Injectable} from '@nestjs/common';\nimport {readFileSync} from 'fs';\nimport {join} from 'path';\n\n@Injectable()\nexport class ScriptLoaderService {\n public load(dir: string, name: string): string {\n return readFileSync(join(__dirname, dir, `${name}.sh`), 'utf8');\n }\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import { ModuleMetadata } from '@nestjs/common';
2
+ export declare const environmentModule: ModuleMetadata;
3
+ export declare class EnvironmentModule {
4
+ }
5
+ //# sourceMappingURL=environment-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-module.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/environment/environment-module.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAMtD,eAAO,MAAM,iBAAiB,EAAE,cAW/B,CAAC;AAEF,qBACa,iBAAiB;CAAG"}
@@ -18,7 +18,7 @@ exports.environmentModule = {
18
18
  database_url_service_1.DatabaseUrlService,
19
19
  {
20
20
  provide: env_ssm_1.ConfigService,
21
- useValue: env_ssm_1.SsmConfigFactory.make(),
21
+ useValue: env_ssm_1.AwsFactory.make().getConfigService(),
22
22
  },
23
23
  ],
24
24
  exports: [environment_service_1.EnvironmentService],
@@ -30,3 +30,4 @@ exports.EnvironmentModule = EnvironmentModule;
30
30
  exports.EnvironmentModule = EnvironmentModule = __decorate([
31
31
  (0, common_1.Module)(exports.environmentModule)
32
32
  ], EnvironmentModule);
33
+ //# sourceMappingURL=environment-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-module.js","sourceRoot":"","sources":["../../../../src/infrastructure/environment/environment-module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,gDAA6D;AAC7D,2CAAsD;AACtD,2CAA4C;AAE5C,0EAAmE;AACnE,wEAAkE;AAErD,QAAA,iBAAiB,GAAmB;IAC/C,SAAS,EAAE;QACT,wCAAkB;QAClB,yCAAkB;QAClB;YACE,OAAO,EAAE,uBAAa;YACtB,QAAQ,EAAE,oBAAU,CAAC,IAAI,EAAE,CAAC,gBAAgB,EAAE;SAC/C;KACF;IACD,OAAO,EAAE,CAAC,wCAAkB,CAAC;IAC7B,OAAO,EAAE,CAAC,qBAAY,CAAC;CACxB,CAAC;AAGK,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAAG,CAAA;AAApB,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,eAAM,EAAC,yBAAiB,CAAC;GACb,iBAAiB,CAAG","sourcesContent":["import {AwsFactory, ConfigService} from '@heronlabs/env-ssm';\nimport {Module, ModuleMetadata} from '@nestjs/common';\nimport {ConfigModule} from '@nestjs/config';\n\nimport {DatabaseUrlService} from './services/database-url-service';\nimport {EnvironmentService} from './services/environment-service';\n\nexport const environmentModule: ModuleMetadata = {\n providers: [\n EnvironmentService,\n DatabaseUrlService,\n {\n provide: ConfigService,\n useValue: AwsFactory.make().getConfigService(),\n },\n ],\n exports: [EnvironmentService],\n imports: [ConfigModule],\n};\n\n@Module(environmentModule)\nexport class EnvironmentModule {}\n"]}
@@ -0,0 +1,24 @@
1
+ import { ConfigService } from '@heronlabs/env-ssm';
2
+ export declare class DatabaseUrlService {
3
+ private readonly ssmConfigService;
4
+ constructor(ssmConfigService: ConfigService);
5
+ private splitFirst;
6
+ private splitLast;
7
+ private stripNameSuffix;
8
+ parse(): Promise<{
9
+ ok: false;
10
+ error: Error;
11
+ connection?: undefined;
12
+ } | {
13
+ ok: true;
14
+ connection: {
15
+ host: string;
16
+ port: string;
17
+ name: string;
18
+ user: string;
19
+ password: string;
20
+ };
21
+ error?: undefined;
22
+ }>;
23
+ }
24
+ //# sourceMappingURL=database-url-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-url-service.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/environment/services/database-url-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAGjD,qBACa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,aAAa;IAE5D,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,eAAe;IAOjB,KAAK;;;;;;;;;;;;;;;CAkCZ"}
@@ -72,3 +72,4 @@ exports.DatabaseUrlService = DatabaseUrlService = __decorate([
72
72
  (0, common_1.Injectable)(),
73
73
  __metadata("design:paramtypes", [env_ssm_1.ConfigService])
74
74
  ], DatabaseUrlService);
75
+ //# sourceMappingURL=database-url-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-url-service.js","sourceRoot":"","sources":["../../../../../src/infrastructure/environment/services/database-url-service.ts"],"names":[],"mappings":"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","sourcesContent":["import {ConfigService} from '@heronlabs/env-ssm';\nimport {Injectable} from '@nestjs/common';\n\n@Injectable()\nexport class DatabaseUrlService {\n constructor(private readonly ssmConfigService: ConfigService) {}\n\n private splitFirst(\n value: string,\n delimiter: string,\n ): [string, string | undefined] {\n const index = value.indexOf(delimiter);\n\n if (index === -1) {\n return [value, undefined];\n }\n\n const head = value.slice(0, index);\n const tail = value.slice(index + delimiter.length);\n\n return [head, tail];\n }\n\n private splitLast(value: string, delimiter: string): [string, string] {\n const index = value.lastIndexOf(delimiter);\n\n if (index === -1) {\n return ['', value];\n }\n\n const head = value.slice(0, index);\n const tail = value.slice(index + delimiter.length);\n\n return [head, tail];\n }\n\n private stripNameSuffix(name: string): string {\n const [withoutFragment] = this.splitFirst(name, '#');\n const [withoutQuery] = this.splitFirst(withoutFragment, '?');\n\n return withoutQuery;\n }\n\n async parse() {\n try {\n const databaseUrl = await this.ssmConfigService.getOrThrow('DB_URL');\n\n const [, rest = ''] = this.splitFirst(databaseUrl, '://');\n\n const [userinfo, remainder] = this.splitLast(rest, '@');\n const [hostport, rawName = ''] = this.splitFirst(remainder, '/');\n const [user, password = ''] = this.splitFirst(userinfo, ':');\n const [host, port = ''] = this.splitFirst(hostport, ':');\n\n const name = this.stripNameSuffix(rawName);\n\n const connection = {host, port, name, user, password};\n\n const missing = (['host', 'name', 'user'] as const).filter(\n field => connection[field] === '',\n );\n\n if (missing.length > 0) {\n return {\n ok: false as const,\n error: new Error(`Invalid DB_URL: missing ${missing.join(', ')}`),\n };\n }\n\n return {ok: true as const, connection};\n } catch (error) {\n return {\n ok: false as const,\n error: error instanceof Error ? error : new Error('Invalid DB_URL'),\n };\n }\n }\n}\n"]}
@@ -0,0 +1,26 @@
1
+ import { ConfigService } from '@nestjs/config';
2
+ import { DatabaseUrlService } from './database-url-service';
3
+ export declare class EnvironmentService {
4
+ private readonly configService;
5
+ private readonly databaseUrlService;
6
+ database(): Promise<{
7
+ ok: false;
8
+ error: Error;
9
+ connection?: undefined;
10
+ } | {
11
+ ok: true;
12
+ connection: {
13
+ host: string;
14
+ port: string;
15
+ name: string;
16
+ user: string;
17
+ password: string;
18
+ };
19
+ error?: undefined;
20
+ }>;
21
+ get storage(): {
22
+ bucketName: string;
23
+ };
24
+ constructor(configService: ConfigService, databaseUrlService: DatabaseUrlService);
25
+ }
26
+ //# sourceMappingURL=environment-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-service.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/environment/services/environment-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAC,kBAAkB,EAAC,MAAM,wBAAwB,CAAC;AAE1D,qBACa,kBAAkB;IAY3B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAZrC,QAAQ;;;;;;;;;;;;;;;IAIR,IAAI,OAAO;;MAIV;gBAGkB,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB;CAE1D"}
@@ -35,3 +35,4 @@ exports.EnvironmentService = EnvironmentService = __decorate([
35
35
  __metadata("design:paramtypes", [config_1.ConfigService,
36
36
  database_url_service_1.DatabaseUrlService])
37
37
  ], EnvironmentService);
38
+ //# sourceMappingURL=environment-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-service.js","sourceRoot":"","sources":["../../../../../src/infrastructure/environment/services/environment-service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA0C;AAC1C,2CAA6C;AAE7C,iEAA0D;AAGnD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAYV;IACA;IAZnB,QAAQ;QACN,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,OAAO;QACT,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAS,oBAAoB,CAAC;SACxE,CAAC;IACJ,CAAC;IAED,YACmB,aAA4B,EAC5B,kBAAsC;QADtC,kBAAa,GAAb,aAAa,CAAe;QAC5B,uBAAkB,GAAlB,kBAAkB,CAAoB;IACtD,CAAC;CACL,CAAA;AAfY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCAauB,sBAAa;QACR,yCAAkB;GAb9C,kBAAkB,CAe9B","sourcesContent":["import {Injectable} from '@nestjs/common';\nimport {ConfigService} from '@nestjs/config';\n\nimport {DatabaseUrlService} from './database-url-service';\n\n@Injectable()\nexport class EnvironmentService {\n database() {\n return this.databaseUrlService.parse();\n }\n\n get storage() {\n return {\n bucketName: this.configService.getOrThrow<string>('AWS_S3_BUCKET_NAME'),\n };\n }\n\n constructor(\n private readonly configService: ConfigService,\n private readonly databaseUrlService: DatabaseUrlService,\n ) {}\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export declare class LogModule {
2
+ }
3
+ //# sourceMappingURL=log-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-module.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/log/log-module.ts"],"names":[],"mappings":"AAOA,qBAEa,SAAS;CAAG"}
@@ -19,3 +19,4 @@ exports.LogModule = LogModule = __decorate([
19
19
  (0, common_1.Module)(logModule),
20
20
  (0, common_1.Global)()
21
21
  ], LogModule);
22
+ //# sourceMappingURL=log-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-module.js","sourceRoot":"","sources":["../../../../src/infrastructure/log/log-module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA8D;AAC9D,6CAAuD;AAEvD,MAAM,SAAS,GAAmB;IAChC,OAAO,EAAE,CAAC,0BAAU,CAAC,OAAO,EAAE,CAAC;CAChC,CAAC;AAIK,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAFrB,IAAA,eAAM,EAAC,SAAS,CAAC;IACjB,IAAA,eAAM,GAAE;GACI,SAAS,CAAG","sourcesContent":["import {Global, Module, ModuleMetadata} from '@nestjs/common';\nimport {LoggerModule as PinoModule} from 'nestjs-pino';\n\nconst logModule: ModuleMetadata = {\n imports: [PinoModule.forRoot()],\n};\n\n@Module(logModule)\n@Global()\nexport class LogModule {}\n"]}
@@ -0,0 +1,24 @@
1
+ import { S3Client } from '@aws-sdk/client-s3';
2
+ import { Logger } from '@nestjs/common';
3
+ import { EnvironmentService } from '../../environment/services/environment-service';
4
+ export declare class S3StorageService {
5
+ private readonly logger;
6
+ private readonly environmentService;
7
+ private readonly s3;
8
+ upload(filePath: string, key?: string): Promise<{
9
+ ok: boolean;
10
+ error?: undefined;
11
+ } | {
12
+ ok: boolean;
13
+ error: Error;
14
+ }>;
15
+ download(key: string): Promise<{
16
+ ok: boolean;
17
+ error?: undefined;
18
+ } | {
19
+ ok: boolean;
20
+ error: Error;
21
+ }>;
22
+ constructor(logger: Logger, environmentService: EnvironmentService, s3: S3Client);
23
+ }
24
+ //# sourceMappingURL=s3-storage-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3-storage-service.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/storage/services/s3-storage-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAa,MAAM,EAAC,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAAC,kBAAkB,EAAC,MAAM,gDAAgD,CAAC;AAElF,qBACa,gBAAgB;IAmDzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,EAAE;IApDR,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;;;;;;;IAyBrC,QAAQ,CAAC,GAAG,EAAE,MAAM;;;;;;;gBAyBd,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,kBAAkB,EACtC,EAAE,EAAE,QAAQ;CAEhC"}
@@ -70,3 +70,4 @@ exports.S3StorageService = S3StorageService = __decorate([
70
70
  environment_service_1.EnvironmentService,
71
71
  client_s3_1.S3Client])
72
72
  ], S3StorageService);
73
+ //# sourceMappingURL=s3-storage-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3-storage-service.js","sourceRoot":"","sources":["../../../../../src/infrastructure/storage/services/s3-storage-service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAAgF;AAChF,2CAAkD;AAClD,2BAA+C;AAE/C,wFAAkF;AAG3E,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAmDR;IACA;IACA;IApDZ,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,GAAY;QAChD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAA,iBAAY,EAAC,QAAQ,CAAC,CAAC;YAEpC,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC;gBACnC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAU;gBAClD,GAAG,EAAE,GAAG,IAAI,QAAQ;gBACpB,IAAI,EAAE,IAAI;gBACV,WAAW,EAAE,0BAA0B;aACxC,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAEvC,OAAO,EAAC,EAAE,EAAE,IAAI,EAAC,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;YAC5B,CAAC;YAED,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,4BAA4B,CAAC,EAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,GAAW;QAC/B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC;gBACnC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAU;gBAClD,GAAG,EAAE,GAAG;aACT,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAK,CAAC,oBAAoB,EAAE,CAAC;YAE1D,IAAA,kBAAa,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAE1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YAE3C,OAAO,EAAC,EAAE,EAAE,IAAI,EAAC,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;YAC5B,CAAC;YAED,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,gCAAgC,CAAC,EAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,YACmB,MAAc,EACd,kBAAsC,EACtC,EAAY;QAFZ,WAAM,GAAN,MAAM,CAAQ;QACd,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,OAAE,GAAF,EAAE,CAAU;IAC5B,CAAC;CACL,CAAA;AAvDY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAoDgB,eAAM;QACM,wCAAkB;QAClC,oBAAQ;GArDpB,gBAAgB,CAuD5B","sourcesContent":["import {GetObjectCommand, PutObjectCommand, S3Client} from '@aws-sdk/client-s3';\nimport {Injectable, Logger} from '@nestjs/common';\nimport {readFileSync, writeFileSync} from 'fs';\n\nimport {EnvironmentService} from '../../environment/services/environment-service';\n\n@Injectable()\nexport class S3StorageService {\n public async upload(filePath: string, key?: string) {\n try {\n const body = readFileSync(filePath);\n\n const command = new PutObjectCommand({\n Bucket: this.environmentService.storage.bucketName,\n Key: key ?? filePath,\n Body: body,\n ContentType: 'application/octet-stream',\n });\n\n await this.s3.send(command);\n\n this.logger.log('Uploaded file to S3');\n\n return {ok: true};\n } catch (error) {\n if (error instanceof Error) {\n return {ok: false, error};\n }\n\n return {ok: false, error: new Error('Error uploading file to S3')};\n }\n }\n\n public async download(key: string) {\n try {\n const command = new GetObjectCommand({\n Bucket: this.environmentService.storage.bucketName,\n Key: key,\n });\n\n const response = await this.s3.send(command);\n const bytes = await response.Body!.transformToByteArray();\n\n writeFileSync(key, bytes);\n\n this.logger.log('Downloaded file from S3');\n\n return {ok: true};\n } catch (error) {\n if (error instanceof Error) {\n return {ok: false, error};\n }\n\n return {ok: false, error: new Error('Error downloading file from S3')};\n }\n }\n\n constructor(\n private readonly logger: Logger,\n private readonly environmentService: EnvironmentService,\n private readonly s3: S3Client,\n ) {}\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import { ModuleMetadata } from '@nestjs/common';
2
+ export declare const storageModule: ModuleMetadata;
3
+ export declare class StorageModule {
4
+ }
5
+ //# sourceMappingURL=storage-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-module.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/storage/storage-module.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAK9D,eAAO,MAAM,aAAa,EAAE,cAW3B,CAAC;AAEF,qBACa,aAAa;CAAG"}
@@ -29,3 +29,4 @@ exports.StorageModule = StorageModule;
29
29
  exports.StorageModule = StorageModule = __decorate([
30
30
  (0, common_1.Module)(exports.storageModule)
31
31
  ], StorageModule);
32
+ //# sourceMappingURL=storage-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-module.js","sourceRoot":"","sources":["../../../../src/infrastructure/storage/storage-module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,kDAA4C;AAC5C,2CAA8D;AAE9D,0EAAoE;AACpE,sEAA+D;AAElD,QAAA,aAAa,GAAmB;IAC3C,OAAO,EAAE,CAAC,sCAAiB,CAAC;IAC5B,SAAS,EAAE;QACT,eAAM;QACN,qCAAgB;QAChB;YACE,OAAO,EAAE,oBAAQ;YACjB,QAAQ,EAAE,IAAI,oBAAQ,CAAC,EAAE,CAAC;SAC3B;KACF;IACD,OAAO,EAAE,CAAC,qCAAgB,CAAC;CAC5B,CAAC;AAGK,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,sCAAa;wBAAb,aAAa;IADzB,IAAA,eAAM,EAAC,qBAAa,CAAC;GACT,aAAa,CAAG","sourcesContent":["import {S3Client} from '@aws-sdk/client-s3';\nimport {Logger, Module, ModuleMetadata} from '@nestjs/common';\n\nimport {EnvironmentModule} from '../environment/environment-module';\nimport {S3StorageService} from './services/s3-storage-service';\n\nexport const storageModule: ModuleMetadata = {\n imports: [EnvironmentModule],\n providers: [\n Logger,\n S3StorageService,\n {\n provide: S3Client,\n useValue: new S3Client({}),\n },\n ],\n exports: [S3StorageService],\n};\n\n@Module(storageModule)\nexport class StorageModule {}\n"]}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import 'reflect-metadata';
3
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";AACA,OAAO,kBAAkB,CAAC"}
package/bin/src/main.js CHANGED
@@ -11,3 +11,4 @@ const bootstrap = async () => {
11
11
  await nest_commander_1.CommandFactory.runApplication(app);
12
12
  };
13
13
  void bootstrap();
14
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";;;AACA,4BAA0B;AAE1B,mDAA8C;AAC9C,6CAAiD;AAEjD,6DAAuD;AAEvD,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;IAC3B,MAAM,GAAG,GAAG,MAAM,+BAAc,CAAC,oBAAoB,CAAC,sBAAS,CAAC,CAAC;IAEjE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAU,CAAC,CAAC,CAAC;IAEnC,MAAM,+BAAc,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF,KAAK,SAAS,EAAE,CAAC","sourcesContent":["#!/usr/bin/env node\nimport 'reflect-metadata';\n\nimport {CommandFactory} from 'nest-commander';\nimport {Logger as PinoLogger} from 'nestjs-pino';\n\nimport {CliModule} from './application/cli/cli-module';\n\nconst bootstrap = async () => {\n const app = await CommandFactory.createWithoutRunning(CliModule);\n\n app.useLogger(app.get(PinoLogger));\n\n await CommandFactory.runApplication(app);\n};\n\nvoid bootstrap();\n"]}