@woltz/rich-domain-drizzle 0.1.1 → 0.1.2
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 +58 -33
- package/dist/cjs/mappers/to-persistence.d.ts +4 -7
- package/dist/cjs/mappers/to-persistence.d.ts.map +1 -1
- package/dist/cjs/mappers/to-persistence.js +4 -2
- package/dist/cjs/mappers/to-persistence.js.map +1 -1
- package/dist/cjs/repository.d.ts +8 -8
- package/dist/cjs/repository.d.ts.map +1 -1
- package/dist/cjs/repository.js +1 -1
- package/dist/cjs/repository.js.map +1 -1
- package/dist/esm/mappers/to-persistence.d.ts +4 -7
- package/dist/esm/mappers/to-persistence.d.ts.map +1 -1
- package/dist/esm/mappers/to-persistence.js +4 -2
- package/dist/esm/mappers/to-persistence.js.map +1 -1
- package/dist/esm/repository.d.ts +8 -8
- package/dist/esm/repository.d.ts.map +1 -1
- package/dist/esm/repository.js +1 -1
- package/dist/esm/repository.js.map +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.types.tsbuildinfo +1 -1
- package/dist/types/mappers/to-persistence.d.ts +4 -7
- package/dist/types/mappers/to-persistence.d.ts.map +1 -1
- package/dist/types/repository.d.ts +8 -8
- package/dist/types/repository.d.ts.map +1 -1
- package/package.json +69 -69
- package/src/batch-executor.ts +317 -317
- package/src/errors.ts +78 -78
- package/src/index.ts +37 -37
- package/src/mappers/to-domain.ts +13 -13
- package/src/mappers/to-persistence.ts +99 -101
- package/src/query-builder.ts +217 -217
- package/src/repository.ts +257 -252
- package/src/unit-of-work.ts +123 -123
package/README.md
CHANGED
|
@@ -24,9 +24,12 @@ npm install @woltz/rich-domain @woltz/rich-domain-drizzle drizzle-orm
|
|
|
24
24
|
|
|
25
25
|
```typescript
|
|
26
26
|
import { drizzle } from "drizzle-orm/node-postgres";
|
|
27
|
+
import * as schema from "./schema";
|
|
27
28
|
import { DrizzleUnitOfWork } from "@woltz/rich-domain-drizzle";
|
|
28
29
|
|
|
29
|
-
|
|
30
|
+
type DB = ReturnType<typeof drizzle<typeof schema>>;
|
|
31
|
+
|
|
32
|
+
const db: DB = drizzle(pool, { schema });
|
|
30
33
|
const uow = new DrizzleUnitOfWork(db);
|
|
31
34
|
```
|
|
32
35
|
|
|
@@ -36,13 +39,15 @@ const uow = new DrizzleUnitOfWork(db);
|
|
|
36
39
|
import { DrizzleRepository, SearchableField } from "@woltz/rich-domain-drizzle";
|
|
37
40
|
import { users } from "./schema";
|
|
38
41
|
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
type DB = ReturnType<typeof drizzle<typeof schema>>;
|
|
43
|
+
|
|
44
|
+
class UserRepository extends DrizzleRepository<User, UserRecord, DB> {
|
|
45
|
+
constructor(db: DB, uow: DrizzleUnitOfWork) {
|
|
41
46
|
super({
|
|
42
47
|
db,
|
|
43
48
|
table: users,
|
|
44
49
|
toDomainMapper: new UserToDomainMapper(),
|
|
45
|
-
toPersistenceMapper: new UserToPersistenceMapper(uow),
|
|
50
|
+
toPersistenceMapper: new UserToPersistenceMapper(db, uow),
|
|
46
51
|
uow,
|
|
47
52
|
});
|
|
48
53
|
}
|
|
@@ -67,7 +72,11 @@ class UserRepository extends DrizzleRepository<User, UserRecord> {
|
|
|
67
72
|
const userRepo = new UserRepository(uow);
|
|
68
73
|
|
|
69
74
|
// Create
|
|
70
|
-
const user = User.create({
|
|
75
|
+
const user = User.create({
|
|
76
|
+
name: "John",
|
|
77
|
+
email: "john@example.com",
|
|
78
|
+
posts: [],
|
|
79
|
+
});
|
|
71
80
|
await userRepo.save(user);
|
|
72
81
|
|
|
73
82
|
// Find by ID
|
|
@@ -124,7 +133,13 @@ uow.getCurrentContext(); // DrizzleTransactionContext | null
|
|
|
124
133
|
Base class for repositories with full Criteria support.
|
|
125
134
|
|
|
126
135
|
```typescript
|
|
127
|
-
abstract class DrizzleRepository<
|
|
136
|
+
abstract class DrizzleRepository<
|
|
137
|
+
TDomain,
|
|
138
|
+
TRecord,
|
|
139
|
+
TDb extends DrizzleClient = DrizzleClient,
|
|
140
|
+
> {
|
|
141
|
+
constructor(config: { db: TDb; table: any; toDomainMapper; toPersistenceMapper; uow }) { ... }
|
|
142
|
+
|
|
128
143
|
// Required: key in db.query matching the Drizzle schema export name
|
|
129
144
|
protected abstract get model(): string;
|
|
130
145
|
|
|
@@ -134,6 +149,9 @@ abstract class DrizzleRepository<TDomain, TRecord> {
|
|
|
134
149
|
// Optional: default relations to include in queries
|
|
135
150
|
protected getDefaultRelations(): Record<string, any>;
|
|
136
151
|
|
|
152
|
+
// Available: current context (transaction or plain db) — typed as TDb
|
|
153
|
+
protected get context(): TDb;
|
|
154
|
+
|
|
137
155
|
// Available methods
|
|
138
156
|
async find(criteria: Criteria<TDomain>): Promise<PaginatedResult<TDomain>>;
|
|
139
157
|
async findById(id: string): Promise<TDomain | null>;
|
|
@@ -155,7 +173,12 @@ abstract class DrizzleRepository<TDomain, TRecord> {
|
|
|
155
173
|
Base class for persistence mappers with change tracking support.
|
|
156
174
|
|
|
157
175
|
```typescript
|
|
158
|
-
abstract class DrizzleToPersistence<
|
|
176
|
+
abstract class DrizzleToPersistence<
|
|
177
|
+
TDomain,
|
|
178
|
+
TDb extends DrizzleClient = DrizzleClient,
|
|
179
|
+
> extends Mapper<TDomain, void> {
|
|
180
|
+
constructor(db: TDb, uow: DrizzleUnitOfWork) { ... }
|
|
181
|
+
|
|
159
182
|
// Required: registry for entity/table/collection mapping
|
|
160
183
|
protected abstract readonly registry: EntitySchemaRegistry;
|
|
161
184
|
|
|
@@ -165,15 +188,19 @@ abstract class DrizzleToPersistence<TDomain> extends Mapper<TDomain, void> {
|
|
|
165
188
|
// Required: implement creation
|
|
166
189
|
protected abstract onCreate(entity: TDomain): Promise<void>;
|
|
167
190
|
|
|
168
|
-
// Available: current context (transaction or plain db)
|
|
169
|
-
protected get context():
|
|
191
|
+
// Available: current context (transaction or plain db) — typed as TDb
|
|
192
|
+
protected get context(): TDb;
|
|
170
193
|
}
|
|
171
194
|
```
|
|
172
195
|
|
|
173
196
|
#### Example
|
|
174
197
|
|
|
175
198
|
```typescript
|
|
176
|
-
import {
|
|
199
|
+
import {
|
|
200
|
+
DrizzleToPersistence,
|
|
201
|
+
DrizzleUnitOfWork,
|
|
202
|
+
Transactional,
|
|
203
|
+
} from "@woltz/rich-domain-drizzle";
|
|
177
204
|
import { EntitySchemaRegistry } from "@woltz/rich-domain";
|
|
178
205
|
import { users, posts, tags, postsToTags } from "./schema";
|
|
179
206
|
|
|
@@ -203,7 +230,9 @@ const userRegistry = new EntitySchemaRegistry()
|
|
|
203
230
|
})
|
|
204
231
|
.register({ entity: "Tag", table: "tags" });
|
|
205
232
|
|
|
206
|
-
|
|
233
|
+
type DB = ReturnType<typeof drizzle<typeof schema>>;
|
|
234
|
+
|
|
235
|
+
class UserToPersistenceMapper extends DrizzleToPersistence<User, DB> {
|
|
207
236
|
protected readonly registry = userRegistry;
|
|
208
237
|
|
|
209
238
|
protected readonly tableMap = new Map<string, any>([
|
|
@@ -213,12 +242,8 @@ class UserToPersistenceMapper extends DrizzleToPersistence<User> {
|
|
|
213
242
|
["posts_to_tags", postsToTags], // junction table key must match registry
|
|
214
243
|
]);
|
|
215
244
|
|
|
216
|
-
constructor(uow: DrizzleUnitOfWork) {
|
|
217
|
-
super(uow);
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
protected getDb() {
|
|
221
|
-
return getDb();
|
|
245
|
+
constructor(db: DB, uow: DrizzleUnitOfWork) {
|
|
246
|
+
super(db, uow);
|
|
222
247
|
}
|
|
223
248
|
|
|
224
249
|
@Transactional()
|
|
@@ -253,10 +278,10 @@ class UserToPersistenceMapper extends DrizzleToPersistence<User> {
|
|
|
253
278
|
|
|
254
279
|
### EntitySchemaRegistry — Collection Types
|
|
255
280
|
|
|
256
|
-
| Type
|
|
257
|
-
|
|
258
|
-
| `owned`
|
|
259
|
-
| `reference` | N:N — rows in a junction table
|
|
281
|
+
| Type | Behavior | Junction required? |
|
|
282
|
+
| ----------- | ------------------------------------------------------ | ------------------ |
|
|
283
|
+
| `owned` | 1:N — child rows belong to the parent; deletes cascade | No |
|
|
284
|
+
| `reference` | N:N — rows in a junction table | **Yes — always** |
|
|
260
285
|
|
|
261
286
|
Unlike Prisma, Drizzle does not manage implicit junction tables. Every `reference` collection must provide a `junction` config. Omitting it throws `MissingJunctionConfigError`.
|
|
262
287
|
|
|
@@ -284,11 +309,11 @@ class CreateUserUseCase {
|
|
|
284
309
|
}
|
|
285
310
|
```
|
|
286
311
|
|
|
287
|
-
| Scenario
|
|
288
|
-
|
|
289
|
-
| Direct call
|
|
290
|
-
| Already in transaction | Reuses existing one
|
|
291
|
-
| Error thrown
|
|
312
|
+
| Scenario | Behavior |
|
|
313
|
+
| ---------------------- | ----------------------- |
|
|
314
|
+
| Direct call | Creates new transaction |
|
|
315
|
+
| Already in transaction | Reuses existing one |
|
|
316
|
+
| Error thrown | Automatic rollback |
|
|
292
317
|
|
|
293
318
|
The class must expose a `uow` property of type `DrizzleUnitOfWork` for the decorator to find it.
|
|
294
319
|
|
|
@@ -345,13 +370,13 @@ await uow.transaction(async () => {
|
|
|
345
370
|
|
|
346
371
|
## Error Reference
|
|
347
372
|
|
|
348
|
-
| Error
|
|
349
|
-
|
|
350
|
-
| `TableNotFoundError`
|
|
351
|
-
| `MissingJunctionConfigError` | `reference` collection has no `junction` configured
|
|
352
|
-
| `BatchOperationError`
|
|
353
|
-
| `NoRecordsAffectedError`
|
|
354
|
-
| `DrizzleAdapterError`
|
|
373
|
+
| Error | When thrown |
|
|
374
|
+
| ---------------------------- | ------------------------------------------------------------------ |
|
|
375
|
+
| `TableNotFoundError` | `tableMap` key not found for an entity or junction name |
|
|
376
|
+
| `MissingJunctionConfigError` | `reference` collection has no `junction` configured |
|
|
377
|
+
| `BatchOperationError` | DB error during a batch create, update, or delete |
|
|
378
|
+
| `NoRecordsAffectedError` | `delete()` / `deleteById()` matched 0 rows |
|
|
379
|
+
| `DrizzleAdapterError` | Unsupported Criteria operator, dot-field path, or column not found |
|
|
355
380
|
|
|
356
381
|
---
|
|
357
382
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Mapper, AggregateChanges, EntitySchemaRegistry } from "@woltz/rich-domain";
|
|
2
2
|
import { DrizzleClient, DrizzleUnitOfWork } from "../unit-of-work";
|
|
3
|
-
export declare abstract class DrizzleToPersistence<TDomain> extends Mapper<TDomain, void> {
|
|
3
|
+
export declare abstract class DrizzleToPersistence<TDomain, TDb extends DrizzleClient = DrizzleClient> extends Mapper<TDomain, void> {
|
|
4
|
+
protected readonly db: TDb;
|
|
4
5
|
protected readonly uow: DrizzleUnitOfWork;
|
|
5
|
-
constructor(uow: DrizzleUnitOfWork);
|
|
6
|
+
constructor(db: TDb, uow: DrizzleUnitOfWork);
|
|
6
7
|
/**
|
|
7
8
|
* Schema registry for field mapping (entity → table, field → column).
|
|
8
9
|
*/
|
|
@@ -19,14 +20,10 @@ export declare abstract class DrizzleToPersistence<TDomain> extends Mapper<TDoma
|
|
|
19
20
|
* ```
|
|
20
21
|
*/
|
|
21
22
|
protected abstract readonly tableMap: Map<string, any>;
|
|
22
|
-
/**
|
|
23
|
-
* Get the raw db instance.
|
|
24
|
-
*/
|
|
25
|
-
protected abstract getDb(): DrizzleClient;
|
|
26
23
|
/**
|
|
27
24
|
* Get current context (transaction client or raw db).
|
|
28
25
|
*/
|
|
29
|
-
protected get context():
|
|
26
|
+
protected get context(): TDb;
|
|
30
27
|
/**
|
|
31
28
|
* Build persistence operations.
|
|
32
29
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-persistence.d.ts","sourceRoot":"","sources":["../../../src/mappers/to-persistence.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,iBAAiB,EAGlB,MAAM,iBAAiB,CAAC;AAGzB,8BAAsB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"to-persistence.d.ts","sourceRoot":"","sources":["../../../src/mappers/to-persistence.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,iBAAiB,EAGlB,MAAM,iBAAiB,CAAC;AAGzB,8BAAsB,oBAAoB,CACxC,OAAO,EACP,GAAG,SAAS,aAAa,GAAG,aAAa,CACzC,SAAQ,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;IAE3B,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG;IAC1B,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,iBAAiB;gBADtB,EAAE,EAAE,GAAG,EACP,GAAG,EAAE,iBAAiB;IAK3C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IAE3D;;;;;;;;;;OAUG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEvD;;OAEG;IACH,SAAS,KAAK,OAAO,IAAI,GAAG,CAG3B;IAED;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3C;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9D;;;;OAIG;cACa,QAAQ,CACtB,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,IAAI,CAAC;YAUF,YAAY;CAW3B"}
|
|
@@ -14,9 +14,11 @@ const rich_domain_1 = require("@woltz/rich-domain");
|
|
|
14
14
|
const unit_of_work_1 = require("../unit-of-work");
|
|
15
15
|
const batch_executor_1 = require("../batch-executor");
|
|
16
16
|
class DrizzleToPersistence extends rich_domain_1.Mapper {
|
|
17
|
+
db;
|
|
17
18
|
uow;
|
|
18
|
-
constructor(uow) {
|
|
19
|
+
constructor(db, uow) {
|
|
19
20
|
super();
|
|
21
|
+
this.db = db;
|
|
20
22
|
this.uow = uow;
|
|
21
23
|
}
|
|
22
24
|
/**
|
|
@@ -24,7 +26,7 @@ class DrizzleToPersistence extends rich_domain_1.Mapper {
|
|
|
24
26
|
*/
|
|
25
27
|
get context() {
|
|
26
28
|
const ctx = unit_of_work_1.UOWStorage.getStore()?.ctx;
|
|
27
|
-
return ctx?.client ?? this.
|
|
29
|
+
return (ctx?.client ?? this.db);
|
|
28
30
|
}
|
|
29
31
|
/**
|
|
30
32
|
* Build persistence operations.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-persistence.js","sourceRoot":"","sources":["../../../src/mappers/to-persistence.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAI4B;AAC5B,kDAKyB;AACzB,sDAAyD;AAEzD,MAAsB,
|
|
1
|
+
{"version":3,"file":"to-persistence.js","sourceRoot":"","sources":["../../../src/mappers/to-persistence.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAI4B;AAC5B,kDAKyB;AACzB,sDAAyD;AAEzD,MAAsB,oBAGpB,SAAQ,oBAAqB;IAER;IACA;IAFrB,YACqB,EAAO,EACP,GAAsB;QAEzC,KAAK,EAAE,CAAC;QAHW,OAAE,GAAF,EAAE,CAAK;QACP,QAAG,GAAH,GAAG,CAAmB;IAG3C,CAAC;IAoBD;;OAEG;IACH,IAAc,OAAO;QACnB,MAAM,GAAG,GAAG,yBAAU,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC;QACvC,OAAO,CAAC,GAAG,EAAE,MAAM,IAAI,IAAI,CAAC,EAAE,CAAQ,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,MAAe;QACzB,MAAM,KAAK,GAAI,MAAc,CAAC,KAAK,EAAE,EAAE,IAAI,KAAK,CAAC;QAEjD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAQD;;;;OAIG;IACO,KAAK,CAAC,QAAQ,CACtB,OAAyB,EACzB,UAAmB;QAEnB,MAAM,QAAQ,GAAG,IAAI,qCAAoB,CAAC;YACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,EAAE,EAAE,IAAI,CAAC,OAAO;YAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAGa,AAAN,KAAK,CAAC,YAAY,CAAC,MAAe;QACxC,MAAM,OAAO,GAAI,MAAc,CAAC,UAAU,EAAE,EAE/B,CAAC;QAEd,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;CACF;AArFD,oDAqFC;AAXe;IADb,IAAA,4BAAa,GAAE;;;;wDAWf"}
|
package/dist/cjs/repository.d.ts
CHANGED
|
@@ -2,24 +2,24 @@ import { Aggregate, Repository, Mapper, Criteria, PaginatedResult } from "@woltz
|
|
|
2
2
|
import { DrizzleClient, DrizzleUnitOfWork } from "./unit-of-work";
|
|
3
3
|
import { DrizzleToPersistence } from "./mappers/to-persistence";
|
|
4
4
|
import { SearchableField } from "./query-builder";
|
|
5
|
-
export interface DrizzleRepositoryConfig<TDomain, TPersistence> {
|
|
6
|
-
db:
|
|
5
|
+
export interface DrizzleRepositoryConfig<TDomain, TPersistence, TDb extends DrizzleClient = DrizzleClient> {
|
|
6
|
+
db: TDb;
|
|
7
7
|
table: any;
|
|
8
8
|
toDomainMapper: Mapper<TPersistence, TDomain>;
|
|
9
|
-
toPersistenceMapper: DrizzleToPersistence<TDomain>;
|
|
9
|
+
toPersistenceMapper: DrizzleToPersistence<TDomain, TDb>;
|
|
10
10
|
uow: DrizzleUnitOfWork;
|
|
11
11
|
}
|
|
12
|
-
export declare abstract class DrizzleRepository<TDomain extends Aggregate<any>, TPersistence> extends Repository<TDomain> {
|
|
13
|
-
protected readonly db:
|
|
12
|
+
export declare abstract class DrizzleRepository<TDomain extends Aggregate<any>, TPersistence, TDb extends DrizzleClient = DrizzleClient> extends Repository<TDomain> {
|
|
13
|
+
protected readonly db: TDb;
|
|
14
14
|
protected readonly table: any;
|
|
15
15
|
protected readonly toDomainMapper: Mapper<TPersistence, TDomain>;
|
|
16
|
-
protected readonly toPersistenceMapper: DrizzleToPersistence<TDomain>;
|
|
16
|
+
protected readonly toPersistenceMapper: DrizzleToPersistence<TDomain, TDb>;
|
|
17
17
|
protected readonly uow: DrizzleUnitOfWork;
|
|
18
|
-
constructor(config: DrizzleRepositoryConfig<TDomain, TPersistence>);
|
|
18
|
+
constructor(config: DrizzleRepositoryConfig<TDomain, TPersistence, TDb>);
|
|
19
19
|
/**
|
|
20
20
|
* Returns tx from UOWStorage if inside a transaction, otherwise the raw db.
|
|
21
21
|
*/
|
|
22
|
-
protected get context():
|
|
22
|
+
protected get context(): TDb;
|
|
23
23
|
/**
|
|
24
24
|
* The table name string used by EntitySchemaRegistry and db.query accessor.
|
|
25
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,UAAU,EACV,MAAM,EACN,QAAQ,EACR,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAc,MAAM,gBAAgB,CAAC;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAuB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvE,MAAM,WAAW,uBAAuB,
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,UAAU,EACV,MAAM,EACN,QAAQ,EACR,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAc,MAAM,gBAAgB,CAAC;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAuB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvE,MAAM,WAAW,uBAAuB,CACtC,OAAO,EACP,YAAY,EACZ,GAAG,SAAS,aAAa,GAAG,aAAa;IAEzC,EAAE,EAAE,GAAG,CAAC;IACR,KAAK,EAAE,GAAG,CAAC;IACX,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC9C,mBAAmB,EAAE,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxD,GAAG,EAAE,iBAAiB,CAAC;CACxB;AAED,8BAAsB,iBAAiB,CACrC,OAAO,SAAS,SAAS,CAAC,GAAG,CAAC,EAC9B,YAAY,EACZ,GAAG,SAAS,aAAa,GAAG,aAAa,CACzC,SAAQ,UAAU,CAAC,OAAO,CAAC;IAC3B,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;IAC3B,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;IAC9B,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACjE,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC3E,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;gBAE9B,MAAM,EAAE,uBAAuB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC;IASvE;;OAEG;IACH,SAAS,KAAK,OAAO,IAAI,GAAG,CAG3B;IAED;;OAEG;IACH,SAAS,CAAC,QAAQ,KAAK,KAAK,IAAI,MAAM,CAAC;IAEvC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,mBAAmB,IAAI,eAAe,CAAC,YAAY,CAAC,EAAE;IAEzE;;OAEG;IACH,SAAS,CAAC,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI9C,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAqDpE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IA8B7C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA4BhD,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBpD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQpC,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpC,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBtC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBrC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxD,OAAO,CAAC,6BAA6B;CAOtC"}
|
package/dist/cjs/repository.js
CHANGED
|
@@ -25,7 +25,7 @@ class DrizzleRepository extends rich_domain_1.Repository {
|
|
|
25
25
|
*/
|
|
26
26
|
get context() {
|
|
27
27
|
const ctx = unit_of_work_1.UOWStorage.getStore()?.ctx;
|
|
28
|
-
return ctx?.client ?? this.db;
|
|
28
|
+
return (ctx?.client ?? this.db);
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* Relations to include when fetching (for Drizzle relational query API).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":";;;AAAA,6CAAsD;AACtD,oDAM4B;AAC5B,iDAA8E;AAC9E,qCAAkD;AAElD,mDAAuE;
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Mapper, AggregateChanges, EntitySchemaRegistry } from "@woltz/rich-domain";
|
|
2
2
|
import { DrizzleClient, DrizzleUnitOfWork } from "../unit-of-work";
|
|
3
|
-
export declare abstract class DrizzleToPersistence<TDomain> extends Mapper<TDomain, void> {
|
|
3
|
+
export declare abstract class DrizzleToPersistence<TDomain, TDb extends DrizzleClient = DrizzleClient> extends Mapper<TDomain, void> {
|
|
4
|
+
protected readonly db: TDb;
|
|
4
5
|
protected readonly uow: DrizzleUnitOfWork;
|
|
5
|
-
constructor(uow: DrizzleUnitOfWork);
|
|
6
|
+
constructor(db: TDb, uow: DrizzleUnitOfWork);
|
|
6
7
|
/**
|
|
7
8
|
* Schema registry for field mapping (entity → table, field → column).
|
|
8
9
|
*/
|
|
@@ -19,14 +20,10 @@ export declare abstract class DrizzleToPersistence<TDomain> extends Mapper<TDoma
|
|
|
19
20
|
* ```
|
|
20
21
|
*/
|
|
21
22
|
protected abstract readonly tableMap: Map<string, any>;
|
|
22
|
-
/**
|
|
23
|
-
* Get the raw db instance.
|
|
24
|
-
*/
|
|
25
|
-
protected abstract getDb(): DrizzleClient;
|
|
26
23
|
/**
|
|
27
24
|
* Get current context (transaction client or raw db).
|
|
28
25
|
*/
|
|
29
|
-
protected get context():
|
|
26
|
+
protected get context(): TDb;
|
|
30
27
|
/**
|
|
31
28
|
* Build persistence operations.
|
|
32
29
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-persistence.d.ts","sourceRoot":"","sources":["../../../src/mappers/to-persistence.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,iBAAiB,EAGlB,MAAM,iBAAiB,CAAC;AAGzB,8BAAsB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"to-persistence.d.ts","sourceRoot":"","sources":["../../../src/mappers/to-persistence.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,iBAAiB,EAGlB,MAAM,iBAAiB,CAAC;AAGzB,8BAAsB,oBAAoB,CACxC,OAAO,EACP,GAAG,SAAS,aAAa,GAAG,aAAa,CACzC,SAAQ,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;IAE3B,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG;IAC1B,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,iBAAiB;gBADtB,EAAE,EAAE,GAAG,EACP,GAAG,EAAE,iBAAiB;IAK3C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IAE3D;;;;;;;;;;OAUG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEvD;;OAEG;IACH,SAAS,KAAK,OAAO,IAAI,GAAG,CAG3B;IAED;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3C;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9D;;;;OAIG;cACa,QAAQ,CACtB,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,IAAI,CAAC;YAUF,YAAY;CAW3B"}
|
|
@@ -11,9 +11,11 @@ import { Mapper, } from "@woltz/rich-domain";
|
|
|
11
11
|
import { UOWStorage, Transactional, } from "../unit-of-work";
|
|
12
12
|
import { DrizzleBatchExecutor } from "../batch-executor";
|
|
13
13
|
export class DrizzleToPersistence extends Mapper {
|
|
14
|
+
db;
|
|
14
15
|
uow;
|
|
15
|
-
constructor(uow) {
|
|
16
|
+
constructor(db, uow) {
|
|
16
17
|
super();
|
|
18
|
+
this.db = db;
|
|
17
19
|
this.uow = uow;
|
|
18
20
|
}
|
|
19
21
|
/**
|
|
@@ -21,7 +23,7 @@ export class DrizzleToPersistence extends Mapper {
|
|
|
21
23
|
*/
|
|
22
24
|
get context() {
|
|
23
25
|
const ctx = UOWStorage.getStore()?.ctx;
|
|
24
|
-
return ctx?.client ?? this.
|
|
26
|
+
return (ctx?.client ?? this.db);
|
|
25
27
|
}
|
|
26
28
|
/**
|
|
27
29
|
* Build persistence operations.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-persistence.js","sourceRoot":"","sources":["../../../src/mappers/to-persistence.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,MAAM,GAGP,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,UAAU,EACV,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,OAAgB,
|
|
1
|
+
{"version":3,"file":"to-persistence.js","sourceRoot":"","sources":["../../../src/mappers/to-persistence.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,MAAM,GAGP,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,UAAU,EACV,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,OAAgB,oBAGpB,SAAQ,MAAqB;IAER;IACA;IAFrB,YACqB,EAAO,EACP,GAAsB;QAEzC,KAAK,EAAE,CAAC;QAHW,OAAE,GAAF,EAAE,CAAK;QACP,QAAG,GAAH,GAAG,CAAmB;IAG3C,CAAC;IAoBD;;OAEG;IACH,IAAc,OAAO;QACnB,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC;QACvC,OAAO,CAAC,GAAG,EAAE,MAAM,IAAI,IAAI,CAAC,EAAE,CAAQ,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,MAAe;QACzB,MAAM,KAAK,GAAI,MAAc,CAAC,KAAK,EAAE,EAAE,IAAI,KAAK,CAAC;QAEjD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAQD;;;;OAIG;IACO,KAAK,CAAC,QAAQ,CACtB,OAAyB,EACzB,UAAmB;QAEnB,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC;YACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,EAAE,EAAE,IAAI,CAAC,OAAO;YAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAGa,AAAN,KAAK,CAAC,YAAY,CAAC,MAAe;QACxC,MAAM,OAAO,GAAI,MAAc,CAAC,UAAU,EAAE,EAE/B,CAAC;QAEd,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;CACF;AAXe;IADb,aAAa,EAAE;;;;wDAWf"}
|
package/dist/esm/repository.d.ts
CHANGED
|
@@ -2,24 +2,24 @@ import { Aggregate, Repository, Mapper, Criteria, PaginatedResult } from "@woltz
|
|
|
2
2
|
import { DrizzleClient, DrizzleUnitOfWork } from "./unit-of-work";
|
|
3
3
|
import { DrizzleToPersistence } from "./mappers/to-persistence";
|
|
4
4
|
import { SearchableField } from "./query-builder";
|
|
5
|
-
export interface DrizzleRepositoryConfig<TDomain, TPersistence> {
|
|
6
|
-
db:
|
|
5
|
+
export interface DrizzleRepositoryConfig<TDomain, TPersistence, TDb extends DrizzleClient = DrizzleClient> {
|
|
6
|
+
db: TDb;
|
|
7
7
|
table: any;
|
|
8
8
|
toDomainMapper: Mapper<TPersistence, TDomain>;
|
|
9
|
-
toPersistenceMapper: DrizzleToPersistence<TDomain>;
|
|
9
|
+
toPersistenceMapper: DrizzleToPersistence<TDomain, TDb>;
|
|
10
10
|
uow: DrizzleUnitOfWork;
|
|
11
11
|
}
|
|
12
|
-
export declare abstract class DrizzleRepository<TDomain extends Aggregate<any>, TPersistence> extends Repository<TDomain> {
|
|
13
|
-
protected readonly db:
|
|
12
|
+
export declare abstract class DrizzleRepository<TDomain extends Aggregate<any>, TPersistence, TDb extends DrizzleClient = DrizzleClient> extends Repository<TDomain> {
|
|
13
|
+
protected readonly db: TDb;
|
|
14
14
|
protected readonly table: any;
|
|
15
15
|
protected readonly toDomainMapper: Mapper<TPersistence, TDomain>;
|
|
16
|
-
protected readonly toPersistenceMapper: DrizzleToPersistence<TDomain>;
|
|
16
|
+
protected readonly toPersistenceMapper: DrizzleToPersistence<TDomain, TDb>;
|
|
17
17
|
protected readonly uow: DrizzleUnitOfWork;
|
|
18
|
-
constructor(config: DrizzleRepositoryConfig<TDomain, TPersistence>);
|
|
18
|
+
constructor(config: DrizzleRepositoryConfig<TDomain, TPersistence, TDb>);
|
|
19
19
|
/**
|
|
20
20
|
* Returns tx from UOWStorage if inside a transaction, otherwise the raw db.
|
|
21
21
|
*/
|
|
22
|
-
protected get context():
|
|
22
|
+
protected get context(): TDb;
|
|
23
23
|
/**
|
|
24
24
|
* The table name string used by EntitySchemaRegistry and db.query accessor.
|
|
25
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,UAAU,EACV,MAAM,EACN,QAAQ,EACR,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAc,MAAM,gBAAgB,CAAC;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAuB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvE,MAAM,WAAW,uBAAuB,
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,UAAU,EACV,MAAM,EACN,QAAQ,EACR,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAc,MAAM,gBAAgB,CAAC;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAuB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvE,MAAM,WAAW,uBAAuB,CACtC,OAAO,EACP,YAAY,EACZ,GAAG,SAAS,aAAa,GAAG,aAAa;IAEzC,EAAE,EAAE,GAAG,CAAC;IACR,KAAK,EAAE,GAAG,CAAC;IACX,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC9C,mBAAmB,EAAE,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxD,GAAG,EAAE,iBAAiB,CAAC;CACxB;AAED,8BAAsB,iBAAiB,CACrC,OAAO,SAAS,SAAS,CAAC,GAAG,CAAC,EAC9B,YAAY,EACZ,GAAG,SAAS,aAAa,GAAG,aAAa,CACzC,SAAQ,UAAU,CAAC,OAAO,CAAC;IAC3B,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;IAC3B,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;IAC9B,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACjE,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC3E,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;gBAE9B,MAAM,EAAE,uBAAuB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC;IASvE;;OAEG;IACH,SAAS,KAAK,OAAO,IAAI,GAAG,CAG3B;IAED;;OAEG;IACH,SAAS,CAAC,QAAQ,KAAK,KAAK,IAAI,MAAM,CAAC;IAEvC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,mBAAmB,IAAI,eAAe,CAAC,YAAY,CAAC,EAAE;IAEzE;;OAEG;IACH,SAAS,CAAC,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI9C,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAqDpE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IA8B7C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA4BhD,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBpD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQpC,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpC,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBtC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBrC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxD,OAAO,CAAC,6BAA6B;CAOtC"}
|
package/dist/esm/repository.js
CHANGED
|
@@ -22,7 +22,7 @@ export class DrizzleRepository extends Repository {
|
|
|
22
22
|
*/
|
|
23
23
|
get context() {
|
|
24
24
|
const ctx = UOWStorage.getStore()?.ctx;
|
|
25
|
-
return ctx?.client ?? this.db;
|
|
25
|
+
return (ctx?.client ?? this.db);
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
28
|
* Relations to include when fetching (for Drizzle relational query API).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAO,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,SAAS,EACT,UAAU,EAGV,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAoC,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAmB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"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"}
|