glasswork 0.6.2 → 0.7.1

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.
Files changed (37) hide show
  1. package/README.md +37 -9
  2. package/dist/core/bootstrap.d.ts.map +1 -1
  3. package/dist/core/bootstrap.js +43 -6
  4. package/dist/core/bootstrap.js.map +1 -1
  5. package/dist/core/types.d.ts +103 -23
  6. package/dist/core/types.d.ts.map +1 -1
  7. package/dist/http/route-helpers.d.ts +102 -44
  8. package/dist/http/route-helpers.d.ts.map +1 -1
  9. package/dist/http/route-helpers.js +137 -129
  10. package/dist/http/route-helpers.js.map +1 -1
  11. package/dist/index.d.ts +4 -4
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/list-query/casl.d.ts +9 -8
  16. package/dist/list-query/casl.d.ts.map +1 -1
  17. package/dist/list-query/casl.js +29 -11
  18. package/dist/list-query/casl.js.map +1 -1
  19. package/dist/middleware/rate-limit.d.ts.map +1 -1
  20. package/dist/middleware/rate-limit.js +47 -13
  21. package/dist/middleware/rate-limit.js.map +1 -1
  22. package/dist/openapi/defaults.d.ts.map +1 -1
  23. package/dist/openapi/defaults.js +5 -3
  24. package/dist/openapi/defaults.js.map +1 -1
  25. package/dist/openapi/openapi-processors.d.ts +51 -0
  26. package/dist/openapi/openapi-processors.d.ts.map +1 -0
  27. package/dist/openapi/openapi-processors.js +166 -0
  28. package/dist/openapi/openapi-processors.js.map +1 -0
  29. package/dist/openapi/openapi.d.ts +36 -3
  30. package/dist/openapi/openapi.d.ts.map +1 -1
  31. package/dist/openapi/openapi.js +27 -39
  32. package/dist/openapi/openapi.js.map +1 -1
  33. package/dist/utils/serialize-prisma-types.d.ts +63 -30
  34. package/dist/utils/serialize-prisma-types.d.ts.map +1 -1
  35. package/dist/utils/serialize-prisma-types.js +8 -4
  36. package/dist/utils/serialize-prisma-types.js.map +1 -1
  37. package/package.json +11 -3
@@ -1,5 +1,6 @@
1
1
  import { describeRoute as honoDescribeRoute, resolver, validator, } from 'hono-openapi';
2
2
  import { safeParseAsync } from 'valibot';
3
+ import { applyProcessors } from '../openapi/openapi-processors.js';
3
4
  import { getClientIp } from '../utils/get-client-ip.js';
4
5
  import { createLogger } from '../utils/logger.js';
5
6
  import { defaultConfig as defaultSerializationConfig, serializePrismaTypes, } from '../utils/serialize-prisma-types.js';
@@ -8,49 +9,26 @@ import { defaultConfig as defaultSerializationConfig, serializePrismaTypes, } fr
8
9
  */
9
10
  const logger = createLogger('Routes');
10
11
  /**
11
- * Global storage for OpenAPI response hooks.
12
- * Set during bootstrap and used when defining routes.
12
+ * Storage for OpenAPI context per Hono app instance.
13
+ * Uses WeakMap to avoid memory leaks and support multiple app instances.
13
14
  */
14
- let globalResponseHooks = [];
15
+ const openAPIContextMap = new WeakMap();
15
16
  /**
16
- * Global storage for OpenAPI security scheme names.
17
- * Set during bootstrap from the documentation's securitySchemes.
18
- * Used when building route security (public: false routes).
19
- */
20
- let globalSecuritySchemes = [];
21
- /**
22
- * Set the global OpenAPI response hooks.
23
- * This is called during bootstrap and makes hooks available to route definitions.
17
+ * Set the OpenAPI context for a Hono app instance.
18
+ * This is called during bootstrap and makes processors/schemes available to route definitions.
24
19
  *
25
20
  * @internal
26
21
  */
