veloce-ts 0.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 (175) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/LICENSE +21 -0
  3. package/README.md +442 -0
  4. package/bin/veloce.ts +2 -0
  5. package/dist/cjs/src/cli/index.js +425 -0
  6. package/dist/cjs/src/cli/index.js.map +22 -0
  7. package/dist/cjs/src/docs/index.js +7 -0
  8. package/dist/cjs/src/docs/index.js.map +55 -0
  9. package/dist/cjs/src/errors/index.js +4 -0
  10. package/dist/cjs/src/errors/index.js.map +12 -0
  11. package/dist/cjs/src/graphql/index.js +83 -0
  12. package/dist/cjs/src/graphql/index.js.map +24 -0
  13. package/dist/cjs/src/index.js +126 -0
  14. package/dist/cjs/src/index.js.map +108 -0
  15. package/dist/cjs/src/middleware/index.js +3 -0
  16. package/dist/cjs/src/middleware/index.js.map +12 -0
  17. package/dist/cjs/src/plugins/index.js +125 -0
  18. package/dist/cjs/src/plugins/index.js.map +67 -0
  19. package/dist/cjs/src/testing/index.js +17 -0
  20. package/dist/cjs/src/testing/index.js.map +54 -0
  21. package/dist/cjs/src/types/index.js +3 -0
  22. package/dist/cjs/src/types/index.js.map +16 -0
  23. package/dist/cjs/src/validation/index.js +3 -0
  24. package/dist/cjs/src/validation/index.js.map +19 -0
  25. package/dist/cjs/src/websocket/index.js +3 -0
  26. package/dist/cjs/src/websocket/index.js.map +12 -0
  27. package/dist/esm/chunk-0zxhx5b8.js +7 -0
  28. package/dist/esm/chunk-0zxhx5b8.js.map +10 -0
  29. package/dist/esm/chunk-159eqj8q.js +5 -0
  30. package/dist/esm/chunk-159eqj8q.js.map +12 -0
  31. package/dist/esm/chunk-1hqjkm44.js +5 -0
  32. package/dist/esm/chunk-1hqjkm44.js.map +11 -0
  33. package/dist/esm/chunk-2q6s8v3j.js +6 -0
  34. package/dist/esm/chunk-2q6s8v3j.js.map +10 -0
  35. package/dist/esm/chunk-42h6trpf.js +5 -0
  36. package/dist/esm/chunk-42h6trpf.js.map +9 -0
  37. package/dist/esm/chunk-82f2j0k2.js +60 -0
  38. package/dist/esm/chunk-82f2j0k2.js.map +10 -0
  39. package/dist/esm/chunk-8wrnr45g.js +338 -0
  40. package/dist/esm/chunk-8wrnr45g.js.map +10 -0
  41. package/dist/esm/chunk-9p6d0t33.js +5 -0
  42. package/dist/esm/chunk-9p6d0t33.js.map +10 -0
  43. package/dist/esm/chunk-awven6dt.js +4 -0
  44. package/dist/esm/chunk-awven6dt.js.map +16 -0
  45. package/dist/esm/chunk-gv5n8ddb.js +18 -0
  46. package/dist/esm/chunk-gv5n8ddb.js.map +10 -0
  47. package/dist/esm/chunk-pn7z890c.js +72 -0
  48. package/dist/esm/chunk-pn7z890c.js.map +13 -0
  49. package/dist/esm/chunk-qfsjy9bg.js +7 -0
  50. package/dist/esm/chunk-qfsjy9bg.js.map +10 -0
  51. package/dist/esm/chunk-vkkzgaf7.js +5 -0
  52. package/dist/esm/chunk-vkkzgaf7.js.map +12 -0
  53. package/dist/esm/src/cli/index.js +30 -0
  54. package/dist/esm/src/cli/index.js.map +18 -0
  55. package/dist/esm/src/docs/index.js +8 -0
  56. package/dist/esm/src/docs/index.js.map +48 -0
  57. package/dist/esm/src/errors/index.js +4 -0
  58. package/dist/esm/src/errors/index.js.map +9 -0
  59. package/dist/esm/src/graphql/index.js +4 -0
  60. package/dist/esm/src/graphql/index.js.map +9 -0
  61. package/dist/esm/src/index.js +4 -0
  62. package/dist/esm/src/index.js.map +16 -0
  63. package/dist/esm/src/middleware/index.js +4 -0
  64. package/dist/esm/src/middleware/index.js.map +9 -0
  65. package/dist/esm/src/plugins/index.js +42 -0
  66. package/dist/esm/src/plugins/index.js.map +10 -0
  67. package/dist/esm/src/testing/index.js +4 -0
  68. package/dist/esm/src/testing/index.js.map +39 -0
  69. package/dist/esm/src/types/index.js +4 -0
  70. package/dist/esm/src/types/index.js.map +9 -0
  71. package/dist/esm/src/validation/index.js +4 -0
  72. package/dist/esm/src/validation/index.js.map +9 -0
  73. package/dist/esm/src/websocket/index.js +4 -0
  74. package/dist/esm/src/websocket/index.js.map +9 -0
  75. package/dist/types/adapters/base.d.ts +24 -0
  76. package/dist/types/adapters/base.d.ts.map +1 -0
  77. package/dist/types/adapters/express.d.ts +44 -0
  78. package/dist/types/adapters/express.d.ts.map +1 -0
  79. package/dist/types/adapters/hono.d.ts +44 -0
  80. package/dist/types/adapters/hono.d.ts.map +1 -0
  81. package/dist/types/cli/commands/build.d.ts +3 -0
  82. package/dist/types/cli/commands/build.d.ts.map +1 -0
  83. package/dist/types/cli/commands/dev.d.ts +3 -0
  84. package/dist/types/cli/commands/dev.d.ts.map +1 -0
  85. package/dist/types/cli/commands/generate.d.ts +3 -0
  86. package/dist/types/cli/commands/generate.d.ts.map +1 -0
  87. package/dist/types/cli/commands/new.d.ts +3 -0
  88. package/dist/types/cli/commands/new.d.ts.map +1 -0
  89. package/dist/types/cli/index.d.ts +3 -0
  90. package/dist/types/cli/index.d.ts.map +1 -0
  91. package/dist/types/core/application.d.ts +268 -0
  92. package/dist/types/core/application.d.ts.map +1 -0
  93. package/dist/types/core/compiled-metadata.d.ts +58 -0
  94. package/dist/types/core/compiled-metadata.d.ts.map +1 -0
  95. package/dist/types/core/metadata.d.ts +175 -0
  96. package/dist/types/core/metadata.d.ts.map +1 -0
  97. package/dist/types/core/plugin.d.ts +63 -0
  98. package/dist/types/core/plugin.d.ts.map +1 -0
  99. package/dist/types/core/router-compiler.d.ts +61 -0
  100. package/dist/types/core/router-compiler.d.ts.map +1 -0
  101. package/dist/types/decorators/dependencies.d.ts +28 -0
  102. package/dist/types/decorators/dependencies.d.ts.map +1 -0
  103. package/dist/types/decorators/docs.d.ts +38 -0
  104. package/dist/types/decorators/docs.d.ts.map +1 -0
  105. package/dist/types/decorators/graphql.d.ts +126 -0
  106. package/dist/types/decorators/graphql.d.ts.map +1 -0
  107. package/dist/types/decorators/http.d.ts +74 -0
  108. package/dist/types/decorators/http.d.ts.map +1 -0
  109. package/dist/types/decorators/middleware.d.ts +30 -0
  110. package/dist/types/decorators/middleware.d.ts.map +1 -0
  111. package/dist/types/decorators/params.d.ts +82 -0
  112. package/dist/types/decorators/params.d.ts.map +1 -0
  113. package/dist/types/decorators/websocket.d.ts +61 -0
  114. package/dist/types/decorators/websocket.d.ts.map +1 -0
  115. package/dist/types/dependencies/container.d.ts +93 -0
  116. package/dist/types/dependencies/container.d.ts.map +1 -0
  117. package/dist/types/docs/index.d.ts +3 -0
  118. package/dist/types/docs/index.d.ts.map +1 -0
  119. package/dist/types/docs/openapi-generator.d.ts +50 -0
  120. package/dist/types/docs/openapi-generator.d.ts.map +1 -0
  121. package/dist/types/docs/zod-to-json-schema.d.ts +46 -0
  122. package/dist/types/docs/zod-to-json-schema.d.ts.map +1 -0
  123. package/dist/types/errors/exceptions.d.ts +48 -0
  124. package/dist/types/errors/exceptions.d.ts.map +1 -0
  125. package/dist/types/errors/handler.d.ts +61 -0
  126. package/dist/types/errors/handler.d.ts.map +1 -0
  127. package/dist/types/errors/index.d.ts +7 -0
  128. package/dist/types/errors/index.d.ts.map +1 -0
  129. package/dist/types/graphql/index.d.ts +4 -0
  130. package/dist/types/graphql/index.d.ts.map +1 -0
  131. package/dist/types/graphql/plugin.d.ts +60 -0
  132. package/dist/types/graphql/plugin.d.ts.map +1 -0
  133. package/dist/types/graphql/schema-builder.d.ts +46 -0
  134. package/dist/types/graphql/schema-builder.d.ts.map +1 -0
  135. package/dist/types/graphql/zod-to-graphql.d.ts +22 -0
  136. package/dist/types/graphql/zod-to-graphql.d.ts.map +1 -0
  137. package/dist/types/index.d.ts +34 -0
  138. package/dist/types/index.d.ts.map +1 -0
  139. package/dist/types/middleware/compression.d.ts +7 -0
  140. package/dist/types/middleware/compression.d.ts.map +1 -0
  141. package/dist/types/middleware/cors.d.ts +7 -0
  142. package/dist/types/middleware/cors.d.ts.map +1 -0
  143. package/dist/types/middleware/index.d.ts +4 -0
  144. package/dist/types/middleware/index.d.ts.map +1 -0
  145. package/dist/types/middleware/rate-limit.d.ts +7 -0
  146. package/dist/types/middleware/rate-limit.d.ts.map +1 -0
  147. package/dist/types/plugins/index.d.ts +4 -0
  148. package/dist/types/plugins/index.d.ts.map +1 -0
  149. package/dist/types/plugins/openapi.d.ts +23 -0
  150. package/dist/types/plugins/openapi.d.ts.map +1 -0
  151. package/dist/types/responses/response.d.ts +200 -0
  152. package/dist/types/responses/response.d.ts.map +1 -0
  153. package/dist/types/testing/helpers.d.ts +98 -0
  154. package/dist/types/testing/helpers.d.ts.map +1 -0
  155. package/dist/types/testing/index.d.ts +4 -0
  156. package/dist/types/testing/index.d.ts.map +1 -0
  157. package/dist/types/testing/test-client.d.ts +86 -0
  158. package/dist/types/testing/test-client.d.ts.map +1 -0
  159. package/dist/types/types/index.d.ts +232 -0
  160. package/dist/types/types/index.d.ts.map +1 -0
  161. package/dist/types/validation/exceptions.d.ts +25 -0
  162. package/dist/types/validation/exceptions.d.ts.map +1 -0
  163. package/dist/types/validation/index.d.ts +3 -0
  164. package/dist/types/validation/index.d.ts.map +1 -0
  165. package/dist/types/validation/validator.d.ts +54 -0
  166. package/dist/types/validation/validator.d.ts.map +1 -0
  167. package/dist/types/websocket/connection.d.ts +51 -0
  168. package/dist/types/websocket/connection.d.ts.map +1 -0
  169. package/dist/types/websocket/index.d.ts +4 -0
  170. package/dist/types/websocket/index.d.ts.map +1 -0
  171. package/dist/types/websocket/manager.d.ts +82 -0
  172. package/dist/types/websocket/manager.d.ts.map +1 -0
  173. package/dist/types/websocket/plugin.d.ts +51 -0
  174. package/dist/types/websocket/plugin.d.ts.map +1 -0
  175. package/package.json +149 -0
