@carno.js/core 1.1.1 → 1.1.2

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 (119) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +188 -188
  3. package/dist/Carno.js +46 -26
  4. package/dist/Carno.mjs +46 -26
  5. package/dist/bun/index.js +4 -4
  6. package/dist/bun/index.js.map +29 -29
  7. package/package.json +2 -2
  8. package/src/Carno.ts +718 -673
  9. package/src/DefaultRoutes.ts +34 -34
  10. package/src/cache/CacheDriver.ts +50 -50
  11. package/src/cache/CacheService.ts +139 -139
  12. package/src/cache/MemoryDriver.ts +104 -104
  13. package/src/cache/RedisDriver.ts +116 -116
  14. package/src/compiler/JITCompiler.ts +167 -167
  15. package/src/container/Container.ts +168 -168
  16. package/src/context/Context.ts +130 -130
  17. package/src/cors/CorsHandler.ts +145 -145
  18. package/src/decorators/Controller.ts +63 -63
  19. package/src/decorators/Inject.ts +16 -16
  20. package/src/decorators/Middleware.ts +22 -22
  21. package/src/decorators/Service.ts +18 -18
  22. package/src/decorators/methods.ts +58 -58
  23. package/src/decorators/params.ts +47 -47
  24. package/src/events/Lifecycle.ts +97 -97
  25. package/src/exceptions/HttpException.ts +99 -99
  26. package/src/index.ts +95 -95
  27. package/src/metadata.ts +46 -46
  28. package/src/middleware/CarnoMiddleware.ts +14 -14
  29. package/src/router/RadixRouter.ts +225 -225
  30. package/src/testing/TestHarness.ts +185 -185
  31. package/src/utils/Metadata.ts +43 -43
  32. package/src/utils/parseQuery.ts +161 -161
  33. package/src/validation/ValibotAdapter.ts +95 -95
  34. package/src/validation/ValidatorAdapter.ts +69 -69
  35. package/src/validation/ZodAdapter.ts +102 -102
  36. package/dist/Carno.d.js +0 -14
  37. package/dist/Carno.d.mjs +0 -1
  38. package/dist/DefaultRoutes.d.js +0 -13
  39. package/dist/DefaultRoutes.d.mjs +0 -0
  40. package/dist/cache/CacheDriver.d.js +0 -13
  41. package/dist/cache/CacheDriver.d.mjs +0 -0
  42. package/dist/cache/CacheService.d.js +0 -13
  43. package/dist/cache/CacheService.d.mjs +0 -0
  44. package/dist/cache/MemoryDriver.d.js +0 -13
  45. package/dist/cache/MemoryDriver.d.mjs +0 -0
  46. package/dist/cache/RedisDriver.d.js +0 -13
  47. package/dist/cache/RedisDriver.d.mjs +0 -0
  48. package/dist/compiler/JITCompiler.d.js +0 -13
  49. package/dist/compiler/JITCompiler.d.mjs +0 -0
  50. package/dist/container/Container.d.js +0 -13
  51. package/dist/container/Container.d.mjs +0 -0
  52. package/dist/context/Context.d.js +0 -13
  53. package/dist/context/Context.d.mjs +0 -0
  54. package/dist/cors/CorsHandler.d.js +0 -13
  55. package/dist/cors/CorsHandler.d.mjs +0 -0
  56. package/dist/decorators/Controller.d.js +0 -13
  57. package/dist/decorators/Controller.d.mjs +0 -0
  58. package/dist/decorators/Inject.d.js +0 -13
  59. package/dist/decorators/Inject.d.mjs +0 -0
  60. package/dist/decorators/Middleware.d.js +0 -13
  61. package/dist/decorators/Middleware.d.mjs +0 -0
  62. package/dist/decorators/Service.d.js +0 -13
  63. package/dist/decorators/Service.d.mjs +0 -0
  64. package/dist/decorators/methods.d.js +0 -13
  65. package/dist/decorators/methods.d.mjs +0 -0
  66. package/dist/decorators/params.d.js +0 -13
  67. package/dist/decorators/params.d.mjs +0 -0
  68. package/dist/events/Lifecycle.d.js +0 -13
  69. package/dist/events/Lifecycle.d.mjs +0 -0
  70. package/dist/exceptions/HttpException.d.js +0 -13
  71. package/dist/exceptions/HttpException.d.mjs +0 -0
  72. package/dist/index.d.js +0 -130
  73. package/dist/index.d.mjs +0 -78
  74. package/dist/metadata.d.js +0 -13
  75. package/dist/metadata.d.mjs +0 -0
  76. package/dist/middleware/CarnoMiddleware.d.js +0 -13
  77. package/dist/middleware/CarnoMiddleware.d.mjs +0 -0
  78. package/dist/router/RadixRouter.d.js +0 -13
  79. package/dist/router/RadixRouter.d.mjs +0 -0
  80. package/dist/testing/TestHarness.d.js +0 -13
  81. package/dist/testing/TestHarness.d.mjs +0 -0
  82. package/dist/utils/Metadata.d.js +0 -13
  83. package/dist/utils/Metadata.d.mjs +0 -0
  84. package/dist/utils/parseQuery.d.js +0 -13
  85. package/dist/utils/parseQuery.d.mjs +0 -0
  86. package/dist/validation/ValibotAdapter.d.js +0 -13
  87. package/dist/validation/ValibotAdapter.d.mjs +0 -0
  88. package/dist/validation/ValidatorAdapter.d.js +0 -13
  89. package/dist/validation/ValidatorAdapter.d.mjs +0 -0
  90. package/dist/validation/ZodAdapter.d.js +0 -13
  91. package/dist/validation/ZodAdapter.d.mjs +0 -0
  92. package/src/Carno.d.ts +0 -135
  93. package/src/DefaultRoutes.d.ts +0 -19
  94. package/src/cache/CacheDriver.d.ts +0 -43
  95. package/src/cache/CacheService.d.ts +0 -89
  96. package/src/cache/MemoryDriver.d.ts +0 -32
  97. package/src/cache/RedisDriver.d.ts +0 -34
  98. package/src/compiler/JITCompiler.d.ts +0 -36
  99. package/src/container/Container.d.ts +0 -38
  100. package/src/context/Context.d.ts +0 -36
  101. package/src/cors/CorsHandler.d.ts +0 -47
  102. package/src/decorators/Controller.d.ts +0 -13
  103. package/src/decorators/Inject.d.ts +0 -6
  104. package/src/decorators/Middleware.d.ts +0 -5
  105. package/src/decorators/Service.d.ts +0 -9
  106. package/src/decorators/methods.d.ts +0 -7
  107. package/src/decorators/params.d.ts +0 -13
  108. package/src/events/Lifecycle.d.ts +0 -54
  109. package/src/exceptions/HttpException.d.ts +0 -43
  110. package/src/index.d.ts +0 -42
  111. package/src/metadata.d.ts +0 -41
  112. package/src/middleware/CarnoMiddleware.d.ts +0 -12
  113. package/src/router/RadixRouter.d.ts +0 -19
  114. package/src/testing/TestHarness.d.ts +0 -71
  115. package/src/utils/Metadata.d.ts +0 -20
  116. package/src/utils/parseQuery.d.ts +0 -23
  117. package/src/validation/ValibotAdapter.d.ts +0 -30
  118. package/src/validation/ValidatorAdapter.d.ts +0 -54
  119. package/src/validation/ZodAdapter.d.ts +0 -35
