@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,69 @@
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.MigrateCommand = void 0;
40
+ const DatabaseCommand_1 = require("./DatabaseCommand");
41
+ const path_1 = __importDefault(require("path"));
42
+ /**
43
+ * Command to run database migrations
44
+ */
45
+ class MigrateCommand extends DatabaseCommand_1.DatabaseCommand {
46
+ constructor() {
47
+ super(...arguments);
48
+ this.signature = 'migrate';
49
+ this.description = 'Run the database migrations';
50
+ }
51
+ async handle() {
52
+ this.info('Running migrations...');
53
+ try {
54
+ const { Migrator } = await Promise.resolve().then(() => __importStar(require('@arikajs/database')));
55
+ const db = await this.getDatabaseManager();
56
+ const migrationsPath = path_1.default.join(process.cwd(), 'database/migrations');
57
+ const migrator = new Migrator(db, migrationsPath);
58
+ await migrator.migrate();
59
+ await db.closeAll();
60
+ this.info('Migration sequence completed.');
61
+ }
62
+ catch (error) {
63
+ this.error(`Migration failed: ${error.message}`);
64
+ process.exit(1);
65
+ }
66
+ }
67
+ }
68
+ exports.MigrateCommand = MigrateCommand;
69
+ //# sourceMappingURL=MigrateCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrateCommand.js","sourceRoot":"","sources":["../../../src/Commands/MigrateCommand.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uDAAoD;AACpD,gDAAwB;AAExB;;GAEG;AACH,MAAa,cAAe,SAAQ,iCAAe;IAAnD;;QACW,cAAS,GAAG,SAAS,CAAC;QACtB,gBAAW,GAAG,6BAA6B,CAAC;IAoBvD,CAAC;IAlBU,KAAK,CAAC,MAAM;QACf,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAEnC,IAAI,CAAC;YACD,MAAM,EAAE,QAAQ,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;YACvD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC3C,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;YAEvE,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;YAClD,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;YAEzB,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,qBAAqB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;CACJ;AAtBD,wCAsBC"}
@@ -0,0 +1,10 @@
1
+ import { DatabaseCommand } from './DatabaseCommand';
2
+ /**
3
+ * Command to rollback the last database migration batch
4
+ */
5
+ export declare class MigrateRollbackCommand extends DatabaseCommand {
6
+ signature: string;
7
+ description: string;
8
+ handle(): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=MigrateRollbackCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrateRollbackCommand.d.ts","sourceRoot":"","sources":["../../../src/Commands/MigrateRollbackCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,eAAe;IAChD,SAAS,SAAsB;IAC/B,WAAW,SAA0C;IAE/C,MAAM;CAkBtB"}
@@ -0,0 +1,69 @@
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.MigrateRollbackCommand = void 0;
40
+ const DatabaseCommand_1 = require("./DatabaseCommand");
41
+ const path_1 = __importDefault(require("path"));
42
+ /**
43
+ * Command to rollback the last database migration batch
44
+ */
45
+ class MigrateRollbackCommand extends DatabaseCommand_1.DatabaseCommand {
46
+ constructor() {
47
+ super(...arguments);
48
+ this.signature = 'migrate:rollback';
49
+ this.description = 'Rollback the last database migration';
50
+ }
51
+ async handle() {
52
+ this.info('Rolling back last migration batch...');
53
+ try {
54
+ const { Migrator } = await Promise.resolve().then(() => __importStar(require('@arikajs/database')));
55
+ const db = await this.getDatabaseManager();
56
+ const migrationsPath = path_1.default.join(process.cwd(), 'database/migrations');
57
+ const migrator = new Migrator(db, migrationsPath);
58
+ await migrator.rollback();
59
+ await db.closeAll();
60
+ this.info('Rollback sequence completed.');
61
+ }
62
+ catch (error) {
63
+ this.error(`Rollback failed: ${error.message}`);
64
+ process.exit(1);
65
+ }
66
+ }
67
+ }
68
+ exports.MigrateRollbackCommand = MigrateRollbackCommand;
69
+ //# sourceMappingURL=MigrateRollbackCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrateRollbackCommand.js","sourceRoot":"","sources":["../../../src/Commands/MigrateRollbackCommand.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uDAAoD;AACpD,gDAAwB;AAExB;;GAEG;AACH,MAAa,sBAAuB,SAAQ,iCAAe;IAA3D;;QACW,cAAS,GAAG,kBAAkB,CAAC;QAC/B,gBAAW,GAAG,sCAAsC,CAAC;IAoBhE,CAAC;IAlBU,KAAK,CAAC,MAAM;QACf,IAAI,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QAElD,IAAI,CAAC;YACD,MAAM,EAAE,QAAQ,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;YACvD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC3C,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;YAEvE,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;YAClD,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAE1B,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,oBAAoB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;CACJ;AAtBD,wDAsBC"}
@@ -0,0 +1,8 @@
1
+ import { Command } from '@arikajs/console';
2
+ export declare class NewCommand extends Command {
3
+ signature: string;
4
+ description: string;
5
+ handle(): Promise<void>;
6
+ private installDependencies;
7
+ }
8
+ //# sourceMappingURL=NewCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NewCommand.d.ts","sourceRoot":"","sources":["../../../src/Commands/NewCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAK3C,qBAAa,UAAW,SAAQ,OAAO;IAC5B,SAAS,SAAgB;IACzB,WAAW,SAAsC;IAE3C,MAAM;IAsDnB,OAAO,CAAC,mBAAmB;CAiB9B"}
@@ -0,0 +1,112 @@
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.NewCommand = void 0;
40
+ const console_1 = require("@arikajs/console");
41
+ const fs_1 = __importDefault(require("fs"));
42
+ const path_1 = __importDefault(require("path"));
43
+ const child_process_1 = require("child_process");
44
+ class NewCommand extends console_1.Command {
45
+ constructor() {
46
+ super(...arguments);
47
+ this.signature = 'new {name}';
48
+ this.description = 'Create a new ArikaJS application';
49
+ }
50
+ async handle() {
51
+ const name = this.argument('name');
52
+ const targetDir = path_1.default.resolve(process.cwd(), name);
53
+ const relativePath = path_1.default.relative(process.cwd(), targetDir) || '.';
54
+ if (fs_1.default.existsSync(targetDir)) {
55
+ this.error(`Directory "${name}" already exists.`);
56
+ return;
57
+ }
58
+ const { default: inquirer } = await Promise.resolve().then(() => __importStar(require('inquirer')));
59
+ const { TemplateManager } = await Promise.resolve().then(() => __importStar(require('../TemplateManager')));
60
+ const templateManager = new TemplateManager();
61
+ this.info(`\n🚀 Creating a new ArikaJS application: ${targetDir}\n`);
62
+ const answers = await inquirer.prompt([
63
+ {
64
+ type: 'confirm',
65
+ name: 'install',
66
+ message: 'Would you like to install dependencies automatically?',
67
+ default: true
68
+ }
69
+ ]);
70
+ const shouldInstall = answers.install;
71
+ try {
72
+ const templatePath = templateManager.resolveTemplatePath();
73
+ this.info(`\nScaffolding project in ${targetDir}...`);
74
+ templateManager.copyTemplate(templatePath, targetDir, name);
75
+ templateManager.setupEnvironmentFiles(targetDir, name);
76
+ if (shouldInstall) {
77
+ this.info('\n📦 Installing dependencies (this may take a moment)...');
78
+ await this.installDependencies(targetDir);
79
+ }
80
+ this.info('\n✨ Project created successfully!');
81
+ this.info('\nNext steps:');
82
+ this.comment(` cd ${relativePath}`);
83
+ if (!shouldInstall) {
84
+ this.comment(' npm install');
85
+ }
86
+ this.comment(' npm run dev');
87
+ this.info('\nHappy coding with ArikaJS!\n');
88
+ }
89
+ catch (error) {
90
+ this.error(`Failed to create project: ${error.message}`);
91
+ }
92
+ }
93
+ installDependencies(targetDir) {
94
+ return new Promise((resolve, reject) => {
95
+ const child = (0, child_process_1.spawn)('npm', ['install'], {
96
+ cwd: targetDir,
97
+ stdio: 'inherit',
98
+ shell: true
99
+ });
100
+ child.on('close', (code) => {
101
+ if (code === 0) {
102
+ resolve();
103
+ }
104
+ else {
105
+ reject(new Error(`npm install failed with code ${code}`));
106
+ }
107
+ });
108
+ });
109
+ }
110
+ }
111
+ exports.NewCommand = NewCommand;
112
+ //# sourceMappingURL=NewCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NewCommand.js","sourceRoot":"","sources":["../../../src/Commands/NewCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Command } from '@arikajs/console';
2
+ export declare class QueueTableCommand extends Command {
3
+ signature: string;
4
+ description: string;
5
+ handle(): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=QueueTableCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueueTableCommand.d.ts","sourceRoot":"","sources":["../../../src/Commands/QueueTableCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAI3C,qBAAa,iBAAkB,SAAQ,OAAO;IACnC,SAAS,SAAiB;IAC1B,WAAW,SAA0D;IAE/D,MAAM;CAmCtB"}
@@ -0,0 +1,49 @@
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.QueueTableCommand = void 0;
7
+ const console_1 = require("@arikajs/console");
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const path_1 = __importDefault(require("path"));
10
+ class QueueTableCommand extends console_1.Command {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.signature = 'queue:table';
14
+ this.description = 'Create a migration for the queue jobs database table';
15
+ }
16
+ async handle() {
17
+ const migrationsDir = path_1.default.join(process.cwd(), 'database/migrations');
18
+ if (!fs_1.default.existsSync(migrationsDir)) {
19
+ fs_1.default.mkdirSync(migrationsDir, { recursive: true });
20
+ }
21
+ const timestamp = new Date().toISOString().replace(/[-:T]/g, '').split('.')[0];
22
+ const fileName = `${timestamp}_create_jobs_table.ts`;
23
+ const filePath = path_1.default.join(migrationsDir, fileName);
24
+ const content = `import { Schema, Blueprint } from '@arikajs/database';
25
+
26
+ export default class CreateJobsTable {
27
+ public async up() {
28
+ await Schema.create('jobs', (table: Blueprint) => {
29
+ table.id();
30
+ table.string('queue').index();
31
+ table.longText('payload');
32
+ table.unsignedTinyInteger('attempts');
33
+ table.unsignedInteger('reserved_at').nullable();
34
+ table.unsignedInteger('available_at');
35
+ table.unsignedInteger('created_at');
36
+ });
37
+ }
38
+
39
+ public async down() {
40
+ await Schema.dropIfExists('jobs');
41
+ }
42
+ }
43
+ `;
44
+ fs_1.default.writeFileSync(filePath, content);
45
+ this.info(`Migration created: ${filePath}`);
46
+ }
47
+ }
48
+ exports.QueueTableCommand = QueueTableCommand;
49
+ //# sourceMappingURL=QueueTableCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueueTableCommand.js","sourceRoot":"","sources":["../../../src/Commands/QueueTableCommand.ts"],"names":[],"mappings":";;;;;;AACA,8CAA2C;AAC3C,4CAAoB;AACpB,gDAAwB;AAExB,MAAa,iBAAkB,SAAQ,iBAAO;IAA9C;;QACW,cAAS,GAAG,aAAa,CAAC;QAC1B,gBAAW,GAAG,sDAAsD,CAAC;IAqChF,CAAC;IAnCU,KAAK,CAAC,MAAM;QACf,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,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,GAAG,SAAS,uBAAuB,CAAC;QACrD,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAEpD,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;CAmBvB,CAAC;QAEM,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;IAChD,CAAC;CACJ;AAvCD,8CAuCC"}
@@ -0,0 +1,7 @@
1
+ import { Command } from '@arikajs/console';
2
+ export declare class ServeCommand extends Command {
3
+ signature: string;
4
+ description: string;
5
+ handle(): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=ServeCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServeCommand.d.ts","sourceRoot":"","sources":["../../../src/Commands/ServeCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAK3C,qBAAa,YAAa,SAAQ,OAAO;IAC9B,SAAS,SAAW;IACpB,WAAW,SAAqD;IAE1D,MAAM;CAiDtB"}
@@ -0,0 +1,60 @@
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.ServeCommand = void 0;
7
+ const console_1 = require("@arikajs/console");
8
+ const child_process_1 = require("child_process");
9
+ const path_1 = __importDefault(require("path"));
10
+ const fs_1 = __importDefault(require("fs"));
11
+ class ServeCommand extends console_1.Command {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.signature = 'serve';
15
+ this.description = 'Serve the application on the development server';
16
+ }
17
+ async handle() {
18
+ const root = process.cwd();
19
+ const pkgPath = path_1.default.join(root, 'package.json');
20
+ if (!fs_1.default.existsSync(pkgPath)) {
21
+ this.error('No package.json found. Make sure you are in an ArikaJS project root.');
22
+ return;
23
+ }
24
+ const isTypeScript = fs_1.default.existsSync(path_1.default.join(root, 'tsconfig.json'));
25
+ const serverFile = isTypeScript ? 'server.ts' : 'server.js';
26
+ if (!fs_1.default.existsSync(path_1.default.join(root, serverFile))) {
27
+ this.error(`Could not find ${serverFile} in the current directory.`);
28
+ return;
29
+ }
30
+ this.info(`Starting ArikaJS development server...`);
31
+ const command = isTypeScript ? 'npx' : 'node';
32
+ const args = isTypeScript ? ['--yes', 'tsx', 'watch', serverFile] : [serverFile];
33
+ if (isTypeScript) {
34
+ this.comment('Using tsx to run TypeScript server with hot-reload...');
35
+ }
36
+ const server = (0, child_process_1.spawn)(command, args, {
37
+ cwd: root,
38
+ stdio: 'inherit',
39
+ shell: true,
40
+ env: { ...process.env, PROJECT_ROOT: root }
41
+ });
42
+ return new Promise((resolve, reject) => {
43
+ server.on('close', (code) => {
44
+ if (code === 0) {
45
+ resolve();
46
+ }
47
+ else {
48
+ this.error(`Server exited with code ${code}`);
49
+ resolve(); // Resolve anyway so the CLI can exit gracefully
50
+ }
51
+ });
52
+ process.on('SIGINT', () => {
53
+ server.kill('SIGINT');
54
+ resolve();
55
+ });
56
+ });
57
+ }
58
+ }
59
+ exports.ServeCommand = ServeCommand;
60
+ //# sourceMappingURL=ServeCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServeCommand.js","sourceRoot":"","sources":["../../../src/Commands/ServeCommand.ts"],"names":[],"mappings":";;;;;;AACA,8CAA2C;AAC3C,iDAAsC;AACtC,gDAAwB;AACxB,4CAAoB;AAEpB,MAAa,YAAa,SAAQ,iBAAO;IAAzC;;QACW,cAAS,GAAG,OAAO,CAAC;QACpB,gBAAW,GAAG,iDAAiD,CAAC;IAmD3E,CAAC;IAjDU,KAAK,CAAC,MAAM;QACf,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAEhD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;YACnF,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;QAE5D,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,kBAAkB,UAAU,4BAA4B,CAAC,CAAC;YACrE,OAAO;QACX,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAEpD,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAEjF,IAAI,YAAY,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,IAAI,EAAE;YAChC,GAAG,EAAE,IAAI;YACT,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAI;YACX,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE;SAC9C,CAAC,CAAC;QAEH,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACb,OAAO,EAAE,CAAC;gBACd,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;oBAC9C,OAAO,EAAE,CAAC,CAAC,gDAAgD;gBAC/D,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACtB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtB,OAAO,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AArDD,oCAqDC"}
@@ -0,0 +1,19 @@
1
+ export declare class TemplateManager {
2
+ private templatesDir;
3
+ constructor();
4
+ /**
5
+ * Resolve the template directory path.
6
+ */
7
+ resolveTemplatePath(): string;
8
+ /**
9
+ * Copy template files to the target directory.
10
+ */
11
+ copyTemplate(templatePath: string, targetDir: string, appName: string): void;
12
+ /**
13
+ * Create .env and .env.example if they don't exist.
14
+ */
15
+ setupEnvironmentFiles(targetDir: string, appName: string): void;
16
+ private copyRecursiveSync;
17
+ private processPlaceholders;
18
+ }
19
+ //# sourceMappingURL=TemplateManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateManager.d.ts","sourceRoot":"","sources":["../../src/TemplateManager.ts"],"names":[],"mappings":"AAOA,qBAAa,eAAe;IACxB,OAAO,CAAC,YAAY,CAAS;;IAO7B;;OAEG;IACI,mBAAmB,IAAI,MAAM;IAUpC;;OAEG;IACI,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAOnF;;OAEG;IACI,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAoBtE,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,mBAAmB;CAkE9B"}
@@ -0,0 +1,133 @@
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.TemplateManager = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const crypto_1 = require("crypto");
10
+ class TemplateManager {
11
+ constructor() {
12
+ // Templates are located relative to the dist/src directory when running
13
+ this.templatesDir = path_1.default.resolve(__dirname, '../../templates');
14
+ }
15
+ /**
16
+ * Resolve the template directory path.
17
+ */
18
+ resolveTemplatePath() {
19
+ const templatePath = path_1.default.join(this.templatesDir, 'app');
20
+ if (!fs_1.default.existsSync(templatePath)) {
21
+ throw new Error(`Template "app" not found in ${this.templatesDir}`);
22
+ }
23
+ return templatePath;
24
+ }
25
+ /**
26
+ * Copy template files to the target directory.
27
+ */
28
+ copyTemplate(templatePath, targetDir, appName) {
29
+ this.copyRecursiveSync(templatePath, targetDir);
30
+ // Post-process files if needed (e.g., replacing placeholders)
31
+ this.processPlaceholders(targetDir, appName);
32
+ }
33
+ /**
34
+ * Create .env and .env.example if they don't exist.
35
+ */
36
+ setupEnvironmentFiles(targetDir, appName) {
37
+ const examplePath = path_1.default.join(targetDir, '.env.example');
38
+ const envPath = path_1.default.join(targetDir, '.env');
39
+ if (fs_1.default.existsSync(examplePath) && !fs_1.default.existsSync(envPath)) {
40
+ let content = fs_1.default.readFileSync(examplePath, 'utf8');
41
+ content = content.replace(/APP_NAME=.*/, `APP_NAME=${appName}`);
42
+ // Automatically generate app key
43
+ const appKey = 'base64:' + (0, crypto_1.randomBytes)(32).toString('base64');
44
+ if (content.includes('APP_KEY=')) {
45
+ content = content.replace(/APP_KEY=.*/, `APP_KEY=${appKey}`);
46
+ }
47
+ else {
48
+ content += `\nAPP_KEY=${appKey}\n`;
49
+ }
50
+ fs_1.default.writeFileSync(envPath, content);
51
+ }
52
+ }
53
+ copyRecursiveSync(src, dest) {
54
+ const exists = fs_1.default.existsSync(src);
55
+ if (!exists)
56
+ return;
57
+ const stats = fs_1.default.statSync(src);
58
+ const isDirectory = stats.isDirectory();
59
+ if (isDirectory) {
60
+ if (!fs_1.default.existsSync(dest)) {
61
+ fs_1.default.mkdirSync(dest, { recursive: true });
62
+ }
63
+ fs_1.default.readdirSync(src).forEach((childItemName) => {
64
+ this.copyRecursiveSync(path_1.default.join(src, childItemName), path_1.default.join(dest, childItemName));
65
+ });
66
+ }
67
+ else {
68
+ fs_1.default.copyFileSync(src, dest);
69
+ }
70
+ }
71
+ processPlaceholders(targetDir, appName) {
72
+ const packageJsonPath = path_1.default.join(targetDir, 'package.json');
73
+ if (fs_1.default.existsSync(packageJsonPath)) {
74
+ let pkg = JSON.parse(fs_1.default.readFileSync(packageJsonPath, 'utf8'));
75
+ // Replace app name
76
+ pkg.name = appName;
77
+ // Handle local @arikajs dependencies for development
78
+ // templatesDir is /path/to/cli/templates
79
+ // ArikaJs root is /path/to/
80
+ const devWorkspaceRoot = path_1.default.resolve(this.templatesDir, '../../../');
81
+ const handleDeps = (deps) => {
82
+ if (!deps)
83
+ return;
84
+ Object.keys(deps).forEach(dep => {
85
+ let depName = '';
86
+ if (dep.startsWith('@arikajs/')) {
87
+ depName = dep.split('/')[1];
88
+ // Map 'core' package to 'arikajs' directory if 'core' directory doesn't exist
89
+ if (depName === 'core') {
90
+ const coreDir = path_1.default.join(devWorkspaceRoot, 'core');
91
+ if (!fs_1.default.existsSync(coreDir)) {
92
+ depName = 'arikajs';
93
+ }
94
+ }
95
+ }
96
+ else if (dep === 'arikajs') {
97
+ depName = 'arikajs';
98
+ }
99
+ if (depName && process.env.ARIKA_DEV === 'true') {
100
+ const localPath = path_1.default.join(devWorkspaceRoot, depName);
101
+ if (fs_1.default.existsSync(localPath)) {
102
+ // Calculate relative path from target directory to local package
103
+ let relativePath = path_1.default.relative(targetDir, localPath);
104
+ // Ensure it starts with ./ or ../
105
+ if (!relativePath.startsWith('.')) {
106
+ relativePath = './' + relativePath;
107
+ }
108
+ deps[dep] = `file:${relativePath}`;
109
+ }
110
+ }
111
+ });
112
+ };
113
+ handleDeps(pkg.dependencies);
114
+ handleDeps(pkg.devDependencies);
115
+ fs_1.default.writeFileSync(packageJsonPath, JSON.stringify(pkg, null, 2));
116
+ }
117
+ // Replace placeholders in view files
118
+ const viewsDir = path_1.default.join(targetDir, 'resources/views');
119
+ if (fs_1.default.existsSync(viewsDir)) {
120
+ const files = fs_1.default.readdirSync(viewsDir);
121
+ files.forEach(file => {
122
+ if (file.endsWith('.html')) {
123
+ const filePath = path_1.default.join(viewsDir, file);
124
+ let content = fs_1.default.readFileSync(filePath, 'utf8');
125
+ content = content.replace(/{{name}}/g, appName);
126
+ fs_1.default.writeFileSync(filePath, content);
127
+ }
128
+ });
129
+ }
130
+ }
131
+ }
132
+ exports.TemplateManager = TemplateManager;
133
+ //# sourceMappingURL=TemplateManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateManager.js","sourceRoot":"","sources":["../../src/TemplateManager.ts"],"names":[],"mappings":";;;;;;AACA,4CAAoB;AACpB,gDAAwB;AACxB,mCAAqC;AAIrC,MAAa,eAAe;IAGxB;QACI,wEAAwE;QACxE,IAAI,CAAC,YAAY,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACI,mBAAmB;QACtB,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAEzD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,YAAoB,EAAE,SAAiB,EAAE,OAAe;QACxE,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAEhD,8DAA8D;QAC9D,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACI,qBAAqB,CAAC,SAAiB,EAAE,OAAe;QAC3D,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAE7C,IAAI,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,IAAI,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACnD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,OAAO,EAAE,CAAC,CAAC;YAEhE,iCAAiC;YACjC,MAAM,MAAM,GAAG,SAAS,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC9D,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,MAAM,EAAE,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACJ,OAAO,IAAI,aAAa,MAAM,IAAI,CAAC;YACvC,CAAC;YAED,YAAE,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,GAAW,EAAE,IAAY;QAC/C,MAAM,MAAM,GAAG,YAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,KAAK,GAAG,YAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAExC,IAAI,WAAW,EAAE,CAAC;YACd,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,YAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,YAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;gBAC1C,IAAI,CAAC,iBAAiB,CAClB,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAC7B,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CACjC,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,YAAE,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IAEO,mBAAmB,CAAC,SAAiB,EAAE,OAAe;QAC1D,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAC7D,IAAI,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACjC,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;YAE/D,mBAAmB;YACnB,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;YAEnB,qDAAqD;YACrD,yCAAyC;YACzC,4BAA4B;YAC5B,MAAM,gBAAgB,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YAEtE,MAAM,UAAU,GAAG,CAAC,IAAS,EAAE,EAAE;gBAC7B,IAAI,CAAC,IAAI;oBAAE,OAAO;gBAClB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBAC5B,IAAI,OAAO,GAAG,EAAE,CAAC;oBAEjB,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC9B,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC5B,8EAA8E;wBAC9E,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;4BACrB,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;4BACpD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gCAC1B,OAAO,GAAG,SAAS,CAAC;4BACxB,CAAC;wBACL,CAAC;oBACL,CAAC;yBAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;wBAC3B,OAAO,GAAG,SAAS,CAAC;oBACxB,CAAC;oBAED,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;wBAC9C,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;wBACvD,IAAI,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;4BAC3B,iEAAiE;4BACjE,IAAI,YAAY,GAAG,cAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;4BACvD,kCAAkC;4BAClC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gCAChC,YAAY,GAAG,IAAI,GAAG,YAAY,CAAC;4BACvC,CAAC;4BACD,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,YAAY,EAAE,CAAC;wBACvC,CAAC;oBACL,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC;YAEF,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC7B,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAEhC,YAAE,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;QAED,qCAAqC;QACrC,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QACzD,IAAI,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,YAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACvC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACjB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBACzB,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC3C,IAAI,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBAChD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;oBAChD,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACxC,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;CACJ;AA9ID,0CA8IC"}
@@ -0,0 +1,3 @@
1
+ export { Bootstrap } from './Bootstrap';
2
+ export { ApplicationLoader } from './ApplicationLoader';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApplicationLoader = exports.Bootstrap = void 0;
4
+ var Bootstrap_1 = require("./Bootstrap");
5
+ Object.defineProperty(exports, "Bootstrap", { enumerable: true, get: function () { return Bootstrap_1.Bootstrap; } });
6
+ var ApplicationLoader_1 = require("./ApplicationLoader");
7
+ Object.defineProperty(exports, "ApplicationLoader", { enumerable: true, get: function () { return ApplicationLoader_1.ApplicationLoader; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AACA,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Cli.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cli.test.d.ts","sourceRoot":"","sources":["../../tests/Cli.test.ts"],"names":[],"mappings":""}