@gravito/ripple 4.0.1 → 5.0.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 (226) 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 +31 -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/CircuitBreaker.d.ts +12 -0
  24. package/dist/core/src/events/EventPriorityQueue.d.ts +18 -256
  25. package/dist/core/src/events/index.d.ts +12 -11
  26. package/dist/core/src/events/queue-core.d.ts +77 -0
  27. package/dist/core/src/events/task-executor.d.ts +51 -0
  28. package/dist/core/src/exceptions/AuthException.d.ts +10 -0
  29. package/dist/core/src/exceptions/AuthenticationException.d.ts +2 -2
  30. package/dist/core/src/exceptions/AuthorizationException.d.ts +2 -2
  31. package/dist/core/src/exceptions/CacheException.d.ts +9 -0
  32. package/dist/core/src/exceptions/CircularDependencyException.d.ts +2 -1
  33. package/dist/core/src/exceptions/ConfigurationException.d.ts +9 -0
  34. package/dist/core/src/exceptions/DatabaseException.d.ts +9 -0
  35. package/dist/core/src/exceptions/DomainException.d.ts +9 -0
  36. package/dist/core/src/exceptions/InfrastructureException.d.ts +17 -0
  37. package/dist/core/src/exceptions/QueueException.d.ts +9 -0
  38. package/dist/core/src/exceptions/StorageException.d.ts +9 -0
  39. package/dist/core/src/exceptions/StreamException.d.ts +9 -0
  40. package/dist/core/src/exceptions/SystemException.d.ts +9 -0
  41. package/dist/core/src/exceptions/ValidationException.d.ts +2 -2
  42. package/dist/core/src/exceptions/index.d.ts +10 -0
  43. package/dist/core/src/ffi/NativeAccelerator.d.ts +62 -0
  44. package/dist/core/src/ffi/NativeHasher.d.ts +139 -0
  45. package/dist/core/src/ffi/cbor-fallback.d.ts +96 -0
  46. package/dist/core/src/ffi/hash-fallback.d.ts +33 -0
  47. package/dist/core/src/ffi/index.d.ts +10 -0
  48. package/dist/core/src/ffi/types.d.ts +135 -0
  49. package/dist/core/src/helpers/Str.d.ts +15 -0
  50. package/dist/core/src/hooks/ActionManager.d.ts +132 -0
  51. package/dist/core/src/hooks/AsyncDetector.d.ts +84 -0
  52. package/dist/core/src/hooks/FilterManager.d.ts +71 -0
  53. package/dist/core/src/hooks/MigrationWarner.d.ts +24 -0
  54. package/dist/core/src/hooks/dlq-operations.d.ts +60 -0
  55. package/dist/core/src/hooks/types.d.ts +107 -0
  56. package/dist/core/src/http/CookieJar.d.ts +2 -2
  57. package/dist/core/src/http/types.d.ts +24 -3
  58. package/dist/core/src/index.d.ts +491 -14
  59. package/dist/core/src/observability/contracts.d.ts +137 -0
  60. package/dist/core/src/reliability/DeadLetterQueueManager.d.ts +2 -3
  61. package/dist/core/src/runtime/adapter-bun.d.ts +12 -0
  62. package/dist/core/src/runtime/adapter-deno.d.ts +12 -0
  63. package/dist/core/src/runtime/adapter-node.d.ts +12 -0
  64. package/dist/core/src/runtime/adapter-unknown.d.ts +13 -0
  65. package/dist/core/src/runtime/archive.d.ts +17 -0
  66. package/dist/core/src/runtime/compression.d.ts +21 -0
  67. package/dist/core/src/runtime/deep-equals.d.ts +56 -0
  68. package/dist/core/src/runtime/detection.d.ts +22 -0
  69. package/dist/core/src/runtime/escape.d.ts +34 -0
  70. package/dist/core/src/runtime/index.d.ts +44 -0
  71. package/dist/core/src/runtime/markdown.d.ts +44 -0
  72. package/dist/core/src/runtime/types.d.ts +436 -0
  73. package/dist/core/src/runtime-helpers.d.ts +67 -0
  74. package/dist/core/src/runtime.d.ts +10 -118
  75. package/dist/core/src/testing/HttpTester.d.ts +1 -0
  76. package/dist/core/src/transpiler-utils.d.ts +170 -0
  77. package/dist/{ripple/src/engines → engines}/BunEngine.d.ts +11 -0
  78. package/dist/errors/RippleError.d.ts +66 -0
  79. package/dist/index.js +1 -7502
  80. package/dist/index.js.map +3 -71
  81. package/package.json +6 -2
  82. package/dist/atlas/src/DB.d.ts +0 -348
  83. package/dist/atlas/src/OrbitAtlas.d.ts +0 -9
  84. package/dist/atlas/src/config/defineConfig.d.ts +0 -14
  85. package/dist/atlas/src/config/index.d.ts +0 -7
  86. package/dist/atlas/src/config/loadConfig.d.ts +0 -41
  87. package/dist/atlas/src/connection/Connection.d.ts +0 -112
  88. package/dist/atlas/src/connection/ConnectionManager.d.ts +0 -180
  89. package/dist/atlas/src/connection/ReplicaConnectionPool.d.ts +0 -54
  90. package/dist/atlas/src/drivers/BunSQLDriver.d.ts +0 -32
  91. package/dist/atlas/src/drivers/BunSQLPreparedStatement.d.ts +0 -118
  92. package/dist/atlas/src/drivers/MongoDBDriver.d.ts +0 -36
  93. package/dist/atlas/src/drivers/MySQLDriver.d.ts +0 -79
  94. package/dist/atlas/src/drivers/PostgresDriver.d.ts +0 -96
  95. package/dist/atlas/src/drivers/RedisDriver.d.ts +0 -43
  96. package/dist/atlas/src/drivers/SQLiteDriver.d.ts +0 -45
  97. package/dist/atlas/src/drivers/types.d.ts +0 -260
  98. package/dist/atlas/src/errors/index.d.ts +0 -45
  99. package/dist/atlas/src/grammar/Grammar.d.ts +0 -342
  100. package/dist/atlas/src/grammar/MongoGrammar.d.ts +0 -47
  101. package/dist/atlas/src/grammar/MySQLGrammar.d.ts +0 -54
  102. package/dist/atlas/src/grammar/NullGrammar.d.ts +0 -35
  103. package/dist/atlas/src/grammar/PostgresGrammar.d.ts +0 -62
  104. package/dist/atlas/src/grammar/SQLiteGrammar.d.ts +0 -32
  105. package/dist/atlas/src/index.d.ts +0 -79
  106. package/dist/atlas/src/migration/Migration.d.ts +0 -64
  107. package/dist/atlas/src/migration/MigrationRepository.d.ts +0 -65
  108. package/dist/atlas/src/migration/Migrator.d.ts +0 -110
  109. package/dist/atlas/src/migration/index.d.ts +0 -6
  110. package/dist/atlas/src/observability/AtlasMetrics.d.ts +0 -33
  111. package/dist/atlas/src/observability/AtlasObservability.d.ts +0 -15
  112. package/dist/atlas/src/observability/AtlasTracer.d.ts +0 -12
  113. package/dist/atlas/src/observability/index.d.ts +0 -9
  114. package/dist/atlas/src/orm/Repository.d.ts +0 -247
  115. package/dist/atlas/src/orm/index.d.ts +0 -6
  116. package/dist/atlas/src/orm/model/DirtyTracker.d.ts +0 -121
  117. package/dist/atlas/src/orm/model/Model.d.ts +0 -458
  118. package/dist/atlas/src/orm/model/ModelRegistry.d.ts +0 -20
  119. package/dist/atlas/src/orm/model/concerns/HasAttributes.d.ts +0 -150
  120. package/dist/atlas/src/orm/model/concerns/HasEvents.d.ts +0 -36
  121. package/dist/atlas/src/orm/model/concerns/HasPersistence.d.ts +0 -92
  122. package/dist/atlas/src/orm/model/concerns/HasRelationships.d.ts +0 -117
  123. package/dist/atlas/src/orm/model/concerns/HasSerialization.d.ts +0 -64
  124. package/dist/atlas/src/orm/model/concerns/applyMixins.d.ts +0 -15
  125. package/dist/atlas/src/orm/model/concerns/index.d.ts +0 -12
  126. package/dist/atlas/src/orm/model/decorators.d.ts +0 -138
  127. package/dist/atlas/src/orm/model/errors.d.ts +0 -52
  128. package/dist/atlas/src/orm/model/index.d.ts +0 -10
  129. package/dist/atlas/src/orm/model/relationships.d.ts +0 -207
  130. package/dist/atlas/src/orm/model/types.d.ts +0 -12
  131. package/dist/atlas/src/orm/schema/SchemaRegistry.d.ts +0 -124
  132. package/dist/atlas/src/orm/schema/SchemaSniffer.d.ts +0 -54
  133. package/dist/atlas/src/orm/schema/index.d.ts +0 -6
  134. package/dist/atlas/src/orm/schema/types.d.ts +0 -85
  135. package/dist/atlas/src/pool/AdaptivePoolManager.d.ts +0 -98
  136. package/dist/atlas/src/pool/PoolHealthChecker.d.ts +0 -91
  137. package/dist/atlas/src/pool/PoolStrategy.d.ts +0 -129
  138. package/dist/atlas/src/pool/PoolWarmer.d.ts +0 -92
  139. package/dist/atlas/src/query/Expression.d.ts +0 -60
  140. package/dist/atlas/src/query/NPlusOneDetector.d.ts +0 -10
  141. package/dist/atlas/src/query/QueryBuilder.d.ts +0 -643
  142. package/dist/atlas/src/query/RelationshipResolver.d.ts +0 -23
  143. package/dist/atlas/src/query/clauses/GroupByClause.d.ts +0 -51
  144. package/dist/atlas/src/query/clauses/HavingClause.d.ts +0 -70
  145. package/dist/atlas/src/query/clauses/JoinClause.d.ts +0 -87
  146. package/dist/atlas/src/query/clauses/LimitClause.d.ts +0 -82
  147. package/dist/atlas/src/query/clauses/OrderByClause.d.ts +0 -69
  148. package/dist/atlas/src/query/clauses/SelectClause.d.ts +0 -71
  149. package/dist/atlas/src/query/clauses/WhereClause.d.ts +0 -167
  150. package/dist/atlas/src/query/clauses/index.d.ts +0 -11
  151. package/dist/atlas/src/schema/Blueprint.d.ts +0 -276
  152. package/dist/atlas/src/schema/ColumnDefinition.d.ts +0 -154
  153. package/dist/atlas/src/schema/ForeignKeyDefinition.d.ts +0 -37
  154. package/dist/atlas/src/schema/MigrationGenerator.d.ts +0 -45
  155. package/dist/atlas/src/schema/Schema.d.ts +0 -131
  156. package/dist/atlas/src/schema/SchemaDiff.d.ts +0 -73
  157. package/dist/atlas/src/schema/TypeGenerator.d.ts +0 -57
  158. package/dist/atlas/src/schema/TypeWriter.d.ts +0 -42
  159. package/dist/atlas/src/schema/grammars/MySQLSchemaGrammar.d.ts +0 -23
  160. package/dist/atlas/src/schema/grammars/PostgresSchemaGrammar.d.ts +0 -26
  161. package/dist/atlas/src/schema/grammars/SQLiteSchemaGrammar.d.ts +0 -28
  162. package/dist/atlas/src/schema/grammars/SchemaGrammar.d.ts +0 -97
  163. package/dist/atlas/src/schema/grammars/index.d.ts +0 -7
  164. package/dist/atlas/src/schema/index.d.ts +0 -8
  165. package/dist/atlas/src/seed/Factory.d.ts +0 -90
  166. package/dist/atlas/src/seed/Seeder.d.ts +0 -28
  167. package/dist/atlas/src/seed/SeederRunner.d.ts +0 -74
  168. package/dist/atlas/src/seed/index.d.ts +0 -6
  169. package/dist/atlas/src/sharding/ShardingManager.d.ts +0 -59
  170. package/dist/atlas/src/types/index.d.ts +0 -1182
  171. package/dist/atlas/src/utils/CursorEncoding.d.ts +0 -63
  172. package/dist/atlas/src/utils/levenshtein.d.ts +0 -9
  173. package/dist/core/src/adapters/PhotonAdapter.d.ts +0 -175
  174. package/dist/core/src/adapters/photon-types.d.ts +0 -73
  175. package/dist/core/src/http/middleware/BodySizeLimit.d.ts +0 -16
  176. package/dist/core/src/http/middleware/Cors.d.ts +0 -24
  177. package/dist/core/src/http/middleware/Csrf.d.ts +0 -23
  178. package/dist/core/src/http/middleware/HeaderTokenGate.d.ts +0 -28
  179. package/dist/core/src/http/middleware/SecurityHeaders.d.ts +0 -29
  180. package/dist/core/src/http/middleware/ThrottleRequests.d.ts +0 -18
  181. package/dist/core/src/instrumentation/index.d.ts +0 -35
  182. package/dist/core/src/instrumentation/opentelemetry.d.ts +0 -178
  183. package/dist/core/src/instrumentation/types.d.ts +0 -182
  184. package/dist/core/src/observability/Metrics.d.ts +0 -244
  185. package/dist/photon/src/index.d.ts +0 -89
  186. package/dist/photon/src/middleware/binary.d.ts +0 -31
  187. package/dist/photon/src/middleware/htmx.d.ts +0 -39
  188. package/dist/photon/src/middleware/ratelimit-redis.d.ts +0 -50
  189. package/dist/photon/src/middleware/ratelimit.d.ts +0 -161
  190. package/dist/photon/src/openapi.d.ts +0 -19
  191. package/dist/ripple/src/errors/RippleError.d.ts +0 -48
  192. /package/dist/{ripple/src/channels → channels}/Channel.d.ts +0 -0
  193. /package/dist/{ripple/src/channels → channels}/ChannelManager.d.ts +0 -0
  194. /package/dist/{ripple/src/channels → channels}/index.d.ts +0 -0
  195. /package/dist/{ripple/src/drivers → drivers}/LocalDriver.d.ts +0 -0
  196. /package/dist/{ripple/src/drivers → drivers}/NATSDriver.d.ts +0 -0
  197. /package/dist/{ripple/src/drivers → drivers}/RedisDriver.d.ts +0 -0
  198. /package/dist/{ripple/src/drivers → drivers}/index.d.ts +0 -0
  199. /package/dist/{ripple/src/engines → engines}/IRippleEngine.d.ts +0 -0
  200. /package/dist/{ripple/src/engines → engines}/UWebSocketsEngine.d.ts +0 -0
  201. /package/dist/{ripple/src/engines → engines}/WsEngine.d.ts +0 -0
  202. /package/dist/{ripple/src/engines → engines}/index.d.ts +0 -0
  203. /package/dist/{ripple/src/errors → errors}/index.d.ts +0 -0
  204. /package/dist/{ripple/src/events → events}/BroadcastEvent.d.ts +0 -0
  205. /package/dist/{ripple/src/events → events}/BroadcastManager.d.ts +0 -0
  206. /package/dist/{ripple/src/events → events}/Broadcaster.d.ts +0 -0
  207. /package/dist/{ripple/src/events → events}/index.d.ts +0 -0
  208. /package/dist/{ripple/src/health → health}/HealthChecker.d.ts +0 -0
  209. /package/dist/{ripple/src/health → health}/index.d.ts +0 -0
  210. /package/dist/{ripple/src/index.d.ts → index.d.ts} +0 -0
  211. /package/dist/{ripple/src/logging → logging}/Logger.d.ts +0 -0
  212. /package/dist/{ripple/src/logging → logging}/index.d.ts +0 -0
  213. /package/dist/{ripple/src/middleware → middleware}/InterceptorManager.d.ts +0 -0
  214. /package/dist/{ripple/src/observability → observability}/RippleMetrics.d.ts +0 -0
  215. /package/dist/{ripple/src/reliability → reliability}/AckManager.d.ts +0 -0
  216. /package/dist/{ripple/src/serializers → serializers}/ISerializer.d.ts +0 -0
  217. /package/dist/{ripple/src/serializers → serializers}/JsonSerializer.d.ts +0 -0
  218. /package/dist/{ripple/src/serializers → serializers}/ProtobufSerializer.d.ts +0 -0
  219. /package/dist/{ripple/src/serializers → serializers}/index.d.ts +0 -0
  220. /package/dist/{ripple/src/tracking → tracking}/ConnectionTracker.d.ts +0 -0
  221. /package/dist/{ripple/src/tracking → tracking}/SessionManager.d.ts +0 -0
  222. /package/dist/{ripple/src/tracking → tracking}/index.d.ts +0 -0
  223. /package/dist/{ripple/src/types.d.ts → types.d.ts} +0 -0
  224. /package/dist/{ripple/src/utils → utils}/MessageSerializer.d.ts +0 -0
  225. /package/dist/{ripple/src/utils → utils}/TokenBucket.d.ts +0 -0
  226. /package/dist/{ripple/src/utils → utils}/index.d.ts +0 -0