package/src/index.ts CHANGED
@@ -1,95 +1,95 @@
1
- /**
2
- * Carno - Ultra-Fast HTTP Framework
3
- *
4
- * Design principles:
5
- * 1. ZERO abstraction at runtime - everything compiled at startup
6
- * 2. Direct Bun.serve() with native routes
7
- * 3. JIT compiled handlers with AOT async detection
8
- * 4. No intermediate layers in hot path
9
- * 5. Radix tree router for dynamic routes
10
- */
11
-
12
- // Import reflect-metadata globally for decorator support
13
- import 'reflect-metadata';
14
-
15
- // Application
16
- export { Carno } from './Carno';
17
- export type { MiddlewareHandler, CarnoConfig } from './Carno';
18
-
19
- // Context
20
- export { Context } from './context/Context';
21
-
22
- // Decorators - Controller
23
- export { Controller } from './decorators/Controller';
24
- export type { ControllerOptions } from './metadata';
25
-
26
- // Decorators - HTTP Methods
27
- export { Get, Post, Put, Delete, Patch, Head, Options } from './decorators/methods';
28
-
29
- // Decorators - Parameters
30
- export { Param, Query, Body, Header, Req, Ctx, Locals } from './decorators/params';
31
-
32
- // Decorators - Middleware
33
- export { Use, Use as Middleware } from './decorators/Middleware';
34
-
35
- // Middleware Interface
36
- export type { CarnoMiddleware, CarnoClosure } from './middleware/CarnoMiddleware';
37
-
38
- // Decorators - DI
39
- export { Service } from './decorators/Service';
40
- export { Inject } from './decorators/Inject';
41
-
42
- // Container
43
- export { Container, Scope } from './container/Container';
44
- export type { Token, ProviderConfig } from './container/Container';
45
-
46
- // Router
47
- export { RadixRouter } from './router/RadixRouter';
48
- export type { RouteMatch } from './router/RadixRouter';
49
-
50
- // CORS
51
- export { CorsHandler } from './cors/CorsHandler';
52
- export type { CorsConfig, CorsOrigin } from './cors/CorsHandler';
53
-
54
- // Validation
55
- export type { ValidatorAdapter, ValidationResult, ValidationError, ValidationConfig } from './validation/ValidatorAdapter';
56
- export { Schema, getSchema, VALIDATION_SCHEMA } from './validation/ValidatorAdapter';
57
- export { ZodAdapter, ValidationException } from './validation/ZodAdapter';
58
- export { ValibotAdapter } from './validation/ValibotAdapter';
59
-
60
- // Exceptions
61
- export {
62
- HttpException,
63
- BadRequestException,
64
- UnauthorizedException,
65
- ForbiddenException,
66
- NotFoundException,
67
- MethodNotAllowedException,
68
- ConflictException,
69
- UnprocessableEntityException,
70
- TooManyRequestsException,
71
- InternalServerErrorException,
72
- ServiceUnavailableException
73
- } from './exceptions/HttpException';
74
-
75
- // Lifecycle Events
76
- export {
77
- EventType,
78
- OnApplicationInit,
79
- OnApplicationBoot,
80
- OnApplicationShutdown
81
- } from './events/Lifecycle';
82
-
83
- // Cache
84
- export { CacheService } from './cache/CacheService';
85
- export { MemoryDriver } from './cache/MemoryDriver';
86
- export { RedisDriver } from './cache/RedisDriver';
87
- export type { RedisConfig } from './cache/RedisDriver';
88
- export type { CacheDriver, CacheConfig } from './cache/CacheDriver';
89
-
90
- // Testing
91
- export { createTestHarness, withTestApp } from './testing/TestHarness';
92
- export type { TestHarness, TestOptions } from './testing/TestHarness';
93
-
94
- // Utils
95
- export { Metadata, isObject, isString } from './utils/Metadata';
1
+ /**
2
+ * Carno - Ultra-Fast HTTP Framework
3
+ *
4
+ * Design principles:
5
+ * 1. ZERO abstraction at runtime - everything compiled at startup
6
+ * 2. Direct Bun.serve() with native routes
7
+ * 3. JIT compiled handlers with AOT async detection
8
+ * 4. No intermediate layers in hot path
9
+ * 5. Radix tree router for dynamic routes
10
+ */
11
+
12
+ // Import reflect-metadata globally for decorator support
13
+ import 'reflect-metadata';
14
+
15
+ // Application
16
+ export { Carno } from './Carno';
17
+ export type { MiddlewareHandler, MiddlewareClass, MiddlewareEntry, CarnoConfig } from './Carno';
18
+
19
+ // Context
20
+ export { Context } from './context/Context';
21
+
22
+ // Decorators - Controller
23
+ export { Controller } from './decorators/Controller';
24
+ export type { ControllerOptions } from './metadata';
25
+
26
+ // Decorators - HTTP Methods
27
+ export { Get, Post, Put, Delete, Patch, Head, Options } from './decorators/methods';
28
+
29
+ // Decorators - Parameters
30
+ export { Param, Query, Body, Header, Req, Ctx, Locals } from './decorators/params';
31
+
32
+ // Decorators - Middleware
33
+ export { Use, Use as Middleware } from './decorators/Middleware';
34
+
35
+ // Middleware Interface
36
+ export type { CarnoMiddleware, CarnoClosure } from './middleware/CarnoMiddleware';
37
+
38
+ // Decorators - DI
39
+ export { Service } from './decorators/Service';
40
+ export { Inject } from './decorators/Inject';
41
+
42
+ // Container
43
+ export { Container, Scope } from './container/Container';
44
+ export type { Token, ProviderConfig } from './container/Container';
45
+
46
+ // Router
47
+ export { RadixRouter } from './router/RadixRouter';
48
+ export type { RouteMatch } from './router/RadixRouter';
49
+
50
+ // CORS
51
+ export { CorsHandler } from './cors/CorsHandler';
52
+ export type { CorsConfig, CorsOrigin } from './cors/CorsHandler';
53
+
54
+ // Validation
55
+ export type { ValidatorAdapter, ValidationResult, ValidationError, ValidationConfig } from './validation/ValidatorAdapter';
56
+ export { Schema, getSchema, VALIDATION_SCHEMA } from './validation/ValidatorAdapter';
57
+ export { ZodAdapter, ValidationException } from './validation/ZodAdapter';
58
+ export { ValibotAdapter } from './validation/ValibotAdapter';
59
+
60
+ // Exceptions
61
+ export {
62
+ HttpException,
63
+ BadRequestException,
64
+ UnauthorizedException,
65
+ ForbiddenException,
66
+ NotFoundException,
67
+ MethodNotAllowedException,
68
+ ConflictException,
69
+ UnprocessableEntityException,
70
+ TooManyRequestsException,
71
+ InternalServerErrorException,
72
+ ServiceUnavailableException
73
+ } from './exceptions/HttpException';
74
+
75
+ // Lifecycle Events
76
+ export {
77
+ EventType,
78
+ OnApplicationInit,
79
+ OnApplicationBoot,
80
+ OnApplicationShutdown
81
+ } from './events/Lifecycle';
82
+
83
+ // Cache
84
+ export { CacheService } from './cache/CacheService';
85
+ export { MemoryDriver } from './cache/MemoryDriver';
86
+ export { RedisDriver } from './cache/RedisDriver';
87
+ export type { RedisConfig } from './cache/RedisDriver';
88
+ export type { CacheDriver, CacheConfig } from './cache/CacheDriver';
89
+
90
+ // Testing
91
+ export { createTestHarness, withTestApp } from './testing/TestHarness';
92
+ export type { TestHarness, TestOptions } from './testing/TestHarness';
93
+
94
+ // Utils
95
+ export { Metadata, isObject, isString } from './utils/Metadata';
package/src/metadata.ts CHANGED
@@ -1,46 +1,46 @@
1
- import { Scope } from './container/Container';
2
-
3
- /**
4
- * Controller options for the @Controller decorator.
5
- */
6
- export interface ControllerOptions {
7
- path?: string;
8
- scope?: Scope;
9
- children?: any[];
10
- }
11
-
12
- /**
13
- * Controller metadata stored on controller classes.
14
- */
15
- export interface ControllerMeta {
16
- path: string;
17
- scope?: Scope;
18
- children?: any[];
19
- }
20
-
21
- /**
22
- * Route metadata stored on controllers.
23
- */
24
- export interface RouteInfo {
25
- method: 'get' | 'post' | 'put' | 'delete' | 'patch' | 'head' | 'options';
26
- path: string;
27
- handlerName: string;
28
- }
29
-
30
- /**
31
- * Middleware metadata.
32
- */
33
- export interface MiddlewareInfo {
34
- handler: Function;
35
- target?: string;
36
- }
37
-
38
- /**
39
- * Metadata keys.
40
- */
41
- export const CONTROLLER_META = Symbol('turbo:controller');
42
- export const ROUTES_META = Symbol('turbo:routes');
43
- export const PARAMS_META = Symbol('turbo:params');
44
- export const MIDDLEWARE_META = Symbol('turbo:middleware');
45
- export const SERVICE_META = Symbol('turbo:service');
46
- export const INJECT_META = Symbol('turbo:inject');
1
+ import { Scope } from './container/Container';
2
+
3
+ /**
4
+ * Controller options for the @Controller decorator.
5
+ */
6
+ export interface ControllerOptions {
7
+ path?: string;
8
+ scope?: Scope;
9
+ children?: any[];
10
+ }
11
+
12
+ /**
13
+ * Controller metadata stored on controller classes.
14
+ */
15
+ export interface ControllerMeta {
16
+ path: string;
17
+ scope?: Scope;
18
+ children?: any[];
19
+ }
20
+
21
+ /**
22
+ * Route metadata stored on controllers.
23
+ */
24
+ export interface RouteInfo {
25
+ method: 'get' | 'post' | 'put' | 'delete' | 'patch' | 'head' | 'options';
26
+ path: string;
27
+ handlerName: string;
28
+ }
29
+
30
+ /**
31
+ * Middleware metadata.
32
+ */
33
+ export interface MiddlewareInfo {
34
+ handler: Function;
35
+ target?: string;
36
+ }
37
+
38
+ /**
39
+ * Metadata keys.
40
+ */
41
+ export const CONTROLLER_META = Symbol('turbo:controller');
42
+ export const ROUTES_META = Symbol('turbo:routes');
43
+ export const PARAMS_META = Symbol('turbo:params');
44
+ export const MIDDLEWARE_META = Symbol('turbo:middleware');
45
+ export const SERVICE_META = Symbol('turbo:service');
46
+ export const INJECT_META = Symbol('turbo:inject');
@@ -1,14 +1,14 @@
1
- import type { Context } from '../context/Context';
2
-
3
- /**
4
- * Closure function to call the next middleware in the chain.
5
- */
6
- export type CarnoClosure = () => void | Promise<void>;
7
-
8
- /**
9
- * Interface for onion-style middleware.
10
- * Middleware must call next() to continue the chain.
11
- */
12
- export interface CarnoMiddleware {
13
- handle(ctx: Context, next: CarnoClosure): void | Promise<void>;
14
- }
1
+ import type { Context } from '../context/Context';
2
+
3
+ /**
4
+ * Closure function to call the next middleware in the chain.
5
+ */
6
+ export type CarnoClosure = () => void | Promise<void>;
7
+
8
+ /**
9
+ * Interface for onion-style middleware.
10
+ * Middleware must call next() to continue the chain.
11
+ */
12
+ export interface CarnoMiddleware {
13
+ handle(ctx: Context, next: CarnoClosure): void | Promise<void>;
14
+ }