@arikajs/cli 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 (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +366 -0
  3. package/dist/bin/arika.d.ts +3 -0
  4. package/dist/bin/arika.d.ts.map +1 -0
  5. package/dist/bin/arika.js +21 -0
  6. package/dist/bin/arika.js.map +1 -0
  7. package/dist/src/ApplicationLoader.d.ts +8 -0
  8. package/dist/src/ApplicationLoader.d.ts.map +1 -0
  9. package/dist/src/ApplicationLoader.js +31 -0
  10. package/dist/src/ApplicationLoader.js.map +1 -0
  11. package/dist/src/Bootstrap.d.ts +5 -0
  12. package/dist/src/Bootstrap.d.ts.map +1 -0
  13. package/dist/src/Bootstrap.js +66 -0
  14. package/dist/src/Bootstrap.js.map +1 -0
  15. package/dist/src/Commands/CacheTableCommand.d.ts +7 -0
  16. package/dist/src/Commands/CacheTableCommand.d.ts.map +1 -0
  17. package/dist/src/Commands/CacheTableCommand.js +45 -0
  18. package/dist/src/Commands/CacheTableCommand.js.map +1 -0
  19. package/dist/src/Commands/DatabaseCommand.d.ts +11 -0
  20. package/dist/src/Commands/DatabaseCommand.d.ts.map +1 -0
  21. package/dist/src/Commands/DatabaseCommand.js +94 -0
  22. package/dist/src/Commands/DatabaseCommand.js.map +1 -0
  23. package/dist/src/Commands/DbSeedCommand.d.ts +10 -0
  24. package/dist/src/Commands/DbSeedCommand.d.ts.map +1 -0
  25. package/dist/src/Commands/DbSeedCommand.js +70 -0
  26. package/dist/src/Commands/DbSeedCommand.js.map +1 -0
  27. package/dist/src/Commands/DocsGenerateCommand.d.ts +8 -0
  28. package/dist/src/Commands/DocsGenerateCommand.d.ts.map +1 -0
  29. package/dist/src/Commands/DocsGenerateCommand.js +102 -0
  30. package/dist/src/Commands/DocsGenerateCommand.js.map +1 -0
  31. package/dist/src/Commands/KeyGenerateCommand.d.ts +9 -0
  32. package/dist/src/Commands/KeyGenerateCommand.d.ts.map +1 -0
  33. package/dist/src/Commands/KeyGenerateCommand.js +44 -0
  34. package/dist/src/Commands/KeyGenerateCommand.js.map +1 -0
  35. package/dist/src/Commands/ListCommand.d.ts +7 -0
  36. package/dist/src/Commands/ListCommand.d.ts.map +1 -0
  37. package/dist/src/Commands/ListCommand.js +26 -0
  38. package/dist/src/Commands/ListCommand.js.map +1 -0
  39. package/dist/src/Commands/MakeMigrationCommand.d.ts +14 -0
  40. package/dist/src/Commands/MakeMigrationCommand.d.ts.map +1 -0
  41. package/dist/src/Commands/MakeMigrationCommand.js +72 -0
  42. package/dist/src/Commands/MakeMigrationCommand.js.map +1 -0
  43. package/dist/src/Commands/MakeSeederCommand.d.ts +14 -0
  44. package/dist/src/Commands/MakeSeederCommand.d.ts.map +1 -0
  45. package/dist/src/Commands/MakeSeederCommand.js +56 -0
  46. package/dist/src/Commands/MakeSeederCommand.js.map +1 -0
  47. package/dist/src/Commands/MigrateCommand.d.ts +10 -0
  48. package/dist/src/Commands/MigrateCommand.d.ts.map +1 -0
  49. package/dist/src/Commands/MigrateCommand.js +69 -0
  50. package/dist/src/Commands/MigrateCommand.js.map +1 -0
  51. package/dist/src/Commands/MigrateRollbackCommand.d.ts +10 -0
  52. package/dist/src/Commands/MigrateRollbackCommand.d.ts.map +1 -0
  53. package/dist/src/Commands/MigrateRollbackCommand.js +69 -0
  54. package/dist/src/Commands/MigrateRollbackCommand.js.map +1 -0
  55. package/dist/src/Commands/NewCommand.d.ts +8 -0
  56. package/dist/src/Commands/NewCommand.d.ts.map +1 -0
  57. package/dist/src/Commands/NewCommand.js +112 -0
  58. package/dist/src/Commands/NewCommand.js.map +1 -0
  59. package/dist/src/Commands/QueueTableCommand.d.ts +7 -0
  60. package/dist/src/Commands/QueueTableCommand.d.ts.map +1 -0
  61. package/dist/src/Commands/QueueTableCommand.js +49 -0
  62. package/dist/src/Commands/QueueTableCommand.js.map +1 -0
  63. package/dist/src/Commands/ServeCommand.d.ts +7 -0
  64. package/dist/src/Commands/ServeCommand.d.ts.map +1 -0
  65. package/dist/src/Commands/ServeCommand.js +60 -0
  66. package/dist/src/Commands/ServeCommand.js.map +1 -0
  67. package/dist/src/TemplateManager.d.ts +19 -0
  68. package/dist/src/TemplateManager.d.ts.map +1 -0
  69. package/dist/src/TemplateManager.js +133 -0
  70. package/dist/src/TemplateManager.js.map +1 -0
  71. package/dist/src/index.d.ts +3 -0
  72. package/dist/src/index.d.ts.map +1 -0
  73. package/dist/src/index.js +8 -0
  74. package/dist/src/index.js.map +1 -0
  75. package/dist/tests/Cli.test.d.ts +2 -0
  76. package/dist/tests/Cli.test.d.ts.map +1 -0
  77. package/dist/tests/Cli.test.js +16 -0
  78. package/dist/tests/Cli.test.js.map +1 -0
  79. package/package.json +55 -0
  80. package/templates/app/.env.example +47 -0
  81. package/templates/app/app/Controllers/UserController.ts +88 -0
  82. package/templates/app/app/Http/Kernel.ts +18 -0
  83. package/templates/app/app/Models/User.ts +15 -0
  84. package/templates/app/bootstrap/app.ts +13 -0
  85. package/templates/app/config/app.ts +9 -0
  86. package/templates/app/config/cache.ts +37 -0
  87. package/templates/app/config/database.ts +36 -0
  88. package/templates/app/config/filesystems.ts +33 -0
  89. package/templates/app/config/http.ts +5 -0
  90. package/templates/app/config/logging.ts +35 -0
  91. package/templates/app/config/mail.ts +27 -0
  92. package/templates/app/config/queue.ts +40 -0
  93. package/templates/app/database/migrations/0001_create_users_table.ts +23 -0
  94. package/templates/app/package.json +21 -0
  95. package/templates/app/resources/views/welcome.html +470 -0
  96. package/templates/app/routes/api.ts +34 -0
  97. package/templates/app/routes/web.ts +6 -0
  98. package/templates/app/server.ts +16 -0
  99. package/templates/app/tsconfig.json +15 -0
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.DatabaseCommand = void 0;
40
+ const console_1 = require("@arikajs/console");
41
+ const path_1 = __importDefault(require("path"));
42
+ const fs_1 = __importDefault(require("fs"));
43
+ const dotenv = __importStar(require("dotenv"));
44
+ /**
45
+ * Base class for database-related commands
46
+ */
47
+ class DatabaseCommand extends console_1.Command {
48
+ /**
49
+ * Get a DatabaseManager instance configured with application settings
50
+ */
51
+ async getDatabaseManager() {
52
+ // Load .env from project root
53
+ dotenv.config();
54
+ const root = process.cwd();
55
+ const { DatabaseManager } = await Promise.resolve().then(() => __importStar(require('@arikajs/database')));
56
+ // Try to find database config
57
+ let configPath = path_1.default.join(root, 'config/database.ts');
58
+ if (!fs_1.default.existsSync(configPath)) {
59
+ configPath = path_1.default.join(root, 'config/database.js');
60
+ }
61
+ if (!fs_1.default.existsSync(configPath)) {
62
+ throw new Error('Database configuration not found. Please ensure config/database.ts exists.');
63
+ }
64
+ // Use ts-node for .ts files
65
+ if (configPath.endsWith('.ts')) {
66
+ try {
67
+ // Register ts-node if it exists in the project
68
+ const tsNodePath = path_1.default.join(root, 'node_modules', 'ts-node');
69
+ if (fs_1.default.existsSync(tsNodePath)) {
70
+ require(tsNodePath).register({ transpileOnly: true });
71
+ }
72
+ else {
73
+ // Fallback to global/environment ts-node register
74
+ require('ts-node/register');
75
+ }
76
+ }
77
+ catch (e) {
78
+ // Ignore if ts-node/register fails, maybe it's already handled by arika-cli runner
79
+ }
80
+ }
81
+ try {
82
+ // Clear cache for the config file to ensure we get fresh values
83
+ delete require.cache[require.resolve(configPath)];
84
+ const configModule = require(configPath);
85
+ const config = configModule.default || configModule;
86
+ return new DatabaseManager(config);
87
+ }
88
+ catch (error) {
89
+ throw new Error(`Failed to load database configuration: ${error.message}`);
90
+ }
91
+ }
92
+ }
93
+ exports.DatabaseCommand = DatabaseCommand;
94
+ //# sourceMappingURL=DatabaseCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatabaseCommand.js","sourceRoot":"","sources":["../../../src/Commands/DatabaseCommand.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,8CAA2C;AAC3C,gDAAwB;AACxB,4CAAoB;AACpB,+CAAiC;AAEjC;;GAEG;AACH,MAAsB,eAAgB,SAAQ,iBAAO;IACjD;;OAEG;IACO,KAAK,CAAC,kBAAkB;QAC9B,8BAA8B;QAC9B,MAAM,CAAC,MAAM,EAAE,CAAC;QAEhB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAE3B,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;QAE9D,8BAA8B;QAC9B,IAAI,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QACvD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAClG,CAAC;QAED,4BAA4B;QAC5B,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACD,+CAA+C;gBAC/C,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;gBAC9D,IAAI,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC5B,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1D,CAAC;qBAAM,CAAC;oBACJ,kDAAkD;oBAClD,OAAO,CAAC,kBAAkB,CAAC,CAAC;gBAChC,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,mFAAmF;YACvF,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACD,gEAAgE;YAChE,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;YAClD,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC;YACpD,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,0CAA0C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;CACJ;AAhDD,0CAgDC"}
@@ -0,0 +1,10 @@
1
+ import { DatabaseCommand } from './DatabaseCommand';
2
+ /**
3
+ * Command to seed the database
4
+ */
5
+ export declare class DbSeedCommand extends DatabaseCommand {
6
+ signature: string;
7
+ description: string;
8
+ handle(): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=DbSeedCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DbSeedCommand.d.ts","sourceRoot":"","sources":["../../../src/Commands/DbSeedCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD;;GAEG;AACH,qBAAa,aAAc,SAAQ,eAAe;IACvC,SAAS,SAAwB;IACjC,WAAW,SAAoC;IAEzC,MAAM;CAoBtB"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.DbSeedCommand = void 0;
40
+ const DatabaseCommand_1 = require("./DatabaseCommand");
41
+ const path_1 = __importDefault(require("path"));
42
+ /**
43
+ * Command to seed the database
44
+ */
45
+ class DbSeedCommand extends DatabaseCommand_1.DatabaseCommand {
46
+ constructor() {
47
+ super(...arguments);
48
+ this.signature = 'db:seed {--class=}';
49
+ this.description = 'Seed the database with records';
50
+ }
51
+ async handle() {
52
+ const seederClass = this.option('class');
53
+ this.info(seederClass ? `Seeding: ${seederClass}` : 'Running database seeders...');
54
+ try {
55
+ const { SeedRunner } = await Promise.resolve().then(() => __importStar(require('@arikajs/database')));
56
+ const db = await this.getDatabaseManager();
57
+ const seedersPath = path_1.default.join(process.cwd(), 'database/seeders');
58
+ const runner = new SeedRunner(db, seedersPath);
59
+ await runner.run(seederClass);
60
+ await db.closeAll();
61
+ this.info('Seeding completed.');
62
+ }
63
+ catch (error) {
64
+ this.error(`Seeding failed: ${error.message}`);
65
+ process.exit(1);
66
+ }
67
+ }
68
+ }
69
+ exports.DbSeedCommand = DbSeedCommand;
70
+ //# sourceMappingURL=DbSeedCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DbSeedCommand.js","sourceRoot":"","sources":["../../../src/Commands/DbSeedCommand.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uDAAoD;AACpD,gDAAwB;AAExB;;GAEG;AACH,MAAa,aAAc,SAAQ,iCAAe;IAAlD;;QACW,cAAS,GAAG,oBAAoB,CAAC;QACjC,gBAAW,GAAG,gCAAgC,CAAC;IAsB1D,CAAC;IApBU,KAAK,CAAC,MAAM;QACf,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEzC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,WAAW,EAAE,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC;QAEnF,IAAI,CAAC;YACD,MAAM,EAAE,UAAU,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;YACzD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC3C,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAC;YAEjE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;YAC/C,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAE9B,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,mBAAmB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;CACJ;AAxBD,sCAwBC"}
@@ -0,0 +1,8 @@
1
+ import { Command } from '@arikajs/console';
2
+ export declare class DocsGenerateCommand extends Command {
3
+ signature: string;
4
+ description: string;
5
+ handle(): Promise<void>;
6
+ private loadApplicationRoutes;
7
+ }
8
+ //# sourceMappingURL=DocsGenerateCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocsGenerateCommand.d.ts","sourceRoot":"","sources":["../../../src/Commands/DocsGenerateCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAI3C,qBAAa,mBAAoB,SAAQ,OAAO;IACrC,SAAS,SAAmB;IAC5B,WAAW,SAAsE;IAE3E,MAAM;YAuCL,qBAAqB;CAmBtC"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.DocsGenerateCommand = void 0;
40
+ const console_1 = require("@arikajs/console");
41
+ const path_1 = __importDefault(require("path"));
42
+ const fs_1 = __importDefault(require("fs"));
43
+ class DocsGenerateCommand extends console_1.Command {
44
+ constructor() {
45
+ super(...arguments);
46
+ this.signature = 'docs:generate';
47
+ this.description = 'Generate API documentation, Postman collection, and OpenAPI spec';
48
+ }
49
+ async handle() {
50
+ this.info('🔍 Extracting route information...');
51
+ const appDir = process.cwd();
52
+ // We need to load the application to register routes
53
+ // This command assumes it's being run from the root of an ArikaJS project
54
+ try {
55
+ const bootstrapPath = path_1.default.join(appDir, 'bootstrap', 'app.ts');
56
+ if (fs_1.default.existsSync(bootstrapPath)) {
57
+ // In a real scenario, we would need to dynamically import the app
58
+ // and its routes. For the CLI, we can try to require the routes files.
59
+ // We'll use a loader approach.
60
+ await this.loadApplicationRoutes(appDir);
61
+ }
62
+ const { DocumentationGenerator } = await Promise.resolve().then(() => __importStar(require('@arikajs/docs')));
63
+ const generator = new DocumentationGenerator();
64
+ const packageJson = JSON.parse(fs_1.default.readFileSync(path_1.default.join(appDir, 'package.json'), 'utf8'));
65
+ const appName = packageJson.name || 'ArikaJS App';
66
+ const outputDir = path_1.default.join(appDir, 'docs');
67
+ this.info(`🚀 Generating documentation in: ${outputDir}`);
68
+ generator.generateAll(appName, outputDir);
69
+ this.info('\n✨ Documentation generated successfully:');
70
+ this.comment(` - ${path_1.default.join('docs', 'api_docs.html')} (Arika-themed HTML)`);
71
+ this.comment(` - ${path_1.default.join('docs', 'DOCS.md')} (Markdown)`);
72
+ this.comment(` - ${path_1.default.join('docs', 'postman_collection.json')} (Postman)`);
73
+ this.comment(` - ${path_1.default.join('docs', 'openapi.json')} (OpenAPI 3.0)`);
74
+ this.info('\nHappy documenting!\n');
75
+ }
76
+ catch (error) {
77
+ this.error(`Failed to generate docs: ${error.message}`);
78
+ }
79
+ }
80
+ async loadApplicationRoutes(appDir) {
81
+ // Find routes directory
82
+ const routesDir = path_1.default.join(appDir, 'routes');
83
+ if (fs_1.default.existsSync(routesDir)) {
84
+ const files = fs_1.default.readdirSync(routesDir);
85
+ for (const file of files) {
86
+ if (file.endsWith('.ts') || file.endsWith('.js')) {
87
+ // We use ts-node/register or tsx already in dev,
88
+ // but for a standalone command we might need more setup.
89
+ // For now, we assume the environment is set up.
90
+ try {
91
+ await Promise.resolve(`${path_1.default.join(routesDir, file)}`).then(s => __importStar(require(s)));
92
+ }
93
+ catch (e) {
94
+ // Ignore errors if some routes depend on things not yet available
95
+ }
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
101
+ exports.DocsGenerateCommand = DocsGenerateCommand;
102
+ //# sourceMappingURL=DocsGenerateCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocsGenerateCommand.js","sourceRoot":"","sources":["../../../src/Commands/DocsGenerateCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Command } from '@arikajs/console';
2
+ export declare class KeyGenerateCommand extends Command {
3
+ signature: string;
4
+ description: string;
5
+ handle(): Promise<void>;
6
+ private generateRandomKey;
7
+ private setKeyInEnvironmentFile;
8
+ }
9
+ //# sourceMappingURL=KeyGenerateCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyGenerateCommand.d.ts","sourceRoot":"","sources":["../../../src/Commands/KeyGenerateCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAK3C,qBAAa,kBAAmB,SAAQ,OAAO;IACpC,SAAS,SAAkB;IAC3B,WAAW,SAA6B;IAElC,MAAM;IAenB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,uBAAuB;CAYlC"}
@@ -0,0 +1,44 @@
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.KeyGenerateCommand = void 0;
7
+ const console_1 = require("@arikajs/console");
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const path_1 = __importDefault(require("path"));
10
+ const crypto_1 = require("crypto");
11
+ class KeyGenerateCommand extends console_1.Command {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.signature = 'key:generate';
15
+ this.description = 'Set the application key';
16
+ }
17
+ async handle() {
18
+ const envPath = path_1.default.join(process.cwd(), '.env');
19
+ if (!fs_1.default.existsSync(envPath)) {
20
+ this.error('.env file not found.');
21
+ return;
22
+ }
23
+ const key = this.generateRandomKey();
24
+ if (this.setKeyInEnvironmentFile(envPath, key)) {
25
+ this.info('Application key set successfully.');
26
+ }
27
+ }
28
+ generateRandomKey() {
29
+ return 'base64:' + (0, crypto_1.randomBytes)(32).toString('base64');
30
+ }
31
+ setKeyInEnvironmentFile(path, key) {
32
+ let content = fs_1.default.readFileSync(path, 'utf8');
33
+ if (content.includes('APP_KEY=')) {
34
+ content = content.replace(/APP_KEY=.*/, `APP_KEY=${key}`);
35
+ }
36
+ else {
37
+ content += `\nAPP_KEY=${key}\n`;
38
+ }
39
+ fs_1.default.writeFileSync(path, content);
40
+ return true;
41
+ }
42
+ }
43
+ exports.KeyGenerateCommand = KeyGenerateCommand;
44
+ //# sourceMappingURL=KeyGenerateCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyGenerateCommand.js","sourceRoot":"","sources":["../../../src/Commands/KeyGenerateCommand.ts"],"names":[],"mappings":";;;;;;AACA,8CAA2C;AAC3C,4CAAoB;AACpB,gDAAwB;AACxB,mCAAqC;AAErC,MAAa,kBAAmB,SAAQ,iBAAO;IAA/C;;QACW,cAAS,GAAG,cAAc,CAAC;QAC3B,gBAAW,GAAG,yBAAyB,CAAC;IAiCnD,CAAC;IA/BU,KAAK,CAAC,MAAM;QACf,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;QAEjD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACnC,OAAO;QACX,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAErC,IAAI,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IAEO,iBAAiB;QACrB,OAAO,SAAS,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAEO,uBAAuB,CAAC,IAAY,EAAE,GAAW;QACrD,IAAI,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE5C,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,GAAG,EAAE,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,aAAa,GAAG,IAAI,CAAC;QACpC,CAAC;QAED,YAAE,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAnCD,gDAmCC"}
@@ -0,0 +1,7 @@
1
+ import { Command } from '@arikajs/console';
2
+ export declare class ListCommand extends Command {
3
+ signature: string;
4
+ description: string;
5
+ handle(): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=ListCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListCommand.d.ts","sourceRoot":"","sources":["../../../src/Commands/ListCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,qBAAa,WAAY,SAAQ,OAAO;IAC7B,SAAS,SAAU;IACnB,WAAW,SAAiC;IAEtC,MAAM;CAgBtB"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ListCommand = void 0;
4
+ const console_1 = require("@arikajs/console");
5
+ class ListCommand extends console_1.Command {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.signature = 'list';
9
+ this.description = 'List all available commands';
10
+ }
11
+ async handle() {
12
+ this.info('\nArikaJS CLI\n');
13
+ this.comment('Available commands:');
14
+ const commands = this.registry.all();
15
+ for (const [name, data] of commands.entries()) {
16
+ const description = data.description || '';
17
+ const paddedName = name.padEnd(20);
18
+ this.write(' - ');
19
+ this.info(paddedName);
20
+ this.comment(description);
21
+ }
22
+ this.writeln('');
23
+ }
24
+ }
25
+ exports.ListCommand = ListCommand;
26
+ //# sourceMappingURL=ListCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListCommand.js","sourceRoot":"","sources":["../../../src/Commands/ListCommand.ts"],"names":[],"mappings":";;;AACA,8CAA2C;AAE3C,MAAa,WAAY,SAAQ,iBAAO;IAAxC;;QACW,cAAS,GAAG,MAAM,CAAC;QACnB,gBAAW,GAAG,6BAA6B,CAAC;IAkBvD,CAAC;IAhBU,KAAK,CAAC,MAAM;QACf,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAErC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;CACJ;AApBD,kCAoBC"}
@@ -0,0 +1,14 @@
1
+ import { Command } from '@arikajs/console';
2
+ /**
3
+ * Command to create a new migration file
4
+ */
5
+ export declare class MakeMigrationCommand extends Command {
6
+ signature: string;
7
+ description: string;
8
+ handle(): Promise<void>;
9
+ /**
10
+ * Get the migration stub content
11
+ */
12
+ private getStub;
13
+ }
14
+ //# sourceMappingURL=MakeMigrationCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MakeMigrationCommand.d.ts","sourceRoot":"","sources":["../../../src/Commands/MakeMigrationCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAI3C;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,OAAO;IACtC,SAAS,SAA2B;IACpC,WAAW,SAAiC;IAEtC,MAAM;IA6BnB;;OAEG;IACH,OAAO,CAAC,OAAO;CA0BlB"}
@@ -0,0 +1,72 @@
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.MakeMigrationCommand = void 0;
7
+ const console_1 = require("@arikajs/console");
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const path_1 = __importDefault(require("path"));
10
+ /**
11
+ * Command to create a new migration file
12
+ */
13
+ class MakeMigrationCommand extends console_1.Command {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.signature = 'make:migration {name}';
17
+ this.description = 'Create a new migration file';
18
+ }
19
+ async handle() {
20
+ const name = this.argument('name');
21
+ if (!name) {
22
+ this.error('Migration name is required.');
23
+ return;
24
+ }
25
+ const date = new Date();
26
+ const timestamp = date.getFullYear().toString() +
27
+ (date.getMonth() + 1).toString().padStart(2, '0') +
28
+ date.getDate().toString().padStart(2, '0') +
29
+ date.getHours().toString().padStart(2, '0') +
30
+ date.getMinutes().toString().padStart(2, '0') +
31
+ date.getSeconds().toString().padStart(2, '0');
32
+ const fileName = `${timestamp}_${name}.ts`;
33
+ const migrationsDir = path_1.default.join(process.cwd(), 'database/migrations');
34
+ if (!fs_1.default.existsSync(migrationsDir)) {
35
+ fs_1.default.mkdirSync(migrationsDir, { recursive: true });
36
+ }
37
+ const filePath = path_1.default.join(migrationsDir, fileName);
38
+ const stub = this.getStub(name);
39
+ fs_1.default.writeFileSync(filePath, stub);
40
+ this.info(`Migration created: database/migrations/${fileName}`);
41
+ }
42
+ /**
43
+ * Get the migration stub content
44
+ */
45
+ getStub(name) {
46
+ const className = name.split('_').map(s => s.charAt(0).toUpperCase() + s.slice(1)).join('');
47
+ return `import { Migration, SchemaBuilder } from '@arikajs/database';
48
+
49
+ export default class ${className} extends Migration {
50
+ /**
51
+ * Run the migrations.
52
+ */
53
+ public async up(schema: SchemaBuilder): Promise<void> {
54
+ // await schema.create('table_name', (table) => {
55
+ // table.id();
56
+ // table.string('name');
57
+ // table.timestamps();
58
+ // });
59
+ }
60
+
61
+ /**
62
+ * Reverse the migrations.
63
+ */
64
+ public async down(schema: SchemaBuilder): Promise<void> {
65
+ // await schema.dropIfExists('table_name');
66
+ }
67
+ }
68
+ `;
69
+ }
70
+ }
71
+ exports.MakeMigrationCommand = MakeMigrationCommand;
72
+ //# sourceMappingURL=MakeMigrationCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MakeMigrationCommand.js","sourceRoot":"","sources":["../../../src/Commands/MakeMigrationCommand.ts"],"names":[],"mappings":";;;;;;AACA,8CAA2C;AAC3C,4CAAoB;AACpB,gDAAwB;AAExB;;GAEG;AACH,MAAa,oBAAqB,SAAQ,iBAAO;IAAjD;;QACW,cAAS,GAAG,uBAAuB,CAAC;QACpC,gBAAW,GAAG,6BAA6B,CAAC;IA4DvD,CAAC;IA1DU,KAAK,CAAC,MAAM;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC1C,OAAO;QACX,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;YAC3C,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;YACjD,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;YAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;YAC3C,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;YAC7C,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAElD,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,IAAI,KAAK,CAAC;QAC3C,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;QAEtE,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAChC,YAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEhC,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,0CAA0C,QAAQ,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACK,OAAO,CAAC,IAAY;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE5F,OAAO;;uBAEQ,SAAS;;;;;;;;;;;;;;;;;;;CAmB/B,CAAC;IACE,CAAC;CACJ;AA9DD,oDA8DC"}
@@ -0,0 +1,14 @@
1
+ import { Command } from '@arikajs/console';
2
+ /**
3
+ * Command to create a new seeder file
4
+ */
5
+ export declare class MakeSeederCommand extends Command {
6
+ signature: string;
7
+ description: string;
8
+ handle(): Promise<void>;
9
+ /**
10
+ * Get the seeder stub content
11
+ */
12
+ private getStub;
13
+ }
14
+ //# sourceMappingURL=MakeSeederCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MakeSeederCommand.d.ts","sourceRoot":"","sources":["../../../src/Commands/MakeSeederCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAI3C;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,OAAO;IACnC,SAAS,SAAwB;IACjC,WAAW,SAA8B;IAEnC,MAAM;IAqBnB;;OAEG;IACH,OAAO,CAAC,OAAO;CAgBlB"}
@@ -0,0 +1,56 @@
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.MakeSeederCommand = void 0;
7
+ const console_1 = require("@arikajs/console");
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const path_1 = __importDefault(require("path"));
10
+ /**
11
+ * Command to create a new seeder file
12
+ */
13
+ class MakeSeederCommand extends console_1.Command {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.signature = 'make:seeder {name}';
17
+ this.description = 'Create a new seeder file';
18
+ }
19
+ async handle() {
20
+ const name = this.argument('name');
21
+ if (!name) {
22
+ this.error('Seeder name is required.');
23
+ return;
24
+ }
25
+ const fileName = `${name}.ts`;
26
+ const seedersDir = path_1.default.join(process.cwd(), 'database/seeders');
27
+ if (!fs_1.default.existsSync(seedersDir)) {
28
+ fs_1.default.mkdirSync(seedersDir, { recursive: true });
29
+ }
30
+ const filePath = path_1.default.join(seedersDir, fileName);
31
+ const stub = this.getStub(name);
32
+ fs_1.default.writeFileSync(filePath, stub);
33
+ this.info(`Seeder created: database/seeders/${fileName}`);
34
+ }
35
+ /**
36
+ * Get the seeder stub content
37
+ */
38
+ getStub(name) {
39
+ return `import { Seeder, DatabaseManager } from '@arikajs/database';
40
+
41
+ export default class ${name} extends Seeder {
42
+ /**
43
+ * Run the database seeds.
44
+ */
45
+ public async run(db: DatabaseManager): Promise<void> {
46
+ // await db.table('users').insert({
47
+ // name: 'John Doe',
48
+ // email: 'john@example.com'
49
+ // });
50
+ }
51
+ }
52
+ `;
53
+ }
54
+ }
55
+ exports.MakeSeederCommand = MakeSeederCommand;
56
+ //# sourceMappingURL=MakeSeederCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MakeSeederCommand.js","sourceRoot":"","sources":["../../../src/Commands/MakeSeederCommand.ts"],"names":[],"mappings":";;;;;;AACA,8CAA2C;AAC3C,4CAAoB;AACpB,gDAAwB;AAExB;;GAEG;AACH,MAAa,iBAAkB,SAAQ,iBAAO;IAA9C;;QACW,cAAS,GAAG,oBAAoB,CAAC;QACjC,gBAAW,GAAG,0BAA0B,CAAC;IA0CpD,CAAC;IAxCU,KAAK,CAAC,MAAM;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACvC,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,IAAI,KAAK,CAAC;QAC9B,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAC;QAEhE,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,YAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEhC,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,oCAAoC,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACK,OAAO,CAAC,IAAY;QACxB,OAAO;;uBAEQ,IAAI;;;;;;;;;;;CAW1B,CAAC;IACE,CAAC;CACJ;AA5CD,8CA4CC"}
@@ -0,0 +1,10 @@
1
+ import { DatabaseCommand } from './DatabaseCommand';
2
+ /**
3
+ * Command to run database migrations
4
+ */
5
+ export declare class MigrateCommand extends DatabaseCommand {
6
+ signature: string;
7
+ description: string;
8
+ handle(): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=MigrateCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrateCommand.d.ts","sourceRoot":"","sources":["../../../src/Commands/MigrateCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD;;GAEG;AACH,qBAAa,cAAe,SAAQ,eAAe;IACxC,SAAS,SAAa;IACtB,WAAW,SAAiC;IAEtC,MAAM;CAkBtB"}