@gravito/ripple 4.0.1 → 4.0.3

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 (209) hide show
  1. package/README.md +26 -10
  2. package/dist/{ripple/src/OrbitRipple.d.ts → OrbitRipple.d.ts} +1 -0
  3. package/dist/{ripple/src/RippleServer.d.ts → RippleServer.d.ts} +32 -1
  4. package/dist/core/src/Application.d.ts +41 -0
  5. package/dist/core/src/HookManager.d.ts +33 -189
  6. package/dist/core/src/PlanetCore.d.ts +25 -1
  7. package/dist/core/src/Router.d.ts +32 -46
  8. package/dist/core/src/adapters/bun/BunContext.d.ts +6 -1
  9. package/dist/core/src/adapters/bun/BunNativeAdapter.d.ts +35 -0
  10. package/dist/core/src/adapters/bun/BunWebSocketHandler.d.ts +48 -0
  11. package/dist/core/src/adapters/bun/RadixRouter.d.ts +1 -0
  12. package/dist/core/src/adapters/bun/index.d.ts +7 -0
  13. package/dist/core/src/binary/BinaryUtils.d.ts +105 -0
  14. package/dist/core/src/binary/index.d.ts +5 -0
  15. package/dist/core/src/compat/async-local-storage.d.ts +7 -0
  16. package/dist/core/src/compat/crypto.d.ts +6 -0
  17. package/dist/core/src/engine/AOTRouter.d.ts +10 -0
  18. package/dist/core/src/engine/FastContext.d.ts +19 -1
  19. package/dist/core/src/engine/Gravito.d.ts +13 -18
  20. package/dist/core/src/engine/MinimalContext.d.ts +2 -0
  21. package/dist/core/src/engine/analyzer.d.ts +92 -6
  22. package/dist/core/src/engine/types.d.ts +3 -0
  23. package/dist/core/src/events/EventPriorityQueue.d.ts +18 -256
  24. package/dist/core/src/events/index.d.ts +12 -11
  25. package/dist/core/src/events/queue-core.d.ts +77 -0
  26. package/dist/core/src/events/task-executor.d.ts +51 -0
  27. package/dist/core/src/ffi/NativeAccelerator.d.ts +62 -0
  28. package/dist/core/src/ffi/NativeHasher.d.ts +139 -0
  29. package/dist/core/src/ffi/cbor-fallback.d.ts +96 -0
  30. package/dist/core/src/ffi/hash-fallback.d.ts +33 -0
  31. package/dist/core/src/ffi/index.d.ts +10 -0
  32. package/dist/core/src/ffi/types.d.ts +135 -0
  33. package/dist/core/src/helpers/Str.d.ts +15 -0
  34. package/dist/core/src/hooks/ActionManager.d.ts +132 -0
  35. package/dist/core/src/hooks/AsyncDetector.d.ts +84 -0
  36. package/dist/core/src/hooks/FilterManager.d.ts +71 -0
  37. package/dist/core/src/hooks/MigrationWarner.d.ts +24 -0
  38. package/dist/core/src/hooks/dlq-operations.d.ts +60 -0
  39. package/dist/core/src/hooks/types.d.ts +107 -0
  40. package/dist/core/src/http/CookieJar.d.ts +2 -2
  41. package/dist/core/src/http/types.d.ts +24 -3
  42. package/dist/core/src/index.d.ts +491 -14
  43. package/dist/core/src/observability/contracts.d.ts +137 -0
  44. package/dist/core/src/reliability/DeadLetterQueueManager.d.ts +2 -3
  45. package/dist/core/src/runtime/adapter-bun.d.ts +12 -0
  46. package/dist/core/src/runtime/adapter-deno.d.ts +12 -0
  47. package/dist/core/src/runtime/adapter-node.d.ts +12 -0
  48. package/dist/core/src/runtime/adapter-unknown.d.ts +13 -0
  49. package/dist/core/src/runtime/archive.d.ts +17 -0
  50. package/dist/core/src/runtime/compression.d.ts +21 -0
  51. package/dist/core/src/runtime/deep-equals.d.ts +56 -0
  52. package/dist/core/src/runtime/detection.d.ts +22 -0
  53. package/dist/core/src/runtime/escape.d.ts +34 -0
  54. package/dist/core/src/runtime/index.d.ts +44 -0
  55. package/dist/core/src/runtime/markdown.d.ts +44 -0
  56. package/dist/core/src/runtime/types.d.ts +436 -0
  57. package/dist/core/src/runtime-helpers.d.ts +67 -0
  58. package/dist/core/src/runtime.d.ts +10 -118
  59. package/dist/core/src/testing/HttpTester.d.ts +1 -0
  60. package/dist/core/src/transpiler-utils.d.ts +170 -0
  61. package/dist/{ripple/src/engines → engines}/BunEngine.d.ts +11 -0
  62. package/dist/index.js +1 -7502
  63. package/dist/index.js.map +3 -71
  64. package/package.json +6 -2
  65. package/dist/atlas/src/DB.d.ts +0 -348
  66. package/dist/atlas/src/OrbitAtlas.d.ts +0 -9
  67. package/dist/atlas/src/config/defineConfig.d.ts +0 -14
  68. package/dist/atlas/src/config/index.d.ts +0 -7
  69. package/dist/atlas/src/config/loadConfig.d.ts +0 -41
  70. package/dist/atlas/src/connection/Connection.d.ts +0 -112
  71. package/dist/atlas/src/connection/ConnectionManager.d.ts +0 -180
  72. package/dist/atlas/src/connection/ReplicaConnectionPool.d.ts +0 -54
  73. package/dist/atlas/src/drivers/BunSQLDriver.d.ts +0 -32
  74. package/dist/atlas/src/drivers/BunSQLPreparedStatement.d.ts +0 -118
  75. package/dist/atlas/src/drivers/MongoDBDriver.d.ts +0 -36
  76. package/dist/atlas/src/drivers/MySQLDriver.d.ts +0 -79
  77. package/dist/atlas/src/drivers/PostgresDriver.d.ts +0 -96
  78. package/dist/atlas/src/drivers/RedisDriver.d.ts +0 -43
  79. package/dist/atlas/src/drivers/SQLiteDriver.d.ts +0 -45
  80. package/dist/atlas/src/drivers/types.d.ts +0 -260
  81. package/dist/atlas/src/errors/index.d.ts +0 -45
  82. package/dist/atlas/src/grammar/Grammar.d.ts +0 -342
  83. package/dist/atlas/src/grammar/MongoGrammar.d.ts +0 -47
  84. package/dist/atlas/src/grammar/MySQLGrammar.d.ts +0 -54
  85. package/dist/atlas/src/grammar/NullGrammar.d.ts +0 -35
  86. package/dist/atlas/src/grammar/PostgresGrammar.d.ts +0 -62
  87. package/dist/atlas/src/grammar/SQLiteGrammar.d.ts +0 -32
  88. package/dist/atlas/src/index.d.ts +0 -79
  89. package/dist/atlas/src/migration/Migration.d.ts +0 -64
  90. package/dist/atlas/src/migration/MigrationRepository.d.ts +0 -65
  91. package/dist/atlas/src/migration/Migrator.d.ts +0 -110
  92. package/dist/atlas/src/migration/index.d.ts +0 -6
  93. package/dist/atlas/src/observability/AtlasMetrics.d.ts +0 -33
  94. package/dist/atlas/src/observability/AtlasObservability.d.ts +0 -15
  95. package/dist/atlas/src/observability/AtlasTracer.d.ts +0 -12
  96. package/dist/atlas/src/observability/index.d.ts +0 -9
  97. package/dist/atlas/src/orm/Repository.d.ts +0 -247
  98. package/dist/atlas/src/orm/index.d.ts +0 -6
  99. package/dist/atlas/src/orm/model/DirtyTracker.d.ts +0 -121
  100. package/dist/atlas/src/orm/model/Model.d.ts +0 -458
  101. package/dist/atlas/src/orm/model/ModelRegistry.d.ts +0 -20
  102. package/dist/atlas/src/orm/model/concerns/HasAttributes.d.ts +0 -150
  103. package/dist/atlas/src/orm/model/concerns/HasEvents.d.ts +0 -36
  104. package/dist/atlas/src/orm/model/concerns/HasPersistence.d.ts +0 -92
  105. package/dist/atlas/src/orm/model/concerns/HasRelationships.d.ts +0 -117
  106. package/dist/atlas/src/orm/model/concerns/HasSerialization.d.ts +0 -64
  107. package/dist/atlas/src/orm/model/concerns/applyMixins.d.ts +0 -15
  108. package/dist/atlas/src/orm/model/concerns/index.d.ts +0 -12
  109. package/dist/atlas/src/orm/model/decorators.d.ts +0 -138
  110. package/dist/atlas/src/orm/model/errors.d.ts +0 -52
  111. package/dist/atlas/src/orm/model/index.d.ts +0 -10
  112. package/dist/atlas/src/orm/model/relationships.d.ts +0 -207
  113. package/dist/atlas/src/orm/model/types.d.ts +0 -12
  114. package/dist/atlas/src/orm/schema/SchemaRegistry.d.ts +0 -124
  115. package/dist/atlas/src/orm/schema/SchemaSniffer.d.ts +0 -54
  116. package/dist/atlas/src/orm/schema/index.d.ts +0 -6
  117. package/dist/atlas/src/orm/schema/types.d.ts +0 -85
  118. package/dist/atlas/src/pool/AdaptivePoolManager.d.ts +0 -98
  119. package/dist/atlas/src/pool/PoolHealthChecker.d.ts +0 -91
  120. package/dist/atlas/src/pool/PoolStrategy.d.ts +0 -129
  121. package/dist/atlas/src/pool/PoolWarmer.d.ts +0 -92
  122. package/dist/atlas/src/query/Expression.d.ts +0 -60
  123. package/dist/atlas/src/query/NPlusOneDetector.d.ts +0 -10
  124. package/dist/atlas/src/query/QueryBuilder.d.ts +0 -643
  125. package/dist/atlas/src/query/RelationshipResolver.d.ts +0 -23
  126. package/dist/atlas/src/query/clauses/GroupByClause.d.ts +0 -51
  127. package/dist/atlas/src/query/clauses/HavingClause.d.ts +0 -70
  128. package/dist/atlas/src/query/clauses/JoinClause.d.ts +0 -87
  129. package/dist/atlas/src/query/clauses/LimitClause.d.ts +0 -82
  130. package/dist/atlas/src/query/clauses/OrderByClause.d.ts +0 -69
  131. package/dist/atlas/src/query/clauses/SelectClause.d.ts +0 -71
  132. package/dist/atlas/src/query/clauses/WhereClause.d.ts +0 -167
  133. package/dist/atlas/src/query/clauses/index.d.ts +0 -11
  134. package/dist/atlas/src/schema/Blueprint.d.ts +0 -276
  135. package/dist/atlas/src/schema/ColumnDefinition.d.ts +0 -154
  136. package/dist/atlas/src/schema/ForeignKeyDefinition.d.ts +0 -37
  137. package/dist/atlas/src/schema/MigrationGenerator.d.ts +0 -45
  138. package/dist/atlas/src/schema/Schema.d.ts +0 -131
  139. package/dist/atlas/src/schema/SchemaDiff.d.ts +0 -73
  140. package/dist/atlas/src/schema/TypeGenerator.d.ts +0 -57
  141. package/dist/atlas/src/schema/TypeWriter.d.ts +0 -42
  142. package/dist/atlas/src/schema/grammars/MySQLSchemaGrammar.d.ts +0 -23
  143. package/dist/atlas/src/schema/grammars/PostgresSchemaGrammar.d.ts +0 -26
  144. package/dist/atlas/src/schema/grammars/SQLiteSchemaGrammar.d.ts +0 -28
  145. package/dist/atlas/src/schema/grammars/SchemaGrammar.d.ts +0 -97
  146. package/dist/atlas/src/schema/grammars/index.d.ts +0 -7
  147. package/dist/atlas/src/schema/index.d.ts +0 -8
  148. package/dist/atlas/src/seed/Factory.d.ts +0 -90
  149. package/dist/atlas/src/seed/Seeder.d.ts +0 -28
  150. package/dist/atlas/src/seed/SeederRunner.d.ts +0 -74
  151. package/dist/atlas/src/seed/index.d.ts +0 -6
  152. package/dist/atlas/src/sharding/ShardingManager.d.ts +0 -59
  153. package/dist/atlas/src/types/index.d.ts +0 -1182
  154. package/dist/atlas/src/utils/CursorEncoding.d.ts +0 -63
  155. package/dist/atlas/src/utils/levenshtein.d.ts +0 -9
  156. package/dist/core/src/adapters/PhotonAdapter.d.ts +0 -175
  157. package/dist/core/src/adapters/photon-types.d.ts +0 -73
  158. package/dist/core/src/http/middleware/BodySizeLimit.d.ts +0 -16
  159. package/dist/core/src/http/middleware/Cors.d.ts +0 -24
  160. package/dist/core/src/http/middleware/Csrf.d.ts +0 -23
  161. package/dist/core/src/http/middleware/HeaderTokenGate.d.ts +0 -28
  162. package/dist/core/src/http/middleware/SecurityHeaders.d.ts +0 -29
  163. package/dist/core/src/http/middleware/ThrottleRequests.d.ts +0 -18
  164. package/dist/core/src/instrumentation/index.d.ts +0 -35
  165. package/dist/core/src/instrumentation/opentelemetry.d.ts +0 -178
  166. package/dist/core/src/instrumentation/types.d.ts +0 -182
  167. package/dist/core/src/observability/Metrics.d.ts +0 -244
  168. package/dist/photon/src/index.d.ts +0 -89
  169. package/dist/photon/src/middleware/binary.d.ts +0 -31
  170. package/dist/photon/src/middleware/htmx.d.ts +0 -39
  171. package/dist/photon/src/middleware/ratelimit-redis.d.ts +0 -50
  172. package/dist/photon/src/middleware/ratelimit.d.ts +0 -161
  173. package/dist/photon/src/openapi.d.ts +0 -19
  174. /package/dist/{ripple/src/channels → channels}/Channel.d.ts +0 -0
  175. /package/dist/{ripple/src/channels → channels}/ChannelManager.d.ts +0 -0
  176. /package/dist/{ripple/src/channels → channels}/index.d.ts +0 -0
  177. /package/dist/{ripple/src/drivers → drivers}/LocalDriver.d.ts +0 -0
  178. /package/dist/{ripple/src/drivers → drivers}/NATSDriver.d.ts +0 -0
  179. /package/dist/{ripple/src/drivers → drivers}/RedisDriver.d.ts +0 -0
  180. /package/dist/{ripple/src/drivers → drivers}/index.d.ts +0 -0
  181. /package/dist/{ripple/src/engines → engines}/IRippleEngine.d.ts +0 -0
  182. /package/dist/{ripple/src/engines → engines}/UWebSocketsEngine.d.ts +0 -0
  183. /package/dist/{ripple/src/engines → engines}/WsEngine.d.ts +0 -0
  184. /package/dist/{ripple/src/engines → engines}/index.d.ts +0 -0
  185. /package/dist/{ripple/src/errors → errors}/RippleError.d.ts +0 -0
  186. /package/dist/{ripple/src/errors → errors}/index.d.ts +0 -0
  187. /package/dist/{ripple/src/events → events}/BroadcastEvent.d.ts +0 -0
  188. /package/dist/{ripple/src/events → events}/BroadcastManager.d.ts +0 -0
  189. /package/dist/{ripple/src/events → events}/Broadcaster.d.ts +0 -0
  190. /package/dist/{ripple/src/events → events}/index.d.ts +0 -0
  191. /package/dist/{ripple/src/health → health}/HealthChecker.d.ts +0 -0
  192. /package/dist/{ripple/src/health → health}/index.d.ts +0 -0
  193. /package/dist/{ripple/src/index.d.ts → index.d.ts} +0 -0
  194. /package/dist/{ripple/src/logging → logging}/Logger.d.ts +0 -0
  195. /package/dist/{ripple/src/logging → logging}/index.d.ts +0 -0
  196. /package/dist/{ripple/src/middleware → middleware}/InterceptorManager.d.ts +0 -0
  197. /package/dist/{ripple/src/observability → observability}/RippleMetrics.d.ts +0 -0
  198. /package/dist/{ripple/src/reliability → reliability}/AckManager.d.ts +0 -0
  199. /package/dist/{ripple/src/serializers → serializers}/ISerializer.d.ts +0 -0
  200. /package/dist/{ripple/src/serializers → serializers}/JsonSerializer.d.ts +0 -0
  201. /package/dist/{ripple/src/serializers → serializers}/ProtobufSerializer.d.ts +0 -0
  202. /package/dist/{ripple/src/serializers → serializers}/index.d.ts +0 -0
  203. /package/dist/{ripple/src/tracking → tracking}/ConnectionTracker.d.ts +0 -0
  204. /package/dist/{ripple/src/tracking → tracking}/SessionManager.d.ts +0 -0
  205. /package/dist/{ripple/src/tracking → tracking}/index.d.ts +0 -0
  206. /package/dist/{ripple/src/types.d.ts → types.d.ts} +0 -0
  207. /package/dist/{ripple/src/utils → utils}/MessageSerializer.d.ts +0 -0
  208. /package/dist/{ripple/src/utils → utils}/TokenBucket.d.ts +0 -0
  209. /package/dist/{ripple/src/utils → utils}/index.d.ts +0 -0
