katax-cli 0.1.1 → 1.1.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.
Files changed (137) hide show
  1. package/README.md +0 -0
  2. package/dist/commands/add-endpoint.d.ts +1 -0
  3. package/dist/commands/add-endpoint.d.ts.map +1 -0
  4. package/dist/commands/add-endpoint.js +18 -39
  5. package/dist/commands/add-endpoint.js.map +1 -0
  6. package/dist/commands/deploy.d.ts +14 -0
  7. package/dist/commands/deploy.d.ts.map +1 -0
  8. package/dist/commands/deploy.js +416 -0
  9. package/dist/commands/deploy.js.map +1 -0
  10. package/dist/commands/generate-crud.d.ts +1 -0
  11. package/dist/commands/generate-crud.d.ts.map +1 -0
  12. package/dist/commands/generate-crud.js +1 -8
  13. package/dist/commands/generate-crud.js.map +1 -0
  14. package/dist/commands/generate-crud.refactored.d.ts +6 -0
  15. package/dist/commands/generate-crud.refactored.d.ts.map +1 -0
  16. package/dist/commands/generate-crud.refactored.js +139 -0
  17. package/dist/commands/generate-crud.refactored.js.map +1 -0
  18. package/dist/commands/info.d.ts +1 -0
  19. package/dist/commands/info.d.ts.map +1 -0
  20. package/dist/commands/info.js +1 -5
  21. package/dist/commands/info.js.map +1 -0
  22. package/dist/commands/init.d.ts +1 -0
  23. package/dist/commands/init.d.ts.map +1 -0
  24. package/dist/commands/init.js +70 -76
  25. package/dist/commands/init.js.map +1 -0
  26. package/dist/commands/init.refactored.d.ts +6 -0
  27. package/dist/commands/init.refactored.d.ts.map +1 -0
  28. package/dist/commands/init.refactored.js +224 -0
  29. package/dist/commands/init.refactored.js.map +1 -0
  30. package/dist/core/errors.d.ts +77 -0
  31. package/dist/core/errors.d.ts.map +1 -0
  32. package/dist/core/errors.js +130 -0
  33. package/dist/core/errors.js.map +1 -0
  34. package/dist/core/index.d.ts +3 -0
  35. package/dist/core/index.d.ts.map +1 -0
  36. package/dist/core/index.js +3 -0
  37. package/dist/core/index.js.map +1 -0
  38. package/dist/core/result.d.ts +26 -0
  39. package/dist/core/result.d.ts.map +1 -0
  40. package/dist/core/result.js +76 -0
  41. package/dist/core/result.js.map +1 -0
  42. package/dist/generators/controller-generator.d.ts +1 -0
  43. package/dist/generators/controller-generator.d.ts.map +1 -0
  44. package/dist/generators/controller-generator.js +1 -2
  45. package/dist/generators/controller-generator.js.map +1 -0
  46. package/dist/generators/handler-generator.d.ts +1 -0
  47. package/dist/generators/handler-generator.d.ts.map +1 -0
  48. package/dist/generators/handler-generator.js +35 -22
  49. package/dist/generators/handler-generator.js.map +1 -0
  50. package/dist/generators/route-generator.d.ts +1 -0
  51. package/dist/generators/route-generator.d.ts.map +1 -0
  52. package/dist/generators/route-generator.js +1 -2
  53. package/dist/generators/route-generator.js.map +1 -0
  54. package/dist/generators/router-updater.d.ts +1 -0
  55. package/dist/generators/router-updater.d.ts.map +1 -0
  56. package/dist/generators/router-updater.js +1 -6
  57. package/dist/generators/router-updater.js.map +1 -0
  58. package/dist/generators/validator-generator.d.ts +1 -0
  59. package/dist/generators/validator-generator.d.ts.map +1 -0
  60. package/dist/generators/validator-generator.improved.d.ts +3 -0
  61. package/dist/generators/validator-generator.improved.d.ts.map +1 -0
  62. package/dist/generators/validator-generator.improved.js +184 -0
  63. package/dist/generators/validator-generator.improved.js.map +1 -0
  64. package/dist/generators/validator-generator.js +1 -10
  65. package/dist/generators/validator-generator.js.map +1 -0
  66. package/dist/index.d.ts +1 -6
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/index.js +37 -19
  69. package/dist/index.js.map +1 -0
  70. package/dist/services/ast-router-updater.d.ts +16 -0
  71. package/dist/services/ast-router-updater.d.ts.map +1 -0
  72. package/dist/services/ast-router-updater.js +130 -0
  73. package/dist/services/ast-router-updater.js.map +1 -0
  74. package/dist/services/code-generation.service.d.ts +15 -0
  75. package/dist/services/code-generation.service.d.ts.map +1 -0
  76. package/dist/services/code-generation.service.js +110 -0
  77. package/dist/services/code-generation.service.js.map +1 -0
  78. package/dist/services/index.d.ts +4 -0
  79. package/dist/services/index.d.ts.map +1 -0
  80. package/dist/services/index.js +4 -0
  81. package/dist/services/index.js.map +1 -0
  82. package/dist/services/project-structure-generator.d.ts +30 -0
  83. package/dist/services/project-structure-generator.d.ts.map +1 -0
  84. package/dist/services/project-structure-generator.js +884 -0
  85. package/dist/services/project-structure-generator.js.map +1 -0
  86. package/dist/templates/base/code-builder.d.ts +34 -0
  87. package/dist/templates/base/code-builder.d.ts.map +1 -0
  88. package/dist/templates/base/code-builder.js +154 -0
  89. package/dist/templates/base/code-builder.js.map +1 -0
  90. package/dist/templates/base/template-engine.d.ts +28 -0
  91. package/dist/templates/base/template-engine.d.ts.map +1 -0
  92. package/dist/templates/base/template-engine.js +47 -0
  93. package/dist/templates/base/template-engine.js.map +1 -0
  94. package/dist/templates/generators/controller-template.d.ts +15 -0
  95. package/dist/templates/generators/controller-template.d.ts.map +1 -0
  96. package/dist/templates/generators/controller-template.js +185 -0
  97. package/dist/templates/generators/controller-template.js.map +1 -0
  98. package/dist/templates/generators/di-container.d.ts +6 -0
  99. package/dist/templates/generators/di-container.d.ts.map +1 -0
  100. package/dist/templates/generators/di-container.js +121 -0
  101. package/dist/templates/generators/di-container.js.map +1 -0
  102. package/dist/templates/generators/handler-template.d.ts +15 -0
  103. package/dist/templates/generators/handler-template.d.ts.map +1 -0
  104. package/dist/templates/generators/handler-template.js +208 -0
  105. package/dist/templates/generators/handler-template.js.map +1 -0
  106. package/dist/templates/generators/repository-template.d.ts +23 -0
  107. package/dist/templates/generators/repository-template.d.ts.map +1 -0
  108. package/dist/templates/generators/repository-template.js +237 -0
  109. package/dist/templates/generators/repository-template.js.map +1 -0
  110. package/dist/templates/generators/response-utils-template.d.ts +2 -0
  111. package/dist/templates/generators/response-utils-template.d.ts.map +1 -0
  112. package/dist/templates/generators/response-utils-template.js +112 -0
  113. package/dist/templates/generators/response-utils-template.js.map +1 -0
  114. package/dist/templates/generators/test-generator.d.ts +11 -0
  115. package/dist/templates/generators/test-generator.d.ts.map +1 -0
  116. package/dist/templates/generators/test-generator.js +206 -0
  117. package/dist/templates/generators/test-generator.js.map +1 -0
  118. package/dist/templates/index.d.ts +8 -0
  119. package/dist/templates/index.d.ts.map +1 -0
  120. package/dist/templates/index.js +8 -0
  121. package/dist/templates/index.js.map +1 -0
  122. package/dist/types/index.d.ts +1 -0
  123. package/dist/types/index.d.ts.map +1 -0
  124. package/dist/types/index.js +1 -0
  125. package/dist/types/index.js.map +1 -0
  126. package/dist/utils/file-utils.d.ts +1 -30
  127. package/dist/utils/file-utils.d.ts.map +1 -0
  128. package/dist/utils/file-utils.js +1 -32
  129. package/dist/utils/file-utils.js.map +1 -0
  130. package/dist/utils/logger.d.ts +1 -0
  131. package/dist/utils/logger.d.ts.map +1 -0
  132. package/dist/utils/logger.js +1 -0
  133. package/dist/utils/logger.js.map +1 -0
  134. package/package.json +1 -1
  135. package/dist/database/mongodb.ts +0 -46
  136. package/dist/database/mysql.ts +0 -26
  137. package/dist/database/postgresql.ts +0 -52
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ interface InitOptions {
2
+ force?: boolean;
3
+ }
4
+ export declare function initCommand(projectName?: string, options?: InitOptions): Promise<void>;
5
+ export {};
6
+ //# sourceMappingURL=init.refactored.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.refactored.d.ts","sourceRoot":"","sources":["../../src/commands/init.refactored.ts"],"names":[],"mappings":"AAwBA,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,iBAkIhF"}
@@ -0,0 +1,224 @@
1
+ import inquirer from 'inquirer';
2
+ import ora from 'ora';
3
+ import path from 'path';
4
+ import { execa } from 'execa';
5
+ import { success, error, gray, title, info } from '../utils/logger.js';
6
+ import { directoryExists } from '../utils/file-utils.js';
7
+ import { ProjectStructureGenerator } from '../services/project-structure-generator.js';
8
+ export async function initCommand(projectName, options = {}) {
9
+ title('🚀 Katax CLI - Initialize API Project');
10
+ let finalProjectName = projectName || '';
11
+ if (!finalProjectName) {
12
+ const answer = await inquirer.prompt([
13
+ {
14
+ type: 'input',
15
+ name: 'projectName',
16
+ message: 'Project name:',
17
+ default: 'my-api',
18
+ validate: (input) => {
19
+ if (!/^[a-z0-9-_]+$/i.test(input)) {
20
+ return 'Project name can only contain letters, numbers, hyphens, and underscores';
21
+ }
22
+ return true;
23
+ }
24
+ }
25
+ ]);
26
+ finalProjectName = answer.projectName;
27
+ }
28
+ const projectPath = path.join(process.cwd(), finalProjectName);
29
+ if (directoryExists(projectPath) && !options.force) {
30
+ error(`Directory "${finalProjectName}" already exists!`);
31
+ gray('Use --force to overwrite\n');
32
+ process.exit(1);
33
+ }
34
+ const answers = await inquirer.prompt([
35
+ {
36
+ type: 'input',
37
+ name: 'description',
38
+ message: 'Project description:',
39
+ default: 'REST API built with Express and TypeScript'
40
+ },
41
+ {
42
+ type: 'list',
43
+ name: 'database',
44
+ message: 'Select database:',
45
+ choices: [
46
+ { name: 'PostgreSQL', value: 'postgresql' },
47
+ { name: 'MySQL', value: 'mysql' },
48
+ { name: 'MongoDB', value: 'mongodb' },
49
+ { name: 'None (no database)', value: 'none' }
50
+ ],
51
+ default: 'postgresql'
52
+ },
53
+ {
54
+ type: 'list',
55
+ name: 'authentication',
56
+ message: 'Add authentication?',
57
+ choices: [
58
+ { name: 'JWT Authentication', value: 'jwt' },
59
+ { name: 'None', value: 'none' }
60
+ ],
61
+ default: 'jwt'
62
+ },
63
+ {
64
+ type: 'confirm',
65
+ name: 'validation',
66
+ message: 'Use katax-core for validation?',
67
+ default: true
68
+ },
69
+ {
70
+ type: 'input',
71
+ name: 'port',
72
+ message: 'Server port:',
73
+ default: '3000',
74
+ validate: (input) => {
75
+ const port = parseInt(input);
76
+ if (isNaN(port) || port < 1 || port > 65535) {
77
+ return 'Port must be a number between 1 and 65535';
78
+ }
79
+ return true;
80
+ }
81
+ }
82
+ ]);
83
+ let dbConfig = {};
84
+ if (answers.database !== 'none') {
85
+ dbConfig = await collectDatabaseConfig(answers.database, finalProjectName);
86
+ }
87
+ const config = {
88
+ name: finalProjectName,
89
+ description: answers.description,
90
+ type: 'rest-api',
91
+ typescript: true,
92
+ database: answers.database,
93
+ authentication: answers.authentication,
94
+ validation: answers.validation ? 'katax-core' : 'none',
95
+ orm: 'none',
96
+ port: parseInt(answers.port),
97
+ dbConfig
98
+ };
99
+ displayConfiguration(config);
100
+ const spinner = ora('Creating project structure...').start();
101
+ try {
102
+ const generator = new ProjectStructureGenerator(projectPath, config);
103
+ await generator.generate();
104
+ spinner.succeed('Project structure created');
105
+ spinner.start('Installing dependencies...');
106
+ await installDependencies(projectPath);
107
+ spinner.succeed('Dependencies installed');
108
+ success(`\n✨ Project "${finalProjectName}" created successfully!\n`);
109
+ displayNextSteps(finalProjectName);
110
+ }
111
+ catch (err) {
112
+ spinner.fail('Failed to create project');
113
+ error(err instanceof Error ? err.message : 'Unknown error');
114
+ if (err instanceof Error && err.stack) {
115
+ gray(err.stack);
116
+ }
117
+ process.exit(1);
118
+ }
119
+ }
120
+ async function collectDatabaseConfig(database, projectName) {
121
+ const dbQuestions = [];
122
+ if (database === 'postgresql' || database === 'mysql') {
123
+ dbQuestions.push({
124
+ type: 'input',
125
+ name: 'host',
126
+ message: `${database === 'postgresql' ? 'PostgreSQL' : 'MySQL'} host:`,
127
+ default: 'localhost'
128
+ }, {
129
+ type: 'input',
130
+ name: 'port',
131
+ message: `${database === 'postgresql' ? 'PostgreSQL' : 'MySQL'} port:`,
132
+ default: database === 'postgresql' ? '5432' : '3306'
133
+ }, {
134
+ type: 'input',
135
+ name: 'user',
136
+ message: 'Database user:',
137
+ default: database === 'postgresql' ? 'postgres' : 'root'
138
+ }, {
139
+ type: 'password',
140
+ name: 'password',
141
+ message: 'Database password:',
142
+ default: 'password'
143
+ }, {
144
+ type: 'input',
145
+ name: 'database',
146
+ message: 'Database name:',
147
+ default: projectName.toLowerCase().replace(/-/g, '_')
148
+ });
149
+ }
150
+ else if (database === 'mongodb') {
151
+ dbQuestions.push({
152
+ type: 'input',
153
+ name: 'host',
154
+ message: 'MongoDB host:',
155
+ default: 'localhost'
156
+ }, {
157
+ type: 'input',
158
+ name: 'port',
159
+ message: 'MongoDB port:',
160
+ default: '27017'
161
+ }, {
162
+ type: 'input',
163
+ name: 'database',
164
+ message: 'Database name:',
165
+ default: projectName.toLowerCase().replace(/-/g, '_')
166
+ }, {
167
+ type: 'confirm',
168
+ name: 'useAuth',
169
+ message: 'Use authentication?',
170
+ default: false
171
+ });
172
+ }
173
+ const config = await inquirer.prompt(dbQuestions);
174
+ if (database === 'mongodb' && config.useAuth) {
175
+ const authConfig = await inquirer.prompt([
176
+ {
177
+ type: 'input',
178
+ name: 'user',
179
+ message: 'MongoDB user:',
180
+ default: 'admin'
181
+ },
182
+ {
183
+ type: 'password',
184
+ name: 'password',
185
+ message: 'MongoDB password:',
186
+ default: 'password'
187
+ }
188
+ ]);
189
+ config.user = authConfig.user;
190
+ config.password = authConfig.password;
191
+ }
192
+ return config;
193
+ }
194
+ function displayConfiguration(config) {
195
+ gray('\n📋 Project Configuration:');
196
+ gray(` Name: ${config.name}`);
197
+ gray(` Database: ${config.database}`);
198
+ gray(` Auth: ${config.authentication}`);
199
+ gray(` Validation: ${config.validation}`);
200
+ gray(` Port: ${config.port}\n`);
201
+ }
202
+ function displayNextSteps(projectName) {
203
+ info('Next steps:');
204
+ gray(` cd ${projectName}`);
205
+ gray(` npm run dev\n`);
206
+ info('Available commands:');
207
+ gray(` katax add endpoint <name> - Add a new endpoint`);
208
+ gray(` katax generate crud <name> - Generate CRUD resource`);
209
+ gray(` katax info - Show project structure\n`);
210
+ info('Generated with:');
211
+ gray(` ✅ Result pattern for type-safe error handling`);
212
+ gray(` ✅ Repository pattern for database abstraction`);
213
+ gray(` ✅ Dependency injection ready`);
214
+ gray(` ✅ Structured logging with Pino`);
215
+ gray(` ✅ Health check endpoint`);
216
+ gray(` ✅ Hello example endpoint\n`);
217
+ }
218
+ async function installDependencies(projectPath) {
219
+ await execa('npm', ['install'], {
220
+ cwd: projectPath,
221
+ stdio: 'ignore'
222
+ });
223
+ }
224
+ //# sourceMappingURL=init.refactored.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.refactored.js","sourceRoot":"","sources":["../../src/commands/init.refactored.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ export declare abstract class AppError extends Error {
2
+ readonly details?: Record<string, any> | undefined;
3
+ abstract readonly statusCode: number;
4
+ abstract readonly code: string;
5
+ readonly timestamp: Date;
6
+ constructor(message: string, details?: Record<string, any> | undefined);
7
+ toJSON(): {
8
+ name: string;
9
+ code: string;
10
+ message: string;
11
+ statusCode: number;
12
+ details: Record<string, any> | undefined;
13
+ timestamp: string;
14
+ };
15
+ }
16
+ export declare class ValidationError extends AppError {
17
+ readonly fields?: Record<string, string[]> | undefined;
18
+ readonly statusCode = 400;
19
+ readonly code = "VALIDATION_ERROR";
20
+ constructor(message?: string, fields?: Record<string, string[]> | undefined);
21
+ static fromFields(fields: Record<string, string[]>): ValidationError;
22
+ }
23
+ export declare class AuthenticationError extends AppError {
24
+ readonly statusCode = 401;
25
+ readonly code = "AUTHENTICATION_ERROR";
26
+ constructor(message?: string);
27
+ }
28
+ export declare class AuthorizationError extends AppError {
29
+ readonly requiredRole?: string | undefined;
30
+ readonly statusCode = 403;
31
+ readonly code = "AUTHORIZATION_ERROR";
32
+ constructor(message?: string, requiredRole?: string | undefined);
33
+ }
34
+ export declare class NotFoundError extends AppError {
35
+ readonly resource?: string | undefined;
36
+ readonly id?: string | number | undefined;
37
+ readonly statusCode = 404;
38
+ readonly code = "NOT_FOUND";
39
+ constructor(message?: string, resource?: string | undefined, id?: string | number | undefined);
40
+ static forResource(resource: string, id: string | number): NotFoundError;
41
+ }
42
+ export declare class ConflictError extends AppError {
43
+ readonly field?: string | undefined;
44
+ readonly statusCode = 409;
45
+ readonly code = "CONFLICT";
46
+ constructor(message?: string, field?: string | undefined);
47
+ static duplicate(field: string, value: any): ConflictError;
48
+ }
49
+ export declare class DatabaseError extends AppError {
50
+ readonly operation?: string | undefined;
51
+ readonly originalError?: Error | undefined;
52
+ readonly statusCode = 500;
53
+ readonly code = "DATABASE_ERROR";
54
+ constructor(message?: string, operation?: string | undefined, originalError?: Error | undefined);
55
+ static fromError(error: Error, operation?: string): DatabaseError;
56
+ }
57
+ export declare class ExternalServiceError extends AppError {
58
+ readonly service?: string | undefined;
59
+ readonly statusCode = 503;
60
+ readonly code = "EXTERNAL_SERVICE_ERROR";
61
+ constructor(message?: string, service?: string | undefined);
62
+ }
63
+ export declare class InternalServerError extends AppError {
64
+ readonly originalError?: Error | undefined;
65
+ readonly statusCode = 500;
66
+ readonly code = "INTERNAL_SERVER_ERROR";
67
+ constructor(message?: string, originalError?: Error | undefined);
68
+ static fromError(error: Error): InternalServerError;
69
+ }
70
+ export declare class BadRequestError extends AppError {
71
+ readonly statusCode = 400;
72
+ readonly code = "BAD_REQUEST";
73
+ constructor(message?: string);
74
+ }
75
+ export declare function isAppError(error: unknown): error is AppError;
76
+ export declare function toAppError(error: unknown): AppError;
77
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ export class AppError extends Error {
2
+ details;
3
+ timestamp;
4
+ constructor(message, details) {
5
+ super(message);
6
+ this.details = details;
7
+ this.name = this.constructor.name;
8
+ this.timestamp = new Date();
9
+ Error.captureStackTrace(this, this.constructor);
10
+ }
11
+ toJSON() {
12
+ return {
13
+ name: this.name,
14
+ code: this.code,
15
+ message: this.message,
16
+ statusCode: this.statusCode,
17
+ details: this.details,
18
+ timestamp: this.timestamp.toISOString()
19
+ };
20
+ }
21
+ }
22
+ export class ValidationError extends AppError {
23
+ fields;
24
+ statusCode = 400;
25
+ code = 'VALIDATION_ERROR';
26
+ constructor(message = 'Validation failed', fields) {
27
+ super(message, { fields });
28
+ this.fields = fields;
29
+ }
30
+ static fromFields(fields) {
31
+ return new ValidationError('Validation failed', fields);
32
+ }
33
+ }
34
+ export class AuthenticationError extends AppError {
35
+ statusCode = 401;
36
+ code = 'AUTHENTICATION_ERROR';
37
+ constructor(message = 'Authentication required') {
38
+ super(message);
39
+ }
40
+ }
41
+ export class AuthorizationError extends AppError {
42
+ requiredRole;
43
+ statusCode = 403;
44
+ code = 'AUTHORIZATION_ERROR';
45
+ constructor(message = 'Insufficient permissions', requiredRole) {
46
+ super(message, { requiredRole });
47
+ this.requiredRole = requiredRole;
48
+ }
49
+ }
50
+ export class NotFoundError extends AppError {
51
+ resource;
52
+ id;
53
+ statusCode = 404;
54
+ code = 'NOT_FOUND';
55
+ constructor(message = 'Resource not found', resource, id) {
56
+ super(message, { resource, id });
57
+ this.resource = resource;
58
+ this.id = id;
59
+ }
60
+ static forResource(resource, id) {
61
+ return new NotFoundError(`${resource} with id ${id} not found`, resource, id);
62
+ }
63
+ }
64
+ export class ConflictError extends AppError {
65
+ field;
66
+ statusCode = 409;
67
+ code = 'CONFLICT';
68
+ constructor(message = 'Resource conflict', field) {
69
+ super(message, { field });
70
+ this.field = field;
71
+ }
72
+ static duplicate(field, value) {
73
+ return new ConflictError(`${field} '${value}' already exists`, field);
74
+ }
75
+ }
76
+ export class DatabaseError extends AppError {
77
+ operation;
78
+ originalError;
79
+ statusCode = 500;
80
+ code = 'DATABASE_ERROR';
81
+ constructor(message = 'Database operation failed', operation, originalError) {
82
+ super(message, { operation, originalError: originalError?.message });
83
+ this.operation = operation;
84
+ this.originalError = originalError;
85
+ }
86
+ static fromError(error, operation) {
87
+ return new DatabaseError(`Database error: ${error.message}`, operation, error);
88
+ }
89
+ }
90
+ export class ExternalServiceError extends AppError {
91
+ service;
92
+ statusCode = 503;
93
+ code = 'EXTERNAL_SERVICE_ERROR';
94
+ constructor(message = 'External service unavailable', service) {
95
+ super(message, { service });
96
+ this.service = service;
97
+ }
98
+ }
99
+ export class InternalServerError extends AppError {
100
+ originalError;
101
+ statusCode = 500;
102
+ code = 'INTERNAL_SERVER_ERROR';
103
+ constructor(message = 'Internal server error', originalError) {
104
+ super(message, { originalError: originalError?.message });
105
+ this.originalError = originalError;
106
+ }
107
+ static fromError(error) {
108
+ return new InternalServerError(error.message, error);
109
+ }
110
+ }
111
+ export class BadRequestError extends AppError {
112
+ statusCode = 400;
113
+ code = 'BAD_REQUEST';
114
+ constructor(message = 'Bad request') {
115
+ super(message);
116
+ }
117
+ }
118
+ export function isAppError(error) {
119
+ return error instanceof AppError;
120
+ }
121
+ export function toAppError(error) {
122
+ if (isAppError(error)) {
123
+ return error;
124
+ }
125
+ if (error instanceof Error) {
126
+ return InternalServerError.fromError(error);
127
+ }
128
+ return new InternalServerError(String(error));
129
+ }
130
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './result.js';
2
+ export * from './errors.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './result.js';
2
+ export * from './errors.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,26 @@
1
+ export type Ok<T> = {
2
+ readonly ok: true;
3
+ readonly value: T;
4
+ };
5
+ export type Err<E> = {
6
+ readonly ok: false;
7
+ readonly error: E;
8
+ };
9
+ export type Result<T, E = Error> = Ok<T> | Err<E>;
10
+ export declare function ok<T>(value: T): Ok<T>;
11
+ export declare function err<E>(error: E): Err<E>;
12
+ export declare function isOk<T, E>(result: Result<T, E>): result is Ok<T>;
13
+ export declare function isErr<T, E>(result: Result<T, E>): result is Err<E>;
14
+ export declare function map<T, U, E>(result: Result<T, E>, fn: (value: T) => U): Result<U, E>;
15
+ export declare function mapErr<T, E, F>(result: Result<T, E>, fn: (error: E) => F): Result<T, F>;
16
+ export declare function flatMap<T, U, E>(result: Result<T, E>, fn: (value: T) => Result<U, E>): Result<U, E>;
17
+ export declare function unwrap<T, E>(result: Result<T, E>): T;
18
+ export declare function unwrapOr<T, E>(result: Result<T, E>, defaultValue: T): T;
19
+ export declare function unwrapOrElse<T, E>(result: Result<T, E>, fn: (error: E) => T): T;
20
+ export declare function tryCatch<T, E = Error>(fn: () => T, mapError?: (error: unknown) => E): Result<T, E>;
21
+ export declare function tryCatchAsync<T, E = Error>(fn: () => Promise<T>, mapError?: (error: unknown) => E): Promise<Result<T, E>>;
22
+ export declare function combine<T, E>(results: Result<T, E>[]): Result<T[], E>;
23
+ export declare function ifOk<T, E>(result: Result<T, E>, fn: (value: T) => void): void;
24
+ export declare function ifErr<T, E>(result: Result<T, E>, fn: (error: E) => void): void;
25
+ export declare function match<T, E, R>(result: Result<T, E>, onOk: (value: T) => R, onErr: (error: E) => R): R;
26
+ //# sourceMappingURL=result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,EAAE,CAAC,CAAC,IAAI;IAClB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB,CAAC;AAKF,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI;IACnB,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB,CAAC;AAKF,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAKlD,wBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAErC;AAKD,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAEvC;AAKD,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAEhE;AAKD,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAElE;AAKD,wBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACzB,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAClB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAEd;AAKD,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC5B,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAClB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAEd;AAKD,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7B,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAEd;AAKD,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAKpD;AAKD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAEvE;AAKD,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAClB,CAAC,CAEH;AAKD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EACnC,EAAE,EAAE,MAAM,CAAC,EACX,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,GAC/B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAOd;AAKD,wBAAsB,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EAC9C,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,GAC/B,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAQvB;AAMD,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAWrE;AAKD,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EACvB,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GACrB,IAAI,CAIN;AAKD,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GACrB,IAAI,CAIN;AAKD,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC3B,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EACrB,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GACrB,CAAC,CAEH"}
@@ -0,0 +1,76 @@
1
+ export function ok(value) {
2
+ return { ok: true, value };
3
+ }
4
+ export function err(error) {
5
+ return { ok: false, error };
6
+ }
7
+ export function isOk(result) {
8
+ return result.ok === true;
9
+ }
10
+ export function isErr(result) {
11
+ return result.ok === false;
12
+ }
13
+ export function map(result, fn) {
14
+ return result.ok ? ok(fn(result.value)) : result;
15
+ }
16
+ export function mapErr(result, fn) {
17
+ return result.ok ? result : err(fn(result.error));
18
+ }
19
+ export function flatMap(result, fn) {
20
+ return result.ok ? fn(result.value) : result;
21
+ }
22
+ export function unwrap(result) {
23
+ if (result.ok) {
24
+ return result.value;
25
+ }
26
+ throw result.error;
27
+ }
28
+ export function unwrapOr(result, defaultValue) {
29
+ return result.ok ? result.value : defaultValue;
30
+ }
31
+ export function unwrapOrElse(result, fn) {
32
+ return result.ok ? result.value : fn(result.error);
33
+ }
34
+ export function tryCatch(fn, mapError) {
35
+ try {
36
+ return ok(fn());
37
+ }
38
+ catch (error) {
39
+ const mappedError = mapError ? mapError(error) : error;
40
+ return err(mappedError);
41
+ }
42
+ }
43
+ export async function tryCatchAsync(fn, mapError) {
44
+ try {
45
+ const value = await fn();
46
+ return ok(value);
47
+ }
48
+ catch (error) {
49
+ const mappedError = mapError ? mapError(error) : error;
50
+ return err(mappedError);
51
+ }
52
+ }
53
+ export function combine(results) {
54
+ const values = [];
55
+ for (const result of results) {
56
+ if (!result.ok) {
57
+ return result;
58
+ }
59
+ values.push(result.value);
60
+ }
61
+ return ok(values);
62
+ }
63
+ export function ifOk(result, fn) {
64
+ if (result.ok) {
65
+ fn(result.value);
66
+ }
67
+ }
68
+ export function ifErr(result, fn) {
69
+ if (!result.ok) {
70
+ fn(result.error);
71
+ }
72
+ }
73
+ export function match(result, onOk, onErr) {
74
+ return result.ok ? onOk(result.value) : onErr(result.error);
75
+ }
76
+ //# sourceMappingURL=result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  import { EndpointConfig } from '../types/index.js';
2
2
  export declare function generateController(config: EndpointConfig): string;
3
+ //# sourceMappingURL=controller-generator.d.ts.map