veloce-ts 0.2.6 → 0.3.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/CHANGELOG.md +501 -240
- package/README.md +141 -1
- package/dist/cjs/src/cli/index.js +125 -74
- package/dist/cjs/src/cli/index.js.map +4 -4
- package/dist/cjs/src/index.js +66 -25
- package/dist/cjs/src/index.js.map +112 -10
- package/dist/cjs/src/middleware/index.js +28 -2
- package/dist/cjs/src/middleware/index.js.map +79 -4
- package/dist/cjs/src/plugins/index.js +49 -23
- package/dist/cjs/src/plugins/index.js.map +74 -4
- package/dist/cjs/src/testing/index.js +30 -4
- package/dist/cjs/src/testing/index.js.map +80 -7
- package/dist/cjs/src/websocket/index.js +3 -3
- package/dist/cjs/src/websocket/index.js.map +1 -1
- package/dist/esm/src/cli/index.js +561 -22
- package/dist/esm/src/cli/index.js.map +8 -4
- package/dist/esm/src/docs/index.js +6 -6
- package/dist/esm/src/docs/index.js.map +10 -3
- package/dist/esm/src/errors/index.js +3 -2
- package/dist/esm/src/errors/index.js.map +7 -3
- package/dist/esm/src/graphql/index.js +82 -2
- package/dist/esm/src/graphql/index.js.map +18 -3
- package/dist/esm/src/index.js +165 -3
- package/dist/esm/src/index.js.map +202 -6
- package/dist/esm/src/middleware/index.js +28 -2
- package/dist/esm/src/middleware/index.js.map +81 -3
- package/dist/esm/src/plugins/index.js +113 -3
- package/dist/esm/src/plugins/index.js.map +131 -4
- package/dist/esm/src/testing/index.js +42 -2
- package/dist/esm/src/testing/index.js.map +97 -7
- package/dist/esm/src/types/index.js +2 -2
- package/dist/esm/src/types/index.js.map +10 -3
- package/dist/esm/src/validation/index.js +2 -2
- package/dist/esm/src/validation/index.js.map +13 -3
- package/dist/esm/src/websocket/index.js +15 -2
- package/dist/esm/src/websocket/index.js.map +9 -4
- package/dist/types/adapters/base.d.ts +10 -2
- package/dist/types/adapters/base.d.ts.map +1 -1
- package/dist/types/adapters/hono.d.ts +2 -2
- package/dist/types/adapters/hono.d.ts.map +1 -1
- package/dist/types/auth/permissions.d.ts +10 -10
- package/dist/types/auth/session.d.ts +2 -2
- package/dist/types/cache/index.d.ts +9 -0
- package/dist/types/cache/index.d.ts.map +1 -0
- package/dist/types/cache/manager.d.ts +75 -0
- package/dist/types/cache/manager.d.ts.map +1 -0
- package/dist/types/cache/memory-store.d.ts +55 -0
- package/dist/types/cache/memory-store.d.ts.map +1 -0
- package/dist/types/cache/redis-store.d.ts +55 -0
- package/dist/types/cache/redis-store.d.ts.map +1 -0
- package/dist/types/cache/types.d.ts +92 -0
- package/dist/types/cache/types.d.ts.map +1 -0
- package/dist/types/cli/commands/new.d.ts.map +1 -1
- package/dist/types/context/request-context.d.ts +66 -0
- package/dist/types/context/request-context.d.ts.map +1 -0
- package/dist/types/core/application.d.ts +11 -0
- package/dist/types/core/application.d.ts.map +1 -1
- package/dist/types/core/router-compiler.d.ts +1 -1
- package/dist/types/core/router-compiler.d.ts.map +1 -1
- package/dist/types/decorators/cache.d.ts +56 -0
- package/dist/types/decorators/cache.d.ts.map +1 -0
- package/dist/types/decorators/params.d.ts +24 -0
- package/dist/types/decorators/params.d.ts.map +1 -1
- package/dist/types/dependencies/container.d.ts +1 -1
- package/dist/types/dependencies/container.d.ts.map +1 -1
- package/dist/types/index.d.ts +7 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/logging/index.d.ts +10 -0
- package/dist/types/logging/index.d.ts.map +1 -0
- package/dist/types/logging/logger.d.ts +25 -0
- package/dist/types/logging/logger.d.ts.map +1 -0
- package/dist/types/logging/middleware.d.ts +15 -0
- package/dist/types/logging/middleware.d.ts.map +1 -0
- package/dist/types/logging/types.d.ts +22 -0
- package/dist/types/logging/types.d.ts.map +1 -0
- package/dist/types/middleware/cache.d.ts +54 -0
- package/dist/types/middleware/cache.d.ts.map +1 -0
- package/dist/types/middleware/index.d.ts +3 -0
- package/dist/types/middleware/index.d.ts.map +1 -1
- package/dist/types/middleware/request-context.d.ts +55 -0
- package/dist/types/middleware/request-context.d.ts.map +1 -0
- package/dist/types/orm/base-repository.d.ts +77 -0
- package/dist/types/orm/base-repository.d.ts.map +1 -0
- package/dist/types/orm/decorators.d.ts +35 -0
- package/dist/types/orm/decorators.d.ts.map +1 -0
- package/dist/types/orm/drizzle/index.d.ts +6 -0
- package/dist/types/orm/drizzle/index.d.ts.map +1 -0
- package/dist/types/orm/drizzle/plugin.d.ts +165 -0
- package/dist/types/orm/drizzle/plugin.d.ts.map +1 -0
- package/dist/types/orm/drizzle/repository.d.ts +61 -0
- package/dist/types/orm/drizzle/repository.d.ts.map +1 -0
- package/dist/types/orm/drizzle/schema-converter.d.ts +53 -0
- package/dist/types/orm/drizzle/schema-converter.d.ts.map +1 -0
- package/dist/types/orm/drizzle/transaction-manager.d.ts +58 -0
- package/dist/types/orm/drizzle/transaction-manager.d.ts.map +1 -0
- package/dist/types/orm/drizzle/types.d.ts +121 -0
- package/dist/types/orm/drizzle/types.d.ts.map +1 -0
- package/dist/types/orm/index.d.ts +16 -0
- package/dist/types/orm/index.d.ts.map +1 -0
- package/dist/types/orm/pagination.d.ts +147 -0
- package/dist/types/orm/pagination.d.ts.map +1 -0
- package/dist/types/orm/prisma/index.d.ts +6 -0
- package/dist/types/orm/prisma/index.d.ts.map +1 -0
- package/dist/types/orm/prisma/plugin.d.ts +68 -0
- package/dist/types/orm/prisma/plugin.d.ts.map +1 -0
- package/dist/types/orm/prisma/repository.d.ts +70 -0
- package/dist/types/orm/prisma/repository.d.ts.map +1 -0
- package/dist/types/orm/prisma/schema-generator.d.ts +45 -0
- package/dist/types/orm/prisma/schema-generator.d.ts.map +1 -0
- package/dist/types/orm/prisma/transaction-manager.d.ts +32 -0
- package/dist/types/orm/prisma/transaction-manager.d.ts.map +1 -0
- package/dist/types/orm/prisma/types.d.ts +67 -0
- package/dist/types/orm/prisma/types.d.ts.map +1 -0
- package/dist/types/orm/query-builder.d.ts +129 -0
- package/dist/types/orm/query-builder.d.ts.map +1 -0
- package/dist/types/orm/repository-factory.d.ts +130 -0
- package/dist/types/orm/repository-factory.d.ts.map +1 -0
- package/dist/types/orm/transaction-events.d.ts +122 -0
- package/dist/types/orm/transaction-events.d.ts.map +1 -0
- package/dist/types/orm/transaction-interceptor.d.ts +30 -0
- package/dist/types/orm/transaction-interceptor.d.ts.map +1 -0
- package/dist/types/orm/transaction-manager.d.ts +64 -0
- package/dist/types/orm/transaction-manager.d.ts.map +1 -0
- package/dist/types/orm/transaction-plugin.d.ts +117 -0
- package/dist/types/orm/transaction-plugin.d.ts.map +1 -0
- package/dist/types/orm/transaction-propagation.d.ts +49 -0
- package/dist/types/orm/transaction-propagation.d.ts.map +1 -0
- package/dist/types/orm/typeorm/decorators.d.ts +40 -0
- package/dist/types/orm/typeorm/decorators.d.ts.map +1 -0
- package/dist/types/orm/typeorm/index.d.ts +6 -0
- package/dist/types/orm/typeorm/index.d.ts.map +1 -0
- package/dist/types/orm/typeorm/plugin.d.ts +100 -0
- package/dist/types/orm/typeorm/plugin.d.ts.map +1 -0
- package/dist/types/orm/typeorm/repository.d.ts +58 -0
- package/dist/types/orm/typeorm/repository.d.ts.map +1 -0
- package/dist/types/orm/typeorm/transaction-manager.d.ts +48 -0
- package/dist/types/orm/typeorm/transaction-manager.d.ts.map +1 -0
- package/dist/types/orm/typeorm/types.d.ts +139 -0
- package/dist/types/orm/typeorm/types.d.ts.map +1 -0
- package/dist/types/plugins/health.d.ts +75 -0
- package/dist/types/plugins/health.d.ts.map +1 -0
- package/dist/types/plugins/index.d.ts +2 -0
- package/dist/types/plugins/index.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +15 -2
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/websocket/index.d.ts +1 -1
- package/dist/types/websocket/index.d.ts.map +1 -1
- package/package.json +22 -2
- package/dist/esm/chunk-2100y16g.js +0 -5
- package/dist/esm/chunk-2100y16g.js.map +0 -10
- package/dist/esm/chunk-5q75d71c.js +0 -4
- package/dist/esm/chunk-5q75d71c.js.map +0 -16
- package/dist/esm/chunk-8dpc6an2.js +0 -7
- package/dist/esm/chunk-8dpc6an2.js.map +0 -10
- package/dist/esm/chunk-9v7atckx.js +0 -5
- package/dist/esm/chunk-9v7atckx.js.map +0 -10
- package/dist/esm/chunk-bvstdn0t.js +0 -60
- package/dist/esm/chunk-bvstdn0t.js.map +0 -10
- package/dist/esm/chunk-ctwpr5gr.js +0 -430
- package/dist/esm/chunk-ctwpr5gr.js.map +0 -10
- package/dist/esm/chunk-dtw2tbsd.js +0 -5
- package/dist/esm/chunk-dtw2tbsd.js.map +0 -12
- package/dist/esm/chunk-ef0vfd27.js +0 -72
- package/dist/esm/chunk-ef0vfd27.js.map +0 -13
- package/dist/esm/chunk-k66rn4fj.js +0 -18
- package/dist/esm/chunk-k66rn4fj.js.map +0 -10
- package/dist/esm/chunk-mky5qqg0.js +0 -5
- package/dist/esm/chunk-mky5qqg0.js.map +0 -10
- package/dist/esm/chunk-mznkhz9c.js +0 -5
- package/dist/esm/chunk-mznkhz9c.js.map +0 -12
- package/dist/esm/chunk-s5z0wb7e.js +0 -5
- package/dist/esm/chunk-s5z0wb7e.js.map +0 -10
- package/dist/esm/chunk-vh4sxcpe.js +0 -6
- package/dist/esm/chunk-vh4sxcpe.js.map +0 -10
- package/dist/esm/chunk-xa333k40.js +0 -7
- package/dist/esm/chunk-xa333k40.js.map +0 -10
- package/dist/esm/chunk-y262e56g.js +0 -5
- package/dist/esm/chunk-y262e56g.js.map +0 -9
- package/dist/esm/chunk-yq3gf9ts.js +0 -5
- package/dist/esm/chunk-yq3gf9ts.js.map +0 -10
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { BaseTransactionManager, TransactionContext, TransactionMetadata } from '../transaction-manager';
|
|
2
|
+
import { DrizzleDatabase } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Drizzle-specific transaction manager
|
|
5
|
+
*/
|
|
6
|
+
export declare class DrizzleTransactionManager extends BaseTransactionManager {
|
|
7
|
+
private database;
|
|
8
|
+
private drizzleTransactions;
|
|
9
|
+
constructor(database: DrizzleDatabase);
|
|
10
|
+
begin(options?: TransactionMetadata): Promise<TransactionContext>;
|
|
11
|
+
commit(context: TransactionContext): Promise<void>;
|
|
12
|
+
rollback(context: TransactionContext): Promise<void>;
|
|
13
|
+
savepoint(context: TransactionContext, name: string): Promise<void>;
|
|
14
|
+
rollbackToSavepoint(context: TransactionContext, name: string): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Execute a function within a Drizzle transaction
|
|
17
|
+
*/
|
|
18
|
+
executeInTransaction<T>(callback: (db: DrizzleDatabase) => Promise<T>, options?: TransactionMetadata): Promise<T>;
|
|
19
|
+
/**
|
|
20
|
+
* Enhanced transaction handler that integrates with Drizzle's transaction system
|
|
21
|
+
*/
|
|
22
|
+
handleTransactional<T>(target: any, propertyKey: string, args: any[], originalMethod: Function, context?: any): Promise<T>;
|
|
23
|
+
/**
|
|
24
|
+
* Inject transaction database into repositories
|
|
25
|
+
*/
|
|
26
|
+
private injectTransactionDatabase;
|
|
27
|
+
/**
|
|
28
|
+
* Create a repository with transaction support
|
|
29
|
+
*/
|
|
30
|
+
createTransactionalRepository<T>(repositoryClass: new (...args: any[]) => T, options: any): T;
|
|
31
|
+
/**
|
|
32
|
+
* Execute multiple operations in a single transaction
|
|
33
|
+
*/
|
|
34
|
+
batch<T extends readonly unknown[]>(operations: readonly [...{
|
|
35
|
+
[K in keyof T]: () => Promise<T[K]>;
|
|
36
|
+
}]): Promise<T>;
|
|
37
|
+
/**
|
|
38
|
+
* Execute operations with retry logic
|
|
39
|
+
*/
|
|
40
|
+
executeWithRetry<T>(operation: (db: DrizzleDatabase) => Promise<T>, options?: {
|
|
41
|
+
maxRetries?: number;
|
|
42
|
+
retryDelay?: number;
|
|
43
|
+
retryCondition?: (error: any) => boolean;
|
|
44
|
+
}): Promise<T>;
|
|
45
|
+
/**
|
|
46
|
+
* Get the database instance
|
|
47
|
+
*/
|
|
48
|
+
getDatabase(): DrizzleDatabase;
|
|
49
|
+
/**
|
|
50
|
+
* Check if currently in a transaction
|
|
51
|
+
*/
|
|
52
|
+
isInTransaction(): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Get active transaction count
|
|
55
|
+
*/
|
|
56
|
+
getActiveTransactionCount(): number;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=transaction-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction-manager.d.ts","sourceRoot":"","sources":["../../../../src/orm/drizzle/transaction-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACzG,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,sBAAsB;IACnE,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,mBAAmB,CAA0B;gBAEzC,QAAQ,EAAE,eAAe;IAK/B,KAAK,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAajE,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlD,QAAQ,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpD,SAAS,CAAC,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnE,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBnF;;OAEG;IACG,oBAAoB,CAAC,CAAC,EAC1B,QAAQ,EAAE,CAAC,EAAE,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,EAC7C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,CAAC,CAAC;IAMb;;OAEG;IACG,mBAAmB,CAAC,CAAC,EACzB,MAAM,EAAE,GAAG,EACX,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,GAAG,EAAE,EACX,cAAc,EAAE,QAAQ,EACxB,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,CAAC,CAAC;IA8Cb;;OAEG;YACW,yBAAyB;IAoCvC;;OAEG;IACH,6BAA6B,CAAC,CAAC,EAC7B,eAAe,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAC1C,OAAO,EAAE,GAAG,GACX,CAAC;IAuBJ;;OAEG;IACG,KAAK,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,EACtC,UAAU,EAAE,SAAS,CAAC,GAAG;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC,GAChE,OAAO,CAAC,CAAC,CAAC;IAab;;OAEG;IACG,gBAAgB,CAAC,CAAC,EACtB,SAAS,EAAE,CAAC,EAAE,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,EAC9C,OAAO,GAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC;KACrC,GACL,OAAO,CAAC,CAAC,CAAC;IA2Bb;;OAEG;IACH,WAAW,IAAI,eAAe;IAI9B;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,yBAAyB,IAAI,MAAM;CAGpC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export interface DrizzleConfig {
|
|
3
|
+
logger?: boolean;
|
|
4
|
+
schema?: Record<string, any>;
|
|
5
|
+
mode?: 'default' | 'planetscale';
|
|
6
|
+
}
|
|
7
|
+
export interface DrizzleTableMetadata {
|
|
8
|
+
name: string;
|
|
9
|
+
schema?: string;
|
|
10
|
+
columns: DrizzleColumnMetadata[];
|
|
11
|
+
relations: DrizzleRelationMetadata[];
|
|
12
|
+
zodSchema?: z.ZodSchema;
|
|
13
|
+
}
|
|
14
|
+
export interface DrizzleColumnMetadata {
|
|
15
|
+
name: string;
|
|
16
|
+
dataType: string;
|
|
17
|
+
isPrimaryKey: boolean;
|
|
18
|
+
isNotNull: boolean;
|
|
19
|
+
hasDefault: boolean;
|
|
20
|
+
isUnique: boolean;
|
|
21
|
+
isAutoIncrement: boolean;
|
|
22
|
+
enumValues?: string[];
|
|
23
|
+
}
|
|
24
|
+
export interface DrizzleRelationMetadata {
|
|
25
|
+
name: string;
|
|
26
|
+
type: 'one' | 'many';
|
|
27
|
+
referencedTable: string;
|
|
28
|
+
referencedColumn?: string;
|
|
29
|
+
relationName?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface DrizzleDatabase {
|
|
32
|
+
select(fields?: any): DrizzleSelectBuilder;
|
|
33
|
+
insert(table: any): DrizzleInsertBuilder;
|
|
34
|
+
update(table: any): DrizzleUpdateBuilder;
|
|
35
|
+
delete(table: any): DrizzleDeleteBuilder;
|
|
36
|
+
transaction<T>(callback: (tx: DrizzleDatabase) => Promise<T>): Promise<T>;
|
|
37
|
+
execute(query: any): Promise<any>;
|
|
38
|
+
$with(alias: string): any;
|
|
39
|
+
}
|
|
40
|
+
export interface DrizzleSelectBuilder {
|
|
41
|
+
from(table: any): DrizzleSelectBuilder;
|
|
42
|
+
where(condition: any): DrizzleSelectBuilder;
|
|
43
|
+
orderBy(...columns: any[]): DrizzleSelectBuilder;
|
|
44
|
+
groupBy(...columns: any[]): DrizzleSelectBuilder;
|
|
45
|
+
having(condition: any): DrizzleSelectBuilder;
|
|
46
|
+
limit(count: number): DrizzleSelectBuilder;
|
|
47
|
+
offset(count: number): DrizzleSelectBuilder;
|
|
48
|
+
leftJoin(table: any, condition: any): DrizzleSelectBuilder;
|
|
49
|
+
rightJoin(table: any, condition: any): DrizzleSelectBuilder;
|
|
50
|
+
innerJoin(table: any, condition: any): DrizzleSelectBuilder;
|
|
51
|
+
fullJoin(table: any, condition: any): DrizzleSelectBuilder;
|
|
52
|
+
execute(): Promise<any[]>;
|
|
53
|
+
then(onfulfilled?: any, onrejected?: any): Promise<any[]>;
|
|
54
|
+
}
|
|
55
|
+
export interface DrizzleInsertBuilder {
|
|
56
|
+
values(values: any | any[]): DrizzleInsertBuilder;
|
|
57
|
+
onConflictDoNothing(): DrizzleInsertBuilder;
|
|
58
|
+
onConflictDoUpdate(config: any): DrizzleInsertBuilder;
|
|
59
|
+
returning(fields?: any): DrizzleInsertBuilder;
|
|
60
|
+
execute(): Promise<any>;
|
|
61
|
+
then(onfulfilled?: any, onrejected?: any): Promise<any>;
|
|
62
|
+
}
|
|
63
|
+
export interface DrizzleUpdateBuilder {
|
|
64
|
+
set(values: any): DrizzleUpdateBuilder;
|
|
65
|
+
where(condition: any): DrizzleUpdateBuilder;
|
|
66
|
+
returning(fields?: any): DrizzleUpdateBuilder;
|
|
67
|
+
execute(): Promise<any>;
|
|
68
|
+
then(onfulfilled?: any, onrejected?: any): Promise<any>;
|
|
69
|
+
}
|
|
70
|
+
export interface DrizzleDeleteBuilder {
|
|
71
|
+
where(condition: any): DrizzleDeleteBuilder;
|
|
72
|
+
returning(fields?: any): DrizzleDeleteBuilder;
|
|
73
|
+
execute(): Promise<any>;
|
|
74
|
+
then(onfulfilled?: any, onrejected?: any): Promise<any>;
|
|
75
|
+
}
|
|
76
|
+
export interface DrizzleTable {
|
|
77
|
+
_: {
|
|
78
|
+
name: string;
|
|
79
|
+
schema?: string;
|
|
80
|
+
columns: Record<string, DrizzleColumn>;
|
|
81
|
+
primaryKey?: any;
|
|
82
|
+
foreignKeys?: any[];
|
|
83
|
+
indexes?: any[];
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
export interface DrizzleColumn {
|
|
87
|
+
_: {
|
|
88
|
+
name: string;
|
|
89
|
+
dataType: string;
|
|
90
|
+
columnType: string;
|
|
91
|
+
notNull: boolean;
|
|
92
|
+
hasDefault: boolean;
|
|
93
|
+
isPrimaryKey: boolean;
|
|
94
|
+
isUnique: boolean;
|
|
95
|
+
enumValues?: string[];
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
export interface DrizzleRepositoryOptions<T> {
|
|
99
|
+
table: DrizzleTable;
|
|
100
|
+
database: DrizzleDatabase;
|
|
101
|
+
zodSchema?: z.ZodSchema<T>;
|
|
102
|
+
}
|
|
103
|
+
export interface DrizzleOperators {
|
|
104
|
+
eq: (column: any, value: any) => any;
|
|
105
|
+
ne: (column: any, value: any) => any;
|
|
106
|
+
gt: (column: any, value: any) => any;
|
|
107
|
+
gte: (column: any, value: any) => any;
|
|
108
|
+
lt: (column: any, value: any) => any;
|
|
109
|
+
lte: (column: any, value: any) => any;
|
|
110
|
+
like: (column: any, value: string) => any;
|
|
111
|
+
ilike: (column: any, value: string) => any;
|
|
112
|
+
inArray: (column: any, values: any[]) => any;
|
|
113
|
+
notInArray: (column: any, values: any[]) => any;
|
|
114
|
+
isNull: (column: any) => any;
|
|
115
|
+
isNotNull: (column: any) => any;
|
|
116
|
+
between: (column: any, min: any, max: any) => any;
|
|
117
|
+
and: (...conditions: any[]) => any;
|
|
118
|
+
or: (...conditions: any[]) => any;
|
|
119
|
+
not: (condition: any) => any;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/orm/drizzle/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,SAAS,EAAE,uBAAuB,EAAE,CAAC;IACrC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,oBAAoB,CAAC;IAC3C,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,oBAAoB,CAAC;IACzC,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,oBAAoB,CAAC;IACzC,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,oBAAoB,CAAC;IACzC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,oBAAoB,CAAC;IACvC,KAAK,CAAC,SAAS,EAAE,GAAG,GAAG,oBAAoB,CAAC;IAC5C,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,GAAG,oBAAoB,CAAC;IACjD,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,GAAG,oBAAoB,CAAC;IACjD,MAAM,CAAC,SAAS,EAAE,GAAG,GAAG,oBAAoB,CAAC;IAC7C,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAAC;IAC3C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,oBAAoB,CAAC;IAC3D,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,oBAAoB,CAAC;IAC5D,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,oBAAoB,CAAC;IAC5D,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,oBAAoB,CAAC;IAC3D,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,oBAAoB,CAAC;IAClD,mBAAmB,IAAI,oBAAoB,CAAC;IAC5C,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,oBAAoB,CAAC;IACtD,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,oBAAoB,CAAC;IAC9C,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,oBAAoB,CAAC;IACvC,KAAK,CAAC,SAAS,EAAE,GAAG,GAAG,oBAAoB,CAAC;IAC5C,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,oBAAoB,CAAC;IAC9C,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,SAAS,EAAE,GAAG,GAAG,oBAAoB,CAAC;IAC5C,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,oBAAoB,CAAC;IAC9C,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACzD;AAGD,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACvC,UAAU,CAAC,EAAE,GAAG,CAAC;QACjB,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC;QACpB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,EAAE,OAAO,CAAC;QACtB,QAAQ,EAAE,OAAO,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;CACH;AAGD,MAAM,WAAW,wBAAwB,CAAC,CAAC;IACzC,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAC5B;AAGD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IACrC,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IACrC,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IACrC,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IACtC,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IACrC,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IACtC,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC;IAC1C,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC;IAC3C,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IAC7C,UAAU,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IAChD,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;IAC7B,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;IAChC,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;IAClD,GAAG,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IACnC,EAAE,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IAClC,GAAG,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAAG,CAAC;CAC9B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export * from './base-repository';
|
|
2
|
+
export * from './repository-factory';
|
|
3
|
+
export * from './query-builder';
|
|
4
|
+
export * from './pagination';
|
|
5
|
+
export type { TransactionContext, ITransactionManager } from './transaction-manager';
|
|
6
|
+
export { BaseTransactionManager, InMemoryTransactionManager, getGlobalTransactionManager, setGlobalTransactionManager } from './transaction-manager';
|
|
7
|
+
export type { TransactionMetadata, RepositoryMetadata } from './decorators';
|
|
8
|
+
export { Repository, Transactional, Entity, Column } from './decorators';
|
|
9
|
+
export * from './transaction-interceptor';
|
|
10
|
+
export * from './transaction-propagation';
|
|
11
|
+
export * from './transaction-events';
|
|
12
|
+
export * from './transaction-plugin';
|
|
13
|
+
export * from './prisma';
|
|
14
|
+
export * from './typeorm';
|
|
15
|
+
export * from './drizzle';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/orm/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAG7B,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,UAAU,EACV,aAAa,EACb,MAAM,EACN,MAAM,EACP,MAAM,cAAc,CAAC;AAEtB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { PaginationOptions, PaginatedResult, FindOptions } from './base-repository';
|
|
2
|
+
export interface CursorPaginationOptions {
|
|
3
|
+
cursor?: string;
|
|
4
|
+
limit: number;
|
|
5
|
+
direction?: 'forward' | 'backward';
|
|
6
|
+
}
|
|
7
|
+
export interface CursorPaginatedResult<T> {
|
|
8
|
+
data: T[];
|
|
9
|
+
nextCursor?: string;
|
|
10
|
+
prevCursor?: string;
|
|
11
|
+
hasNext: boolean;
|
|
12
|
+
hasPrev: boolean;
|
|
13
|
+
limit: number;
|
|
14
|
+
}
|
|
15
|
+
export interface OffsetPaginationOptions extends PaginationOptions {
|
|
16
|
+
page: number;
|
|
17
|
+
limit: number;
|
|
18
|
+
}
|
|
19
|
+
export interface PaginationMeta {
|
|
20
|
+
total: number;
|
|
21
|
+
page: number;
|
|
22
|
+
limit: number;
|
|
23
|
+
totalPages: number;
|
|
24
|
+
hasNext: boolean;
|
|
25
|
+
hasPrev: boolean;
|
|
26
|
+
firstPage: number;
|
|
27
|
+
lastPage: number;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Pagination utility class
|
|
31
|
+
*/
|
|
32
|
+
export declare class PaginationHelper {
|
|
33
|
+
/**
|
|
34
|
+
* Calculate pagination metadata
|
|
35
|
+
*/
|
|
36
|
+
static calculateMeta(total: number, page: number, limit: number): PaginationMeta;
|
|
37
|
+
/**
|
|
38
|
+
* Calculate offset from page and limit
|
|
39
|
+
*/
|
|
40
|
+
static calculateOffset(page: number, limit: number): number;
|
|
41
|
+
/**
|
|
42
|
+
* Calculate page from offset and limit
|
|
43
|
+
*/
|
|
44
|
+
static calculatePage(offset: number, limit: number): number;
|
|
45
|
+
/**
|
|
46
|
+
* Validate pagination parameters
|
|
47
|
+
*/
|
|
48
|
+
static validatePagination(page: number, limit: number): void;
|
|
49
|
+
/**
|
|
50
|
+
* Create paginated result
|
|
51
|
+
*/
|
|
52
|
+
static createPaginatedResult<T>(data: T[], total: number, page: number, limit: number): PaginatedResult<T>;
|
|
53
|
+
/**
|
|
54
|
+
* Extract pagination options from query parameters
|
|
55
|
+
*/
|
|
56
|
+
static extractPaginationFromQuery(query: any): OffsetPaginationOptions;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Cursor-based pagination helper
|
|
60
|
+
*/
|
|
61
|
+
export declare class CursorPaginationHelper {
|
|
62
|
+
/**
|
|
63
|
+
* Encode cursor from object
|
|
64
|
+
*/
|
|
65
|
+
static encodeCursor(data: any): string;
|
|
66
|
+
/**
|
|
67
|
+
* Decode cursor to object
|
|
68
|
+
*/
|
|
69
|
+
static decodeCursor(cursor: string): any;
|
|
70
|
+
/**
|
|
71
|
+
* Create cursor from entity
|
|
72
|
+
*/
|
|
73
|
+
static createCursor(entity: any, cursorField?: string): string;
|
|
74
|
+
/**
|
|
75
|
+
* Extract cursor value
|
|
76
|
+
*/
|
|
77
|
+
static extractCursorValue(cursor: string, cursorField?: string): any;
|
|
78
|
+
/**
|
|
79
|
+
* Create cursor paginated result
|
|
80
|
+
*/
|
|
81
|
+
static createCursorPaginatedResult<T>(data: T[], limit: number, cursorField?: string): CursorPaginatedResult<T>;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Advanced pagination builder
|
|
85
|
+
*/
|
|
86
|
+
export declare class PaginationBuilder<T> {
|
|
87
|
+
private baseQuery;
|
|
88
|
+
private options;
|
|
89
|
+
constructor(baseQuery?: FindOptions);
|
|
90
|
+
/**
|
|
91
|
+
* Set offset-based pagination
|
|
92
|
+
*/
|
|
93
|
+
offset(page: number, limit: number): this;
|
|
94
|
+
/**
|
|
95
|
+
* Set cursor-based pagination
|
|
96
|
+
*/
|
|
97
|
+
cursor(cursor: string, limit: number, cursorField?: string): this;
|
|
98
|
+
/**
|
|
99
|
+
* Set sorting
|
|
100
|
+
*/
|
|
101
|
+
orderBy(field: keyof T, direction?: 'asc' | 'desc'): this;
|
|
102
|
+
/**
|
|
103
|
+
* Add multiple sorting
|
|
104
|
+
*/
|
|
105
|
+
orderByMultiple(sorts: Array<{
|
|
106
|
+
field: keyof T;
|
|
107
|
+
direction: 'asc' | 'desc';
|
|
108
|
+
}>): this;
|
|
109
|
+
/**
|
|
110
|
+
* Add where conditions
|
|
111
|
+
*/
|
|
112
|
+
where(conditions: Partial<T>): this;
|
|
113
|
+
/**
|
|
114
|
+
* Add select fields
|
|
115
|
+
*/
|
|
116
|
+
select(fields: (keyof T)[]): this;
|
|
117
|
+
/**
|
|
118
|
+
* Add include relations
|
|
119
|
+
*/
|
|
120
|
+
include(relations: string[]): this;
|
|
121
|
+
/**
|
|
122
|
+
* Build the final query options
|
|
123
|
+
*/
|
|
124
|
+
build(): FindOptions;
|
|
125
|
+
/**
|
|
126
|
+
* Reset the builder
|
|
127
|
+
*/
|
|
128
|
+
reset(): this;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Pagination decorator for automatic pagination handling
|
|
132
|
+
*/
|
|
133
|
+
export declare function Paginated(defaultLimit?: number, maxLimit?: number): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
134
|
+
/**
|
|
135
|
+
* Pagination response transformer
|
|
136
|
+
*/
|
|
137
|
+
export declare class PaginationTransformer {
|
|
138
|
+
/**
|
|
139
|
+
* Transform paginated result to API response format
|
|
140
|
+
*/
|
|
141
|
+
static toApiResponse<T>(result: PaginatedResult<T>, baseUrl?: string): any;
|
|
142
|
+
/**
|
|
143
|
+
* Transform cursor paginated result to API response format
|
|
144
|
+
*/
|
|
145
|
+
static toCursorApiResponse<T>(result: CursorPaginatedResult<T>, baseUrl?: string): any;
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../src/orm/pagination.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { PrismaPlugin, createPrismaPlugin } from './plugin';
|
|
2
|
+
export { PrismaRepository } from './repository';
|
|
3
|
+
export { PrismaTransactionManager } from './transaction-manager';
|
|
4
|
+
export { PrismaZodSchemaGenerator } from './schema-generator';
|
|
5
|
+
export * from './types';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/orm/prisma/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Plugin } from '../../core/plugin';
|
|
2
|
+
import { VeloceTS } from '../../core/application';
|
|
3
|
+
import { PrismaConfig, PrismaClientLike, PrismaModelMetadata } from './types';
|
|
4
|
+
import { PrismaRepository as PrismaRepositoryClass } from './repository';
|
|
5
|
+
import { PrismaTransactionManager } from './transaction-manager';
|
|
6
|
+
/**
|
|
7
|
+
* Prisma integration plugin for FastAPI-TS
|
|
8
|
+
*/
|
|
9
|
+
export declare class PrismaPlugin implements Plugin {
|
|
10
|
+
name: string;
|
|
11
|
+
version: string;
|
|
12
|
+
private client;
|
|
13
|
+
private config;
|
|
14
|
+
private schemaGenerator;
|
|
15
|
+
private transactionManager;
|
|
16
|
+
private models;
|
|
17
|
+
constructor(client: PrismaClientLike, config?: PrismaConfig);
|
|
18
|
+
install(app: VeloceTS): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Parse Prisma schema and generate Zod schemas
|
|
21
|
+
*/
|
|
22
|
+
private parseAndGenerateSchemas;
|
|
23
|
+
/**
|
|
24
|
+
* Generate TypeScript file with Zod schemas
|
|
25
|
+
*/
|
|
26
|
+
private generateZodSchemaFile;
|
|
27
|
+
/**
|
|
28
|
+
* Convert Zod schema to string representation (simplified)
|
|
29
|
+
*/
|
|
30
|
+
private zodSchemaToString;
|
|
31
|
+
/**
|
|
32
|
+
* Register repository factory in DI container
|
|
33
|
+
*/
|
|
34
|
+
private registerRepositoryFactory;
|
|
35
|
+
/**
|
|
36
|
+
* Register shutdown hook to disconnect from database
|
|
37
|
+
*/
|
|
38
|
+
private registerShutdownHook;
|
|
39
|
+
/**
|
|
40
|
+
* Get model metadata
|
|
41
|
+
*/
|
|
42
|
+
getModel(name: string): PrismaModelMetadata | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Get all models
|
|
45
|
+
*/
|
|
46
|
+
getModels(): Map<string, PrismaModelMetadata>;
|
|
47
|
+
/**
|
|
48
|
+
* Create a repository for a specific model
|
|
49
|
+
*/
|
|
50
|
+
createRepository<T>(modelName: string, zodSchema?: any): PrismaRepositoryClass<T>;
|
|
51
|
+
/**
|
|
52
|
+
* Get the Prisma client
|
|
53
|
+
*/
|
|
54
|
+
getClient(): PrismaClientLike;
|
|
55
|
+
/**
|
|
56
|
+
* Get the transaction manager
|
|
57
|
+
*/
|
|
58
|
+
getTransactionManager(): PrismaTransactionManager;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Helper function to create Prisma plugin
|
|
62
|
+
*/
|
|
63
|
+
export declare function createPrismaPlugin(client: PrismaClientLike, config?: PrismaConfig): PrismaPlugin;
|
|
64
|
+
/**
|
|
65
|
+
* Decorator to automatically inject Prisma repository
|
|
66
|
+
*/
|
|
67
|
+
export declare function PrismaRepository(modelName: string, zodSchema?: any): PropertyDecorator;
|
|
68
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/orm/prisma/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9E,OAAO,EAAE,gBAAgB,IAAI,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAMjE;;GAEG;AACH,qBAAa,YAAa,YAAW,MAAM;IACzC,IAAI,SAAY;IAChB,OAAO,SAAW;IAElB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,kBAAkB,CAA2B;IACrD,OAAO,CAAC,MAAM,CAA+C;gBAEjD,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,YAAY;IAYrD,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB3C;;OAEG;YACW,uBAAuB;IA8BrC;;OAEG;YACW,qBAAqB;IA8BnC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAkCjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAe5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAIvD;;OAEG;IACH,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC;IAI7C;;OAEG;IACH,gBAAgB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAcjF;;OAEG;IACH,SAAS,IAAI,gBAAgB;IAI7B;;OAEG;IACH,qBAAqB,IAAI,wBAAwB;CAGlD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,CAEhG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,GAAG,iBAAiB,CAWtF"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { BaseRepository, FindOptions, FilterOptions, SortOptions, PaginationOptions, PaginatedResult } from '../base-repository';
|
|
2
|
+
import { PrismaRepositoryOptions, PrismaDelegate, PrismaClientLike } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Prisma-specific repository implementation
|
|
5
|
+
*/
|
|
6
|
+
export declare class PrismaRepository<T, ID = string | number> extends BaseRepository<T, ID> {
|
|
7
|
+
protected client: PrismaClientLike;
|
|
8
|
+
protected delegate: PrismaDelegate;
|
|
9
|
+
protected modelName: string;
|
|
10
|
+
constructor(options: PrismaRepositoryOptions);
|
|
11
|
+
create(data: Partial<T>): Promise<T>;
|
|
12
|
+
findById(id: ID): Promise<T | null>;
|
|
13
|
+
findOne(options: FindOptions): Promise<T | null>;
|
|
14
|
+
findMany(options?: FindOptions): Promise<T[]>;
|
|
15
|
+
update(id: ID, data: Partial<T>): Promise<T>;
|
|
16
|
+
delete(id: ID): Promise<boolean>;
|
|
17
|
+
createMany(data: Partial<T>[]): Promise<T[]>;
|
|
18
|
+
updateMany(where: FilterOptions, data: Partial<T>): Promise<number>;
|
|
19
|
+
deleteMany(where: FilterOptions): Promise<number>;
|
|
20
|
+
count(where?: FilterOptions): Promise<number>;
|
|
21
|
+
exists(where: FilterOptions): Promise<boolean>;
|
|
22
|
+
findPaginated(options: FindOptions & {
|
|
23
|
+
pagination: Required<PaginationOptions>;
|
|
24
|
+
}): Promise<PaginatedResult<T>>;
|
|
25
|
+
withTransaction<R>(callback: (repo: this) => Promise<R>): Promise<R>;
|
|
26
|
+
private buildPrismaFindOptions;
|
|
27
|
+
protected buildWhereClause(where: FilterOptions): any;
|
|
28
|
+
protected buildOrderByClause(orderBy: SortOptions | SortOptions[]): any;
|
|
29
|
+
protected buildPaginationClause(pagination: PaginationOptions): any;
|
|
30
|
+
aggregate(options: {
|
|
31
|
+
where?: FilterOptions;
|
|
32
|
+
_count?: boolean | {
|
|
33
|
+
[key: string]: boolean;
|
|
34
|
+
};
|
|
35
|
+
_avg?: {
|
|
36
|
+
[key: string]: boolean;
|
|
37
|
+
};
|
|
38
|
+
_sum?: {
|
|
39
|
+
[key: string]: boolean;
|
|
40
|
+
};
|
|
41
|
+
_min?: {
|
|
42
|
+
[key: string]: boolean;
|
|
43
|
+
};
|
|
44
|
+
_max?: {
|
|
45
|
+
[key: string]: boolean;
|
|
46
|
+
};
|
|
47
|
+
}): Promise<any>;
|
|
48
|
+
groupBy(options: {
|
|
49
|
+
by: string[];
|
|
50
|
+
where?: FilterOptions;
|
|
51
|
+
having?: FilterOptions;
|
|
52
|
+
orderBy?: SortOptions | SortOptions[];
|
|
53
|
+
_count?: boolean | {
|
|
54
|
+
[key: string]: boolean;
|
|
55
|
+
};
|
|
56
|
+
_avg?: {
|
|
57
|
+
[key: string]: boolean;
|
|
58
|
+
};
|
|
59
|
+
_sum?: {
|
|
60
|
+
[key: string]: boolean;
|
|
61
|
+
};
|
|
62
|
+
_min?: {
|
|
63
|
+
[key: string]: boolean;
|
|
64
|
+
};
|
|
65
|
+
_max?: {
|
|
66
|
+
[key: string]: boolean;
|
|
67
|
+
};
|
|
68
|
+
}): Promise<any[]>;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../../src/orm/prisma/repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { PrismaModelMetadata } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Generates Zod schemas from Prisma schema metadata
|
|
5
|
+
*/
|
|
6
|
+
export declare class PrismaZodSchemaGenerator {
|
|
7
|
+
private modelSchemas;
|
|
8
|
+
/**
|
|
9
|
+
* Generate Zod schema for a Prisma model
|
|
10
|
+
*/
|
|
11
|
+
generateModelSchema(model: PrismaModelMetadata): z.ZodSchema;
|
|
12
|
+
/**
|
|
13
|
+
* Generate Zod schema for a Prisma field
|
|
14
|
+
*/
|
|
15
|
+
private generateFieldSchema;
|
|
16
|
+
/**
|
|
17
|
+
* Get base Zod schema for Prisma field type
|
|
18
|
+
*/
|
|
19
|
+
private getBaseSchema;
|
|
20
|
+
/**
|
|
21
|
+
* Generate create schema (without auto-generated fields)
|
|
22
|
+
*/
|
|
23
|
+
generateCreateSchema(model: PrismaModelMetadata): z.ZodSchema;
|
|
24
|
+
/**
|
|
25
|
+
* Generate update schema (all fields optional)
|
|
26
|
+
*/
|
|
27
|
+
generateUpdateSchema(model: PrismaModelMetadata): z.ZodSchema;
|
|
28
|
+
/**
|
|
29
|
+
* Parse Prisma schema file and extract model metadata
|
|
30
|
+
*/
|
|
31
|
+
static parsePrismaSchema(schemaContent: string): PrismaModelMetadata[];
|
|
32
|
+
/**
|
|
33
|
+
* Parse a Prisma field definition
|
|
34
|
+
*/
|
|
35
|
+
private static parseField;
|
|
36
|
+
/**
|
|
37
|
+
* Generate all schemas for a model (base, create, update)
|
|
38
|
+
*/
|
|
39
|
+
generateAllSchemas(model: PrismaModelMetadata): {
|
|
40
|
+
base: z.ZodType<any, z.ZodTypeDef, any>;
|
|
41
|
+
create: z.ZodType<any, z.ZodTypeDef, any>;
|
|
42
|
+
update: z.ZodType<any, z.ZodTypeDef, any>;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=schema-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-generator.d.ts","sourceRoot":"","sources":["../../../../src/orm/prisma/schema-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAuB,MAAM,SAAS,CAAC;AAEnE;;GAEG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,YAAY,CAAkC;IAEtD;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,CAAC,CAAC,SAAS;IAiB5D;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;OAEG;IACH,OAAO,CAAC,aAAa;IA4BrB;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,CAAC,CAAC,SAAS;IAmB7D;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,CAAC,CAAC,SAAS;IA2B7D;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,mBAAmB,EAAE;IA0CtE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IA8BzB;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,mBAAmB;;;;;CAO9C"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { BaseTransactionManager, TransactionContext, TransactionMetadata } from '../transaction-manager';
|
|
2
|
+
import { PrismaClientLike } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Prisma-specific transaction manager
|
|
5
|
+
*/
|
|
6
|
+
export declare class PrismaTransactionManager extends BaseTransactionManager {
|
|
7
|
+
private client;
|
|
8
|
+
private prismaTransactions;
|
|
9
|
+
constructor(client: PrismaClientLike);
|
|
10
|
+
begin(options?: TransactionMetadata): Promise<TransactionContext>;
|
|
11
|
+
commit(context: TransactionContext): Promise<void>;
|
|
12
|
+
rollback(context: TransactionContext): Promise<void>;
|
|
13
|
+
savepoint(context: TransactionContext, name: string): Promise<void>;
|
|
14
|
+
rollbackToSavepoint(context: TransactionContext, name: string): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Execute a function within a Prisma transaction
|
|
17
|
+
*/
|
|
18
|
+
executeInTransaction<T>(callback: (client: PrismaClientLike) => Promise<T>, options?: TransactionMetadata): Promise<T>;
|
|
19
|
+
/**
|
|
20
|
+
* Enhanced transaction handler that integrates with Prisma's transaction system
|
|
21
|
+
*/
|
|
22
|
+
handleTransactional<T>(target: any, propertyKey: string, args: any[], originalMethod: Function, context?: any): Promise<T>;
|
|
23
|
+
/**
|
|
24
|
+
* Inject transaction client into repositories
|
|
25
|
+
*/
|
|
26
|
+
private injectTransactionClient;
|
|
27
|
+
/**
|
|
28
|
+
* Create a repository with transaction support
|
|
29
|
+
*/
|
|
30
|
+
createTransactionalRepository<T>(repositoryClass: new (...args: any[]) => T, options: any): T;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=transaction-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction-manager.d.ts","sourceRoot":"","sources":["../../../../src/orm/prisma/transaction-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACzG,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,sBAAsB;IAClE,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,kBAAkB,CAA0B;gBAExC,MAAM,EAAE,gBAAgB;IAK9B,KAAK,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAcjE,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlD,QAAQ,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpD,SAAS,CAAC,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnE,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBnF;;OAEG;IACG,oBAAoB,CAAC,CAAC,EAC1B,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,EAClD,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,CAAC,CAAC;IAqBb;;OAEG;IACG,mBAAmB,CAAC,CAAC,EACzB,MAAM,EAAE,GAAG,EACX,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,GAAG,EAAE,EACX,cAAc,EAAE,QAAQ,EACxB,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,CAAC,CAAC;IA8Cb;;OAEG;YACW,uBAAuB;IAkCrC;;OAEG;IACH,6BAA6B,CAAC,CAAC,EAC7B,eAAe,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAC1C,OAAO,EAAE,GAAG,GACX,CAAC;CAuBL"}
|