@gravito/ripple 3.0.0 → 3.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 (118) hide show
  1. package/README.md +179 -6
  2. package/README.zh-TW.md +104 -2
  3. package/dist/core/src/Application.d.ts +215 -0
  4. package/dist/core/src/ConfigManager.d.ts +26 -0
  5. package/dist/core/src/Container.d.ts +78 -0
  6. package/dist/core/src/ErrorHandler.d.ts +63 -0
  7. package/dist/core/src/Event.d.ts +5 -0
  8. package/dist/core/src/EventManager.d.ts +123 -0
  9. package/dist/core/src/GlobalErrorHandlers.d.ts +47 -0
  10. package/dist/core/src/GravitoServer.d.ts +28 -0
  11. package/dist/core/src/HookManager.d.ts +84 -0
  12. package/dist/core/src/Listener.d.ts +4 -0
  13. package/dist/core/src/Logger.d.ts +20 -0
  14. package/dist/core/src/PlanetCore.d.ts +289 -0
  15. package/dist/core/src/Route.d.ts +36 -0
  16. package/dist/core/src/Router.d.ts +288 -0
  17. package/dist/core/src/ServiceProvider.d.ts +156 -0
  18. package/dist/core/src/adapters/GravitoEngineAdapter.d.ts +26 -0
  19. package/dist/core/src/adapters/PhotonAdapter.d.ts +170 -0
  20. package/dist/core/src/adapters/bun/BunContext.d.ts +45 -0
  21. package/dist/core/src/adapters/bun/BunNativeAdapter.d.ts +30 -0
  22. package/dist/core/src/adapters/bun/BunRequest.d.ts +31 -0
  23. package/dist/core/src/adapters/bun/RadixNode.d.ts +19 -0
  24. package/dist/core/src/adapters/bun/RadixRouter.d.ts +31 -0
  25. package/dist/core/src/adapters/bun/types.d.ts +20 -0
  26. package/dist/core/src/adapters/photon-types.d.ts +73 -0
  27. package/dist/core/src/adapters/types.d.ts +208 -0
  28. package/dist/core/src/engine/AOTRouter.d.ts +134 -0
  29. package/dist/core/src/engine/FastContext.d.ts +98 -0
  30. package/dist/core/src/engine/Gravito.d.ts +137 -0
  31. package/dist/core/src/engine/MinimalContext.d.ts +77 -0
  32. package/dist/core/src/engine/analyzer.d.ts +27 -0
  33. package/dist/core/src/engine/constants.d.ts +23 -0
  34. package/dist/core/src/engine/index.d.ts +26 -0
  35. package/dist/core/src/engine/path.d.ts +26 -0
  36. package/dist/core/src/engine/pool.d.ts +83 -0
  37. package/dist/core/src/engine/types.d.ts +138 -0
  38. package/dist/core/src/exceptions/AuthenticationException.d.ts +8 -0
  39. package/dist/core/src/exceptions/AuthorizationException.d.ts +8 -0
  40. package/dist/core/src/exceptions/GravitoException.d.ts +23 -0
  41. package/dist/core/src/exceptions/HttpException.d.ts +9 -0
  42. package/dist/core/src/exceptions/ModelNotFoundException.d.ts +10 -0
  43. package/dist/core/src/exceptions/ValidationException.d.ts +22 -0
  44. package/dist/core/src/exceptions/index.d.ts +6 -0
  45. package/dist/core/src/helpers/Arr.d.ts +19 -0
  46. package/dist/core/src/helpers/Str.d.ts +23 -0
  47. package/dist/core/src/helpers/data.d.ts +25 -0
  48. package/dist/core/src/helpers/errors.d.ts +34 -0
  49. package/dist/core/src/helpers/response.d.ts +41 -0
  50. package/dist/core/src/helpers.d.ts +338 -0
  51. package/dist/core/src/http/CookieJar.d.ts +51 -0
  52. package/dist/core/src/http/cookie.d.ts +29 -0
  53. package/dist/core/src/http/middleware/BodySizeLimit.d.ts +16 -0
  54. package/dist/core/src/http/middleware/Cors.d.ts +24 -0
  55. package/dist/core/src/http/middleware/Csrf.d.ts +23 -0
  56. package/dist/core/src/http/middleware/HeaderTokenGate.d.ts +28 -0
  57. package/dist/core/src/http/middleware/SecurityHeaders.d.ts +29 -0
  58. package/dist/core/src/http/middleware/ThrottleRequests.d.ts +18 -0
  59. package/dist/core/src/http/types.d.ts +334 -0
  60. package/dist/core/src/index.d.ts +67 -0
  61. package/dist/core/src/runtime.d.ts +119 -0
  62. package/dist/core/src/security/Encrypter.d.ts +33 -0
  63. package/dist/core/src/security/Hasher.d.ts +29 -0
  64. package/dist/core/src/testing/HttpTester.d.ts +39 -0
  65. package/dist/core/src/testing/TestResponse.d.ts +78 -0
  66. package/dist/core/src/testing/index.d.ts +2 -0
  67. package/dist/core/src/types/events.d.ts +94 -0
  68. package/dist/index.js +10206 -37
  69. package/dist/index.js.map +69 -10
  70. package/dist/photon/src/index.d.ts +70 -0
  71. package/dist/photon/src/middleware/binary.d.ts +31 -0
  72. package/dist/photon/src/middleware/htmx.d.ts +39 -0
  73. package/dist/ripple/src/OrbitRipple.d.ts +64 -0
  74. package/dist/ripple/src/RippleServer.d.ts +518 -0
  75. package/dist/{channels → ripple/src/channels}/Channel.d.ts +6 -1
  76. package/dist/ripple/src/channels/ChannelManager.d.ts +173 -0
  77. package/dist/{channels → ripple/src/channels}/index.d.ts +0 -1
  78. package/dist/ripple/src/drivers/LocalDriver.d.ts +61 -0
  79. package/dist/ripple/src/drivers/RedisDriver.d.ts +141 -0
  80. package/dist/ripple/src/drivers/index.d.ts +2 -0
  81. package/dist/ripple/src/errors/RippleError.d.ts +48 -0
  82. package/dist/ripple/src/errors/index.d.ts +1 -0
  83. package/dist/ripple/src/events/BroadcastEvent.d.ts +123 -0
  84. package/dist/ripple/src/events/BroadcastManager.d.ts +100 -0
  85. package/dist/ripple/src/events/Broadcaster.d.ts +264 -0
  86. package/dist/{events → ripple/src/events}/index.d.ts +1 -1
  87. package/dist/ripple/src/health/HealthChecker.d.ts +93 -0
  88. package/dist/ripple/src/health/index.d.ts +1 -0
  89. package/dist/ripple/src/index.d.ts +60 -0
  90. package/dist/ripple/src/logging/Logger.d.ts +99 -0
  91. package/dist/ripple/src/logging/index.d.ts +1 -0
  92. package/dist/ripple/src/tracking/ConnectionTracker.d.ts +116 -0
  93. package/dist/ripple/src/tracking/index.d.ts +1 -0
  94. package/dist/ripple/src/types.d.ts +753 -0
  95. package/dist/ripple/src/utils/MessageSerializer.d.ts +44 -0
  96. package/dist/ripple/src/utils/index.d.ts +1 -0
  97. package/package.json +14 -5
  98. package/dist/OrbitRipple.d.ts +0 -80
  99. package/dist/OrbitRipple.d.ts.map +0 -1
  100. package/dist/RippleServer.d.ts +0 -126
  101. package/dist/RippleServer.d.ts.map +0 -1
  102. package/dist/channels/Channel.d.ts.map +0 -1
  103. package/dist/channels/ChannelManager.d.ts +0 -79
  104. package/dist/channels/ChannelManager.d.ts.map +0 -1
  105. package/dist/channels/index.d.ts.map +0 -1
  106. package/dist/drivers/LocalDriver.d.ts +0 -30
  107. package/dist/drivers/LocalDriver.d.ts.map +0 -1
  108. package/dist/drivers/index.d.ts +0 -2
  109. package/dist/drivers/index.d.ts.map +0 -1
  110. package/dist/events/BroadcastEvent.d.ts +0 -52
  111. package/dist/events/BroadcastEvent.d.ts.map +0 -1
  112. package/dist/events/Broadcaster.d.ts +0 -68
  113. package/dist/events/Broadcaster.d.ts.map +0 -1
  114. package/dist/events/index.d.ts.map +0 -1
  115. package/dist/index.d.ts +0 -38
  116. package/dist/index.d.ts.map +0 -1
  117. package/dist/types.d.ts +0 -163
  118. package/dist/types.d.ts.map +0 -1