@@ -0,0 +1,3 @@
1
+ export { ValidationEngine } from './validator.js';
2
+ export { ValidationException } from './exceptions.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { ZodSchema } from 'zod';
2
+ /**
3
+ * ValidationEngine handles validation of data against Zod schemas
4
+ * with built-in caching for performance optimization
5
+ *
6
+ * Performance optimizations:
7
+ * - WeakMap-based schema caching to reuse parsed schemas
8
+ * - Optional result caching for identical input objects
9
+ * - Efficient error handling with minimal overhead
10
+ */
11
+ export declare class ValidationEngine {
12
+ private schemaCache;
13
+ private stats;
14
+ /**
15
+ * Validates data asynchronously against a Zod schema
16
+ * Uses cached schema for improved performance on repeated validations
17
+ *
18
+ * @param data - The data to validate
19
+ * @param schema - The Zod schema to validate against
20
+ * @returns The validated and typed data
21
+ * @throws ValidationException if validation fails
22
+ */
23
+ validate<T>(data: unknown, schema: ZodSchema<T>): Promise<T>;
24
+ /**
25
+ * Validates data synchronously against a Zod schema
26
+ * Uses cached schema for improved performance on repeated validations
27
+ *
28
+ * @param data - The data to validate
29
+ * @param schema - The Zod schema to validate against
30
+ * @returns The validated and typed data
31
+ * @throws ValidationException if validation fails
32
+ */
33
+ validateSync<T>(data: unknown, schema: ZodSchema<T>): T;
34
+ /**
35
+ * Get cache statistics (useful for monitoring and debugging)
36
+ * Returns hit rate and total validations performed
37
+ */
38
+ getCacheStats(): {
39
+ hits: number;
40
+ misses: number;
41
+ validations: number;
42
+ hitRate: number;
43
+ };
44
+ /**
45
+ * Reset cache statistics (useful for testing)
46
+ */
47
+ resetStats(): void;
48
+ /**
49
+ * Clear the schema cache (useful for testing or memory management)
50
+ * Note: WeakMap doesn't have a clear method, so we create a new instance
51
+ */
52
+ clearCache(): void;
53
+ }
54
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/validation/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,KAAK,CAAC;AAa1C;;;;;;;;GAQG;AACH,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,WAAW,CAAmD;IAGtE,OAAO,CAAC,KAAK,CAIX;IAEF;;;;;;;;OAQG;IACG,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA6BlE;;;;;;;;OAQG;IACH,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;IA6BvD;;;OAGG;IACH,aAAa,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAWvF;;OAEG;IACH,UAAU,IAAI,IAAI;IAQlB;;;OAGG;IACH,UAAU,IAAI,IAAI;CAInB"}
@@ -0,0 +1,51 @@
1
+ import type { WebSocketManager } from './manager';
2
+ /**
3
+ * WebSocketConnection wraps a native WebSocket with helper methods
4
+ * for sending messages, broadcasting, and managing rooms
5
+ */
6
+ export declare class WebSocketConnection {
7
+ private manager;
8
+ readonly id: string;
9
+ private _ws;
10
+ constructor(ws: WebSocket, manager: WebSocketManager, id?: string);
11
+ /**
12
+ * Send a message to this specific connection
13
+ * @param data - Data to send (will be JSON stringified)
14
+ */
15
+ send(data: any): void;
16
+ /**
17
+ * Broadcast a message to all connections in a room (or all connections if no room specified)
18
+ * @param data - Data to broadcast
19
+ * @param room - Optional room name to broadcast to
20
+ */
21
+ broadcast(data: any, room?: string): void;
22
+ /**
23
+ * Join a room
24
+ * @param room - Room name to join
25
+ */
26
+ join(room: string): void;
27
+ /**
28
+ * Leave a room
29
+ * @param room - Room name to leave
30
+ */
31
+ leave(room: string): void;
32
+ /**
33
+ * Close the WebSocket connection
34
+ * @param code - Optional close code
35
+ * @param reason - Optional close reason
36
+ */
37
+ close(code?: number, reason?: string): void;
38
+ /**
39
+ * Get the native WebSocket instance
40
+ */
41
+ get native(): WebSocket | null;
42
+ /**
43
+ * Check if the connection is open
44
+ */
45
+ get isOpen(): boolean;
46
+ /**
47
+ * Internal method to mark connection as closed
48
+ */
49
+ _markClosed(): void;
50
+ }
51
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/websocket/connection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD;;;GAGG;AACH,qBAAa,mBAAmB;IAM5B,OAAO,CAAC,OAAO;IALjB,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAmB;gBAG5B,EAAE,EAAE,SAAS,EACL,OAAO,EAAE,gBAAgB,EACjC,EAAE,CAAC,EAAE,MAAM;IAMb;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IASrB;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAIzC;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxB;;;OAGG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIzB;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAM3C;;OAEG;IACH,IAAI,MAAM,IAAI,SAAS,GAAG,IAAI,CAE7B;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;OAEG;IACH,WAAW,IAAI,IAAI;CAGpB"}
@@ -0,0 +1,4 @@
1
+ export { WebSocketConnection } from './connection';
2
+ export { WebSocketManager } from './manager';
3
+ export { WebSocketPlugin } from './plugin';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/websocket/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,82 @@
1
+ import type { WebSocketMetadata } from '../types';
2
+ import { WebSocketConnection } from './connection';
3
+ /**
4
+ * WebSocketManager handles WebSocket connection lifecycle,
5
+ * connection tracking, and room-based broadcasting
6
+ */
7
+ export declare class WebSocketManager {
8
+ private connections;
9
+ private rooms;
10
+ private connectionsByRoom;
11
+ /**
12
+ * Register a new WebSocket connection
13
+ * @param ws - Native WebSocket instance
14
+ * @param metadata - WebSocket route metadata
15
+ * @returns The created WebSocketConnection
16
+ */
17
+ handleConnection(ws: WebSocket, metadata: WebSocketMetadata): WebSocketConnection;
18
+ /**
19
+ * Handle incoming WebSocket message
20
+ */
21
+ private handleMessage;
22
+ /**
23
+ * Handle WebSocket disconnection
24
+ */
25
+ private handleDisconnect;
26
+ /**
27
+ * Execute a handler method on the target class
28
+ */
29
+ private executeHandler;
30
+ /**
31
+ * Broadcast a message to all connections or connections in a specific room
32
+ * @param message - Message to broadcast
33
+ * @param room - Optional room name
34
+ */
35
+ broadcast(message: any, room?: string): void;
36
+ /**
37
+ * Add a connection to a room
38
+ * @param connectionId - Connection ID
39
+ * @param room - Room name
40
+ */
41
+ joinRoom(connectionId: string, room: string): void;
42
+ /**
43
+ * Remove a connection from a room
44
+ * @param connectionId - Connection ID
45
+ * @param room - Room name
46
+ */
47
+ leaveRoom(connectionId: string, room: string): void;
48
+ /**
49
+ * Get all connections in a specific room
50
+ * @param room - Room name
51
+ * @returns Array of connections in the room
52
+ */
53
+ private getConnectionsInRoom;
54
+ /**
55
+ * Get a connection by ID
56
+ * @param connectionId - Connection ID
57
+ * @returns The connection or undefined
58
+ */
59
+ getConnection(connectionId: string): WebSocketConnection | undefined;
60
+ /**
61
+ * Get all active connections
62
+ * @returns Array of all connections
63
+ */
64
+ getAllConnections(): WebSocketConnection[];
65
+ /**
66
+ * Get the number of active connections
67
+ * @returns Number of connections
68
+ */
69
+ getConnectionCount(): number;
70
+ /**
71
+ * Get all room names
72
+ * @returns Array of room names
73
+ */
74
+ getRooms(): string[];
75
+ /**
76
+ * Get the number of connections in a room
77
+ * @param room - Room name
78
+ * @returns Number of connections in the room
79
+ */
80
+ getRoomSize(room: string): number;
81
+ }
82
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/websocket/manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAS,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAA+C;IAClE,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,iBAAiB,CAAoD;IAE7E;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,GAAG,mBAAmB;IA2BjF;;OAEG;YACW,aAAa;IA+B3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA2BxB;;OAEG;YACW,cAAc;IAsB5B;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAc5C;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAmBlD;;;;OAIG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAyBnD;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAK5B;;;;OAIG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAIpE;;;OAGG;IACH,iBAAiB,IAAI,mBAAmB,EAAE;IAI1C;;;OAGG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;;OAGG;IACH,QAAQ,IAAI,MAAM,EAAE;IAIpB;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAGlC"}
@@ -0,0 +1,51 @@
1
+ import type { Plugin } from '../core/plugin';
2
+ import type { VeloceTS } from '../core/application';
3
+ import { WebSocketManager } from './manager';
4
+ /**
5
+ * WebSocketPlugin adds WebSocket support to FastAPI-TS
6
+ * Registers WebSocket routes and handles connection upgrades
7
+ */
8
+ export declare class WebSocketPlugin implements Plugin {
9
+ name: string;
10
+ version: string;
11
+ private manager;
12
+ constructor();
13
+ install(app: VeloceTS): Promise<void>;
14
+ /**
15
+ * Register a WebSocket route with the application
16
+ */
17
+ private registerWebSocket;
18
+ /**
19
+ * Handle WebSocket upgrade for different runtimes
20
+ */
21
+ private handleUpgrade;
22
+ /**
23
+ * Handle WebSocket upgrade for Bun runtime
24
+ */
25
+ private handleBunUpgrade;
26
+ /**
27
+ * Handle WebSocket upgrade for Deno runtime
28
+ */
29
+ private handleDenoUpgrade;
30
+ /**
31
+ * Handle WebSocket upgrade for Node.js runtime
32
+ */
33
+ private handleNodeUpgrade;
34
+ /**
35
+ * Get the WebSocket manager instance
36
+ */
37
+ getManager(): WebSocketManager;
38
+ /**
39
+ * Broadcast a message to all connections or a specific room
40
+ */
41
+ broadcast(message: any, room?: string): void;
42
+ /**
43
+ * Get connection count
44
+ */
45
+ getConnectionCount(): number;
46
+ /**
47
+ * Get all active rooms
48
+ */
49
+ getRooms(): string[];
50
+ }
51
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/websocket/plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C;;;GAGG;AACH,qBAAa,eAAgB,YAAW,MAAM;IAC5C,IAAI,SAAe;IACnB,OAAO,SAAW;IAElB,OAAO,CAAC,OAAO,CAAmB;;IAM5B,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiBzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAYrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,UAAU,IAAI,gBAAgB;IAI9B;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAI5C;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;IACH,QAAQ,IAAI,MAAM,EAAE;CAGrB"}
package/package.json ADDED
@@ -0,0 +1,149 @@
1
+ {
2
+ "name": "veloce-ts",
3
+ "version": "0.1.0",
4
+ "description": "A modern, fast web framework for TypeScript inspired by FastAPI",
5
+ "type": "module",
6
+ "main": "./dist/cjs/index.js",
7
+ "module": "./dist/esm/index.js",
8
+ "types": "./dist/types/index.d.ts",
9
+ "bin": {
10
+ "veloce-ts": "./bin/veloce.ts",
11
+ "veloce": "./bin/veloce.ts"
12
+ },
13
+ "exports": {
14
+ ".": {
15
+ "types": "./dist/types/index.d.ts",
16
+ "import": "./dist/esm/index.js",
17
+ "require": "./dist/cjs/index.js",
18
+ "default": "./dist/esm/index.js"
19
+ },
20
+ "./validation": {
21
+ "types": "./dist/types/validation/index.d.ts",
22
+ "import": "./dist/esm/validation/index.js",
23
+ "require": "./dist/cjs/validation/index.js"
24
+ },
25
+ "./middleware": {
26
+ "types": "./dist/types/middleware/index.d.ts",
27
+ "import": "./dist/esm/middleware/index.js",
28
+ "require": "./dist/cjs/middleware/index.js"
29
+ },
30
+ "./testing": {
31
+ "types": "./dist/types/testing/index.d.ts",
32
+ "import": "./dist/esm/testing/index.js",
33
+ "require": "./dist/cjs/testing/index.js"
34
+ },
35
+ "./errors": {
36
+ "types": "./dist/types/errors/index.d.ts",
37
+ "import": "./dist/esm/errors/index.js",
38
+ "require": "./dist/cjs/errors/index.js"
39
+ },
40
+ "./types": {
41
+ "types": "./dist/types/types/index.d.ts",
42
+ "import": "./dist/esm/types/index.js",
43
+ "require": "./dist/cjs/types/index.js"
44
+ },
45
+ "./docs": {
46
+ "types": "./dist/types/docs/index.d.ts",
47
+ "import": "./dist/esm/docs/index.js",
48
+ "require": "./dist/cjs/docs/index.js"
49
+ },
50
+ "./graphql": {
51
+ "types": "./dist/types/graphql/index.d.ts",
52
+ "import": "./dist/esm/graphql/index.js",
53
+ "require": "./dist/cjs/graphql/index.js"
54
+ },
55
+ "./websocket": {
56
+ "types": "./dist/types/websocket/index.d.ts",
57
+ "import": "./dist/esm/websocket/index.js",
58
+ "require": "./dist/cjs/websocket/index.js"
59
+ },
60
+ "./plugins": {
61
+ "types": "./dist/types/plugins/index.d.ts",
62
+ "import": "./dist/esm/plugins/index.js",
63
+ "require": "./dist/cjs/plugins/index.js"
64
+ },
65
+ "./cli": {
66
+ "types": "./dist/types/cli/index.d.ts",
67
+ "import": "./dist/esm/cli/index.js",
68
+ "require": "./dist/cjs/cli/index.js"
69
+ },
70
+ "./adapters/*": {
71
+ "types": "./dist/types/adapters/*.d.ts",
72
+ "import": "./dist/esm/adapters/*.js",
73
+ "require": "./dist/cjs/adapters/*.js"
74
+ },
75
+ "./package.json": "./package.json"
76
+ },
77
+ "scripts": {
78
+ "build": "bun run build.ts",
79
+ "build:prod": "bun run build.ts --production",
80
+ "build:types": "tsc --project tsconfig.build.json",
81
+ "dev": "bun --watch src/index.ts",
82
+ "test": "bun test",
83
+ "test:watch": "bun test --watch",
84
+ "test:coverage": "bun test --coverage",
85
+ "typecheck": "tsc --noEmit",
86
+ "prepublishOnly": "bun run build:prod",
87
+ "prepack": "bun run build:prod",
88
+ "release:major": "bun run scripts/release.ts major",
89
+ "release:minor": "bun run scripts/release.ts minor",
90
+ "release:patch": "bun run scripts/release.ts patch",
91
+ "test:package": "bun run scripts/test-package.ts"
92
+ },
93
+ "keywords": [
94
+ "veloce-ts",
95
+ "veloce",
96
+ "fastapi",
97
+ "typescript",
98
+ "web-framework",
99
+ "hono",
100
+ "zod",
101
+ "decorators",
102
+ "validation",
103
+ "openapi",
104
+ "fast",
105
+ "modern",
106
+ "fastapi-typescript"
107
+ ],
108
+ "author": "Alfredo Mejia <mejia_alfredo@outlook.com>",
109
+ "license": "MIT",
110
+ "repository": {
111
+ "type": "git",
112
+ "url": "https://github.com/AlfredoMejia3001/veloce-ts.git"
113
+ },
114
+ "bugs": {
115
+ "url": "https://github.com/AlfredoMejia3001/veloce-ts/issues"
116
+ },
117
+ "homepage": "https://github.com/AlfredoMejia3001/veloce-ts#readme",
118
+ "files": [
119
+ "dist/esm",
120
+ "dist/cjs",
121
+ "dist/types",
122
+ "bin",
123
+ "README.md",
124
+ "LICENSE",
125
+ "CHANGELOG.md"
126
+ ],
127
+ "publishConfig": {
128
+ "access": "public",
129
+ "registry": "https://registry.npmjs.org/"
130
+ },
131
+ "engines": {
132
+ "node": ">=18.0.0",
133
+ "bun": ">=1.0.0"
134
+ },
135
+ "dependencies": {
136
+ "commander": "^14.0.1",
137
+ "hono": "^4.0.0",
138
+ "reflect-metadata": "^0.2.0",
139
+ "zod": "^3.22.0",
140
+ "zod-to-json-schema": "^3.24.6"
141
+ },
142
+ "devDependencies": {
143
+ "@types/bun": "latest",
144
+ "typescript": "^5.3.0"
145
+ },
146
+ "peerDependencies": {
147
+ "typescript": ">=5.0.0"
148
+ }
149
+ }