@@ -1,161 +0,0 @@
1
- /**
2
- * @fileoverview Rate Limiting Middleware for Photon
3
- *
4
- * Provides token bucket and sliding window rate limiting strategies.
5
- * Supports memory-based and Redis-based storage backends.
6
- *
7
- * @module @gravito/photon/middleware/ratelimit
8
- * @since 1.0.0
9
- */
10
- import type { Context, MiddlewareHandler } from '@gravito/photon';
11
- export interface RateLimitConfig {
12
- /**
13
- * Maximum number of requests allowed within the time window
14
- * @default 100
15
- */
16
- maxRequests: number;
17
- /**
18
- * Time window in milliseconds
19
- * @default 60000 (1 minute)
20
- */
21
- windowMs: number;
22
- /**
23
- * Strategy for rate limiting
24
- * - 'token-bucket': Smooth rate limiting with token refill
25
- * - 'sliding-window': Time-based window that slides continuously
26
- * @default 'token-bucket'
27
- */
28
- strategy?: 'token-bucket' | 'sliding-window';
29
- /**
30
- * Custom key generator function
31
- * @default (c) => c.req.header('x-forwarded-for') || c.req.header('x-real-ip') || 'unknown'
32
- */
33
- keyGenerator?: (c: Context) => string | Promise<string>;
34
- /**
35
- * Storage backend for rate limit state
36
- * @default new MemoryStore()
37
- */
38
- store?: RateLimitStore;
39
- /**
40
- * Custom handler for rate-limited requests
41
- * @default (c) => c.json({ error: 'Too Many Requests', retryAfter: <seconds> }, 429)
42
- */
43
- onRateLimitExceeded?: (c: Context, retryAfter: number) => Response | Promise<Response>;
44
- /**
45
- * Skip rate limiting for certain requests
46
- * @default undefined
47
- */
48
- skip?: (c: Context) => boolean | Promise<boolean>;
49
- /**
50
- * Custom headers to include in responses
51
- * @default true
52
- */
53
- standardHeaders?: boolean;
54
- /**
55
- * Include draft RateLimit headers (RateLimit-*)
56
- * @default false
57
- */
58
- draftHeaders?: boolean;
59
- }
60
- export interface RateLimitStore {
61
- /**
62
- * Increment request count and return current state
63
- */
64
- increment(key: string): Promise<RateLimitState>;
65
- /**
66
- * Reset the rate limit for a key
67
- */
68
- reset(key: string): Promise<void>;
69
- /**
70
- * Get current state without incrementing
71
- */
72
- get(key: string): Promise<RateLimitState | null>;
73
- }
74
- export interface RateLimitState {
75
- /**
76
- * Number of requests made in current window
77
- */
78
- count: number;
79
- /**
80
- * Timestamp when the window expires (ms)
81
- */
82
- resetTime: number;
83
- /**
84
- * Remaining requests allowed
85
- */
86
- remaining: number;
87
- }
88
- export declare class MemoryStore implements RateLimitStore {
89
- private config;
90
- private store;
91
- private head?;
92
- private tail?;
93
- private cleanupInterval;
94
- constructor(config: {
95
- maxRequests: number;
96
- windowMs: number;
97
- }, cleanupIntervalMs?: number);
98
- private addNode;
99
- private removeNode;
100
- increment(key: string): Promise<RateLimitState>;
101
- reset(key: string): Promise<void>;
102
- get(key: string): Promise<RateLimitState | null>;
103
- /**
104
- * Cleanup resources
105
- */
106
- destroy(): void;
107
- }
108
- /**
109
- * Create a rate limiting middleware
110
- *
111
- * @example
112
- * ```typescript
113
- * import { Photon } from '@gravito/photon'
114
- * import { rateLimit } from '@gravito/photon/middleware'
115
- *
116
- * const app = new Photon()
117
- *
118
- * // Basic usage: 100 requests per minute
119
- * app.use('*', rateLimit({ maxRequests: 100, windowMs: 60000 }))
120
- *
121
- * // Per-user rate limiting
122
- * app.use('/api/*', rateLimit({
123
- * maxRequests: 50,
124
- * windowMs: 60000,
125
- * keyGenerator: (c) => {
126
- * const userId = c.get('userId')
127
- * return userId || c.req.header('x-forwarded-for') || 'anonymous'
128
- * }
129
- * }))
130
- * ```
131
- */
132
- export declare function rateLimit(config: RateLimitConfig): MiddlewareHandler;
133
- /**
134
- * Convenience factory: Create rate limiter with common presets
135
- */
136
- export declare const createRateLimiter: {
137
- /**
138
- * Strict: 10 requests per minute
139
- */
140
- strict: (overrides?: Partial<RateLimitConfig>) => MiddlewareHandler;
141
- /**
142
- * Moderate: 60 requests per minute
143
- */
144
- moderate: (overrides?: Partial<RateLimitConfig>) => MiddlewareHandler;
145
- /**
146
- * Lenient: 100 requests per minute
147
- */
148
- lenient: (overrides?: Partial<RateLimitConfig>) => MiddlewareHandler;
149
- /**
150
- * API: 1000 requests per hour
151
- */
152
- api: (overrides?: Partial<RateLimitConfig>) => MiddlewareHandler;
153
- /**
154
- * Auth: 5 attempts per 15 minutes (for login endpoints)
155
- */
156
- auth: (overrides?: Partial<RateLimitConfig>) => MiddlewareHandler;
157
- };
158
- /**
159
- * Export convenience preset
160
- */
161
- export { createRateLimiter as rateLimiter };
@@ -1,19 +0,0 @@
1
- /**
2
- * @file packages/photon/src/openapi.ts
3
- * @module @gravito/photon/openapi
4
- * @description OpenAPI (Swagger) integration for Photon
5
- */
6
- import type { RouteConfig } from '@hono/zod-openapi';
7
- import { createRoute, OpenAPIHono } from '@hono/zod-openapi';
8
- import { z } from 'zod';
9
- /**
10
- * Photon Open API Class
11
- * Extends OpenAPIHono to provide a seamless OpenAPI integration.
12
- */
13
- export declare class PhotonOpenAPI extends OpenAPIHono {
14
- /**
15
- * Helper to create a fully typed route definition.
16
- */
17
- static route(config: RouteConfig): RouteConfig;
18
- }
19
- export { createRoute, z };
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes