@codemastersolutions/db-utility 0.0.1

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 (143) hide show
  1. package/LICENSE +21 -0
  2. package/LICENSE.es +21 -0
  3. package/LICENSE.pt-BR +21 -0
  4. package/README.es.md +155 -0
  5. package/README.md +155 -0
  6. package/README.pt-BR.md +155 -0
  7. package/dist/cli/index.d.ts +3 -0
  8. package/dist/cli/index.d.ts.map +1 -0
  9. package/dist/cli/index.js +314 -0
  10. package/dist/cli/index.js.map +1 -0
  11. package/dist/config/AppConfig.d.ts +19 -0
  12. package/dist/config/AppConfig.d.ts.map +1 -0
  13. package/dist/config/AppConfig.js +142 -0
  14. package/dist/config/AppConfig.js.map +1 -0
  15. package/dist/config/ConfigInitializer.d.ts +10 -0
  16. package/dist/config/ConfigInitializer.d.ts.map +1 -0
  17. package/dist/config/ConfigInitializer.js +37 -0
  18. package/dist/config/ConfigInitializer.js.map +1 -0
  19. package/dist/config/ConfigLoader.d.ts +7 -0
  20. package/dist/config/ConfigLoader.d.ts.map +1 -0
  21. package/dist/config/ConfigLoader.js +94 -0
  22. package/dist/config/ConfigLoader.js.map +1 -0
  23. package/dist/database/ConnectionFactory.d.ts +5 -0
  24. package/dist/database/ConnectionFactory.d.ts.map +1 -0
  25. package/dist/database/ConnectionFactory.js +22 -0
  26. package/dist/database/ConnectionFactory.js.map +1 -0
  27. package/dist/database/SqlSafety.d.ts +7 -0
  28. package/dist/database/SqlSafety.d.ts.map +1 -0
  29. package/dist/database/SqlSafety.js +47 -0
  30. package/dist/database/SqlSafety.js.map +1 -0
  31. package/dist/database/connectors/MssqlConnector.d.ts +13 -0
  32. package/dist/database/connectors/MssqlConnector.d.ts.map +1 -0
  33. package/dist/database/connectors/MssqlConnector.js +72 -0
  34. package/dist/database/connectors/MssqlConnector.js.map +1 -0
  35. package/dist/database/connectors/MysqlConnector.d.ts +12 -0
  36. package/dist/database/connectors/MysqlConnector.d.ts.map +1 -0
  37. package/dist/database/connectors/MysqlConnector.js +70 -0
  38. package/dist/database/connectors/MysqlConnector.js.map +1 -0
  39. package/dist/database/connectors/PostgresConnector.d.ts +12 -0
  40. package/dist/database/connectors/PostgresConnector.d.ts.map +1 -0
  41. package/dist/database/connectors/PostgresConnector.js +65 -0
  42. package/dist/database/connectors/PostgresConnector.js.map +1 -0
  43. package/dist/errors/DbUtilityError.d.ts +7 -0
  44. package/dist/errors/DbUtilityError.d.ts.map +1 -0
  45. package/dist/errors/DbUtilityError.js +15 -0
  46. package/dist/errors/DbUtilityError.js.map +1 -0
  47. package/dist/generators/GeneratorTypes.d.ts +15 -0
  48. package/dist/generators/GeneratorTypes.d.ts.map +1 -0
  49. package/dist/generators/GeneratorTypes.js +3 -0
  50. package/dist/generators/GeneratorTypes.js.map +1 -0
  51. package/dist/generators/GeneratorWriter.d.ts +6 -0
  52. package/dist/generators/GeneratorWriter.d.ts.map +1 -0
  53. package/dist/generators/GeneratorWriter.js +25 -0
  54. package/dist/generators/GeneratorWriter.js.map +1 -0
  55. package/dist/generators/MongooseGenerator.d.ts +10 -0
  56. package/dist/generators/MongooseGenerator.d.ts.map +1 -0
  57. package/dist/generators/MongooseGenerator.js +75 -0
  58. package/dist/generators/MongooseGenerator.js.map +1 -0
  59. package/dist/generators/PrismaGenerator.d.ts +9 -0
  60. package/dist/generators/PrismaGenerator.d.ts.map +1 -0
  61. package/dist/generators/PrismaGenerator.js +87 -0
  62. package/dist/generators/PrismaGenerator.js.map +1 -0
  63. package/dist/generators/SequelizeGenerator.d.ts +12 -0
  64. package/dist/generators/SequelizeGenerator.d.ts.map +1 -0
  65. package/dist/generators/SequelizeGenerator.js +243 -0
  66. package/dist/generators/SequelizeGenerator.js.map +1 -0
  67. package/dist/generators/TypeORMGenerator.d.ts +12 -0
  68. package/dist/generators/TypeORMGenerator.d.ts.map +1 -0
  69. package/dist/generators/TypeORMGenerator.js +216 -0
  70. package/dist/generators/TypeORMGenerator.js.map +1 -0
  71. package/dist/i18n/messages.d.ts +49 -0
  72. package/dist/i18n/messages.d.ts.map +1 -0
  73. package/dist/i18n/messages.js +149 -0
  74. package/dist/i18n/messages.js.map +1 -0
  75. package/dist/index.d.ts +2 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +8 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/introspection/DataExtractor.d.ts +10 -0
  80. package/dist/introspection/DataExtractor.d.ts.map +1 -0
  81. package/dist/introspection/DataExtractor.js +52 -0
  82. package/dist/introspection/DataExtractor.js.map +1 -0
  83. package/dist/introspection/IntrospectionLogger.d.ts +7 -0
  84. package/dist/introspection/IntrospectionLogger.d.ts.map +1 -0
  85. package/dist/introspection/IntrospectionLogger.js +30 -0
  86. package/dist/introspection/IntrospectionLogger.js.map +1 -0
  87. package/dist/introspection/IntrospectionService.d.ts +10 -0
  88. package/dist/introspection/IntrospectionService.d.ts.map +1 -0
  89. package/dist/introspection/IntrospectionService.js +37 -0
  90. package/dist/introspection/IntrospectionService.js.map +1 -0
  91. package/dist/introspection/Introspector.d.ts +11 -0
  92. package/dist/introspection/Introspector.d.ts.map +1 -0
  93. package/dist/introspection/Introspector.js +11 -0
  94. package/dist/introspection/Introspector.js.map +1 -0
  95. package/dist/introspection/MssqlIntrospector.d.ts +11 -0
  96. package/dist/introspection/MssqlIntrospector.d.ts.map +1 -0
  97. package/dist/introspection/MssqlIntrospector.js +193 -0
  98. package/dist/introspection/MssqlIntrospector.js.map +1 -0
  99. package/dist/introspection/MysqlIntrospector.d.ts +10 -0
  100. package/dist/introspection/MysqlIntrospector.d.ts.map +1 -0
  101. package/dist/introspection/MysqlIntrospector.js +175 -0
  102. package/dist/introspection/MysqlIntrospector.js.map +1 -0
  103. package/dist/introspection/PostgresIntrospector.d.ts +11 -0
  104. package/dist/introspection/PostgresIntrospector.d.ts.map +1 -0
  105. package/dist/introspection/PostgresIntrospector.js +192 -0
  106. package/dist/introspection/PostgresIntrospector.js.map +1 -0
  107. package/dist/testing/ContainerManager.d.ts +7 -0
  108. package/dist/testing/ContainerManager.d.ts.map +1 -0
  109. package/dist/testing/ContainerManager.js +68 -0
  110. package/dist/testing/ContainerManager.js.map +1 -0
  111. package/dist/testing/MigrationTester.d.ts +18 -0
  112. package/dist/testing/MigrationTester.d.ts.map +1 -0
  113. package/dist/testing/MigrationTester.js +399 -0
  114. package/dist/testing/MigrationTester.js.map +1 -0
  115. package/dist/testing/runners/MigrationRunner.d.ts +5 -0
  116. package/dist/testing/runners/MigrationRunner.d.ts.map +1 -0
  117. package/dist/testing/runners/MigrationRunner.js +3 -0
  118. package/dist/testing/runners/MigrationRunner.js.map +1 -0
  119. package/dist/testing/runners/SequelizeRunner.d.ts +8 -0
  120. package/dist/testing/runners/SequelizeRunner.d.ts.map +1 -0
  121. package/dist/testing/runners/SequelizeRunner.js +71 -0
  122. package/dist/testing/runners/SequelizeRunner.js.map +1 -0
  123. package/dist/testing/runners/TypeORMRunner.d.ts +8 -0
  124. package/dist/testing/runners/TypeORMRunner.d.ts.map +1 -0
  125. package/dist/testing/runners/TypeORMRunner.js +91 -0
  126. package/dist/testing/runners/TypeORMRunner.js.map +1 -0
  127. package/dist/types/database.d.ts +22 -0
  128. package/dist/types/database.d.ts.map +1 -0
  129. package/dist/types/database.js +3 -0
  130. package/dist/types/database.js.map +1 -0
  131. package/dist/types/introspection.d.ts +43 -0
  132. package/dist/types/introspection.d.ts.map +1 -0
  133. package/dist/types/introspection.js +3 -0
  134. package/dist/types/introspection.js.map +1 -0
  135. package/dist/utils/PackageManager.d.ts +13 -0
  136. package/dist/utils/PackageManager.d.ts.map +1 -0
  137. package/dist/utils/PackageManager.js +114 -0
  138. package/dist/utils/PackageManager.js.map +1 -0
  139. package/dist/utils/topologicalSort.d.ts +3 -0
  140. package/dist/utils/topologicalSort.d.ts.map +1 -0
  141. package/dist/utils/topologicalSort.js +37 -0
  142. package/dist/utils/topologicalSort.js.map +1 -0
  143. package/package.json +98 -0
