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.
- package/CHANGELOG.md +43 -0
- package/LICENSE +21 -0
- package/README.md +442 -0
- package/bin/veloce.ts +2 -0
- package/dist/cjs/src/cli/index.js +425 -0
- package/dist/cjs/src/cli/index.js.map +22 -0
- package/dist/cjs/src/docs/index.js +7 -0
- package/dist/cjs/src/docs/index.js.map +55 -0
- package/dist/cjs/src/errors/index.js +4 -0
- package/dist/cjs/src/errors/index.js.map +12 -0
- package/dist/cjs/src/graphql/index.js +83 -0
- package/dist/cjs/src/graphql/index.js.map +24 -0
- package/dist/cjs/src/index.js +126 -0
- package/dist/cjs/src/index.js.map +108 -0
- package/dist/cjs/src/middleware/index.js +3 -0
- package/dist/cjs/src/middleware/index.js.map +12 -0
- package/dist/cjs/src/plugins/index.js +125 -0
- package/dist/cjs/src/plugins/index.js.map +67 -0
- package/dist/cjs/src/testing/index.js +17 -0
- package/dist/cjs/src/testing/index.js.map +54 -0
- package/dist/cjs/src/types/index.js +3 -0
- package/dist/cjs/src/types/index.js.map +16 -0
- package/dist/cjs/src/validation/index.js +3 -0
- package/dist/cjs/src/validation/index.js.map +19 -0
- package/dist/cjs/src/websocket/index.js +3 -0
- package/dist/cjs/src/websocket/index.js.map +12 -0
- package/dist/esm/chunk-0zxhx5b8.js +7 -0
- package/dist/esm/chunk-0zxhx5b8.js.map +10 -0
- package/dist/esm/chunk-159eqj8q.js +5 -0
- package/dist/esm/chunk-159eqj8q.js.map +12 -0
- package/dist/esm/chunk-1hqjkm44.js +5 -0
- package/dist/esm/chunk-1hqjkm44.js.map +11 -0
- package/dist/esm/chunk-2q6s8v3j.js +6 -0
- package/dist/esm/chunk-2q6s8v3j.js.map +10 -0
- package/dist/esm/chunk-42h6trpf.js +5 -0
- package/dist/esm/chunk-42h6trpf.js.map +9 -0
- package/dist/esm/chunk-82f2j0k2.js +60 -0
- package/dist/esm/chunk-82f2j0k2.js.map +10 -0
- package/dist/esm/chunk-8wrnr45g.js +338 -0
- package/dist/esm/chunk-8wrnr45g.js.map +10 -0
- package/dist/esm/chunk-9p6d0t33.js +5 -0
- package/dist/esm/chunk-9p6d0t33.js.map +10 -0
- package/dist/esm/chunk-awven6dt.js +4 -0
- package/dist/esm/chunk-awven6dt.js.map +16 -0
- package/dist/esm/chunk-gv5n8ddb.js +18 -0
- package/dist/esm/chunk-gv5n8ddb.js.map +10 -0
- package/dist/esm/chunk-pn7z890c.js +72 -0
- package/dist/esm/chunk-pn7z890c.js.map +13 -0
- package/dist/esm/chunk-qfsjy9bg.js +7 -0
- package/dist/esm/chunk-qfsjy9bg.js.map +10 -0
- package/dist/esm/chunk-vkkzgaf7.js +5 -0
- package/dist/esm/chunk-vkkzgaf7.js.map +12 -0
- package/dist/esm/src/cli/index.js +30 -0
- package/dist/esm/src/cli/index.js.map +18 -0
- package/dist/esm/src/docs/index.js +8 -0
- package/dist/esm/src/docs/index.js.map +48 -0
- package/dist/esm/src/errors/index.js +4 -0
- package/dist/esm/src/errors/index.js.map +9 -0
- package/dist/esm/src/graphql/index.js +4 -0
- package/dist/esm/src/graphql/index.js.map +9 -0
- package/dist/esm/src/index.js +4 -0
- package/dist/esm/src/index.js.map +16 -0
- package/dist/esm/src/middleware/index.js +4 -0
- package/dist/esm/src/middleware/index.js.map +9 -0
- package/dist/esm/src/plugins/index.js +42 -0
- package/dist/esm/src/plugins/index.js.map +10 -0
- package/dist/esm/src/testing/index.js +4 -0
- package/dist/esm/src/testing/index.js.map +39 -0
- package/dist/esm/src/types/index.js +4 -0
- package/dist/esm/src/types/index.js.map +9 -0
- package/dist/esm/src/validation/index.js +4 -0
- package/dist/esm/src/validation/index.js.map +9 -0
- package/dist/esm/src/websocket/index.js +4 -0
- package/dist/esm/src/websocket/index.js.map +9 -0
- package/dist/types/adapters/base.d.ts +24 -0
- package/dist/types/adapters/base.d.ts.map +1 -0
- package/dist/types/adapters/express.d.ts +44 -0
- package/dist/types/adapters/express.d.ts.map +1 -0
- package/dist/types/adapters/hono.d.ts +44 -0
- package/dist/types/adapters/hono.d.ts.map +1 -0
- package/dist/types/cli/commands/build.d.ts +3 -0
- package/dist/types/cli/commands/build.d.ts.map +1 -0
- package/dist/types/cli/commands/dev.d.ts +3 -0
- package/dist/types/cli/commands/dev.d.ts.map +1 -0
- package/dist/types/cli/commands/generate.d.ts +3 -0
- package/dist/types/cli/commands/generate.d.ts.map +1 -0
- package/dist/types/cli/commands/new.d.ts +3 -0
- package/dist/types/cli/commands/new.d.ts.map +1 -0
- package/dist/types/cli/index.d.ts +3 -0
- package/dist/types/cli/index.d.ts.map +1 -0
- package/dist/types/core/application.d.ts +268 -0
- package/dist/types/core/application.d.ts.map +1 -0
- package/dist/types/core/compiled-metadata.d.ts +58 -0
- package/dist/types/core/compiled-metadata.d.ts.map +1 -0
- package/dist/types/core/metadata.d.ts +175 -0
- package/dist/types/core/metadata.d.ts.map +1 -0
- package/dist/types/core/plugin.d.ts +63 -0
- package/dist/types/core/plugin.d.ts.map +1 -0
- package/dist/types/core/router-compiler.d.ts +61 -0
- package/dist/types/core/router-compiler.d.ts.map +1 -0
- package/dist/types/decorators/dependencies.d.ts +28 -0
- package/dist/types/decorators/dependencies.d.ts.map +1 -0
- package/dist/types/decorators/docs.d.ts +38 -0
- package/dist/types/decorators/docs.d.ts.map +1 -0
- package/dist/types/decorators/graphql.d.ts +126 -0
- package/dist/types/decorators/graphql.d.ts.map +1 -0
- package/dist/types/decorators/http.d.ts +74 -0
- package/dist/types/decorators/http.d.ts.map +1 -0
- package/dist/types/decorators/middleware.d.ts +30 -0
- package/dist/types/decorators/middleware.d.ts.map +1 -0
- package/dist/types/decorators/params.d.ts +82 -0
- package/dist/types/decorators/params.d.ts.map +1 -0
- package/dist/types/decorators/websocket.d.ts +61 -0
- package/dist/types/decorators/websocket.d.ts.map +1 -0
- package/dist/types/dependencies/container.d.ts +93 -0
- package/dist/types/dependencies/container.d.ts.map +1 -0
- package/dist/types/docs/index.d.ts +3 -0
- package/dist/types/docs/index.d.ts.map +1 -0
- package/dist/types/docs/openapi-generator.d.ts +50 -0
- package/dist/types/docs/openapi-generator.d.ts.map +1 -0
- package/dist/types/docs/zod-to-json-schema.d.ts +46 -0
- package/dist/types/docs/zod-to-json-schema.d.ts.map +1 -0
- package/dist/types/errors/exceptions.d.ts +48 -0
- package/dist/types/errors/exceptions.d.ts.map +1 -0
- package/dist/types/errors/handler.d.ts +61 -0
- package/dist/types/errors/handler.d.ts.map +1 -0
- package/dist/types/errors/index.d.ts +7 -0
- package/dist/types/errors/index.d.ts.map +1 -0
- package/dist/types/graphql/index.d.ts +4 -0
- package/dist/types/graphql/index.d.ts.map +1 -0
- package/dist/types/graphql/plugin.d.ts +60 -0
- package/dist/types/graphql/plugin.d.ts.map +1 -0
- package/dist/types/graphql/schema-builder.d.ts +46 -0
- package/dist/types/graphql/schema-builder.d.ts.map +1 -0
- package/dist/types/graphql/zod-to-graphql.d.ts +22 -0
- package/dist/types/graphql/zod-to-graphql.d.ts.map +1 -0
- package/dist/types/index.d.ts +34 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/middleware/compression.d.ts +7 -0
- package/dist/types/middleware/compression.d.ts.map +1 -0
- package/dist/types/middleware/cors.d.ts +7 -0
- package/dist/types/middleware/cors.d.ts.map +1 -0
- package/dist/types/middleware/index.d.ts +4 -0
- package/dist/types/middleware/index.d.ts.map +1 -0
- package/dist/types/middleware/rate-limit.d.ts +7 -0
- package/dist/types/middleware/rate-limit.d.ts.map +1 -0
- package/dist/types/plugins/index.d.ts +4 -0
- package/dist/types/plugins/index.d.ts.map +1 -0
- package/dist/types/plugins/openapi.d.ts +23 -0
- package/dist/types/plugins/openapi.d.ts.map +1 -0
- package/dist/types/responses/response.d.ts +200 -0
- package/dist/types/responses/response.d.ts.map +1 -0
- package/dist/types/testing/helpers.d.ts +98 -0
- package/dist/types/testing/helpers.d.ts.map +1 -0
- package/dist/types/testing/index.d.ts +4 -0
- package/dist/types/testing/index.d.ts.map +1 -0
- package/dist/types/testing/test-client.d.ts +86 -0
- package/dist/types/testing/test-client.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +232 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/validation/exceptions.d.ts +25 -0
- package/dist/types/validation/exceptions.d.ts.map +1 -0
- package/dist/types/validation/index.d.ts +3 -0
- package/dist/types/validation/index.d.ts.map +1 -0
- package/dist/types/validation/validator.d.ts +54 -0
- package/dist/types/validation/validator.d.ts.map +1 -0
- package/dist/types/websocket/connection.d.ts +51 -0
- package/dist/types/websocket/connection.d.ts.map +1 -0
- package/dist/types/websocket/index.d.ts +4 -0
- package/dist/types/websocket/index.d.ts.map +1 -0
- package/dist/types/websocket/manager.d.ts +82 -0
- package/dist/types/websocket/manager.d.ts.map +1 -0
- package/dist/types/websocket/plugin.d.ts +51 -0
- package/dist/types/websocket/plugin.d.ts.map +1 -0
- package/package.json +149 -0
|
@@ -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 @@
|
|
|
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
|
+
}
|