@gravito/echo 3.1.1 → 4.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 (295) hide show
  1. package/README.md +24 -9
  2. package/dist/OrbitEcho.d.ts +76 -60
  3. package/dist/errors/EchoError.d.ts +29 -0
  4. package/dist/errors/codes.d.ts +20 -0
  5. package/dist/index.d.ts +34 -16
  6. package/dist/index.js +3 -1596
  7. package/dist/index.js.map +3 -28
  8. package/dist/{echo/src/middleware → middleware}/RequestBufferMiddleware.d.ts +3 -3
  9. package/dist/providers/GenericProvider.d.ts +37 -19
  10. package/dist/providers/GitHubProvider.d.ts +21 -13
  11. package/dist/providers/StripeProvider.d.ts +20 -13
  12. package/dist/providers/index.d.ts +14 -4
  13. package/dist/receive/SignatureValidator.d.ts +33 -1
  14. package/dist/receive/WebhookReceiver.d.ts +139 -22
  15. package/dist/receive/index.d.ts +0 -1
  16. package/dist/resilience/CircuitBreaker.d.ts +6 -0
  17. package/dist/{echo/src/resilience → resilience}/index.d.ts +2 -1
  18. package/dist/send/WebhookDispatcher.d.ts +159 -16
  19. package/dist/send/index.d.ts +0 -1
  20. package/dist/types.d.ts +671 -57
  21. package/package.json +9 -3
  22. package/dist/OrbitEcho.d.ts.map +0 -1
  23. package/dist/atlas/src/DB.d.ts +0 -348
  24. package/dist/atlas/src/OrbitAtlas.d.ts +0 -9
  25. package/dist/atlas/src/config/defineConfig.d.ts +0 -14
  26. package/dist/atlas/src/config/index.d.ts +0 -7
  27. package/dist/atlas/src/config/loadConfig.d.ts +0 -41
  28. package/dist/atlas/src/connection/Connection.d.ts +0 -112
  29. package/dist/atlas/src/connection/ConnectionManager.d.ts +0 -180
  30. package/dist/atlas/src/connection/ReplicaConnectionPool.d.ts +0 -54
  31. package/dist/atlas/src/drivers/BunSQLDriver.d.ts +0 -32
  32. package/dist/atlas/src/drivers/BunSQLPreparedStatement.d.ts +0 -118
  33. package/dist/atlas/src/drivers/MongoDBDriver.d.ts +0 -36
  34. package/dist/atlas/src/drivers/MySQLDriver.d.ts +0 -79
  35. package/dist/atlas/src/drivers/PostgresDriver.d.ts +0 -96
  36. package/dist/atlas/src/drivers/RedisDriver.d.ts +0 -43
  37. package/dist/atlas/src/drivers/SQLiteDriver.d.ts +0 -45
  38. package/dist/atlas/src/drivers/types.d.ts +0 -260
  39. package/dist/atlas/src/errors/index.d.ts +0 -45
  40. package/dist/atlas/src/grammar/Grammar.d.ts +0 -342
  41. package/dist/atlas/src/grammar/MongoGrammar.d.ts +0 -47
  42. package/dist/atlas/src/grammar/MySQLGrammar.d.ts +0 -54
  43. package/dist/atlas/src/grammar/NullGrammar.d.ts +0 -35
  44. package/dist/atlas/src/grammar/PostgresGrammar.d.ts +0 -62
  45. package/dist/atlas/src/grammar/SQLiteGrammar.d.ts +0 -32
  46. package/dist/atlas/src/index.d.ts +0 -79
  47. package/dist/atlas/src/migration/Migration.d.ts +0 -64
  48. package/dist/atlas/src/migration/MigrationRepository.d.ts +0 -65
  49. package/dist/atlas/src/migration/Migrator.d.ts +0 -110
  50. package/dist/atlas/src/migration/index.d.ts +0 -6
  51. package/dist/atlas/src/observability/AtlasMetrics.d.ts +0 -33
  52. package/dist/atlas/src/observability/AtlasObservability.d.ts +0 -15
  53. package/dist/atlas/src/observability/AtlasTracer.d.ts +0 -12
  54. package/dist/atlas/src/observability/index.d.ts +0 -9
  55. package/dist/atlas/src/orm/Repository.d.ts +0 -247
  56. package/dist/atlas/src/orm/index.d.ts +0 -6
  57. package/dist/atlas/src/orm/model/DirtyTracker.d.ts +0 -121
  58. package/dist/atlas/src/orm/model/Model.d.ts +0 -458
  59. package/dist/atlas/src/orm/model/ModelRegistry.d.ts +0 -20
  60. package/dist/atlas/src/orm/model/concerns/HasAttributes.d.ts +0 -150
  61. package/dist/atlas/src/orm/model/concerns/HasEvents.d.ts +0 -36
  62. package/dist/atlas/src/orm/model/concerns/HasPersistence.d.ts +0 -92
  63. package/dist/atlas/src/orm/model/concerns/HasRelationships.d.ts +0 -117
  64. package/dist/atlas/src/orm/model/concerns/HasSerialization.d.ts +0 -64
  65. package/dist/atlas/src/orm/model/concerns/applyMixins.d.ts +0 -15
  66. package/dist/atlas/src/orm/model/concerns/index.d.ts +0 -12
  67. package/dist/atlas/src/orm/model/decorators.d.ts +0 -138
  68. package/dist/atlas/src/orm/model/errors.d.ts +0 -52
  69. package/dist/atlas/src/orm/model/index.d.ts +0 -10
  70. package/dist/atlas/src/orm/model/relationships.d.ts +0 -207
  71. package/dist/atlas/src/orm/model/types.d.ts +0 -12
  72. package/dist/atlas/src/orm/schema/SchemaRegistry.d.ts +0 -124
  73. package/dist/atlas/src/orm/schema/SchemaSniffer.d.ts +0 -54
  74. package/dist/atlas/src/orm/schema/index.d.ts +0 -6
  75. package/dist/atlas/src/orm/schema/types.d.ts +0 -85
  76. package/dist/atlas/src/pool/AdaptivePoolManager.d.ts +0 -98
  77. package/dist/atlas/src/pool/PoolHealthChecker.d.ts +0 -91
  78. package/dist/atlas/src/pool/PoolStrategy.d.ts +0 -129
  79. package/dist/atlas/src/pool/PoolWarmer.d.ts +0 -92
  80. package/dist/atlas/src/query/Expression.d.ts +0 -60
  81. package/dist/atlas/src/query/NPlusOneDetector.d.ts +0 -10
  82. package/dist/atlas/src/query/QueryBuilder.d.ts +0 -643
  83. package/dist/atlas/src/query/RelationshipResolver.d.ts +0 -23
  84. package/dist/atlas/src/query/clauses/GroupByClause.d.ts +0 -51
  85. package/dist/atlas/src/query/clauses/HavingClause.d.ts +0 -70
  86. package/dist/atlas/src/query/clauses/JoinClause.d.ts +0 -87
  87. package/dist/atlas/src/query/clauses/LimitClause.d.ts +0 -82
  88. package/dist/atlas/src/query/clauses/OrderByClause.d.ts +0 -69
  89. package/dist/atlas/src/query/clauses/SelectClause.d.ts +0 -71
  90. package/dist/atlas/src/query/clauses/WhereClause.d.ts +0 -167
  91. package/dist/atlas/src/query/clauses/index.d.ts +0 -11
  92. package/dist/atlas/src/schema/Blueprint.d.ts +0 -276
  93. package/dist/atlas/src/schema/ColumnDefinition.d.ts +0 -154
  94. package/dist/atlas/src/schema/ForeignKeyDefinition.d.ts +0 -37
  95. package/dist/atlas/src/schema/MigrationGenerator.d.ts +0 -45
  96. package/dist/atlas/src/schema/Schema.d.ts +0 -131
  97. package/dist/atlas/src/schema/SchemaDiff.d.ts +0 -73
  98. package/dist/atlas/src/schema/TypeGenerator.d.ts +0 -57
  99. package/dist/atlas/src/schema/TypeWriter.d.ts +0 -42
  100. package/dist/atlas/src/schema/grammars/MySQLSchemaGrammar.d.ts +0 -23
  101. package/dist/atlas/src/schema/grammars/PostgresSchemaGrammar.d.ts +0 -26
  102. package/dist/atlas/src/schema/grammars/SQLiteSchemaGrammar.d.ts +0 -28
  103. package/dist/atlas/src/schema/grammars/SchemaGrammar.d.ts +0 -97
  104. package/dist/atlas/src/schema/grammars/index.d.ts +0 -7
  105. package/dist/atlas/src/schema/index.d.ts +0 -8
  106. package/dist/atlas/src/seed/Factory.d.ts +0 -90
  107. package/dist/atlas/src/seed/Seeder.d.ts +0 -28
  108. package/dist/atlas/src/seed/SeederRunner.d.ts +0 -74
  109. package/dist/atlas/src/seed/index.d.ts +0 -6
  110. package/dist/atlas/src/sharding/ShardingManager.d.ts +0 -59
  111. package/dist/atlas/src/types/index.d.ts +0 -1182
  112. package/dist/atlas/src/utils/CursorEncoding.d.ts +0 -63
  113. package/dist/atlas/src/utils/levenshtein.d.ts +0 -9
  114. package/dist/core/src/Application.d.ts +0 -215
  115. package/dist/core/src/CommandKernel.d.ts +0 -33
  116. package/dist/core/src/ConfigManager.d.ts +0 -65
  117. package/dist/core/src/Container/RequestScopeManager.d.ts +0 -62
  118. package/dist/core/src/Container/RequestScopeMetrics.d.ts +0 -144
  119. package/dist/core/src/Container.d.ts +0 -153
  120. package/dist/core/src/ErrorHandler.d.ts +0 -66
  121. package/dist/core/src/Event.d.ts +0 -5
  122. package/dist/core/src/EventManager.d.ts +0 -123
  123. package/dist/core/src/GlobalErrorHandlers.d.ts +0 -47
  124. package/dist/core/src/GravitoServer.d.ts +0 -28
  125. package/dist/core/src/HookManager.d.ts +0 -591
  126. package/dist/core/src/Listener.d.ts +0 -4
  127. package/dist/core/src/Logger.d.ts +0 -20
  128. package/dist/core/src/PlanetCore.d.ts +0 -378
  129. package/dist/core/src/RequestContext.d.ts +0 -97
  130. package/dist/core/src/Route.d.ts +0 -36
  131. package/dist/core/src/Router.d.ts +0 -284
  132. package/dist/core/src/ServiceProvider.d.ts +0 -178
  133. package/dist/core/src/adapters/GravitoEngineAdapter.d.ts +0 -27
  134. package/dist/core/src/adapters/PhotonAdapter.d.ts +0 -175
  135. package/dist/core/src/adapters/bun/BunContext.d.ts +0 -49
  136. package/dist/core/src/adapters/bun/BunNativeAdapter.d.ts +0 -31
  137. package/dist/core/src/adapters/bun/BunRequest.d.ts +0 -31
  138. package/dist/core/src/adapters/bun/RadixNode.d.ts +0 -19
  139. package/dist/core/src/adapters/bun/RadixRouter.d.ts +0 -31
  140. package/dist/core/src/adapters/bun/types.d.ts +0 -20
  141. package/dist/core/src/adapters/photon-types.d.ts +0 -73
  142. package/dist/core/src/adapters/types.d.ts +0 -235
  143. package/dist/core/src/cli/queue-commands.d.ts +0 -6
  144. package/dist/core/src/engine/AOTRouter.d.ts +0 -129
  145. package/dist/core/src/engine/FastContext.d.ts +0 -123
  146. package/dist/core/src/engine/Gravito.d.ts +0 -136
  147. package/dist/core/src/engine/MinimalContext.d.ts +0 -100
  148. package/dist/core/src/engine/analyzer.d.ts +0 -27
  149. package/dist/core/src/engine/constants.d.ts +0 -23
  150. package/dist/core/src/engine/index.d.ts +0 -26
  151. package/dist/core/src/engine/path.d.ts +0 -26
  152. package/dist/core/src/engine/pool.d.ts +0 -83
  153. package/dist/core/src/engine/types.d.ts +0 -146
  154. package/dist/core/src/error-handling/RequestScopeErrorContext.d.ts +0 -126
  155. package/dist/core/src/events/BackpressureManager.d.ts +0 -215
  156. package/dist/core/src/events/CircuitBreaker.d.ts +0 -229
  157. package/dist/core/src/events/DeadLetterQueue.d.ts +0 -219
  158. package/dist/core/src/events/EventBackend.d.ts +0 -12
  159. package/dist/core/src/events/EventOptions.d.ts +0 -204
  160. package/dist/core/src/events/EventPriorityQueue.d.ts +0 -301
  161. package/dist/core/src/events/FlowControlStrategy.d.ts +0 -109
  162. package/dist/core/src/events/IdempotencyCache.d.ts +0 -60
  163. package/dist/core/src/events/MessageQueueBridge.d.ts +0 -184
  164. package/dist/core/src/events/PriorityEscalationManager.d.ts +0 -82
  165. package/dist/core/src/events/RetryScheduler.d.ts +0 -104
  166. package/dist/core/src/events/WorkerPool.d.ts +0 -98
  167. package/dist/core/src/events/WorkerPoolConfig.d.ts +0 -153
  168. package/dist/core/src/events/WorkerPoolMetrics.d.ts +0 -65
  169. package/dist/core/src/events/aggregation/AggregationWindow.d.ts +0 -77
  170. package/dist/core/src/events/aggregation/DeduplicationManager.d.ts +0 -135
  171. package/dist/core/src/events/aggregation/EventAggregationManager.d.ts +0 -108
  172. package/dist/core/src/events/aggregation/EventBatcher.d.ts +0 -99
  173. package/dist/core/src/events/aggregation/types.d.ts +0 -117
  174. package/dist/core/src/events/index.d.ts +0 -25
  175. package/dist/core/src/events/observability/EventMetrics.d.ts +0 -132
  176. package/dist/core/src/events/observability/EventTracer.d.ts +0 -68
  177. package/dist/core/src/events/observability/EventTracing.d.ts +0 -161
  178. package/dist/core/src/events/observability/OTelEventMetrics.d.ts +0 -332
  179. package/dist/core/src/events/observability/ObservableHookManager.d.ts +0 -108
  180. package/dist/core/src/events/observability/StreamWorkerMetrics.d.ts +0 -76
  181. package/dist/core/src/events/observability/index.d.ts +0 -24
  182. package/dist/core/src/events/observability/metrics-types.d.ts +0 -16
  183. package/dist/core/src/events/types.d.ts +0 -134
  184. package/dist/core/src/exceptions/AuthenticationException.d.ts +0 -8
  185. package/dist/core/src/exceptions/AuthorizationException.d.ts +0 -8
  186. package/dist/core/src/exceptions/CircularDependencyException.d.ts +0 -9
  187. package/dist/core/src/exceptions/GravitoException.d.ts +0 -23
  188. package/dist/core/src/exceptions/HttpException.d.ts +0 -9
  189. package/dist/core/src/exceptions/ModelNotFoundException.d.ts +0 -10
  190. package/dist/core/src/exceptions/ValidationException.d.ts +0 -22
  191. package/dist/core/src/exceptions/index.d.ts +0 -7
  192. package/dist/core/src/health/HealthProvider.d.ts +0 -67
  193. package/dist/core/src/helpers/Arr.d.ts +0 -19
  194. package/dist/core/src/helpers/Str.d.ts +0 -23
  195. package/dist/core/src/helpers/data.d.ts +0 -25
  196. package/dist/core/src/helpers/errors.d.ts +0 -34
  197. package/dist/core/src/helpers/response.d.ts +0 -41
  198. package/dist/core/src/helpers.d.ts +0 -338
  199. package/dist/core/src/http/CookieJar.d.ts +0 -51
  200. package/dist/core/src/http/cookie.d.ts +0 -29
  201. package/dist/core/src/http/middleware/BodySizeLimit.d.ts +0 -16
  202. package/dist/core/src/http/middleware/Cors.d.ts +0 -24
  203. package/dist/core/src/http/middleware/Csrf.d.ts +0 -23
  204. package/dist/core/src/http/middleware/HeaderTokenGate.d.ts +0 -28
  205. package/dist/core/src/http/middleware/SecurityHeaders.d.ts +0 -29
  206. package/dist/core/src/http/middleware/ThrottleRequests.d.ts +0 -18
  207. package/dist/core/src/http/types.d.ts +0 -374
  208. package/dist/core/src/index.d.ts +0 -88
  209. package/dist/core/src/instrumentation/index.d.ts +0 -35
  210. package/dist/core/src/instrumentation/opentelemetry.d.ts +0 -178
  211. package/dist/core/src/instrumentation/types.d.ts +0 -182
  212. package/dist/core/src/observability/Metrics.d.ts +0 -244
  213. package/dist/core/src/observability/QueueDashboard.d.ts +0 -136
  214. package/dist/core/src/reliability/DeadLetterQueueManager.d.ts +0 -350
  215. package/dist/core/src/reliability/RetryPolicy.d.ts +0 -217
  216. package/dist/core/src/reliability/index.d.ts +0 -6
  217. package/dist/core/src/router/ControllerDispatcher.d.ts +0 -12
  218. package/dist/core/src/router/RequestValidator.d.ts +0 -20
  219. package/dist/core/src/runtime.d.ts +0 -119
  220. package/dist/core/src/security/Encrypter.d.ts +0 -33
  221. package/dist/core/src/security/Hasher.d.ts +0 -29
  222. package/dist/core/src/testing/HttpTester.d.ts +0 -39
  223. package/dist/core/src/testing/TestResponse.d.ts +0 -78
  224. package/dist/core/src/testing/index.d.ts +0 -2
  225. package/dist/core/src/types/events.d.ts +0 -94
  226. package/dist/echo/src/OrbitEcho.d.ts +0 -115
  227. package/dist/echo/src/index.d.ts +0 -64
  228. package/dist/echo/src/providers/GenericProvider.d.ts +0 -53
  229. package/dist/echo/src/providers/GitHubProvider.d.ts +0 -35
  230. package/dist/echo/src/providers/StripeProvider.d.ts +0 -38
  231. package/dist/echo/src/providers/index.d.ts +0 -14
  232. package/dist/echo/src/receive/SignatureValidator.d.ts +0 -67
  233. package/dist/echo/src/receive/WebhookReceiver.d.ts +0 -185
  234. package/dist/echo/src/receive/index.d.ts +0 -2
  235. package/dist/echo/src/resilience/CircuitBreaker.d.ts +0 -117
  236. package/dist/echo/src/send/WebhookDispatcher.d.ts +0 -198
  237. package/dist/echo/src/send/index.d.ts +0 -1
  238. package/dist/echo/src/types.d.ts +0 -756
  239. package/dist/index.d.ts.map +0 -1
  240. package/dist/monitor/src/MonitorOrbit.d.ts +0 -43
  241. package/dist/monitor/src/config.d.ts +0 -106
  242. package/dist/monitor/src/health/HealthController.d.ts +0 -28
  243. package/dist/monitor/src/health/HealthRegistry.d.ts +0 -80
  244. package/dist/monitor/src/health/index.d.ts +0 -36
  245. package/dist/monitor/src/index.d.ts +0 -13
  246. package/dist/monitor/src/metrics/MetricsController.d.ts +0 -22
  247. package/dist/monitor/src/metrics/MetricsRegistry.d.ts +0 -136
  248. package/dist/monitor/src/metrics/index.d.ts +0 -11
  249. package/dist/monitor/src/tracing/TracingManager.d.ts +0 -97
  250. package/dist/monitor/src/tracing/index.d.ts +0 -10
  251. package/dist/photon/src/index.d.ts +0 -89
  252. package/dist/photon/src/middleware/binary.d.ts +0 -31
  253. package/dist/photon/src/middleware/htmx.d.ts +0 -39
  254. package/dist/photon/src/middleware/ratelimit-redis.d.ts +0 -50
  255. package/dist/photon/src/middleware/ratelimit.d.ts +0 -161
  256. package/dist/photon/src/openapi.d.ts +0 -19
  257. package/dist/providers/GenericProvider.d.ts.map +0 -1
  258. package/dist/providers/GitHubProvider.d.ts.map +0 -1
  259. package/dist/providers/StripeProvider.d.ts.map +0 -1
  260. package/dist/providers/index.d.ts.map +0 -1
  261. package/dist/receive/SignatureValidator.d.ts.map +0 -1
  262. package/dist/receive/WebhookReceiver.d.ts.map +0 -1
  263. package/dist/receive/index.d.ts.map +0 -1
  264. package/dist/send/WebhookDispatcher.d.ts.map +0 -1
  265. package/dist/send/index.d.ts.map +0 -1
  266. package/dist/types.d.ts.map +0 -1
  267. /package/dist/{echo/src/dlq → dlq}/DeadLetterQueue.d.ts +0 -0
  268. /package/dist/{echo/src/dlq → dlq}/MemoryDeadLetterQueue.d.ts +0 -0
  269. /package/dist/{echo/src/dlq → dlq}/index.d.ts +0 -0
  270. /package/dist/{echo/src/middleware → middleware}/index.d.ts +0 -0
  271. /package/dist/{echo/src/observability → observability}/index.d.ts +0 -0
  272. /package/dist/{echo/src/observability → observability}/logging/ConsoleEchoLogger.d.ts +0 -0
  273. /package/dist/{echo/src/observability → observability}/logging/EchoLogger.d.ts +0 -0
  274. /package/dist/{echo/src/observability → observability}/logging/index.d.ts +0 -0
  275. /package/dist/{echo/src/observability → observability}/metrics/MetricsProvider.d.ts +0 -0
  276. /package/dist/{echo/src/observability → observability}/metrics/NoopMetricsProvider.d.ts +0 -0
  277. /package/dist/{echo/src/observability → observability}/metrics/PrometheusMetricsProvider.d.ts +0 -0
  278. /package/dist/{echo/src/observability → observability}/metrics/index.d.ts +0 -0
  279. /package/dist/{echo/src/observability → observability}/tracing/NoopTracer.d.ts +0 -0
  280. /package/dist/{echo/src/observability → observability}/tracing/Tracer.d.ts +0 -0
  281. /package/dist/{echo/src/observability → observability}/tracing/index.d.ts +0 -0
  282. /package/dist/{echo/src/providers → providers}/LinearProvider.d.ts +0 -0
  283. /package/dist/{echo/src/providers → providers}/PaddleProvider.d.ts +0 -0
  284. /package/dist/{echo/src/providers → providers}/ShopifyProvider.d.ts +0 -0
  285. /package/dist/{echo/src/providers → providers}/SlackProvider.d.ts +0 -0
  286. /package/dist/{echo/src/providers → providers}/TwilioProvider.d.ts +0 -0
  287. /package/dist/{echo/src/providers → providers}/base/BaseProvider.d.ts +0 -0
  288. /package/dist/{echo/src/providers → providers}/base/HeaderUtils.d.ts +0 -0
  289. /package/dist/{echo/src/replay → replay}/WebhookReplayService.d.ts +0 -0
  290. /package/dist/{echo/src/replay → replay}/index.d.ts +0 -0
  291. /package/dist/{echo/src/rotation → rotation}/KeyRotationManager.d.ts +0 -0
  292. /package/dist/{echo/src/rotation → rotation}/index.d.ts +0 -0
  293. /package/dist/{echo/src/storage → storage}/MemoryWebhookStore.d.ts +0 -0
  294. /package/dist/{echo/src/storage → storage}/WebhookStore.d.ts +0 -0
  295. /package/dist/{echo/src/storage → storage}/index.d.ts +0 -0