@@ -0,0 +1,314 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const commander_1 = require("commander");
5
+ const fs_1 = require("fs");
6
+ const path_1 = require("path");
7
+ const AppConfig_1 = require("../config/AppConfig");
8
+ const ConfigInitializer_1 = require("../config/ConfigInitializer");
9
+ const ConfigLoader_1 = require("../config/ConfigLoader");
10
+ const ConnectionFactory_1 = require("../database/ConnectionFactory");
11
+ const SqlSafety_1 = require("../database/SqlSafety");
12
+ const DbUtilityError_1 = require("../errors/DbUtilityError");
13
+ const GeneratorWriter_1 = require("../generators/GeneratorWriter");
14
+ const MongooseGenerator_1 = require("../generators/MongooseGenerator");
15
+ const PrismaGenerator_1 = require("../generators/PrismaGenerator");
16
+ const SequelizeGenerator_1 = require("../generators/SequelizeGenerator");
17
+ const TypeORMGenerator_1 = require("../generators/TypeORMGenerator");
18
+ const messages_1 = require("../i18n/messages");
19
+ const DataExtractor_1 = require("../introspection/DataExtractor");
20
+ const IntrospectionLogger_1 = require("../introspection/IntrospectionLogger");
21
+ const IntrospectionService_1 = require("../introspection/IntrospectionService");
22
+ const ContainerManager_1 = require("../testing/ContainerManager");
23
+ const MigrationTester_1 = require("../testing/MigrationTester");
24
+ const appConfig = AppConfig_1.AppConfigLoader.load();
25
+ const messages = (0, messages_1.getMessages)(appConfig.language);
26
+ const getPackageVersion = () => {
27
+ try {
28
+ const packageJsonPath = (0, path_1.join)(__dirname, '../../package.json');
29
+ const packageJson = JSON.parse((0, fs_1.readFileSync)(packageJsonPath, 'utf-8'));
30
+ return packageJson.version;
31
+ }
32
+ catch {
33
+ return '0.0.0';
34
+ }
35
+ };
36
+ const program = new commander_1.Command();
37
+ program
38
+ .name('db-utility')
39
+ .alias('dbutility')
40
+ .description(messages.cli.appDescription)
41
+ .version(getPackageVersion());
42
+ program
43
+ .option('--init', messages.cli.initOptionDescription)
44
+ .option('-f, --force', messages.cli.forceOptionDescription);
45
+ const handleCliError = (error) => {
46
+ if (error instanceof SqlSafety_1.DbUtilitySecurityError) {
47
+ const text = error.code === 'UNSAFE_OPERATION'
48
+ ? messages.cli.securitySqlUnsafeOperation
49
+ : messages.cli.securitySqlUnsafeDataSelect;
50
+ console.error(messages.cli.securityError, text);
51
+ }
52
+ else if (error instanceof DbUtilityError_1.DbUtilityError) {
53
+ let text;
54
+ switch (error.code) {
55
+ case 'INTROSPECTION_DB_TYPE_REQUIRED':
56
+ text = messages.cli.introspectionDbTypeRequired;
57
+ break;
58
+ case 'INTROSPECTION_DB_TYPE_UNSUPPORTED':
59
+ text = messages.cli.introspectionDbTypeUnsupported;
60
+ break;
61
+ case 'APP_CONFIG_FILE_NOT_FOUND':
62
+ text = messages.cli.appConfigFileNotFound(error.details || '?');
63
+ break;
64
+ case 'APP_CONFIG_FILE_FORMAT_UNSUPPORTED':
65
+ text = messages.cli.appConfigFileFormatUnsupported(error.details || '?');
66
+ break;
67
+ case 'CONFIG_FILE_NOT_FOUND':
68
+ text = messages.cli.configFileNotFound(error.details || '?');
69
+ break;
70
+ case 'CONFIG_FILE_FORMAT_UNSUPPORTED':
71
+ text = messages.cli.configFileFormatUnsupported(error.details || '?');
72
+ break;
73
+ case 'CONFIG_DB_TYPE_OR_CONNECTION_STRING_REQUIRED':
74
+ text = messages.cli.configDbTypeOrConnectionStringRequired;
75
+ break;
76
+ case 'CONFIG_DB_TYPE_REQUIRED':
77
+ text = messages.cli.configDbTypeRequired;
78
+ break;
79
+ case 'CONNECTION_FAILED':
80
+ text = messages.cli.connectionFailed;
81
+ break;
82
+ default:
83
+ text = error.message;
84
+ break;
85
+ }
86
+ console.error(messages.cli.genericError, text);
87
+ }
88
+ else {
89
+ console.error(messages.cli.genericError, error instanceof Error ? error.message : String(error));
90
+ }
91
+ process.exit(1);
92
+ };
93
+ const addConnectionOptions = (cmd) => {
94
+ return cmd
95
+ .option('-c, --config <path>', messages.cli.optionConfigPath)
96
+ .option('-t, --type <type>', messages.cli.optionType)
97
+ .option('-H, --host <host>', messages.cli.optionHost)
98
+ .option('-P, --port <port>', messages.cli.optionPort)
99
+ .option('-u, --username <username>', messages.cli.optionUsername)
100
+ .option('-p, --password <password>', messages.cli.optionPassword)
101
+ .option('-d, --database <database>', messages.cli.optionDatabase)
102
+ .option('--ssl', messages.cli.optionSsl);
103
+ };
104
+ const getGenerator = (target) => {
105
+ switch (target.toLowerCase()) {
106
+ case 'sequelize':
107
+ return new SequelizeGenerator_1.SequelizeGenerator();
108
+ case 'typeorm':
109
+ return new TypeORMGenerator_1.TypeORMGenerator();
110
+ case 'prisma':
111
+ return new PrismaGenerator_1.PrismaGenerator();
112
+ case 'mongoose':
113
+ case 'mongodb':
114
+ return new MongooseGenerator_1.MongooseGenerator();
115
+ default:
116
+ throw new Error(`Unknown target: ${target}`);
117
+ }
118
+ };
119
+ const getConnectionConfig = async (options) => {
120
+ const overrides = {};
121
+ if (options.type)
122
+ overrides.type = options.type;
123
+ if (options.host)
124
+ overrides.host = options.host;
125
+ if (options.port)
126
+ overrides.port = parseInt(options.port, 10);
127
+ if (options.username)
128
+ overrides.username = options.username;
129
+ if (options.password)
130
+ overrides.password = options.password;
131
+ if (options.database)
132
+ overrides.database = options.database;
133
+ if (options.ssl)
134
+ overrides.ssl = true;
135
+ return ConfigLoader_1.ConfigLoader.load(options.config, overrides);
136
+ };
137
+ const withConnection = async (options, action) => {
138
+ let connector = null;
139
+ try {
140
+ const config = await getConnectionConfig(options);
141
+ console.log(messages.cli.connecting(config.type));
142
+ connector = ConnectionFactory_1.ConnectionFactory.create(config);
143
+ await connector.connect();
144
+ await action(connector, config);
145
+ }
146
+ catch (error) {
147
+ handleCliError(error);
148
+ }
149
+ finally {
150
+ if (connector) {
151
+ try {
152
+ await connector.disconnect();
153
+ console.log(messages.cli.connectionClosed);
154
+ }
155
+ catch (disconnectError) {
156
+ console.warn('Erro ao fechar conexão:', disconnectError instanceof Error ? disconnectError.message : String(disconnectError));
157
+ }
158
+ }
159
+ }
160
+ };
161
+ const connectCommand = program.command('connect').description(messages.cli.connectDescription);
162
+ addConnectionOptions(connectCommand).action(async (options) => {
163
+ await withConnection(options, async () => {
164
+ console.log(messages.cli.connectSuccess);
165
+ });
166
+ });
167
+ const introspectCommand = program
168
+ .command('introspect')
169
+ .description(messages.cli.introspectDescription);
170
+ addConnectionOptions(introspectCommand).action(async (options) => {
171
+ await withConnection(options, async (connector, config) => {
172
+ console.log(messages.cli.introspectConnecting(config.database));
173
+ const service = new IntrospectionService_1.IntrospectionService(connector, config);
174
+ const schema = await service.introspect();
175
+ const runDir = IntrospectionLogger_1.IntrospectionLogger.logSchema(config, schema, process.cwd(), appConfig);
176
+ console.log(messages.cli.introspectDone(schema.tables.length));
177
+ console.log(messages.cli.introspectSavedAt(runDir));
178
+ });
179
+ });
180
+ const exportCommand = program.command('export').description(messages.cli.exportDescription);
181
+ addConnectionOptions(exportCommand)
182
+ .option('--target <target>', 'Target ORM: sequelize, typeorm, prisma, mongoose')
183
+ .option('--output <dir>', 'Output directory')
184
+ .action(async (options) => {
185
+ if (!options.target) {
186
+ handleCliError(new Error('Target is required (--target <target>)'));
187
+ return;
188
+ }
189
+ await withConnection(options, async (connector, config) => {
190
+ console.log(messages.cli.introspectConnecting(config.database));
191
+ const service = new IntrospectionService_1.IntrospectionService(connector, config);
192
+ const schema = await service.introspect();
193
+ const generator = getGenerator(options.target);
194
+ console.log(`Generating models for ${options.target}...`);
195
+ const files = await generator.generate(schema);
196
+ const baseOutputDir = options.output || (0, path_1.join)(process.cwd(), 'exports', 'generated-models');
197
+ const outputDir = (0, path_1.join)(baseOutputDir, options.target.toLowerCase());
198
+ GeneratorWriter_1.GeneratorWriter.write(files, outputDir);
199
+ console.log(`Successfully generated ${files.length} files in ${outputDir}`);
200
+ });
201
+ });
202
+ const migrateCommand = program.command('migrate').description(messages.cli.migrateDescription);
203
+ addConnectionOptions(migrateCommand)
204
+ .option('--target <target>', 'Target ORM: sequelize, typeorm')
205
+ .option('--output <dir>', 'Output directory')
206
+ .option('--data', 'Generate data migration')
207
+ .option('--only-data', 'Generate only data migration')
208
+ .option('--tables <tables>', 'Comma separated list of tables to export data from')
209
+ .action(async (options) => {
210
+ if (!options.target) {
211
+ handleCliError(new Error('Target is required (--target <target>)'));
212
+ return;
213
+ }
214
+ await withConnection(options, async (connector, config) => {
215
+ console.log(messages.cli.introspectConnecting(config.database));
216
+ const service = new IntrospectionService_1.IntrospectionService(connector, config);
217
+ const schema = await service.introspect();
218
+ const generator = getGenerator(options.target);
219
+ const generateData = options.onlyData || options.data;
220
+ const generateSchema = !options.onlyData;
221
+ let extractedData = [];
222
+ if (generateData) {
223
+ const tables = options.tables ? options.tables.split(',').map((t) => t.trim()) : [];
224
+ if (tables.length === 0) {
225
+ throw new Error('You must specify at least one table via --tables when using --data or --only-data');
226
+ }
227
+ console.log(`Extracting data from tables: ${tables.join(', ')}...`);
228
+ const extractor = new DataExtractor_1.DataExtractor(connector, config.type);
229
+ extractedData = await extractor.extract(schema, tables);
230
+ }
231
+ const version = await connector.getVersion();
232
+ const dbInfo = {
233
+ type: config.type,
234
+ version: version,
235
+ databaseName: config.database,
236
+ timestamp: new Date().toISOString(),
237
+ };
238
+ const baseOutputDir = options.output || (0, path_1.join)(process.cwd(), 'exports', 'generated-migrations');
239
+ const outputDir = (0, path_1.join)(baseOutputDir, options.target.toLowerCase());
240
+ if (generateSchema) {
241
+ if (!('generateMigrations' in generator)) {
242
+ throw new Error(`Target ${options.target} does not support migration generation`);
243
+ }
244
+ const migrationGenerator = generator;
245
+ console.log(`Generating migrations for ${options.target}...`);
246
+ const files = await migrationGenerator.generateMigrations(schema, options.data ? extractedData : undefined);
247
+ GeneratorWriter_1.GeneratorWriter.clean(outputDir);
248
+ GeneratorWriter_1.GeneratorWriter.write(files, outputDir);
249
+ GeneratorWriter_1.GeneratorWriter.write([
250
+ {
251
+ fileName: 'database-info.json',
252
+ content: JSON.stringify(dbInfo, null, 2),
253
+ },
254
+ ], outputDir);
255
+ console.log(`Successfully generated ${files.length} migration files in ${outputDir}`);
256
+ }
257
+ else if (generateData) {
258
+ if (!('generateDataMigrations' in generator)) {
259
+ throw new Error(`Target ${options.target} does not support data migration generation`);
260
+ }
261
+ console.log(`Generating data migrations for ${options.target}...`);
262
+ const dataMigrationGenerator = generator;
263
+ const files = await dataMigrationGenerator.generateDataMigrations(extractedData);
264
+ GeneratorWriter_1.GeneratorWriter.clean(outputDir);
265
+ GeneratorWriter_1.GeneratorWriter.write(files, outputDir);
266
+ GeneratorWriter_1.GeneratorWriter.write([
267
+ {
268
+ fileName: 'database-info.json',
269
+ content: JSON.stringify(dbInfo, null, 2),
270
+ },
271
+ ], outputDir);
272
+ console.log(`Successfully generated ${files.length} seed files in ${outputDir}`);
273
+ }
274
+ });
275
+ });
276
+ const testCommand = program.command('test').description('Test generated migrations');
277
+ testCommand
278
+ .option('--target <target>', 'Target ORM: sequelize, typeorm')
279
+ .option('--dir <dir>', 'Migrations directory')
280
+ .option('--engines <engines>', 'Comma separated list of engines to test (e.g. postgres:14,mysql:8)')
281
+ .option('--backup', 'Export database backup from container')
282
+ .action(async (options) => {
283
+ if (!options.target) {
284
+ handleCliError(new Error('Target is required (--target <target>)'));
285
+ return;
286
+ }
287
+ const migrationsDir = options.dir ||
288
+ (0, path_1.join)(process.cwd(), 'exports', 'generated-migrations', options.target.toLowerCase());
289
+ const engines = options.engines ? options.engines.split(',').map((e) => e.trim()) : undefined;
290
+ const containerManager = new ContainerManager_1.ContainerManager();
291
+ const tester = new MigrationTester_1.MigrationTester(containerManager);
292
+ try {
293
+ await tester.test(options.target, migrationsDir, engines, options.backup);
294
+ }
295
+ catch (error) {
296
+ handleCliError(error);
297
+ }
298
+ });
299
+ program.parse(process.argv);
300
+ const rootOptions = program.opts();
301
+ const hasSubCommand = program.args && program.args.length > 0;
302
+ if (rootOptions.init && !hasSubCommand) {
303
+ const result = ConfigInitializer_1.ConfigInitializer.init(process.cwd(), rootOptions.force === true);
304
+ if (result.recreated) {
305
+ console.log(messages.cli.initRecreated(result.path));
306
+ }
307
+ else if (result.created) {
308
+ console.log(messages.cli.initCreated(result.path));
309
+ }
310
+ else {
311
+ console.log(messages.cli.initAlreadyExists(result.path));
312
+ }
313
+ }
314
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export type AppLanguage = 'pt-BR' | 'en' | 'es';
2
+ export interface AppConfig {
3
+ language: AppLanguage;
4
+ introspection: {
5
+ outputDir: string;
6
+ };
7
+ migrations: {
8
+ outputDir: string;
9
+ fileNamePattern: 'timestamp-prefix' | 'prefix-timestamp';
10
+ };
11
+ }
12
+ export declare class AppConfigLoader {
13
+ static load(configPath?: string): AppConfig;
14
+ private static loadFromFileRaw;
15
+ private static loadFromEnvRaw;
16
+ private static normalize;
17
+ private static normalizeLanguage;
18
+ }
19
+ //# sourceMappingURL=AppConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppConfig.d.ts","sourceRoot":"","sources":["../../src/config/AppConfig.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhD,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,WAAW,CAAC;IACtB,aAAa,EAAE;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,UAAU,EAAE;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,kBAAkB,GAAG,kBAAkB,CAAC;KAC1D,CAAC;CACH;AAaD,qBAAa,eAAe;IAC1B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS;IA2D3C,OAAO,CAAC,MAAM,CAAC,eAAe;IAe9B,OAAO,CAAC,MAAM,CAAC,cAAc;IAiC7B,OAAO,CAAC,MAAM,CAAC,SAAS;IAiCxB,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAiBjC"}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AppConfigLoader = void 0;
7
+ const dotenv_1 = __importDefault(require("dotenv"));
8
+ const fs_1 = require("fs");
9
+ const path_1 = require("path");
10
+ const DbUtilityError_1 = require("../errors/DbUtilityError");
11
+ dotenv_1.default.config();
12
+ const defaultConfig = {
13
+ language: 'pt-BR',
14
+ introspection: {
15
+ outputDir: 'db-utility-introspect',
16
+ },
17
+ migrations: {
18
+ outputDir: 'db-utility-migrations',
19
+ fileNamePattern: 'timestamp-prefix',
20
+ },
21
+ };
22
+ class AppConfigLoader {
23
+ static load(configPath) {
24
+ const fromEnv = this.loadFromEnvRaw();
25
+ let fromFile = {};
26
+ if (configPath) {
27
+ fromFile = this.loadFromFileRaw(configPath);
28
+ }
29
+ else {
30
+ const defaultFiles = [
31
+ 'dbutility.config.json',
32
+ 'db-utility.app.config.json',
33
+ '.db-utilityrc.app',
34
+ ];
35
+ for (const file of defaultFiles) {
36
+ const path = (0, path_1.resolve)(process.cwd(), file);
37
+ if ((0, fs_1.existsSync)(path)) {
38
+ fromFile = this.loadFromFileRaw(path);
39
+ break;
40
+ }
41
+ }
42
+ }
43
+ const merged = {
44
+ language: fromFile.language || fromEnv.language,
45
+ };
46
+ const envIntrospection = fromEnv.introspection;
47
+ const fileIntrospection = fromFile.introspection;
48
+ const introspectionOutputDir = fileIntrospection?.outputDir ?? envIntrospection?.outputDir;
49
+ if (introspectionOutputDir) {
50
+ merged.introspection = {
51
+ outputDir: introspectionOutputDir,
52
+ };
53
+ }
54
+ const envMigrations = fromEnv.migrations;
55
+ const fileMigrations = fromFile.migrations;
56
+ const migrationsOutputDir = fileMigrations?.outputDir ?? envMigrations?.outputDir;
57
+ const migrationsFileNamePatternRaw = fileMigrations?.fileNamePattern ?? envMigrations?.fileNamePattern;
58
+ if (migrationsOutputDir || migrationsFileNamePatternRaw) {
59
+ const fileNamePattern = migrationsFileNamePatternRaw === 'prefix-timestamp'
60
+ ? 'prefix-timestamp'
61
+ : 'timestamp-prefix';
62
+ merged.migrations = {
63
+ outputDir: migrationsOutputDir ?? defaultConfig.migrations.outputDir,
64
+ fileNamePattern,
65
+ };
66
+ }
67
+ return this.normalize(merged);
68
+ }
69
+ static loadFromFileRaw(pathStr) {
70
+ const absolutePath = (0, path_1.resolve)(process.cwd(), pathStr);
71
+ if (!(0, fs_1.existsSync)(absolutePath)) {
72
+ throw new DbUtilityError_1.DbUtilityError('APP_CONFIG_FILE_NOT_FOUND', absolutePath);
73
+ }
74
+ const ext = (0, path_1.extname)(absolutePath);
75
+ if (ext === '.json' || ext === '') {
76
+ const content = (0, fs_1.readFileSync)(absolutePath, 'utf-8');
77
+ return JSON.parse(content);
78
+ }
79
+ throw new DbUtilityError_1.DbUtilityError('APP_CONFIG_FILE_FORMAT_UNSUPPORTED', ext);
80
+ }
81
+ static loadFromEnvRaw() {
82
+ const rawLanguage = process.env.DB_UTILITY_LANG || process.env.DB_UTILITY_LANGUAGE || process.env.LANG;
83
+ const rawIntrospectionOutputDir = process.env.DB_UTILITY_INTROSPECTION_OUTPUT_DIR;
84
+ const rawMigrationsOutputDir = process.env.DB_UTILITY_MIGRATIONS_OUTPUT_DIR;
85
+ const rawMigrationsFileNamePattern = process.env.DB_UTILITY_MIGRATIONS_FILE_NAME_PATTERN;
86
+ const config = {};
87
+ if (rawLanguage) {
88
+ config.language = this.normalizeLanguage(rawLanguage);
89
+ }
90
+ if (rawIntrospectionOutputDir) {
91
+ config.introspection = { outputDir: rawIntrospectionOutputDir };
92
+ }
93
+ if (rawMigrationsOutputDir || rawMigrationsFileNamePattern) {
94
+ const fileNamePattern = rawMigrationsFileNamePattern === 'prefix-timestamp'
95
+ ? 'prefix-timestamp'
96
+ : 'timestamp-prefix';
97
+ config.migrations = {
98
+ outputDir: rawMigrationsOutputDir ?? defaultConfig.migrations.outputDir,
99
+ fileNamePattern,
100
+ };
101
+ }
102
+ return config;
103
+ }
104
+ static normalize(raw) {
105
+ const language = raw.language ? this.normalizeLanguage(raw.language) : defaultConfig.language;
106
+ const introspectionOutputDir = raw.introspection && raw.introspection.outputDir
107
+ ? raw.introspection.outputDir
108
+ : defaultConfig.introspection.outputDir;
109
+ const migrationsOutputDir = raw.migrations && raw.migrations.outputDir
110
+ ? raw.migrations.outputDir
111
+ : defaultConfig.migrations.outputDir;
112
+ const fileNamePatternRaw = raw.migrations && raw.migrations.fileNamePattern
113
+ ? raw.migrations.fileNamePattern
114
+ : defaultConfig.migrations.fileNamePattern;
115
+ const fileNamePattern = fileNamePatternRaw === 'prefix-timestamp' ? 'prefix-timestamp' : 'timestamp-prefix';
116
+ return {
117
+ language,
118
+ introspection: {
119
+ outputDir: introspectionOutputDir,
120
+ },
121
+ migrations: {
122
+ outputDir: migrationsOutputDir,
123
+ fileNamePattern,
124
+ },
125
+ };
126
+ }
127
+ static normalizeLanguage(value) {
128
+ const normalized = value.toLowerCase();
129
+ if (normalized === 'pt' || normalized === 'pt-br' || normalized === 'pt_br') {
130
+ return 'pt-BR';
131
+ }
132
+ if (normalized === 'en' || normalized === 'en-us' || normalized === 'en_gb') {
133
+ return 'en';
134
+ }
135
+ if (normalized === 'es' || normalized === 'es-es' || normalized === 'es_mx') {
136
+ return 'es';
137
+ }
138
+ return defaultConfig.language;
139
+ }
140
+ }
141
+ exports.AppConfigLoader = AppConfigLoader;
142
+ //# sourceMappingURL=AppConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppConfig.js","sourceRoot":"","sources":["../../src/config/AppConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ interface InitResult {
2
+ created: boolean;
3
+ path: string;
4
+ recreated: boolean;
5
+ }
6
+ export declare class ConfigInitializer {
7
+ static init(cwd: string, force?: boolean): InitResult;
8
+ }
9
+ export {};
10
+ //# sourceMappingURL=ConfigInitializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigInitializer.d.ts","sourceRoot":"","sources":["../../src/config/ConfigInitializer.ts"],"names":[],"mappings":"AAIA,UAAU,UAAU;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAwBD,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,UAAU;CAqBpD"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfigInitializer = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const defaultConfig = {
7
+ language: 'pt-BR',
8
+ introspection: {
9
+ outputDir: 'db-utility-introspect',
10
+ },
11
+ migrations: {
12
+ outputDir: 'db-utility-migrations',
13
+ fileNamePattern: 'timestamp-prefix',
14
+ },
15
+ };
16
+ class ConfigInitializer {
17
+ static init(cwd, force = false) {
18
+ const filePath = (0, path_1.join)(cwd, 'dbutility.config.json');
19
+ const exists = (0, fs_1.existsSync)(filePath);
20
+ if (exists && !force) {
21
+ return {
22
+ created: false,
23
+ path: filePath,
24
+ recreated: false,
25
+ };
26
+ }
27
+ const content = JSON.stringify(defaultConfig, null, 2);
28
+ (0, fs_1.writeFileSync)(filePath, `${content}\n`, 'utf-8');
29
+ return {
30
+ created: true,
31
+ path: filePath,
32
+ recreated: exists,
33
+ };
34
+ }
35
+ }
36
+ exports.ConfigInitializer = ConfigInitializer;
37
+ //# sourceMappingURL=ConfigInitializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigInitializer.js","sourceRoot":"","sources":["../../src/config/ConfigInitializer.ts"],"names":[],"mappings":";;;AAAA,2BAA+C;AAC/C,+BAA4B;AAoB5B,MAAM,aAAa,GAAsB;IACvC,QAAQ,EAAE,OAAO;IACjB,aAAa,EAAE;QACb,SAAS,EAAE,uBAAuB;KACnC;IACD,UAAU,EAAE;QACV,SAAS,EAAE,uBAAuB;QAClC,eAAe,EAAE,kBAAkB;KACpC;CACF,CAAC;AAEF,MAAa,iBAAiB;IAC5B,MAAM,CAAC,IAAI,CAAC,GAAW,EAAE,KAAK,GAAG,KAAK;QACpC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAA,eAAU,EAAC,QAAQ,CAAC,CAAC;QAEpC,IAAI,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,KAAK;aACjB,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvD,IAAA,kBAAa,EAAC,QAAQ,EAAE,GAAG,OAAO,IAAI,EAAE,OAAO,CAAC,CAAC;QAEjD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,MAAM;SAClB,CAAC;IACJ,CAAC;CACF;AAtBD,8CAsBC"}
@@ -0,0 +1,7 @@
1
+ import { DatabaseConfig } from '../types/database';
2
+ export declare class ConfigLoader {
3
+ static load(configPath?: string, overrides?: Partial<DatabaseConfig>): Promise<DatabaseConfig>;
4
+ private static loadFromFile;
5
+ private static loadFromEnv;
6
+ }
7
+ //# sourceMappingURL=ConfigLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigLoader.d.ts","sourceRoot":"","sources":["../../src/config/ConfigLoader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAgB,MAAM,mBAAmB,CAAC;AAKjE,qBAAa,YAAY;WACV,IAAI,CACf,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAClC,OAAO,CAAC,cAAc,CAAC;mBAoDL,YAAY;IAmBjC,OAAO,CAAC,MAAM,CAAC,WAAW;CAiC3B"}