@toonstore/torm 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +497 -43
- package/dist/cli.js +404 -65
- package/dist/cli.js.map +1 -1
- package/dist/migrations.d.ts +62 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +275 -0
- package/dist/migrations.js.map +1 -0
- package/dist/studio-server.d.ts +1 -0
- package/dist/studio-server.d.ts.map +1 -1
- package/dist/studio-server.js +284 -0
- package/dist/studio-server.js.map +1 -1
- package/package.json +1 -1
- package/studio/index.html +54 -22
package/dist/cli.js
CHANGED
|
@@ -41,7 +41,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
41
41
|
const child_process_1 = require("child_process");
|
|
42
42
|
const path = __importStar(require("path"));
|
|
43
43
|
const fs = __importStar(require("fs"));
|
|
44
|
+
const migrations_1 = require("./migrations");
|
|
44
45
|
const command = process.argv[2];
|
|
46
|
+
const subcommand = process.argv[3];
|
|
45
47
|
const args = process.argv.slice(3);
|
|
46
48
|
function printHelp() {
|
|
47
49
|
console.log(`
|
|
@@ -51,16 +53,23 @@ Usage:
|
|
|
51
53
|
torm <command> [options]
|
|
52
54
|
|
|
53
55
|
Commands:
|
|
54
|
-
studio
|
|
55
|
-
|
|
56
|
-
migrate Run
|
|
57
|
-
|
|
56
|
+
studio Launch TORM Studio (visual database manager)
|
|
57
|
+
migrate:create <name> Create a new migration file
|
|
58
|
+
migrate:up [count] Run pending migrations (optional: number to run)
|
|
59
|
+
migrate:down [count] Rollback migrations (default: 1)
|
|
60
|
+
migrate:status Show migration status
|
|
61
|
+
help Show this help message
|
|
58
62
|
|
|
59
63
|
Examples:
|
|
60
|
-
torm studio
|
|
61
|
-
torm studio --port 8080
|
|
62
|
-
|
|
63
|
-
torm migrate
|
|
64
|
+
torm studio # Start TORM Studio at http://localhost:4983
|
|
65
|
+
torm studio --port 8080 # Start on custom port
|
|
66
|
+
|
|
67
|
+
torm migrate:create add_age # Create migration file
|
|
68
|
+
torm migrate:up # Run all pending migrations
|
|
69
|
+
torm migrate:up 1 # Run 1 migration
|
|
70
|
+
torm migrate:down # Rollback last migration
|
|
71
|
+
torm migrate:down 2 # Rollback last 2 migrations
|
|
72
|
+
torm migrate:status # Show applied/pending migrations
|
|
64
73
|
|
|
65
74
|
Config:
|
|
66
75
|
Create torm.config.ts in your project root with DB credentials
|
|
@@ -77,9 +86,31 @@ function findConfig() {
|
|
|
77
86
|
if (fs.existsSync(configPath)) {
|
|
78
87
|
console.log(`📝 Found config: ${configPath}\n`);
|
|
79
88
|
try {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
89
|
+
if (configPath.endsWith('.ts')) {
|
|
90
|
+
// Check if TypeScript loader is available
|
|
91
|
+
const hasLoader = checkTypeScriptLoader();
|
|
92
|
+
if (!hasLoader) {
|
|
93
|
+
console.error('⚠️ TypeScript config found but tsx/ts-node not installed');
|
|
94
|
+
console.error(' Install with: npm install -D tsx');
|
|
95
|
+
console.error(' Or use torm.config.js instead\n');
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
// Try to register TypeScript loader
|
|
99
|
+
try {
|
|
100
|
+
require('tsx/cjs');
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
try {
|
|
104
|
+
require('ts-node/register');
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
// Loader exists but can't register - try direct require anyway
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
const config = require(configPath);
|
|
111
|
+
return config.default || config;
|
|
112
|
+
}
|
|
113
|
+
else if (configPath.endsWith('.js')) {
|
|
83
114
|
const config = require(configPath);
|
|
84
115
|
return config.default || config;
|
|
85
116
|
}
|
|
@@ -95,33 +126,41 @@ async function studio() {
|
|
|
95
126
|
console.log('🚀 Starting TORM Studio...\n');
|
|
96
127
|
// Load config
|
|
97
128
|
const config = findConfig();
|
|
129
|
+
// If no config found, create one based on project type
|
|
98
130
|
if (!config) {
|
|
99
|
-
console.log('⚠️ No torm.config
|
|
131
|
+
console.log('⚠️ No torm.config found in current directory\n');
|
|
100
132
|
console.log('Creating a default config for you...\n');
|
|
101
|
-
//
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
133
|
+
// Detect project type
|
|
134
|
+
const isTypeScriptProject = detectTypeScriptProject();
|
|
135
|
+
if (isTypeScriptProject) {
|
|
136
|
+
console.log('📦 TypeScript project detected');
|
|
137
|
+
// Check for TypeScript loaders
|
|
138
|
+
const hasTsxOrTsNode = checkTypeScriptLoader();
|
|
139
|
+
if (!hasTsxOrTsNode) {
|
|
140
|
+
console.log('⚠️ TypeScript runtime not found');
|
|
141
|
+
console.log(' Installing tsx for TypeScript support...\n');
|
|
142
|
+
// Try to install tsx
|
|
143
|
+
try {
|
|
144
|
+
const { execSync } = require('child_process');
|
|
145
|
+
execSync('npm install -D tsx', { stdio: 'inherit' });
|
|
146
|
+
console.log('\n✅ Installed tsx\n');
|
|
147
|
+
createTypeScriptConfig();
|
|
148
|
+
}
|
|
149
|
+
catch (e) {
|
|
150
|
+
console.log('\n⚠️ Could not auto-install tsx');
|
|
151
|
+
console.log(' Creating .js config instead\n');
|
|
152
|
+
createJavaScriptConfig();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
createTypeScriptConfig();
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
console.log('📦 JavaScript project detected');
|
|
161
|
+
createJavaScriptConfig();
|
|
162
|
+
}
|
|
163
|
+
console.log('✅ Created config file');
|
|
125
164
|
console.log(' Edit this file with your database credentials\n');
|
|
126
165
|
console.log(' Then run `torm studio` again\n');
|
|
127
166
|
process.exit(0);
|
|
@@ -173,38 +212,338 @@ export default {
|
|
|
173
212
|
process.exit(0);
|
|
174
213
|
});
|
|
175
214
|
}
|
|
215
|
+
async function migrate() {
|
|
216
|
+
const action = command.split(':')[1]; // migrate:create, migrate:up, etc.
|
|
217
|
+
const config = findConfig();
|
|
218
|
+
if (!config) {
|
|
219
|
+
console.error('❌ No torm.config.ts found');
|
|
220
|
+
console.error(' Create one first by running: torm studio\n');
|
|
221
|
+
process.exit(1);
|
|
222
|
+
}
|
|
223
|
+
const dbOptions = {
|
|
224
|
+
host: config.dbCredentials?.host || process.env.TOONSTORE_HOST || 'localhost',
|
|
225
|
+
port: config.dbCredentials?.port || Number(process.env.TOONSTORE_PORT) || 6379,
|
|
226
|
+
url: config.dbCredentials?.url || process.env.TOONSTORE_URL,
|
|
227
|
+
};
|
|
228
|
+
const migrationsDir = config.migrations?.directory || path.join(process.cwd(), 'migrations');
|
|
229
|
+
const runner = new migrations_1.MigrationRunner(dbOptions, migrationsDir);
|
|
230
|
+
try {
|
|
231
|
+
switch (action) {
|
|
232
|
+
case 'create': {
|
|
233
|
+
const name = subcommand;
|
|
234
|
+
if (!name) {
|
|
235
|
+
console.error('❌ Migration name required');
|
|
236
|
+
console.error(' Usage: torm migrate:create <name>\n');
|
|
237
|
+
process.exit(1);
|
|
238
|
+
}
|
|
239
|
+
await runner.create(name);
|
|
240
|
+
break;
|
|
241
|
+
}
|
|
242
|
+
case 'up': {
|
|
243
|
+
const count = subcommand ? parseInt(subcommand) : undefined;
|
|
244
|
+
await runner.up(count);
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
247
|
+
case 'down': {
|
|
248
|
+
const count = subcommand ? parseInt(subcommand) : 1;
|
|
249
|
+
await runner.down(count);
|
|
250
|
+
break;
|
|
251
|
+
}
|
|
252
|
+
case 'status': {
|
|
253
|
+
await runner.status();
|
|
254
|
+
break;
|
|
255
|
+
}
|
|
256
|
+
default:
|
|
257
|
+
console.error(`❌ Unknown migration command: ${action}`);
|
|
258
|
+
console.error(' Use: create, up, down, or status\n');
|
|
259
|
+
process.exit(1);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
catch (error) {
|
|
263
|
+
console.error(`\n❌ Migration error: ${error.message}\n`);
|
|
264
|
+
process.exit(1);
|
|
265
|
+
}
|
|
266
|
+
finally {
|
|
267
|
+
await runner.close();
|
|
268
|
+
}
|
|
269
|
+
}
|
|
176
270
|
async function generate() {
|
|
177
|
-
console.log('🔧 Generating TypeScript types from
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
271
|
+
console.log('🔧 Generating TypeScript types from database...\n');
|
|
272
|
+
const config = findConfig();
|
|
273
|
+
if (!config) {
|
|
274
|
+
console.error('❌ No torm.config found');
|
|
275
|
+
console.error(' Create torm.config.js first\n');
|
|
276
|
+
process.exit(1);
|
|
277
|
+
}
|
|
278
|
+
const dbOptions = {
|
|
279
|
+
host: config.dbCredentials?.host || process.env.TOONSTORE_HOST || 'localhost',
|
|
280
|
+
port: config.dbCredentials?.port || Number(process.env.TOONSTORE_PORT) || 6379,
|
|
281
|
+
url: config.dbCredentials?.url || process.env.TOONSTORE_URL,
|
|
282
|
+
};
|
|
283
|
+
const Redis = require('ioredis');
|
|
284
|
+
const redis = dbOptions.url ? new Redis(dbOptions.url) : new Redis(dbOptions);
|
|
285
|
+
try {
|
|
286
|
+
console.log('📊 Scanning database for collections...\n');
|
|
287
|
+
// Get all keys
|
|
288
|
+
const allKeys = await redis.keys('toonstore:*');
|
|
289
|
+
if (allKeys.length === 0) {
|
|
290
|
+
console.log('⚠️ No data found in database');
|
|
291
|
+
console.log('💡 Create some models and data first, then run generate\n');
|
|
292
|
+
await redis.quit();
|
|
293
|
+
process.exit(0);
|
|
294
|
+
}
|
|
295
|
+
// Group keys by model name
|
|
296
|
+
const modelMap = {};
|
|
297
|
+
for (const key of allKeys) {
|
|
298
|
+
// Key format: toonstore:ModelName:id
|
|
299
|
+
const parts = key.split(':');
|
|
300
|
+
if (parts.length >= 3 && parts[0] === 'toonstore') {
|
|
301
|
+
const modelName = parts[1];
|
|
302
|
+
if (modelName === '_migrations')
|
|
303
|
+
continue; // Skip internal keys
|
|
304
|
+
if (!modelMap[modelName]) {
|
|
305
|
+
modelMap[modelName] = [];
|
|
306
|
+
}
|
|
307
|
+
const data = await redis.get(key);
|
|
308
|
+
if (data) {
|
|
309
|
+
try {
|
|
310
|
+
const parsed = JSON.parse(data);
|
|
311
|
+
modelMap[modelName].push(parsed);
|
|
312
|
+
}
|
|
313
|
+
catch (e) {
|
|
314
|
+
// Skip invalid JSON
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
const modelNames = Object.keys(modelMap);
|
|
320
|
+
if (modelNames.length === 0) {
|
|
321
|
+
console.log('⚠️ No valid models found in database\n');
|
|
322
|
+
await redis.quit();
|
|
323
|
+
process.exit(0);
|
|
324
|
+
}
|
|
325
|
+
console.log(`✅ Found ${modelNames.length} model(s): ${modelNames.join(', ')}\n`);
|
|
326
|
+
// Generate TypeScript interfaces
|
|
327
|
+
let output = `/**
|
|
328
|
+
* Auto-generated TypeScript types from ToonStoreDB
|
|
329
|
+
* Generated: ${new Date().toISOString()}
|
|
330
|
+
*
|
|
331
|
+
* ⚠️ DO NOT EDIT MANUALLY - This file is auto-generated
|
|
332
|
+
* Run 'npx torm generate' to regenerate
|
|
333
|
+
*/
|
|
334
|
+
|
|
335
|
+
`;
|
|
336
|
+
for (const modelName of modelNames) {
|
|
337
|
+
const documents = modelMap[modelName];
|
|
338
|
+
console.log(`📝 Analyzing ${modelName} (${documents.length} document${documents.length > 1 ? 's' : ''})...`);
|
|
339
|
+
// Infer types from all documents
|
|
340
|
+
const fieldTypes = {};
|
|
341
|
+
for (const doc of documents) {
|
|
342
|
+
for (const [field, value] of Object.entries(doc)) {
|
|
343
|
+
if (!fieldTypes[field]) {
|
|
344
|
+
fieldTypes[field] = new Set();
|
|
345
|
+
}
|
|
346
|
+
fieldTypes[field].add(inferType(value));
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
// Generate interface - capitalize first letter for TypeScript convention
|
|
350
|
+
const interfaceName = modelName.charAt(0).toUpperCase() + modelName.slice(1);
|
|
351
|
+
output += `export interface ${interfaceName} {\n`;
|
|
352
|
+
// Sort fields: _id and metadata first, then alphabetically
|
|
353
|
+
const fields = Object.keys(fieldTypes).sort((a, b) => {
|
|
354
|
+
if (a.startsWith('_') && !b.startsWith('_'))
|
|
355
|
+
return -1;
|
|
356
|
+
if (!a.startsWith('_') && b.startsWith('_'))
|
|
357
|
+
return 1;
|
|
358
|
+
return a.localeCompare(b);
|
|
359
|
+
});
|
|
360
|
+
for (const field of fields) {
|
|
361
|
+
const types = Array.from(fieldTypes[field]);
|
|
362
|
+
const typeStr = types.length > 1 ? types.join(' | ') : types[0];
|
|
363
|
+
// Check if field is optional (not present in all documents)
|
|
364
|
+
const isOptional = documents.some(doc => !(field in doc));
|
|
365
|
+
const optionalMarker = isOptional ? '?' : '';
|
|
366
|
+
output += ` ${field}${optionalMarker}: ${typeStr};\n`;
|
|
367
|
+
}
|
|
368
|
+
output += `}\n\n`;
|
|
369
|
+
}
|
|
370
|
+
// Write to file
|
|
371
|
+
const outputDir = path.join(process.cwd(), 'src', 'generated');
|
|
372
|
+
const outputFile = path.join(outputDir, 'torm-types.ts');
|
|
373
|
+
if (!fs.existsSync(outputDir)) {
|
|
374
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
375
|
+
}
|
|
376
|
+
fs.writeFileSync(outputFile, output);
|
|
377
|
+
console.log(`\n✅ Generated types for ${modelNames.length} model(s)`);
|
|
378
|
+
console.log(`📄 Output: ${outputFile}\n`);
|
|
379
|
+
console.log('💡 Usage:');
|
|
380
|
+
const interfaceNames = modelNames.map(name => name.charAt(0).toUpperCase() + name.slice(1));
|
|
381
|
+
console.log(` import { ${interfaceNames.join(', ')} } from './generated/torm-types';\n`);
|
|
382
|
+
await redis.quit();
|
|
383
|
+
}
|
|
384
|
+
catch (error) {
|
|
385
|
+
console.error(`\n❌ Error: ${error.message}\n`);
|
|
386
|
+
await redis.quit();
|
|
387
|
+
process.exit(1);
|
|
388
|
+
}
|
|
181
389
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
390
|
+
function inferType(value) {
|
|
391
|
+
if (value === null)
|
|
392
|
+
return 'null';
|
|
393
|
+
if (value === undefined)
|
|
394
|
+
return 'undefined';
|
|
395
|
+
const type = typeof value;
|
|
396
|
+
if (type === 'string')
|
|
397
|
+
return 'string';
|
|
398
|
+
if (type === 'number')
|
|
399
|
+
return 'number';
|
|
400
|
+
if (type === 'boolean')
|
|
401
|
+
return 'boolean';
|
|
402
|
+
if (Array.isArray(value)) {
|
|
403
|
+
if (value.length === 0)
|
|
404
|
+
return 'any[]';
|
|
405
|
+
// Infer array element types
|
|
406
|
+
const elementTypes = new Set(value.map(inferType));
|
|
407
|
+
if (elementTypes.size === 1) {
|
|
408
|
+
return `${Array.from(elementTypes)[0]}[]`;
|
|
409
|
+
}
|
|
410
|
+
return `(${Array.from(elementTypes).join(' | ')})[]`;
|
|
411
|
+
}
|
|
412
|
+
if (type === 'object')
|
|
413
|
+
return 'any'; // Could be more sophisticated
|
|
414
|
+
return 'any';
|
|
415
|
+
}
|
|
416
|
+
function detectTypeScriptProject() {
|
|
417
|
+
const cwd = process.cwd();
|
|
418
|
+
// Check for tsconfig.json
|
|
419
|
+
if (fs.existsSync(path.join(cwd, 'tsconfig.json'))) {
|
|
420
|
+
return true;
|
|
421
|
+
}
|
|
422
|
+
// Check package.json for TypeScript
|
|
423
|
+
const pkgPath = path.join(cwd, 'package.json');
|
|
424
|
+
if (fs.existsSync(pkgPath)) {
|
|
425
|
+
try {
|
|
426
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
|
|
427
|
+
// Check dependencies
|
|
428
|
+
const allDeps = {
|
|
429
|
+
...pkg.dependencies,
|
|
430
|
+
...pkg.devDependencies,
|
|
431
|
+
};
|
|
432
|
+
if (allDeps['typescript'] || allDeps['@types/node']) {
|
|
433
|
+
return true;
|
|
434
|
+
}
|
|
435
|
+
// Check if main/types field points to .ts files
|
|
436
|
+
if (pkg.main?.endsWith('.ts') || pkg.types?.endsWith('.ts')) {
|
|
437
|
+
return true;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
catch (e) {
|
|
441
|
+
// Invalid package.json, assume JS
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
// Default to JavaScript
|
|
445
|
+
return false;
|
|
446
|
+
}
|
|
447
|
+
function checkTypeScriptLoader() {
|
|
448
|
+
const pkgPath = path.join(process.cwd(), 'package.json');
|
|
449
|
+
if (fs.existsSync(pkgPath)) {
|
|
450
|
+
try {
|
|
451
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
|
|
452
|
+
const allDeps = {
|
|
453
|
+
...pkg.dependencies,
|
|
454
|
+
...pkg.devDependencies,
|
|
455
|
+
};
|
|
456
|
+
return !!(allDeps['tsx'] || allDeps['ts-node']);
|
|
457
|
+
}
|
|
458
|
+
catch (e) {
|
|
459
|
+
return false;
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
return false;
|
|
463
|
+
}
|
|
464
|
+
function createTypeScriptConfig() {
|
|
465
|
+
const config = `/**
|
|
466
|
+
* TORM Configuration
|
|
467
|
+
* Define your ToonStoreDB connection here
|
|
468
|
+
*/
|
|
469
|
+
|
|
470
|
+
export default {
|
|
471
|
+
// ToonStoreDB connection
|
|
472
|
+
dbCredentials: {
|
|
473
|
+
host: 'localhost',
|
|
474
|
+
port: 6379,
|
|
475
|
+
// For cloud/remote databases:
|
|
476
|
+
// password: process.env.TOONSTORE_PASSWORD,
|
|
477
|
+
// url: 'redis://user:pass@host:port',
|
|
478
|
+
},
|
|
479
|
+
|
|
480
|
+
// Studio configuration
|
|
481
|
+
studio: {
|
|
482
|
+
port: 4983,
|
|
483
|
+
},
|
|
484
|
+
|
|
485
|
+
// Migrations directory (optional)
|
|
486
|
+
migrations: {
|
|
487
|
+
directory: './migrations',
|
|
488
|
+
},
|
|
489
|
+
};
|
|
490
|
+
`;
|
|
491
|
+
fs.writeFileSync(path.join(process.cwd(), 'torm.config.ts'), config);
|
|
492
|
+
console.log('📄 Created: torm.config.ts');
|
|
493
|
+
}
|
|
494
|
+
function createJavaScriptConfig() {
|
|
495
|
+
const config = `/**
|
|
496
|
+
* TORM Configuration
|
|
497
|
+
* Define your ToonStoreDB connection here
|
|
498
|
+
*/
|
|
499
|
+
|
|
500
|
+
module.exports = {
|
|
501
|
+
// ToonStoreDB connection
|
|
502
|
+
dbCredentials: {
|
|
503
|
+
host: 'localhost',
|
|
504
|
+
port: 6379,
|
|
505
|
+
// For cloud/remote databases:
|
|
506
|
+
// password: process.env.TOONSTORE_PASSWORD,
|
|
507
|
+
// url: 'redis://user:pass@host:port',
|
|
508
|
+
},
|
|
509
|
+
|
|
510
|
+
// Studio configuration
|
|
511
|
+
studio: {
|
|
512
|
+
port: 4983,
|
|
513
|
+
},
|
|
514
|
+
|
|
515
|
+
// Migrations directory (optional)
|
|
516
|
+
migrations: {
|
|
517
|
+
directory: './migrations',
|
|
518
|
+
},
|
|
519
|
+
};
|
|
520
|
+
`;
|
|
521
|
+
fs.writeFileSync(path.join(process.cwd(), 'torm.config.js'), config);
|
|
522
|
+
console.log('📄 Created: torm.config.js');
|
|
187
523
|
}
|
|
188
524
|
// Main CLI logic
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
525
|
+
const fullCommand = command || '';
|
|
526
|
+
if (fullCommand.startsWith('migrate:')) {
|
|
527
|
+
migrate();
|
|
528
|
+
}
|
|
529
|
+
else {
|
|
530
|
+
switch (command) {
|
|
531
|
+
case 'studio':
|
|
532
|
+
studio();
|
|
533
|
+
break;
|
|
534
|
+
case 'generate':
|
|
535
|
+
generate();
|
|
536
|
+
break;
|
|
537
|
+
case 'help':
|
|
538
|
+
case '--help':
|
|
539
|
+
case '-h':
|
|
540
|
+
case undefined:
|
|
541
|
+
printHelp();
|
|
542
|
+
break;
|
|
543
|
+
default:
|
|
544
|
+
console.error(`❌ Unknown command: ${command}\n`);
|
|
545
|
+
printHelp();
|
|
546
|
+
process.exit(1);
|
|
547
|
+
}
|
|
209
548
|
}
|
|
210
549
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AAEA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iDAAsC;AACtC,2CAA6B;AAC7B,uCAAyB;AACzB,6CAA+C;AAE/C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6Bb,CAAC,CAAC;AACH,CAAC;AAkBD,SAAS,UAAU;IACjB,MAAM,WAAW,GAAG;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC;KAC3C,CAAC;IAEF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB,UAAU,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC;gBACH,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC/B,0CAA0C;oBAC1C,MAAM,SAAS,GAAG,qBAAqB,EAAE,CAAC;oBAE1C,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;wBAC3E,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;wBACrD,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;wBACpD,SAAS;oBACX,CAAC;oBAED,oCAAoC;oBACpC,IAAI,CAAC;wBACH,OAAO,CAAC,SAAS,CAAC,CAAC;oBACrB,CAAC;oBAAC,MAAM,CAAC;wBACP,IAAI,CAAC;4BACH,OAAO,CAAC,kBAAkB,CAAC,CAAC;wBAC9B,CAAC;wBAAC,MAAM,CAAC;4BACP,+DAA+D;wBACjE,CAAC;oBACH,CAAC;oBAED,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;oBACnC,OAAO,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC;gBAClC,CAAC;qBAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBACtC,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;oBACnC,OAAO,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC;gBAClC,CAAC;YACH,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,6BAA6B,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,MAAM;IACnB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAE5C,cAAc;IACd,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,uDAAuD;IACvD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QAEtD,sBAAsB;QACtB,MAAM,mBAAmB,GAAG,uBAAuB,EAAE,CAAC;QAEtD,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;YAC9C,+BAA+B;YAC/B,MAAM,cAAc,GAAG,qBAAqB,EAAE,CAAC;YAE/C,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;gBAE7D,qBAAqB;gBACrB,IAAI,CAAC;oBACH,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;oBAC9C,QAAQ,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;oBACrD,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;oBACnC,sBAAsB,EAAE,CAAC;gBAC3B,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;oBAChD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;oBAChD,sBAAsB,EAAE,CAAC;gBAC3B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,sBAAsB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;YAC9C,sBAAsB,EAAE,CAAC;QAC3B,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,0CAA0C;IAC1C,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,oBAAoB;IACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;SAAM,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QAC/B,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,mCAAmC;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAE5D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAEnD,wCAAwC;IACxC,MAAM,GAAG,GAAG;QACV,GAAG,OAAO,CAAC,GAAG;QACd,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;QACrB,cAAc,EAAE,MAAM,CAAC,aAAa,EAAE,IAAI,IAAI,WAAW;QACzD,cAAc,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE;QAC/D,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG,IAAI,EAAE;QAC9C,kBAAkB,EAAE,MAAM,CAAC,aAAa,EAAE,QAAQ,IAAI,EAAE;KACzD,CAAC;IAEF,MAAM,MAAM,GAAG,IAAA,qBAAK,EAAC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE;QACzC,KAAK,EAAE,SAAS;QAChB,GAAG;KACJ,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACzB,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QAC1B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,OAAO;IACpB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mCAAmC;IAEzE,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,SAAS,GAAG;QAChB,IAAI,EAAE,MAAM,CAAC,aAAa,EAAE,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,WAAW;QAC7E,IAAI,EAAE,MAAM,CAAC,aAAa,EAAE,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI;QAC9E,GAAG,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;KAC5D,CAAC;IAEF,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,EAAE,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;IAC7F,MAAM,MAAM,GAAG,IAAI,4BAAe,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAE7D,IAAI,CAAC;QACH,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,IAAI,GAAG,UAAU,CAAC;gBACxB,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;oBAC3C,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;oBACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM;YACR,CAAC;YAED,KAAK,IAAI,CAAC,CAAC,CAAC;gBACV,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC5D,MAAM,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBACvB,MAAM;YACR,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpD,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzB,MAAM;YACR,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtB,MAAM;YACR,CAAC;YAED;gBACE,OAAO,CAAC,KAAK,CAAC,gCAAgC,MAAM,EAAE,CAAC,CAAC;gBACxD,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,wBAAwB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ;IACrB,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IAEjE,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,SAAS,GAAG;QAChB,IAAI,EAAE,MAAM,CAAC,aAAa,EAAE,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,WAAW;QAC7E,IAAI,EAAE,MAAM,CAAC,aAAa,EAAE,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI;QAC9E,GAAG,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;KAC5D,CAAC;IAEF,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IAE9E,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAEzD,eAAe;QACf,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEhD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;YACzE,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,2BAA2B;QAC3B,MAAM,QAAQ,GAA6B,EAAE,CAAC;QAE9C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,qCAAqC;YACrC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;gBAClD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,SAAS,KAAK,aAAa;oBAAE,SAAS,CAAC,qBAAqB;gBAEhE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACzB,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;gBAC3B,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAChC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACnC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,oBAAoB;oBACtB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YACvD,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,WAAW,UAAU,CAAC,MAAM,cAAc,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjF,iCAAiC;QACjC,IAAI,MAAM,GAAG;;gBAED,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;;;;;;CAMvC,CAAC;QAEE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,KAAK,SAAS,CAAC,MAAM,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAE7G,iCAAiC;YACjC,MAAM,UAAU,GAAmC,EAAE,CAAC;YAEtD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC5B,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACjD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;wBACvB,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;oBAChC,CAAC;oBACD,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;YAED,yEAAyE;YACzE,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7E,MAAM,IAAI,oBAAoB,aAAa,MAAM,CAAC;YAElD,2DAA2D;YAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACnD,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,OAAO,CAAC,CAAC,CAAC;gBACvD,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,OAAO,CAAC,CAAC;gBACtD,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAEhE,4DAA4D;gBAC5D,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC;gBAC1D,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAE7C,MAAM,IAAI,KAAK,KAAK,GAAG,cAAc,KAAK,OAAO,KAAK,CAAC;YACzD,CAAC;YAED,MAAM,IAAI,OAAO,CAAC;QACpB,CAAC;QAED,gBAAgB;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QAEzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAErC,OAAO,CAAC,GAAG,CAAC,2BAA2B,UAAU,CAAC,MAAM,WAAW,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,IAAI,CAAC,CAAC;QAE1C,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,OAAO,CAAC,GAAG,CAAC,eAAe,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAE3F,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAC/C,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAU;IAC3B,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC;IAE5C,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;IAE1B,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACvC,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACvC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAEzC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QAEvC,4BAA4B;QAC5B,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACnD,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IACvD,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,CAAC,8BAA8B;IAEnE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,0BAA0B;IAC1B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAoC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;YAEzD,qBAAqB;YACrB,MAAM,OAAO,GAAG;gBACd,GAAG,GAAG,CAAC,YAAY;gBACnB,GAAG,GAAG,CAAC,eAAe;aACvB,CAAC;YAEF,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBACpD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,gDAAgD;YAChD,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5D,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,kCAAkC;QACpC,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;IACzD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG;gBACd,GAAG,GAAG,CAAC,YAAY;gBACnB,GAAG,GAAG,CAAC,eAAe;aACvB,CAAC;YAEF,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBhB,CAAC;IAEA,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBhB,CAAC;IAEA,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;AAC5C,CAAC;AAED,iBAAiB;AACjB,MAAM,WAAW,GAAG,OAAO,IAAI,EAAE,CAAC;AAElC,IAAI,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;IACvC,OAAO,EAAE,CAAC;AACZ,CAAC;KAAM,CAAC;IACN,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,QAAQ;YACX,MAAM,EAAE,CAAC;YACT,MAAM;QACR,KAAK,UAAU;YACb,QAAQ,EAAE,CAAC;YACX,MAAM;QACR,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI,CAAC;QACV,KAAK,SAAS;YACZ,SAAS,EAAE,CAAC;YACZ,MAAM;QACR;YACE,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,IAAI,CAAC,CAAC;YACjD,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TORM Migration System
|
|
3
|
+
* Handles data-shape migrations for schemaless ToonStoreDB
|
|
4
|
+
*/
|
|
5
|
+
import Redis from 'ioredis';
|
|
6
|
+
export interface Migration {
|
|
7
|
+
name: string;
|
|
8
|
+
timestamp: string;
|
|
9
|
+
up: (client: Redis) => Promise<void>;
|
|
10
|
+
down: (client: Redis) => Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export declare class MigrationRunner {
|
|
13
|
+
private redis;
|
|
14
|
+
private migrationsDir;
|
|
15
|
+
private migrationKey;
|
|
16
|
+
constructor(redisOptions: {
|
|
17
|
+
host?: string;
|
|
18
|
+
port?: number;
|
|
19
|
+
url?: string;
|
|
20
|
+
}, migrationsDir?: string);
|
|
21
|
+
/**
|
|
22
|
+
* Get list of applied migrations from database
|
|
23
|
+
*/
|
|
24
|
+
getAppliedMigrations(): Promise<string[]>;
|
|
25
|
+
/**
|
|
26
|
+
* Save applied migrations to database
|
|
27
|
+
*/
|
|
28
|
+
saveAppliedMigrations(migrations: string[]): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Get list of migration files from directory
|
|
31
|
+
*/
|
|
32
|
+
getMigrationFiles(): string[];
|
|
33
|
+
/**
|
|
34
|
+
* Load a migration module
|
|
35
|
+
*/
|
|
36
|
+
loadMigration(filename: string): Promise<Migration>;
|
|
37
|
+
/**
|
|
38
|
+
* Get pending migrations that haven't been applied yet
|
|
39
|
+
*/
|
|
40
|
+
getPendingMigrations(): Promise<Migration[]>;
|
|
41
|
+
/**
|
|
42
|
+
* Run pending migrations
|
|
43
|
+
*/
|
|
44
|
+
up(count?: number): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Rollback last migration
|
|
47
|
+
*/
|
|
48
|
+
down(count?: number): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Show migration status
|
|
51
|
+
*/
|
|
52
|
+
status(): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Create a new migration file
|
|
55
|
+
*/
|
|
56
|
+
create(name: string): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Close Redis connection
|
|
59
|
+
*/
|
|
60
|
+
close(): Promise<void>;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=migrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,SAAS,CAAC;AAI5B,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAA2B;gBAEnC,YAAY,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,aAAa,CAAC,EAAE,MAAM;IAahG;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAK/C;;OAEG;IACG,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE;;OAEG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAW7B;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAoBzD;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAgBlD;;OAEG;IACG,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BvC;;OAEG;IACG,IAAI,CAAC,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAyC5C;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB7B;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkEzC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|