@hed-hog/cli 0.0.12

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 (116) hide show
  1. package/README.md +98 -0
  2. package/dist/scripts/deploy.d.ts +1 -0
  3. package/dist/scripts/deploy.js +84 -0
  4. package/dist/scripts/deploy.js.map +1 -0
  5. package/dist/src/app.module.d.ts +2 -0
  6. package/dist/src/app.module.js +58 -0
  7. package/dist/src/app.module.js.map +1 -0
  8. package/dist/src/commands/add.command.d.ts +14 -0
  9. package/dist/src/commands/add.command.js +58 -0
  10. package/dist/src/commands/add.command.js.map +1 -0
  11. package/dist/src/commands/dev.command/backupdb.subcommand.d.ts +10 -0
  12. package/dist/src/commands/dev.command/backupdb.subcommand.js +47 -0
  13. package/dist/src/commands/dev.command/backupdb.subcommand.js.map +1 -0
  14. package/dist/src/commands/dev.command/create-library.subcommand.d.ts +15 -0
  15. package/dist/src/commands/dev.command/create-library.subcommand.js +88 -0
  16. package/dist/src/commands/dev.command/create-library.subcommand.js.map +1 -0
  17. package/dist/src/commands/dev.command/hash-directory.subcommand.d.ts +12 -0
  18. package/dist/src/commands/dev.command/hash-directory.subcommand.js +70 -0
  19. package/dist/src/commands/dev.command/hash-directory.subcommand.js.map +1 -0
  20. package/dist/src/commands/dev.command/initdb.subcommand.d.ts +10 -0
  21. package/dist/src/commands/dev.command/initdb.subcommand.js +47 -0
  22. package/dist/src/commands/dev.command/initdb.subcommand.js.map +1 -0
  23. package/dist/src/commands/dev.command/reset.subcommand.d.ts +10 -0
  24. package/dist/src/commands/dev.command/reset.subcommand.js +47 -0
  25. package/dist/src/commands/dev.command/reset.subcommand.js.map +1 -0
  26. package/dist/src/commands/dev.command/restoredb.subcommand.d.ts +10 -0
  27. package/dist/src/commands/dev.command/restoredb.subcommand.js +47 -0
  28. package/dist/src/commands/dev.command/restoredb.subcommand.js.map +1 -0
  29. package/dist/src/commands/dev.command/route.subcommand.d.ts +10 -0
  30. package/dist/src/commands/dev.command/route.subcommand.js +47 -0
  31. package/dist/src/commands/dev.command/route.subcommand.js.map +1 -0
  32. package/dist/src/commands/dev.command/tsconfig.subcommand.d.ts +10 -0
  33. package/dist/src/commands/dev.command/tsconfig.subcommand.js +47 -0
  34. package/dist/src/commands/dev.command/tsconfig.subcommand.js.map +1 -0
  35. package/dist/src/commands/dev.command.d.ts +4 -0
  36. package/dist/src/commands/dev.command.js +40 -0
  37. package/dist/src/commands/dev.command.js.map +1 -0
  38. package/dist/src/commands/new.command.d.ts +43 -0
  39. package/dist/src/commands/new.command.js +436 -0
  40. package/dist/src/commands/new.command.js.map +1 -0
  41. package/dist/src/functions/to-pascal-case.d.ts +1 -0
  42. package/dist/src/functions/to-pascal-case.js +10 -0
  43. package/dist/src/functions/to-pascal-case.js.map +1 -0
  44. package/dist/src/main.d.ts +2 -0
  45. package/dist/src/main.js +10 -0
  46. package/dist/src/main.js.map +1 -0
  47. package/dist/src/modules/database/database.module.d.ts +2 -0
  48. package/dist/src/modules/database/database.module.js +22 -0
  49. package/dist/src/modules/database/database.module.js.map +1 -0
  50. package/dist/src/modules/database/database.service.d.ts +14 -0
  51. package/dist/src/modules/database/database.service.js +186 -0
  52. package/dist/src/modules/database/database.service.js.map +1 -0
  53. package/dist/src/modules/developer/developer.module.d.ts +2 -0
  54. package/dist/src/modules/developer/developer.module.js +22 -0
  55. package/dist/src/modules/developer/developer.module.js.map +1 -0
  56. package/dist/src/modules/developer/developer.service.d.ts +37 -0
  57. package/dist/src/modules/developer/developer.service.js +900 -0
  58. package/dist/src/modules/developer/developer.service.js.map +1 -0
  59. package/dist/src/modules/git/git.module.d.ts +2 -0
  60. package/dist/src/modules/git/git.module.js +23 -0
  61. package/dist/src/modules/git/git.module.js.map +1 -0
  62. package/dist/src/modules/git/git.service.d.ts +8 -0
  63. package/dist/src/modules/git/git.service.js +67 -0
  64. package/dist/src/modules/git/git.service.js.map +1 -0
  65. package/dist/src/modules/hedhog/hedhog.module.d.ts +2 -0
  66. package/dist/src/modules/hedhog/hedhog.module.js +41 -0
  67. package/dist/src/modules/hedhog/hedhog.module.js.map +1 -0
  68. package/dist/src/modules/hedhog/hedhog.service.d.ts +44 -0
  69. package/dist/src/modules/hedhog/hedhog.service.js +350 -0
  70. package/dist/src/modules/hedhog/hedhog.service.js.map +1 -0
  71. package/dist/src/modules/hedhog/services/file-system.service.d.ts +22 -0
  72. package/dist/src/modules/hedhog/services/file-system.service.js +230 -0
  73. package/dist/src/modules/hedhog/services/file-system.service.js.map +1 -0
  74. package/dist/src/modules/hedhog/services/migration.service.d.ts +39 -0
  75. package/dist/src/modules/hedhog/services/migration.service.js +767 -0
  76. package/dist/src/modules/hedhog/services/migration.service.js.map +1 -0
  77. package/dist/src/modules/hedhog/services/module.service.d.ts +10 -0
  78. package/dist/src/modules/hedhog/services/module.service.js +135 -0
  79. package/dist/src/modules/hedhog/services/module.service.js.map +1 -0
  80. package/dist/src/modules/hedhog/services/table.service.d.ts +49 -0
  81. package/dist/src/modules/hedhog/services/table.service.js +432 -0
  82. package/dist/src/modules/hedhog/services/table.service.js.map +1 -0
  83. package/dist/src/modules/hedhog/services/template.service.d.ts +13 -0
  84. package/dist/src/modules/hedhog/services/template.service.js +88 -0
  85. package/dist/src/modules/hedhog/services/template.service.js.map +1 -0
  86. package/dist/src/modules/package/package.module.d.ts +2 -0
  87. package/dist/src/modules/package/package.module.js +23 -0
  88. package/dist/src/modules/package/package.module.js.map +1 -0
  89. package/dist/src/modules/package/package.service.d.ts +9 -0
  90. package/dist/src/modules/package/package.service.js +94 -0
  91. package/dist/src/modules/package/package.service.js.map +1 -0
  92. package/dist/src/modules/runner/runner.module.d.ts +2 -0
  93. package/dist/src/modules/runner/runner.module.js +23 -0
  94. package/dist/src/modules/runner/runner.module.js.map +1 -0
  95. package/dist/src/modules/runner/runner.service.d.ts +14 -0
  96. package/dist/src/modules/runner/runner.service.js +69 -0
  97. package/dist/src/modules/runner/runner.service.js.map +1 -0
  98. package/dist/src/questions/database.question.d.ts +12 -0
  99. package/dist/src/questions/database.question.js +61 -0
  100. package/dist/src/questions/database.question.js.map +1 -0
  101. package/dist/src/questions/project-name.question.d.ts +3 -0
  102. package/dist/src/questions/project-name.question.js +34 -0
  103. package/dist/src/questions/project-name.question.js.map +1 -0
  104. package/dist/templates/database/touch_updated_at.sql.ejs +9 -0
  105. package/dist/templates/database/trg_touch_updated_at.sql.ejs +2 -0
  106. package/dist/templates/library/.eslintrc.js.ejs +9 -0
  107. package/dist/templates/library/.prettierrc.js.ejs +4 -0
  108. package/dist/templates/library/index.ts.ejs +1 -0
  109. package/dist/templates/library/init.app.module.ts.ejs +25 -0
  110. package/dist/templates/library/init.package.json.ejs +61 -0
  111. package/dist/templates/library/module.ts.ejs +15 -0
  112. package/dist/templates/library/package.json.ejs +36 -0
  113. package/dist/templates/library/tsconfig.json.ejs +11 -0
  114. package/dist/templates/library/tsconfig.production.json.ejs +46 -0
  115. package/dist/tsconfig.build.tsbuildinfo +1 -0
  116. package/package.json +104 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"developer.service.js","sourceRoot":"","sources":["../../../../src/modules/developer/developer.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare class GitModule {
2
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.GitModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const git_service_1 = require("./git.service");
12
+ let GitModule = class GitModule {
13
+ };
14
+ exports.GitModule = GitModule;
15
+ exports.GitModule = GitModule = __decorate([
16
+ (0, common_1.Global)(),
17
+ (0, common_1.Module)({
18
+ imports: [],
19
+ providers: [git_service_1.GitService],
20
+ exports: [git_service_1.GitService],
21
+ })
22
+ ], GitModule);
23
+ //# sourceMappingURL=git.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.module.js","sourceRoot":"","sources":["../../../../src/modules/git/git.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,+CAA2C;AAQpC,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IANrB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,CAAC,wBAAU,CAAC;QACvB,OAAO,EAAE,CAAC,wBAAU,CAAC;KACtB,CAAC;GACW,SAAS,CAAG"}
@@ -0,0 +1,8 @@
1
+ import { RunnerService } from '../runner/runner.service';
2
+ export declare class GitService {
3
+ private readonly runService;
4
+ constructor(runService: RunnerService);
5
+ clone(repoName: string, name: string, overwrite?: boolean): Promise<boolean>;
6
+ removeGitFolder(path: string): Promise<void>;
7
+ init(path: string): Promise<void>;
8
+ }
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.GitService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const runner_service_1 = require("../runner/runner.service");
15
+ const promises_1 = require("fs/promises");
16
+ const fs_1 = require("fs");
17
+ let GitService = class GitService {
18
+ runService;
19
+ constructor(runService) {
20
+ this.runService = runService;
21
+ }
22
+ async clone(repoName, name, overwrite = false) {
23
+ if ((0, fs_1.existsSync)(name)) {
24
+ if (overwrite) {
25
+ await (0, promises_1.rm)(name, { recursive: true, force: true });
26
+ }
27
+ else {
28
+ throw new Error(`A folder with the name "${name}" already exists. Process stopped.`);
29
+ }
30
+ }
31
+ const user = 'hed-hog';
32
+ const repoUrl = `https://github.com/${user}/${repoName}.git`;
33
+ try {
34
+ await this.runService.executeCommand(runner_service_1.ProgramName.GIT, ['clone', repoUrl, name], {}, true);
35
+ return true;
36
+ }
37
+ catch (error) {
38
+ console.error(`Error cloning repository: ${error.message}`);
39
+ throw error;
40
+ }
41
+ }
42
+ async removeGitFolder(path) {
43
+ const gitFolderPath = `${path}/.git`;
44
+ try {
45
+ await (0, promises_1.rm)(gitFolderPath, { recursive: true, force: true });
46
+ }
47
+ catch (error) {
48
+ throw error;
49
+ }
50
+ }
51
+ async init(path) {
52
+ try {
53
+ await this.runService.executeCommand(runner_service_1.ProgramName.GIT, ['init'], {
54
+ cwd: path,
55
+ }, true);
56
+ }
57
+ catch (error) {
58
+ throw error;
59
+ }
60
+ }
61
+ };
62
+ exports.GitService = GitService;
63
+ exports.GitService = GitService = __decorate([
64
+ (0, common_1.Injectable)(),
65
+ __metadata("design:paramtypes", [runner_service_1.RunnerService])
66
+ ], GitService);
67
+ //# sourceMappingURL=git.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.service.js","sourceRoot":"","sources":["../../../../src/modules/git/git.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6DAAsE;AACtE,0CAAiC;AACjC,2BAAgC;AAGzB,IAAM,UAAU,GAAhB,MAAM,UAAU;IACQ;IAA7B,YAA6B,UAAyB;QAAzB,eAAU,GAAV,UAAU,CAAe;IAAG,CAAC;IAC1D,KAAK,CAAC,KAAK,CACT,QAAgB,EAChB,IAAY,EACZ,SAAS,GAAG,KAAK;QAEjB,IAAI,IAAA,eAAU,EAAC,IAAI,CAAC,EAAE,CAAC;YACrB,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,IAAA,aAAE,EAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CACb,2BAA2B,IAAI,oCAAoC,CACpE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,SAAS,CAAC;QACvB,MAAM,OAAO,GAAG,sBAAsB,IAAI,IAAI,QAAQ,MAAM,CAAC;QAE7D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAClC,4BAAW,CAAC,GAAG,EACf,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EACxB,EAAE,EACF,IAAI,CACL,CAAC;YAEF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAY;QAChC,MAAM,aAAa,GAAG,GAAG,IAAI,OAAO,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,IAAA,aAAE,EAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY;QACrB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAClC,4BAAW,CAAC,GAAG,EACf,CAAC,MAAM,CAAC,EACR;gBACE,GAAG,EAAE,IAAI;aACV,EACD,IAAI,CACL,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AA3DY,gCAAU;qBAAV,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAE8B,8BAAa;GAD3C,UAAU,CA2DtB"}
@@ -0,0 +1,2 @@
1
+ export declare class HedHogModule {
2
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.HedHogModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const hedhog_service_1 = require("./hedhog.service");
12
+ const file_system_service_1 = require("./services/file-system.service");
13
+ const table_service_1 = require("./services/table.service");
14
+ const migration_service_1 = require("./services/migration.service");
15
+ const template_service_1 = require("./services/template.service");
16
+ const module_service_1 = require("./services/module.service");
17
+ let HedHogModule = class HedHogModule {
18
+ };
19
+ exports.HedHogModule = HedHogModule;
20
+ exports.HedHogModule = HedHogModule = __decorate([
21
+ (0, common_1.Global)(),
22
+ (0, common_1.Module)({
23
+ providers: [
24
+ file_system_service_1.FileSystemService,
25
+ table_service_1.TableService,
26
+ migration_service_1.MigrationService,
27
+ template_service_1.TemplateService,
28
+ hedhog_service_1.HedHogService,
29
+ module_service_1.ModuleService,
30
+ ],
31
+ exports: [
32
+ file_system_service_1.FileSystemService,
33
+ table_service_1.TableService,
34
+ migration_service_1.MigrationService,
35
+ template_service_1.TemplateService,
36
+ hedhog_service_1.HedHogService,
37
+ module_service_1.ModuleService,
38
+ ],
39
+ })
40
+ ], HedHogModule);
41
+ //# sourceMappingURL=hedhog.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hedhog.module.js","sourceRoot":"","sources":["../../../../src/modules/hedhog/hedhog.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,qDAAiD;AACjD,wEAAmE;AACnE,4DAAwD;AACxD,oEAAgE;AAChE,kEAA8D;AAC9D,8DAA0D;AAqBnD,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IAnBxB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,SAAS,EAAE;YACT,uCAAiB;YACjB,4BAAY;YACZ,oCAAgB;YAChB,kCAAe;YACf,8BAAa;YACb,8BAAa;SACd;QACD,OAAO,EAAE;YACP,uCAAiB;YACjB,4BAAY;YACZ,oCAAgB;YAChB,kCAAe;YACf,8BAAa;YACb,8BAAa;SACd;KACF,CAAC;GACW,YAAY,CAAG"}
@@ -0,0 +1,44 @@
1
+ import { DeveloperService } from '../developer/developer.service';
2
+ import { PackageService } from '../package/package.service';
3
+ import { RunnerService } from '../runner/runner.service';
4
+ import { FileSystemService } from './services/file-system.service';
5
+ import { MigrationService } from './services/migration.service';
6
+ import { ModuleService } from './services/module.service';
7
+ import { TemplateService } from './services/template.service';
8
+ export declare class HedHogService {
9
+ private readonly packageService;
10
+ private readonly developer;
11
+ private readonly runner;
12
+ private readonly fileSystem;
13
+ private readonly moduleService;
14
+ private readonly migrationService;
15
+ private readonly templateService;
16
+ private rootDirectory;
17
+ private readonly packFileName;
18
+ private readonly userName;
19
+ private verbose;
20
+ private readonly hedHogFileName;
21
+ constructor(packageService: PackageService, developer: DeveloperService, runner: RunnerService, fileSystem: FileSystemService, moduleService: ModuleService, migrationService: MigrationService, templateService: TemplateService);
22
+ getHedHogFile(path: string): Promise<Record<string, any>>;
23
+ setHedHogFile(path: string, data: Record<string, any>): Promise<void>;
24
+ exists(filePath: string): Promise<boolean>;
25
+ remove(path: string): Promise<void>;
26
+ isHedHogRepo(path: string): Promise<boolean>;
27
+ parseEnvFile(filePath: string): Promise<Record<string, string>>;
28
+ setEnvFileVariable(filePath: string, data: Record<string, string>): Promise<void>;
29
+ createDockerComposeFile(filePath: string, data: Record<string, any>): Promise<void>;
30
+ log(...args: any[]): void;
31
+ alreadyInstalled(name: string, cwd?: string): Promise<any>;
32
+ checkDependencies(name: string, cwd?: string, verbose?: boolean, skipInstall?: boolean, eventEmitter?: any): Promise<string[]>;
33
+ add(name: string, verbose: boolean, cwd?: string, skipInstall?: boolean): Promise<void>;
34
+ private addInstalledLibrary;
35
+ private downloadAndExtractLibrary;
36
+ private updateConfigurations;
37
+ private installAndDeploy;
38
+ private updateApiPackageJson;
39
+ private updateDependenciesToWorkspace;
40
+ createMigrations(name: string, cwd?: string): Promise<void>;
41
+ getDefaultValue(column: any): string;
42
+ getWhereString(where: Record<string, any>): string;
43
+ toSnackCase(str: string): string;
44
+ }
@@ -0,0 +1,350 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.HedHogService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const chalk = require("chalk");
15
+ const promises_1 = require("fs/promises");
16
+ const ora = require("ora");
17
+ const path_1 = require("path");
18
+ const stream_1 = require("stream");
19
+ const developer_service_1 = require("../developer/developer.service");
20
+ const package_service_1 = require("../package/package.service");
21
+ const runner_service_1 = require("../runner/runner.service");
22
+ const file_system_service_1 = require("./services/file-system.service");
23
+ const migration_service_1 = require("./services/migration.service");
24
+ const module_service_1 = require("./services/module.service");
25
+ const template_service_1 = require("./services/template.service");
26
+ let HedHogService = class HedHogService {
27
+ packageService;
28
+ developer;
29
+ runner;
30
+ fileSystem;
31
+ moduleService;
32
+ migrationService;
33
+ templateService;
34
+ rootDirectory = process.cwd();
35
+ packFileName = 'package.tgz';
36
+ userName = '@hed-hog';
37
+ verbose = false;
38
+ hedHogFileName = 'hedhog.json';
39
+ constructor(packageService, developer, runner, fileSystem, moduleService, migrationService, templateService) {
40
+ this.packageService = packageService;
41
+ this.developer = developer;
42
+ this.runner = runner;
43
+ this.fileSystem = fileSystem;
44
+ this.moduleService = moduleService;
45
+ this.migrationService = migrationService;
46
+ this.templateService = templateService;
47
+ }
48
+ // HedHog file management
49
+ async getHedHogFile(path) {
50
+ try {
51
+ const filePath = (0, path_1.join)(path, this.hedHogFileName);
52
+ return await this.fileSystem.readJsonFile(filePath);
53
+ }
54
+ catch (error) {
55
+ console.error(chalk.red(`Error reading HedHog file: ${error.message}`));
56
+ throw error;
57
+ }
58
+ }
59
+ async setHedHogFile(path, data) {
60
+ try {
61
+ const filePath = (0, path_1.join)(path, this.hedHogFileName);
62
+ let currentData = {};
63
+ if (await this.fileSystem.exists(filePath)) {
64
+ currentData = await this.getHedHogFile(path);
65
+ }
66
+ const newData = { ...currentData, ...data };
67
+ await this.fileSystem.writeJsonFile(filePath, newData);
68
+ this.log(chalk.green(`HedHog file updated successfully at ${path}`));
69
+ }
70
+ catch (error) {
71
+ console.error(chalk.red(`Error updating HedHog file: ${error.message}`));
72
+ throw error;
73
+ }
74
+ }
75
+ // File system utilities (delegated)
76
+ async exists(filePath) {
77
+ return await this.fileSystem.exists(filePath);
78
+ }
79
+ async remove(path) {
80
+ return await this.fileSystem.remove(path);
81
+ }
82
+ async isHedHogRepo(path) {
83
+ try {
84
+ return await this.fileSystem.exists((0, path_1.join)(path, this.hedHogFileName));
85
+ }
86
+ catch (error) {
87
+ console.error(chalk.red(`Error checking HedHog repo: ${error.message}`));
88
+ return false;
89
+ }
90
+ }
91
+ // Environment file utilities (delegated)
92
+ async parseEnvFile(filePath) {
93
+ return await this.fileSystem.parseEnvFile(filePath);
94
+ }
95
+ async setEnvFileVariable(filePath, data) {
96
+ return await this.fileSystem.setEnvFileVariable(filePath, data);
97
+ }
98
+ async createDockerComposeFile(filePath, data) {
99
+ return await this.fileSystem.writeYamlFile(filePath, data);
100
+ }
101
+ // Logging
102
+ log(...args) {
103
+ if (this.verbose) {
104
+ console.info('\n', ...args);
105
+ }
106
+ }
107
+ // Library management
108
+ async alreadyInstalled(name, cwd = process.cwd()) {
109
+ const hedhogFile = await this.getHedHogFile(cwd);
110
+ return hedhogFile.libraries.includes(name);
111
+ }
112
+ async checkDependencies(name, cwd = process.cwd(), verbose = false, skipInstall = false, eventEmitter) {
113
+ this.log(`Checking dependencies for ${name}...`);
114
+ if (eventEmitter) {
115
+ eventEmitter.emit('change', {
116
+ message: `Checking dependencies for ${name}...`,
117
+ });
118
+ }
119
+ const packageJsonPath = (0, path_1.resolve)(cwd, `./libraries/${name}`);
120
+ const packageJson = await this.packageService.getContent(packageJsonPath);
121
+ const dependencies = [];
122
+ if (packageJson.dependencies) {
123
+ for (const dep of Object.keys(packageJson.dependencies)) {
124
+ const isHedHogLib = dep.startsWith('@hed-hog/');
125
+ const isExcluded = dep.startsWith('@hed-hog/api') || dep.startsWith('@hed-hog/types');
126
+ const isInstalled = await this.alreadyInstalled(dep, cwd);
127
+ if (isHedHogLib && !isExcluded && !isInstalled) {
128
+ this.log(`Dependency ${dep} not installed, adding to install list.`);
129
+ dependencies.push(dep.replace('@hed-hog/', ''));
130
+ }
131
+ }
132
+ }
133
+ for (const dep of dependencies) {
134
+ if (eventEmitter) {
135
+ eventEmitter.emit('change', { message: `Checking dependency: ${dep}` });
136
+ }
137
+ this.log(`Installing dependency: ${dep}`);
138
+ await this.add(dep, verbose, (0, path_1.resolve)(this.rootDirectory), skipInstall);
139
+ if (eventEmitter) {
140
+ eventEmitter.emit('change', {
141
+ message: `Dependency installed: ${dep}`,
142
+ });
143
+ }
144
+ }
145
+ return dependencies;
146
+ }
147
+ // Main add functionality
148
+ async add(name, verbose, cwd = process.cwd(), skipInstall = false) {
149
+ const startAt = Date.now();
150
+ this.verbose = verbose;
151
+ if (await this.alreadyInstalled(name, cwd)) {
152
+ this.log(chalk.blue(`Library ${name} is already installed. Skipping.`));
153
+ return;
154
+ }
155
+ this.log(`Adding library: ${name}`);
156
+ const spinner = ora();
157
+ spinner.start(`Adding library: ${name}`);
158
+ try {
159
+ const eventEmitter = new stream_1.EventEmitter();
160
+ eventEmitter.addListener('change', (data) => {
161
+ spinner.succeed(data.message);
162
+ });
163
+ eventEmitter.addListener('error', (data) => {
164
+ spinner.fail(data.message);
165
+ });
166
+ spinner.text = `Downloading library: ${name}`;
167
+ // Download and extract library
168
+ await this.downloadAndExtractLibrary(name, cwd);
169
+ spinner.succeed(`Library ${name} downloaded successfully.`);
170
+ // Process dependencies
171
+ await this.checkDependencies(name, cwd, verbose, true, eventEmitter);
172
+ spinner.succeed(`Dependencies processed for ${name} successfully.`);
173
+ spinner.start(`Updating Tsconfig for ${name}...`);
174
+ // Update configurations
175
+ await this.updateConfigurations(name, cwd);
176
+ spinner.succeed(`Tsconfig updated for ${name}.`);
177
+ spinner.start(`Creating migrations for ${name}...`);
178
+ // Create migrations
179
+ await this.migrationService.createMigrations(name, cwd, verbose);
180
+ spinner.succeed(`Migrations created for ${name}.`);
181
+ spinner.start(`Updating AppModule for ${name}...`);
182
+ // Update module
183
+ await this.moduleService.update(name, cwd, verbose);
184
+ spinner.succeed(`AppModule updated for ${name}.`);
185
+ // Install and deploy if not skipped
186
+ if (!skipInstall) {
187
+ spinner.start(`Installing and deploying for ${name}...`);
188
+ await this.installAndDeploy(name, cwd, spinner);
189
+ spinner.succeed(`Installation and deployment completed for ${name}.`);
190
+ }
191
+ else {
192
+ spinner.info(`Skipping installation and deployment for ${name}.`);
193
+ }
194
+ await this.addInstalledLibrary(name, cwd);
195
+ spinner.succeed(`All steps completed for ${name} successfully.`);
196
+ spinner.info(`Total time: ${(Date.now() - startAt) / 1000} seconds`);
197
+ this.log(chalk.green(`Successfully added library: ${name}`));
198
+ }
199
+ catch (error) {
200
+ spinner.fail(`Error adding library ${name}: ${error.message}`);
201
+ console.error(chalk.red(`Error adding library ${name}: ${error.message}`));
202
+ console.error(error);
203
+ throw error;
204
+ }
205
+ }
206
+ async addInstalledLibrary(name, cwd) {
207
+ this.log(`Adding ${name} to hedhog.json installed libraries...`);
208
+ const hedhogFile = await this.getHedHogFile(cwd);
209
+ this.log('Current content of hedhog.json loaded');
210
+ if (!(hedhogFile.libraries instanceof Array)) {
211
+ this.log(`Initializing libraries array in hedhog.json...`);
212
+ hedhogFile.libraries = [];
213
+ }
214
+ hedhogFile.libraries.push(name);
215
+ this.log(`Added ${name} to libraries array in hedhog.json.`);
216
+ await this.setHedHogFile(cwd, hedhogFile);
217
+ this.log(`hedhog.json updated successfully with ${name}.`);
218
+ }
219
+ async downloadAndExtractLibrary(name, cwd) {
220
+ this.log(`Downloading library: ${name}`);
221
+ const version = await this.packageService.getLatestVersion(`${this.userName}/${name}`);
222
+ if (version) {
223
+ this.log(`Latest version for ${name} is ${version}`);
224
+ const libraryPath = (0, path_1.resolve)(cwd, `./libraries/${name}`);
225
+ const tarPath = await this.packageService.downloadTar(this.userName, name, version, libraryPath);
226
+ this.log(`Downloaded tar file to: ${tarPath}`);
227
+ await this.fileSystem.unpackTarFile((0, path_1.join)(libraryPath, this.packFileName), libraryPath);
228
+ this.log(`Unpacked library ${name} successfully`);
229
+ await (0, promises_1.unlink)(tarPath);
230
+ this.log(`Removed tar file: ${this.packFileName}`);
231
+ }
232
+ else {
233
+ this.log(`Could not find latest version for ${name}. Aborting download.`);
234
+ }
235
+ }
236
+ async updateConfigurations(name, cwd) {
237
+ this.log(`Updating configurations for ${name}...`);
238
+ // Update dependencies to workspace
239
+ await this.updateDependenciesToWorkspace(name, cwd);
240
+ // Update API package.json
241
+ await this.updateApiPackageJson(name, cwd);
242
+ // Copy template files
243
+ await this.templateService.copyTemplateFiles(name, cwd, this.verbose);
244
+ // Update TypeScript configurations
245
+ await this.developer.updateTsconfigFiles(cwd);
246
+ this.log(`Configurations updated for ${name}`);
247
+ }
248
+ async installAndDeploy(name, cwd, spinner) {
249
+ this.log(`Installing dependencies for ${name} on ${cwd}...`);
250
+ await this.runner.exec(runner_service_1.ProgramName.PNPM, ['install'], {
251
+ cwd,
252
+ });
253
+ spinner.succeed(`Dependencies installed for ${name}.`);
254
+ try {
255
+ spinner.start(`Deploying Prisma migrations for ${name}...`);
256
+ await this.runner.exec(runner_service_1.ProgramName.PNPM, ['prisma:deploy'], {
257
+ cwd: (0, path_1.join)(cwd, 'apps', 'api'),
258
+ });
259
+ spinner.succeed(`Deployed Prisma migrations for ${name}.`);
260
+ this.log(`Deployed Prisma migrations for ${name}.`);
261
+ }
262
+ catch (error) {
263
+ spinner.fail(`Error during prisma migrate deploy for ${name}.`);
264
+ console.error('Error during prisma migrate deploy:', error);
265
+ // Continue with the next command even if this one fails
266
+ }
267
+ try {
268
+ spinner.start(`Updating Prisma schema for ${name}...`);
269
+ await this.runner.exec(runner_service_1.ProgramName.PNPM, ['run', 'prisma:update'], {
270
+ cwd: (0, path_1.join)(cwd, 'apps', 'api'),
271
+ });
272
+ spinner.succeed(`Updated Prisma schema for ${name}.`);
273
+ }
274
+ catch (error) {
275
+ spinner.fail(`Error during prisma:update for ${name}.`);
276
+ console.error('Error during prisma:update:', error);
277
+ }
278
+ this.log(`Updated Prisma schema for ${name}.`);
279
+ }
280
+ async updateApiPackageJson(name, cwd = process.cwd()) {
281
+ this.log(`Updating API package.json for ${name}...`);
282
+ const packageJson = await this.packageService.getContent((0, path_1.resolve)(cwd, './apps/api'));
283
+ packageJson.dependencies = packageJson.dependencies || {};
284
+ const fullName = `${this.userName}/${name}`;
285
+ if (!packageJson.dependencies[fullName]) {
286
+ packageJson.dependencies[fullName] = 'workspace:*';
287
+ this.log(`Added ${fullName} to API dependencies.`);
288
+ }
289
+ else {
290
+ this.log(`${fullName} already exists in API dependencies.`);
291
+ }
292
+ await this.packageService.setContent((0, path_1.resolve)(cwd, './apps/api'), packageJson);
293
+ this.log(`Updated API package.json for ${name}.`);
294
+ }
295
+ async updateDependenciesToWorkspace(name, cwd = process.cwd()) {
296
+ this.log(`Changing dependencies to workspace for ${name}...`);
297
+ const packageJson = await this.packageService.getContent((0, path_1.resolve)(cwd, `./libraries/${name}`));
298
+ let changed = false;
299
+ const updateDeps = (deps, depType) => {
300
+ if (!deps)
301
+ return;
302
+ for (const depName in deps) {
303
+ if (depName.startsWith(`${this.userName}/`)) {
304
+ deps[depName] = 'workspace:*';
305
+ changed = true;
306
+ this.log(`Updated ${depType} ${depName} to workspace:*`);
307
+ }
308
+ }
309
+ };
310
+ updateDeps(packageJson.dependencies, 'dependency');
311
+ updateDeps(packageJson.devDependencies, 'devDependency');
312
+ updateDeps(packageJson.peerDependencies, 'peerDependency');
313
+ if (changed) {
314
+ await this.packageService.setContent((0, path_1.resolve)(cwd, `./libraries/${name}`), packageJson);
315
+ this.log(`Saved updated package.json for ${name}`);
316
+ }
317
+ else {
318
+ this.log(`No @hed-hog/ dependencies to update for ${name}`);
319
+ }
320
+ }
321
+ // Legacy methods that delegate to migration service
322
+ async createMigrations(name, cwd = process.cwd()) {
323
+ return await this.migrationService.createMigrations(name, cwd, this.verbose);
324
+ }
325
+ getDefaultValue(column) {
326
+ return this.migrationService.getDefaultValue(column);
327
+ }
328
+ getWhereString(where) {
329
+ return this.migrationService.getWhereString(where);
330
+ }
331
+ // Utility methods
332
+ toSnackCase(str) {
333
+ return str
334
+ .split(/[-_ ]/)
335
+ .map((word) => word.toLowerCase())
336
+ .join('_');
337
+ }
338
+ };
339
+ exports.HedHogService = HedHogService;
340
+ exports.HedHogService = HedHogService = __decorate([
341
+ (0, common_1.Injectable)(),
342
+ __metadata("design:paramtypes", [package_service_1.PackageService,
343
+ developer_service_1.DeveloperService,
344
+ runner_service_1.RunnerService,
345
+ file_system_service_1.FileSystemService,
346
+ module_service_1.ModuleService,
347
+ migration_service_1.MigrationService,
348
+ template_service_1.TemplateService])
349
+ ], HedHogService);
350
+ //# sourceMappingURL=hedhog.service.js.map