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,67 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export interface PrismaConfig {
|
|
3
|
+
datasourceUrl?: string;
|
|
4
|
+
log?: ('query' | 'info' | 'warn' | 'error')[];
|
|
5
|
+
errorFormat?: 'pretty' | 'colorless' | 'minimal';
|
|
6
|
+
generateZodSchemas?: boolean;
|
|
7
|
+
schemaPath?: string;
|
|
8
|
+
outputPath?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface PrismaModelMetadata {
|
|
11
|
+
name: string;
|
|
12
|
+
fields: PrismaFieldMetadata[];
|
|
13
|
+
relations: PrismaRelationMetadata[];
|
|
14
|
+
zodSchema?: z.ZodSchema;
|
|
15
|
+
}
|
|
16
|
+
export interface PrismaFieldMetadata {
|
|
17
|
+
name: string;
|
|
18
|
+
type: string;
|
|
19
|
+
isOptional: boolean;
|
|
20
|
+
isList: boolean;
|
|
21
|
+
isId: boolean;
|
|
22
|
+
isUnique: boolean;
|
|
23
|
+
hasDefaultValue: boolean;
|
|
24
|
+
relationName?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface PrismaRelationMetadata {
|
|
27
|
+
name: string;
|
|
28
|
+
type: 'one-to-one' | 'one-to-many' | 'many-to-many';
|
|
29
|
+
model: string;
|
|
30
|
+
fields?: string[];
|
|
31
|
+
references?: string[];
|
|
32
|
+
}
|
|
33
|
+
export interface PrismaClientLike {
|
|
34
|
+
$connect(): Promise<void>;
|
|
35
|
+
$disconnect(): Promise<void>;
|
|
36
|
+
$transaction<T>(fn: (prisma: this) => Promise<T>, options?: {
|
|
37
|
+
maxWait?: number;
|
|
38
|
+
timeout?: number;
|
|
39
|
+
isolationLevel?: 'ReadUncommitted' | 'ReadCommitted' | 'RepeatableRead' | 'Serializable';
|
|
40
|
+
}): Promise<T>;
|
|
41
|
+
$executeRaw(query: TemplateStringsArray, ...values: any[]): Promise<number>;
|
|
42
|
+
$queryRaw<T = unknown>(query: TemplateStringsArray, ...values: any[]): Promise<T>;
|
|
43
|
+
}
|
|
44
|
+
export interface PrismaDelegate {
|
|
45
|
+
create(args: any): Promise<any>;
|
|
46
|
+
findUnique(args: any): Promise<any>;
|
|
47
|
+
findFirst(args: any): Promise<any>;
|
|
48
|
+
findMany(args: any): Promise<any[]>;
|
|
49
|
+
update(args: any): Promise<any>;
|
|
50
|
+
updateMany(args: any): Promise<{
|
|
51
|
+
count: number;
|
|
52
|
+
}>;
|
|
53
|
+
delete(args: any): Promise<any>;
|
|
54
|
+
deleteMany(args: any): Promise<{
|
|
55
|
+
count: number;
|
|
56
|
+
}>;
|
|
57
|
+
count(args?: any): Promise<number>;
|
|
58
|
+
aggregate(args: any): Promise<any>;
|
|
59
|
+
groupBy(args: any): Promise<any[]>;
|
|
60
|
+
}
|
|
61
|
+
export interface PrismaRepositoryOptions {
|
|
62
|
+
model: string;
|
|
63
|
+
client: PrismaClientLike;
|
|
64
|
+
delegate: PrismaDelegate;
|
|
65
|
+
zodSchema?: z.ZodSchema;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/orm/prisma/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { FilterOptions, SortOptions } from './base-repository';
|
|
2
|
+
export interface IQueryBuilder<T> {
|
|
3
|
+
select(fields?: (keyof T)[]): this;
|
|
4
|
+
where(conditions: FilterOptions): this;
|
|
5
|
+
orderBy(sort: SortOptions | SortOptions[]): this;
|
|
6
|
+
limit(count: number): this;
|
|
7
|
+
offset(count: number): this;
|
|
8
|
+
groupBy(fields: (keyof T)[]): this;
|
|
9
|
+
having(conditions: FilterOptions): this;
|
|
10
|
+
join(table: string, condition: string): this;
|
|
11
|
+
leftJoin(table: string, condition: string): this;
|
|
12
|
+
rightJoin(table: string, condition: string): this;
|
|
13
|
+
innerJoin(table: string, condition: string): this;
|
|
14
|
+
execute(): Promise<T[]>;
|
|
15
|
+
first(): Promise<T | null>;
|
|
16
|
+
count(): Promise<number>;
|
|
17
|
+
exists(): Promise<boolean>;
|
|
18
|
+
}
|
|
19
|
+
export interface QueryOperators {
|
|
20
|
+
eq(value: any): FilterCondition;
|
|
21
|
+
ne(value: any): FilterCondition;
|
|
22
|
+
gt(value: any): FilterCondition;
|
|
23
|
+
gte(value: any): FilterCondition;
|
|
24
|
+
lt(value: any): FilterCondition;
|
|
25
|
+
lte(value: any): FilterCondition;
|
|
26
|
+
like(pattern: string): FilterCondition;
|
|
27
|
+
ilike(pattern: string): FilterCondition;
|
|
28
|
+
in(values: any[]): FilterCondition;
|
|
29
|
+
notIn(values: any[]): FilterCondition;
|
|
30
|
+
between(min: any, max: any): FilterCondition;
|
|
31
|
+
isNull(): FilterCondition;
|
|
32
|
+
isNotNull(): FilterCondition;
|
|
33
|
+
and(...conditions: FilterCondition[]): FilterCondition;
|
|
34
|
+
or(...conditions: FilterCondition[]): FilterCondition;
|
|
35
|
+
not(condition: FilterCondition): FilterCondition;
|
|
36
|
+
}
|
|
37
|
+
export interface FilterCondition {
|
|
38
|
+
type: string;
|
|
39
|
+
field?: string;
|
|
40
|
+
value?: any;
|
|
41
|
+
values?: any[];
|
|
42
|
+
min?: any;
|
|
43
|
+
max?: any;
|
|
44
|
+
pattern?: string;
|
|
45
|
+
conditions?: FilterCondition[];
|
|
46
|
+
condition?: FilterCondition;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Generic query builder implementation
|
|
50
|
+
*/
|
|
51
|
+
export declare class QueryBuilder<T> implements IQueryBuilder<T> {
|
|
52
|
+
private executor;
|
|
53
|
+
private operators;
|
|
54
|
+
private selectFields?;
|
|
55
|
+
private whereConditions;
|
|
56
|
+
private orderByClause?;
|
|
57
|
+
private limitCount?;
|
|
58
|
+
private offsetCount?;
|
|
59
|
+
private groupByFields?;
|
|
60
|
+
private havingConditions;
|
|
61
|
+
private joins;
|
|
62
|
+
constructor(executor: QueryExecutor<T>, operators?: QueryOperators);
|
|
63
|
+
select(fields?: (keyof T)[]): this;
|
|
64
|
+
where(conditions: FilterOptions): this;
|
|
65
|
+
orderBy(sort: SortOptions | SortOptions[]): this;
|
|
66
|
+
limit(count: number): this;
|
|
67
|
+
offset(count: number): this;
|
|
68
|
+
groupBy(fields: (keyof T)[]): this;
|
|
69
|
+
having(conditions: FilterOptions): this;
|
|
70
|
+
join(table: string, condition: string): this;
|
|
71
|
+
leftJoin(table: string, condition: string): this;
|
|
72
|
+
rightJoin(table: string, condition: string): this;
|
|
73
|
+
innerJoin(table: string, condition: string): this;
|
|
74
|
+
execute(): Promise<T[]>;
|
|
75
|
+
first(): Promise<T | null>;
|
|
76
|
+
count(): Promise<number>;
|
|
77
|
+
exists(): Promise<boolean>;
|
|
78
|
+
private buildFilterCondition;
|
|
79
|
+
private buildQuery;
|
|
80
|
+
private buildCountQuery;
|
|
81
|
+
}
|
|
82
|
+
export interface QueryDefinition {
|
|
83
|
+
select?: (keyof any)[] | string[];
|
|
84
|
+
where?: FilterCondition;
|
|
85
|
+
orderBy?: SortOptions | SortOptions[];
|
|
86
|
+
limit?: number;
|
|
87
|
+
offset?: number;
|
|
88
|
+
groupBy?: (keyof any)[];
|
|
89
|
+
having?: FilterCondition;
|
|
90
|
+
joins?: JoinClause[];
|
|
91
|
+
}
|
|
92
|
+
export interface JoinClause {
|
|
93
|
+
type: 'JOIN' | 'LEFT JOIN' | 'RIGHT JOIN' | 'INNER JOIN';
|
|
94
|
+
table: string;
|
|
95
|
+
condition: string;
|
|
96
|
+
}
|
|
97
|
+
export interface QueryExecutor<T> {
|
|
98
|
+
execute(query: QueryDefinition): Promise<T[]>;
|
|
99
|
+
count(query: QueryDefinition): Promise<number>;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Default query operators implementation
|
|
103
|
+
*/
|
|
104
|
+
export declare class DefaultQueryOperators implements QueryOperators {
|
|
105
|
+
eq(value: any): FilterCondition;
|
|
106
|
+
ne(value: any): FilterCondition;
|
|
107
|
+
gt(value: any): FilterCondition;
|
|
108
|
+
gte(value: any): FilterCondition;
|
|
109
|
+
lt(value: any): FilterCondition;
|
|
110
|
+
lte(value: any): FilterCondition;
|
|
111
|
+
like(pattern: string): FilterCondition;
|
|
112
|
+
ilike(pattern: string): FilterCondition;
|
|
113
|
+
in(values: any[]): FilterCondition;
|
|
114
|
+
notIn(values: any[]): FilterCondition;
|
|
115
|
+
between(min: any, max: any): FilterCondition;
|
|
116
|
+
isNull(): FilterCondition;
|
|
117
|
+
isNotNull(): FilterCondition;
|
|
118
|
+
and(...conditions: FilterCondition[]): FilterCondition;
|
|
119
|
+
or(...conditions: FilterCondition[]): FilterCondition;
|
|
120
|
+
not(condition: FilterCondition): FilterCondition;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Query builder factory
|
|
124
|
+
*/
|
|
125
|
+
export declare class QueryBuilderFactory {
|
|
126
|
+
static create<T>(executor: QueryExecutor<T>): QueryBuilder<T>;
|
|
127
|
+
static createWithOperators<T>(executor: QueryExecutor<T>, operators: QueryOperators): QueryBuilder<T>;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=query-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../../src/orm/query-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { IBaseRepository } from './base-repository';
|
|
3
|
+
import { PrismaRepository } from './prisma/repository';
|
|
4
|
+
import { TypeORMRepository } from './typeorm/repository';
|
|
5
|
+
import { DrizzleRepository } from './drizzle/repository';
|
|
6
|
+
export interface IRepositoryFactory {
|
|
7
|
+
createRepository<T, ID = string | number>(type: 'prisma' | 'typeorm' | 'drizzle', options: any): IBaseRepository<T, ID>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Universal repository factory for creating ORM-specific repositories
|
|
11
|
+
*/
|
|
12
|
+
export declare class RepositoryFactory implements IRepositoryFactory {
|
|
13
|
+
private static instance;
|
|
14
|
+
private constructor();
|
|
15
|
+
static getInstance(): RepositoryFactory;
|
|
16
|
+
/**
|
|
17
|
+
* Create a repository based on ORM type
|
|
18
|
+
*/
|
|
19
|
+
createRepository<T, ID = string | number>(type: 'prisma' | 'typeorm' | 'drizzle', options: any): IBaseRepository<T, ID>;
|
|
20
|
+
/**
|
|
21
|
+
* Create a Prisma repository
|
|
22
|
+
*/
|
|
23
|
+
createPrismaRepository<T, ID = string | number>(options: {
|
|
24
|
+
client: any;
|
|
25
|
+
delegate: any;
|
|
26
|
+
model: string;
|
|
27
|
+
zodSchema?: z.ZodSchema<T>;
|
|
28
|
+
}): PrismaRepository<T, ID>;
|
|
29
|
+
/**
|
|
30
|
+
* Create a TypeORM repository
|
|
31
|
+
*/
|
|
32
|
+
createTypeORMRepository<T, ID = string | number>(options: {
|
|
33
|
+
dataSource: any;
|
|
34
|
+
repository: any;
|
|
35
|
+
entity: any;
|
|
36
|
+
zodSchema?: z.ZodSchema<T>;
|
|
37
|
+
}): TypeORMRepository<T, ID>;
|
|
38
|
+
/**
|
|
39
|
+
* Create a Drizzle repository
|
|
40
|
+
*/
|
|
41
|
+
createDrizzleRepository<T, ID = string | number>(options: {
|
|
42
|
+
database: any;
|
|
43
|
+
table: any;
|
|
44
|
+
zodSchema?: z.ZodSchema<T>;
|
|
45
|
+
}): DrizzleRepository<T, ID>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Repository registry for managing multiple repositories
|
|
49
|
+
*/
|
|
50
|
+
export declare class RepositoryRegistry {
|
|
51
|
+
private repositories;
|
|
52
|
+
private factory;
|
|
53
|
+
constructor();
|
|
54
|
+
/**
|
|
55
|
+
* Register a repository
|
|
56
|
+
*/
|
|
57
|
+
register<T, ID = string | number>(name: string, repository: IBaseRepository<T, ID>): void;
|
|
58
|
+
/**
|
|
59
|
+
* Get a registered repository
|
|
60
|
+
*/
|
|
61
|
+
get<T, ID = string | number>(name: string): IBaseRepository<T, ID> | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Create and register a repository
|
|
64
|
+
*/
|
|
65
|
+
createAndRegister<T, ID = string | number>(name: string, type: 'prisma' | 'typeorm' | 'drizzle', options: any): IBaseRepository<T, ID>;
|
|
66
|
+
/**
|
|
67
|
+
* Remove a repository
|
|
68
|
+
*/
|
|
69
|
+
remove(name: string): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Get all registered repository names
|
|
72
|
+
*/
|
|
73
|
+
getNames(): string[];
|
|
74
|
+
/**
|
|
75
|
+
* Clear all repositories
|
|
76
|
+
*/
|
|
77
|
+
clear(): void;
|
|
78
|
+
/**
|
|
79
|
+
* Get repository count
|
|
80
|
+
*/
|
|
81
|
+
size(): number;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Generic repository decorator for automatic repository creation
|
|
85
|
+
*/
|
|
86
|
+
export declare function GenericRepository<T>(name: string, type: 'prisma' | 'typeorm' | 'drizzle', options: any): PropertyDecorator;
|
|
87
|
+
/**
|
|
88
|
+
* Repository mixin for adding common repository functionality
|
|
89
|
+
*
|
|
90
|
+
* Note: Members are public because TypeScript doesn't allow exporting
|
|
91
|
+
* anonymous classes with protected/private members (TS4094)
|
|
92
|
+
*/
|
|
93
|
+
export declare function withRepositoryMixin<T extends new (...args: any[]) => {}>(Base: T): {
|
|
94
|
+
new (...args: any[]): {
|
|
95
|
+
repositories: RepositoryRegistry;
|
|
96
|
+
/**
|
|
97
|
+
* Get a repository by name
|
|
98
|
+
*/
|
|
99
|
+
getRepository<R, ID = string | number>(name: string): IBaseRepository<R, ID> | undefined;
|
|
100
|
+
/**
|
|
101
|
+
* Create and register a repository
|
|
102
|
+
*/
|
|
103
|
+
createRepository<R, ID = string | number>(name: string, type: "prisma" | "typeorm" | "drizzle", options: any): IBaseRepository<R, ID>;
|
|
104
|
+
/**
|
|
105
|
+
* Execute operation with multiple repositories in transaction
|
|
106
|
+
*/
|
|
107
|
+
withRepositories<R>(repositoryNames: string[], callback: (repos: Map<string, IBaseRepository<any>>) => Promise<R>): Promise<R>;
|
|
108
|
+
};
|
|
109
|
+
} & T;
|
|
110
|
+
/**
|
|
111
|
+
* Repository service base class
|
|
112
|
+
*/
|
|
113
|
+
export declare abstract class RepositoryService {
|
|
114
|
+
protected repositories: RepositoryRegistry;
|
|
115
|
+
constructor();
|
|
116
|
+
/**
|
|
117
|
+
* Initialize repositories - to be implemented by subclasses
|
|
118
|
+
*/
|
|
119
|
+
protected abstract initializeRepositories(): void;
|
|
120
|
+
/**
|
|
121
|
+
* Get a repository by name
|
|
122
|
+
*/
|
|
123
|
+
protected getRepository<T, ID = string | number>(name: string): IBaseRepository<T, ID>;
|
|
124
|
+
/**
|
|
125
|
+
* Execute operation in transaction across multiple repositories
|
|
126
|
+
*/
|
|
127
|
+
protected executeInTransaction<T>(repositoryNames: string[], callback: (repos: Map<string, IBaseRepository<any>>) => Promise<T>): Promise<T>;
|
|
128
|
+
}
|
|
129
|
+
export declare const globalRepositoryRegistry: RepositoryRegistry;
|
|
130
|
+
//# sourceMappingURL=repository-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository-factory.d.ts","sourceRoot":"","sources":["../../../src/orm/repository-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { TransactionContext } from './transaction-manager';
|
|
2
|
+
export declare enum TransactionEventType {
|
|
3
|
+
BEFORE_BEGIN = "BEFORE_BEGIN",
|
|
4
|
+
AFTER_BEGIN = "AFTER_BEGIN",
|
|
5
|
+
BEFORE_COMMIT = "BEFORE_COMMIT",
|
|
6
|
+
AFTER_COMMIT = "AFTER_COMMIT",
|
|
7
|
+
BEFORE_ROLLBACK = "BEFORE_ROLLBACK",
|
|
8
|
+
AFTER_ROLLBACK = "AFTER_ROLLBACK",
|
|
9
|
+
BEFORE_SAVEPOINT = "BEFORE_SAVEPOINT",
|
|
10
|
+
AFTER_SAVEPOINT = "AFTER_SAVEPOINT",
|
|
11
|
+
BEFORE_ROLLBACK_TO_SAVEPOINT = "BEFORE_ROLLBACK_TO_SAVEPOINT",
|
|
12
|
+
AFTER_ROLLBACK_TO_SAVEPOINT = "AFTER_ROLLBACK_TO_SAVEPOINT"
|
|
13
|
+
}
|
|
14
|
+
export interface TransactionEvent {
|
|
15
|
+
type: TransactionEventType;
|
|
16
|
+
context: TransactionContext;
|
|
17
|
+
timestamp: Date;
|
|
18
|
+
metadata?: any;
|
|
19
|
+
error?: Error;
|
|
20
|
+
}
|
|
21
|
+
export interface TransactionEventListener {
|
|
22
|
+
onTransactionEvent(event: TransactionEvent): Promise<void> | void;
|
|
23
|
+
}
|
|
24
|
+
export interface TransactionBeginListener {
|
|
25
|
+
onBeforeBegin?(context: TransactionContext): Promise<void> | void;
|
|
26
|
+
onAfterBegin?(context: TransactionContext): Promise<void> | void;
|
|
27
|
+
}
|
|
28
|
+
export interface TransactionCommitListener {
|
|
29
|
+
onBeforeCommit?(context: TransactionContext): Promise<void> | void;
|
|
30
|
+
onAfterCommit?(context: TransactionContext): Promise<void> | void;
|
|
31
|
+
}
|
|
32
|
+
export interface TransactionRollbackListener {
|
|
33
|
+
onBeforeRollback?(context: TransactionContext, error?: Error): Promise<void> | void;
|
|
34
|
+
onAfterRollback?(context: TransactionContext, error?: Error): Promise<void> | void;
|
|
35
|
+
}
|
|
36
|
+
export interface TransactionSavepointListener {
|
|
37
|
+
onBeforeSavepoint?(context: TransactionContext, name: string): Promise<void> | void;
|
|
38
|
+
onAfterSavepoint?(context: TransactionContext, name: string): Promise<void> | void;
|
|
39
|
+
onBeforeRollbackToSavepoint?(context: TransactionContext, name: string): Promise<void> | void;
|
|
40
|
+
onAfterRollbackToSavepoint?(context: TransactionContext, name: string): Promise<void> | void;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Transaction event manager
|
|
44
|
+
*/
|
|
45
|
+
export declare class TransactionEventManager {
|
|
46
|
+
private listeners;
|
|
47
|
+
private beginListeners;
|
|
48
|
+
private commitListeners;
|
|
49
|
+
private rollbackListeners;
|
|
50
|
+
private savepointListeners;
|
|
51
|
+
/**
|
|
52
|
+
* Add a general transaction event listener
|
|
53
|
+
*/
|
|
54
|
+
addListener(listener: TransactionEventListener): void;
|
|
55
|
+
/**
|
|
56
|
+
* Remove a general transaction event listener
|
|
57
|
+
*/
|
|
58
|
+
removeListener(listener: TransactionEventListener): void;
|
|
59
|
+
/**
|
|
60
|
+
* Add a transaction begin listener
|
|
61
|
+
*/
|
|
62
|
+
addBeginListener(listener: TransactionBeginListener): void;
|
|
63
|
+
/**
|
|
64
|
+
* Add a transaction commit listener
|
|
65
|
+
*/
|
|
66
|
+
addCommitListener(listener: TransactionCommitListener): void;
|
|
67
|
+
/**
|
|
68
|
+
* Add a transaction rollback listener
|
|
69
|
+
*/
|
|
70
|
+
addRollbackListener(listener: TransactionRollbackListener): void;
|
|
71
|
+
/**
|
|
72
|
+
* Add a transaction savepoint listener
|
|
73
|
+
*/
|
|
74
|
+
addSavepointListener(listener: TransactionSavepointListener): void;
|
|
75
|
+
/**
|
|
76
|
+
* Emit a transaction event
|
|
77
|
+
*/
|
|
78
|
+
emitEvent(event: TransactionEvent): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* Emit event to specific listeners
|
|
81
|
+
*/
|
|
82
|
+
private emitSpecificEvent;
|
|
83
|
+
/**
|
|
84
|
+
* Clear all listeners
|
|
85
|
+
*/
|
|
86
|
+
clearAllListeners(): void;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Transaction event decorators
|
|
90
|
+
*/
|
|
91
|
+
export declare function OnTransactionBegin(): MethodDecorator;
|
|
92
|
+
export declare function OnTransactionCommit(): MethodDecorator;
|
|
93
|
+
export declare function OnTransactionRollback(): MethodDecorator;
|
|
94
|
+
/**
|
|
95
|
+
* Built-in transaction event listeners
|
|
96
|
+
*/
|
|
97
|
+
/**
|
|
98
|
+
* Transaction logging listener
|
|
99
|
+
*/
|
|
100
|
+
export declare class TransactionLoggingListener implements TransactionEventListener {
|
|
101
|
+
private logger;
|
|
102
|
+
constructor(logger?: (message: string, data?: any) => void);
|
|
103
|
+
onTransactionEvent(event: TransactionEvent): Promise<void>;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Transaction metrics listener
|
|
107
|
+
*/
|
|
108
|
+
export declare class TransactionMetricsListener implements TransactionEventListener {
|
|
109
|
+
private metrics;
|
|
110
|
+
onTransactionEvent(event: TransactionEvent): Promise<void>;
|
|
111
|
+
private updateDuration;
|
|
112
|
+
getMetrics(): {
|
|
113
|
+
totalTransactions: number;
|
|
114
|
+
committedTransactions: number;
|
|
115
|
+
rolledBackTransactions: number;
|
|
116
|
+
averageDuration: number;
|
|
117
|
+
totalDuration: number;
|
|
118
|
+
};
|
|
119
|
+
resetMetrics(): void;
|
|
120
|
+
}
|
|
121
|
+
export declare const globalTransactionEventManager: TransactionEventManager;
|
|
122
|
+
//# sourceMappingURL=transaction-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction-events.d.ts","sourceRoot":"","sources":["../../../src/orm/transaction-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Context } from 'hono';
|
|
2
|
+
/**
|
|
3
|
+
* Transaction interceptor for automatic transaction handling
|
|
4
|
+
*/
|
|
5
|
+
export declare class TransactionInterceptor {
|
|
6
|
+
private static instance;
|
|
7
|
+
private constructor();
|
|
8
|
+
static getInstance(): TransactionInterceptor;
|
|
9
|
+
/**
|
|
10
|
+
* Intercept method calls and handle transactions
|
|
11
|
+
*/
|
|
12
|
+
intercept(target: any, propertyKey: string, args: any[], originalMethod: Function, context?: Context): Promise<any>;
|
|
13
|
+
/**
|
|
14
|
+
* Create a transactional proxy for an object
|
|
15
|
+
*/
|
|
16
|
+
createTransactionalProxy<T extends object>(target: T, context?: Context): T;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Transaction middleware for Hono
|
|
20
|
+
*/
|
|
21
|
+
export declare function transactionMiddleware(): (c: Context, next: () => Promise<void>) => Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Get transaction interceptor from context
|
|
24
|
+
*/
|
|
25
|
+
export declare function getTransactionInterceptor(c: Context): TransactionInterceptor;
|
|
26
|
+
/**
|
|
27
|
+
* Create transactional proxy from context
|
|
28
|
+
*/
|
|
29
|
+
export declare function createTransactionalProxy<T extends object>(c: Context, target: T): T;
|
|
30
|
+
//# sourceMappingURL=transaction-interceptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction-interceptor.d.ts","sourceRoot":"","sources":["../../../src/orm/transaction-interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAyB;IAEhD,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,sBAAsB;IAO5C;;OAEG;IACG,SAAS,CACb,MAAM,EAAE,GAAG,EACX,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,GAAG,EAAE,EACX,cAAc,EAAE,QAAQ,EACxB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,GAAG,CAAC;IAoBf;;OAEG;IACH,wBAAwB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC;CAqB5E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,KACrB,GAAG,OAAO,EAAE,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,mBASpD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAE5E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAGnF"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Context } from 'hono';
|
|
2
|
+
export interface TransactionMetadata {
|
|
3
|
+
isolation?: 'READ_UNCOMMITTED' | 'READ_COMMITTED' | 'REPEATABLE_READ' | 'SERIALIZABLE';
|
|
4
|
+
timeout?: number;
|
|
5
|
+
readOnly?: boolean;
|
|
6
|
+
propagation?: 'REQUIRED' | 'REQUIRES_NEW' | 'SUPPORTS' | 'NOT_SUPPORTED' | 'NEVER' | 'MANDATORY';
|
|
7
|
+
}
|
|
8
|
+
export interface TransactionContext {
|
|
9
|
+
id: string;
|
|
10
|
+
startTime: Date;
|
|
11
|
+
isolation?: string;
|
|
12
|
+
timeout?: number;
|
|
13
|
+
readOnly?: boolean;
|
|
14
|
+
savepoints: string[];
|
|
15
|
+
rollbackOnly: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface ITransactionManager {
|
|
18
|
+
begin(options?: TransactionMetadata): Promise<TransactionContext>;
|
|
19
|
+
commit(context: TransactionContext): Promise<void>;
|
|
20
|
+
rollback(context: TransactionContext): Promise<void>;
|
|
21
|
+
savepoint(context: TransactionContext, name: string): Promise<void>;
|
|
22
|
+
rollbackToSavepoint(context: TransactionContext, name: string): Promise<void>;
|
|
23
|
+
isActive(context: TransactionContext): boolean;
|
|
24
|
+
setRollbackOnly(context: TransactionContext): void;
|
|
25
|
+
handleTransactional<T>(target: any, propertyKey: string, args: any[], originalMethod: Function, context?: Context): Promise<T>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Base transaction manager implementation
|
|
29
|
+
*/
|
|
30
|
+
export declare abstract class BaseTransactionManager implements ITransactionManager {
|
|
31
|
+
private activeTransactions;
|
|
32
|
+
private requestTransactions;
|
|
33
|
+
abstract begin(options?: TransactionMetadata): Promise<TransactionContext>;
|
|
34
|
+
abstract commit(context: TransactionContext): Promise<void>;
|
|
35
|
+
abstract rollback(context: TransactionContext): Promise<void>;
|
|
36
|
+
abstract savepoint(context: TransactionContext, name: string): Promise<void>;
|
|
37
|
+
abstract rollbackToSavepoint(context: TransactionContext, name: string): Promise<void>;
|
|
38
|
+
isActive(context: TransactionContext): boolean;
|
|
39
|
+
setRollbackOnly(context: TransactionContext): void;
|
|
40
|
+
protected createTransactionContext(options?: TransactionMetadata): TransactionContext;
|
|
41
|
+
protected removeTransactionContext(context: TransactionContext): void;
|
|
42
|
+
getRequestTransaction(request: Context): TransactionContext | undefined;
|
|
43
|
+
setRequestTransaction(request: Context, context: TransactionContext): void;
|
|
44
|
+
clearRequestTransaction(request: Context): void;
|
|
45
|
+
handleTransactional<T>(target: any, propertyKey: string, args: any[], originalMethod: Function, context?: Context): Promise<T>;
|
|
46
|
+
private executeInNewTransaction;
|
|
47
|
+
private executeInExistingTransaction;
|
|
48
|
+
protected handleNestedTransaction<T>(parentTransaction: TransactionContext, target: any, args: any[], originalMethod: Function): Promise<T>;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* In-memory transaction manager for testing
|
|
52
|
+
*/
|
|
53
|
+
export declare class InMemoryTransactionManager extends BaseTransactionManager {
|
|
54
|
+
private transactions;
|
|
55
|
+
currentTransactionId: string | null;
|
|
56
|
+
begin(options?: TransactionMetadata): Promise<TransactionContext>;
|
|
57
|
+
commit(context: TransactionContext): Promise<void>;
|
|
58
|
+
rollback(context: TransactionContext): Promise<void>;
|
|
59
|
+
savepoint(context: TransactionContext, name: string): Promise<void>;
|
|
60
|
+
rollbackToSavepoint(context: TransactionContext, name: string): Promise<void>;
|
|
61
|
+
}
|
|
62
|
+
export declare function setGlobalTransactionManager(manager: ITransactionManager): void;
|
|
63
|
+
export declare function getGlobalTransactionManager(): ITransactionManager;
|
|
64
|
+
//# sourceMappingURL=transaction-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction-manager.d.ts","sourceRoot":"","sources":["../../../src/orm/transaction-manager.ts"],"names":[],"mappings":"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"}
|