@@ -1,247 +0,0 @@
1
- import type { QueryBuilderContract } from '../types';
2
- import type { Model, ModelStatic } from './model/Model';
3
- /**
4
- * ModelRepository - Base Repository for Active Record Models
5
- *
6
- * Provides a collection-like interface for accessing and persisting domain models.
7
- * Extends the Active Record pattern with common repository operations.
8
- *
9
- * @template T - The type of Model managed by this repository
10
- *
11
- * @example
12
- * ```typescript
13
- * class UserRepository extends ModelRepository<User> {
14
- * protected modelClass = User
15
- *
16
- * async findByEmail(email: string): Promise<User | null> {
17
- * return this.findWhere('email', email)
18
- * }
19
- *
20
- * async findActive(): Promise<User[]> {
21
- * return this.query().where('is_active', true).get()
22
- * }
23
- * }
24
- *
25
- * // Usage
26
- * const userRepo = new UserRepository()
27
- * const user = await userRepo.find(1)
28
- * const active = await userRepo.findActive()
29
- * ```
30
- *
31
- * @public
32
- * @since 3.0.0
33
- */
34
- export declare abstract class ModelRepository<T extends Model> {
35
- /**
36
- * The model class this repository manages.
37
- * Must be set by subclasses.
38
- *
39
- * @example
40
- * ```typescript
41
- * class UserRepository extends ModelRepository<User> {
42
- * protected modelClass = User
43
- * }
44
- * ```
45
- */
46
- protected abstract modelClass: ModelStatic<T>;
47
- /**
48
- * Get a query builder for this model.
49
- *
50
- * @returns A new query builder instance
51
- */
52
- protected query(): QueryBuilderContract<T>;
53
- /**
54
- * Retrieve all records from the database.
55
- *
56
- * @returns Promise resolving to array of all model instances
57
- *
58
- * @example
59
- * ```typescript
60
- * const users = await userRepository.all()
61
- * ```
62
- */
63
- all(): Promise<T[]>;
64
- /**
65
- * Find a single record by its primary key.
66
- *
67
- * @param id - The primary key value
68
- * @returns Promise resolving to the model instance or null if not found
69
- *
70
- * @example
71
- * ```typescript
72
- * const user = await userRepository.find(1)
73
- * ```
74
- */
75
- find(id: unknown): Promise<T | null>;
76
- /**
77
- * Find a single record by its primary key or throw an error.
78
- *
79
- * @param id - The primary key value
80
- * @returns Promise resolving to the model instance
81
- * @throws ModelNotFoundError if not found
82
- *
83
- * @example
84
- * ```typescript
85
- * const user = await userRepository.findOrFail(1)
86
- * ```
87
- */
88
- findOrFail(id: unknown): Promise<T>;
89
- /**
90
- * Find a single record matching a where clause.
91
- *
92
- * @param column - The column name
93
- * @param value - The value to match
94
- * @returns Promise resolving to the model instance or null if not found
95
- *
96
- * @example
97
- * ```typescript
98
- * const user = await userRepository.findWhere('email', 'john@example.com')
99
- * ```
100
- */
101
- findWhere(column: string, value: unknown): Promise<T | null>;
102
- /**
103
- * Find multiple records matching a where clause.
104
- *
105
- * @param column - The column name
106
- * @param value - The value to match
107
- * @returns Promise resolving to array of model instances
108
- *
109
- * @example
110
- * ```typescript
111
- * const admins = await userRepository.findManyWhere('role', 'admin')
112
- * ```
113
- */
114
- findManyWhere(column: string, value: unknown): Promise<T[]>;
115
- /**
116
- * Find records using a callback for complex queries.
117
- *
118
- * @param callback - Function that receives the query builder
119
- * @returns Promise resolving to array of model instances
120
- *
121
- * @example
122
- * ```typescript
123
- * const result = await userRepository.findWhere(q =>
124
- * q.where('role', 'admin').where('is_active', true)
125
- * )
126
- * ```
127
- */
128
- findByQuery(callback: (query: QueryBuilderContract<T>) => QueryBuilderContract<T>): Promise<T[]>;
129
- /**
130
- * Find a single record using a callback for complex queries.
131
- *
132
- * @param callback - Function that receives the query builder
133
- * @returns Promise resolving to the model instance or null if not found
134
- *
135
- * @example
136
- * ```typescript
137
- * const user = await userRepository.findOneByQuery(q =>
138
- * q.where('email', email).where('is_active', true)
139
- * )
140
- * ```
141
- */
142
- findOneByQuery(callback: (query: QueryBuilderContract<T>) => QueryBuilderContract<T>): Promise<T | null>;
143
- /**
144
- * Create a new record in the database.
145
- *
146
- * @param attributes - Object containing model attributes
147
- * @returns Promise resolving to the created model instance
148
- *
149
- * @example
150
- * ```typescript
151
- * const user = await userRepository.create({
152
- * name: 'John Doe',
153
- * email: 'john@example.com'
154
- * })
155
- * ```
156
- */
157
- create(attributes: Partial<T>): Promise<T>;
158
- /**
159
- * Update an existing record by its primary key.
160
- *
161
- * @param id - The primary key value
162
- * @param attributes - Object containing attributes to update
163
- * @returns Promise resolving to the updated model instance
164
- * @throws ModelNotFoundError if record not found
165
- *
166
- * @example
167
- * ```typescript
168
- * const user = await userRepository.update(1, { name: 'Jane Doe' })
169
- * ```
170
- */
171
- update(id: unknown, attributes: Partial<T>): Promise<T>;
172
- /**
173
- * Delete a record by its primary key.
174
- *
175
- * @param id - The primary key value
176
- * @returns Promise that resolves when deletion is complete
177
- *
178
- * @example
179
- * ```typescript
180
- * await userRepository.delete(1)
181
- * ```
182
- */
183
- delete(id: unknown): Promise<void>;
184
- /**
185
- * Check if a record exists by its primary key.
186
- *
187
- * @param id - The primary key value
188
- * @returns Promise resolving to true if exists, false otherwise
189
- *
190
- * @example
191
- * ```typescript
192
- * const exists = await userRepository.exists(1)
193
- * ```
194
- */
195
- exists(id: unknown): Promise<boolean>;
196
- /**
197
- * Count the total number of records.
198
- *
199
- * @returns Promise resolving to the count
200
- *
201
- * @example
202
- * ```typescript
203
- * const total = await userRepository.count()
204
- * ```
205
- */
206
- count(): Promise<number>;
207
- /**
208
- * Paginate records.
209
- *
210
- * @param page - The page number (1-indexed)
211
- * @param perPage - The number of records per page
212
- * @returns Promise resolving to pagination result
213
- *
214
- * @example
215
- * ```typescript
216
- * const result = await userRepository.paginate(1, 20)
217
- * // result.data: T[]
218
- * // result.total: number
219
- * // result.per_page: number
220
- * ```
221
- */
222
- paginate(page?: number, perPage?: number): Promise<import("..").PaginateResult<T>>;
223
- /**
224
- * Restore soft-deleted records (requires SoftDeletes mixin on model).
225
- *
226
- * @param id - The primary key value
227
- * @returns Promise that resolves when restoration is complete
228
- *
229
- * @example
230
- * ```typescript
231
- * await userRepository.restore(1)
232
- * ```
233
- */
234
- restore(id: unknown): Promise<void>;
235
- /**
236
- * Permanently delete a soft-deleted record (requires SoftDeletes mixin on model).
237
- *
238
- * @param id - The primary key value
239
- * @returns Promise that resolves when permanent deletion is complete
240
- *
241
- * @example
242
- * ```typescript
243
- * await userRepository.forceDelete(1)
244
- * ```
245
- */
246
- forceDelete(id: unknown): Promise<void>;
247
- }
@@ -1,6 +0,0 @@
1
- /**
2
- * ORM Module Index
3
- */
4
- export * from './model';
5
- export { ModelRepository } from './Repository';
6
- export * from './schema';
@@ -1,121 +0,0 @@
1
- /**
2
- * Dirty Tracker for monitoring attribute modifications on model instances.
3
- *
4
- * Maintains a snapshot of original values and tracks which keys have been
5
- * changed. Supports optimized structural comparison and deep change detection
6
- * for complex objects.
7
- *
8
- * @template T - The shape of the model attributes.
9
- */
10
- export declare class DirtyTracker<T extends Record<string, unknown>> {
11
- /**
12
- * Stores the initial values as retrieved from the database.
13
- */
14
- private original;
15
- /**
16
- * Tracks keys that differ from their original state.
17
- */
18
- private dirty;
19
- /**
20
- * When enabled, nested objects are compared recursively.
21
- */
22
- private useDeepComparison;
23
- /**
24
- * Configures the comparison strategy for nested structures.
25
- *
26
- * @param enabled - True to enable recursive comparison.
27
- */
28
- setDeepComparison(enabled: boolean): void;
29
- /**
30
- * Records initial state and clears the dirty set.
31
- *
32
- * Called typically during hydration or after a successful save.
33
- *
34
- * @param data - The baseline values.
35
- */
36
- setOriginal(data: Partial<T>): void;
37
- /**
38
- * Checks for changes and updates the dirty set accordingly.
39
- *
40
- * Compares the new value against the original. If they match, the key
41
- * is removed from the dirty set (reversion).
42
- *
43
- * @param key - The attribute name.
44
- * @param newValue - The proposed new value.
45
- */
46
- mark(key: keyof T, newValue: unknown): void;
47
- /**
48
- * Indicates if any attributes or a specific attribute has been modified.
49
- *
50
- * @param key - Optional specific attribute to check.
51
- * @returns True if changes are detected.
52
- */
53
- isDirty(key?: keyof T): boolean;
54
- /**
55
- * Returns a list of all modified attribute names.
56
- */
57
- getDirty(): Array<keyof T>;
58
- /**
59
- * Extracts current values for all dirty attributes.
60
- *
61
- * @param current - The source object containing all current values.
62
- * @returns An object with only the modified entries.
63
- */
64
- getDirtyValues(current: Partial<T>): Partial<T>;
65
- /**
66
- * Retrieves the original value of an attribute from the snapshot.
67
- */
68
- getOriginal(key: keyof T): unknown;
69
- /**
70
- * Retrieves the complete original snapshot.
71
- */
72
- getOriginals(): Partial<T>;
73
- /**
74
- * Synchronizes the snapshot with the current state.
75
- *
76
- * @param data - The new baseline data.
77
- */
78
- sync(data: Partial<T>): void;
79
- /**
80
- * Reverts the dirty flag for a specific attribute.
81
- */
82
- reset(key: keyof T): void;
83
- /**
84
- * Clears all tracking information.
85
- */
86
- resetAll(): void;
87
- /**
88
- * Compares two values for equality using optimized structural comparison.
89
- *
90
- * Performs shallow comparison by default. Avoids JSON.stringify overhead
91
- * by using recursive structural comparison for arrays, maps, and sets.
92
- *
93
- * @param a - First value.
94
- * @param b - Second value.
95
- * @returns True if equal.
96
- * @internal
97
- */
98
- private isEqual;
99
- /**
100
- * Performs deep equality comparison with cycle detection.
101
- *
102
- * @param a - First value.
103
- * @param b - Second value.
104
- * @param visited - Set tracking visited objects.
105
- * @returns True if deeply equal.
106
- * @internal
107
- */
108
- private deepEqual;
109
- /**
110
- * Clones a value to ensure the original snapshot remains immutable.
111
- *
112
- * @param value - Value to clone.
113
- * @internal
114
- */
115
- private cloneValue;
116
- /**
117
- * Performs recursive deep cloning.
118
- * @internal
119
- */
120
- private deepClone;
121
- }