@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,432 @@
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.TableService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const chalk = require("chalk");
15
+ const fs_1 = require("fs");
16
+ const path_1 = require("path");
17
+ const package_service_1 = require("../../package/package.service");
18
+ const file_system_service_1 = require("./file-system.service");
19
+ let TableService = class TableService {
20
+ fileSystem;
21
+ packageService;
22
+ verbose = false;
23
+ cache = {};
24
+ constructor(fileSystem, packageService) {
25
+ this.fileSystem = fileSystem;
26
+ this.packageService = packageService;
27
+ }
28
+ log(message) {
29
+ if (this.verbose) {
30
+ console.info('\n', message);
31
+ }
32
+ }
33
+ async getAllLibraries(cwd = process.cwd()) {
34
+ const librariesPath = (0, path_1.resolve)(cwd, './libraries');
35
+ return await this.fileSystem.getAllDirectories(librariesPath);
36
+ }
37
+ async getTableFromYaml(name, cwd = process.cwd()) {
38
+ const librariesPath = (0, path_1.resolve)(cwd, './libraries');
39
+ const libraries = await this.getAllLibraries(cwd);
40
+ for (const libName of libraries) {
41
+ const tableDir = (0, path_1.join)(librariesPath, libName, 'hedhog', 'table');
42
+ const files = await this.fileSystem.getYamlFiles(tableDir);
43
+ for (const file of files) {
44
+ const base = this.fileSystem.getFileNameWithoutExtension(file);
45
+ const nameBase = this.fileSystem.getFileNameWithoutExtension(name);
46
+ if (base === nameBase) {
47
+ const filePath = (0, path_1.join)(tableDir, file);
48
+ return await this.fileSystem.readYamlFile(filePath);
49
+ }
50
+ }
51
+ }
52
+ throw new Error(`Table definition for "${name}" not found in any library.`);
53
+ }
54
+ async getTableIntermediate(tableName1, tableName2, cwd = process.cwd()) {
55
+ const librariesPath = (0, path_1.resolve)(cwd, './libraries');
56
+ const libraries = await this.getAllLibraries(cwd);
57
+ // First pass: Look for tables with both references
58
+ for (const libName of libraries) {
59
+ const tableDir = (0, path_1.join)(librariesPath, libName, 'hedhog', 'table');
60
+ const files = await this.fileSystem.getYamlFiles(tableDir);
61
+ for (const file of files) {
62
+ const filePath = (0, path_1.join)(tableDir, file);
63
+ const table = await this.fileSystem.readYamlFile(filePath);
64
+ const columns = table.columns.filter((c) => c.references &&
65
+ (c.references.table === tableName1 ||
66
+ c.references.table === tableName2));
67
+ if (columns.length === 2) {
68
+ return {
69
+ intermediateTable: true,
70
+ name: this.fileSystem.getFileNameWithoutExtension(file),
71
+ table,
72
+ };
73
+ }
74
+ }
75
+ }
76
+ // Second pass: Look for tables that reference only tableName1
77
+ for (const libName of libraries) {
78
+ const tableDir = (0, path_1.join)(librariesPath, libName, 'hedhog', 'table');
79
+ const files = await this.fileSystem.getYamlFiles(tableDir);
80
+ for (const file of files) {
81
+ if (this.fileSystem.getFileNameWithoutExtension(file) === tableName2) {
82
+ const filePath = (0, path_1.join)(tableDir, file);
83
+ const table = await this.fileSystem.readYamlFile(filePath);
84
+ const columns = table.columns.filter((c) => c.references && c.references.table === tableName1);
85
+ if (columns.length === 1) {
86
+ return {
87
+ intermediateTable: false,
88
+ name: this.fileSystem.getFileNameWithoutExtension(file),
89
+ table,
90
+ };
91
+ }
92
+ }
93
+ }
94
+ }
95
+ console.error(`No intermediate table found for ${tableName1} and ${tableName2}.`);
96
+ return null;
97
+ }
98
+ processColumns(tableName, columns) {
99
+ const localeColumns = columns.filter((c) => ['locale_varchar', 'locale_text'].includes(c.type));
100
+ const mainColumns = columns.filter((c) => !['locale_varchar', 'locale_text'].includes(c.type));
101
+ for (const column of mainColumns) {
102
+ if (column.type === undefined) {
103
+ this.log(`Column ${column.name} in table ${tableName} does not have a type defined. Defaulting to 'VARCHAR'.`);
104
+ column.type = 'VARCHAR';
105
+ }
106
+ else {
107
+ switch (column.type) {
108
+ case 'pk':
109
+ column.name = 'id';
110
+ column.isPrimaryKey = true;
111
+ column.isNullable = false;
112
+ break;
113
+ case 'slug':
114
+ column.name = 'slug';
115
+ column.isUnique = true;
116
+ column.isNullable = false;
117
+ column.type = 'VARCHAR';
118
+ column.length = 255;
119
+ break;
120
+ case 'order':
121
+ column.name = 'order';
122
+ column.isNullable = false;
123
+ column.type = 'INTEGER';
124
+ column.default = 0;
125
+ break;
126
+ case 'created_at':
127
+ column.name = 'created_at';
128
+ column.isNullable = false;
129
+ column.type = 'TIMESTAMPTZ';
130
+ column.default = 'now()';
131
+ break;
132
+ case 'updated_at':
133
+ column.name = 'updated_at';
134
+ column.isNullable = false;
135
+ column.type = 'TIMESTAMPTZ';
136
+ column.default = 'now()';
137
+ break;
138
+ }
139
+ }
140
+ }
141
+ return { mainColumns, localeColumns };
142
+ }
143
+ async loadTableFile(tablesPath, file, verbose = false) {
144
+ const ext = this.fileSystem.getFileExtension(file);
145
+ if (ext !== '.yaml' && ext !== '.yml')
146
+ return [];
147
+ const filePath = (0, path_1.join)(tablesPath, file);
148
+ this.log(`Processing file: ${file}`);
149
+ const parsed = await this.fileSystem.readYamlFile(filePath);
150
+ const tableName = this.fileSystem.getFileNameWithoutExtension(file);
151
+ const { mainColumns, localeColumns } = this.processColumns(tableName, parsed.columns || []);
152
+ // Collect dependencies from foreign key columns, excluding self-references.
153
+ const dependencies = mainColumns
154
+ .filter((c) => c.type === 'fk')
155
+ .map((r) => r.references.table)
156
+ .filter((dep) => dep !== tableName);
157
+ const tables = [];
158
+ // Push the main table definition.
159
+ tables.push({
160
+ name: tableName,
161
+ columns: mainColumns,
162
+ data: [],
163
+ pk: mainColumns.find((c) => c.isPrimaryKey || c.type === 'pk')?.name ||
164
+ 'id',
165
+ localeColumns,
166
+ dependencies: [...dependencies],
167
+ });
168
+ // If locale columns exist, add a locale table definition.
169
+ if (localeColumns.length > 0) {
170
+ tables.push({
171
+ name: `${tableName}_locale`,
172
+ data: [],
173
+ localeColumns: [],
174
+ dependencies: ['locale', tableName],
175
+ columns: [
176
+ {
177
+ type: 'pk',
178
+ name: 'id',
179
+ isPrimaryKey: true,
180
+ isNullable: false,
181
+ },
182
+ {
183
+ type: 'fk',
184
+ name: 'locale_id',
185
+ references: {
186
+ table: 'locale',
187
+ column: 'id',
188
+ onDelete: 'CASCADE',
189
+ onUpdate: 'CASCADE',
190
+ },
191
+ },
192
+ {
193
+ type: 'fk',
194
+ name: `${tableName}_id`,
195
+ references: {
196
+ table: tableName,
197
+ column: 'id',
198
+ onDelete: 'CASCADE',
199
+ onUpdate: 'CASCADE',
200
+ },
201
+ },
202
+ ...localeColumns,
203
+ {
204
+ name: 'created_at',
205
+ type: 'TIMESTAMPTZ',
206
+ default: 'now()',
207
+ },
208
+ {
209
+ name: 'updated_at',
210
+ type: 'TIMESTAMPTZ',
211
+ default: 'now()',
212
+ },
213
+ ],
214
+ pk: 'id',
215
+ });
216
+ }
217
+ return tables;
218
+ }
219
+ async loadDataFile(dataFilePath) {
220
+ const fileName = (0, path_1.basename)(dataFilePath);
221
+ try {
222
+ const data = await this.fileSystem.readYamlFile(dataFilePath);
223
+ if (Array.isArray(data)) {
224
+ return data;
225
+ }
226
+ console.warn(chalk.yellow(`[WARNING] Data in ${fileName} is not an array. Skipping parsing.`));
227
+ return [];
228
+ }
229
+ catch (err) {
230
+ const message = err instanceof Error ? err.message : String(err);
231
+ console.error(chalk.red(`Error parsing data file ${fileName}: ${message}`));
232
+ return [];
233
+ }
234
+ }
235
+ async loadTablesFromYaml(name, cwd = process.cwd(), verbose = false) {
236
+ this.verbose = verbose;
237
+ const tablesPath = (0, path_1.resolve)(cwd, `./libraries/${name}/hedhog/table`);
238
+ this.log(`Loading tables from YAML files in: ${tablesPath}`);
239
+ const tables = [];
240
+ // Process all table YAML files.
241
+ const tableFiles = await this.fileSystem.getAllFiles(tablesPath);
242
+ for (const file of tableFiles) {
243
+ const loadedTables = await this.loadTableFile(tablesPath, file, verbose);
244
+ tables.push(...loadedTables);
245
+ }
246
+ this.log(`Loaded ${tables.length} tables from YAML files.`);
247
+ // Process data files for each table.
248
+ const dataDir = (0, path_1.resolve)(cwd, `./libraries/${name}/hedhog/data`);
249
+ const dataFiles = await this.fileSystem.getYamlFiles(dataDir);
250
+ const dataFileProcessed = new Set();
251
+ // Handle tables with corresponding data files.
252
+ for (const table of tables) {
253
+ const dataFileYaml = (0, path_1.join)(dataDir, `${table.name}.yaml`);
254
+ const dataFileYml = (0, path_1.join)(dataDir, `${table.name}.yml`);
255
+ let dataFilePath = '';
256
+ if (await this.fileSystem.exists(dataFileYaml)) {
257
+ dataFilePath = dataFileYaml;
258
+ }
259
+ else if (await this.fileSystem.exists(dataFileYml)) {
260
+ dataFilePath = dataFileYml;
261
+ }
262
+ if (dataFilePath) {
263
+ dataFileProcessed.add((0, path_1.basename)(dataFilePath));
264
+ const rawData = await this.loadDataFile(dataFilePath);
265
+ table.data = rawData.map((row) => {
266
+ const newRow = { ...row };
267
+ if (table.localeColumns) {
268
+ for (const localeCol of table.localeColumns) {
269
+ delete newRow[localeCol.name];
270
+ }
271
+ }
272
+ return newRow;
273
+ });
274
+ if (table.localeColumns?.length) {
275
+ const localeTable = tables.find((t) => t.name === `${table.name}_locale`);
276
+ if (localeTable) {
277
+ localeTable.data = rawData.map((row) => {
278
+ const localeData = {};
279
+ for (const localeCol of table.localeColumns || []) {
280
+ if (row[localeCol.name]) {
281
+ localeData[localeCol.name] = row[localeCol.name];
282
+ delete row[localeCol.name];
283
+ }
284
+ }
285
+ return localeData;
286
+ });
287
+ }
288
+ }
289
+ }
290
+ }
291
+ // Process extra data files not yet handled.
292
+ for (const file of dataFiles) {
293
+ const fileName = this.fileSystem.getFileNameWithoutExtension(file);
294
+ if (dataFileProcessed.has(file))
295
+ continue;
296
+ const dataFilePath = (0, path_1.join)(dataDir, file);
297
+ const tableDef = await this.getTableFromYaml(fileName, cwd);
298
+ if (!tableDef) {
299
+ console.warn(chalk.yellow(`Table definition for ${file} not found. Skipping.`));
300
+ continue;
301
+ }
302
+ const rawData = await this.loadDataFile(dataFilePath);
303
+ dataFileProcessed.add(file);
304
+ tableDef.data = rawData.map((row) => {
305
+ const newRow = { ...row };
306
+ if (tableDef.localeColumns) {
307
+ for (const localeCol of tableDef.localeColumns) {
308
+ delete newRow[localeCol.name];
309
+ }
310
+ }
311
+ return newRow;
312
+ });
313
+ if (tableDef.localeColumns?.length) {
314
+ const localeTable = tables.find((t) => t.name === `${tableDef.name}_locale`);
315
+ if (localeTable) {
316
+ localeTable.data = rawData.map((row) => {
317
+ const localeData = {};
318
+ for (const localeCol of tableDef.localeColumns || []) {
319
+ if (row[localeCol.name]) {
320
+ localeData[localeCol.name] = row[localeCol.name];
321
+ delete row[localeCol.name];
322
+ }
323
+ }
324
+ return localeData;
325
+ });
326
+ }
327
+ }
328
+ }
329
+ // Transform rows: process locale objects and hash transformation.
330
+ for (const table of tables) {
331
+ for (const row of table.data) {
332
+ for (const key in row) {
333
+ if (typeof row[key] === 'object' &&
334
+ table.localeColumns?.map((lc) => lc.name).includes(key)) {
335
+ const localeTable = tables.find((t) => t.name === `${table.name}_locale`);
336
+ if (localeTable) {
337
+ for (const codeLocale in row[key]) {
338
+ localeTable.data.push({
339
+ locale_id: { where: { code: codeLocale } },
340
+ [`${table.name}_id`]: row.id,
341
+ [key]: row[key][codeLocale],
342
+ });
343
+ }
344
+ }
345
+ }
346
+ }
347
+ }
348
+ }
349
+ // Sort tables topologically
350
+ return await this.sortTablesByDependencies(tables, name, cwd);
351
+ }
352
+ async getTablesFromDependencies(name, cwd = process.cwd()) {
353
+ if (this.cache?.['getTablesFromDependencies']?.[name] instanceof Array) {
354
+ return this.cache['getTablesFromDependencies'][name];
355
+ }
356
+ const tables = [];
357
+ const packageJson = await this.packageService.getContent((0, path_1.resolve)(cwd, `./libraries/${name}`));
358
+ const hedHogDependencies = Object.keys(packageJson.dependencies || {})
359
+ .filter((dep) => dep.startsWith('@hed-hog/') &&
360
+ !dep.startsWith(`@hed-hog/api`) &&
361
+ !dep.startsWith(`@hed-hog/types`))
362
+ .filter((dep) => dep !== `@hed-hog/${name}`)
363
+ .map((dep) => dep.replace('@hed-hog/', ''));
364
+ if (hedHogDependencies.length > 0) {
365
+ for (const dep of hedHogDependencies) {
366
+ const depTables = await this.getTablesFromDependencies(dep, cwd);
367
+ tables.push(...depTables);
368
+ }
369
+ }
370
+ const tablesPath = (0, path_1.resolve)(cwd, `./libraries/${name}/hedhog/table`);
371
+ for (const tableFileName of (0, fs_1.readdirSync)(tablesPath)) {
372
+ const tableDef = await this.loadTableFile(tablesPath, tableFileName, this.verbose);
373
+ tables.push(...tableDef);
374
+ }
375
+ if (!this.cache) {
376
+ this.cache = {};
377
+ }
378
+ if (!this.cache['getTablesFromDependencies']) {
379
+ this.cache['getTablesFromDependencies'] = {};
380
+ }
381
+ this.cache['getTablesFromDependencies'][name] = tables;
382
+ return tables;
383
+ }
384
+ async sortTablesByDependencies(tables, libraryName, cwd = process.cwd()) {
385
+ const sortedTables = [];
386
+ const added = new Set();
387
+ this.log(`Sorting tables based on dependencies...`);
388
+ const hedHogDependenciesTables = await this.getTablesFromDependencies(libraryName, cwd);
389
+ for (const tableName of hedHogDependenciesTables.filter((t) => !tables.find((tbl) => tbl.name === t.name))) {
390
+ added.add(tableName.name);
391
+ }
392
+ // Always add the 'locale' table first if it exists.
393
+ const localeTable = tables.find((t) => t.name === 'locale');
394
+ if (localeTable) {
395
+ this.log(`Adding 'locale' table first.`);
396
+ sortedTables.unshift(localeTable);
397
+ added.add(localeTable.name);
398
+ }
399
+ this.log('----------------------------');
400
+ this.log('added init: ' + [...added].join(', '));
401
+ const getNextTable = () => tables.find((table) => !added.has(table.name) &&
402
+ (table.dependencies || []).every((dep) => added.has(dep)));
403
+ let lastTablesCount = -1;
404
+ while (sortedTables.length < tables.length) {
405
+ this.log(`${sortedTables.length} / ${tables.length}`);
406
+ const nextTable = getNextTable();
407
+ this.log(`Next table to add: ${nextTable ? nextTable.name : 'none found'}`);
408
+ if (!nextTable) {
409
+ const remaining = tables.filter((t) => !added.has(t.name));
410
+ const circularInfo = remaining.map((t) => ({
411
+ table: t.name,
412
+ unresolvedDependencies: (t.dependencies || []).filter((dep) => !added.has(dep)),
413
+ }));
414
+ throw new Error(`Circular dependency detected or no more tables to process. Tables involved: ${JSON.stringify(circularInfo, null, 2)}`);
415
+ }
416
+ sortedTables.push(nextTable);
417
+ added.add(nextTable.name);
418
+ if (lastTablesCount === sortedTables.length) {
419
+ throw new Error('Infinite loop detected in table sorting.');
420
+ }
421
+ lastTablesCount = sortedTables.length;
422
+ }
423
+ return sortedTables;
424
+ }
425
+ };
426
+ exports.TableService = TableService;
427
+ exports.TableService = TableService = __decorate([
428
+ (0, common_1.Injectable)(),
429
+ __metadata("design:paramtypes", [file_system_service_1.FileSystemService,
430
+ package_service_1.PackageService])
431
+ ], TableService);
432
+ //# sourceMappingURL=table.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.service.js","sourceRoot":"","sources":["../../../../../src/modules/hedhog/services/table.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { DeveloperService } from '../../developer/developer.service';
2
+ import { FileSystemService } from './file-system.service';
3
+ export declare class TemplateService {
4
+ private readonly developer;
5
+ private readonly fileSystem;
6
+ private verbose;
7
+ constructor(developer: DeveloperService, fileSystem: FileSystemService);
8
+ private log;
9
+ copyTemplateFiles(name: string, cwd?: string, verbose?: boolean): Promise<void>;
10
+ renderTemplate(templatePath: string, variables: Record<string, any>): Promise<string>;
11
+ renderTemplateToFile(templatePath: string, outputPath: string, variables: Record<string, any>): Promise<void>;
12
+ generateLibraryVariables(name: string, libraryPath: string): Record<string, any>;
13
+ }
@@ -0,0 +1,88 @@
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.TemplateService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const path_1 = require("path");
15
+ const promises_1 = require("fs/promises");
16
+ const ejs = require("ejs");
17
+ const developer_service_1 = require("../../developer/developer.service");
18
+ const file_system_service_1 = require("./file-system.service");
19
+ let TemplateService = class TemplateService {
20
+ developer;
21
+ fileSystem;
22
+ verbose = false;
23
+ constructor(developer, fileSystem) {
24
+ this.developer = developer;
25
+ this.fileSystem = fileSystem;
26
+ }
27
+ log(message) {
28
+ if (this.verbose) {
29
+ console.info('\n', message);
30
+ }
31
+ }
32
+ async copyTemplateFiles(name, cwd = process.cwd(), verbose = false) {
33
+ this.verbose = verbose;
34
+ this.log(`Copying template files for ${name}...`);
35
+ const sourcePath = (0, path_1.resolve)(__dirname, '../../../templates/library');
36
+ const sourceFiles = [
37
+ '.eslintrc.js.ejs',
38
+ '.prettierrc.js.ejs',
39
+ 'tsconfig.json.ejs',
40
+ 'tsconfig.production.json.ejs',
41
+ ];
42
+ const destinationPath = (0, path_1.resolve)(cwd, `./libraries/${name}`);
43
+ const vars = {
44
+ libraryPath: destinationPath,
45
+ libraryNamePascalCase: this.developer.toPascalCase(name),
46
+ libraryNameSnackCase: this.developer.toSnackCase(name),
47
+ libraryNameCamelCase: this.developer.toCamelCase(name),
48
+ libraryNameKebabCase: this.developer.toKebabCase(name),
49
+ libraryName: name,
50
+ };
51
+ await this.fileSystem.createDirectory(destinationPath);
52
+ this.log(`Created directory: ${destinationPath}`);
53
+ for (const file of sourceFiles) {
54
+ const sourceFile = (0, path_1.resolve)(sourcePath, file);
55
+ const destinationFile = (0, path_1.resolve)(destinationPath, file.replace('.ejs', ''));
56
+ this.log(`Copying ${sourceFile} to ${destinationFile}`);
57
+ const content = await (0, promises_1.readFile)(sourceFile, 'utf-8');
58
+ const renderedContent = ejs.render(content, vars);
59
+ await (0, promises_1.writeFile)(destinationFile, renderedContent, 'utf-8');
60
+ }
61
+ this.log(`Template files copied successfully for ${name}.`);
62
+ }
63
+ async renderTemplate(templatePath, variables) {
64
+ const content = await (0, promises_1.readFile)(templatePath, 'utf-8');
65
+ return ejs.render(content, variables);
66
+ }
67
+ async renderTemplateToFile(templatePath, outputPath, variables) {
68
+ const rendered = await this.renderTemplate(templatePath, variables);
69
+ await (0, promises_1.writeFile)(outputPath, rendered, 'utf-8');
70
+ }
71
+ generateLibraryVariables(name, libraryPath) {
72
+ return {
73
+ libraryPath,
74
+ libraryNamePascalCase: this.developer.toPascalCase(name),
75
+ libraryNameSnackCase: this.developer.toSnackCase(name),
76
+ libraryNameCamelCase: this.developer.toCamelCase(name),
77
+ libraryNameKebabCase: this.developer.toKebabCase(name),
78
+ libraryName: name,
79
+ };
80
+ }
81
+ };
82
+ exports.TemplateService = TemplateService;
83
+ exports.TemplateService = TemplateService = __decorate([
84
+ (0, common_1.Injectable)(),
85
+ __metadata("design:paramtypes", [developer_service_1.DeveloperService,
86
+ file_system_service_1.FileSystemService])
87
+ ], TemplateService);
88
+ //# sourceMappingURL=template.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.service.js","sourceRoot":"","sources":["../../../../../src/modules/hedhog/services/template.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare class PackageModule {
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.PackageModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const package_service_1 = require("./package.service");
12
+ let PackageModule = class PackageModule {
13
+ };
14
+ exports.PackageModule = PackageModule;
15
+ exports.PackageModule = PackageModule = __decorate([
16
+ (0, common_1.Global)(),
17
+ (0, common_1.Module)({
18
+ imports: [],
19
+ providers: [package_service_1.PackageService],
20
+ exports: [package_service_1.PackageService],
21
+ })
22
+ ], PackageModule);
23
+ //# sourceMappingURL=package.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.module.js","sourceRoot":"","sources":["../../../../src/modules/package/package.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,uDAAmD;AAQ5C,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,sCAAa;wBAAb,aAAa;IANzB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,CAAC,gCAAc,CAAC;QAC3B,OAAO,EAAE,CAAC,gCAAc,CAAC;KAC1B,CAAC;GACW,aAAa,CAAG"}
@@ -0,0 +1,9 @@
1
+ export declare class PackageService {
2
+ private getPackageJsonPath;
3
+ private readPackageJson;
4
+ getContent(filePath: string): Promise<Record<string, any>>;
5
+ setContent(filePath: string, content: Record<string, any>): Promise<void>;
6
+ rename(filePath: string, newName: string): Promise<void>;
7
+ getLatestVersion(name: string): Promise<any>;
8
+ downloadTar(userName: string, name: string, version: string, output: string): Promise<string>;
9
+ }