@web-ts-toolkit/access-router 0.4.0 → 0.5.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/package.json CHANGED
@@ -1,11 +1,15 @@
1
1
  {
2
2
  "name": "@web-ts-toolkit/access-router",
3
- "description": "Access-policy Express routers and in-memory data services for Mongoose-backed APIs",
4
- "version": "0.4.0",
3
+ "description": "ACL-aware Express routers and in-memory data services for Mongoose-backed APIs",
4
+ "homepage": "https://web-ts-toolkit.pages.dev/docs/packages/access-router",
5
+ "version": "0.5.0",
6
+ "sideEffects": false,
5
7
  "keywords": [
6
8
  "express",
7
9
  "mongoose",
8
- "access",
10
+ "acl",
11
+ "crud",
12
+ "openapi",
9
13
  "access-router",
10
14
  "router"
11
15
  ],
@@ -32,12 +36,15 @@
32
36
  "default": "./processors.js"
33
37
  }
34
38
  },
39
+ "engines": {
40
+ "node": ">=20"
41
+ },
35
42
  "dependencies": {
36
- "@web-ts-toolkit/express-json-router": "0.4.0",
43
+ "@web-ts-toolkit/express-json-router": "0.5.0",
44
+ "@web-ts-toolkit/utils": "0.5.0",
37
45
  "deep-diff": "^1.0.2",
38
46
  "mongoose-schema-jsonschema": "^4.0.1",
39
47
  "sift": "^17.1.3",
40
- "@web-ts-toolkit/utils": "0.4.0",
41
48
  "winston": "^3.19.0",
42
49
  "zod": "^4.1.12"
43
50
  },
@@ -49,9 +56,6 @@
49
56
  "bugs": {
50
57
  "url": "https://github.com/egose/web-ts-toolkit/issues"
51
58
  },
52
- "engines": {
53
- "node": ">=20"
54
- },
55
59
  "license": "Apache-2.0",