27
- export function setGlobalResponseHooks(hooks) {
28
- globalResponseHooks = hooks;
22
+ export function setOpenAPIContext(app, context) {
23
+ openAPIContextMap.set(app, context);
29
24
  }
30
25
  /**
31
- * Get the current global OpenAPI response hooks.
26
+ * Get the OpenAPI context for a Hono app instance.
32
27
  *
33
28
  * @internal
34
29
  */
35
- export function getGlobalResponseHooks() {
36
- return globalResponseHooks;
37
- }
38
- /**
39
- * Set the global OpenAPI security schemes.
40
- * This is called during bootstrap and makes security schemes available to route definitions.
41
- *
42
- * @internal
43
- */
44
- export function setGlobalSecuritySchemes(schemes) {
45
- globalSecuritySchemes = schemes;
46
- }
47
- /**
48
- * Get the current global OpenAPI security schemes.
49
- *
50
- * @internal
51
- */
52
- export function getGlobalSecuritySchemes() {
53
- return globalSecuritySchemes;
30
+ export function getOpenAPIContext(app) {
31
+ return openAPIContextMap.get(app) ?? { processors: [], securitySchemes: [] };
54
32
  }
55
33
  /**
56
34
  * HTTP status codes with descriptions
@@ -74,7 +52,10 @@ const STATUS_DESCRIPTIONS = {
74
52
  500: 'Internal Server Error',
75
53
  };
76
54
  /**
77
- * Create routes with typed service injection.
55
+ * Create routes with typed service injection and pre-bound route function.
56
+ *
57
+ * The `route` function passed to your factory is pre-bound to the router's
58
+ * OpenAPI context, so you don't need to pass the router to every route call.
78
59
  *
79
60
  * @template TServices - The shape of services required by these routes
80
61
  *
@@ -85,15 +66,54 @@ const STATUS_DESCRIPTIONS = {
85
66
  * userService: UserService;
86
67
  * }
87
68
  *
88
- * export const authRoutes = createRoutes<AuthRoutesServices>((router, services) => {
69
+ * export const authRoutes = createRoutes<AuthRoutesServices>((router, services, route) => {
89
70
  * // services.authService is typed as AuthService!
90
- * // services.userService is typed as UserService!
91
- * router.post('/login', ...);
71
+ * // route is pre-bound to this router's OpenAPI context
72
+ * router.post('/login', ...route({
73
+ * body: LoginDto,
74
+ * responses: { 200: SessionDto },
75
+ * handler: async ({ body }) => {
76
+ * return services.authService.login(body);
77
+ * }
78
+ * }));
92
79
  * });
93
80
  * ```
94
81
  */
95
82
  export function createRoutes(factory) {
96
- return factory;
83
+ return (router, services) => {
84
+ // Create a bound route function for this router
85
+ const boundRoute = (config) => route(router, config);
86
+ factory(router, services, boundRoute);
87
+ };
88
+ }
89
+ /**
90
+ * Detect if a query schema includes pagination fields (page, pageSize).
91
+ * Used to auto-detect pagination for OpenAPI documentation.
92
+ */
93
+ function hasPaginationFields(schema) {
94
+ if (!schema)
95
+ return false;
96
+ // Check if schema has page or pageSize entries
97
+ // This works for Valibot object schemas
98
+ const schemaAny = schema;
99
+ if (schemaAny.entries) {
100
+ return 'page' in schemaAny.entries || 'pageSize' in schemaAny.entries;
101
+ }
102
+ return false;
103
+ }
104
+ /**
105
+ * Create a validation middleware for request validation.
106
+ * Returns 422 Unprocessable Entity on validation failure (instead of Hono's default 400).
107
+ *
108
+ * @param type - The validation target ('json' for body, 'query', or 'param')
109
+ * @param schema - The Valibot schema to validate against
110
+ */
111
+ function createValidationMiddleware(type, schema) {
112
+ return validator(type, schema, (result, c) => {
113
+ if (!result.success) {
114
+ return c.json({ error: 'Validation failed', issues: result.error }, 422);
115
+ }
116
+ });
97
117
  }
98
118
  /**
99
119
  * Create a route handler with validation and OpenAPI metadata.
@@ -111,20 +131,23 @@ export function createRoutes(factory) {
111
131
  * - If multiple 2xx schemas are defined, each is tried in order (200, 201)
112
132
  * - The first schema that successfully validates determines the status code
113
133
  *
134
+ * @param router - The Hono router instance (needed for OpenAPI context)
135
+ * @param config - Route configuration
136
+ *
114
137
  * @example
115
138
  * ```typescript
116
139
  * // Single response type
117
- * route({
140
+ * router.post('/session', ...route(router, {
118
141
  * body: StartSessionDto,
119
142
  * responses: { 200: StartSessionResponseDto },
120
143
  * handler: async ({ body }) => {
121
144
  * // body is typed as InferOutput<typeof StartSessionDto>
122
145
  * return { email: body.email }; // Must match StartSessionResponseDto
123
146
  * }
124
- * })
147
+ * }))
125
148
  *
126
149
  * // Union response type (multiple 2xx responses with automatic status)
127
- * route({
150
+ * router.post('/login', ...route(router, {
128
151
  * body: LoginDto,
129
152
  * responses: {
130
153
  * 200: MfaRequiredDto, // Returns 200 if data matches this
@@ -136,55 +159,52 @@ export function createRoutes(factory) {
136
159
  * if (needsMfa) return { mfaRequired: true, methods: ['totp'] }; // 200
137
160
  * return { sessionId: '123', token: 'abc' }; // 201
138
161
  * }
139
- * })
162
+ * }))
140
163
  *
141
- * // Automatic key stripping (useful with Prisma)
142
- * route({
143
- * responses: { 200: UserDto },
144
- * handler: async ({ services }) => {
145
- * const user = await prisma.user.findUnique({ ... });
146
- * // user might have { id, email, password, createdAt, ... }
147
- * // But only fields in UserDto will be returned
148
- * return user; // Extra keys stripped, returns 200
149
- * }
150
- * })
164
+ * // With pagination (auto-detected from ListQuerySchema)
165
+ * router.get('/users', ...route(router, {
166
+ * query: ListQuerySchema, // Contains page, pageSize - pagination headers auto-added
167
+ * responses: { 200: UsersResponseDto },
168
+ * handler: async ({ query }) => { ... }
169
+ * }))
170
+ *
171
+ * // With custom response headers
172
+ * router.get('/data', ...route(router, {
173
+ * openapi: {
174
+ * responseHeaders: ['Api-Version', 'Server-Timing']
175
+ * },
176
+ * responses: { 200: DataDto },
177
+ * handler: async () => { ... }
178
+ * }))
151
179
  * ```
152
180
  */
153
- export function route(config) {
181
+ export function route(router, config) {
154
182
  const middlewares = [];
183
+ // Get OpenAPI context from the router
184
+ const openAPIContext = getOpenAPIContext(router);
185
+ // Detect pagination from query schema
186
+ const hasPagination = hasPaginationFields(config.query);
155
187
  // Add OpenAPI metadata
156
- middlewares.push(buildOpenAPIMiddleware(config));
188
+ middlewares.push(buildOpenAPIMiddleware(config, openAPIContext, hasPagination));
157
189
  // Add custom middleware (e.g., auth) before validation
158
190
  if (config.middleware) {
159
191
  middlewares.push(...config.middleware);
160
192
  }
161
- // Add validation middleware with custom error handler (returns 422 instead of 400)
193
+ // Add validation middleware (returns 422 instead of Hono's default 400)
162
194
  if (config.body) {
163
- middlewares.push(validator('json', config.body, (result, c) => {
164
- if (!result.success) {
165
- return c.json({ error: 'Validation failed', issues: result.error }, 422);
166
- }
167
- }));
195
+ middlewares.push(createValidationMiddleware('json', config.body));
168
196
  }
169
197
  if (config.query) {
170
- middlewares.push(validator('query', config.query, (result, c) => {
171
- if (!result.success) {
172
- return c.json({ error: 'Validation failed', issues: result.error }, 422);
173
- }
174
- }));
198
+ middlewares.push(createValidationMiddleware('query', config.query));
175
199
  }
176
200
  if (config.params) {
177
- middlewares.push(validator('param', config.params, (result, c) => {
178
- if (!result.success) {
179
- return c.json({ error: 'Validation failed', issues: result.error }, 422);
180
- }
181
- }));
201
+ middlewares.push(createValidationMiddleware('param', config.params));
182
202
  }
183
203
  // Add handler wrapper
184
204
  middlewares.push(async (c) => {
185
205
  const routeContext = buildRouteContext(c);
186
206
  const result = await config.handler(routeContext);
187
- return handleResponse(result, config.responses, config.serialization, config.summary, c);
207
+ return handleResponse(result, config.responses, config.serialization, config.strictTypes, config.summary, c);
188
208
  });
189
209
  return middlewares;
190
210
  }
@@ -217,7 +237,7 @@ function serializeResponseData(data, serializationConfig) {
217
237
  * @param context - Hono context
218
238
  * @returns Response object or undefined if handled
219
239
  */
220
- async function handleResponse(result, responses, serializationConfig, routeSummary, context) {
240
+ async function handleResponse(result, responses, serializationConfig, strictTypes, routeSummary, context) {
221
241
  // If handler returned a Response, return it directly (for custom responses like text)
222
242
  if (result instanceof Response) {
223
243
  return result;
@@ -230,7 +250,14 @@ async function handleResponse(result, responses, serializationConfig, routeSumma
230
250
  // Serialize Prisma types and custom transformers
231
251
  let serializedResult;
232
252
  try {
233
- serializedResult = serializeResponseData(result, serializationConfig);
253
+ // Only serialize if strictTypes is disabled (default)
254
+ // If strictTypes is true, we expect the handler to return exact types
255
+ if (!strictTypes) {
256
+ serializedResult = serializeResponseData(result, serializationConfig);
257
+ }
258
+ else {
259
+ serializedResult = result;
260
+ }
234
261
  }
235
262
  catch (error) {
236
263
  // Handle serialization errors (circular references, max depth exceeded)
@@ -300,13 +327,15 @@ async function parseResponse(data, responses) {
300
327
  'This would throw an error in production.');
301
328
  return { data };
302
329
  }
303
- function buildOpenAPIMiddleware(config) {
304
- const responses = buildOpenAPIResponses(config);
305
- // Build security requirement based on global security schemes
330
+ function buildOpenAPIMiddleware(config, openAPIContext, hasPagination) {
331
+ const responses = buildOpenAPIResponses(config, openAPIContext, hasPagination);
332
+ // Build security requirement based on security schemes from context
306
333
  // Public routes have no security, authenticated routes use all available schemes
307
334
  const security = config.public
308
335
  ? []
309
- : getGlobalSecuritySchemes().map((scheme) => ({ [scheme]: [] }));
336
+ : openAPIContext.securitySchemes.map((scheme) => ({ [scheme]: [] }));
337
+ // Extract responseHeaders from openapi config to avoid passing it to hono-openapi
338
+ const { responseHeaders: _responseHeaders, ...restOpenapi } = config.openapi ?? {};
310
339
  const openApiConfig = {
311
340
  operationId: config.operationId || config.summary,
312
341
  tags: config.tags,
@@ -314,53 +343,30 @@ function buildOpenAPIMiddleware(config) {
314
343
  description: config.description,
315
344
  responses: responses,
316
345
  security,
317
- ...(config.paginate && { parameters: buildPaginationParameters() }),
318
- ...config.openapi,
346
+ ...restOpenapi,
319
347
  };
320
348
  return honoDescribeRoute(openApiConfig);
321
349
  }
322
- /**
323
- * Build pagination parameters for OpenAPI spec
324
- */
325
- function buildPaginationParameters() {
326
- return [
327
- {
328
- name: 'page',
329
- in: 'query',
330
- required: false,
331
- schema: {
332
- type: 'integer',
333
- format: 'int32',
334
- minimum: 1,
335
- maximum: 2147483647, // Max int32
336
- default: 1,
337
- },
338
- description: 'Page number',
339
- },
340
- {
341
- name: 'limit',
342
- in: 'query',
343
- required: false,
344
- schema: {
345
- type: 'integer',
346
- format: 'int32',
347
- minimum: 1,
348
- maximum: 100,
349
- default: 50,
350
- },
351
- description: 'Number of items per page',
352
- },
353
- ];
354
- }
355
- function buildOpenAPIResponses(config) {
350
+ function buildOpenAPIResponses(config, openAPIContext, hasPagination) {
356
351
  const responses = {};
357
352
  // Add default error responses
353
+ // Include 422 when body, query, or params validation is configured
354
+ const hasValidation = !!(config.body || config.query || config.params);
358
355
  const defaultResponses = config.public
359
- ? { 400: undefined, 429: undefined, 500: undefined }
360
- : { 400: undefined, 401: undefined, 429: undefined, 500: undefined };
356
+ ? {
357
+ 400: undefined,
358
+ ...(hasValidation && { 422: undefined }),
359
+ 429: undefined,
360
+ 500: undefined,
361
+ }
362
+ : {
363
+ 400: undefined,
364
+ 401: undefined,
365
+ ...(hasValidation && { 422: undefined }),
366
+ 429: undefined,
367
+ 500: undefined,
368
+ };
361
369
  const allResponses = { ...defaultResponses, ...(config.responses || {}) };
362
- // Get global hooks
363
- const hooks = getGlobalResponseHooks();
364
370
  for (const [statusCode, schema] of Object.entries(allResponses)) {
365
371
  const code = Number(statusCode);
366
372
  const description = STATUS_DESCRIPTIONS[code] || 'Response';
@@ -393,18 +399,20 @@ function buildOpenAPIResponses(config) {
393
399
  }
394
400
  : {}),
395
401
  };
396
- // Apply hooks to build up headers
397
- for (const hook of hooks) {
398
- response = hook(response, {
399
- statusCode,
400
- routeConfig: {
401
- public: config.public,
402
- paginate: config.paginate,
403
- tags: config.tags,
404
- summary: config.summary,
405
- },
406
- });
407
- }
402
+ // Build processor context
403
+ const processorContext = {
404
+ statusCode,
405
+ hasPagination,
406
+ routeConfig: {
407
+ ...config,
408
+ public: config.public,
409
+ tags: config.tags,
410
+ summary: config.summary,
411
+ openapi: config.openapi,
412
+ },
413
+ };
414
+ // Apply processors to build up headers
415
+ response = applyProcessors(response, processorContext, openAPIContext.processors);
408
416
  responses[statusCode] = response;
409
417
  }
410
418
  return responses;
@@ -1 +1 @@
1
- {"version":3,"file":"route-helpers.js","sourceRoot":"","sources":["../../src/http/route-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route-helpers.js","sourceRoot":"","sources":["../../src/http/route-helpers.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -12,19 +12,19 @@ export type { OpenAPIV3 } from 'openapi-types';
12
12
  export { type Config, type ConfigOptions, type ConfigProvider, ConfigValidationException, createConfig, type DotenvProviderOptions, dotenvProvider, type EnvProviderOptions, envProvider, objectProvider, parseArray, parseBoolean, parseJson, type SsmProviderOptions, ssmProvider, toCamelCase, toSnakeCase, validateConfig, } from './config/index.js';
13
13
  export { bootstrap } from './core/bootstrap.js';
14
14
  export { defineModule } from './core/module.js';
15
- export type { BootstrapOptions, BootstrapResult, Constructor, Environment, LoggerOptions, MiddlewareOptions, ModuleConfig, OpenAPIDocumentation, OpenAPIOptions, OpenAPIResponseHook, ProviderConfig, RateLimitOptions, RateLimitStorage, ServiceScope, } from './core/types.js';
15
+ export type { BootstrapOptions, BootstrapResult, Constructor, Environment, LoggerOptions, MiddlewareOptions, ModuleConfig, OpenAPIDocumentation, OpenAPIOptions, OpenAPIProcessorContext, OpenAPIResponseObject, OpenAPIResponseProcessor, ProviderConfig, RateLimitOptions, RateLimitStorage, RouteConfigExtensions, ServiceScope, } from './core/types.js';
16
16
  export { createErrorHandler, defaultErrorHandler } from './http/error-handler.js';
17
17
  export { type ErrorResponse, ErrorResponseDto, type ValidationErrorResponse, ValidationErrorResponseDto, type ValidationIssue, ValidationIssueDto, } from './http/error-response.dto.js';
18
18
  export { BadGatewayException, BadRequestException, ConflictException, DomainException, ForbiddenException, GatewayTimeoutException, GoneException, InternalServerErrorException, LockedException, MethodNotAllowedException, NotFoundException, NotImplementedException, PayloadTooLargeException, PreconditionFailedException, RequestTimeoutException, ServiceUnavailableException, TooManyRequestsException, UnauthorizedException, UnprocessableEntityException, UnsupportedMediaTypeException, ValidationException, } from './http/errors.js';
19
- export type { RouteConfig, RouteContext, RouteFactory, ValibotSchema, } from './http/route-helpers.js';
19
+ export type { BoundRouteFunction, RouteConfig, RouteContext, RouteFactory, RouteOpenAPIOptions, ValibotSchema, } from './http/route-helpers.js';
20
20
  export { createRoutes, route } from './http/route-helpers.js';
21
21
  export { createCaslScope, withCaslScope } from './list-query/casl.js';
22
22
  export type { AggregationConfig, AggregationResult, AggregationType, FieldPath, FilterOperator, ParsedFilter, ParsedQueryParams, ParsedSort, PrismaAggregationParams, PrismaListParams, RawQueryParams, SchemaValidationConfig, SearchFieldInput, SortDirection, ValidatedListParams, } from './list-query/index.js';
23
23
  export { booleanFilterSchema, createFilterSchema, createListQuery, createSortSchema, dateFilterSchema, enumFilterSchema, type ListQueryBuilder, type ListQueryConfig, ListQuerySchema, numberFilterSchema, type PaginatedResult, relationFilterSchema, sortDirectionSchema, stringFilterSchema, } from './list-query/index.js';
24
24
  export { createRateLimitMiddleware } from './middleware/rate-limit.js';
25
25
  export { defaultOpenAPIComponents } from './openapi/defaults.js';
26
- export { createCorsHeadersHook, createPaginationHeadersHook, createRateLimitHeadersHook, } from './openapi/hooks.js';
27
26
  export { configureOpenAPI } from './openapi/openapi.js';
27
+ export { applyProcessors, createBuiltinProcessors, createCorsHeadersProcessor, createRateLimitHeadersProcessor, paginationHeadersProcessor, responseHeadersProcessor, } from './openapi/openapi-processors.js';
28
28
  export { deepMerge } from './utils/deep-merge.js';
29
29
  export { isDevelopment, isLambda, isProduction, isTest } from './utils/environment.js';
30
30
  export { getClientIp } from './utils/get-client-ip.js';
@@ -32,6 +32,6 @@ export type { Logger } from './utils/logger.js';
32
32
  export { createLogger, createPlainLogger, defaultLogger } from './utils/logger.js';
33
33
  export { omit } from './utils/omit.js';
34
34
  export { pick } from './utils/pick.js';
35
- export type { AcceptPrismaTypes, SerializationConfig, SerializedTypes, TypeTransformer, } from './utils/serialize-prisma-types.js';
35
+ export type { AcceptPrismaTypes, PrismaDecimalLike, SerializationConfig, SerializedTypes, TypeTransformer, } from './utils/serialize-prisma-types.js';
36
36
  export { defaultConfig, serializePrismaTypes } from './utils/serialize-prisma-types.js';
37
37
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -24,8 +24,8 @@ export { booleanFilterSchema, createFilterSchema, createListQuery, createSortSch
24
24
  export { createRateLimitMiddleware } from './middleware/rate-limit.js';
25
25
  // OpenAPI
26
26
  export { defaultOpenAPIComponents } from './openapi/defaults.js';
27
- export { createCorsHeadersHook, createPaginationHeadersHook, createRateLimitHeadersHook, } from './openapi/hooks.js';
28
27
  export { configureOpenAPI } from './openapi/openapi.js';
28
+ export { applyProcessors, createBuiltinProcessors, createCorsHeadersProcessor, createRateLimitHeadersProcessor, paginationHeadersProcessor, responseHeadersProcessor, } from './openapi/openapi-processors.js';
29
29
  // Utilities
30
30
  export { deepMerge } from './utils/deep-merge.js';
31
31
  export { isDevelopment, isLambda, isProduction, isTest } from './utils/environment.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,gBAAgB;AAChB,OAAO,EAIL,yBAAyB,EACzB,YAAY,EAEZ,cAAc,EAEd,WAAW,EACX,cAAc,EACd,UAAU,EACV,YAAY,EACZ,SAAS,EAET,WAAW,EACX,WAAW,EACX,WAAW,EACX,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,iBAAiB;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAkBhD,eAAe;AACf,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAEL,gBAAgB,EAEhB,0BAA0B,EAE1B,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EACb,4BAA4B,EAC5B,eAAe,EACf,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EACrB,4BAA4B,EAC5B,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC9D,4BAA4B;AAC5B,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAkBtE,mDAAmD;AACnD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAGhB,eAAe,EACf,kBAAkB,EAElB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,aAAa;AACb,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,UAAU;AACV,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAOvC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,gBAAgB;AAChB,OAAO,EAIL,yBAAyB,EACzB,YAAY,EAEZ,cAAc,EAEd,WAAW,EACX,cAAc,EACd,UAAU,EACV,YAAY,EACZ,SAAS,EAET,WAAW,EACX,WAAW,EACX,WAAW,EACX,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,iBAAiB;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAqBhD,eAAe;AACf,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAEL,gBAAgB,EAEhB,0BAA0B,EAE1B,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EACb,4BAA4B,EAC5B,eAAe,EACf,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EACrB,4BAA4B,EAC5B,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAS1B,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC9D,4BAA4B;AAC5B,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAkBtE,mDAAmD;AACnD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAGhB,eAAe,EACf,kBAAkB,EAElB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,aAAa;AACb,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,UAAU;AACV,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,iCAAiC,CAAC;AAEzC,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAQvC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC"}
@@ -1,36 +1,37 @@
1
- import type { PureAbility } from '@casl/ability';
2
1
  import type { ListQueryBuilder } from './builder.js';
3
2
  /**
4
3
  * Create a CASL scope function that can be applied to a ListQueryBuilder
5
4
  *
6
- * @param ability - The CASL ability instance
5
+ * @param ability - The CASL ability instance (any object that works with @casl/prisma's accessibleBy)
7
6
  * @param subject - The Prisma model name (e.g., 'User', 'Organization')
8
7
  * @returns A function that applies the CASL conditions to a builder
9
8
  *
10
9
  * @example
11
10
  * ```typescript
12
- * const scope = createCaslScope(ability, 'User');
11
+ * import { PureAbility } from '@casl/ability';
12
+ * const scope = await createCaslScope(ability, 'User');
13
13
  * const params = createListQuery({ filter: UserFilterSchema })
14
14
  * .parse(query)
15
15
  * .apply(scope)
16
16
  * .build();
17
17
  * ```
18
18
  */
19
- export declare function createCaslScope<TAbility extends PureAbility<any, any>>(ability: TAbility, subject: string): (builder: ListQueryBuilder<any, any>) => ListQueryBuilder<any, any>;
19
+ export declare function createCaslScope<TAbility = any>(ability: TAbility, subject: string): Promise<(builder: ListQueryBuilder<any, any>) => ListQueryBuilder<any, any>>;
20
20
  /**
21
21
  * Create a CASL scope helper that extracts ability from context
22
22
  *
23
23
  * @param subject - The Prisma model name (e.g., 'User', 'Organization')
24
- * @returns A function that takes a builder and ability, and applies the CASL conditions
24
+ * @returns An async function that takes a builder and ability, and applies the CASL conditions
25
25
  *
26
26
  * @example
27
27
  * ```typescript
28
+ * import { PureAbility } from '@casl/ability';
28
29
  * const scopeUsers = withCaslScope('User');
29
- * const params = createListQuery({ filter: UserFilterSchema })
30
+ * const params = await createListQuery({ filter: UserFilterSchema })
30
31
  * .parse(query)
31
- * .apply(scopeUsers, ability)
32
+ * .applyAsync(scopeUsers, ability)
32
33
  * .build();
33
34
  * ```
34
35
  */
35
- export declare function withCaslScope(subject: string): <TAbility extends PureAbility<any, any>>(builder: ListQueryBuilder<any, any>, ability: TAbility) => ListQueryBuilder<any, any>;
36
+ export declare function withCaslScope(subject: string): <TAbility = any>(builder: ListQueryBuilder<any, any>, ability: TAbility) => Promise<ListQueryBuilder<any, any>>;
36
37
  //# sourceMappingURL=casl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"casl.d.ts","sourceRoot":"","sources":["../../src/list-query/casl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD;;;;;;;;;;;;;;;GAeG;AAEH,wBAAgB,eAAe,CAAC,QAAQ,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EACpE,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,MAAM,IAKP,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,gCAC5C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,IAGzC,QAAQ,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAGtC,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,EACnC,SAAS,QAAQ,gCAKpB"}
1
+ {"version":3,"file":"casl.d.ts","sourceRoot":"","sources":["../../src/list-query/casl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAkBrD;;;;;;;;;;;;;;;;GAgBG;AAEH,wBAAsB,eAAe,CAAC,QAAQ,GAAG,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,qBAKrE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,iCAC5C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,IAE7B,QAAQ,GAAG,GAAG,EAE1B,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,EACnC,SAAS,QAAQ,yCAMpB"}