hono-crud 0.7.0 → 0.9.0
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
CHANGED
|
@@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
%b
|
|
9
|
+
## [0.8.0] — 2026-05-03
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- `middlewares?: MiddlewareHandler[]` slot on every per-endpoint config in `EndpointsConfig<M>` (`create`, `list`, `read`, `update`, `delete`, `search`, `aggregate`, `restore`, `batchCreate`, `batchUpdate`, `batchDelete`, `batchRestore`, `batchUpsert`, `export`, `import`, `upsert`, `clone`). Middleware listed here runs before the endpoint handler. The existing `RegisterCrudOptions.endpointMiddlewares` continues to work and overrides config-API middlewares for the same verb. Coverage: `tests/per-endpoint-middlewares.test.ts`.
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
- `HonoOpenAPIHandler.registerRoute` was passing the OpenAPI-style path (`/widgets/{id}`) to `app.use(...)` for per-route middleware. Hono's `use` expects the route-syntax form (`/widgets/:id`), so middleware on dynamic-segment routes (e.g., `delete`, `read`, `update`, `restore`, `clone`) silently never fired. The fix passes the raw path to `app.use(...)` and keeps the OpenAPI conversion only for `createRoute({ path })`. This unblocks both the new config-API `middlewares` slot and the existing `RegisterCrudOptions.endpointMiddlewares` option on `:id` routes.
|
|
16
|
+
|
|
17
|
+
### Compatibility
|
|
18
|
+
- Additive. Existing consumers see no behaviour change other than the bugfix above (middleware that previously was silently dropped on `:id` routes will now run as documented).
|
|
19
|
+
|
|
8
20
|
%b
|
|
9
21
|
%b
|
|
10
22
|
%b
|
|
@@ -63,3 +75,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
63
75
|
[0.5.3]: https://github.com/kshdotdev/hono-crud/compare/v0.5.2...v0.5.3
|
|
64
76
|
[0.6.0]: https://github.com/kshdotdev/hono-crud/compare/v0.5.3...v0.6.0
|
|
65
77
|
[0.7.0]: https://github.com/kshdotdev/hono-crud/compare/v0.6.0...v0.7.0
|
|
78
|
+
[0.8.0]: https://github.com/kshdotdev/hono-crud/compare/v0.7.0...v0.8.0
|
|
79
|
+
[0.9.0]: https://github.com/kshdotdev/hono-crud/compare/v0.7.0...v0.9.0
|
|
@@ -3,7 +3,7 @@ import { M as MetaInput, I as IncludeOptions, l as FilterCondition, f as Relatio
|
|
|
3
3
|
import { Env } from 'hono';
|
|
4
4
|
import { a as CreateEndpoint, M as ModelObject, R as ReadEndpoint, U as UpdateEndpoint, D as DeleteEndpoint, L as ListEndpoint, b as RestoreEndpoint, B as BatchCreateEndpoint, c as BatchDeleteEndpoint, d as BatchRestoreEndpoint, e as BatchUpdateEndpoint, f as BatchUpdateItem, A as AggregateEndpoint, g as BatchUpsertEndpoint, h as CloneEndpoint, i as UpsertEndpoint, E as ExportEndpoint, I as ImportEndpoint, S as SearchEndpoint, V as VersionCompareEndpoint, j as VersionHistoryEndpoint, k as VersionReadEndpoint, l as VersionRollbackEndpoint } from '../../import-D8nboMpT.js';
|
|
5
5
|
import { z } from 'zod';
|
|
6
|
-
import { A as AdapterBundle } from '../../index-
|
|
6
|
+
import { A as AdapterBundle } from '../../index-aGdjAC27.js';
|
|
7
7
|
import '../../types-B5wq2iKZ.js';
|
|
8
8
|
import '../../types-BAcN7U0B.js';
|
|
9
9
|
import '@hono/zod-openapi';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Env } from 'hono';
|
|
2
2
|
import { a as CreateEndpoint, M as ModelObject, D as DeleteEndpoint, L as ListEndpoint, R as ReadEndpoint, U as UpdateEndpoint, B as BatchCreateEndpoint, c as BatchDeleteEndpoint, d as BatchRestoreEndpoint, e as BatchUpdateEndpoint, f as BatchUpdateItem, g as BatchUpsertEndpoint, b as RestoreEndpoint, A as AggregateEndpoint, h as CloneEndpoint, E as ExportEndpoint, I as ImportEndpoint, S as SearchEndpoint, i as UpsertEndpoint, V as VersionCompareEndpoint, j as VersionHistoryEndpoint, k as VersionReadEndpoint, l as VersionRollbackEndpoint } from '../../import-D8nboMpT.js';
|
|
3
3
|
import { M as MetaInput, L as ListFilters, P as PaginatedResult, I as IncludeOptions, h as AggregateOptions, i as AggregateResult, k as AggregateField, S as SearchOptions, j as SearchResult } from '../../types-tpG0M7Va.js';
|
|
4
|
-
import { A as AdapterBundle } from '../../index-
|
|
4
|
+
import { A as AdapterBundle } from '../../index-aGdjAC27.js';
|
|
5
5
|
import 'zod';
|
|
6
6
|
import '../../route-AzM3iPZP.js';
|
|
7
7
|
import 'hono/utils/http-status';
|
|
@@ -249,6 +249,8 @@ interface CreateHooks<M extends MetaInput> extends HookConfig {
|
|
|
249
249
|
*/
|
|
250
250
|
interface CreateEndpointConfig<M extends MetaInput> {
|
|
251
251
|
openapi?: OpenAPIConfig;
|
|
252
|
+
/** Middleware applied to this endpoint route. Runs before the handler. */
|
|
253
|
+
middlewares?: MiddlewareHandler[];
|
|
252
254
|
hooks?: CreateHooks<M>;
|
|
253
255
|
nestedCreate?: string[];
|
|
254
256
|
/**
|
|
@@ -320,6 +322,8 @@ interface ListHooks<M extends MetaInput> {
|
|
|
320
322
|
*/
|
|
321
323
|
interface ListEndpointConfig<M extends MetaInput> {
|
|
322
324
|
openapi?: OpenAPIConfig;
|
|
325
|
+
/** Middleware applied to this endpoint route. Runs before the handler. */
|
|
326
|
+
middlewares?: MiddlewareHandler[];
|
|
323
327
|
filtering?: FilteringConfig;
|
|
324
328
|
search?: SearchConfig;
|
|
325
329
|
sorting?: SortingConfig;
|
|
@@ -340,6 +344,8 @@ interface ReadHooks<M extends MetaInput> {
|
|
|
340
344
|
*/
|
|
341
345
|
interface ReadEndpointConfig<M extends MetaInput> {
|
|
342
346
|
openapi?: OpenAPIConfig;
|
|
347
|
+
/** Middleware applied to this endpoint route. Runs before the handler. */
|
|
348
|
+
middlewares?: MiddlewareHandler[];
|
|
343
349
|
lookupField?: string;
|
|
344
350
|
additionalFilters?: string[];
|
|
345
351
|
includes?: string[];
|
|
@@ -366,6 +372,8 @@ interface UpdateHooks<M extends MetaInput> extends HookConfig {
|
|
|
366
372
|
*/
|
|
367
373
|
interface UpdateEndpointConfig<M extends MetaInput> {
|
|
368
374
|
openapi?: OpenAPIConfig;
|
|
375
|
+
/** Middleware applied to this endpoint route. Runs before the handler. */
|
|
376
|
+
middlewares?: MiddlewareHandler[];
|
|
369
377
|
lookupField?: string;
|
|
370
378
|
additionalFilters?: string[];
|
|
371
379
|
fields?: UpdateFieldConfig;
|
|
@@ -394,6 +402,8 @@ interface DeleteHooks<M extends MetaInput> extends HookConfig {
|
|
|
394
402
|
*/
|
|
395
403
|
interface DeleteEndpointConfig<M extends MetaInput> {
|
|
396
404
|
openapi?: OpenAPIConfig;
|
|
405
|
+
/** Middleware applied to this endpoint route. Runs before the handler. */
|
|
406
|
+
middlewares?: MiddlewareHandler[];
|
|
397
407
|
lookupField?: string;
|
|
398
408
|
additionalFilters?: string[];
|
|
399
409
|
includeCascadeResults?: boolean;
|
|
@@ -417,6 +427,8 @@ interface SearchHooks<M extends MetaInput> {
|
|
|
417
427
|
*/
|
|
418
428
|
interface SearchEndpointConfig<M extends MetaInput> {
|
|
419
429
|
openapi?: OpenAPIConfig;
|
|
430
|
+
/** Middleware applied to this endpoint route. Runs before the handler. */
|
|
431
|
+
middlewares?: MiddlewareHandler[];
|
|
420
432
|
/** Fields included in the search index (maps to SearchEndpoint.searchFields). */
|
|
421
433
|
fields?: string[];
|
|
422
434
|
/** Reserved — currently unused; SearchEndpoint reads `q` by default. */
|
|
@@ -436,6 +448,8 @@ interface AggregateHooks {
|
|
|
436
448
|
*/
|
|
437
449
|
interface AggregateEndpointConfig<_M extends MetaInput> {
|
|
438
450
|
openapi?: OpenAPIConfig;
|
|
451
|
+
/** Middleware applied to this endpoint route. Runs before the handler. */
|
|
452
|
+
middlewares?: MiddlewareHandler[];
|
|
439
453
|
/** Fields the client may filter aggregations by (maps to AggregateEndpoint.filterFields). */
|
|
440
454
|
fields?: string[];
|
|
441
455
|
hooks?: AggregateHooks;
|
|
@@ -452,6 +466,8 @@ interface RestoreHooks<M extends MetaInput> extends HookConfig {
|
|
|
452
466
|
*/
|
|
453
467
|
interface RestoreEndpointConfig<M extends MetaInput> {
|
|
454
468
|
openapi?: OpenAPIConfig;
|
|
469
|
+
/** Middleware applied to this endpoint route. Runs before the handler. */
|
|
470
|
+
middlewares?: MiddlewareHandler[];
|
|
455
471
|
hooks?: RestoreHooks<M>;
|
|
456
472
|
}
|
|
457
473
|
/**
|
|
@@ -466,6 +482,8 @@ interface BatchCreateHooks<M extends MetaInput> extends HookConfig {
|
|
|
466
482
|
*/
|
|
467
483
|
interface BatchCreateEndpointConfig<M extends MetaInput> {
|
|
468
484
|
openapi?: OpenAPIConfig;
|
|
485
|
+
/** Middleware applied to this endpoint route. Runs before the handler. */
|
|
486
|
+
middlewares?: MiddlewareHandler[];
|
|
469
487
|
hooks?: BatchCreateHooks<M>;
|
|
470
488
|
bodySchema?: ZodObject<ZodRawShape>;
|
|
471
489
|
maxBatchSize?: number;
|
|
@@ -482,6 +500,8 @@ interface BatchUpdateHooks<M extends MetaInput> extends HookConfig {
|
|
|
482
500
|
*/
|
|
483
501
|
interface BatchUpdateEndpointConfig<M extends MetaInput> {
|
|
484
502
|
openapi?: OpenAPIConfig;
|
|
503
|
+
/** Middleware applied to this endpoint route. Runs before the handler. */
|
|
504
|
+
middlewares?: MiddlewareHandler[];
|
|
485
505
|
hooks?: BatchUpdateHooks<M>;
|
|
486
506
|
maxBatchSize?: number;
|
|
487
507
|
}
|
|
@@ -497,6 +517,8 @@ interface BatchDeleteHooks<M extends MetaInput> extends HookConfig {
|
|
|
497
517
|
*/
|
|
498
518
|
interface BatchDeleteEndpointConfig<M extends MetaInput> {
|
|
499
519
|
openapi?: OpenAPIConfig;
|
|
520
|
+
/** Middleware applied to this endpoint route. Runs before the handler. */
|
|
521
|
+
middlewares?: MiddlewareHandler[];
|
|
500
522
|
hooks?: BatchDeleteHooks<M>;
|
|
501
523
|
maxBatchSize?: number;
|
|
502
524
|
}
|
|
@@ -512,6 +534,8 @@ interface BatchRestoreHooks<M extends MetaInput> extends HookConfig {
|
|
|
512
534
|
*/
|
|
513
535
|
interface BatchRestoreEndpointConfig<M extends MetaInput> {
|
|
514
536
|
openapi?: OpenAPIConfig;
|
|
537
|
+
/** Middleware applied to this endpoint route. Runs before the handler. */
|
|
538
|
+
middlewares?: MiddlewareHandler[];
|
|
515
539
|
hooks?: BatchRestoreHooks<M>;
|
|
516
540
|
maxBatchSize?: number;
|
|
517
541
|
}
|
|
@@ -527,6 +551,8 @@ interface BatchUpsertHooks<M extends MetaInput> extends HookConfig {
|
|
|
527
551
|
*/
|
|
528
552
|
interface BatchUpsertEndpointConfig<M extends MetaInput> {
|
|
529
553
|
openapi?: OpenAPIConfig;
|
|
554
|
+
/** Middleware applied to this endpoint route. Runs before the handler. */
|
|
555
|
+
middlewares?: MiddlewareHandler[];
|
|
530
556
|
hooks?: BatchUpsertHooks<M>;
|
|
531
557
|
bodySchema?: ZodObject<ZodRawShape>;
|
|
532
558
|
/** Conflict-target column(s) for the upsert. String is normalized to single-element array. */
|
|
@@ -543,6 +569,8 @@ interface BatchUpsertEndpointConfig<M extends MetaInput> {
|
|
|
543
569
|
*/
|
|
544
570
|
interface ExportEndpointConfig<_M extends MetaInput> {
|
|
545
571
|
openapi?: OpenAPIConfig;
|
|
572
|
+
/** Middleware applied to this endpoint route. Runs before the handler. */
|
|
573
|
+
middlewares?: MiddlewareHandler[];
|
|
546
574
|
formats?: ('csv' | 'json')[];
|
|
547
575
|
/** Maximum rows to export (maps to ExportEndpoint.maxExportRecords). */
|
|
548
576
|
maxRows?: number;
|
|
@@ -563,6 +591,8 @@ interface ImportHooks<M extends MetaInput> {
|
|
|
563
591
|
*/
|
|
564
592
|
interface ImportEndpointConfig<M extends MetaInput> {
|
|
565
593
|
openapi?: OpenAPIConfig;
|
|
594
|
+
/** Middleware applied to this endpoint route. Runs before the handler. */
|
|
595
|
+
middlewares?: MiddlewareHandler[];
|
|
566
596
|
hooks?: ImportHooks<M>;
|
|
567
597
|
/** Maximum rows accepted per request (maps to ImportEndpoint.maxBatchSize). */
|
|
568
598
|
maxRows?: number;
|
|
@@ -579,6 +609,8 @@ interface UpsertHooks<M extends MetaInput> extends HookConfig {
|
|
|
579
609
|
*/
|
|
580
610
|
interface UpsertEndpointConfig<M extends MetaInput> {
|
|
581
611
|
openapi?: OpenAPIConfig;
|
|
612
|
+
/** Middleware applied to this endpoint route. Runs before the handler. */
|
|
613
|
+
middlewares?: MiddlewareHandler[];
|
|
582
614
|
hooks?: UpsertHooks<M>;
|
|
583
615
|
bodySchema?: ZodObject<ZodRawShape>;
|
|
584
616
|
/** Conflict-target column(s) for the upsert. String is normalized to single-element array. */
|
|
@@ -596,6 +628,8 @@ interface CloneHooks<M extends MetaInput> {
|
|
|
596
628
|
*/
|
|
597
629
|
interface CloneEndpointConfig<M extends MetaInput> {
|
|
598
630
|
openapi?: OpenAPIConfig;
|
|
631
|
+
/** Middleware applied to this endpoint route. Runs before the handler. */
|
|
632
|
+
middlewares?: MiddlewareHandler[];
|
|
599
633
|
hooks?: CloneHooks<M>;
|
|
600
634
|
/** Field names to strip from the cloned record (maps to CloneEndpoint.excludeFromClone). */
|
|
601
635
|
fieldsToReset?: string[];
|
package/dist/index.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export { a as CrudEventListener, E as EventSubscription } from './types-rJSyOxkJ
|
|
|
24
24
|
import { C as CrudEventEmitter } from './emitter-vW4MflrJ.js';
|
|
25
25
|
export { g as getEventEmitter, r as resolveEventEmitter, s as setEventEmitter } from './emitter-vW4MflrJ.js';
|
|
26
26
|
export { B as BulkPatchEndpoint, a as BulkPatchResult } from './bulk-patch-DG_5emFi.js';
|
|
27
|
-
export { A as AdapterBundle, a as ConfigAggregateEndpoint, B as ConfigBatchCreateEndpoint, b as ConfigBatchDeleteEndpoint, c as ConfigBatchRestoreEndpoint, d as ConfigBatchUpdateEndpoint, e as ConfigBatchUpsertEndpoint, C as ConfigCloneEndpoint, f as ConfigCreateEndpoint, D as ConfigDeleteEndpoint, E as ConfigExportEndpoint, I as ConfigImportEndpoint, L as ConfigListEndpoint, R as ConfigReadEndpoint, g as ConfigRestoreEndpoint, S as ConfigSearchEndpoint, U as ConfigUpdateEndpoint, h as ConfigUpsertEndpoint, i as CrudEndpointName, j as CrudEndpoints, k as EndpointClass, l as EndpointMiddlewares, m as EndpointsConfig, G as GeneratedEndpoints, H as HonoOpenAPIApp, M as MemoryAdapters, n as RegisterCrudOptions, o as contentJson, p as defineEndpoints, q as errorResponse, r as registerCrud, s as successResponse } from './index-
|
|
27
|
+
export { A as AdapterBundle, a as ConfigAggregateEndpoint, B as ConfigBatchCreateEndpoint, b as ConfigBatchDeleteEndpoint, c as ConfigBatchRestoreEndpoint, d as ConfigBatchUpdateEndpoint, e as ConfigBatchUpsertEndpoint, C as ConfigCloneEndpoint, f as ConfigCreateEndpoint, D as ConfigDeleteEndpoint, E as ConfigExportEndpoint, I as ConfigImportEndpoint, L as ConfigListEndpoint, R as ConfigReadEndpoint, g as ConfigRestoreEndpoint, S as ConfigSearchEndpoint, U as ConfigUpdateEndpoint, h as ConfigUpsertEndpoint, i as CrudEndpointName, j as CrudEndpoints, k as EndpointClass, l as EndpointMiddlewares, m as EndpointsConfig, G as GeneratedEndpoints, H as HonoOpenAPIApp, M as MemoryAdapters, n as RegisterCrudOptions, o as contentJson, p as defineEndpoints, q as errorResponse, r as registerCrud, s as successResponse } from './index-aGdjAC27.js';
|
|
28
28
|
export { S as ScalarConfig, a as ScalarTheme, U as UIOptions, s as scalarUI, b as setupDocs, c as setupDocsIndex, d as setupReDoc, e as setupScalar, f as setupSwaggerUI } from './ui-CNJUoCg1.js';
|
|
29
29
|
import { z } from 'zod';
|
|
30
30
|
export { AuthEndpointMethods, AuthenticatedEndpoint, JWTClaimsValidationOptions, MemoryAPIKeyStorage, MemoryApprovalStorage, POLICIES_CONTEXT_KEY, allOf, allowAll, anyOf, createAPIKeyMiddleware, createAuthMiddleware, createJWTMiddleware, decodeJWT, defaultHashAPIKey, denyAll, generateAPIKey, getAPIKeyStorage, hashAPIKey, isValidAPIKeyFormat, optionalAuth, parseIso8601Duration, requireAllRoles, requireAnyPermission, requireApproval, requireAuth, requireAuthenticated, requireAuthentication, requireOwnership, requireOwnershipOrRole, requirePermissions, requirePolicy, requireRoles, setAPIKeyStorage, validateAPIKey, validateAPIKeyEntry, validateJWTClaims, verifyJWT, withAuth } from './auth/index.js';
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{I as DrizzleAdapters}from'./chunk-5UBOPX6O.js';import {r,s,A as A$1,z as z$1,q,p,o,n,m,l,x,y as y$1,j,i,h,k,g}from'./chunk-6P4Z6G35.js';export{a as BulkPatchEndpoint}from'./chunk-6P4Z6G35.js';export{y as PrismaAdapters}from'./chunk-DLD4TRHM.js';export{B as AggregateEndpoint,s as BatchCreateEndpoint,u as BatchDeleteEndpoint,v as BatchRestoreEndpoint,t as BatchUpdateEndpoint,w as BatchUpsertEndpoint,p as CloneEndpoint,k as CreateEndpoint,n as DeleteEndpoint,U as ExportEndpoint,V as ImportEndpoint,o as ListEndpoint,l as ReadEndpoint,q as RestoreEndpoint,K as SearchEndpoint,m as UpdateEndpoint,r as UpsertEndpoint,z as VersionCompareEndpoint,x as VersionHistoryEndpoint,y as VersionReadEndpoint,A as VersionRollbackEndpoint,i as applyFieldSelection,j as applyFieldSelectionToArray,J as buildSearchConfig,G as calculateScore,C as computeAggregations,O as createCsvStream,T as csvToJson,M as escapeCsvValue,N as generateCsv,a as generateETag,H as generateHighlights,g as getSchemaFields,R as inferCsvContentType,S as jsonToCsv,c as matchesIfMatch,b as matchesIfNoneMatch,P as parseCsv,h as parseFieldSelection,e as parseFilterValue,f as parseListFilters,I as parseSearchFields,L as searchInMemory,F as termFrequency,D as tokenize,E as tokenizeQuery,Q as validateCsvHeaders}from'./chunk-TP6RZ5RR.js';export{a as createHealthEndpoints,b as createHealthHandler}from'./chunk-XH7DEPW2.js';export{a as MemoryIdempotencyStorage}from'./chunk-FXIMMYFV.js';export{a as MemoryLoggingStorage}from'./chunk-QS6NQZH3.js';export{a as multiTenant}from'./chunk-L4X7KFWN.js';export{c as KVRateLimitStorage,a as MemoryRateLimitStorage,b as RedisRateLimitStorage}from'./chunk-EWKQ6BPV.js';import'./chunk-BJTWQHEV.js';export{a as applyProfile,b as applyProfileToArray,e as createArraySerializer,d as createSerializer,c as resolveProfile}from'./chunk-SDNXN7M5.js';export{g as createAPIKeyStorageMiddleware,e as createAuditStorageMiddleware,d as createCacheStorageMiddleware,c as createLoggingStorageMiddleware,b as createRateLimitStorageMiddleware,a as createStorageMiddleware,f as createVersioningStorageMiddleware}from'./chunk-R3WESU6C.js';export{a as scalarUI,e as setupDocs,f as setupDocsIndex,d as setupReDoc,b as setupScalar,c as setupSwaggerUI}from'./chunk-SPICOFUM.js';export{a as apiVersion,b as getApiVersion,c as getApiVersionConfig,d as versionedResponse}from'./chunk-KKLMXJY4.js';export{o as AuthenticatedEndpoint,a as JWTClaimsSchema,j as createAPIKeyMiddleware,l as createAuthMiddleware,e as createJWTMiddleware,g as decodeJWT,i as defaultHashAPIKey,m as optionalAuth,b as parseJWTClaims,n as requireAuthentication,c as safeParseJWTClaims,k as validateAPIKey,h as validateAPIKeyEntry,d as validateJWTClaims,f as verifyJWT,p as withAuth}from'./chunk-KLZMYDYG.js';import {b as b$1}from'./chunk-3TIIYAKB.js';export{d as MemoryApprovalStorage,a as OpenAPIRoute,e as POLICIES_CONTEXT_KEY,m as allOf,p as allowAll,n as anyOf,o as denyAll,b as isRouteClass,c as parseIso8601Duration,g as requireAllRoles,i as requireAnyPermission,s as requireApproval,j as requireAuth,q as requireAuthenticated,k as requireOwnership,l as requireOwnershipOrRole,h as requirePermissions,r as requirePolicy,f as requireRoles}from'./chunk-3TIIYAKB.js';export{b as KVCacheStorage,a as RedisCacheStorage}from'./chunk-H3H65KZF.js';import {T as T$1}from'./chunk-2U5ZQ7XQ.js';export{C as MemoryCacheStorage,m as RateLimitExceededException,y as createInvalidationPattern,V as createLoggingMiddleware,v as createRateLimitMiddleware,z as createRelatedPatterns,p as extractAPIKey,f as extractClientIp,g as extractHeaders,n as extractIP,k as extractLoggingUserId,h as extractQuery,o as extractUserId,x as generateCacheKey,s as generateKey,l as generateRequestId,E as getCacheStorage,Q as getErrorMessage,S as getLoggingStorage,u as getRateLimitStorage,T as getRequestId,U as getRequestStartTime,j as isAllowedContentType,d as matchLoggingPath,q as matchPath,A as matchesPattern,B as parseCacheKey,c as redactHeaders,b as redactObject,w as resetRateLimit,M as resolveAPIKeyStorage,K as resolveAuditStorage,J as resolveCacheStorage,N as resolveIdempotencyStorage,I as resolveLoggingStorage,H as resolveRateLimitStorage,L as resolveVersioningStorage,D as setCacheStorage,R as setLoggingStorage,t as setRateLimitStorage,e as shouldExcludePath,a as shouldRedact,r as shouldSkipPath,O as toError,i as truncateBody,F as withCache,G as withCacheInvalidation,P as wrapError}from'./chunk-2U5ZQ7XQ.js';export{a as MemoryVersioningStorage,e as VersionManager,f as createVersionManager,d as getVersioningStorage,c as setVersioningStorage}from'./chunk-7NM6MBRL.js';export{c as getIdempotencyStorage,d as idempotency,b as setIdempotencyStorage}from'./chunk-GF2EC5G4.js';export{c as MemoryAPIKeyStorage,d as generateAPIKey,h as getAPIKeyStorage,e as hashAPIKey,f as isValidAPIKeyFormat,i as setAPIKeyStorage}from'./chunk-2M5BM4VD.js';import {a,b as b$2}from'./chunk-FC56WWPB.js';export{g as AggregationException,a as ApiException,h as CacheException,i as ConfigurationException,d as ConflictException,f as ForbiddenException,b as InputValidationException,c as NotFoundException,e as UnauthorizedException}from'./chunk-FC56WWPB.js';export{e as AuditLogger,a as MemoryAuditLogStorage,f as createAuditLogger,d as getAuditStorage,c as setAuditStorage}from'./chunk-ANWSQPCQ.js';export{j as applyComputedFields,k as applyComputedFieldsToArray,f as calculateChanges,b as decodeCursor,m as defineMeta,l as defineModel,a as encodeCursor,c as extractNestedData,p as extractTenantId,e as getAuditConfig,o as getMultiTenantConfig,n as getSoftDeleteConfig,g as getVersioningConfig,d as isDirectNestedData,h as parseAggregateField,i as parseAggregateQuery,q as parseSearchMode}from'./chunk-Z575OBLV.js';export{a as StorageRegistry,b as createNullableRegistry,c as createRegistryWithDefault}from'./chunk-GBQQ3YQX.js';import'./chunk-CCGZ5UPB.js';export{f as StaticKeyProvider,e as decryptFields,b as decryptValue,d as encryptFields,a as encryptValue,c as isEncryptedValue}from'./chunk-QRXEQTNE.js';export{a as registerWebhooks}from'./chunk-7DDNX2F2.js';import {d as d$1}from'./chunk-QXFY6NYI.js';export{a as CrudEventEmitter,b as getEventEmitter,d as resolveEventEmitter,c as setEventEmitter}from'./chunk-QXFY6NYI.js';import {b as b$3}from'./chunk-DMGP7QDL.js';export{b as getLogger,a as setLogger}from'./chunk-DMGP7QDL.js';export{e as getAuthType,b as getUser,a as getUserId,d as getUserPermissions,c as getUserRoles,j as hasAllPermissions,h as hasAllRoles,i as hasAnyRole,g as hasPermission,f as hasRole}from'./chunk-MDHMZPXK.js';export{c as getContextRequestId,a as getContextVar,d as getTenantId,b as setContextVar}from'./chunk-VJRDAVID.js';import {OpenAPIHono,createRoute}from'@hono/zod-openapi';import {z,ZodError}from'zod';import {HTTPException}from'hono/http-exception';import {streamSSE}from'hono/streaming';var ae=new WeakMap;function T(t){return ae.get(t)}var y=class{app;options;routes=new Map;constructor(e,n={}){this.app=e,this.options={docs_url:"/docs",redoc_url:"/redoc",openapi_url:"/openapi.json",...n};}registerRoute(e,n,o,r=[]){let p=`${e.toUpperCase()} ${n}`,f=o,c=new f().getSchema();this.routes.set(p,{method:e,path:n,schema:c,routeClass:o});let a$1=createRoute({method:e,path:this.convertPath(n),...c,responses:c.responses||{200:{description:"Success",content:{"application/json":{schema:{type:"object"}}}}}});if(r.length>0){let i=this.convertPath(n);for(let l of r)this.app.use(i,async(s,g)=>{if(s.req.method.toLowerCase()===e)return l(s,g);await g();});}this.app.openapi(a$1,async i=>{let l=new f;l.setContext(i);try{return await l.handle()}catch(s){if(s instanceof a)return i.json(s.toJSON(),s.status);throw s}});}convertPath(e){return e.replace(/:([a-zA-Z_][a-zA-Z0-9_]*)/g,"{$1}")}setupDocs(e,n){let o=e??this.options.openapi_url??"/openapi.json";this.app.doc(o,{openapi:n.openapi||"3.1.0",info:n.info,servers:n.servers,security:n.security});}getApp(){return this.app}getRegisteredRoutes(){return this.routes}toOpenApiPath(e){return this.convertPath(e)}};function Hr(t=new OpenAPIHono,e={}){let n="openAPIRegistry"in t?t:new OpenAPIHono,o=new y(n,e),r=["get","post","put","patch","delete","options","head"],p=new Proxy(n,{get(f,m){if(r.includes(m))return (a,...i)=>{let l=i[i.length-1];if(b$1(l)){let s=i.slice(0,-1);return o.registerRoute(m,a,l,s),p}return f[m](a,...i)};if(m==="doc")return (a,i)=>{o.setupDocs(a,i);};if(m==="use")return (...a)=>(f[m](...a),p);let c=f[m];return typeof c=="function"?c.bind(f):c}});return ae.set(p,o),p}var Br=6e4,Ur={openapi:"3.1.0",info:{title:"API",version:"1.0.0"}};async function Tr(t,e,n={}){let o=T(t);if(!o)throw new Error("buildPerTenantOpenApi: app was not produced by fromHono(...). Cannot find route registry.");let r=n.config??Ur,p=`openapi:${e.tenantId??"global"}:${r.info.version}`;if(n.cache){let a=await n.cache.get(p);if(a!=null)return a}let f=new OpenAPIHono;for(let a of o.getRegisteredRoutes().values()){let i=a.routeClass,l=new i,s=Lr(e);l.setContext(s),typeof l.resolveModelSchema=="function"&&await l.resolveModelSchema();let g=l.getSchema(),M=createRoute({...g,method:a.method,path:o.toOpenApiPath(a.path),responses:g.responses??{200:{description:"Success",content:{"application/json":{schema:z.unknown()}}}}});f.openapi(M,()=>new Response);}let m={openapi:r.openapi??"3.1.0",info:r.info,servers:r.servers,security:r.security},c=n.spec==="3.0"?f.getOpenAPIDocument(m):f.getOpenAPI31Document(m);return n.cache&&await n.cache.set(p,c,n.cacheTtlMs??Br),c}function Lr(t){let e={};t.tenantId!==void 0&&(e.tenantId=t.tenantId),t.organizationId!==void 0&&(e.organizationId=t.organizationId);let n=t.request??new Request("http://localhost/");return {var:e,env:t.env,req:{raw:n,header:()=>{},query:()=>{},param:()=>{}},set(o,r){e[o]=r;},get(o){return e[o]},executionCtx:void 0}}function Dr(t){return {async get(e){let n=await t.get(e);return n?n.data:void 0},async set(e,n,o){let r=o?Math.ceil(o/1e3):void 0;await t.set(e,n,r?{ttl:r}:void 0);}}}var ie=t=>{if(t instanceof ZodError)return b$2.fromZodError(t)};function Vr(t={}){let{mappers:e=[],hooks:n=[],includeRequestId:o=true,includeStackTrace:r=false,defaultErrorCode:p="INTERNAL_ERROR",defaultErrorMessage:f="An internal error occurred",logUnmappedErrors:m=true,onHookError:c}=t,a$1=[...e,ie];return async(i,l)=>{let s,g=false;if(i instanceof a)s=i,g=true;else if(i instanceof HTTPException)s=new a(i.message,i.status,"HTTP_ERROR"),g=true;else {for(let E of a$1)try{let w=await E(i,l);if(w){s=w,g=!0;break}}catch{}g||(m&&b$3().error("Unmapped error",{error:i instanceof Error?i.message:String(i)}),s=new a(f,500,p));}for(let E of n)try{let w=E(i,l,s);w instanceof Promise&&w.catch(x=>{c&&c(x,i,l);});}catch(w){c&&c(w,i,l);}let M=s.toJSON();if(o){let E=T$1(l);E&&(M.error.requestId=E);}return r&&i.stack&&(M.error.stack=i.stack),l.json(M,s.status)}}var b=new Map,Zr=["password","token","secret","apiKey","creditCard","ssn"];function S(t,e){if(t==null||typeof t!="object")return t;if(Array.isArray(t))return t.map(o=>S(o,e));let n={};for(let[o,r]of Object.entries(t))e.includes(o)||(n[o]=typeof r=="object"&&r!==null?S(r,e):r);return n}function Wr(t){let{table:e,events:n,emitter:o,filter:r,heartbeatInterval:p=3e4,maxConnections:f=1e3,connectionTimeout:m=3e5,excludeFields:c=Zr}=t;return a=>{let i=d$1(a,o);if(!i)return a.json({success:false,error:{code:"EVENT_EMITTER_NOT_CONFIGURED",message:"Event emitter not configured"}},500);let l=b.get(e)||0;return l>=f?a.json({success:false,error:{code:"TOO_MANY_CONNECTIONS",message:"Too many SSE connections"}},503):(b.set(e,l+1),streamSSE(a,async s=>{let g,M=async u=>{if(n&&n.length>0&&!n.includes(u.type)||r&&!r(u,a))return;let le=c.length>0?S(u.data,c):u.data,pe=u.previousData&&c.length>0?S(u.previousData,c):u.previousData;try{await s.writeSSE({event:`${u.table}.${u.type}`,data:JSON.stringify({type:u.type,table:u.table,recordId:u.recordId,data:le,previousData:pe,timestamp:u.timestamp}),id:`${u.table}-${u.recordId}-${Date.now()}`});}catch{}};g=i.onTable(e,M);let E=()=>{g.unsubscribe();let u=b.get(e)||1;u<=1?b.delete(e):b.set(e,u-1);};s.onAbort(()=>{E();});let w=Date.now(),x=w;for(;!s.closed;){await s.sleep(1e3);let u=Date.now();if(u-w>=m){s.abort();break}if(u-x>=p){x=u;try{await s.writeSSE({event:"heartbeat",data:JSON.stringify({timestamp:new Date().toISOString()})});}catch{break}}}}))}}function Kr(t,e,n,o={}){let r=e.endsWith("/")?e.slice(0,-1):e,p=t,{middlewares:f=[],endpointMiddlewares:m={}}=o,c=i=>{let l=n[i],s=l&&"_middlewares"in l?l._middlewares||[]:[];return [...f,...m[i]||[],...s]},a=(i,l,s,g)=>{let M=c(s),E=p[i];M.length>0?E(l,...M,g):E(l,g);};n.create&&a("post",r,"create",n.create),n.list&&a("get",r,"list",n.list),n.batchCreate&&a("post",`${r}/batch`,"batchCreate",n.batchCreate),n.batchUpdate&&a("patch",`${r}/batch`,"batchUpdate",n.batchUpdate),n.batchDelete&&a("delete",`${r}/batch`,"batchDelete",n.batchDelete),n.batchRestore&&a("post",`${r}/batch/restore`,"batchRestore",n.batchRestore),n.batchUpsert&&a("post",`${r}/batch/upsert`,"batchUpsert",n.batchUpsert),n.search&&a("get",`${r}/search`,"search",n.search),n.aggregate&&a("get",`${r}/aggregate`,"aggregate",n.aggregate),n.export&&a("get",`${r}/export`,"export",n.export),n.import&&a("post",`${r}/import`,"import",n.import),n.upsert&&a("post",`${r}/upsert`,"upsert",n.upsert),n.read&&a("get",`${r}/:id`,"read",n.read),n.update&&a("patch",`${r}/:id`,"update",n.update),n.delete&&a("delete",`${r}/:id`,"delete",n.delete),n.restore&&a("post",`${r}/:id/restore`,"restore",n.restore),n.clone&&a("post",`${r}/:id/clone`,"clone",n.clone);}function L(t){return {content:{"application/json":{schema:t}}}}function $r(t){return {description:"Success",...L({type:"object",properties:{success:{type:"boolean",enum:[true]},result:t},required:["success","result"]})}}function Gr(t="Error"){return {description:t,...L({type:"object",properties:{success:{type:"boolean",enum:[false]},error:{type:"object",properties:{code:{type:"string"},message:{type:"string"},details:{}},required:["code","message"]}},required:["success","error"]})}}function D(t,e){return {content:{"application/json":{schema:t}},description:e}}function Jr(t,e){return {content:{"application/json":{schema:t}},description:e,required:true}}var se=z.object({code:z.string(),path:z.array(z.union([z.string(),z.number()])),message:z.string()}),I=z.object({success:z.literal(false),error:z.object({name:z.literal("ZodError"),issues:z.array(se)})});function Qr(t){return I}function Yr(...t){return I}var Xr=(t,e)=>{if(!t.success)return e.json({success:false,error:{name:"ZodError",issues:t.error.issues}},422)};function ea(t,e=422){return (n,o)=>{if(!n.success)return o.json(t(n.error),e)}}var de=z.object({success:z.literal(false),error:z.object({message:z.string(),code:z.string().optional()})});function C(t){return D(de,t)}var ta={badRequest:C("Bad request"),unauthorized:C("Unauthorized"),forbidden:C("Forbidden"),notFound:C("Resource not found"),conflict:C("Resource conflict"),validationError:D(I,"Validation error"),internalError:C("Internal server error")};function oa(t){return async(e,n)=>{t.cache&&e.set("cacheStorage",t.cache),t.rateLimit&&e.set("rateLimitStorage",t.rateLimit),t.audit&&e.set("auditStorage",t.audit),t.versioning&&e.set("versioningStorage",t.versioning),t.logging&&e.set("loggingStorage",t.logging),t.idempotency&&e.set("idempotencyStorage",t.idempotency),t.events&&e.set("eventEmitter",t.events),await n();}}function d(t,e){let n=e.middlewares??[],o=e.extras;return class extends t{static _middlewares=n;constructor(){super(),o&&Object.assign(this,o);}_meta=e.meta;schema=e.schema??{};beforeHookMode=e.beforeHookMode??"sequential";afterHookMode=e.afterHookMode??"sequential";allowNestedCreate=e.allowNestedCreate??[];lookupField=e.lookupField??"id";additionalFilters=e.additionalFilters;allowedUpdateFields=e.allowedUpdateFields;blockedUpdateFields=e.blockedUpdateFields;allowNestedWrites=e.allowNestedWrites??[];includeCascadeResults=e.includeCascadeResults??false;filterFields=e.filterFields??[];filterConfig=e.filterConfig;searchFields=e.searchFields??[];searchFieldName=e.searchFieldName??"search";sortFields=e.sortFields??[];defaultSort=e.defaultSort;defaultPerPage=e.defaultPerPage??20;maxPerPage=e.maxPerPage??100;allowedIncludes=e.allowedIncludes??[];fieldSelectionEnabled=e.fieldSelectionEnabled??false;allowedSelectFields=e.allowedSelectFields??[];blockedSelectFields=e.blockedSelectFields??[];alwaysIncludeFields=e.alwaysIncludeFields??[];defaultSelectFields=e.defaultSelectFields??[];getBodySchema(){return e.bodySchema?e.bodySchema:super.getBodySchema()}async before(...p){return e.before?e.before(...p):super.before(...p)}async after(...p){return e.after?e.after(...p):super.after(...p)}transform(p){return e.transform?e.transform(p):super.transform(p)}}}function na(t,e){return d(e,{meta:t.meta,schema:t.schema,middlewares:t.middlewares,before:t.before,after:t.after,beforeHookMode:t.beforeHookMode,afterHookMode:t.afterHookMode,allowNestedCreate:t.allowNestedCreate})}function ra(t,e){let n=t.defaultSort??(t.defaultOrderBy?{field:t.defaultOrderBy,order:t.defaultOrderDirection??"asc"}:void 0);return d(e,{meta:t.meta,schema:t.schema,middlewares:t.middlewares,after:t.after,transform:t.transform,filterFields:t.filterFields,filterConfig:t.filterConfig,searchFields:t.searchFields,searchFieldName:t.searchFieldName,sortFields:t.sortFields??t.orderByFields,defaultSort:n,defaultPerPage:t.defaultPerPage,maxPerPage:t.maxPerPage,allowedIncludes:t.allowedIncludes,fieldSelectionEnabled:t.fieldSelectionEnabled,allowedSelectFields:t.allowedSelectFields,blockedSelectFields:t.blockedSelectFields,alwaysIncludeFields:t.alwaysIncludeFields,defaultSelectFields:t.defaultSelectFields})}function aa(t,e){return d(e,{meta:t.meta,schema:t.schema,middlewares:t.middlewares,after:t.after,transform:t.transform,lookupField:t.lookupField,additionalFilters:t.additionalFilters,allowedIncludes:t.allowedIncludes,fieldSelectionEnabled:t.fieldSelectionEnabled,allowedSelectFields:t.allowedSelectFields,blockedSelectFields:t.blockedSelectFields,alwaysIncludeFields:t.alwaysIncludeFields,defaultSelectFields:t.defaultSelectFields})}function ia(t,e){return d(e,{meta:t.meta,schema:t.schema,middlewares:t.middlewares,before:t.before,after:t.after,transform:t.transform,beforeHookMode:t.beforeHookMode,afterHookMode:t.afterHookMode,lookupField:t.lookupField,additionalFilters:t.additionalFilters,allowedUpdateFields:t.allowedUpdateFields,blockedUpdateFields:t.blockedUpdateFields,allowNestedWrites:t.allowNestedWrites})}function sa(t,e){return d(e,{meta:t.meta,schema:t.schema,middlewares:t.middlewares,before:t.before,after:t.after,beforeHookMode:t.beforeHookMode,afterHookMode:t.afterHookMode,lookupField:t.lookupField,additionalFilters:t.additionalFilters,includeCascadeResults:t.includeCascadeResults})}var O=class{constructor(e){this.meta=e;}_schema={};_before;_after;_beforeHookMode="sequential";_afterHookMode="sequential";_allowNestedCreate=[];_middlewares=[];middleware(...e){return this._middlewares.push(...e),this}tags(...e){return this._schema.tags=e,this}summary(e){return this._schema.summary=e,this}description(e){return this._schema.description=e,this}before(e){return this._before=e,this}after(e){return this._after=e,this}beforeMode(e){return this._beforeHookMode=e,this}afterMode(e){return this._afterHookMode=e,this}nestedCreate(...e){return this._allowNestedCreate=e,this}build(e){return d(e,{meta:this.meta,schema:this._schema,before:this._before,after:this._after,beforeHookMode:this._beforeHookMode,afterHookMode:this._afterHookMode,allowNestedCreate:this._allowNestedCreate,middlewares:this._middlewares})}},P=class{constructor(e){this.meta=e;}_schema={};_filterFields=[];_filterConfig;_searchFields=[];_searchFieldName="search";_sortFields=[];_defaultSort;_defaultPerPage=20;_maxPerPage=100;_allowedIncludes=[];_fieldSelectionEnabled=false;_allowedSelectFields=[];_blockedSelectFields=[];_alwaysIncludeFields=[];_defaultSelectFields=[];_after;_transform;_middlewares=[];middleware(...e){return this._middlewares.push(...e),this}tags(...e){return this._schema.tags=e,this}summary(e){return this._schema.summary=e,this}description(e){return this._schema.description=e,this}filter(...e){return this._filterFields=e,this}filterWith(e){return this._filterConfig=e,this}search(...e){return this._searchFields=e,this}searchParam(e){return this._searchFieldName=e,this}sortable(...e){return this._sortFields=e,this}orderBy(...e){return this.sortable(...e)}defaultSort(e,n="asc"){return this._defaultSort={field:e,order:n},this}defaultOrder(e,n="asc"){return this.defaultSort(e,n)}pagination(e,n){return this._defaultPerPage=e,n!==void 0&&(this._maxPerPage=n),this}include(...e){return this._allowedIncludes=e,this}fieldSelection(e){return this._fieldSelectionEnabled=true,e?.allowed&&(this._allowedSelectFields=e.allowed),e?.blocked&&(this._blockedSelectFields=e.blocked),e?.alwaysInclude&&(this._alwaysIncludeFields=e.alwaysInclude),e?.defaults&&(this._defaultSelectFields=e.defaults),this}after(e){return this._after=e,this}transform(e){return this._transform=e,this}build(e){return d(e,{meta:this.meta,schema:this._schema,filterFields:this._filterFields,filterConfig:this._filterConfig,searchFields:this._searchFields,searchFieldName:this._searchFieldName,sortFields:this._sortFields,defaultSort:this._defaultSort,defaultPerPage:this._defaultPerPage,maxPerPage:this._maxPerPage,allowedIncludes:this._allowedIncludes,fieldSelectionEnabled:this._fieldSelectionEnabled,allowedSelectFields:this._allowedSelectFields,blockedSelectFields:this._blockedSelectFields,alwaysIncludeFields:this._alwaysIncludeFields,defaultSelectFields:this._defaultSelectFields,after:this._after,transform:this._transform,middlewares:this._middlewares})}},R=class{constructor(e){this.meta=e;}_schema={};_lookupField="id";_additionalFilters;_allowedIncludes=[];_fieldSelectionEnabled=false;_allowedSelectFields=[];_blockedSelectFields=[];_alwaysIncludeFields=[];_defaultSelectFields=[];_after;_transform;_middlewares=[];middleware(...e){return this._middlewares.push(...e),this}tags(...e){return this._schema.tags=e,this}summary(e){return this._schema.summary=e,this}description(e){return this._schema.description=e,this}lookupField(e){return this._lookupField=e,this}additionalFilters(...e){return this._additionalFilters=e,this}include(...e){return this._allowedIncludes=e,this}fieldSelection(e){return this._fieldSelectionEnabled=true,e?.allowed&&(this._allowedSelectFields=e.allowed),e?.blocked&&(this._blockedSelectFields=e.blocked),e?.alwaysInclude&&(this._alwaysIncludeFields=e.alwaysInclude),e?.defaults&&(this._defaultSelectFields=e.defaults),this}after(e){return this._after=e,this}transform(e){return this._transform=e,this}build(e){return d(e,{meta:this.meta,schema:this._schema,lookupField:this._lookupField,additionalFilters:this._additionalFilters,allowedIncludes:this._allowedIncludes,fieldSelectionEnabled:this._fieldSelectionEnabled,allowedSelectFields:this._allowedSelectFields,blockedSelectFields:this._blockedSelectFields,alwaysIncludeFields:this._alwaysIncludeFields,defaultSelectFields:this._defaultSelectFields,after:this._after,transform:this._transform,middlewares:this._middlewares})}},v=class{constructor(e){this.meta=e;}_schema={};_lookupField="id";_additionalFilters;_allowedUpdateFields;_blockedUpdateFields;_allowNestedWrites=[];_before;_after;_beforeHookMode="sequential";_afterHookMode="sequential";_transform;_middlewares=[];middleware(...e){return this._middlewares.push(...e),this}tags(...e){return this._schema.tags=e,this}summary(e){return this._schema.summary=e,this}description(e){return this._schema.description=e,this}lookupField(e){return this._lookupField=e,this}additionalFilters(...e){return this._additionalFilters=e,this}allowedFields(...e){return this._allowedUpdateFields=e,this}blockedFields(...e){return this._blockedUpdateFields=e,this}nestedWrites(...e){return this._allowNestedWrites=e,this}before(e){return this._before=e,this}after(e){return this._after=e,this}beforeMode(e){return this._beforeHookMode=e,this}afterMode(e){return this._afterHookMode=e,this}transform(e){return this._transform=e,this}build(e){return d(e,{meta:this.meta,schema:this._schema,lookupField:this._lookupField,additionalFilters:this._additionalFilters,allowedUpdateFields:this._allowedUpdateFields,blockedUpdateFields:this._blockedUpdateFields,allowNestedWrites:this._allowNestedWrites,before:this._before,after:this._after,beforeHookMode:this._beforeHookMode,afterHookMode:this._afterHookMode,transform:this._transform,middlewares:this._middlewares})}},A=class{constructor(e){this.meta=e;}_schema={};_lookupField="id";_additionalFilters;_includeCascadeResults=false;_before;_after;_beforeHookMode="sequential";_afterHookMode="sequential";_middlewares=[];middleware(...e){return this._middlewares.push(...e),this}tags(...e){return this._schema.tags=e,this}summary(e){return this._schema.summary=e,this}description(e){return this._schema.description=e,this}lookupField(e){return this._lookupField=e,this}additionalFilters(...e){return this._additionalFilters=e,this}includeCascade(e=true){return this._includeCascadeResults=e,this}before(e){return this._before=e,this}after(e){return this._after=e,this}beforeMode(e){return this._beforeHookMode=e,this}afterMode(e){return this._afterHookMode=e,this}build(e){return d(e,{meta:this.meta,schema:this._schema,lookupField:this._lookupField,additionalFilters:this._additionalFilters,includeCascadeResults:this._includeCascadeResults,before:this._before,after:this._after,beforeHookMode:this._beforeHookMode,afterHookMode:this._afterHookMode,middlewares:this._middlewares})}},H=class{constructor(e){this.meta=e;}create(){return new O(this.meta)}list(){return new P(this.meta)}read(){return new R(this.meta)}update(){return new v(this.meta)}delete(){return new A(this.meta)}};function da(t){return new H(t)}var la={CreateEndpoint:g,ListEndpoint:k,ReadEndpoint:h,UpdateEndpoint:i,DeleteEndpoint:j,SearchEndpoint:y$1,AggregateEndpoint:x,RestoreEndpoint:l,BatchCreateEndpoint:m,BatchUpdateEndpoint:n,BatchDeleteEndpoint:o,BatchRestoreEndpoint:p,BatchUpsertEndpoint:q,ExportEndpoint:z$1,ImportEndpoint:A$1,UpsertEndpoint:s,CloneEndpoint:r};function pa(t,e){let n={};if(t.create!==void 0){let o=t.create;n.create=d(e.CreateEndpoint,{meta:t.meta,schema:o.openapi,bodySchema:o.bodySchema,beforeHookMode:o.hooks?.beforeMode,afterHookMode:o.hooks?.afterMode,allowNestedCreate:o.nestedCreate,before:o.hooks?.before,after:o.hooks?.after});}if(t.list!==void 0){let o=t.list;n.list=d(e.ListEndpoint,{meta:t.meta,schema:o.openapi,filterFields:o.filtering?.fields,filterConfig:o.filtering?.config,searchFields:o.search?.fields,searchFieldName:o.search?.paramName,sortFields:o.sorting?.fields,defaultSort:o.sorting?.default?{field:o.sorting.default,order:o.sorting.defaultOrder??o.sorting.defaultDirection??"asc"}:void 0,defaultPerPage:o.pagination?.defaultPerPage,maxPerPage:o.pagination?.maxPerPage,allowedIncludes:o.includes,fieldSelectionEnabled:o.fieldSelection?.enabled,allowedSelectFields:o.fieldSelection?.allowed,blockedSelectFields:o.fieldSelection?.blocked,alwaysIncludeFields:o.fieldSelection?.alwaysInclude,defaultSelectFields:o.fieldSelection?.defaults,after:o.hooks?.after,transform:o.hooks?.transform});}if(t.read!==void 0){let o=t.read;n.read=d(e.ReadEndpoint,{meta:t.meta,schema:o.openapi,lookupField:o.lookupField,additionalFilters:o.additionalFilters,allowedIncludes:o.includes,fieldSelectionEnabled:o.fieldSelection?.enabled,allowedSelectFields:o.fieldSelection?.allowed,blockedSelectFields:o.fieldSelection?.blocked,alwaysIncludeFields:o.fieldSelection?.alwaysInclude,defaultSelectFields:o.fieldSelection?.defaults,after:o.hooks?.after,transform:o.hooks?.transform});}if(t.update!==void 0){let o=t.update;n.update=d(e.UpdateEndpoint,{meta:t.meta,schema:o.openapi,bodySchema:o.bodySchema,lookupField:o.lookupField,additionalFilters:o.additionalFilters,allowedUpdateFields:o.fields?.allowed,blockedUpdateFields:o.fields?.blocked,allowNestedWrites:o.nestedWrites,beforeHookMode:o.hooks?.beforeMode,afterHookMode:o.hooks?.afterMode,before:o.hooks?.before,after:o.hooks?.after,transform:o.hooks?.transform});}if(t.delete!==void 0){let o=t.delete;n.delete=d(e.DeleteEndpoint,{meta:t.meta,schema:o.openapi,lookupField:o.lookupField,additionalFilters:o.additionalFilters,includeCascadeResults:o.includeCascadeResults,beforeHookMode:o.hooks?.beforeMode,afterHookMode:o.hooks?.afterMode,before:o.hooks?.before,after:o.hooks?.after});}if(t.search!==void 0&&e.SearchEndpoint){let o=t.search;n.search=d(e.SearchEndpoint,{meta:t.meta,schema:o.openapi,after:o.hooks?.after,extras:{...o.fields!==void 0?{searchFields:o.fields}:{},...o.mode!==void 0?{defaultMode:o.mode}:{}}});}if(t.aggregate!==void 0&&e.AggregateEndpoint){let o=t.aggregate;n.aggregate=d(e.AggregateEndpoint,{meta:t.meta,schema:o.openapi,after:o.hooks?.after,extras:{...o.fields!==void 0?{filterFields:o.fields}:{}}});}if(t.restore!==void 0&&e.RestoreEndpoint){let o=t.restore;n.restore=d(e.RestoreEndpoint,{meta:t.meta,schema:o.openapi,beforeHookMode:o.hooks?.beforeMode,afterHookMode:o.hooks?.afterMode,before:o.hooks?.before,after:o.hooks?.after});}if(t.batchCreate!==void 0&&e.BatchCreateEndpoint){let o=t.batchCreate;n.batchCreate=d(e.BatchCreateEndpoint,{meta:t.meta,schema:o.openapi,bodySchema:o.bodySchema,beforeHookMode:o.hooks?.beforeMode,afterHookMode:o.hooks?.afterMode,before:o.hooks?.before,after:o.hooks?.after,extras:{...o.maxBatchSize!==void 0?{maxBatchSize:o.maxBatchSize}:{}}});}if(t.batchUpdate!==void 0&&e.BatchUpdateEndpoint){let o=t.batchUpdate;n.batchUpdate=d(e.BatchUpdateEndpoint,{meta:t.meta,schema:o.openapi,beforeHookMode:o.hooks?.beforeMode,afterHookMode:o.hooks?.afterMode,before:o.hooks?.before,after:o.hooks?.after,extras:{...o.maxBatchSize!==void 0?{maxBatchSize:o.maxBatchSize}:{}}});}if(t.batchDelete!==void 0&&e.BatchDeleteEndpoint){let o=t.batchDelete;n.batchDelete=d(e.BatchDeleteEndpoint,{meta:t.meta,schema:o.openapi,beforeHookMode:o.hooks?.beforeMode,afterHookMode:o.hooks?.afterMode,before:o.hooks?.before,after:o.hooks?.after,extras:{...o.maxBatchSize!==void 0?{maxBatchSize:o.maxBatchSize}:{}}});}if(t.batchRestore!==void 0&&e.BatchRestoreEndpoint){let o=t.batchRestore;n.batchRestore=d(e.BatchRestoreEndpoint,{meta:t.meta,schema:o.openapi,beforeHookMode:o.hooks?.beforeMode,afterHookMode:o.hooks?.afterMode,before:o.hooks?.before,after:o.hooks?.after,extras:{...o.maxBatchSize!==void 0?{maxBatchSize:o.maxBatchSize}:{}}});}if(t.batchUpsert!==void 0&&e.BatchUpsertEndpoint){let o=t.batchUpsert,r=typeof o.conflictTarget=="string"?[o.conflictTarget]:o.conflictTarget;n.batchUpsert=d(e.BatchUpsertEndpoint,{meta:t.meta,schema:o.openapi,bodySchema:o.bodySchema,beforeHookMode:o.hooks?.beforeMode,afterHookMode:o.hooks?.afterMode,before:o.hooks?.before,after:o.hooks?.after,extras:{...o.maxBatchSize!==void 0?{maxBatchSize:o.maxBatchSize}:{},...r!==void 0?{upsertKeys:r}:{}}});}if(t.export!==void 0&&e.ExportEndpoint){let o=t.export;n.export=d(e.ExportEndpoint,{meta:t.meta,schema:o.openapi,extras:{...o.maxRows!==void 0?{maxExportRecords:o.maxRows}:{},...o.formats!==void 0&&o.formats.length>0?{defaultFormat:o.formats[0]}:{}}});}if(t.import!==void 0&&e.ImportEndpoint){let o=t.import;n.import=d(e.ImportEndpoint,{meta:t.meta,schema:o.openapi,before:o.hooks?.before,after:o.hooks?.after,extras:{...o.maxRows!==void 0?{maxBatchSize:o.maxRows}:{}}});}if(t.upsert!==void 0&&e.UpsertEndpoint){let o=t.upsert,r=typeof o.conflictTarget=="string"?[o.conflictTarget]:o.conflictTarget;n.upsert=d(e.UpsertEndpoint,{meta:t.meta,schema:o.openapi,bodySchema:o.bodySchema,beforeHookMode:o.hooks?.beforeMode,afterHookMode:o.hooks?.afterMode,before:o.hooks?.before,after:o.hooks?.after,extras:{...r!==void 0?{upsertKeys:r}:{}}});}if(t.clone!==void 0&&e.CloneEndpoint){let o=t.clone;n.clone=d(e.CloneEndpoint,{meta:t.meta,schema:o.openapi,before:o.hooks?.before,after:o.hooks?.after,extras:{...o.fieldsToReset!==void 0?{excludeFromClone:o.fieldsToReset}:{}}});}return n}
|
|
1
|
+
export{I as DrizzleAdapters}from'./chunk-5UBOPX6O.js';import {r,s,A as A$1,z as z$1,q,p,o,n,m,l as l$1,x,y as y$1,j,i,h,k,g}from'./chunk-6P4Z6G35.js';export{a as BulkPatchEndpoint}from'./chunk-6P4Z6G35.js';export{y as PrismaAdapters}from'./chunk-DLD4TRHM.js';export{B as AggregateEndpoint,s as BatchCreateEndpoint,u as BatchDeleteEndpoint,v as BatchRestoreEndpoint,t as BatchUpdateEndpoint,w as BatchUpsertEndpoint,p as CloneEndpoint,k as CreateEndpoint,n as DeleteEndpoint,U as ExportEndpoint,V as ImportEndpoint,o as ListEndpoint,l as ReadEndpoint,q as RestoreEndpoint,K as SearchEndpoint,m as UpdateEndpoint,r as UpsertEndpoint,z as VersionCompareEndpoint,x as VersionHistoryEndpoint,y as VersionReadEndpoint,A as VersionRollbackEndpoint,i as applyFieldSelection,j as applyFieldSelectionToArray,J as buildSearchConfig,G as calculateScore,C as computeAggregations,O as createCsvStream,T as csvToJson,M as escapeCsvValue,N as generateCsv,a as generateETag,H as generateHighlights,g as getSchemaFields,R as inferCsvContentType,S as jsonToCsv,c as matchesIfMatch,b as matchesIfNoneMatch,P as parseCsv,h as parseFieldSelection,e as parseFilterValue,f as parseListFilters,I as parseSearchFields,L as searchInMemory,F as termFrequency,D as tokenize,E as tokenizeQuery,Q as validateCsvHeaders}from'./chunk-TP6RZ5RR.js';export{a as createHealthEndpoints,b as createHealthHandler}from'./chunk-XH7DEPW2.js';export{a as MemoryIdempotencyStorage}from'./chunk-FXIMMYFV.js';export{a as MemoryLoggingStorage}from'./chunk-QS6NQZH3.js';export{a as multiTenant}from'./chunk-L4X7KFWN.js';export{c as KVRateLimitStorage,a as MemoryRateLimitStorage,b as RedisRateLimitStorage}from'./chunk-EWKQ6BPV.js';import'./chunk-BJTWQHEV.js';export{a as applyProfile,b as applyProfileToArray,e as createArraySerializer,d as createSerializer,c as resolveProfile}from'./chunk-SDNXN7M5.js';export{g as createAPIKeyStorageMiddleware,e as createAuditStorageMiddleware,d as createCacheStorageMiddleware,c as createLoggingStorageMiddleware,b as createRateLimitStorageMiddleware,a as createStorageMiddleware,f as createVersioningStorageMiddleware}from'./chunk-R3WESU6C.js';export{a as scalarUI,e as setupDocs,f as setupDocsIndex,d as setupReDoc,b as setupScalar,c as setupSwaggerUI}from'./chunk-SPICOFUM.js';export{a as apiVersion,b as getApiVersion,c as getApiVersionConfig,d as versionedResponse}from'./chunk-KKLMXJY4.js';export{o as AuthenticatedEndpoint,a as JWTClaimsSchema,j as createAPIKeyMiddleware,l as createAuthMiddleware,e as createJWTMiddleware,g as decodeJWT,i as defaultHashAPIKey,m as optionalAuth,b as parseJWTClaims,n as requireAuthentication,c as safeParseJWTClaims,k as validateAPIKey,h as validateAPIKeyEntry,d as validateJWTClaims,f as verifyJWT,p as withAuth}from'./chunk-KLZMYDYG.js';import {b as b$1}from'./chunk-3TIIYAKB.js';export{d as MemoryApprovalStorage,a as OpenAPIRoute,e as POLICIES_CONTEXT_KEY,m as allOf,p as allowAll,n as anyOf,o as denyAll,b as isRouteClass,c as parseIso8601Duration,g as requireAllRoles,i as requireAnyPermission,s as requireApproval,j as requireAuth,q as requireAuthenticated,k as requireOwnership,l as requireOwnershipOrRole,h as requirePermissions,r as requirePolicy,f as requireRoles}from'./chunk-3TIIYAKB.js';export{b as KVCacheStorage,a as RedisCacheStorage}from'./chunk-H3H65KZF.js';import {T as T$1}from'./chunk-2U5ZQ7XQ.js';export{C as MemoryCacheStorage,m as RateLimitExceededException,y as createInvalidationPattern,V as createLoggingMiddleware,v as createRateLimitMiddleware,z as createRelatedPatterns,p as extractAPIKey,f as extractClientIp,g as extractHeaders,n as extractIP,k as extractLoggingUserId,h as extractQuery,o as extractUserId,x as generateCacheKey,s as generateKey,l as generateRequestId,E as getCacheStorage,Q as getErrorMessage,S as getLoggingStorage,u as getRateLimitStorage,T as getRequestId,U as getRequestStartTime,j as isAllowedContentType,d as matchLoggingPath,q as matchPath,A as matchesPattern,B as parseCacheKey,c as redactHeaders,b as redactObject,w as resetRateLimit,M as resolveAPIKeyStorage,K as resolveAuditStorage,J as resolveCacheStorage,N as resolveIdempotencyStorage,I as resolveLoggingStorage,H as resolveRateLimitStorage,L as resolveVersioningStorage,D as setCacheStorage,R as setLoggingStorage,t as setRateLimitStorage,e as shouldExcludePath,a as shouldRedact,r as shouldSkipPath,O as toError,i as truncateBody,F as withCache,G as withCacheInvalidation,P as wrapError}from'./chunk-2U5ZQ7XQ.js';export{a as MemoryVersioningStorage,e as VersionManager,f as createVersionManager,d as getVersioningStorage,c as setVersioningStorage}from'./chunk-7NM6MBRL.js';export{c as getIdempotencyStorage,d as idempotency,b as setIdempotencyStorage}from'./chunk-GF2EC5G4.js';export{c as MemoryAPIKeyStorage,d as generateAPIKey,h as getAPIKeyStorage,e as hashAPIKey,f as isValidAPIKeyFormat,i as setAPIKeyStorage}from'./chunk-2M5BM4VD.js';import {a,b as b$2}from'./chunk-FC56WWPB.js';export{g as AggregationException,a as ApiException,h as CacheException,i as ConfigurationException,d as ConflictException,f as ForbiddenException,b as InputValidationException,c as NotFoundException,e as UnauthorizedException}from'./chunk-FC56WWPB.js';export{e as AuditLogger,a as MemoryAuditLogStorage,f as createAuditLogger,d as getAuditStorage,c as setAuditStorage}from'./chunk-ANWSQPCQ.js';export{j as applyComputedFields,k as applyComputedFieldsToArray,f as calculateChanges,b as decodeCursor,m as defineMeta,l as defineModel,a as encodeCursor,c as extractNestedData,p as extractTenantId,e as getAuditConfig,o as getMultiTenantConfig,n as getSoftDeleteConfig,g as getVersioningConfig,d as isDirectNestedData,h as parseAggregateField,i as parseAggregateQuery,q as parseSearchMode}from'./chunk-Z575OBLV.js';export{a as StorageRegistry,b as createNullableRegistry,c as createRegistryWithDefault}from'./chunk-GBQQ3YQX.js';import'./chunk-CCGZ5UPB.js';export{f as StaticKeyProvider,e as decryptFields,b as decryptValue,d as encryptFields,a as encryptValue,c as isEncryptedValue}from'./chunk-QRXEQTNE.js';export{a as registerWebhooks}from'./chunk-7DDNX2F2.js';import {d}from'./chunk-QXFY6NYI.js';export{a as CrudEventEmitter,b as getEventEmitter,d as resolveEventEmitter,c as setEventEmitter}from'./chunk-QXFY6NYI.js';import {b as b$3}from'./chunk-DMGP7QDL.js';export{b as getLogger,a as setLogger}from'./chunk-DMGP7QDL.js';export{e as getAuthType,b as getUser,a as getUserId,d as getUserPermissions,c as getUserRoles,j as hasAllPermissions,h as hasAllRoles,i as hasAnyRole,g as hasPermission,f as hasRole}from'./chunk-MDHMZPXK.js';export{c as getContextRequestId,a as getContextVar,d as getTenantId,b as setContextVar}from'./chunk-VJRDAVID.js';import {OpenAPIHono,createRoute}from'@hono/zod-openapi';import {z,ZodError}from'zod';import {HTTPException}from'hono/http-exception';import {streamSSE}from'hono/streaming';var ae=new WeakMap;function T(o){return ae.get(o)}var y=class{app;options;routes=new Map;constructor(e,n={}){this.app=e,this.options={docs_url:"/docs",redoc_url:"/redoc",openapi_url:"/openapi.json",...n};}registerRoute(e,n,t,r=[]){let p=`${e.toUpperCase()} ${n}`,m=t,c=new m().getSchema();this.routes.set(p,{method:e,path:n,schema:c,routeClass:t});let a$1=createRoute({method:e,path:this.convertPath(n),...c,responses:c.responses||{200:{description:"Success",content:{"application/json":{schema:{type:"object"}}}}}});if(r.length>0)for(let i of r)this.app.use(n,async(d,s)=>{if(d.req.method.toLowerCase()===e)return i(d,s);await s();});this.app.openapi(a$1,async i=>{let d=new m;d.setContext(i);try{return await d.handle()}catch(s){if(s instanceof a)return i.json(s.toJSON(),s.status);throw s}});}convertPath(e){return e.replace(/:([a-zA-Z_][a-zA-Z0-9_]*)/g,"{$1}")}setupDocs(e,n){let t=e??this.options.openapi_url??"/openapi.json";this.app.doc(t,{openapi:n.openapi||"3.1.0",info:n.info,servers:n.servers,security:n.security});}getApp(){return this.app}getRegisteredRoutes(){return this.routes}toOpenApiPath(e){return this.convertPath(e)}};function Hr(o=new OpenAPIHono,e={}){let n="openAPIRegistry"in o?o:new OpenAPIHono,t=new y(n,e),r=["get","post","put","patch","delete","options","head"],p=new Proxy(n,{get(m,f){if(r.includes(f))return (a,...i)=>{let d=i[i.length-1];if(b$1(d)){let s=i.slice(0,-1);return t.registerRoute(f,a,d,s),p}return m[f](a,...i)};if(f==="doc")return (a,i)=>{t.setupDocs(a,i);};if(f==="use")return (...a)=>(m[f](...a),p);let c=m[f];return typeof c=="function"?c.bind(m):c}});return ae.set(p,t),p}var Br=6e4,Ur={openapi:"3.1.0",info:{title:"API",version:"1.0.0"}};async function Tr(o,e,n={}){let t=T(o);if(!t)throw new Error("buildPerTenantOpenApi: app was not produced by fromHono(...). Cannot find route registry.");let r=n.config??Ur,p=`openapi:${e.tenantId??"global"}:${r.info.version}`;if(n.cache){let a=await n.cache.get(p);if(a!=null)return a}let m=new OpenAPIHono;for(let a of t.getRegisteredRoutes().values()){let i=a.routeClass,d=new i,s=Lr(e);d.setContext(s),typeof d.resolveModelSchema=="function"&&await d.resolveModelSchema();let g=d.getSchema(),M=createRoute({...g,method:a.method,path:t.toOpenApiPath(a.path),responses:g.responses??{200:{description:"Success",content:{"application/json":{schema:z.unknown()}}}}});m.openapi(M,()=>new Response);}let f={openapi:r.openapi??"3.1.0",info:r.info,servers:r.servers,security:r.security},c=n.spec==="3.0"?m.getOpenAPIDocument(f):m.getOpenAPI31Document(f);return n.cache&&await n.cache.set(p,c,n.cacheTtlMs??Br),c}function Lr(o){let e={};o.tenantId!==void 0&&(e.tenantId=o.tenantId),o.organizationId!==void 0&&(e.organizationId=o.organizationId);let n=o.request??new Request("http://localhost/");return {var:e,env:o.env,req:{raw:n,header:()=>{},query:()=>{},param:()=>{}},set(t,r){e[t]=r;},get(t){return e[t]},executionCtx:void 0}}function Dr(o){return {async get(e){let n=await o.get(e);return n?n.data:void 0},async set(e,n,t){let r=t?Math.ceil(t/1e3):void 0;await o.set(e,n,r?{ttl:r}:void 0);}}}var ie=o=>{if(o instanceof ZodError)return b$2.fromZodError(o)};function Vr(o={}){let{mappers:e=[],hooks:n=[],includeRequestId:t=true,includeStackTrace:r=false,defaultErrorCode:p="INTERNAL_ERROR",defaultErrorMessage:m="An internal error occurred",logUnmappedErrors:f=true,onHookError:c}=o,a$1=[...e,ie];return async(i,d)=>{let s,g=false;if(i instanceof a)s=i,g=true;else if(i instanceof HTTPException)s=new a(i.message,i.status,"HTTP_ERROR"),g=true;else {for(let E of a$1)try{let w=await E(i,d);if(w){s=w,g=!0;break}}catch{}g||(f&&b$3().error("Unmapped error",{error:i instanceof Error?i.message:String(i)}),s=new a(m,500,p));}for(let E of n)try{let w=E(i,d,s);w instanceof Promise&&w.catch(x=>{c&&c(x,i,d);});}catch(w){c&&c(w,i,d);}let M=s.toJSON();if(t){let E=T$1(d);E&&(M.error.requestId=E);}return r&&i.stack&&(M.error.stack=i.stack),d.json(M,s.status)}}var b=new Map,Zr=["password","token","secret","apiKey","creditCard","ssn"];function S(o,e){if(o==null||typeof o!="object")return o;if(Array.isArray(o))return o.map(t=>S(t,e));let n={};for(let[t,r]of Object.entries(o))e.includes(t)||(n[t]=typeof r=="object"&&r!==null?S(r,e):r);return n}function Wr(o){let{table:e,events:n,emitter:t,filter:r,heartbeatInterval:p=3e4,maxConnections:m=1e3,connectionTimeout:f=3e5,excludeFields:c=Zr}=o;return a=>{let i=d(a,t);if(!i)return a.json({success:false,error:{code:"EVENT_EMITTER_NOT_CONFIGURED",message:"Event emitter not configured"}},500);let d$1=b.get(e)||0;return d$1>=m?a.json({success:false,error:{code:"TOO_MANY_CONNECTIONS",message:"Too many SSE connections"}},503):(b.set(e,d$1+1),streamSSE(a,async s=>{let g,M=async u=>{if(n&&n.length>0&&!n.includes(u.type)||r&&!r(u,a))return;let le=c.length>0?S(u.data,c):u.data,pe=u.previousData&&c.length>0?S(u.previousData,c):u.previousData;try{await s.writeSSE({event:`${u.table}.${u.type}`,data:JSON.stringify({type:u.type,table:u.table,recordId:u.recordId,data:le,previousData:pe,timestamp:u.timestamp}),id:`${u.table}-${u.recordId}-${Date.now()}`});}catch{}};g=i.onTable(e,M);let E=()=>{g.unsubscribe();let u=b.get(e)||1;u<=1?b.delete(e):b.set(e,u-1);};s.onAbort(()=>{E();});let w=Date.now(),x=w;for(;!s.closed;){await s.sleep(1e3);let u=Date.now();if(u-w>=f){s.abort();break}if(u-x>=p){x=u;try{await s.writeSSE({event:"heartbeat",data:JSON.stringify({timestamp:new Date().toISOString()})});}catch{break}}}}))}}function Kr(o,e,n,t={}){let r=e.endsWith("/")?e.slice(0,-1):e,p=o,{middlewares:m=[],endpointMiddlewares:f={}}=t,c=i=>{let d=n[i],s=d&&"_middlewares"in d?d._middlewares||[]:[];return [...m,...f[i]||[],...s]},a=(i,d,s,g)=>{let M=c(s),E=p[i];M.length>0?E(d,...M,g):E(d,g);};n.create&&a("post",r,"create",n.create),n.list&&a("get",r,"list",n.list),n.batchCreate&&a("post",`${r}/batch`,"batchCreate",n.batchCreate),n.batchUpdate&&a("patch",`${r}/batch`,"batchUpdate",n.batchUpdate),n.batchDelete&&a("delete",`${r}/batch`,"batchDelete",n.batchDelete),n.batchRestore&&a("post",`${r}/batch/restore`,"batchRestore",n.batchRestore),n.batchUpsert&&a("post",`${r}/batch/upsert`,"batchUpsert",n.batchUpsert),n.search&&a("get",`${r}/search`,"search",n.search),n.aggregate&&a("get",`${r}/aggregate`,"aggregate",n.aggregate),n.export&&a("get",`${r}/export`,"export",n.export),n.import&&a("post",`${r}/import`,"import",n.import),n.upsert&&a("post",`${r}/upsert`,"upsert",n.upsert),n.read&&a("get",`${r}/:id`,"read",n.read),n.update&&a("patch",`${r}/:id`,"update",n.update),n.delete&&a("delete",`${r}/:id`,"delete",n.delete),n.restore&&a("post",`${r}/:id/restore`,"restore",n.restore),n.clone&&a("post",`${r}/:id/clone`,"clone",n.clone);}function L(o){return {content:{"application/json":{schema:o}}}}function $r(o){return {description:"Success",...L({type:"object",properties:{success:{type:"boolean",enum:[true]},result:o},required:["success","result"]})}}function Gr(o="Error"){return {description:o,...L({type:"object",properties:{success:{type:"boolean",enum:[false]},error:{type:"object",properties:{code:{type:"string"},message:{type:"string"},details:{}},required:["code","message"]}},required:["success","error"]})}}function D(o,e){return {content:{"application/json":{schema:o}},description:e}}function Jr(o,e){return {content:{"application/json":{schema:o}},description:e,required:true}}var se=z.object({code:z.string(),path:z.array(z.union([z.string(),z.number()])),message:z.string()}),I=z.object({success:z.literal(false),error:z.object({name:z.literal("ZodError"),issues:z.array(se)})});function Qr(o){return I}function Yr(...o){return I}var Xr=(o,e)=>{if(!o.success)return e.json({success:false,error:{name:"ZodError",issues:o.error.issues}},422)};function ea(o,e=422){return (n,t)=>{if(!n.success)return t.json(o(n.error),e)}}var de=z.object({success:z.literal(false),error:z.object({message:z.string(),code:z.string().optional()})});function C(o){return D(de,o)}var ta={badRequest:C("Bad request"),unauthorized:C("Unauthorized"),forbidden:C("Forbidden"),notFound:C("Resource not found"),conflict:C("Resource conflict"),validationError:D(I,"Validation error"),internalError:C("Internal server error")};function oa(o){return async(e,n)=>{o.cache&&e.set("cacheStorage",o.cache),o.rateLimit&&e.set("rateLimitStorage",o.rateLimit),o.audit&&e.set("auditStorage",o.audit),o.versioning&&e.set("versioningStorage",o.versioning),o.logging&&e.set("loggingStorage",o.logging),o.idempotency&&e.set("idempotencyStorage",o.idempotency),o.events&&e.set("eventEmitter",o.events),await n();}}function l(o,e){let n=e.middlewares??[],t=e.extras;return class extends o{static _middlewares=n;constructor(){super(),t&&Object.assign(this,t);}_meta=e.meta;schema=e.schema??{};beforeHookMode=e.beforeHookMode??"sequential";afterHookMode=e.afterHookMode??"sequential";allowNestedCreate=e.allowNestedCreate??[];lookupField=e.lookupField??"id";additionalFilters=e.additionalFilters;allowedUpdateFields=e.allowedUpdateFields;blockedUpdateFields=e.blockedUpdateFields;allowNestedWrites=e.allowNestedWrites??[];includeCascadeResults=e.includeCascadeResults??false;filterFields=e.filterFields??[];filterConfig=e.filterConfig;searchFields=e.searchFields??[];searchFieldName=e.searchFieldName??"search";sortFields=e.sortFields??[];defaultSort=e.defaultSort;defaultPerPage=e.defaultPerPage??20;maxPerPage=e.maxPerPage??100;allowedIncludes=e.allowedIncludes??[];fieldSelectionEnabled=e.fieldSelectionEnabled??false;allowedSelectFields=e.allowedSelectFields??[];blockedSelectFields=e.blockedSelectFields??[];alwaysIncludeFields=e.alwaysIncludeFields??[];defaultSelectFields=e.defaultSelectFields??[];getBodySchema(){return e.bodySchema?e.bodySchema:super.getBodySchema()}async before(...p){return e.before?e.before(...p):super.before(...p)}async after(...p){return e.after?e.after(...p):super.after(...p)}transform(p){return e.transform?e.transform(p):super.transform(p)}}}function na(o,e){return l(e,{meta:o.meta,schema:o.schema,middlewares:o.middlewares,before:o.before,after:o.after,beforeHookMode:o.beforeHookMode,afterHookMode:o.afterHookMode,allowNestedCreate:o.allowNestedCreate})}function ra(o,e){let n=o.defaultSort??(o.defaultOrderBy?{field:o.defaultOrderBy,order:o.defaultOrderDirection??"asc"}:void 0);return l(e,{meta:o.meta,schema:o.schema,middlewares:o.middlewares,after:o.after,transform:o.transform,filterFields:o.filterFields,filterConfig:o.filterConfig,searchFields:o.searchFields,searchFieldName:o.searchFieldName,sortFields:o.sortFields??o.orderByFields,defaultSort:n,defaultPerPage:o.defaultPerPage,maxPerPage:o.maxPerPage,allowedIncludes:o.allowedIncludes,fieldSelectionEnabled:o.fieldSelectionEnabled,allowedSelectFields:o.allowedSelectFields,blockedSelectFields:o.blockedSelectFields,alwaysIncludeFields:o.alwaysIncludeFields,defaultSelectFields:o.defaultSelectFields})}function aa(o,e){return l(e,{meta:o.meta,schema:o.schema,middlewares:o.middlewares,after:o.after,transform:o.transform,lookupField:o.lookupField,additionalFilters:o.additionalFilters,allowedIncludes:o.allowedIncludes,fieldSelectionEnabled:o.fieldSelectionEnabled,allowedSelectFields:o.allowedSelectFields,blockedSelectFields:o.blockedSelectFields,alwaysIncludeFields:o.alwaysIncludeFields,defaultSelectFields:o.defaultSelectFields})}function ia(o,e){return l(e,{meta:o.meta,schema:o.schema,middlewares:o.middlewares,before:o.before,after:o.after,transform:o.transform,beforeHookMode:o.beforeHookMode,afterHookMode:o.afterHookMode,lookupField:o.lookupField,additionalFilters:o.additionalFilters,allowedUpdateFields:o.allowedUpdateFields,blockedUpdateFields:o.blockedUpdateFields,allowNestedWrites:o.allowNestedWrites})}function sa(o,e){return l(e,{meta:o.meta,schema:o.schema,middlewares:o.middlewares,before:o.before,after:o.after,beforeHookMode:o.beforeHookMode,afterHookMode:o.afterHookMode,lookupField:o.lookupField,additionalFilters:o.additionalFilters,includeCascadeResults:o.includeCascadeResults})}var O=class{constructor(e){this.meta=e;}_schema={};_before;_after;_beforeHookMode="sequential";_afterHookMode="sequential";_allowNestedCreate=[];_middlewares=[];middleware(...e){return this._middlewares.push(...e),this}tags(...e){return this._schema.tags=e,this}summary(e){return this._schema.summary=e,this}description(e){return this._schema.description=e,this}before(e){return this._before=e,this}after(e){return this._after=e,this}beforeMode(e){return this._beforeHookMode=e,this}afterMode(e){return this._afterHookMode=e,this}nestedCreate(...e){return this._allowNestedCreate=e,this}build(e){return l(e,{meta:this.meta,schema:this._schema,before:this._before,after:this._after,beforeHookMode:this._beforeHookMode,afterHookMode:this._afterHookMode,allowNestedCreate:this._allowNestedCreate,middlewares:this._middlewares})}},P=class{constructor(e){this.meta=e;}_schema={};_filterFields=[];_filterConfig;_searchFields=[];_searchFieldName="search";_sortFields=[];_defaultSort;_defaultPerPage=20;_maxPerPage=100;_allowedIncludes=[];_fieldSelectionEnabled=false;_allowedSelectFields=[];_blockedSelectFields=[];_alwaysIncludeFields=[];_defaultSelectFields=[];_after;_transform;_middlewares=[];middleware(...e){return this._middlewares.push(...e),this}tags(...e){return this._schema.tags=e,this}summary(e){return this._schema.summary=e,this}description(e){return this._schema.description=e,this}filter(...e){return this._filterFields=e,this}filterWith(e){return this._filterConfig=e,this}search(...e){return this._searchFields=e,this}searchParam(e){return this._searchFieldName=e,this}sortable(...e){return this._sortFields=e,this}orderBy(...e){return this.sortable(...e)}defaultSort(e,n="asc"){return this._defaultSort={field:e,order:n},this}defaultOrder(e,n="asc"){return this.defaultSort(e,n)}pagination(e,n){return this._defaultPerPage=e,n!==void 0&&(this._maxPerPage=n),this}include(...e){return this._allowedIncludes=e,this}fieldSelection(e){return this._fieldSelectionEnabled=true,e?.allowed&&(this._allowedSelectFields=e.allowed),e?.blocked&&(this._blockedSelectFields=e.blocked),e?.alwaysInclude&&(this._alwaysIncludeFields=e.alwaysInclude),e?.defaults&&(this._defaultSelectFields=e.defaults),this}after(e){return this._after=e,this}transform(e){return this._transform=e,this}build(e){return l(e,{meta:this.meta,schema:this._schema,filterFields:this._filterFields,filterConfig:this._filterConfig,searchFields:this._searchFields,searchFieldName:this._searchFieldName,sortFields:this._sortFields,defaultSort:this._defaultSort,defaultPerPage:this._defaultPerPage,maxPerPage:this._maxPerPage,allowedIncludes:this._allowedIncludes,fieldSelectionEnabled:this._fieldSelectionEnabled,allowedSelectFields:this._allowedSelectFields,blockedSelectFields:this._blockedSelectFields,alwaysIncludeFields:this._alwaysIncludeFields,defaultSelectFields:this._defaultSelectFields,after:this._after,transform:this._transform,middlewares:this._middlewares})}},R=class{constructor(e){this.meta=e;}_schema={};_lookupField="id";_additionalFilters;_allowedIncludes=[];_fieldSelectionEnabled=false;_allowedSelectFields=[];_blockedSelectFields=[];_alwaysIncludeFields=[];_defaultSelectFields=[];_after;_transform;_middlewares=[];middleware(...e){return this._middlewares.push(...e),this}tags(...e){return this._schema.tags=e,this}summary(e){return this._schema.summary=e,this}description(e){return this._schema.description=e,this}lookupField(e){return this._lookupField=e,this}additionalFilters(...e){return this._additionalFilters=e,this}include(...e){return this._allowedIncludes=e,this}fieldSelection(e){return this._fieldSelectionEnabled=true,e?.allowed&&(this._allowedSelectFields=e.allowed),e?.blocked&&(this._blockedSelectFields=e.blocked),e?.alwaysInclude&&(this._alwaysIncludeFields=e.alwaysInclude),e?.defaults&&(this._defaultSelectFields=e.defaults),this}after(e){return this._after=e,this}transform(e){return this._transform=e,this}build(e){return l(e,{meta:this.meta,schema:this._schema,lookupField:this._lookupField,additionalFilters:this._additionalFilters,allowedIncludes:this._allowedIncludes,fieldSelectionEnabled:this._fieldSelectionEnabled,allowedSelectFields:this._allowedSelectFields,blockedSelectFields:this._blockedSelectFields,alwaysIncludeFields:this._alwaysIncludeFields,defaultSelectFields:this._defaultSelectFields,after:this._after,transform:this._transform,middlewares:this._middlewares})}},v=class{constructor(e){this.meta=e;}_schema={};_lookupField="id";_additionalFilters;_allowedUpdateFields;_blockedUpdateFields;_allowNestedWrites=[];_before;_after;_beforeHookMode="sequential";_afterHookMode="sequential";_transform;_middlewares=[];middleware(...e){return this._middlewares.push(...e),this}tags(...e){return this._schema.tags=e,this}summary(e){return this._schema.summary=e,this}description(e){return this._schema.description=e,this}lookupField(e){return this._lookupField=e,this}additionalFilters(...e){return this._additionalFilters=e,this}allowedFields(...e){return this._allowedUpdateFields=e,this}blockedFields(...e){return this._blockedUpdateFields=e,this}nestedWrites(...e){return this._allowNestedWrites=e,this}before(e){return this._before=e,this}after(e){return this._after=e,this}beforeMode(e){return this._beforeHookMode=e,this}afterMode(e){return this._afterHookMode=e,this}transform(e){return this._transform=e,this}build(e){return l(e,{meta:this.meta,schema:this._schema,lookupField:this._lookupField,additionalFilters:this._additionalFilters,allowedUpdateFields:this._allowedUpdateFields,blockedUpdateFields:this._blockedUpdateFields,allowNestedWrites:this._allowNestedWrites,before:this._before,after:this._after,beforeHookMode:this._beforeHookMode,afterHookMode:this._afterHookMode,transform:this._transform,middlewares:this._middlewares})}},A=class{constructor(e){this.meta=e;}_schema={};_lookupField="id";_additionalFilters;_includeCascadeResults=false;_before;_after;_beforeHookMode="sequential";_afterHookMode="sequential";_middlewares=[];middleware(...e){return this._middlewares.push(...e),this}tags(...e){return this._schema.tags=e,this}summary(e){return this._schema.summary=e,this}description(e){return this._schema.description=e,this}lookupField(e){return this._lookupField=e,this}additionalFilters(...e){return this._additionalFilters=e,this}includeCascade(e=true){return this._includeCascadeResults=e,this}before(e){return this._before=e,this}after(e){return this._after=e,this}beforeMode(e){return this._beforeHookMode=e,this}afterMode(e){return this._afterHookMode=e,this}build(e){return l(e,{meta:this.meta,schema:this._schema,lookupField:this._lookupField,additionalFilters:this._additionalFilters,includeCascadeResults:this._includeCascadeResults,before:this._before,after:this._after,beforeHookMode:this._beforeHookMode,afterHookMode:this._afterHookMode,middlewares:this._middlewares})}},H=class{constructor(e){this.meta=e;}create(){return new O(this.meta)}list(){return new P(this.meta)}read(){return new R(this.meta)}update(){return new v(this.meta)}delete(){return new A(this.meta)}};function da(o){return new H(o)}var la={CreateEndpoint:g,ListEndpoint:k,ReadEndpoint:h,UpdateEndpoint:i,DeleteEndpoint:j,SearchEndpoint:y$1,AggregateEndpoint:x,RestoreEndpoint:l$1,BatchCreateEndpoint:m,BatchUpdateEndpoint:n,BatchDeleteEndpoint:o,BatchRestoreEndpoint:p,BatchUpsertEndpoint:q,ExportEndpoint:z$1,ImportEndpoint:A$1,UpsertEndpoint:s,CloneEndpoint:r};function pa(o,e){let n={};if(o.create!==void 0){let t=o.create;n.create=l(e.CreateEndpoint,{meta:o.meta,schema:t.openapi,middlewares:t.middlewares,bodySchema:t.bodySchema,beforeHookMode:t.hooks?.beforeMode,afterHookMode:t.hooks?.afterMode,allowNestedCreate:t.nestedCreate,before:t.hooks?.before,after:t.hooks?.after});}if(o.list!==void 0){let t=o.list;n.list=l(e.ListEndpoint,{meta:o.meta,schema:t.openapi,middlewares:t.middlewares,filterFields:t.filtering?.fields,filterConfig:t.filtering?.config,searchFields:t.search?.fields,searchFieldName:t.search?.paramName,sortFields:t.sorting?.fields,defaultSort:t.sorting?.default?{field:t.sorting.default,order:t.sorting.defaultOrder??t.sorting.defaultDirection??"asc"}:void 0,defaultPerPage:t.pagination?.defaultPerPage,maxPerPage:t.pagination?.maxPerPage,allowedIncludes:t.includes,fieldSelectionEnabled:t.fieldSelection?.enabled,allowedSelectFields:t.fieldSelection?.allowed,blockedSelectFields:t.fieldSelection?.blocked,alwaysIncludeFields:t.fieldSelection?.alwaysInclude,defaultSelectFields:t.fieldSelection?.defaults,after:t.hooks?.after,transform:t.hooks?.transform});}if(o.read!==void 0){let t=o.read;n.read=l(e.ReadEndpoint,{meta:o.meta,schema:t.openapi,middlewares:t.middlewares,lookupField:t.lookupField,additionalFilters:t.additionalFilters,allowedIncludes:t.includes,fieldSelectionEnabled:t.fieldSelection?.enabled,allowedSelectFields:t.fieldSelection?.allowed,blockedSelectFields:t.fieldSelection?.blocked,alwaysIncludeFields:t.fieldSelection?.alwaysInclude,defaultSelectFields:t.fieldSelection?.defaults,after:t.hooks?.after,transform:t.hooks?.transform});}if(o.update!==void 0){let t=o.update;n.update=l(e.UpdateEndpoint,{meta:o.meta,schema:t.openapi,middlewares:t.middlewares,bodySchema:t.bodySchema,lookupField:t.lookupField,additionalFilters:t.additionalFilters,allowedUpdateFields:t.fields?.allowed,blockedUpdateFields:t.fields?.blocked,allowNestedWrites:t.nestedWrites,beforeHookMode:t.hooks?.beforeMode,afterHookMode:t.hooks?.afterMode,before:t.hooks?.before,after:t.hooks?.after,transform:t.hooks?.transform});}if(o.delete!==void 0){let t=o.delete;n.delete=l(e.DeleteEndpoint,{meta:o.meta,schema:t.openapi,middlewares:t.middlewares,lookupField:t.lookupField,additionalFilters:t.additionalFilters,includeCascadeResults:t.includeCascadeResults,beforeHookMode:t.hooks?.beforeMode,afterHookMode:t.hooks?.afterMode,before:t.hooks?.before,after:t.hooks?.after});}if(o.search!==void 0&&e.SearchEndpoint){let t=o.search;n.search=l(e.SearchEndpoint,{meta:o.meta,schema:t.openapi,middlewares:t.middlewares,after:t.hooks?.after,extras:{...t.fields!==void 0?{searchFields:t.fields}:{},...t.mode!==void 0?{defaultMode:t.mode}:{}}});}if(o.aggregate!==void 0&&e.AggregateEndpoint){let t=o.aggregate;n.aggregate=l(e.AggregateEndpoint,{meta:o.meta,schema:t.openapi,middlewares:t.middlewares,after:t.hooks?.after,extras:{...t.fields!==void 0?{filterFields:t.fields}:{}}});}if(o.restore!==void 0&&e.RestoreEndpoint){let t=o.restore;n.restore=l(e.RestoreEndpoint,{meta:o.meta,schema:t.openapi,middlewares:t.middlewares,beforeHookMode:t.hooks?.beforeMode,afterHookMode:t.hooks?.afterMode,before:t.hooks?.before,after:t.hooks?.after});}if(o.batchCreate!==void 0&&e.BatchCreateEndpoint){let t=o.batchCreate;n.batchCreate=l(e.BatchCreateEndpoint,{meta:o.meta,schema:t.openapi,middlewares:t.middlewares,bodySchema:t.bodySchema,beforeHookMode:t.hooks?.beforeMode,afterHookMode:t.hooks?.afterMode,before:t.hooks?.before,after:t.hooks?.after,extras:{...t.maxBatchSize!==void 0?{maxBatchSize:t.maxBatchSize}:{}}});}if(o.batchUpdate!==void 0&&e.BatchUpdateEndpoint){let t=o.batchUpdate;n.batchUpdate=l(e.BatchUpdateEndpoint,{meta:o.meta,schema:t.openapi,middlewares:t.middlewares,beforeHookMode:t.hooks?.beforeMode,afterHookMode:t.hooks?.afterMode,before:t.hooks?.before,after:t.hooks?.after,extras:{...t.maxBatchSize!==void 0?{maxBatchSize:t.maxBatchSize}:{}}});}if(o.batchDelete!==void 0&&e.BatchDeleteEndpoint){let t=o.batchDelete;n.batchDelete=l(e.BatchDeleteEndpoint,{meta:o.meta,schema:t.openapi,middlewares:t.middlewares,beforeHookMode:t.hooks?.beforeMode,afterHookMode:t.hooks?.afterMode,before:t.hooks?.before,after:t.hooks?.after,extras:{...t.maxBatchSize!==void 0?{maxBatchSize:t.maxBatchSize}:{}}});}if(o.batchRestore!==void 0&&e.BatchRestoreEndpoint){let t=o.batchRestore;n.batchRestore=l(e.BatchRestoreEndpoint,{meta:o.meta,schema:t.openapi,middlewares:t.middlewares,beforeHookMode:t.hooks?.beforeMode,afterHookMode:t.hooks?.afterMode,before:t.hooks?.before,after:t.hooks?.after,extras:{...t.maxBatchSize!==void 0?{maxBatchSize:t.maxBatchSize}:{}}});}if(o.batchUpsert!==void 0&&e.BatchUpsertEndpoint){let t=o.batchUpsert,r=typeof t.conflictTarget=="string"?[t.conflictTarget]:t.conflictTarget;n.batchUpsert=l(e.BatchUpsertEndpoint,{meta:o.meta,schema:t.openapi,middlewares:t.middlewares,bodySchema:t.bodySchema,beforeHookMode:t.hooks?.beforeMode,afterHookMode:t.hooks?.afterMode,before:t.hooks?.before,after:t.hooks?.after,extras:{...t.maxBatchSize!==void 0?{maxBatchSize:t.maxBatchSize}:{},...r!==void 0?{upsertKeys:r}:{}}});}if(o.export!==void 0&&e.ExportEndpoint){let t=o.export;n.export=l(e.ExportEndpoint,{meta:o.meta,schema:t.openapi,middlewares:t.middlewares,extras:{...t.maxRows!==void 0?{maxExportRecords:t.maxRows}:{},...t.formats!==void 0&&t.formats.length>0?{defaultFormat:t.formats[0]}:{}}});}if(o.import!==void 0&&e.ImportEndpoint){let t=o.import;n.import=l(e.ImportEndpoint,{meta:o.meta,schema:t.openapi,middlewares:t.middlewares,before:t.hooks?.before,after:t.hooks?.after,extras:{...t.maxRows!==void 0?{maxBatchSize:t.maxRows}:{}}});}if(o.upsert!==void 0&&e.UpsertEndpoint){let t=o.upsert,r=typeof t.conflictTarget=="string"?[t.conflictTarget]:t.conflictTarget;n.upsert=l(e.UpsertEndpoint,{meta:o.meta,schema:t.openapi,middlewares:t.middlewares,bodySchema:t.bodySchema,beforeHookMode:t.hooks?.beforeMode,afterHookMode:t.hooks?.afterMode,before:t.hooks?.before,after:t.hooks?.after,extras:{...r!==void 0?{upsertKeys:r}:{}}});}if(o.clone!==void 0&&e.CloneEndpoint){let t=o.clone;n.clone=l(e.CloneEndpoint,{meta:o.meta,schema:t.openapi,middlewares:t.middlewares,before:t.hooks?.before,after:t.hooks?.after,extras:{...t.fieldsToReset!==void 0?{excludeFromClone:t.fieldsToReset}:{}}});}return n}
|
|
2
2
|
export{O as CreateBuilder,H as CrudBuilder,A as DeleteBuilder,y as HonoOpenAPIHandler,de as HttpErrorSchema,P as ListBuilder,la as MemoryAdapters,R as ReadBuilder,v as UpdateBuilder,I as ZodErrorSchema,se as ZodIssueSchema,Tr as buildPerTenantOpenApi,ta as commonResponses,L as contentJson,na as createCreate,oa as createCrudMiddleware,sa as createDelete,Vr as createErrorHandler,Qr as createErrorSchema,ra as createList,Yr as createOneOfErrorSchema,aa as createRead,Wr as createSubscribeHandler,ia as createUpdate,ea as createValidationHook,da as crud,pa as defineEndpoints,Gr as errorResponse,Hr as fromHono,T as getHandlerForApp,C as httpErrorContent,D as jsonContent,Jr as jsonContentRequired,Xr as openApiValidationHook,Kr as registerCrud,$r as successResponse,Dr as wrapCacheStorageForOpenApi,ie as zodErrorMapper};
|