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,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger para Veloce-TS usando Pino
|
|
3
|
+
*
|
|
4
|
+
* Pino es el logger más rápido para Node.js con excelente rendimiento
|
|
5
|
+
* y formato JSON estructurado ideal para producción.
|
|
6
|
+
*/
|
|
7
|
+
import type { Logger, LoggerConfig, LogContext } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* Create a Pino logger instance
|
|
10
|
+
*/
|
|
11
|
+
export declare function createLogger(config?: LoggerConfig): Logger;
|
|
12
|
+
/**
|
|
13
|
+
* Initialize the global logger
|
|
14
|
+
*/
|
|
15
|
+
export declare function initializeLogger(config?: LoggerConfig): Logger;
|
|
16
|
+
/**
|
|
17
|
+
* Get the global logger instance
|
|
18
|
+
* Defaults to Pino with pretty printing enabled for development
|
|
19
|
+
*/
|
|
20
|
+
export declare function getLogger(): Logger;
|
|
21
|
+
/**
|
|
22
|
+
* Create a child logger with context
|
|
23
|
+
*/
|
|
24
|
+
export declare function createChildLogger(context: LogContext): Logger;
|
|
25
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/logging/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAoGhE;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAE1D;AAOD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAG9D;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAMlC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAE7D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logging middleware para Veloce-TS
|
|
3
|
+
*/
|
|
4
|
+
import type { Middleware } from '../types';
|
|
5
|
+
/**
|
|
6
|
+
* Request logging middleware
|
|
7
|
+
* Logs todas las peticiones HTTP con contexto
|
|
8
|
+
*/
|
|
9
|
+
export declare function requestLoggingMiddleware(): Middleware;
|
|
10
|
+
/**
|
|
11
|
+
* Error logging middleware
|
|
12
|
+
* Captura y loguea errores no manejados
|
|
13
|
+
*/
|
|
14
|
+
export declare function errorLoggingMiddleware(): Middleware;
|
|
15
|
+
//# sourceMappingURL=middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/logging/middleware.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAW,UAAU,EAAE,MAAM,UAAU,CAAC;AAGpD;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,UAAU,CAgCrD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,UAAU,CAiBnD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tipos para el sistema de logging con Pino
|
|
3
|
+
*/
|
|
4
|
+
export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';
|
|
5
|
+
export interface LogContext {
|
|
6
|
+
[key: string]: any;
|
|
7
|
+
}
|
|
8
|
+
export interface Logger {
|
|
9
|
+
trace(message: string, context?: LogContext): void;
|
|
10
|
+
debug(message: string, context?: LogContext): void;
|
|
11
|
+
info(message: string, context?: LogContext): void;
|
|
12
|
+
warn(message: string, context?: LogContext): void;
|
|
13
|
+
error(message: string, error?: Error, context?: LogContext): void;
|
|
14
|
+
fatal(message: string, error?: Error, context?: LogContext): void;
|
|
15
|
+
child(context: LogContext): Logger;
|
|
16
|
+
}
|
|
17
|
+
export interface LoggerConfig {
|
|
18
|
+
level?: LogLevel;
|
|
19
|
+
pretty?: boolean;
|
|
20
|
+
[key: string]: any;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/logging/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAE/E,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACnD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACnD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAClD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAClE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAClE,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache middleware for functional API routes
|
|
3
|
+
*/
|
|
4
|
+
import type { Middleware } from '../types';
|
|
5
|
+
import type { CacheOptions } from '../cache/types';
|
|
6
|
+
export interface CacheMiddlewareOptions extends CacheOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Whether to cache only successful responses (2xx)
|
|
9
|
+
*/
|
|
10
|
+
onlySuccess?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Create cache middleware for functional API routes
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* app.get('/products', {
|
|
18
|
+
* middleware: [createCacheMiddleware({ ttl: '5m' })],
|
|
19
|
+
* handler: async () => {
|
|
20
|
+
* return await db.products.findAll();
|
|
21
|
+
* }
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* // With custom key
|
|
25
|
+
* app.get('/user/:id/posts', {
|
|
26
|
+
* middleware: [createCacheMiddleware({
|
|
27
|
+
* ttl: 300,
|
|
28
|
+
* key: 'user:{id}:posts'
|
|
29
|
+
* })],
|
|
30
|
+
* handler: async (c) => {
|
|
31
|
+
* const id = c.req.param('id');
|
|
32
|
+
* return await db.posts.findByUser(id);
|
|
33
|
+
* }
|
|
34
|
+
* });
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare function createCacheMiddleware(options: CacheMiddlewareOptions): Middleware;
|
|
38
|
+
/**
|
|
39
|
+
* Create cache invalidation middleware
|
|
40
|
+
* Useful for mutations that should clear related cache
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* app.post('/products', {
|
|
45
|
+
* middleware: [createCacheInvalidationMiddleware('products:*')],
|
|
46
|
+
* handler: async (c) => {
|
|
47
|
+
* const body = await c.req.json();
|
|
48
|
+
* return await db.products.create(body);
|
|
49
|
+
* }
|
|
50
|
+
* });
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare function createCacheInvalidationMiddleware(pattern: string | string[], store?: import('../cache/types').CacheStore): Middleware;
|
|
54
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/middleware/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAW,UAAU,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAInD,MAAM,WAAW,sBAAuB,SAAQ,YAAY;IAC1D;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,UAAU,CA8EjF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAC1B,KAAK,CAAC,EAAE,OAAO,gBAAgB,EAAE,UAAU,GAC1C,UAAU,CAwBZ"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export { createCorsMiddleware } from './cors';
|
|
2
2
|
export { createRateLimitMiddleware } from './rate-limit';
|
|
3
3
|
export { createCompressionMiddleware } from './compression';
|
|
4
|
+
export { createRequestContextMiddleware, createSimpleRequestIdMiddleware, type RequestContextMiddlewareOptions } from './request-context';
|
|
5
|
+
export type { CacheMiddlewareOptions } from './cache';
|
|
6
|
+
export { createCacheMiddleware, createCacheInvalidationMiddleware } from './cache';
|
|
4
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/middleware/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/middleware/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,EAC/B,KAAK,+BAA+B,EACrC,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,iCAAiC,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request Context Middleware
|
|
3
|
+
* Automatically initializes request context with UUID and integrates with logging
|
|
4
|
+
*/
|
|
5
|
+
import type { Middleware } from '../types';
|
|
6
|
+
export interface RequestContextMiddlewareOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Default timeout for requests in milliseconds
|
|
9
|
+
*/
|
|
10
|
+
timeout?: number;
|
|
11
|
+
/**
|
|
12
|
+
* Whether to log request start/end
|
|
13
|
+
*/
|
|
14
|
+
logging?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Custom request ID generator
|
|
17
|
+
*/
|
|
18
|
+
requestIdGenerator?: () => string;
|
|
19
|
+
/**
|
|
20
|
+
* Headers to include in logs
|
|
21
|
+
*/
|
|
22
|
+
logHeaders?: string[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Create request context middleware
|
|
26
|
+
*
|
|
27
|
+
* This middleware:
|
|
28
|
+
* - Generates a unique request ID for each request
|
|
29
|
+
* - Sets up AbortSignal for request cancellation
|
|
30
|
+
* - Optionally configures request timeout
|
|
31
|
+
* - Integrates with logging system
|
|
32
|
+
* - Propagates request ID through all logs
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* const app = new VeloceTS();
|
|
37
|
+
*
|
|
38
|
+
* // Basic usage
|
|
39
|
+
* app.use(createRequestContextMiddleware());
|
|
40
|
+
*
|
|
41
|
+
* // With options
|
|
42
|
+
* app.use(createRequestContextMiddleware({
|
|
43
|
+
* timeout: 30000, // 30 seconds
|
|
44
|
+
* logging: true,
|
|
45
|
+
* logHeaders: ['user-agent', 'referer']
|
|
46
|
+
* }));
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare function createRequestContextMiddleware(options?: RequestContextMiddlewareOptions): Middleware;
|
|
50
|
+
/**
|
|
51
|
+
* Create a simple request ID middleware without logging
|
|
52
|
+
* Useful if you want to manage logging separately
|
|
53
|
+
*/
|
|
54
|
+
export declare function createSimpleRequestIdMiddleware(): Middleware;
|
|
55
|
+
//# sourceMappingURL=request-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../../../src/middleware/request-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAW,UAAU,EAAE,MAAM,UAAU,CAAC;AAIpD,MAAM,WAAW,+BAA+B;IAC9C;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,MAAM,CAAC;IAElC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,GAAE,+BAAoC,GAC5C,UAAU,CA2EZ;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,UAAU,CAa5D"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export interface PaginationOptions {
|
|
3
|
+
page?: number;
|
|
4
|
+
limit?: number;
|
|
5
|
+
offset?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface SortOptions {
|
|
8
|
+
field: string;
|
|
9
|
+
direction: 'asc' | 'desc';
|
|
10
|
+
}
|
|
11
|
+
export interface FilterOptions {
|
|
12
|
+
[key: string]: any;
|
|
13
|
+
}
|
|
14
|
+
export interface FindOptions {
|
|
15
|
+
where?: FilterOptions;
|
|
16
|
+
orderBy?: SortOptions | SortOptions[];
|
|
17
|
+
pagination?: PaginationOptions;
|
|
18
|
+
include?: string[];
|
|
19
|
+
select?: string[];
|
|
20
|
+
}
|
|
21
|
+
export interface PaginatedResult<T> {
|
|
22
|
+
data: T[];
|
|
23
|
+
total: number;
|
|
24
|
+
page: number;
|
|
25
|
+
limit: number;
|
|
26
|
+
totalPages: number;
|
|
27
|
+
hasNext: boolean;
|
|
28
|
+
hasPrev: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Base repository interface with common CRUD operations
|
|
32
|
+
*/
|
|
33
|
+
export interface IBaseRepository<T, ID = string | number> {
|
|
34
|
+
create(data: Partial<T>): Promise<T>;
|
|
35
|
+
findById(id: ID): Promise<T | null>;
|
|
36
|
+
findOne(options: FindOptions): Promise<T | null>;
|
|
37
|
+
findMany(options?: FindOptions): Promise<T[]>;
|
|
38
|
+
update(id: ID, data: Partial<T>): Promise<T>;
|
|
39
|
+
delete(id: ID): Promise<boolean>;
|
|
40
|
+
createMany(data: Partial<T>[]): Promise<T[]>;
|
|
41
|
+
updateMany(where: FilterOptions, data: Partial<T>): Promise<number>;
|
|
42
|
+
deleteMany(where: FilterOptions): Promise<number>;
|
|
43
|
+
findPaginated(options: FindOptions & {
|
|
44
|
+
pagination: Required<PaginationOptions>;
|
|
45
|
+
}): Promise<PaginatedResult<T>>;
|
|
46
|
+
count(where?: FilterOptions): Promise<number>;
|
|
47
|
+
exists(where: FilterOptions): Promise<boolean>;
|
|
48
|
+
withTransaction<R>(callback: (repo: this) => Promise<R>): Promise<R>;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Abstract base repository implementation
|
|
52
|
+
*/
|
|
53
|
+
export declare abstract class BaseRepository<T, ID = string | number> implements IBaseRepository<T, ID> {
|
|
54
|
+
protected schema?: z.ZodSchema<T>;
|
|
55
|
+
constructor(schema?: z.ZodSchema<T>);
|
|
56
|
+
protected validate(data: any): T;
|
|
57
|
+
protected validatePartial(data: any): Partial<T>;
|
|
58
|
+
abstract create(data: Partial<T>): Promise<T>;
|
|
59
|
+
abstract findById(id: ID): Promise<T | null>;
|
|
60
|
+
abstract findOne(options: FindOptions): Promise<T | null>;
|
|
61
|
+
abstract findMany(options?: FindOptions): Promise<T[]>;
|
|
62
|
+
abstract update(id: ID, data: Partial<T>): Promise<T>;
|
|
63
|
+
abstract delete(id: ID): Promise<boolean>;
|
|
64
|
+
createMany(data: Partial<T>[]): Promise<T[]>;
|
|
65
|
+
updateMany(where: FilterOptions, data: Partial<T>): Promise<number>;
|
|
66
|
+
deleteMany(where: FilterOptions): Promise<number>;
|
|
67
|
+
findPaginated(options: FindOptions & {
|
|
68
|
+
pagination: Required<PaginationOptions>;
|
|
69
|
+
}): Promise<PaginatedResult<T>>;
|
|
70
|
+
count(where?: FilterOptions): Promise<number>;
|
|
71
|
+
exists(where: FilterOptions): Promise<boolean>;
|
|
72
|
+
withTransaction<R>(callback: (repo: this) => Promise<R>): Promise<R>;
|
|
73
|
+
protected buildWhereClause(where?: FilterOptions): any;
|
|
74
|
+
protected buildOrderByClause(orderBy?: SortOptions | SortOptions[]): any;
|
|
75
|
+
protected buildPaginationClause(pagination?: PaginationOptions): any;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=base-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-repository.d.ts","sourceRoot":"","sources":["../../../src/orm/base-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
export interface RepositoryMetadata {
|
|
3
|
+
entity?: any;
|
|
4
|
+
connection?: string;
|
|
5
|
+
transactional?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface TransactionMetadata {
|
|
8
|
+
isolation?: 'READ_UNCOMMITTED' | 'READ_COMMITTED' | 'REPEATABLE_READ' | 'SERIALIZABLE';
|
|
9
|
+
timeout?: number;
|
|
10
|
+
readOnly?: boolean;
|
|
11
|
+
propagation?: 'REQUIRED' | 'REQUIRES_NEW' | 'SUPPORTS' | 'NOT_SUPPORTED' | 'NEVER' | 'MANDATORY';
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Repository decorator for marking classes as repositories
|
|
15
|
+
*/
|
|
16
|
+
export declare function Repository(entity?: any, connection?: string): ClassDecorator;
|
|
17
|
+
/**
|
|
18
|
+
* Transactional decorator for automatic transaction management
|
|
19
|
+
*/
|
|
20
|
+
export declare function Transactional(options?: TransactionMetadata): MethodDecorator;
|
|
21
|
+
/**
|
|
22
|
+
* Entity decorator for marking classes as database entities
|
|
23
|
+
*/
|
|
24
|
+
export declare function Entity(tableName?: string): ClassDecorator;
|
|
25
|
+
/**
|
|
26
|
+
* Column decorator for marking properties as database columns
|
|
27
|
+
*/
|
|
28
|
+
export declare function Column(options?: {
|
|
29
|
+
name?: string;
|
|
30
|
+
type?: string;
|
|
31
|
+
nullable?: boolean;
|
|
32
|
+
unique?: boolean;
|
|
33
|
+
primary?: boolean;
|
|
34
|
+
}): PropertyDecorator;
|
|
35
|
+
//# sourceMappingURL=decorators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../src/orm/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAK1B,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAGD,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,kBAAkB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,cAAc,CAAC;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,GAAG,eAAe,GAAG,OAAO,GAAG,WAAW,CAAC;CAClG;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,cAAc,CAU5E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,eAAe,CA8B5E;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,CAQzD;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,iBAAiB,CAYpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/orm/drizzle/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { Plugin } from '../../core/plugin';
|
|
2
|
+
import { VeloceTS } from '../../core/application';
|
|
3
|
+
import { DrizzleConfig, DrizzleDatabase, DrizzleTable, DrizzleTableMetadata } from './types';
|
|
4
|
+
import { DrizzleRepository as DrizzleRepositoryClass } from './repository';
|
|
5
|
+
import { DrizzleTransactionManager } from './transaction-manager';
|
|
6
|
+
import { DrizzleZodSchemaConverter } from './schema-converter';
|
|
7
|
+
export { DrizzleRepository } from './repository';
|
|
8
|
+
/**
|
|
9
|
+
* Drizzle ORM integration plugin for VeloceTS
|
|
10
|
+
*
|
|
11
|
+
* Provides seamless integration with Drizzle ORM, including:
|
|
12
|
+
* - Automatic repository generation from schemas
|
|
13
|
+
* - Transaction management with decorator support
|
|
14
|
+
* - Zod schema conversion and validation
|
|
15
|
+
* - Query builder utilities
|
|
16
|
+
* - Database seeding support
|
|
17
|
+
*/
|
|
18
|
+
export declare class DrizzlePlugin implements Plugin {
|
|
19
|
+
name: string;
|
|
20
|
+
version: string;
|
|
21
|
+
private database;
|
|
22
|
+
private config;
|
|
23
|
+
private transactionManager;
|
|
24
|
+
private schemaConverter;
|
|
25
|
+
private tables;
|
|
26
|
+
private tableMetadata;
|
|
27
|
+
private logger;
|
|
28
|
+
constructor(database: DrizzleDatabase, config?: DrizzleConfig);
|
|
29
|
+
install(app: VeloceTS): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Register Drizzle schema tables
|
|
32
|
+
* @param schema - Object containing Drizzle table definitions
|
|
33
|
+
*/
|
|
34
|
+
private registerSchema;
|
|
35
|
+
/**
|
|
36
|
+
* Check if an object is a valid Drizzle table
|
|
37
|
+
* @param obj - Object to validate
|
|
38
|
+
* @returns true if object is a valid Drizzle table
|
|
39
|
+
*/
|
|
40
|
+
private isValidDrizzleTable;
|
|
41
|
+
/**
|
|
42
|
+
* Register repository factory in DI container
|
|
43
|
+
* @param app - VeloceTS application instance
|
|
44
|
+
*/
|
|
45
|
+
private registerRepositoryFactory;
|
|
46
|
+
/**
|
|
47
|
+
* Register database utilities
|
|
48
|
+
* @param app - VeloceTS application instance
|
|
49
|
+
*/
|
|
50
|
+
private registerDatabaseUtilities;
|
|
51
|
+
/**
|
|
52
|
+
* Get table by name
|
|
53
|
+
*/
|
|
54
|
+
getTable(name: string): DrizzleTable | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Get all registered tables
|
|
57
|
+
*/
|
|
58
|
+
getTables(): Map<string, DrizzleTable>;
|
|
59
|
+
/**
|
|
60
|
+
* Get table metadata
|
|
61
|
+
*/
|
|
62
|
+
getTableMetadata(name: string): DrizzleTableMetadata | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Get all table metadata
|
|
65
|
+
*/
|
|
66
|
+
getAllTableMetadata(): Map<string, DrizzleTableMetadata>;
|
|
67
|
+
/**
|
|
68
|
+
* Create a repository for a specific table
|
|
69
|
+
* @param tableName - Name of the table to create repository for
|
|
70
|
+
* @param zodSchema - Optional Zod schema for validation
|
|
71
|
+
* @returns DrizzleRepository instance
|
|
72
|
+
* @throws Error if table is not found
|
|
73
|
+
*/
|
|
74
|
+
createRepository<T>(tableName: string, zodSchema?: any): DrizzleRepositoryClass<T>;
|
|
75
|
+
/**
|
|
76
|
+
* Create a repository from a table instance
|
|
77
|
+
* @param table - Drizzle table instance
|
|
78
|
+
* @param zodSchema - Optional Zod schema for validation
|
|
79
|
+
* @returns DrizzleRepository instance
|
|
80
|
+
*/
|
|
81
|
+
createRepositoryFromTable<T>(table: DrizzleTable, zodSchema?: any): DrizzleRepositoryClass<T>;
|
|
82
|
+
/**
|
|
83
|
+
* Get the Drizzle database instance
|
|
84
|
+
*/
|
|
85
|
+
getDatabase(): DrizzleDatabase;
|
|
86
|
+
/**
|
|
87
|
+
* Get the transaction manager
|
|
88
|
+
*/
|
|
89
|
+
getTransactionManager(): DrizzleTransactionManager;
|
|
90
|
+
/**
|
|
91
|
+
* Get the schema converter
|
|
92
|
+
*/
|
|
93
|
+
getSchemaConverter(): DrizzleZodSchemaConverter;
|
|
94
|
+
/**
|
|
95
|
+
* Add a table to the schema dynamically
|
|
96
|
+
* @param name - Table name
|
|
97
|
+
* @param table - Drizzle table instance
|
|
98
|
+
*/
|
|
99
|
+
addTable(name: string, table: DrizzleTable): void;
|
|
100
|
+
/**
|
|
101
|
+
* Remove a table from the schema
|
|
102
|
+
* @param name - Table name to remove
|
|
103
|
+
* @returns true if table was removed, false if it didn't exist
|
|
104
|
+
*/
|
|
105
|
+
removeTable(name: string): boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Generate Zod schemas for all tables
|
|
108
|
+
*/
|
|
109
|
+
generateZodSchemas(): Record<string, any>;
|
|
110
|
+
/**
|
|
111
|
+
* Execute raw SQL query
|
|
112
|
+
* @param sql - Raw SQL query string
|
|
113
|
+
* @param params - Query parameters
|
|
114
|
+
* @returns Query result
|
|
115
|
+
* @warning Use with caution - prefer using the query builder for type safety
|
|
116
|
+
*/
|
|
117
|
+
executeRaw(sql: string, params?: any[]): Promise<any>;
|
|
118
|
+
/**
|
|
119
|
+
* Execute multiple queries in a transaction
|
|
120
|
+
* @param callback - Async function that receives transaction database instance
|
|
121
|
+
* @returns Result of the callback
|
|
122
|
+
* @throws Error if transaction fails
|
|
123
|
+
*/
|
|
124
|
+
executeInTransaction<T>(callback: (db: DrizzleDatabase) => Promise<T>): Promise<T>;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Helper function to create Drizzle plugin
|
|
128
|
+
*/
|
|
129
|
+
export declare function createDrizzlePlugin(database: DrizzleDatabase, config?: DrizzleConfig): DrizzlePlugin;
|
|
130
|
+
/**
|
|
131
|
+
* Decorator to automatically inject Drizzle repository
|
|
132
|
+
* @param tableName - Name of the table to inject repository for
|
|
133
|
+
* @param zodSchema - Optional Zod schema for validation
|
|
134
|
+
* @returns Property decorator
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* ```typescript
|
|
138
|
+
* class UserService {
|
|
139
|
+
* @InjectDrizzleRepository('users', UserSchema)
|
|
140
|
+
* private userRepo!: DrizzleRepository<User>;
|
|
141
|
+
* }
|
|
142
|
+
* ```
|
|
143
|
+
*
|
|
144
|
+
* @deprecated This decorator is not yet fully implemented.
|
|
145
|
+
* Use dependency injection or direct instantiation instead:
|
|
146
|
+
* ```typescript
|
|
147
|
+
* const factory = container.resolve('DrizzleRepositoryFactory');
|
|
148
|
+
* const repo = factory.create<User>('users');
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
export declare function InjectDrizzleRepository(tableName: string, zodSchema?: any): PropertyDecorator;
|
|
152
|
+
/**
|
|
153
|
+
* Seeder base class for Drizzle
|
|
154
|
+
*/
|
|
155
|
+
export declare abstract class DrizzleSeeder {
|
|
156
|
+
abstract run(database: DrizzleDatabase): Promise<void>;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Migration base class for Drizzle (placeholder)
|
|
160
|
+
*/
|
|
161
|
+
export declare abstract class DrizzleMigration {
|
|
162
|
+
abstract up(database: DrizzleDatabase): Promise<void>;
|
|
163
|
+
abstract down(database: DrizzleDatabase): Promise<void>;
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/orm/drizzle/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { BaseRepository, FindOptions, FilterOptions, SortOptions, PaginationOptions, PaginatedResult } from '../base-repository';
|
|
2
|
+
import { DrizzleRepositoryOptions, DrizzleDatabase, DrizzleTable, DrizzleOperators } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Drizzle-specific repository implementation
|
|
5
|
+
*/
|
|
6
|
+
export declare class DrizzleRepository<T, ID = string | number> extends BaseRepository<T, ID> {
|
|
7
|
+
protected database: DrizzleDatabase;
|
|
8
|
+
protected table: DrizzleTable;
|
|
9
|
+
protected operators: DrizzleOperators;
|
|
10
|
+
constructor(options: DrizzleRepositoryOptions<T>);
|
|
11
|
+
private initializeOperators;
|
|
12
|
+
create(data: Partial<T>): Promise<T>;
|
|
13
|
+
findById(id: ID): Promise<T | null>;
|
|
14
|
+
findOne(options: FindOptions): Promise<T | null>;
|
|
15
|
+
findMany(options?: FindOptions): Promise<T[]>;
|
|
16
|
+
update(id: ID, data: Partial<T>): Promise<T>;
|
|
17
|
+
delete(id: ID): Promise<boolean>;
|
|
18
|
+
createMany(data: Partial<T>[]): Promise<T[]>;
|
|
19
|
+
updateMany(where: FilterOptions, data: Partial<T>): Promise<number>;
|
|
20
|
+
deleteMany(where: FilterOptions): Promise<number>;
|
|
21
|
+
count(where?: FilterOptions): Promise<number>;
|
|
22
|
+
exists(where: FilterOptions): Promise<boolean>;
|
|
23
|
+
findPaginated(options: FindOptions & {
|
|
24
|
+
pagination: Required<PaginationOptions>;
|
|
25
|
+
}): Promise<PaginatedResult<T>>;
|
|
26
|
+
withTransaction<R>(callback: (repo: this) => Promise<R>): Promise<R>;
|
|
27
|
+
protected buildWhereClause(where: FilterOptions): any;
|
|
28
|
+
protected buildOrderByClause(orderBy: SortOptions | SortOptions[]): any[];
|
|
29
|
+
private getPrimaryKeyColumn;
|
|
30
|
+
private getColumn;
|
|
31
|
+
/**
|
|
32
|
+
* Execute raw SQL query
|
|
33
|
+
*/
|
|
34
|
+
rawQuery(sql: string, params?: any[]): Promise<any[]>;
|
|
35
|
+
/**
|
|
36
|
+
* Upsert operation (insert or update on conflict)
|
|
37
|
+
*/
|
|
38
|
+
upsert(data: Partial<T>, conflictColumns: string[]): Promise<T>;
|
|
39
|
+
/**
|
|
40
|
+
* Bulk upsert operation
|
|
41
|
+
*/
|
|
42
|
+
bulkUpsert(data: Partial<T>[], conflictColumns: string[]): Promise<T[]>;
|
|
43
|
+
/**
|
|
44
|
+
* Find with custom select fields
|
|
45
|
+
*/
|
|
46
|
+
findWithSelect<K extends keyof T>(options: FindOptions, select: K[]): Promise<Pick<T, K>[]>;
|
|
47
|
+
/**
|
|
48
|
+
* Aggregate operations
|
|
49
|
+
*/
|
|
50
|
+
aggregate(options: {
|
|
51
|
+
where?: FilterOptions;
|
|
52
|
+
groupBy?: string[];
|
|
53
|
+
having?: FilterOptions;
|
|
54
|
+
count?: boolean;
|
|
55
|
+
sum?: string[];
|
|
56
|
+
avg?: string[];
|
|
57
|
+
min?: string[];
|
|
58
|
+
max?: string[];
|
|
59
|
+
}): Promise<any[]>;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../../src/orm/drizzle/repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { DrizzleTable, DrizzleTableMetadata } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Converts Drizzle schemas to Zod schemas for validation
|
|
5
|
+
*/
|
|
6
|
+
export declare class DrizzleZodSchemaConverter {
|
|
7
|
+
private tableSchemas;
|
|
8
|
+
/**
|
|
9
|
+
* Convert Drizzle table schema to Zod schema
|
|
10
|
+
*/
|
|
11
|
+
convertTableToZod(table: DrizzleTable): z.ZodSchema;
|
|
12
|
+
/**
|
|
13
|
+
* Convert Drizzle column to Zod schema
|
|
14
|
+
*/
|
|
15
|
+
private convertColumnToZod;
|
|
16
|
+
/**
|
|
17
|
+
* Get base Zod schema for Drizzle column type
|
|
18
|
+
*/
|
|
19
|
+
private getBaseZodSchema;
|
|
20
|
+
/**
|
|
21
|
+
* Get base Zod schema by data type
|
|
22
|
+
*/
|
|
23
|
+
private getBaseZodSchemaByDataType;
|
|
24
|
+
/**
|
|
25
|
+
* Generate create schema (without auto-generated fields)
|
|
26
|
+
*/
|
|
27
|
+
generateCreateSchema(table: DrizzleTable): z.ZodSchema;
|
|
28
|
+
/**
|
|
29
|
+
* Generate update schema (all fields optional)
|
|
30
|
+
*/
|
|
31
|
+
generateUpdateSchema(table: DrizzleTable): z.ZodSchema;
|
|
32
|
+
/**
|
|
33
|
+
* Extract table metadata from Drizzle table
|
|
34
|
+
*/
|
|
35
|
+
extractTableMetadata(table: DrizzleTable): DrizzleTableMetadata;
|
|
36
|
+
/**
|
|
37
|
+
* Generate all schemas for a table (base, create, update)
|
|
38
|
+
*/
|
|
39
|
+
generateAllSchemas(table: DrizzleTable): {
|
|
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
|
+
* Clear cached schemas
|
|
46
|
+
*/
|
|
47
|
+
clearCache(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Get cached schema for a table
|
|
50
|
+
*/
|
|
51
|
+
getCachedSchema(tableName: string): z.ZodSchema | undefined;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=schema-converter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-converter.d.ts","sourceRoot":"","sources":["../../../../src/orm/drizzle/schema-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAiB,oBAAoB,EAAyB,MAAM,SAAS,CAAC;AAEnG;;GAEG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,YAAY,CAAkC;IAEtD;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,CAAC,CAAC,SAAS;IAmBnD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyDxB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAuBlC;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,CAAC,CAAC,SAAS;IAoBtD;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,CAAC,CAAC,SAAS;IAsBtD;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,oBAAoB;IAyB/D;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,YAAY;;;;;IAQtC;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,SAAS,GAAG,SAAS;CAG5D"}
|