56
60
  "repository": {
57
61
  "type": "git",
@@ -26,8 +26,8 @@ type Permissions = Permission;
26
26
  type AccessRouterPermissions = Permission;
27
27
 
28
28
  declare class Base<TModel = unknown> {
29
- req: ModelRequest;
30
- modelName: string;
29
+ protected req: ModelRequest;
30
+ protected modelName: string;
31
31
  constructor(req: ModelRequest, modelName: string);
32
32
  decorate<T>(doc: T, access: DecorateAccess, context: ModelHookContext): Promise<T>;
33
33
  decorateAll<T>(docs: T[], access: DecorateAllAccess, context: ModelHookContext): Promise<T[]>;
@@ -98,19 +98,17 @@ declare class Model {
98
98
  find({ filter, select, sort, populate, limit, skip, lean }: FindProps): mongoose.Query<any[], any, {}, any, "find", {}>;
99
99
  validateSort(sort: SortType, logError?: (msg: string, ...args: unknown[]) => void): boolean;
100
100
  findOne({ filter, select, sort, populate, lean }: FindOneProps): mongoose.Query<any, any, {}, any, "findOne", {}>;
101
- findOneAndDelete(filter: any): mongoose.Query<any, any, {}, any, "findOneAndDelete", {}>;
102
101
  exists(filter: any): mongoose.Query<any, any, {}, any, "findOne", {}>;
103
102
  countDocuments(filter?: {}): mongoose.Query<number, any, {}, any, "countDocuments", {}>;
104
- estimatedDocumentCount(): mongoose.Query<number, any, {}, any, "estimatedDocumentCount", {}>;
105
103
  distinct(field: string, conditions?: {}): mongoose.Query<any[], any, {}, any, "distinct", {}>;
106
104
  }
107
105
 
108
106
  declare class Service<TModel = unknown> extends Base<TModel> {
109
- model: Model;
110
- options: ModelRouterOptions<TModel>;
107
+ protected model: Model;
108
+ protected options: ModelRouterOptions<TModel>;
111
109
  defaults: Defaults<TModel>;
112
- baseFields: string[];
113
- baseFieldsExt: string[];
110
+ protected baseFields: string[];
111
+ protected baseFieldsExt: string[];
114
112
  private asServiceHookContext;
115
113
  constructor(req: ModelRequest, modelName: string);
116
114
  findOne(filter: Filter<TModel>, args?: FindOneArgs<TModel>, options?: FindOneOptions): Promise<SingleResult<TModel> | ErrorResult>;
@@ -210,10 +208,10 @@ declare class PublicService<TModel = unknown> extends Service<TModel> {
210
208
  }
211
209
 
212
210
  declare class DataService<T> {
213
- req: DataRequest;
214
- dataName: string;
215
- options: DataRouterOptions<T>;
216
- data: T[];
211
+ protected req: DataRequest;
212
+ protected dataName: string;
213
+ protected options: DataRouterOptions<T>;
214
+ protected data: T[];
217
215
  constructor(req: DataRequest, dataName: string);
218
216
  findOne<TSelect extends Projection | undefined = undefined>(filter: DataFilter<T>, args?: DataFindOneArgs<T, TSelect>, options?: DataFindOneOptions): Promise<SingleResult<SelectedPublicOutput<T, TSelect>> | ErrorResult>;
219
217
  findById<TSelect extends Projection | undefined = undefined>(id: string, args?: DataFindOneArgs<T, TSelect>, options?: DataFindOneOptions): Promise<SingleResult<SelectedPublicOutput<T, TSelect>> | ErrorResult>;
@@ -886,6 +884,10 @@ type RequestSchemaResult<T = unknown> = RequestSchemaSuccess<T> | RequestSchemaF
886
884
  type RequestSchemaValidator<T = unknown> = (value: unknown) => RequestSchemaResult<T> | Promise<RequestSchemaResult<T>>;
887
885
  type RequestSchemaAdapter<T = unknown> = {
888
886
  validate: RequestSchemaValidator<T>;
887
+ openapi?: Record<string, unknown>;
888
+ };
889
+ type RequestSchemaOptions = {
890
+ openapi?: Record<string, unknown>;
889
891
  };
890
892
  type StandardSchemaPathSegment = {
891
893
  key: PropertyKey;
@@ -1403,7 +1405,7 @@ declare function parseQuery<TSchema extends z.ZodTypeAny>(schema: TSchema, value
1403
1405
  declare function parseBody<TSchema extends z.ZodTypeAny>(schema: TSchema, value: unknown): z.output<TSchema>;
1404
1406
  declare function parseBodyWithSchema<TSchema extends z.ZodTypeAny>(schema: TSchema, value: unknown, userSchema?: RequestSchemaLike): Promise<z.output<TSchema>>;
1405
1407
  declare function parseNestedBodyWithSchema(schema: z.ZodTypeAny, value: unknown, nestedKey: string, userSchema?: RequestSchemaLike): Promise<Record<string, unknown>>;
1406
- declare function defineRequestSchema<T = unknown>(validator: RequestSchemaValidator<T>): RequestSchemaValidator<T>;
1408
+ declare function defineRequestSchema<T = unknown>(validator: RequestSchemaValidator<T>, options?: RequestSchemaOptions): RequestSchemaAdapter<T>;
1407
1409
  declare function fromZod<TSchema extends z.ZodTypeAny>(schema: TSchema): RequestSchemaValidator<z.output<TSchema>>;
1408
1410
  declare function fromStandardSchema<TSchema extends StandardSchemaV1>(schema: TSchema): RequestSchemaValidator<StandardSchemaInferOutput<TSchema>>;
1409
1411
  declare function fromYup<TSchema extends YupSchemaLike>(schema: TSchema): RequestSchemaValidator;
@@ -1415,4 +1417,4 @@ declare function fromIoTs<TValue = unknown>(decoder: IoTsDecoderLike<TValue>): R
1415
1417
  declare function fromSuperstruct<TStruct, TOutput = unknown>(struct: TStruct, validate: SuperstructValidateLike): RequestSchemaValidator<TOutput>;
1416
1418
  declare function fromVine<TValue = unknown>(validator: VineValidatorLike<TValue>): RequestSchemaValidator<TValue>;
1417
1419
 
1418
- export { type FindAccess as $, type AccessRouterBaseRequest as A, type BaseFilterAccess as B, Codes as C, type DataBaseFilterHook as D, type DataHook as E, type DataHookContext as F, type DataIdentifierHook as G, type DataListHook as H, type DataOverrideFilterHook as I, type DataRequest as J, type DataRequestSchemas as K, type DataRouterOptions as L, type DecorateAccess as M, type DecorateAllAccess as N, type DeepFieldPath as O, type DefaultModelRouterOptions as P, type Defaults as Q, type DistinctArgs as R, type DistinctBody as S, type DocPermissionsAccess as T, type ErrorResult as U, type ExistsOptions as V, type ExtendedDataRouterOptions as W, type ExtendedDefaultModelRouterOptions as X, type ExtendedModelRouterOptions as Y, type Filter as Z, FilterOperator as _, type AccessRouterFieldKey as a, type RootDataReadByFilterQueryEntry as a$, type FindArgs as a0, type FindByIdArgs as a1, type FindByIdOptions as a2, type FindOneArgs as a3, type FindOneOptions as a4, type FindOptions as a5, type GlobalOptions as a6, type GlobalPermissionValue as a7, type GuardHook as a8, type IdentifierHook as a9, type Populate as aA, type PopulateAccess as aB, type PrepareAccess as aC, type Projection as aD, type PublicCreateArgs as aE, type PublicCreateOptions as aF, type PublicListArgs as aG, type PublicListOptions as aH, type PublicOutput as aI, type PublicReadArgs as aJ, type PublicReadOptions as aK, type PublicUpdateArgs as aL, type PublicUpdateOptions as aM, type PublicUpsertArgs as aN, type PublicUpsertOptions as aO, type ReadQueryInput as aP, type Request as aQ, type RequestSchemaAdapter as aR, type RequestSchemaFailure as aS, type RequestSchemaIssue as aT, type RequestSchemaLike as aU, type RequestSchemaResult as aV, type RequestSchemaSuccess as aW, type RequestSchemaValidator as aX, type RequestSchemas as aY, type RootDataListQueryEntry as aZ, type RootDataOperation as a_, type Include as aa, type IoTsContextEntryLike as ab, type IoTsDecodeErrorLike as ac, type IoTsDecoderLike as ad, type JoiSchemaLike as ae, type JoiValidationErrorDetailLike as af, type KeyValueProjection as ag, type ListQueryInput as ah, type ListResult as ai, type MaybePromise as aj, type ModelBaseFilterHook as ak, type ModelChangeHook as al, type ModelDeleteHook as am, type ModelDocPermissionsHook as an, type ModelDocument as ao, type ModelDocumentHook as ap, type ModelHook as aq, type ModelHookContext as ar, type ModelIdentifierHook as as, type ModelListHook as at, type ModelOverrideFilterHook as au, type ModelRequest as av, type ModelRouterOptions as aw, type ModelValidateHook as ax, type PathValue as ay, type PermissionSchema as az, type AccessRouterLogger as b, type ValidationError as b$, type RootDataReadByIdQueryEntry as b0, type RootModelCountQueryEntry as b1, type RootModelCreateQueryEntry as b2, type RootModelDeleteQueryEntry as b3, type RootModelDistinctQueryEntry as b4, type RootModelListQueryEntry as b5, type RootModelNewQueryEntry as b6, type RootModelOperation as b7, type RootModelReadByFilterQueryEntry as b8, type RootModelReadByIdQueryEntry as b9, type StandardSchemaSuccess as bA, type StandardSchemaV1 as bB, StatusCodes as bC, type SubListBody as bD, type SubPopulate as bE, type SubQueryEntry as bF, type SubReadBody as bG, type SuperstructFailureLike as bH, type SuperstructValidateLike as bI, type Task as bJ, type TransformAccess as bK, type TypedFilter as bL, type UpdateByIdArgs as bM, type UpdateByIdOptions as bN, type UpdateOneArgs as bO, type UpdateOneOptions as bP, type UpdateQueryInput as bQ, type UpsertArgs as bR, type UpsertOptions as bS, type UpsertQueryInput as bT, type ValibotIssueLike as bU, type ValibotPathItemLike as bV, type ValibotSafeParseLike as bW, type ValibotSafeParseResult as bX, type ValidateAccess as bY, type ValidateRule as bZ, type Validation as b_, type RootModelSubBulkUpdateQueryEntry as ba, type RootModelSubCreateQueryEntry as bb, type RootModelSubDeleteQueryEntry as bc, type RootModelSubListQueryEntry as bd, type RootModelSubReadQueryEntry as be, type RootModelSubUpdateQueryEntry as bf, type RootModelUpdateQueryEntry as bg, type RootModelUpsertQueryEntry as bh, type RootOperationResult as bi, type RootQueryEntry as bj, type RootRouterOptions as bk, type RootSubOperation as bl, type RootTarget as bm, type RouteGuardAccess as bn, type SelectAccess as bo, type SelectedPopulatedPublicOutput as bp, type SelectedPublicOutput as bq, type ServiceResult as br, type SingleResult as bs, type Sort as bt, type SortOrder as bu, type StandardSchemaFailure as bv, type StandardSchemaInferOutput as bw, type StandardSchemaIssue as bx, type StandardSchemaPathSegment as by, type StandardSchemaResult as bz, type AccessRouterRequest as c, type VineValidationErrorLike as c0, type VineValidationMessageLike as c1, type VineValidatorLike as c2, type YupSchemaLike as c3, type YupValidationErrorLike as c4, defineRequestSchema as c5, fromAjv as c6, fromArkType as c7, fromIoTs as c8, fromJoi as c9, fromStandardSchema as ca, fromSuperstruct as cb, fromValibot as cc, fromVine as cd, fromYup as ce, fromZod as cf, parseBody as cg, parseBodyWithSchema as ch, parseNestedBodyWithSchema as ci, parsePathParam as cj, parseQuery as ck, DataService as cl, Model as cm, Service as cn, PublicService as co, type AccessRouterPermissionMap as cp, type AccessRouterPermissions as cq, type Permissions as cr, type AccessRouterRequestExtensions as d, type AdvancedCreateBody as e, type AdvancedListBody as f, type AdvancedReadBody as g, type AdvancedReadFilterBody as h, type AdvancedUpdateBody as i, type AdvancedUpsertBody as j, type AfterPersistAccess as k, type AjvErrorObjectLike as l, type AjvValidatorLike as m, type ArkTypeErrorsLike as n, type ArkTypeLike as o, type ArkTypeProblemLike as p, type CountBody as q, type CreateArgs as r, type CreateOptions as s, type CreateQueryInput as t, CustomHeaders as u, type DataFilter as v, type DataFindArgs as w, type DataFindOneArgs as x, type DataFindOneOptions as y, type DataFindOptions as z };
1420
+ export { type FindAccess as $, type AccessRouterBaseRequest as A, type BaseFilterAccess as B, Codes as C, type DataBaseFilterHook as D, type DataHook as E, type DataHookContext as F, type DataIdentifierHook as G, type DataListHook as H, type DataOverrideFilterHook as I, type DataRequest as J, type DataRequestSchemas as K, type DataRouterOptions as L, type DecorateAccess as M, type DecorateAllAccess as N, type DeepFieldPath as O, type DefaultModelRouterOptions as P, type Defaults as Q, type DistinctArgs as R, type DistinctBody as S, type DocPermissionsAccess as T, type ErrorResult as U, type ExistsOptions as V, type ExtendedDataRouterOptions as W, type ExtendedDefaultModelRouterOptions as X, type ExtendedModelRouterOptions as Y, type Filter as Z, FilterOperator as _, type AccessRouterFieldKey as a, type RootDataOperation as a$, type FindArgs as a0, type FindByIdArgs as a1, type FindByIdOptions as a2, type FindOneArgs as a3, type FindOneOptions as a4, type FindOptions as a5, type GlobalOptions as a6, type GlobalPermissionValue as a7, type GuardHook as a8, type IdentifierHook as a9, type Populate as aA, type PopulateAccess as aB, type PrepareAccess as aC, type Projection as aD, type PublicCreateArgs as aE, type PublicCreateOptions as aF, type PublicListArgs as aG, type PublicListOptions as aH, type PublicOutput as aI, type PublicReadArgs as aJ, type PublicReadOptions as aK, type PublicUpdateArgs as aL, type PublicUpdateOptions as aM, type PublicUpsertArgs as aN, type PublicUpsertOptions as aO, type ReadQueryInput as aP, type Request as aQ, type RequestSchemaAdapter as aR, type RequestSchemaFailure as aS, type RequestSchemaIssue as aT, type RequestSchemaLike as aU, type RequestSchemaOptions as aV, type RequestSchemaResult as aW, type RequestSchemaSuccess as aX, type RequestSchemaValidator as aY, type RequestSchemas as aZ, type RootDataListQueryEntry as a_, type Include as aa, type IoTsContextEntryLike as ab, type IoTsDecodeErrorLike as ac, type IoTsDecoderLike as ad, type JoiSchemaLike as ae, type JoiValidationErrorDetailLike as af, type KeyValueProjection as ag, type ListQueryInput as ah, type ListResult as ai, type MaybePromise as aj, type ModelBaseFilterHook as ak, type ModelChangeHook as al, type ModelDeleteHook as am, type ModelDocPermissionsHook as an, type ModelDocument as ao, type ModelDocumentHook as ap, type ModelHook as aq, type ModelHookContext as ar, type ModelIdentifierHook as as, type ModelListHook as at, type ModelOverrideFilterHook as au, type ModelRequest as av, type ModelRouterOptions as aw, type ModelValidateHook as ax, type PathValue as ay, type PermissionSchema as az, type AccessRouterLogger as b, type Validation as b$, type RootDataReadByFilterQueryEntry as b0, type RootDataReadByIdQueryEntry as b1, type RootModelCountQueryEntry as b2, type RootModelCreateQueryEntry as b3, type RootModelDeleteQueryEntry as b4, type RootModelDistinctQueryEntry as b5, type RootModelListQueryEntry as b6, type RootModelNewQueryEntry as b7, type RootModelOperation as b8, type RootModelReadByFilterQueryEntry as b9, type StandardSchemaResult as bA, type StandardSchemaSuccess as bB, type StandardSchemaV1 as bC, StatusCodes as bD, type SubListBody as bE, type SubPopulate as bF, type SubQueryEntry as bG, type SubReadBody as bH, type SuperstructFailureLike as bI, type SuperstructValidateLike as bJ, type Task as bK, type TransformAccess as bL, type TypedFilter as bM, type UpdateByIdArgs as bN, type UpdateByIdOptions as bO, type UpdateOneArgs as bP, type UpdateOneOptions as bQ, type UpdateQueryInput as bR, type UpsertArgs as bS, type UpsertOptions as bT, type UpsertQueryInput as bU, type ValibotIssueLike as bV, type ValibotPathItemLike as bW, type ValibotSafeParseLike as bX, type ValibotSafeParseResult as bY, type ValidateAccess as bZ, type ValidateRule as b_, type RootModelReadByIdQueryEntry as ba, type RootModelSubBulkUpdateQueryEntry as bb, type RootModelSubCreateQueryEntry as bc, type RootModelSubDeleteQueryEntry as bd, type RootModelSubListQueryEntry as be, type RootModelSubReadQueryEntry as bf, type RootModelSubUpdateQueryEntry as bg, type RootModelUpdateQueryEntry as bh, type RootModelUpsertQueryEntry as bi, type RootOperationResult as bj, type RootQueryEntry as bk, type RootRouterOptions as bl, type RootSubOperation as bm, type RootTarget as bn, type RouteGuardAccess as bo, type SelectAccess as bp, type SelectedPopulatedPublicOutput as bq, type SelectedPublicOutput as br, type ServiceResult as bs, type SingleResult as bt, type Sort as bu, type SortOrder as bv, type StandardSchemaFailure as bw, type StandardSchemaInferOutput as bx, type StandardSchemaIssue as by, type StandardSchemaPathSegment as bz, type AccessRouterRequest as c, type ValidationError as c0, type VineValidationErrorLike as c1, type VineValidationMessageLike as c2, type VineValidatorLike as c3, type YupSchemaLike as c4, type YupValidationErrorLike as c5, defineRequestSchema as c6, fromAjv as c7, fromArkType as c8, fromIoTs as c9, fromJoi as ca, fromStandardSchema as cb, fromSuperstruct as cc, fromValibot as cd, fromVine as ce, fromYup as cf, fromZod as cg, parseBody as ch, parseBodyWithSchema as ci, parseNestedBodyWithSchema as cj, parsePathParam as ck, parseQuery as cl, DataService as cm, Model as cn, Service as co, PublicService as cp, type AccessRouterPermissionMap as cq, type AccessRouterPermissions as cr, type Permissions as cs, type AccessRouterRequestExtensions as d, type AdvancedCreateBody as e, type AdvancedListBody as f, type AdvancedReadBody as g, type AdvancedReadFilterBody as h, type AdvancedUpdateBody as i, type AdvancedUpsertBody as j, type AfterPersistAccess as k, type AjvErrorObjectLike as l, type AjvValidatorLike as m, type ArkTypeErrorsLike as n, type ArkTypeLike as o, type ArkTypeProblemLike as p, type CountBody as q, type CreateArgs as r, type CreateOptions as s, type CreateQueryInput as t, CustomHeaders as u, type DataFilter as v, type DataFindArgs as w, type DataFindOneArgs as x, type DataFindOneOptions as y, type DataFindOptions as z };
@@ -26,8 +26,8 @@ type Permissions = Permission;
26
26
  type AccessRouterPermissions = Permission;
27
27
 
28
28
  declare class Base<TModel = unknown> {
29
- req: ModelRequest;
30
- modelName: string;
29
+ protected req: ModelRequest;
30
+ protected modelName: string;
31
31
  constructor(req: ModelRequest, modelName: string);
32
32
  decorate<T>(doc: T, access: DecorateAccess, context: ModelHookContext): Promise<T>;
33
33
  decorateAll<T>(docs: T[], access: DecorateAllAccess, context: ModelHookContext): Promise<T[]>;
@@ -98,19 +98,17 @@ declare class Model {
98
98
  find({ filter, select, sort, populate, limit, skip, lean }: FindProps): mongoose.Query<any[], any, {}, any, "find", {}>;
99
99
  validateSort(sort: SortType, logError?: (msg: string, ...args: unknown[]) => void): boolean;
100
100
  findOne({ filter, select, sort, populate, lean }: FindOneProps): mongoose.Query<any, any, {}, any, "findOne", {}>;
101
- findOneAndDelete(filter: any): mongoose.Query<any, any, {}, any, "findOneAndDelete", {}>;
102
101
  exists(filter: any): mongoose.Query<any, any, {}, any, "findOne", {}>;
103
102
  countDocuments(filter?: {}): mongoose.Query<number, any, {}, any, "countDocuments", {}>;
104
- estimatedDocumentCount(): mongoose.Query<number, any, {}, any, "estimatedDocumentCount", {}>;
105
103
  distinct(field: string, conditions?: {}): mongoose.Query<any[], any, {}, any, "distinct", {}>;
106
104
  }
107
105
 
108
106
  declare class Service<TModel = unknown> extends Base<TModel> {
109
- model: Model;
110
- options: ModelRouterOptions<TModel>;
107
+ protected model: Model;
108
+ protected options: ModelRouterOptions<TModel>;
111
109
  defaults: Defaults<TModel>;
112
- baseFields: string[];
113
- baseFieldsExt: string[];
110
+ protected baseFields: string[];
111
+ protected baseFieldsExt: string[];
114
112
  private asServiceHookContext;
115
113
  constructor(req: ModelRequest, modelName: string);
116
114
  findOne(filter: Filter<TModel>, args?: FindOneArgs<TModel>, options?: FindOneOptions): Promise<SingleResult<TModel> | ErrorResult>;
@@ -210,10 +208,10 @@ declare class PublicService<TModel = unknown> extends Service<TModel> {
210
208
  }
211
209
 
212
210
  declare class DataService<T> {
213
- req: DataRequest;
214
- dataName: string;
215
- options: DataRouterOptions<T>;
216
- data: T[];
211
+ protected req: DataRequest;
212
+ protected dataName: string;
213
+ protected options: DataRouterOptions<T>;
214
+ protected data: T[];
217
215
  constructor(req: DataRequest, dataName: string);
218
216
  findOne<TSelect extends Projection | undefined = undefined>(filter: DataFilter<T>, args?: DataFindOneArgs<T, TSelect>, options?: DataFindOneOptions): Promise<SingleResult<SelectedPublicOutput<T, TSelect>> | ErrorResult>;
219
217
  findById<TSelect extends Projection | undefined = undefined>(id: string, args?: DataFindOneArgs<T, TSelect>, options?: DataFindOneOptions): Promise<SingleResult<SelectedPublicOutput<T, TSelect>> | ErrorResult>;
@@ -886,6 +884,10 @@ type RequestSchemaResult<T = unknown> = RequestSchemaSuccess<T> | RequestSchemaF
886
884
  type RequestSchemaValidator<T = unknown> = (value: unknown) => RequestSchemaResult<T> | Promise<RequestSchemaResult<T>>;
887
885
  type RequestSchemaAdapter<T = unknown> = {
888
886
  validate: RequestSchemaValidator<T>;
887
+ openapi?: Record<string, unknown>;
888
+ };
889
+ type RequestSchemaOptions = {
890
+ openapi?: Record<string, unknown>;
889
891
  };
890
892
  type StandardSchemaPathSegment = {
891
893
  key: PropertyKey;
@@ -1403,7 +1405,7 @@ declare function parseQuery<TSchema extends z.ZodTypeAny>(schema: TSchema, value
1403
1405
  declare function parseBody<TSchema extends z.ZodTypeAny>(schema: TSchema, value: unknown): z.output<TSchema>;
1404
1406
  declare function parseBodyWithSchema<TSchema extends z.ZodTypeAny>(schema: TSchema, value: unknown, userSchema?: RequestSchemaLike): Promise<z.output<TSchema>>;
1405
1407
  declare function parseNestedBodyWithSchema(schema: z.ZodTypeAny, value: unknown, nestedKey: string, userSchema?: RequestSchemaLike): Promise<Record<string, unknown>>;
1406
- declare function defineRequestSchema<T = unknown>(validator: RequestSchemaValidator<T>): RequestSchemaValidator<T>;
1408
+ declare function defineRequestSchema<T = unknown>(validator: RequestSchemaValidator<T>, options?: RequestSchemaOptions): RequestSchemaAdapter<T>;
1407
1409
  declare function fromZod<TSchema extends z.ZodTypeAny>(schema: TSchema): RequestSchemaValidator<z.output<TSchema>>;
1408
1410
  declare function fromStandardSchema<TSchema extends StandardSchemaV1>(schema: TSchema): RequestSchemaValidator<StandardSchemaInferOutput<TSchema>>;
1409
1411
  declare function fromYup<TSchema extends YupSchemaLike>(schema: TSchema): RequestSchemaValidator;
@@ -1415,4 +1417,4 @@ declare function fromIoTs<TValue = unknown>(decoder: IoTsDecoderLike<TValue>): R
1415
1417
  declare function fromSuperstruct<TStruct, TOutput = unknown>(struct: TStruct, validate: SuperstructValidateLike): RequestSchemaValidator<TOutput>;
1416
1418
  declare function fromVine<TValue = unknown>(validator: VineValidatorLike<TValue>): RequestSchemaValidator<TValue>;
1417
1419
 
1418
- export { type FindAccess as $, type AccessRouterBaseRequest as A, type BaseFilterAccess as B, Codes as C, type DataBaseFilterHook as D, type DataHook as E, type DataHookContext as F, type DataIdentifierHook as G, type DataListHook as H, type DataOverrideFilterHook as I, type DataRequest as J, type DataRequestSchemas as K, type DataRouterOptions as L, type DecorateAccess as M, type DecorateAllAccess as N, type DeepFieldPath as O, type DefaultModelRouterOptions as P, type Defaults as Q, type DistinctArgs as R, type DistinctBody as S, type DocPermissionsAccess as T, type ErrorResult as U, type ExistsOptions as V, type ExtendedDataRouterOptions as W, type ExtendedDefaultModelRouterOptions as X, type ExtendedModelRouterOptions as Y, type Filter as Z, FilterOperator as _, type AccessRouterFieldKey as a, type RootDataReadByFilterQueryEntry as a$, type FindArgs as a0, type FindByIdArgs as a1, type FindByIdOptions as a2, type FindOneArgs as a3, type FindOneOptions as a4, type FindOptions as a5, type GlobalOptions as a6, type GlobalPermissionValue as a7, type GuardHook as a8, type IdentifierHook as a9, type Populate as aA, type PopulateAccess as aB, type PrepareAccess as aC, type Projection as aD, type PublicCreateArgs as aE, type PublicCreateOptions as aF, type PublicListArgs as aG, type PublicListOptions as aH, type PublicOutput as aI, type PublicReadArgs as aJ, type PublicReadOptions as aK, type PublicUpdateArgs as aL, type PublicUpdateOptions as aM, type PublicUpsertArgs as aN, type PublicUpsertOptions as aO, type ReadQueryInput as aP, type Request as aQ, type RequestSchemaAdapter as aR, type RequestSchemaFailure as aS, type RequestSchemaIssue as aT, type RequestSchemaLike as aU, type RequestSchemaResult as aV, type RequestSchemaSuccess as aW, type RequestSchemaValidator as aX, type RequestSchemas as aY, type RootDataListQueryEntry as aZ, type RootDataOperation as a_, type Include as aa, type IoTsContextEntryLike as ab, type IoTsDecodeErrorLike as ac, type IoTsDecoderLike as ad, type JoiSchemaLike as ae, type JoiValidationErrorDetailLike as af, type KeyValueProjection as ag, type ListQueryInput as ah, type ListResult as ai, type MaybePromise as aj, type ModelBaseFilterHook as ak, type ModelChangeHook as al, type ModelDeleteHook as am, type ModelDocPermissionsHook as an, type ModelDocument as ao, type ModelDocumentHook as ap, type ModelHook as aq, type ModelHookContext as ar, type ModelIdentifierHook as as, type ModelListHook as at, type ModelOverrideFilterHook as au, type ModelRequest as av, type ModelRouterOptions as aw, type ModelValidateHook as ax, type PathValue as ay, type PermissionSchema as az, type AccessRouterLogger as b, type ValidationError as b$, type RootDataReadByIdQueryEntry as b0, type RootModelCountQueryEntry as b1, type RootModelCreateQueryEntry as b2, type RootModelDeleteQueryEntry as b3, type RootModelDistinctQueryEntry as b4, type RootModelListQueryEntry as b5, type RootModelNewQueryEntry as b6, type RootModelOperation as b7, type RootModelReadByFilterQueryEntry as b8, type RootModelReadByIdQueryEntry as b9, type StandardSchemaSuccess as bA, type StandardSchemaV1 as bB, StatusCodes as bC, type SubListBody as bD, type SubPopulate as bE, type SubQueryEntry as bF, type SubReadBody as bG, type SuperstructFailureLike as bH, type SuperstructValidateLike as bI, type Task as bJ, type TransformAccess as bK, type TypedFilter as bL, type UpdateByIdArgs as bM, type UpdateByIdOptions as bN, type UpdateOneArgs as bO, type UpdateOneOptions as bP, type UpdateQueryInput as bQ, type UpsertArgs as bR, type UpsertOptions as bS, type UpsertQueryInput as bT, type ValibotIssueLike as bU, type ValibotPathItemLike as bV, type ValibotSafeParseLike as bW, type ValibotSafeParseResult as bX, type ValidateAccess as bY, type ValidateRule as bZ, type Validation as b_, type RootModelSubBulkUpdateQueryEntry as ba, type RootModelSubCreateQueryEntry as bb, type RootModelSubDeleteQueryEntry as bc, type RootModelSubListQueryEntry as bd, type RootModelSubReadQueryEntry as be, type RootModelSubUpdateQueryEntry as bf, type RootModelUpdateQueryEntry as bg, type RootModelUpsertQueryEntry as bh, type RootOperationResult as bi, type RootQueryEntry as bj, type RootRouterOptions as bk, type RootSubOperation as bl, type RootTarget as bm, type RouteGuardAccess as bn, type SelectAccess as bo, type SelectedPopulatedPublicOutput as bp, type SelectedPublicOutput as bq, type ServiceResult as br, type SingleResult as bs, type Sort as bt, type SortOrder as bu, type StandardSchemaFailure as bv, type StandardSchemaInferOutput as bw, type StandardSchemaIssue as bx, type StandardSchemaPathSegment as by, type StandardSchemaResult as bz, type AccessRouterRequest as c, type VineValidationErrorLike as c0, type VineValidationMessageLike as c1, type VineValidatorLike as c2, type YupSchemaLike as c3, type YupValidationErrorLike as c4, defineRequestSchema as c5, fromAjv as c6, fromArkType as c7, fromIoTs as c8, fromJoi as c9, fromStandardSchema as ca, fromSuperstruct as cb, fromValibot as cc, fromVine as cd, fromYup as ce, fromZod as cf, parseBody as cg, parseBodyWithSchema as ch, parseNestedBodyWithSchema as ci, parsePathParam as cj, parseQuery as ck, DataService as cl, Model as cm, Service as cn, PublicService as co, type AccessRouterPermissionMap as cp, type AccessRouterPermissions as cq, type Permissions as cr, type AccessRouterRequestExtensions as d, type AdvancedCreateBody as e, type AdvancedListBody as f, type AdvancedReadBody as g, type AdvancedReadFilterBody as h, type AdvancedUpdateBody as i, type AdvancedUpsertBody as j, type AfterPersistAccess as k, type AjvErrorObjectLike as l, type AjvValidatorLike as m, type ArkTypeErrorsLike as n, type ArkTypeLike as o, type ArkTypeProblemLike as p, type CountBody as q, type CreateArgs as r, type CreateOptions as s, type CreateQueryInput as t, CustomHeaders as u, type DataFilter as v, type DataFindArgs as w, type DataFindOneArgs as x, type DataFindOneOptions as y, type DataFindOptions as z };
1420
+ export { type FindAccess as $, type AccessRouterBaseRequest as A, type BaseFilterAccess as B, Codes as C, type DataBaseFilterHook as D, type DataHook as E, type DataHookContext as F, type DataIdentifierHook as G, type DataListHook as H, type DataOverrideFilterHook as I, type DataRequest as J, type DataRequestSchemas as K, type DataRouterOptions as L, type DecorateAccess as M, type DecorateAllAccess as N, type DeepFieldPath as O, type DefaultModelRouterOptions as P, type Defaults as Q, type DistinctArgs as R, type DistinctBody as S, type DocPermissionsAccess as T, type ErrorResult as U, type ExistsOptions as V, type ExtendedDataRouterOptions as W, type ExtendedDefaultModelRouterOptions as X, type ExtendedModelRouterOptions as Y, type Filter as Z, FilterOperator as _, type AccessRouterFieldKey as a, type RootDataOperation as a$, type FindArgs as a0, type FindByIdArgs as a1, type FindByIdOptions as a2, type FindOneArgs as a3, type FindOneOptions as a4, type FindOptions as a5, type GlobalOptions as a6, type GlobalPermissionValue as a7, type GuardHook as a8, type IdentifierHook as a9, type Populate as aA, type PopulateAccess as aB, type PrepareAccess as aC, type Projection as aD, type PublicCreateArgs as aE, type PublicCreateOptions as aF, type PublicListArgs as aG, type PublicListOptions as aH, type PublicOutput as aI, type PublicReadArgs as aJ, type PublicReadOptions as aK, type PublicUpdateArgs as aL, type PublicUpdateOptions as aM, type PublicUpsertArgs as aN, type PublicUpsertOptions as aO, type ReadQueryInput as aP, type Request as aQ, type RequestSchemaAdapter as aR, type RequestSchemaFailure as aS, type RequestSchemaIssue as aT, type RequestSchemaLike as aU, type RequestSchemaOptions as aV, type RequestSchemaResult as aW, type RequestSchemaSuccess as aX, type RequestSchemaValidator as aY, type RequestSchemas as aZ, type RootDataListQueryEntry as a_, type Include as aa, type IoTsContextEntryLike as ab, type IoTsDecodeErrorLike as ac, type IoTsDecoderLike as ad, type JoiSchemaLike as ae, type JoiValidationErrorDetailLike as af, type KeyValueProjection as ag, type ListQueryInput as ah, type ListResult as ai, type MaybePromise as aj, type ModelBaseFilterHook as ak, type ModelChangeHook as al, type ModelDeleteHook as am, type ModelDocPermissionsHook as an, type ModelDocument as ao, type ModelDocumentHook as ap, type ModelHook as aq, type ModelHookContext as ar, type ModelIdentifierHook as as, type ModelListHook as at, type ModelOverrideFilterHook as au, type ModelRequest as av, type ModelRouterOptions as aw, type ModelValidateHook as ax, type PathValue as ay, type PermissionSchema as az, type AccessRouterLogger as b, type Validation as b$, type RootDataReadByFilterQueryEntry as b0, type RootDataReadByIdQueryEntry as b1, type RootModelCountQueryEntry as b2, type RootModelCreateQueryEntry as b3, type RootModelDeleteQueryEntry as b4, type RootModelDistinctQueryEntry as b5, type RootModelListQueryEntry as b6, type RootModelNewQueryEntry as b7, type RootModelOperation as b8, type RootModelReadByFilterQueryEntry as b9, type StandardSchemaResult as bA, type StandardSchemaSuccess as bB, type StandardSchemaV1 as bC, StatusCodes as bD, type SubListBody as bE, type SubPopulate as bF, type SubQueryEntry as bG, type SubReadBody as bH, type SuperstructFailureLike as bI, type SuperstructValidateLike as bJ, type Task as bK, type TransformAccess as bL, type TypedFilter as bM, type UpdateByIdArgs as bN, type UpdateByIdOptions as bO, type UpdateOneArgs as bP, type UpdateOneOptions as bQ, type UpdateQueryInput as bR, type UpsertArgs as bS, type UpsertOptions as bT, type UpsertQueryInput as bU, type ValibotIssueLike as bV, type ValibotPathItemLike as bW, type ValibotSafeParseLike as bX, type ValibotSafeParseResult as bY, type ValidateAccess as bZ, type ValidateRule as b_, type RootModelReadByIdQueryEntry as ba, type RootModelSubBulkUpdateQueryEntry as bb, type RootModelSubCreateQueryEntry as bc, type RootModelSubDeleteQueryEntry as bd, type RootModelSubListQueryEntry as be, type RootModelSubReadQueryEntry as bf, type RootModelSubUpdateQueryEntry as bg, type RootModelUpdateQueryEntry as bh, type RootModelUpsertQueryEntry as bi, type RootOperationResult as bj, type RootQueryEntry as bk, type RootRouterOptions as bl, type RootSubOperation as bm, type RootTarget as bn, type RouteGuardAccess as bo, type SelectAccess as bp, type SelectedPopulatedPublicOutput as bq, type SelectedPublicOutput as br, type ServiceResult as bs, type SingleResult as bt, type Sort as bu, type SortOrder as bv, type StandardSchemaFailure as bw, type StandardSchemaInferOutput as bx, type StandardSchemaIssue as by, type StandardSchemaPathSegment as bz, type AccessRouterRequest as c, type ValidationError as c0, type VineValidationErrorLike as c1, type VineValidationMessageLike as c2, type VineValidatorLike as c3, type YupSchemaLike as c4, type YupValidationErrorLike as c5, defineRequestSchema as c6, fromAjv as c7, fromArkType as c8, fromIoTs as c9, fromJoi as ca, fromStandardSchema as cb, fromSuperstruct as cc, fromValibot as cd, fromVine as ce, fromYup as cf, fromZod as cg, parseBody as ch, parseBodyWithSchema as ci, parseNestedBodyWithSchema as cj, parsePathParam as ck, parseQuery as cl, DataService as cm, Model as cn, Service as co, PublicService as cp, type AccessRouterPermissionMap as cq, type AccessRouterPermissions as cr, type Permissions as cs, type AccessRouterRequestExtensions as d, type AdvancedCreateBody as e, type AdvancedListBody as f, type AdvancedReadBody as g, type AdvancedReadFilterBody as h, type AdvancedUpdateBody as i, type AdvancedUpsertBody as j, type AfterPersistAccess as k, type AjvErrorObjectLike as l, type AjvValidatorLike as m, type ArkTypeErrorsLike as n, type ArkTypeLike as o, type ArkTypeProblemLike as p, type CountBody as q, type CreateArgs as r, type CreateOptions as s, type CreateQueryInput as t, CustomHeaders as u, type DataFilter as v, type DataFindArgs as w, type DataFindOneArgs as x, type DataFindOneOptions as y, type DataFindOptions as z };