express-zod-api 8.3.4 → 8.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,46 @@
2
2
 
3
3
  ## Version 8
4
4
 
5
+ ### v8.4.1
6
+
7
+ - `openapi3-ts` version is 3.1.2.
8
+ - Fixed a bug found and reported by [@leosuncin](https://github.com/leosuncin) in issue #705.
9
+ - CORS didn't work well in case of using `DependsOnMethod`.
10
+ - The list of the allowed methods in the response to `OPTIONS` request did only contain the first method declared
11
+ within `DependsOnMethod` instance.
12
+
13
+ ```typescript
14
+ // reproduction minimal setup
15
+ const routing: Routing = {
16
+ test: new DependsOnMethod({
17
+ get: getEndpoint,
18
+ post: postEndpoint,
19
+ }),
20
+ };
21
+ // when requesting OPTIONS for "/test", the response has the following header:
22
+ // Access-Control-Allow-Methods: GET, OPTIONS
23
+ ```
24
+
25
+ ### v8.4.0
26
+
27
+ - Fixed the flaw found and reported by [@kirdk](https://github.com/kirdk) in issue #662.
28
+ - Now nested top level refinements are available:
29
+
30
+ ```ts
31
+ import { z } from "express-zod-api";
32
+
33
+ const endpoint = endpointsFactory.build({
34
+ input: z
35
+ .object({
36
+ /* ... */
37
+ })
38
+ .refine(() => true)
39
+ .refine(() => true)
40
+ .refine(() => true),
41
+ // ...
42
+ });
43
+ ```
44
+
5
45
  ### v8.3.4
6
46
 
7
47
  - Adjustments to the feature #600: Top level refinements.
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { MimeDefinition } from "./mime";
3
- export declare type ApiResponse<A = z.ZodTypeAny> = {
3
+ export type ApiResponse<A = z.ZodTypeAny> = {
4
4
  schema: A;
5
5
  mimeTypes: string[];
6
6
  };
@@ -3,8 +3,8 @@ import { z } from "zod";
3
3
  import { CommonConfig, InputSources, LoggerConfig } from "./config-type";
4
4
  import { IOSchema } from "./io-schema";
5
5
  import { Method } from "./method";
6
- export declare type FlatObject = Record<string, any>;
7
- export declare type ArrayElement<T extends readonly unknown[]> = T extends readonly (infer K)[] ? K : never;
6
+ export type FlatObject = Record<string, any>;
7
+ export type ArrayElement<T extends readonly unknown[]> = T extends readonly (infer K)[] ? K : never;
8
8
  /** @see https://expressjs.com/en/guide/routing.html */
9
9
  export declare const routePathParamsRegex: RegExp;
10
10
  export declare const defaultInputSources: InputSources;
@@ -16,7 +16,7 @@ export declare function makeErrorFromAnything<T extends Error>(subject: T): T;
16
16
  export declare function makeErrorFromAnything(subject: any): Error;
17
17
  export declare function getMessageFromError(error: Error): string;
18
18
  export declare function getStatusCodeFromError(error: Error): number;
19
- declare type Examples<T extends z.ZodTypeAny> = Readonly<z.input<T>[] | z.output<T>[]>;
19
+ type Examples<T extends z.ZodTypeAny> = Readonly<z.input<T>[] | z.output<T>[]>;
20
20
  export declare const getExamples: <T extends z.ZodTypeAny>(schema: T, parseToOutput: boolean) => Examples<T>;
21
21
  export declare const combinations: <T extends unknown>(a: T[], b: T[]) => {
22
22
  type: "single";
@@ -28,7 +28,7 @@ export declare const combinations: <T extends unknown>(a: T[], b: T[]) => {
28
28
  export declare function getRoutePathParams(path: string): string[];
29
29
  export declare function hasTopLevelTransformingEffect(schema: IOSchema): boolean;
30
30
  export declare function hasUpload(schema: z.ZodTypeAny): boolean;
31
- export declare type ErrMessage = Exclude<Parameters<typeof z.ZodString.prototype.email>[0], undefined>;
31
+ export type ErrMessage = Exclude<Parameters<typeof z.ZodString.prototype.email>[0], undefined>;
32
32
  export declare const errToObj: (message: ErrMessage | undefined) => {
33
33
  message?: string | undefined;
34
34
  };
@@ -17,8 +17,8 @@ export interface LoggerConfig {
17
17
  level: keyof typeof loggerLevels;
18
18
  color: boolean;
19
19
  }
20
- declare type UploadOptions = Pick<fileUpload.Options, "createParentPath" | "uriDecodeFileNames" | "safeFileNames" | "preserveExtension" | "useTempFiles" | "tempFileDir" | "debug" | "uploadTimeout">;
21
- declare type CompressionOptions = Pick<compression.CompressionOptions, "threshold" | "level" | "strategy" | "chunkSize" | "memLevel">;
20
+ type UploadOptions = Pick<fileUpload.Options, "createParentPath" | "uriDecodeFileNames" | "safeFileNames" | "preserveExtension" | "useTempFiles" | "tempFileDir" | "debug" | "uploadTimeout">;
21
+ type CompressionOptions = Pick<compression.CompressionOptions, "threshold" | "level" | "strategy" | "chunkSize" | "memLevel">;
22
22
  export interface ServerConfig {
23
23
  server: {
24
24
  listen: number | string;
@@ -34,16 +34,16 @@ export interface ServerConfig {
34
34
  export interface AppConfig {
35
35
  app: Express;
36
36
  }
37
- declare type InputSource = keyof Pick<Request, "query" | "body" | "files" | "params">;
38
- export declare type InputSources = Record<Method, InputSource[]>;
39
- declare type Headers = Record<string, string>;
40
- declare type HeadersProvider = (params: {
37
+ type InputSource = keyof Pick<Request, "query" | "body" | "files" | "params">;
38
+ export type InputSources = Record<Method, InputSource[]>;
39
+ type Headers = Record<string, string>;
40
+ type HeadersProvider = (params: {
41
41
  defaultHeaders: Headers;
42
42
  request: Request;
43
43
  endpoint: AbstractEndpoint;
44
44
  logger: Logger;
45
45
  }) => Headers | Promise<Headers>;
46
- export declare type TagsConfig<TAG extends string> = Record<TAG, string | {
46
+ export type TagsConfig<TAG extends string> = Record<TAG, string | {
47
47
  description: string;
48
48
  url?: string;
49
49
  }>;
@@ -10,7 +10,7 @@ import { Method, MethodsDefinition } from "./method";
10
10
  import { AnyMiddlewareDef } from "./middleware";
11
11
  import { ResultHandlerDefinition } from "./result-handler";
12
12
  import { Security } from "./security";
13
- export declare type Handler<IN, OUT, OPT> = (params: {
13
+ export type Handler<IN, OUT, OPT> = (params: {
14
14
  input: IN;
15
15
  options: OPT;
16
16
  logger: Logger;
@@ -34,8 +34,9 @@ export declare abstract class AbstractEndpoint {
34
34
  abstract getSecurity(): LogicalContainer<Security>;
35
35
  abstract getScopes(): string[];
36
36
  abstract getTags(): string[];
37
+ abstract _setSiblingMethods(methods: Method[]): void;
37
38
  }
38
- declare type EndpointProps<IN extends IOSchema, OUT extends IOSchema, OPT extends FlatObject, M extends Method, POS extends ApiResponse, NEG extends ApiResponse, SCO extends string, TAG extends string> = {
39
+ type EndpointProps<IN extends IOSchema, OUT extends IOSchema, OPT extends FlatObject, M extends Method, POS extends ApiResponse, NEG extends ApiResponse, SCO extends string, TAG extends string> = {
39
40
  middlewares: AnyMiddlewareDef[];
40
41
  inputSchema: IN;
41
42
  mimeTypes: string[];
@@ -57,6 +58,7 @@ export declare class Endpoint<IN extends IOSchema, OUT extends IOSchema, OPT ext
57
58
  #private;
58
59
  protected readonly descriptions: Record<"short" | "long", string | undefined>;
59
60
  protected readonly methods: M[];
61
+ protected siblingMethods: Method[];
60
62
  protected readonly middlewares: AnyMiddlewareDef[];
61
63
  protected readonly inputSchema: IN;
62
64
  protected readonly mimeTypes: string[];
@@ -66,6 +68,11 @@ export declare class Endpoint<IN extends IOSchema, OUT extends IOSchema, OPT ext
66
68
  protected readonly scopes: SCO[];
67
69
  protected readonly tags: TAG[];
68
70
  constructor({ middlewares, inputSchema, outputSchema, handler, resultHandler, description, shortDescription, mimeTypes, ...rest }: EndpointProps<IN, OUT, OPT, M, POS, NEG, SCO, TAG>);
71
+ /**
72
+ * @desc Sets the other methods supported by the same path. Used by Routing in DependsOnMethod case, for options.
73
+ * @deprecated This method is for internal needs of the library, please avoid using it.
74
+ * */
75
+ _setSiblingMethods(methods: Method[]): void;
69
76
  getDescription(variant: "short" | "long"): string | undefined;
70
77
  getMethods(): M[];
71
78
  getInputSchema(): IN;
package/dist/endpoint.js CHANGED
@@ -20,6 +20,7 @@ class Endpoint extends AbstractEndpoint {
20
20
  super();
21
21
  _Endpoint_instances.add(this);
22
22
  this.methods = [];
23
+ this.siblingMethods = [];
23
24
  this.middlewares = [];
24
25
  [
25
26
  { name: "input schema", schema: inputSchema },
@@ -57,6 +58,13 @@ class Endpoint extends AbstractEndpoint {
57
58
  this.methods = [rest.method];
58
59
  }
59
60
  }
61
+ /**
62
+ * @desc Sets the other methods supported by the same path. Used by Routing in DependsOnMethod case, for options.
63
+ * @deprecated This method is for internal needs of the library, please avoid using it.
64
+ * */
65
+ _setSiblingMethods(methods) {
66
+ this.siblingMethods = methods;
67
+ }
60
68
  getDescription(variant) {
61
69
  return this.descriptions[variant];
62
70
  }
@@ -145,6 +153,7 @@ class Endpoint extends AbstractEndpoint {
145
153
  exports.Endpoint = Endpoint;
146
154
  _Endpoint_instances = new WeakSet(), _Endpoint_getDefaultCorsHeaders = function _Endpoint_getDefaultCorsHeaders() {
147
155
  const accessMethods = this.methods
156
+ .concat(this.siblingMethods)
148
157
  .concat("options")
149
158
  .join(", ")
150
159
  .toUpperCase();
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import { IOSchema, ProbableIntersection } from "./io-schema";
9
9
  import { Method, MethodsDefinition } from "./method";
10
10
  import { AnyMiddlewareDef, ExpressMiddleware, ExpressMiddlewareFeatures, MiddlewareDefinition } from "./middleware";
11
11
  import { ResultHandlerDefinition } from "./result-handler";
12
- declare type BuildProps<IN extends IOSchema, OUT extends IOSchema, MIN extends IOSchema<"strip"> | null, OPT extends FlatObject, M extends Method, SCO extends string, TAG extends string> = {
12
+ type BuildProps<IN extends IOSchema, OUT extends IOSchema, MIN extends IOSchema<"strip"> | null, OPT extends FlatObject, M extends Method, SCO extends string, TAG extends string> = {
13
13
  input: IN;
14
14
  output: OUT;
15
15
  handler: Handler<z.output<ProbableIntersection<MIN, IN>>, z.input<OUT>, OPT>;
@@ -1,13 +1,13 @@
1
1
  import { z } from "zod";
2
2
  import { AnyMiddlewareDef } from "./middleware";
3
- declare type UnknownKeysParam = "passthrough" | "strict" | "strip";
4
- declare type Refined<T extends z.ZodType> = T extends z.ZodType<infer O> ? z.ZodEffects<T, O, O> : never;
3
+ type UnknownKeysParam = "passthrough" | "strict" | "strip";
4
+ type Refined<T extends z.ZodType> = T extends z.ZodType<infer O> ? z.ZodEffects<T | Refined<T>, O, O> : never;
5
5
  /**
6
6
  * @desc The type allowed on the top level of Middlewares and Endpoints
7
7
  * @param U — only "strip" is allowed for Middlewares due to intersection issue (Zod) #600
8
8
  * */
9
- export declare type IOSchema<U extends UnknownKeysParam = any> = z.ZodObject<any, U> | z.ZodUnion<[IOSchema<U>, ...IOSchema<U>[]]> | z.ZodIntersection<IOSchema<U>, IOSchema<U>> | z.ZodDiscriminatedUnion<string, z.Primitive, z.ZodObject<any, U>> | Refined<z.ZodObject<any, U>>;
10
- export declare type ProbableIntersection<A extends IOSchema<"strip"> | null, B extends IOSchema> = A extends null ? B : A extends IOSchema<"strip"> ? z.ZodIntersection<A, B> : never;
9
+ export type IOSchema<U extends UnknownKeysParam = any> = z.ZodObject<any, U> | z.ZodUnion<[IOSchema<U>, ...IOSchema<U>[]]> | z.ZodIntersection<IOSchema<U>, IOSchema<U>> | z.ZodDiscriminatedUnion<string, z.Primitive, z.ZodObject<any, U>> | Refined<z.ZodObject<any, U>>;
10
+ export type ProbableIntersection<A extends IOSchema<"strip"> | null, B extends IOSchema> = A extends null ? B : A extends IOSchema<"strip"> ? z.ZodIntersection<A, B> : never;
11
11
  /**
12
12
  * @description intersects input schemas of middlewares and the endpoint
13
13
  * @since 07.03.2022 former combineEndpointAndMiddlewareInputSchemas()
@@ -1,10 +1,10 @@
1
- declare type LogicalOr<T> = {
1
+ type LogicalOr<T> = {
2
2
  or: T[];
3
3
  };
4
- declare type LogicalAnd<T> = {
4
+ type LogicalAnd<T> = {
5
5
  and: T[];
6
6
  };
7
- export declare type LogicalContainer<T> = LogicalOr<T | LogicalAnd<T>> | LogicalAnd<T | LogicalOr<T>> | T;
7
+ export type LogicalContainer<T> = LogicalOr<T | LogicalAnd<T>> | LogicalAnd<T | LogicalOr<T>> | T;
8
8
  /** @desc combines several LogicalAnds into a one */
9
9
  export declare const flattenAnds: <T>(subject: (T | LogicalAnd<T>)[]) => LogicalAnd<T>;
10
10
  /** @desc creates a LogicalContainer out of another one */
@@ -1,22 +1,22 @@
1
1
  import { z } from "./index";
2
2
  export declare const metaProp = "expressZodApiMeta";
3
- declare type MetaProp = typeof metaProp;
4
- export declare type MetaDef<T extends z.ZodTypeAny> = {
3
+ type MetaProp = typeof metaProp;
4
+ export type MetaDef<T extends z.ZodTypeAny> = {
5
5
  [K in MetaProp]: {
6
6
  examples: z.input<T>[];
7
7
  };
8
8
  };
9
- declare type MetaKey = keyof MetaDef<any>[MetaProp];
10
- declare type MetaValue<T extends z.ZodTypeAny, K extends MetaKey> = Readonly<MetaDef<T>[MetaProp][K]>;
11
- declare type ExampleSetter<T extends z.ZodTypeAny> = (example: z.input<T>) => WithMeta<T>;
9
+ type MetaKey = keyof MetaDef<any>[MetaProp];
10
+ type MetaValue<T extends z.ZodTypeAny, K extends MetaKey> = Readonly<MetaDef<T>[MetaProp][K]>;
11
+ type ExampleSetter<T extends z.ZodTypeAny> = (example: z.input<T>) => WithMeta<T>;
12
12
  /**
13
13
  * @desc fixes the incompatibility of the ZodObject.keyof() method introduced in v3.17.9
14
14
  * @todo remove it if/when it will be compatible
15
15
  */
16
- declare type MetaFixForStrippedObject<T> = T extends z.ZodObject<any> ? T & {
16
+ type MetaFixForStrippedObject<T> = T extends z.ZodObject<any> ? T & {
17
17
  keyof: z.ZodObject<any>["keyof"];
18
18
  } : T;
19
- declare type WithMeta<T extends z.ZodTypeAny> = MetaFixForStrippedObject<T> & {
19
+ type WithMeta<T extends z.ZodTypeAny> = MetaFixForStrippedObject<T> & {
20
20
  _def: T["_def"] & MetaDef<T>;
21
21
  example: ExampleSetter<T>;
22
22
  };
package/dist/method.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- export declare type Method = "get" | "post" | "put" | "delete" | "patch";
1
+ export type Method = "get" | "post" | "put" | "delete" | "patch";
2
2
  export declare const methods: Method[];
3
- export declare type AuxMethod = "options";
4
- export declare type MethodsDefinition<M extends Method> = {
3
+ export type AuxMethod = "options";
4
+ export type MethodsDefinition<M extends Method> = {
5
5
  methods: M[];
6
6
  } | {
7
7
  method: M;
@@ -13,7 +13,7 @@ interface MiddlewareParams<IN, OPT> {
13
13
  response: Response;
14
14
  logger: Logger;
15
15
  }
16
- declare type Middleware<IN, OPT, OUT> = (params: MiddlewareParams<IN, OPT>) => Promise<OUT>;
16
+ type Middleware<IN, OPT, OUT> = (params: MiddlewareParams<IN, OPT>) => Promise<OUT>;
17
17
  interface MiddlewareCreationProps<IN extends IOSchema<"strip">, OPT, OUT extends FlatObject, SCO extends string> {
18
18
  input: IN;
19
19
  security?: LogicalContainer<Security<keyof z.input<IN> & string, SCO>>;
@@ -22,9 +22,9 @@ interface MiddlewareCreationProps<IN extends IOSchema<"strip">, OPT, OUT extends
22
22
  export interface MiddlewareDefinition<IN extends IOSchema<"strip">, OPT, OUT extends FlatObject, SCO extends string> extends MiddlewareCreationProps<IN, OPT, OUT, SCO> {
23
23
  type: "proprietary" | "express";
24
24
  }
25
- export declare type AnyMiddlewareDef = MiddlewareDefinition<any, any, any, any>;
25
+ export type AnyMiddlewareDef = MiddlewareDefinition<any, any, any, any>;
26
26
  export declare const createMiddleware: <IN extends IOSchema<"strip">, OPT, OUT extends FlatObject, SCO extends string>(props: MiddlewareCreationProps<IN, OPT, OUT, SCO>) => MiddlewareDefinition<IN, OPT, OUT, SCO>;
27
- export declare type ExpressMiddleware<R extends Request, S extends Response> = (request: R, response: S, next: (error?: any) => void) => void | Promise<void>;
27
+ export type ExpressMiddleware<R extends Request, S extends Response> = (request: R, response: S, next: (error?: any) => void) => void | Promise<void>;
28
28
  export interface ExpressMiddlewareFeatures<R extends Request, S extends Response, OUT extends FlatObject> {
29
29
  provider?: (request: R, response: S) => OUT | Promise<OUT>;
30
30
  transformer?: (err: Error) => HttpError | Error;
package/dist/mime.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export declare const mimeJson: string;
2
2
  export declare const mimeMultipart = "multipart/form-data";
3
- export declare type MimeDefinition = string | string[];
3
+ export type MimeDefinition = string | string[];
package/dist/mock.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- /// <reference types="qs" />
2
1
  /// <reference types="jest" />
2
+ /// <reference types="qs" />
3
3
  import { Request, Response } from "express";
4
4
  import { Logger } from "winston";
5
5
  import { CommonConfig } from "./config-type";
@@ -13,6 +13,14 @@ interface TestEndpointProps<REQ, RES, LOG> {
13
13
  /** @deprecated for testing purposes only */
14
14
  __noJest?: boolean;
15
15
  }
16
+ export declare const makeRequestMock: <REQ>(requestProps?: REQ | undefined) => {
17
+ method: string;
18
+ } & Record<"header", jest.Mock<any, any>> & (REQ extends undefined ? {} : REQ);
19
+ export declare const makeResponseMock: <RES>(responseProps?: RES | undefined) => {
20
+ writableEnded: boolean;
21
+ statusCode: number;
22
+ statusMessage: string;
23
+ } & Record<"json" | "status" | "set" | "end", jest.Mock<any, any>> & (RES extends undefined ? {} : RES);
16
24
  /**
17
25
  * @description You need to install Jest and probably @types/jest to use this method
18
26
  */
package/dist/mock.js CHANGED
@@ -3,21 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.testEndpoint = void 0;
6
+ exports.testEndpoint = exports.makeResponseMock = exports.makeRequestMock = void 0;
7
7
  const http_1 = __importDefault(require("http"));
8
8
  const mime_1 = require("./mime");
9
- /**
10
- * @description You need to install Jest and probably @types/jest to use this method
11
- */
12
- const testEndpoint = async ({ endpoint, requestProps, responseProps, configProps, loggerProps, __noJest, }) => {
13
- if (!jest || __noJest) {
14
- throw new Error("You need to install Jest in order to use testEndpoint().");
15
- }
16
- const requestMock = {
17
- method: "GET",
18
- header: jest.fn(() => mime_1.mimeJson),
19
- ...requestProps,
20
- };
9
+ const makeRequestMock = (requestProps) => ({
10
+ method: "GET",
11
+ header: jest.fn(() => mime_1.mimeJson),
12
+ ...requestProps,
13
+ });
14
+ exports.makeRequestMock = makeRequestMock;
15
+ const makeResponseMock = (responseProps) => {
21
16
  const responseMock = {
22
17
  writableEnded: false,
23
18
  statusCode: 200,
@@ -35,6 +30,18 @@ const testEndpoint = async ({ endpoint, requestProps, responseProps, configProps
35
30
  }),
36
31
  ...responseProps,
37
32
  };
33
+ return responseMock;
34
+ };
35
+ exports.makeResponseMock = makeResponseMock;
36
+ /**
37
+ * @description You need to install Jest and probably @types/jest to use this method
38
+ */
39
+ const testEndpoint = async ({ endpoint, requestProps, responseProps, configProps, loggerProps, __noJest, }) => {
40
+ if (!jest || __noJest) {
41
+ throw new Error("You need to install Jest in order to use testEndpoint().");
42
+ }
43
+ const requestMock = (0, exports.makeRequestMock)(requestProps);
44
+ const responseMock = (0, exports.makeResponseMock)(responseProps);
38
45
  const loggerMock = {
39
46
  info: jest.fn(),
40
47
  warn: jest.fn(),
package/dist/mock.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mock.js","sourceRoot":"","sources":["../src/mock.ts"],"names":[],"mappings":";;;;;;AACA,gDAAwB;AAIxB,iCAAkC;AAYlC;;GAEG;AACI,MAAM,YAAY,GAAG,KAAK,EAI/B,EACA,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,GACyB,EAAE,EAAE;IACrC,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;KAC7E;IACD,MAAM,WAAW,GAGhB;QACC,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,eAAQ,CAAC;QAC/B,GAAG,YAAY;KAChB,CAAC;IACF,MAAM,YAAY,GAOjB;QACC,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,GAAG;QACf,aAAa,EAAE,cAAI,CAAC,YAAY,CAAC,GAAG,CAAC;QACrC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;QAChC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAY,EAAE,EAAE;YAC/B,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;YAC/B,YAAY,CAAC,aAAa,GAAG,cAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACrD,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;QACF,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;QACjC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;YAChB,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC;YAClC,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;QACF,GAAG,aAAa;KACjB,CAAC;IACF,MAAM,UAAU,GAGf;QACC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,GAAG,WAAW;KACf,CAAC;IACF,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,UAAU;QAClB,GAAG,WAAW;KACf,CAAC;IACF,MAAM,QAAQ,CAAC,OAAO,CAAC;QACrB,OAAO,EAAE,WAAiC;QAC1C,QAAQ,EAAE,YAAmC;QAC7C,MAAM,EAAE,UAA0B;QAClC,MAAM,EAAE,UAA+B;KACxC,CAAC,CAAC;IACH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACnD,CAAC,CAAC;AArEW,QAAA,YAAY,gBAqEvB"}
1
+ {"version":3,"file":"mock.js","sourceRoot":"","sources":["../src/mock.ts"],"names":[],"mappings":";;;;;;AACA,gDAAwB;AAIxB,iCAAkC;AAY3B,MAAM,eAAe,GAAG,CAAM,YAAkB,EAAE,EAAE,CACzD,CAGC;IACC,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,eAAQ,CAAC;IAC/B,GAAG,YAAY;CAChB,CAAA,CAAC;AARS,QAAA,eAAe,mBAQxB;AAEG,MAAM,gBAAgB,GAAG,CAAM,aAAmB,EAAE,EAAE;IAC3D,MAAM,YAAY,GAOjB;QACC,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,GAAG;QACf,aAAa,EAAE,cAAI,CAAC,YAAY,CAAC,GAAG,CAAC;QACrC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;QAChC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAY,EAAE,EAAE;YAC/B,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;YAC/B,YAAY,CAAC,aAAa,GAAG,cAAI,CAAC,YAAY,CAAC,IAAI,CAAE,CAAC;YACtD,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;QACF,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;QACjC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;YAChB,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC;YAClC,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;QACF,GAAG,aAAa;KACjB,CAAC;IACF,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AA1BW,QAAA,gBAAgB,oBA0B3B;AAEF;;GAEG;AACI,MAAM,YAAY,GAAG,KAAK,EAI/B,EACA,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,GACyB,EAAE,EAAE;IACrC,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;KAC7E;IACD,MAAM,WAAW,GAAG,IAAA,uBAAe,EAAC,YAAY,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,IAAA,wBAAgB,EAAC,aAAa,CAAC,CAAC;IACrD,MAAM,UAAU,GAGf;QACC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,GAAG,WAAW;KACf,CAAC;IACF,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,UAAU;QAClB,GAAG,WAAW;KACf,CAAC;IACF,MAAM,QAAQ,CAAC,OAAO,CAAC;QACrB,OAAO,EAAE,WAAiC;QAC1C,QAAQ,EAAE,YAAmC;QAC7C,MAAM,EAAE,UAA0B;QAClC,MAAM,EAAE,UAA+B;KACxC,CAAC,CAAC;IACH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACnD,CAAC,CAAC;AAvCW,QAAA,YAAY,gBAuCvB"}
@@ -10,8 +10,8 @@ import { LogicalContainer } from "./logical-container";
10
10
  import { Method } from "./method";
11
11
  import { Security } from "./security";
12
12
  import { ZodUpload } from "./upload-schema";
13
- declare type MediaExamples = Pick<MediaTypeObject, "examples">;
14
- declare type DepictHelper<T extends z.ZodType<any>> = (params: {
13
+ type MediaExamples = Pick<MediaTypeObject, "examples">;
14
+ type DepictHelper<T extends z.ZodType<any>> = (params: {
15
15
  schema: T;
16
16
  initial?: SchemaObject;
17
17
  isResponse: boolean;
package/dist/open-api.js CHANGED
@@ -7,6 +7,17 @@ const logical_container_1 = require("./logical-container");
7
7
  const open_api_helpers_1 = require("./open-api-helpers");
8
8
  const routing_1 = require("./routing");
9
9
  class OpenAPI extends openapi3_ts_1.OpenApiBuilder {
10
+ ensureUniqSecuritySchemaName(subject) {
11
+ for (const name in this.rootDoc.components?.securitySchemes || {}) {
12
+ if (JSON.stringify(subject) ===
13
+ JSON.stringify(this.rootDoc.components?.securitySchemes?.[name])) {
14
+ return name;
15
+ }
16
+ }
17
+ this.lastSecuritySchemaIds[subject.type] =
18
+ (this.lastSecuritySchemaIds?.[subject.type] || 0) + 1;
19
+ return `${subject.type.toUpperCase()}_${this.lastSecuritySchemaIds[subject.type]}`;
20
+ }
10
21
  constructor({ routing, config, title, version, serverUrl, successfulResponseDescription = "Successful response", errorResponseDescription = "Error response", hasSummaryFromDescription = true, }) {
11
22
  super();
12
23
  this.lastSecuritySchemaIds = {};
@@ -65,24 +76,12 @@ class OpenAPI extends openapi3_ts_1.OpenApiBuilder {
65
76
  }
66
77
  const swaggerCompatiblePath = (0, open_api_helpers_1.reformatParamsInPath)(path);
67
78
  this.addPath(swaggerCompatiblePath, {
68
- ...(this.rootDoc.paths?.[swaggerCompatiblePath] || {}),
69
79
  [method]: operation,
70
80
  });
71
81
  };
72
82
  (0, routing_1.routingCycle)({ routing, endpointCb });
73
83
  this.rootDoc.tags = config.tags ? (0, open_api_helpers_1.depictTags)(config.tags) : [];
74
84
  }
75
- ensureUniqSecuritySchemaName(subject) {
76
- for (const name in this.rootDoc.components?.securitySchemes || {}) {
77
- if (JSON.stringify(subject) ===
78
- JSON.stringify(this.rootDoc.components?.securitySchemes?.[name])) {
79
- return name;
80
- }
81
- }
82
- this.lastSecuritySchemaIds[subject.type] =
83
- (this.lastSecuritySchemaIds?.[subject.type] || 0) + 1;
84
- return `${subject.type.toUpperCase()}_${this.lastSecuritySchemaIds[subject.type]}`;
85
- }
86
85
  }
87
86
  exports.OpenAPI = OpenAPI;
88
87
  //# sourceMappingURL=open-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"open-api.js","sourceRoot":"","sources":["../src/open-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open-api.js","sourceRoot":"","sources":["../src/open-api.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ interface ResultHandlerParams<RES> {
17
17
  response: Response<RES>;
18
18
  logger: Logger;
19
19
  }
20
- declare type ResultHandler<RES> = (params: ResultHandlerParams<RES>) => void | Promise<void>;
20
+ type ResultHandler<RES> = (params: ResultHandlerParams<RES>) => void | Promise<void>;
21
21
  export interface ResultHandlerDefinition<POS extends ApiResponse, NEG extends ApiResponse> {
22
22
  getPositiveResponse: (output: IOSchema) => POS;
23
23
  getNegativeResponse: () => NEG;
package/dist/routing.js CHANGED
@@ -35,7 +35,9 @@ const routingCycle = ({ routing, endpointCb, staticCb, parentPath, hasCors, }) =
35
35
  endpointCb(endpoint, path, method);
36
36
  });
37
37
  if (hasCors && Object.keys(element.methods).length > 0) {
38
- const firstEndpoint = Object.values(element.methods)[0];
38
+ const [firstMethod, ...siblingMethods] = Object.keys(element.methods);
39
+ const firstEndpoint = element.methods[firstMethod];
40
+ firstEndpoint._setSiblingMethods(siblingMethods);
39
41
  endpointCb(firstEndpoint, path, "options");
40
42
  }
41
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"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"}
@@ -44,10 +44,10 @@ interface Scopes<K extends string> {
44
44
  /** @desc The available scopes for the OAuth2 security and their short descriptions. Optional. */
45
45
  scopes?: Record<K, string>;
46
46
  }
47
- declare type AuthCodeFlow<S extends string> = AuthUrl & TokenUrl & RefreshUrl & Scopes<S>;
48
- declare type ImplicitFlow<S extends string> = AuthUrl & RefreshUrl & Scopes<S>;
49
- declare type PasswordFlow<S extends string> = TokenUrl & RefreshUrl & Scopes<S>;
50
- declare type ClientCredFlow<S extends string> = TokenUrl & RefreshUrl & Scopes<S>;
47
+ type AuthCodeFlow<S extends string> = AuthUrl & TokenUrl & RefreshUrl & Scopes<S>;
48
+ type ImplicitFlow<S extends string> = AuthUrl & RefreshUrl & Scopes<S>;
49
+ type PasswordFlow<S extends string> = TokenUrl & RefreshUrl & Scopes<S>;
50
+ type ClientCredFlow<S extends string> = TokenUrl & RefreshUrl & Scopes<S>;
51
51
  /**
52
52
  * @see https://swagger.io/docs/specification/authentication/oauth2/
53
53
  */
@@ -68,5 +68,5 @@ interface OAuth2Security<S extends string> {
68
68
  * @desc K is an optional input field used by InputSecurity
69
69
  * @desc S is an optional union of scopes used by OAuth2Security
70
70
  * */
71
- export declare type Security<K extends string = string, S extends string = string> = BasicSecurity | BearerSecurity | InputSecurity<K> | CustomHeaderSecurity | CookieSecurity | OpenIdSecurity | OAuth2Security<S>;
71
+ export type Security<K extends string = string, S extends string = string> = BasicSecurity | BearerSecurity | InputSecurity<K> | CustomHeaderSecurity | CookieSecurity | OpenIdSecurity | OAuth2Security<S>;
72
72
  export {};
@@ -1,6 +1,6 @@
1
1
  import express from "express";
2
- declare type OriginalStatic = typeof express.static;
3
- export declare type StaticHandler = ReturnType<OriginalStatic>;
2
+ type OriginalStatic = typeof express.static;
3
+ export type StaticHandler = ReturnType<OriginalStatic>;
4
4
  export declare class ServeStatic {
5
5
  params: Parameters<OriginalStatic>;
6
6
  constructor(...params: Parameters<OriginalStatic>);
@@ -16,6 +16,7 @@ export class Endpoint extends AbstractEndpoint {
16
16
  super();
17
17
  _Endpoint_instances.add(this);
18
18
  this.methods = [];
19
+ this.siblingMethods = [];
19
20
  this.middlewares = [];
20
21
  [
21
22
  { name: "input schema", schema: inputSchema },
@@ -53,6 +54,13 @@ export class Endpoint extends AbstractEndpoint {
53
54
  this.methods = [rest.method];
54
55
  }
55
56
  }
57
+ /**
58
+ * @desc Sets the other methods supported by the same path. Used by Routing in DependsOnMethod case, for options.
59
+ * @deprecated This method is for internal needs of the library, please avoid using it.
60
+ * */
61
+ _setSiblingMethods(methods) {
62
+ this.siblingMethods = methods;
63
+ }
56
64
  getDescription(variant) {
57
65
  return this.descriptions[variant];
58
66
  }
@@ -140,6 +148,7 @@ export class Endpoint extends AbstractEndpoint {
140
148
  }
141
149
  _Endpoint_instances = new WeakSet(), _Endpoint_getDefaultCorsHeaders = function _Endpoint_getDefaultCorsHeaders() {
142
150
  const accessMethods = this.methods
151
+ .concat(this.siblingMethods)
143
152
  .concat("options")
144
153
  .join(", ")
145
154
  .toUpperCase();
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
package/dist-esm/mock.js CHANGED
@@ -1,17 +1,11 @@
1
1
  import http from "http";
2
2
  import { mimeJson } from "./mime.js";
3
- /**
4
- * @description You need to install Jest and probably @types/jest to use this method
5
- */
6
- export const testEndpoint = async ({ endpoint, requestProps, responseProps, configProps, loggerProps, __noJest, }) => {
7
- if (!jest || __noJest) {
8
- throw new Error("You need to install Jest in order to use testEndpoint().");
9
- }
10
- const requestMock = {
11
- method: "GET",
12
- header: jest.fn(() => mimeJson),
13
- ...requestProps,
14
- };
3
+ export const makeRequestMock = (requestProps) => ({
4
+ method: "GET",
5
+ header: jest.fn(() => mimeJson),
6
+ ...requestProps,
7
+ });
8
+ export const makeResponseMock = (responseProps) => {
15
9
  const responseMock = {
16
10
  writableEnded: false,
17
11
  statusCode: 200,
@@ -29,6 +23,17 @@ export const testEndpoint = async ({ endpoint, requestProps, responseProps, conf
29
23
  }),
30
24
  ...responseProps,
31
25
  };
26
+ return responseMock;
27
+ };
28
+ /**
29
+ * @description You need to install Jest and probably @types/jest to use this method
30
+ */
31
+ export const testEndpoint = async ({ endpoint, requestProps, responseProps, configProps, loggerProps, __noJest, }) => {
32
+ if (!jest || __noJest) {
33
+ throw new Error("You need to install Jest in order to use testEndpoint().");
34
+ }
35
+ const requestMock = makeRequestMock(requestProps);
36
+ const responseMock = makeResponseMock(responseProps);
32
37
  const loggerMock = {
33
38
  info: jest.fn(),
34
39
  warn: jest.fn(),
@@ -1 +1 @@
1
- {"version":3,"file":"mock.js","sourceRoot":"","sources":["../src/mock.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAYlC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAI/B,EACA,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,GACyB,EAAE,EAAE;IACrC,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;KAC7E;IACD,MAAM,WAAW,GAGhB;QACC,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;QAC/B,GAAG,YAAY;KAChB,CAAC;IACF,MAAM,YAAY,GAOjB;QACC,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,GAAG;QACf,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;QACrC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;QAChC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAY,EAAE,EAAE;YAC/B,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;YAC/B,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACrD,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;QACF,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;QACjC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;YAChB,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC;YAClC,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;QACF,GAAG,aAAa;KACjB,CAAC;IACF,MAAM,UAAU,GAGf;QACC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,GAAG,WAAW;KACf,CAAC;IACF,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,UAAU;QAClB,GAAG,WAAW;KACf,CAAC;IACF,MAAM,QAAQ,CAAC,OAAO,CAAC;QACrB,OAAO,EAAE,WAAiC;QAC1C,QAAQ,EAAE,YAAmC;QAC7C,MAAM,EAAE,UAA0B;QAClC,MAAM,EAAE,UAA+B;KACxC,CAAC,CAAC;IACH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACnD,CAAC,CAAC"}
1
+ {"version":3,"file":"mock.js","sourceRoot":"","sources":["../src/mock.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAYlC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAM,YAAkB,EAAE,EAAE,CACzD,CAGC;IACC,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;IAC/B,GAAG,YAAY;CAChB,CAAA,CAAC;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAM,aAAmB,EAAE,EAAE;IAC3D,MAAM,YAAY,GAOjB;QACC,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,GAAG;QACf,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;QACrC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;QAChC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAY,EAAE,EAAE;YAC/B,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;YAC/B,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAE,CAAC;YACtD,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;QACF,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;QACjC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;YAChB,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC;YAClC,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;QACF,GAAG,aAAa;KACjB,CAAC;IACF,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAI/B,EACA,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,GACyB,EAAE,EAAE;IACrC,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;KAC7E;IACD,MAAM,WAAW,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACrD,MAAM,UAAU,GAGf;QACC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,GAAG,WAAW;KACf,CAAC;IACF,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,UAAU;QAClB,GAAG,WAAW;KACf,CAAC;IACF,MAAM,QAAQ,CAAC,OAAO,CAAC;QACrB,OAAO,EAAE,WAAiC;QAC1C,QAAQ,EAAE,YAAmC;QAC7C,MAAM,EAAE,UAA0B;QAClC,MAAM,EAAE,UAA+B;KACxC,CAAC,CAAC;IACH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACnD,CAAC,CAAC"}
@@ -4,6 +4,17 @@ import { mapLogicalContainer } from "./logical-container.js";
4
4
  import { depictRequest, depictRequestParams, depictResponse, depictSecurity, depictSecurityRefs, depictTags, ensureShortDescription, reformatParamsInPath, } from "./open-api-helpers.js";
5
5
  import { routingCycle } from "./routing.js";
6
6
  export class OpenAPI extends OpenApiBuilder {
7
+ ensureUniqSecuritySchemaName(subject) {
8
+ for (const name in this.rootDoc.components?.securitySchemes || {}) {
9
+ if (JSON.stringify(subject) ===
10
+ JSON.stringify(this.rootDoc.components?.securitySchemes?.[name])) {
11
+ return name;
12
+ }
13
+ }
14
+ this.lastSecuritySchemaIds[subject.type] =
15
+ (this.lastSecuritySchemaIds?.[subject.type] || 0) + 1;
16
+ return `${subject.type.toUpperCase()}_${this.lastSecuritySchemaIds[subject.type]}`;
17
+ }
7
18
  constructor({ routing, config, title, version, serverUrl, successfulResponseDescription = "Successful response", errorResponseDescription = "Error response", hasSummaryFromDescription = true, }) {
8
19
  super();
9
20
  this.lastSecuritySchemaIds = {};
@@ -62,23 +73,11 @@ export class OpenAPI extends OpenApiBuilder {
62
73
  }
63
74
  const swaggerCompatiblePath = reformatParamsInPath(path);
64
75
  this.addPath(swaggerCompatiblePath, {
65
- ...(this.rootDoc.paths?.[swaggerCompatiblePath] || {}),
66
76
  [method]: operation,
67
77
  });
68
78
  };
69
79
  routingCycle({ routing, endpointCb });
70
80
  this.rootDoc.tags = config.tags ? depictTags(config.tags) : [];
71
81
  }
72
- ensureUniqSecuritySchemaName(subject) {
73
- for (const name in this.rootDoc.components?.securitySchemes || {}) {
74
- if (JSON.stringify(subject) ===
75
- JSON.stringify(this.rootDoc.components?.securitySchemes?.[name])) {
76
- return name;
77
- }
78
- }
79
- this.lastSecuritySchemaIds[subject.type] =
80
- (this.lastSecuritySchemaIds?.[subject.type] || 0) + 1;
81
- return `${subject.type.toUpperCase()}_${this.lastSecuritySchemaIds[subject.type]}`;
82
- }
83
82
  }
84
83
  //# sourceMappingURL=open-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"open-api.js","sourceRoot":"","sources":["../src/open-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open-api.js","sourceRoot":"","sources":["../src/open-api.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"type":"module","version":"8.3.4"}
1
+ {"type":"module","version":"8.4.1"}
@@ -32,7 +32,9 @@ export const routingCycle = ({ routing, endpointCb, staticCb, parentPath, hasCor
32
32
  endpointCb(endpoint, path, method);
33
33
  });
34
34
  if (hasCors && Object.keys(element.methods).length > 0) {
35
- const firstEndpoint = Object.values(element.methods)[0];
35
+ const [firstMethod, ...siblingMethods] = Object.keys(element.methods);
36
+ const firstEndpoint = element.methods[firstMethod];
37
+ firstEndpoint._setSiblingMethods(siblingMethods);
36
38
  endpointCb(firstEndpoint, path, "options");
37
39
  }
38
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "express-zod-api",
3
- "version": "8.3.4",
3
+ "version": "8.4.1",
4
4
  "description": "A Typescript library to help you get an API server up and running with I/O schema validation and custom middlewares in minutes.",
5
5
  "license": "MIT",
6
6
  "scripts": {
@@ -46,7 +46,7 @@
46
46
  "express-fileupload": "1.4.0",
47
47
  "http-errors": "2.0.0",
48
48
  "mime": "3.0.0",
49
- "openapi3-ts": "3.1.1",
49
+ "openapi3-ts": "3.1.2",
50
50
  "ramda": "0.28.0",
51
51
  "triple-beam": "1.3.0",
52
52
  "winston": "3.8.2",
@@ -95,7 +95,7 @@
95
95
  "make-coverage-badge": "^1.2.0",
96
96
  "mockdate": "^3.0.5",
97
97
  "node-fetch": "^2.6.7",
98
- "prettier": "2.7.1",
98
+ "prettier": "2.8.0",
99
99
  "strip-ansi": "^6.0.1",
100
100
  "ts-jest": "^29.0.0",
101
101
  "ts-node": "^10.9.1",