package/dist/types.d.ts DELETED
@@ -1,163 +0,0 @@
1
- /**
2
- * @fileoverview Core types for @gravito/ripple WebSocket module
3
- * @module @gravito/ripple
4
- */
5
- import type { Server, ServerWebSocket } from 'bun';
6
- /**
7
- * Data attached to each WebSocket connection
8
- */
9
- export interface ClientData {
10
- /** Unique client identifier */
11
- id: string;
12
- /** User ID if authenticated */
13
- userId?: string | number;
14
- /** Channels this client has joined */
15
- channels: Set<string>;
16
- /** Additional user info for presence channels */
17
- userInfo?: Record<string, unknown>;
18
- }
19
- export type ChannelType = 'public' | 'private' | 'presence';
20
- /**
21
- * Base channel interface
22
- */
23
- export interface Channel {
24
- /** Channel name (without prefix) */
25
- readonly name: string;
26
- /** Channel type */
27
- readonly type: ChannelType;
28
- /** Full channel name with prefix */
29
- readonly fullName: string;
30
- }
31
- /**
32
- * Channel authorization callback
33
- */
34
- export type ChannelAuthorizer = (channelName: string, userId: string | number | undefined, socketId: string) => boolean | Promise<boolean> | PresenceUserInfo | Promise<PresenceUserInfo | false>;
35
- /**
36
- * User info returned for presence channels
37
- */
38
- export interface PresenceUserInfo {
39
- id: string | number;
40
- info: Record<string, unknown>;
41
- }
42
- /**
43
- * Broadcast event interface
44
- */
45
- export interface BroadcastEventInterface {
46
- /** Channels to broadcast to */
47
- broadcastOn(): Channel | Channel[];
48
- /** Event name (defaults to class name) */
49
- broadcastAs?(): string;
50
- /** Exclude specific socket IDs */
51
- broadcastExcept?(): string[];
52
- }
53
- /**
54
- * Client-to-server message types
55
- */
56
- export type ClientMessage = {
57
- type: 'subscribe';
58
- channel: string;
59
- auth?: {
60
- socketId: string;
61
- signature: string;
62
- };
63
- } | {
64
- type: 'unsubscribe';
65
- channel: string;
66
- } | {
67
- type: 'whisper';
68
- channel: string;
69
- event: string;
70
- data: unknown;
71
- } | {
72
- type: 'ping';
73
- };
74
- /**
75
- * Server-to-client message types
76
- */
77
- export type ServerMessage = {
78
- type: 'subscribed';
79
- channel: string;
80
- } | {
81
- type: 'unsubscribed';
82
- channel: string;
83
- } | {
84
- type: 'error';
85
- message: string;
86
- channel?: string;
87
- } | {
88
- type: 'event';
89
- channel: string;
90
- event: string;
91
- data: unknown;
92
- } | {
93
- type: 'presence';
94
- channel: string;
95
- event: 'join' | 'leave' | 'members';
96
- data: unknown;
97
- } | {
98
- type: 'pong';
99
- } | {
100
- type: 'connected';
101
- socketId: string;
102
- };
103
- /**
104
- * Driver interface for pub/sub backends
105
- */
106
- export interface RippleDriver {
107
- /** Driver name */
108
- readonly name: string;
109
- /**
110
- * Publish a message to a channel
111
- */
112
- publish(channel: string, event: string, data: unknown): Promise<void>;
113
- /**
114
- * Subscribe to channel messages (for Redis driver)
115
- */
116
- subscribe?(channel: string, callback: (event: string, data: unknown) => void): Promise<void>;
117
- /**
118
- * Unsubscribe from a channel
119
- */
120
- unsubscribe?(channel: string): Promise<void>;
121
- /**
122
- * Initialize the driver
123
- */
124
- init?(): Promise<void>;
125
- /**
126
- * Shutdown the driver
127
- */
128
- shutdown?(): Promise<void>;
129
- }
130
- /**
131
- * Ripple server configuration
132
- */
133
- export interface RippleConfig {
134
- /** WebSocket endpoint path (default: '/ws') */
135
- path?: string;
136
- /** Authentication endpoint for private/presence channels */
137
- authEndpoint?: string;
138
- /** Driver to use ('local' | 'redis') */
139
- driver?: 'local' | 'redis';
140
- /** Redis configuration (if using redis driver) */
141
- redis?: {
142
- host?: string;
143
- port?: number;
144
- password?: string;
145
- db?: number;
146
- };
147
- /** Channel authorizer function */
148
- authorizer?: ChannelAuthorizer;
149
- /** Ping interval in milliseconds (default: 30000) */
150
- pingInterval?: number;
151
- }
152
- export type RippleWebSocket = ServerWebSocket<ClientData>;
153
- export type RippleBunServer = Server<ClientData>;
154
- /**
155
- * WebSocket handler configuration for Bun.serve
156
- */
157
- export interface WebSocketHandlerConfig {
158
- open: (ws: RippleWebSocket) => void | Promise<void>;
159
- message: (ws: RippleWebSocket, message: string | Buffer) => void | Promise<void>;
160
- close: (ws: RippleWebSocket, code: number, reason: string) => void | Promise<void>;
161
- drain?: (ws: RippleWebSocket) => void;
162
- }
163
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}