@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.
- package/README.md +26 -10
- package/dist/{ripple/src/OrbitRipple.d.ts → OrbitRipple.d.ts} +1 -0
- package/dist/{ripple/src/RippleServer.d.ts → RippleServer.d.ts} +32 -1
- package/dist/core/src/Application.d.ts +41 -0
- package/dist/core/src/HookManager.d.ts +33 -189
- package/dist/core/src/PlanetCore.d.ts +31 -1
- package/dist/core/src/Router.d.ts +32 -46
- package/dist/core/src/adapters/bun/BunContext.d.ts +6 -1
- package/dist/core/src/adapters/bun/BunNativeAdapter.d.ts +35 -0
- package/dist/core/src/adapters/bun/BunWebSocketHandler.d.ts +48 -0
- package/dist/core/src/adapters/bun/RadixRouter.d.ts +1 -0
- package/dist/core/src/adapters/bun/index.d.ts +7 -0
- package/dist/core/src/binary/BinaryUtils.d.ts +105 -0
- package/dist/core/src/binary/index.d.ts +5 -0
- package/dist/core/src/compat/async-local-storage.d.ts +7 -0
- package/dist/core/src/compat/crypto.d.ts +6 -0
- package/dist/core/src/engine/AOTRouter.d.ts +10 -0
- package/dist/core/src/engine/FastContext.d.ts +19 -1
- package/dist/core/src/engine/Gravito.d.ts +13 -18
- package/dist/core/src/engine/MinimalContext.d.ts +2 -0
- package/dist/core/src/engine/analyzer.d.ts +92 -6
- package/dist/core/src/engine/types.d.ts +3 -0
- package/dist/core/src/events/CircuitBreaker.d.ts +12 -0
- package/dist/core/src/events/EventPriorityQueue.d.ts +18 -256
- package/dist/core/src/events/index.d.ts +12 -11
- package/dist/core/src/events/queue-core.d.ts +77 -0
- package/dist/core/src/events/task-executor.d.ts +51 -0
- package/dist/core/src/exceptions/AuthException.d.ts +10 -0
- package/dist/core/src/exceptions/AuthenticationException.d.ts +2 -2
- package/dist/core/src/exceptions/AuthorizationException.d.ts +2 -2
- package/dist/core/src/exceptions/CacheException.d.ts +9 -0
- package/dist/core/src/exceptions/CircularDependencyException.d.ts +2 -1
- package/dist/core/src/exceptions/ConfigurationException.d.ts +9 -0
- package/dist/core/src/exceptions/DatabaseException.d.ts +9 -0
- package/dist/core/src/exceptions/DomainException.d.ts +9 -0
- package/dist/core/src/exceptions/InfrastructureException.d.ts +17 -0
- package/dist/core/src/exceptions/QueueException.d.ts +9 -0
- package/dist/core/src/exceptions/StorageException.d.ts +9 -0
- package/dist/core/src/exceptions/StreamException.d.ts +9 -0
- package/dist/core/src/exceptions/SystemException.d.ts +9 -0
- package/dist/core/src/exceptions/ValidationException.d.ts +2 -2
- package/dist/core/src/exceptions/index.d.ts +10 -0
- package/dist/core/src/ffi/NativeAccelerator.d.ts +62 -0
- package/dist/core/src/ffi/NativeHasher.d.ts +139 -0
- package/dist/core/src/ffi/cbor-fallback.d.ts +96 -0
- package/dist/core/src/ffi/hash-fallback.d.ts +33 -0
- package/dist/core/src/ffi/index.d.ts +10 -0
- package/dist/core/src/ffi/types.d.ts +135 -0
- package/dist/core/src/helpers/Str.d.ts +15 -0
- package/dist/core/src/hooks/ActionManager.d.ts +132 -0
- package/dist/core/src/hooks/AsyncDetector.d.ts +84 -0
- package/dist/core/src/hooks/FilterManager.d.ts +71 -0
- package/dist/core/src/hooks/MigrationWarner.d.ts +24 -0
- package/dist/core/src/hooks/dlq-operations.d.ts +60 -0
- package/dist/core/src/hooks/types.d.ts +107 -0
- package/dist/core/src/http/CookieJar.d.ts +2 -2
- package/dist/core/src/http/types.d.ts +24 -3
- package/dist/core/src/index.d.ts +491 -14
- package/dist/core/src/observability/contracts.d.ts +137 -0
- package/dist/core/src/reliability/DeadLetterQueueManager.d.ts +2 -3
- package/dist/core/src/runtime/adapter-bun.d.ts +12 -0
- package/dist/core/src/runtime/adapter-deno.d.ts +12 -0
- package/dist/core/src/runtime/adapter-node.d.ts +12 -0
- package/dist/core/src/runtime/adapter-unknown.d.ts +13 -0
- package/dist/core/src/runtime/archive.d.ts +17 -0
- package/dist/core/src/runtime/compression.d.ts +21 -0
- package/dist/core/src/runtime/deep-equals.d.ts +56 -0
- package/dist/core/src/runtime/detection.d.ts +22 -0
- package/dist/core/src/runtime/escape.d.ts +34 -0
- package/dist/core/src/runtime/index.d.ts +44 -0
- package/dist/core/src/runtime/markdown.d.ts +44 -0
- package/dist/core/src/runtime/types.d.ts +436 -0
- package/dist/core/src/runtime-helpers.d.ts +67 -0
- package/dist/core/src/runtime.d.ts +10 -118
- package/dist/core/src/testing/HttpTester.d.ts +1 -0
- package/dist/core/src/transpiler-utils.d.ts +170 -0
- package/dist/{ripple/src/engines → engines}/BunEngine.d.ts +11 -0
- package/dist/errors/RippleError.d.ts +66 -0
- package/dist/index.js +1 -7502
- package/dist/index.js.map +3 -71
- package/package.json +6 -2
- package/dist/atlas/src/DB.d.ts +0 -348
- package/dist/atlas/src/OrbitAtlas.d.ts +0 -9
- package/dist/atlas/src/config/defineConfig.d.ts +0 -14
- package/dist/atlas/src/config/index.d.ts +0 -7
- package/dist/atlas/src/config/loadConfig.d.ts +0 -41
- package/dist/atlas/src/connection/Connection.d.ts +0 -112
- package/dist/atlas/src/connection/ConnectionManager.d.ts +0 -180
- package/dist/atlas/src/connection/ReplicaConnectionPool.d.ts +0 -54
- package/dist/atlas/src/drivers/BunSQLDriver.d.ts +0 -32
- package/dist/atlas/src/drivers/BunSQLPreparedStatement.d.ts +0 -118
- package/dist/atlas/src/drivers/MongoDBDriver.d.ts +0 -36
- package/dist/atlas/src/drivers/MySQLDriver.d.ts +0 -79
- package/dist/atlas/src/drivers/PostgresDriver.d.ts +0 -96
- package/dist/atlas/src/drivers/RedisDriver.d.ts +0 -43
- package/dist/atlas/src/drivers/SQLiteDriver.d.ts +0 -45
- package/dist/atlas/src/drivers/types.d.ts +0 -260
- package/dist/atlas/src/errors/index.d.ts +0 -45
- package/dist/atlas/src/grammar/Grammar.d.ts +0 -342
- package/dist/atlas/src/grammar/MongoGrammar.d.ts +0 -47
- package/dist/atlas/src/grammar/MySQLGrammar.d.ts +0 -54
- package/dist/atlas/src/grammar/NullGrammar.d.ts +0 -35
- package/dist/atlas/src/grammar/PostgresGrammar.d.ts +0 -62
- package/dist/atlas/src/grammar/SQLiteGrammar.d.ts +0 -32
- package/dist/atlas/src/index.d.ts +0 -79
- package/dist/atlas/src/migration/Migration.d.ts +0 -64
- package/dist/atlas/src/migration/MigrationRepository.d.ts +0 -65
- package/dist/atlas/src/migration/Migrator.d.ts +0 -110
- package/dist/atlas/src/migration/index.d.ts +0 -6
- package/dist/atlas/src/observability/AtlasMetrics.d.ts +0 -33
- package/dist/atlas/src/observability/AtlasObservability.d.ts +0 -15
- package/dist/atlas/src/observability/AtlasTracer.d.ts +0 -12
- package/dist/atlas/src/observability/index.d.ts +0 -9
- package/dist/atlas/src/orm/Repository.d.ts +0 -247
- package/dist/atlas/src/orm/index.d.ts +0 -6
- package/dist/atlas/src/orm/model/DirtyTracker.d.ts +0 -121
- package/dist/atlas/src/orm/model/Model.d.ts +0 -458
- package/dist/atlas/src/orm/model/ModelRegistry.d.ts +0 -20
- package/dist/atlas/src/orm/model/concerns/HasAttributes.d.ts +0 -150
- package/dist/atlas/src/orm/model/concerns/HasEvents.d.ts +0 -36
- package/dist/atlas/src/orm/model/concerns/HasPersistence.d.ts +0 -92
- package/dist/atlas/src/orm/model/concerns/HasRelationships.d.ts +0 -117
- package/dist/atlas/src/orm/model/concerns/HasSerialization.d.ts +0 -64
- package/dist/atlas/src/orm/model/concerns/applyMixins.d.ts +0 -15
- package/dist/atlas/src/orm/model/concerns/index.d.ts +0 -12
- package/dist/atlas/src/orm/model/decorators.d.ts +0 -138
- package/dist/atlas/src/orm/model/errors.d.ts +0 -52
- package/dist/atlas/src/orm/model/index.d.ts +0 -10
- package/dist/atlas/src/orm/model/relationships.d.ts +0 -207
- package/dist/atlas/src/orm/model/types.d.ts +0 -12
- package/dist/atlas/src/orm/schema/SchemaRegistry.d.ts +0 -124
- package/dist/atlas/src/orm/schema/SchemaSniffer.d.ts +0 -54
- package/dist/atlas/src/orm/schema/index.d.ts +0 -6
- package/dist/atlas/src/orm/schema/types.d.ts +0 -85
- package/dist/atlas/src/pool/AdaptivePoolManager.d.ts +0 -98
- package/dist/atlas/src/pool/PoolHealthChecker.d.ts +0 -91
- package/dist/atlas/src/pool/PoolStrategy.d.ts +0 -129
- package/dist/atlas/src/pool/PoolWarmer.d.ts +0 -92
- package/dist/atlas/src/query/Expression.d.ts +0 -60
- package/dist/atlas/src/query/NPlusOneDetector.d.ts +0 -10
- package/dist/atlas/src/query/QueryBuilder.d.ts +0 -643
- package/dist/atlas/src/query/RelationshipResolver.d.ts +0 -23
- package/dist/atlas/src/query/clauses/GroupByClause.d.ts +0 -51
- package/dist/atlas/src/query/clauses/HavingClause.d.ts +0 -70
- package/dist/atlas/src/query/clauses/JoinClause.d.ts +0 -87
- package/dist/atlas/src/query/clauses/LimitClause.d.ts +0 -82
- package/dist/atlas/src/query/clauses/OrderByClause.d.ts +0 -69
- package/dist/atlas/src/query/clauses/SelectClause.d.ts +0 -71
- package/dist/atlas/src/query/clauses/WhereClause.d.ts +0 -167
- package/dist/atlas/src/query/clauses/index.d.ts +0 -11
- package/dist/atlas/src/schema/Blueprint.d.ts +0 -276
- package/dist/atlas/src/schema/ColumnDefinition.d.ts +0 -154
- package/dist/atlas/src/schema/ForeignKeyDefinition.d.ts +0 -37
- package/dist/atlas/src/schema/MigrationGenerator.d.ts +0 -45
- package/dist/atlas/src/schema/Schema.d.ts +0 -131
- package/dist/atlas/src/schema/SchemaDiff.d.ts +0 -73
- package/dist/atlas/src/schema/TypeGenerator.d.ts +0 -57
- package/dist/atlas/src/schema/TypeWriter.d.ts +0 -42
- package/dist/atlas/src/schema/grammars/MySQLSchemaGrammar.d.ts +0 -23
- package/dist/atlas/src/schema/grammars/PostgresSchemaGrammar.d.ts +0 -26
- package/dist/atlas/src/schema/grammars/SQLiteSchemaGrammar.d.ts +0 -28
- package/dist/atlas/src/schema/grammars/SchemaGrammar.d.ts +0 -97
- package/dist/atlas/src/schema/grammars/index.d.ts +0 -7
- package/dist/atlas/src/schema/index.d.ts +0 -8
- package/dist/atlas/src/seed/Factory.d.ts +0 -90
- package/dist/atlas/src/seed/Seeder.d.ts +0 -28
- package/dist/atlas/src/seed/SeederRunner.d.ts +0 -74
- package/dist/atlas/src/seed/index.d.ts +0 -6
- package/dist/atlas/src/sharding/ShardingManager.d.ts +0 -59
- package/dist/atlas/src/types/index.d.ts +0 -1182
- package/dist/atlas/src/utils/CursorEncoding.d.ts +0 -63
- package/dist/atlas/src/utils/levenshtein.d.ts +0 -9
- package/dist/core/src/adapters/PhotonAdapter.d.ts +0 -175
- package/dist/core/src/adapters/photon-types.d.ts +0 -73
- package/dist/core/src/http/middleware/BodySizeLimit.d.ts +0 -16
- package/dist/core/src/http/middleware/Cors.d.ts +0 -24
- package/dist/core/src/http/middleware/Csrf.d.ts +0 -23
- package/dist/core/src/http/middleware/HeaderTokenGate.d.ts +0 -28
- package/dist/core/src/http/middleware/SecurityHeaders.d.ts +0 -29
- package/dist/core/src/http/middleware/ThrottleRequests.d.ts +0 -18
- package/dist/core/src/instrumentation/index.d.ts +0 -35
- package/dist/core/src/instrumentation/opentelemetry.d.ts +0 -178
- package/dist/core/src/instrumentation/types.d.ts +0 -182
- package/dist/core/src/observability/Metrics.d.ts +0 -244
- package/dist/photon/src/index.d.ts +0 -89
- package/dist/photon/src/middleware/binary.d.ts +0 -31
- package/dist/photon/src/middleware/htmx.d.ts +0 -39
- package/dist/photon/src/middleware/ratelimit-redis.d.ts +0 -50
- package/dist/photon/src/middleware/ratelimit.d.ts +0 -161
- package/dist/photon/src/openapi.d.ts +0 -19
- package/dist/ripple/src/errors/RippleError.d.ts +0 -48
- /package/dist/{ripple/src/channels → channels}/Channel.d.ts +0 -0
- /package/dist/{ripple/src/channels → channels}/ChannelManager.d.ts +0 -0
- /package/dist/{ripple/src/channels → channels}/index.d.ts +0 -0
- /package/dist/{ripple/src/drivers → drivers}/LocalDriver.d.ts +0 -0
- /package/dist/{ripple/src/drivers → drivers}/NATSDriver.d.ts +0 -0
- /package/dist/{ripple/src/drivers → drivers}/RedisDriver.d.ts +0 -0
- /package/dist/{ripple/src/drivers → drivers}/index.d.ts +0 -0
- /package/dist/{ripple/src/engines → engines}/IRippleEngine.d.ts +0 -0
- /package/dist/{ripple/src/engines → engines}/UWebSocketsEngine.d.ts +0 -0
- /package/dist/{ripple/src/engines → engines}/WsEngine.d.ts +0 -0
- /package/dist/{ripple/src/engines → engines}/index.d.ts +0 -0
- /package/dist/{ripple/src/errors → errors}/index.d.ts +0 -0
- /package/dist/{ripple/src/events → events}/BroadcastEvent.d.ts +0 -0
- /package/dist/{ripple/src/events → events}/BroadcastManager.d.ts +0 -0
- /package/dist/{ripple/src/events → events}/Broadcaster.d.ts +0 -0
- /package/dist/{ripple/src/events → events}/index.d.ts +0 -0
- /package/dist/{ripple/src/health → health}/HealthChecker.d.ts +0 -0
- /package/dist/{ripple/src/health → health}/index.d.ts +0 -0
- /package/dist/{ripple/src/index.d.ts → index.d.ts} +0 -0
- /package/dist/{ripple/src/logging → logging}/Logger.d.ts +0 -0
- /package/dist/{ripple/src/logging → logging}/index.d.ts +0 -0
- /package/dist/{ripple/src/middleware → middleware}/InterceptorManager.d.ts +0 -0
- /package/dist/{ripple/src/observability → observability}/RippleMetrics.d.ts +0 -0
- /package/dist/{ripple/src/reliability → reliability}/AckManager.d.ts +0 -0
- /package/dist/{ripple/src/serializers → serializers}/ISerializer.d.ts +0 -0
- /package/dist/{ripple/src/serializers → serializers}/JsonSerializer.d.ts +0 -0
- /package/dist/{ripple/src/serializers → serializers}/ProtobufSerializer.d.ts +0 -0
- /package/dist/{ripple/src/serializers → serializers}/index.d.ts +0 -0
- /package/dist/{ripple/src/tracking → tracking}/ConnectionTracker.d.ts +0 -0
- /package/dist/{ripple/src/tracking → tracking}/SessionManager.d.ts +0 -0
- /package/dist/{ripple/src/tracking → tracking}/index.d.ts +0 -0
- /package/dist/{ripple/src/types.d.ts → types.d.ts} +0 -0
- /package/dist/{ripple/src/utils → utils}/MessageSerializer.d.ts +0 -0
- /package/dist/{ripple/src/utils → utils}/TokenBucket.d.ts +0 -0
- /package/dist/{ripple/src/utils → utils}/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,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
|
-
}
|