@@ -1,1182 +0,0 @@
1
- /**
2
- * @gravito/atlas - Type Definitions
3
- * @description Core types for the database query builder and ORM
4
- */
5
- /**
6
- * Supported database driver types
7
- */
8
- export type DriverType = 'postgres' | 'mysql' | 'mariadb' | 'sqlite' | 'mongodb' | 'redis';
9
- import type { AtlasMetrics, AtlasTracer } from '../observability';
10
- /**
11
- * Base connection interface
12
- */
13
- export interface BaseConnectionConfig {
14
- /**
15
- * The database driver to use
16
- */
17
- driver: DriverType;
18
- /**
19
- * Database host address
20
- * @default 'localhost'
21
- */
22
- host?: string;
23
- /**
24
- * Database port number
25
- */
26
- port?: number;
27
- /**
28
- * Database name
29
- */
30
- database?: string;
31
- /**
32
- * Database username
33
- */
34
- username?: string;
35
- /**
36
- * Database password
37
- */
38
- password?: string;
39
- /**
40
- * Database character set
41
- * @default 'utf8mb4'
42
- */
43
- charset?: string;
44
- /**
45
- * Database timezone
46
- * @default 'UTC'
47
- */
48
- timezone?: string;
49
- /**
50
- * Connection pool configuration
51
- */
52
- pool?: PoolConfig;
53
- /**
54
- * SSL configuration for secure connections
55
- */
56
- ssl?: SSLConfig | boolean;
57
- /**
58
- * Whether to use the native driver (e.g., Bun.sql) if available
59
- * @default false
60
- */
61
- useNativeDriver?: boolean;
62
- /**
63
- * Pre-initialized tracer instance
64
- * @internal
65
- */
66
- tracer?: AtlasTracer;
67
- /**
68
- * Pre-initialized metrics instance
69
- * @internal
70
- */
71
- metrics?: AtlasMetrics;
72
- }
73
- /**
74
- * Union type for all connection configurations
75
- */
76
- export type ConnectionConfig = PostgresConfig | MySQLConfig | SQLiteConfig | MongoDBConfig | RedisConfig | BaseConnectionConfig;
77
- /**
78
- * Read/Write Replica configuration
79
- * Defines a primary (write) node and one or more read replicas.
80
- */
81
- export interface ReadWriteConnectionConfig {
82
- /**
83
- * Primary write node configuration
84
- */
85
- write: ConnectionConfig;
86
- /**
87
- * Read replica configurations (Round-robin selected)
88
- */
89
- read: ConnectionConfig[];
90
- }
91
- /**
92
- * Union type for Atlas connection entry (standard or replica)
93
- */
94
- export type AtlasConnectionEntry = ConnectionConfig | ReadWriteConnectionConfig;
95
- /**
96
- * Type guard to check if a connection config is a read/write replica config
97
- */
98
- export declare function isReadWriteConfig(config: AtlasConnectionEntry): config is ReadWriteConnectionConfig;
99
- export interface AtlasObservabilityConfig {
100
- enabled: boolean;
101
- tracing?: boolean;
102
- metrics?: boolean;
103
- serviceName?: string;
104
- }
105
- export interface AtlasConfig {
106
- default: string;
107
- connections: Record<string, AtlasConnectionEntry>;
108
- observability?: AtlasObservabilityConfig;
109
- }
110
- /**
111
- * PostgreSQL specific configuration
112
- */
113
- export interface PostgresConfig extends BaseConnectionConfig {
114
- /**
115
- * Driver identifier
116
- */
117
- driver: 'postgres';
118
- /**
119
- * Default database schema
120
- * @default 'public'
121
- */
122
- schema?: string;
123
- /**
124
- * Application name for connection tracking
125
- */
126
- applicationName?: string;
127
- }
128
- /**
129
- * MySQL/MariaDB specific configuration
130
- */
131
- export interface MySQLConfig extends BaseConnectionConfig {
132
- /**
133
- * Driver identifier
134
- */
135
- driver: 'mysql' | 'mariadb';
136
- /**
137
- * Path to Unix domain socket
138
- */
139
- socketPath?: string;
140
- /**
141
- * Whether to allow multiple SQL statements in a single query
142
- * @default false
143
- */
144
- multipleStatements?: boolean;
145
- }
146
- /**
147
- * SQLite specific configuration
148
- */
149
- export interface SQLiteConfig {
150
- /**
151
- * Driver identifier
152
- */
153
- driver: 'sqlite';
154
- /**
155
- * Database file path or ':memory:' for in-memory database
156
- */
157
- database: string;
158
- /**
159
- * Whether to open the database in read-only mode
160
- * @default false
161
- */
162
- readonly?: boolean;
163
- /**
164
- * Whether to use the native driver (e.g., Bun.sql) if available
165
- * @default false
166
- */
167
- useNativeDriver?: boolean;
168
- }
169
- /**
170
- * MongoDB specific configuration
171
- */
172
- export interface MongoDBConfig extends BaseConnectionConfig {
173
- /**
174
- * Driver identifier
175
- */
176
- driver: 'mongodb';
177
- /**
178
- * MongoDB connection URI
179
- */
180
- uri: string;
181
- /**
182
- * Additional MongoDB driver options
183
- */
184
- options?: Record<string, unknown>;
185
- }
186
- /**
187
- * Redis specific configuration
188
- */
189
- export interface RedisConfig extends BaseConnectionConfig {
190
- /**
191
- * Driver identifier
192
- */
193
- driver: 'redis';
194
- /**
195
- * Redis server host
196
- */
197
- host: string;
198
- /**
199
- * Redis server port
200
- * @default 6379
201
- */
202
- port?: number;
203
- /**
204
- * Redis server password
205
- */
206
- password?: string;
207
- /**
208
- * Redis database index
209
- * @default 0
210
- */
211
- db?: number;
212
- }
213
- /**
214
- * Connection pool configuration
215
- */
216
- export interface PoolConfig {
217
- /**
218
- * Minimum number of connections in the pool
219
- */
220
- min?: number;
221
- /**
222
- * Maximum number of connections in the pool
223
- */
224
- max?: number;
225
- /**
226
- * Maximum time (ms) to wait for a connection from the pool
227
- */
228
- acquireTimeout?: number;
229
- /**
230
- * Maximum time (ms) a connection can be idle before being released
231
- */
232
- idleTimeout?: number;
233
- /**
234
- * Interval (ms) to check for idle connections to reap
235
- */
236
- reapInterval?: number;
237
- }
238
- /**
239
- * SSL configuration
240
- */
241
- export interface SSLConfig {
242
- /**
243
- * Whether to reject unauthorized connections
244
- */
245
- rejectUnauthorized?: boolean;
246
- /**
247
- * Certificate Authority (CA) certificate
248
- */
249
- ca?: string;
250
- /**
251
- * Client private key
252
- */
253
- key?: string;
254
- /**
255
- * Client certificate
256
- */
257
- cert?: string;
258
- }
259
- /**
260
- * Supported comparison operators
261
- */
262
- export type Operator = '=' | '!=' | '<>' | '<' | '<=' | '>' | '>=' | 'like' | 'ilike' | 'not like' | 'in' | 'not in' | 'between' | 'not between' | 'is' | 'is not';
263
- /**
264
- * Boolean operators for WHERE clauses
265
- */
266
- export type BooleanOperator = 'and' | 'or';
267
- /**
268
- * Order direction
269
- */
270
- export type OrderDirection = 'asc' | 'desc';
271
- /**
272
- * Join types
273
- */
274
- export type JoinType = 'inner' | 'left' | 'right' | 'cross' | 'full';
275
- /**
276
- * WHERE clause structure
277
- */
278
- export interface WhereClause {
279
- /**
280
- * Type of the where clause
281
- */
282
- type: 'basic' | 'nested' | 'in' | 'null' | 'between' | 'raw' | 'exists' | 'column';
283
- /**
284
- * Column name
285
- */
286
- column?: string;
287
- /**
288
- * Comparison operator
289
- */
290
- operator?: Operator;
291
- /**
292
- * Value for basic comparison
293
- */
294
- value?: unknown;
295
- /**
296
- * Values for IN or BETWEEN clauses
297
- */
298
- values?: unknown[];
299
- /**
300
- * Boolean operator (AND/OR)
301
- */
302
- boolean: BooleanOperator;
303
- /**
304
- * Whether to negate the clause (NOT)
305
- */
306
- not?: boolean;
307
- /**
308
- * Nested query builder for subqueries
309
- */
310
- query?: QueryBuilderContract;
311
- /**
312
- * Raw SQL for raw clauses
313
- */
314
- sql?: string;
315
- /**
316
- * Bindings for raw clauses
317
- */
318
- bindings?: unknown[];
319
- }
320
- /**
321
- * ORDER BY clause structure
322
- */
323
- export interface OrderClause {
324
- /**
325
- * Column name
326
- */
327
- column: string;
328
- /**
329
- * Sort direction
330
- */
331
- direction: OrderDirection;
332
- }
333
- /**
334
- * JOIN clause structure
335
- */
336
- export interface JoinClause {
337
- /**
338
- * Type of join
339
- */
340
- type: JoinType;
341
- /**
342
- * Table to join
343
- */
344
- table: string;
345
- /**
346
- * First column for join condition
347
- */
348
- first: string;
349
- /**
350
- * Operator for join condition
351
- */
352
- operator: string;
353
- /**
354
- * Second column for join condition
355
- */
356
- second: string;
357
- }
358
- /**
359
- * HAVING clause structure
360
- */
361
- export interface HavingClause {
362
- /**
363
- * Type of having clause
364
- */
365
- type: 'basic' | 'raw';
366
- /**
367
- * Column name
368
- */
369
- column?: string;
370
- /**
371
- * Comparison operator
372
- */
373
- operator?: Operator;
374
- /**
375
- * Value for comparison
376
- */
377
- value?: unknown;
378
- /**
379
- * Boolean operator (AND/OR)
380
- */
381
- boolean: BooleanOperator;
382
- /**
383
- * Raw SQL for raw clauses
384
- */
385
- sql?: string;
386
- /**
387
- * Bindings for raw clauses
388
- */
389
- bindings?: unknown[];
390
- }
391
- /**
392
- * Query execution result
393
- */
394
- export interface QueryResult<T = Record<string, unknown>> {
395
- /**
396
- * Result rows
397
- */
398
- rows: T[];
399
- /**
400
- * Number of rows returned
401
- */
402
- rowCount: number;
403
- /**
404
- * Last inserted ID (if available)
405
- */
406
- insertId?: number | bigint | string | undefined;
407
- /**
408
- * Field metadata
409
- */
410
- fields?: FieldInfo[];
411
- }
412
- /**
413
- * Field information from query result
414
- */
415
- export interface FieldInfo {
416
- /**
417
- * Field name
418
- */
419
- name: string;
420
- /**
421
- * Data type name
422
- */
423
- dataType?: string | undefined;
424
- /**
425
- * Table ID (if available)
426
- */
427
- tableId?: number | undefined;
428
- }
429
- /**
430
- * Execution result (INSERT/UPDATE/DELETE)
431
- */
432
- export interface ExecuteResult {
433
- /**
434
- * Number of affected rows
435
- */
436
- affectedRows: number;
437
- /**
438
- * Last inserted ID (for INSERT)
439
- */
440
- insertId?: number | bigint | string | undefined;
441
- /**
442
- * Number of changed rows (for UPDATE)
443
- */
444
- changedRows?: number | undefined;
445
- }
446
- /**
447
- * Pagination result
448
- */
449
- export interface PaginateResult<T> {
450
- /**
451
- * Paginated data
452
- */
453
- data: T[];
454
- /**
455
- * Pagination metadata
456
- */
457
- pagination: {
458
- /**
459
- * Current page number
460
- */
461
- page: number;
462
- /**
463
- * Number of items per page
464
- */
465
- perPage: number;
466
- /**
467
- * Total number of items
468
- */
469
- total: number;
470
- /**
471
- * Total number of pages
472
- */
473
- totalPages: number;
474
- /**
475
- * Whether there is a next page
476
- */
477
- hasNext: boolean;
478
- /**
479
- * Whether there is a previous page
480
- */
481
- hasPrev: boolean;
482
- };
483
- }
484
- /**
485
- * Cursor-based pagination result
486
- * Provides O(1) performance regardless of dataset size.
487
- * Ideal for infinite scroll and large datasets.
488
- */
489
- export interface CursorPaginateResult<T> {
490
- /**
491
- * Current page data
492
- */
493
- data: T[];
494
- /**
495
- * Opaque cursor pointing to the next page (null if no more data)
496
- */
497
- nextCursor: string | null;
498
- /**
499
- * Opaque cursor pointing to the previous page (null if first page)
500
- */
501
- prevCursor: string | null;
502
- /**
503
- * Whether more records exist beyond the current page
504
- */
505
- hasMore: boolean;
506
- /**
507
- * Number of records returned
508
- */
509
- count: number;
510
- }
511
- /**
512
- * Connection pool statistics
513
- */
514
- export interface PoolStats {
515
- /**
516
- * Number of idle connections in the pool
517
- */
518
- idle: number;
519
- /**
520
- * Number of connections waiting to be acquired
521
- */
522
- pending: number;
523
- /**
524
- * Number of active connections currently in use
525
- */
526
- active: number;
527
- /**
528
- * Total number of connections in the pool
529
- */
530
- total: number;
531
- /**
532
- * Maximum number of connections allowed
533
- */
534
- max: number;
535
- }
536
- /**
537
- * Connection pool health status
538
- */
539
- export interface PoolHealth {
540
- /**
541
- * Health status: 'healthy' | 'warning' | 'critical' | 'disconnected'
542
- */
543
- status: 'healthy' | 'warning' | 'critical' | 'disconnected';
544
- /**
545
- * Human-readable health message
546
- */
547
- message: string;
548
- /**
549
- * Pool statistics (when available)
550
- */
551
- stats?: PoolStats;
552
- /**
553
- * Last health check timestamp
554
- */
555
- lastCheck?: Date;
556
- }
557
- /**
558
- * Model base class (forward declaration)
559
- * Actual implementation in src/orm/model/Model.ts
560
- */
561
- export type Model = import('../orm/model/Model').Model;
562
- /**
563
- * Model constructor type (forward declaration)
564
- */
565
- export type ModelConstructor<T extends Model> = import('../orm/model/Model').ModelConstructor<T>;
566
- /**
567
- * Database Driver Contract
568
- */
569
- export interface DriverContract {
570
- /**
571
- * Get driver name
572
- */
573
- getDriverName(): DriverType;
574
- /**
575
- * Connect to the database
576
- */
577
- connect(): Promise<void>;
578
- /**
579
- * Disconnect from the database
580
- */
581
- disconnect(): Promise<void>;
582
- /**
583
- * Check if connected
584
- */
585
- isConnected(): boolean;
586
- /**
587
- * Execute a query and return results
588
- */
589
- query<T = Record<string, unknown>>(sql: string, bindings?: unknown[]): Promise<QueryResult<T>>;
590
- /**
591
- * Execute a statement (INSERT/UPDATE/DELETE)
592
- */
593
- execute(sql: string, bindings?: unknown[]): Promise<ExecuteResult>;
594
- /**
595
- * Begin a transaction
596
- */
597
- beginTransaction(): Promise<void>;
598
- /**
599
- * Commit the current transaction
600
- */
601
- commit(): Promise<void>;
602
- /**
603
- * Rollback the current transaction
604
- */
605
- rollback(): Promise<void>;
606
- /**
607
- * Check if currently in a transaction
608
- */
609
- inTransaction(): boolean;
610
- /**
611
- * Prepare a statement for repeated execution
612
- * @optional Only implemented by drivers that support prepared statements
613
- * @param sql - SQL query to prepare
614
- * @returns Prepared statement identifier
615
- */
616
- prepare?(sql: string): Promise<string>;
617
- /**
618
- * Execute a prepared statement
619
- * @optional Only implemented by drivers that support prepared statements
620
- * @param name - Prepared statement identifier
621
- * @param bindings - Query parameters
622
- * @returns Query result
623
- */
624
- executePrepared?<T = Record<string, unknown>>(name: string, bindings?: unknown[]): Promise<QueryResult<T>>;
625
- /**
626
- * Clear all prepared statements from cache
627
- * @optional Only implemented by drivers that support prepared statements
628
- */
629
- clearPreparedStatements?(): Promise<void>;
630
- /**
631
- * Stream query results for processing large datasets
632
- * @optional Only implemented by drivers that support streaming
633
- * @param sql - SQL query
634
- * @param bindings - Query parameters
635
- * @returns Async iterable of result rows
636
- */
637
- stream?<T = Record<string, unknown>>(sql: string, bindings?: unknown[]): AsyncIterable<T>;
638
- /**
639
- * Get connection pool statistics
640
- * @optional Only implemented by drivers that support connection pooling
641
- * @returns Pool statistics or null if not supported
642
- */
643
- getPoolStats?(): PoolStats | null;
644
- /**
645
- * Get connection pool health status
646
- * @optional Only implemented by drivers that support connection pooling
647
- * @returns Pool health information
648
- */
649
- getPoolHealth?(): PoolHealth;
650
- /**
651
- * Adjust the connection pool size dynamically
652
- * @optional Only implemented by drivers that support pool resizing
653
- * @param targetSize - Target number of connections
654
- */
655
- adjustPoolSize?(targetSize: number): Promise<void>;
656
- }
657
- /**
658
- * Connection Contract
659
- */
660
- export interface ConnectionContract {
661
- /**
662
- * Get connection name
663
- */
664
- getName(): string;
665
- /**
666
- * Get the underlying driver
667
- */
668
- getDriver(): DriverContract;
669
- /**
670
- * Get connection configuration
671
- */
672
- getConfig(): ConnectionConfig;
673
- /**
674
- * Get the tracer instance for this connection
675
- */
676
- getTracer(): AtlasTracer | undefined;
677
- /**
678
- * Create a new query builder for the given table
679
- */
680
- table<T = Record<string, unknown>>(tableName: string): QueryBuilderContract<T>;
681
- /**
682
- * Execute raw SQL query and return results
683
- */
684
- raw<T = Record<string, unknown>>(sql: string, bindings?: unknown[]): Promise<QueryResult<T>>;
685
- /**
686
- * Execute raw SQL statement (INSERT/UPDATE/DELETE)
687
- */
688
- execute(sql: string, bindings?: unknown[]): Promise<ExecuteResult>;
689
- /**
690
- * Execute a callback within a database transaction
691
- */
692
- transaction<T>(callback: (connection: ConnectionContract) => Promise<T>): Promise<T>;
693
- /**
694
- * Disconnect from the database
695
- */
696
- disconnect(): Promise<void>;
697
- /**
698
- * Get the grammar instance for this connection
699
- */
700
- getGrammar(): GrammarContract;
701
- }
702
- /**
703
- * Query Builder Contract
704
- */
705
- export interface QueryBuilderContract<T = Record<string, unknown>> {
706
- /**
707
- * Set the model for hydration
708
- */
709
- setModel<M extends Model = Model>(model: ModelConstructor<M>): this;
710
- /**
711
- * Get the current model
712
- */
713
- getModel<M extends Model = Model>(): ModelConstructor<M> | undefined;
714
- /**
715
- * Select columns for the query
716
- */
717
- select(...columns: string[]): this;
718
- /**
719
- * Set the table for the query
720
- */
721
- from(table: string): this;
722
- /**
723
- * Add a raw select expression
724
- */
725
- selectRaw(sql: string, bindings?: unknown[]): this;
726
- /**
727
- * Force the query to return distinct results
728
- */
729
- distinct(): this;
730
- /**
731
- * Add a basic where clause
732
- */
733
- where(column: string, value: unknown | QueryBuilderContract<any>): this;
734
- where(column: string, operator: Operator, value: unknown | QueryBuilderContract<any>): this;
735
- where(callback: (query: QueryBuilderContract<T>) => void): this;
736
- where(conditions: Record<string, unknown | QueryBuilderContract<any>>): this;
737
- /**
738
- * Add an "or where" clause
739
- */
740
- orWhere(column: string, value: unknown | QueryBuilderContract<any>): this;
741
- orWhere(column: string, operator: Operator, value: unknown | QueryBuilderContract<any>): this;
742
- orWhere(callback: (query: QueryBuilderContract<T>) => void): this;
743
- /**
744
- * Add a "where in" clause
745
- */
746
- whereIn(column: string, values: unknown[] | QueryBuilderContract<any>): this;
747
- /**
748
- * Add a "where not in" clause
749
- */
750
- whereNotIn(column: string, values: unknown[] | QueryBuilderContract<any>): this;
751
- /**
752
- * Add an "or where in" clause
753
- */
754
- orWhereIn(column: string, values: unknown[] | QueryBuilderContract<any>): this;
755
- /**
756
- * Add an "or where not in" clause
757
- */
758
- orWhereNotIn(column: string, values: unknown[] | QueryBuilderContract<any>): this;
759
- /**
760
- * Add a "where null" clause
761
- */
762
- whereNull(column: string): this;
763
- /**
764
- * Add a "where not null" clause
765
- */
766
- whereNotNull(column: string): this;
767
- /**
768
- * Add an "or where null" clause
769
- */
770
- orWhereNull(column: string): this;
771
- /**
772
- * Add an "or where not null" clause
773
- */
774
- orWhereNotNull(column: string): this;
775
- /**
776
- * Add a "where between" clause
777
- */
778
- whereBetween(column: string, values: [unknown, unknown]): this;
779
- /**
780
- * Add a "where not between" clause
781
- */
782
- whereNotBetween(column: string, values: [unknown, unknown]): this;
783
- /**
784
- * Add a raw where clause
785
- */
786
- whereRaw(sql: string, bindings?: unknown[]): this;
787
- /**
788
- * Add a raw "or where" clause
789
- */
790
- orWhereRaw(sql: string, bindings?: unknown[]): this;
791
- /**
792
- * Add a "where column" clause (comparing two columns)
793
- */
794
- whereColumn(first: string, operator: Operator, second: string): this;
795
- /**
796
- * Add a "where exists" clause
797
- */
798
- whereExists(callback: (query: QueryBuilderContract<unknown>) => void): this;
799
- /**
800
- * Add a "where not exists" clause
801
- */
802
- whereNotExists(callback: (query: QueryBuilderContract<unknown>) => void): this;
803
- /**
804
- * Add a where clause for JSON fields
805
- */
806
- whereJson(column: string, value: unknown): this;
807
- /**
808
- * Add an "or where" clause for JSON fields
809
- */
810
- orWhereJson(column: string, value: unknown): this;
811
- /**
812
- * Add a "where json contains" clause
813
- */
814
- whereJsonContains(column: string, value: unknown): this;
815
- /**
816
- * Add an "or where json contains" clause
817
- */
818
- orWhereJsonContains(column: string, value: unknown): this;
819
- /**
820
- * Add an inner join clause
821
- */
822
- join(table: string, first: string, operator: string, second: string): this;
823
- /**
824
- * Add a left join clause
825
- */
826
- leftJoin(table: string, first: string, operator: string, second: string): this;
827
- /**
828
- * Add a right join clause
829
- */
830
- rightJoin(table: string, first: string, operator: string, second: string): this;
831
- /**
832
- * Add a cross join clause
833
- */
834
- crossJoin(table: string): this;
835
- /**
836
- * Add a group by clause
837
- */
838
- groupBy(...columns: string[]): this;
839
- /**
840
- * Add a having clause
841
- */
842
- having(column: string, operator: Operator, value: unknown): this;
843
- /**
844
- * Add a raw having clause
845
- */
846
- havingRaw(sql: string, bindings?: unknown[]): this;
847
- /**
848
- * Add an order by clause
849
- */
850
- orderBy(column: string, direction?: OrderDirection): this;
851
- /**
852
- * Add a descending order by clause
853
- */
854
- orderByDesc(column: string): this;
855
- /**
856
- * Add a raw order by clause
857
- */
858
- orderByRaw(sql: string, bindings?: unknown[]): this;
859
- /**
860
- * Order by the latest record (created_at by default)
861
- */
862
- latest(column?: string): this;
863
- /**
864
- * Order by the oldest record (created_at by default)
865
- */
866
- oldest(column?: string): this;
867
- /**
868
- * Set the limit for the query
869
- */
870
- limit(value: number): this;
871
- /**
872
- * Set the offset for the query
873
- */
874
- offset(value: number): this;
875
- /**
876
- * Alias for offset
877
- */
878
- skip(value: number): this;
879
- /**
880
- * Alias for limit
881
- */
882
- take(value: number): this;
883
- /**
884
- * Execute the query and get all results
885
- */
886
- get(): Promise<T[]>;
887
- /**
888
- * Stream query results for processing large datasets
889
- * Returns an async iterator that yields records one at a time
890
- *
891
- * @example
892
- * ```typescript
893
- * for await (const user of User.query().where('active', true).stream()) {
894
- * await processUser(user)
895
- * }
896
- * ```
897
- */
898
- stream(): AsyncIterable<T>;
899
- /**
900
- * Get the first result
901
- */
902
- first(): Promise<T | null>;
903
- /**
904
- * Get the first result or throw an error
905
- */
906
- firstOrFail(): Promise<T>;
907
- /**
908
- * Find a record by its primary key
909
- */
910
- find(id: unknown, primaryKey?: string): Promise<T | null>;
911
- /**
912
- * Find a record by its primary key or throw an error
913
- */
914
- findOrFail(id: unknown, primaryKey?: string): Promise<T>;
915
- /**
916
- * Get a single value from the first record
917
- */
918
- value<V = unknown>(column: string): Promise<V | null>;
919
- /**
920
- * Get an array of values from a single column
921
- */
922
- pluck<V = unknown>(column: string): Promise<V[]>;
923
- /**
924
- * Check if any records exist matching the query
925
- */
926
- exists(): Promise<boolean>;
927
- /**
928
- * Check if no records exist matching the query
929
- */
930
- doesntExist(): Promise<boolean>;
931
- /**
932
- * Get the count of records
933
- */
934
- count(column?: string): Promise<number>;
935
- /**
936
- * Get the maximum value of a column
937
- */
938
- max<V = number>(column: string): Promise<V | null>;
939
- /**
940
- * Get the minimum value of a column
941
- */
942
- min<V = number>(column: string): Promise<V | null>;
943
- /**
944
- * Get the average value of a column
945
- */
946
- avg(column: string): Promise<number | null>;
947
- /**
948
- * Get the sum of a column
949
- */
950
- sum(column: string): Promise<number>;
951
- /**
952
- * Insert new records
953
- */
954
- insert(data: Partial<T> | Partial<T>[]): Promise<T[]>;
955
- /**
956
- * Insert a record and get its ID
957
- */
958
- insertGetId(data: Partial<T>, primaryKey?: string): Promise<number | bigint>;
959
- /**
960
- * Update existing records
961
- */
962
- update(data: Partial<T>): Promise<number>;
963
- /**
964
- * Update a JSON field
965
- */
966
- updateJson(column: string, value: unknown): Promise<number>;
967
- /**
968
- * Delete records
969
- */
970
- delete(): Promise<number>;
971
- /**
972
- * Truncate the table
973
- */
974
- truncate(): Promise<void>;
975
- /**
976
- * Increment a column's value
977
- */
978
- increment(column: string, amount?: number, extra?: Partial<T>): Promise<number>;
979
- /**
980
- * Decrement a column's value
981
- */
982
- decrement(column: string, amount?: number, extra?: Partial<T>): Promise<number>;
983
- /**
984
- * Insert or update records
985
- */
986
- upsert(data: Partial<T> | Partial<T>[], uniqueBy: string | string[], update?: string[]): Promise<number>;
987
- /**
988
- * Paginate the query results
989
- */
990
- paginate(perPage?: number, page?: number): Promise<PaginateResult<T>>;
991
- /**
992
- * Simple pagination (no total count)
993
- */
994
- simplePaginate(perPage?: number, page?: number): Promise<PaginateResult<T>>;
995
- /**
996
- * Chunk the query results for processing large datasets
997
- */
998
- chunk(size: number, callback: (results: T[]) => Promise<undefined | boolean>): Promise<void>;
999
- /**
1000
- * Get the compiled SQL string
1001
- */
1002
- toSql(): string;
1003
- /**
1004
- * Get the query bindings
1005
- */
1006
- getBindings(): unknown[];
1007
- /**
1008
- * Dump the query SQL and bindings
1009
- */
1010
- dump(): this;
1011
- /**
1012
- * Dump the query SQL and bindings and terminate execution
1013
- */
1014
- dd(): never;
1015
- /**
1016
- * Clone the query builder instance
1017
- */
1018
- clone(): QueryBuilderContract<T>;
1019
- /**
1020
- * Set the query to read-only mode to skip Model hydration overhead.
1021
- */
1022
- readonly(value?: boolean): this;
1023
- /**
1024
- * Get the compiled query structure
1025
- */
1026
- getCompiledQuery(): CompiledQuery;
1027
- /**
1028
- * Check if the query has a limit or offset
1029
- */
1030
- hasLimitOrOffset(): boolean;
1031
- /**
1032
- * Eager load relationships
1033
- */
1034
- with(relation: string | string[] | Record<string, (query: QueryBuilderContract<unknown>) => void>): this;
1035
- /**
1036
- * Add a WHERE HAS relationship existence clause
1037
- */
1038
- whereHas(relation: string, callback?: (query: QueryBuilderContract<unknown>) => void): this;
1039
- /**
1040
- * Include soft-deleted records in the query
1041
- */
1042
- withTrashed(): this;
1043
- /**
1044
- * Only include soft-deleted records in the query
1045
- */
1046
- onlyTrashed(): this;
1047
- /**
1048
- * Restore soft-deleted records
1049
- */
1050
- restore(): Promise<number>;
1051
- /**
1052
- * Permanently delete records (bypass soft deletes)
1053
- */
1054
- forceDelete(): Promise<number>;
1055
- /**
1056
- * Apply a query scope
1057
- */
1058
- applyScope(name: string, callback: (query: QueryBuilderContract<T>) => void): this;
1059
- /**
1060
- * Remove a global scope
1061
- */
1062
- withoutGlobalScope(name: string): this;
1063
- /**
1064
- * Cache the query results
1065
- */
1066
- cache(ttl: number, key?: string): this;
1067
- }
1068
- /**
1069
- * Grammar Contract
1070
- */
1071
- /**
1072
- * Cache Interface
1073
- */
1074
- export interface CacheInterface {
1075
- get<T = unknown>(key: string): Promise<T | null>;
1076
- set(key: string, value: unknown, ttl?: number): Promise<void>;
1077
- delete(key: string): Promise<void>;
1078
- clear(): Promise<void>;
1079
- }
1080
- /**
1081
- * Grammar Contract
1082
- */
1083
- export interface GrammarContract {
1084
- /**
1085
- * Compile a SELECT statement
1086
- */
1087
- compileSelect(query: CompiledQuery): string;
1088
- /**
1089
- * Compile an INSERT statement
1090
- */
1091
- compileInsert(query: CompiledQuery, values: Record<string, unknown>[]): string;
1092
- /**
1093
- * Compile an INSERT and get ID statement
1094
- */
1095
- compileInsertGetId(query: CompiledQuery, values: Record<string, unknown>, primaryKey: string): string;
1096
- /**
1097
- * Compile an UPDATE statement
1098
- */
1099
- compileUpdate(query: CompiledQuery, values: Record<string, unknown>): string;
1100
- /**
1101
- * Compile a DELETE statement
1102
- */
1103
- compileDelete(query: CompiledQuery): string;
1104
- /**
1105
- * Compile a TRUNCATE statement
1106
- */
1107
- compileTruncate(query: CompiledQuery): string;
1108
- /**
1109
- * Compile an aggregate query
1110
- */
1111
- compileAggregate(query: CompiledQuery, aggregate: {
1112
- function: string;
1113
- column: string;
1114
- }): string;
1115
- /**
1116
- * Compile an EXISTS query
1117
- */
1118
- compileExists(query: CompiledQuery): string;
1119
- /**
1120
- * Get placeholder for binding
1121
- */
1122
- getPlaceholder(index: number): string;
1123
- /**
1124
- * Wrap a column name
1125
- */
1126
- wrapColumn(column: string): string;
1127
- /**
1128
- * Wrap a table name
1129
- */
1130
- wrapTable(table: string): string;
1131
- /**
1132
- * Quote a value
1133
- */
1134
- quoteValue(value: unknown): string;
1135
- /**
1136
- * Compile a lateral eager load query
1137
- */
1138
- compileLateralEagerLoad(table: string, foreignKey: string, parentKeys: unknown[], query: CompiledQuery): {
1139
- sql: string;
1140
- bindings: unknown[];
1141
- };
1142
- getStructuralKey(query: CompiledQuery): string;
1143
- /**
1144
- * Compile a JSON path query
1145
- */
1146
- compileJsonPath(column: string, value: unknown): string;
1147
- /**
1148
- * Compile a JSON contains query
1149
- */
1150
- compileJsonContains(column: string, value: unknown): string;
1151
- /**
1152
- * Compile a JSON update statement
1153
- */
1154
- compileUpdateJson(query: CompiledQuery, column: string, value: unknown): string;
1155
- /**
1156
- * Compile an UPSERT statement
1157
- */
1158
- compileUpsert(query: CompiledQuery, values: Record<string, unknown>[], uniqueBy: string[], update: string[]): string;
1159
- }
1160
- /**
1161
- * Compiled query structure (used by Grammar)
1162
- */
1163
- export interface CompiledQuery {
1164
- table: string;
1165
- columns: string[];
1166
- distinct: boolean;
1167
- wheres: WhereClause[];
1168
- orders: OrderClause[];
1169
- groups: string[];
1170
- havings: HavingClause[];
1171
- joins: JoinClause[];
1172
- limit?: number | undefined;
1173
- offset?: number | undefined;
1174
- bindings: unknown[];
1175
- bindingCounts?: {
1176
- select: number;
1177
- where: number;
1178
- join: number;
1179
- having: number;
1180
- order: number;
1181
- };
1182
- }