express-zod-api 7.8.1 → 8.0.0-beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/SECURITY.md +2 -1
  3. package/dist/client-helpers.js +1 -1
  4. package/dist/client-helpers.js.map +1 -1
  5. package/dist/depends-on-method.d.ts +2 -2
  6. package/dist/depends-on-method.js +2 -3
  7. package/dist/depends-on-method.js.map +1 -1
  8. package/dist/endpoint.d.ts +8 -4
  9. package/dist/endpoint.js +5 -1
  10. package/dist/endpoint.js.map +1 -1
  11. package/dist/endpoints-factory.d.ts +10 -9
  12. package/dist/endpoints-factory.js +2 -2
  13. package/dist/endpoints-factory.js.map +1 -1
  14. package/dist/logical-container.js +7 -6
  15. package/dist/logical-container.js.map +1 -1
  16. package/dist/middleware.d.ts +5 -5
  17. package/dist/middleware.js.map +1 -1
  18. package/dist/open-api-helpers.d.ts +6 -3
  19. package/dist/open-api-helpers.js +19 -12
  20. package/dist/open-api-helpers.js.map +1 -1
  21. package/dist/open-api.js +10 -9
  22. package/dist/open-api.js.map +1 -1
  23. package/dist/routing.js +1 -2
  24. package/dist/routing.js.map +1 -1
  25. package/dist/security.d.ts +39 -4
  26. package/dist/serve-static.d.ts +3 -2
  27. package/dist/serve-static.js +7 -0
  28. package/dist/serve-static.js.map +1 -1
  29. package/dist/startup-logo.js +1 -1
  30. package/dist-esm/client-helpers.js +1 -1
  31. package/dist-esm/client-helpers.js.map +1 -1
  32. package/dist-esm/depends-on-method.js +2 -3
  33. package/dist-esm/depends-on-method.js.map +1 -1
  34. package/dist-esm/endpoint.js +5 -1
  35. package/dist-esm/endpoint.js.map +1 -1
  36. package/dist-esm/endpoints-factory.js +2 -2
  37. package/dist-esm/endpoints-factory.js.map +1 -1
  38. package/dist-esm/logical-container.js +7 -6
  39. package/dist-esm/logical-container.js.map +1 -1
  40. package/dist-esm/middleware.js.map +1 -1
  41. package/dist-esm/open-api-helpers.js +17 -10
  42. package/dist-esm/open-api-helpers.js.map +1 -1
  43. package/dist-esm/open-api.js +11 -10
  44. package/dist-esm/open-api.js.map +1 -1
  45. package/dist-esm/package.json +1 -1
  46. package/dist-esm/routing.js +1 -2
  47. package/dist-esm/routing.js.map +1 -1
  48. package/dist-esm/serve-static.js +4 -0
  49. package/dist-esm/serve-static.js.map +1 -1
  50. package/dist-esm/startup-logo.js +1 -1
  51. package/package.json +14 -14
package/CHANGELOG.md CHANGED
@@ -1,7 +1,64 @@
1
1
  # Changelog
2
2
 
3
+ ## Version 8
4
+
5
+ ### 8.0.0-beta1
6
+
7
+ - **Breaking**: Only the following Node versions are supported:
8
+ - 14.17.0 and higher,
9
+ - 16.10.0 and higher
10
+ - 18.0.0 and higher.
11
+ - `openapi3-ts` version is 3.0.2.
12
+ - Supporting `jest` (optional peer dependency) version 29.x.
13
+
3
14
  ## Version 7
4
15
 
16
+ ### v7.9.1
17
+
18
+ - Minor refactoring in order to support the recently released Typescript 4.8.2.
19
+
20
+ ### v7.9.0
21
+
22
+ - Feature #540, an addition to the [#523](#v770): OAuth2 authentication with scopes.
23
+ - Middlewares utilizing the OAuth2 authentication (via `security` property) can now specify the information on their
24
+ flows including scopes.
25
+ - Endpoints utilizing those middlewares can now specify their `scopes`.
26
+
27
+ ```typescript
28
+ import { createMiddleware, defaultEndpointsFactory, z } from "express-zod-api";
29
+
30
+ // example middleware
31
+ const myMiddleware = createMiddleware({
32
+ security: {
33
+ type: "oauth2",
34
+ flows: {
35
+ password: {
36
+ tokenUrl: "https://some.url",
37
+ scopes: {
38
+ read: "read something", // scope: description
39
+ write: "write something",
40
+ },
41
+ },
42
+ },
43
+ },
44
+ input: z.object({}),
45
+ middleware: async () => ({
46
+ /* ... */
47
+ }),
48
+ });
49
+
50
+ // example endpoint
51
+ const myEndpoint = defaultEndpointsFactory.addMiddleware(myMiddleware).build({
52
+ scopes: ["write"], // <——
53
+ method: "post",
54
+ input: z.object({}),
55
+ output: z.object({}),
56
+ handler: async () => ({
57
+ /* ... */
58
+ }),
59
+ });
60
+ ```
61
+
5
62
  ### v7.8.1
6
63
 
7
64
  - This version should fix the issue #551:
package/SECURITY.md CHANGED
@@ -4,8 +4,9 @@
4
4
 
5
5
  | Version | Supported |
6
6
  | ------- | ------------------ |
7
+ | 8.x.x | :white_check_mark: |
7
8
  | 7.x.x | :white_check_mark: |
8
- | 6.x.x | :white_check_mark: |
9
+ | 6.x.x | :x: |
9
10
  | 5.x.x | :x: |
10
11
  | 4.x.x | :x: |
11
12
  | 3.x.x | :x: |
@@ -56,7 +56,7 @@ const makeAnyPromise = () => exports.f.createTypeReferenceNode("Promise", [
56
56
  exports.makeAnyPromise = makeAnyPromise;
57
57
  const makePublicExtendedInterface = (name, extender, props) => exports.f.createInterfaceDeclaration(undefined, exports.exportModifier, name, undefined, extender, props);
58
58
  exports.makePublicExtendedInterface = makePublicExtendedInterface;
59
- const makeTypeParams = (params) => Object.keys(params).reduce((acc, name) => acc.concat(exports.f.createTypeParameterDeclaration(name, exports.f.createTypeReferenceNode(params[name]))), []);
59
+ const makeTypeParams = (params) => Object.keys(params).reduce((acc, name) => acc.concat(exports.f.createTypeParameterDeclaration([], name, exports.f.createTypeReferenceNode(params[name]))), []);
60
60
  exports.makeTypeParams = makeTypeParams;
61
61
  const makeImplementationCallFn = (params, args) => exports.f.createArrowFunction(undefined, undefined, params.map((key) => (0, exports.makeParam)(key)), undefined, undefined, exports.f.createCallExpression(exports.f.createPropertyAccessExpression(exports.f.createThis(), "implementation"), undefined, args));
62
62
  exports.makeImplementationCallFn = makeImplementationCallFn;
@@ -1 +1 @@
1
- {"version":3,"file":"client-helpers.js","sourceRoot":"","sources":["../src/client-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-helpers.js","sourceRoot":"","sources":["../src/client-helpers.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@ import { Endpoint } from "./endpoint";
2
2
  import { Method } from "./method";
3
3
  export declare class DependsOnMethod {
4
4
  readonly methods: {
5
- [K in Method]?: Endpoint<any, any, any, K, any, any> | Endpoint<any, any, any, Method, any, any>;
5
+ [K in Method]?: Endpoint<any, any, any, K, any, any, any> | Endpoint<any, any, any, Method, any, any, any>;
6
6
  };
7
7
  constructor(methods: {
8
- [K in Method]?: Endpoint<any, any, any, K, any, any> | Endpoint<any, any, any, Method, any, any>;
8
+ [K in Method]?: Endpoint<any, any, any, K, any, any, any> | Endpoint<any, any, any, Method, any, any, any>;
9
9
  });
10
10
  }
@@ -6,9 +6,8 @@ class DependsOnMethod {
6
6
  constructor(methods) {
7
7
  this.methods = methods;
8
8
  Object.keys(methods).forEach((key) => {
9
- var _a, _b;
10
9
  if (key in methods) {
11
- const endpointMethods = ((_a = methods[key]) === null || _a === void 0 ? void 0 : _a.getMethods()) || [];
10
+ const endpointMethods = methods[key]?.getMethods() || [];
12
11
  if (!endpointMethods.includes(key)) {
13
12
  throw new errors_1.DependsOnMethodError(`The endpoint assigned to the '${key}' parameter must have at least this method in its specification.\n` +
14
13
  "This error should prevent mistakes during the development process.\n" +
@@ -16,7 +15,7 @@ class DependsOnMethod {
16
15
  `new ${this.constructor.name}({\n` +
17
16
  ` ${key}: endpointsFactory.build({\n` +
18
17
  ` methods: ['${key}', ` +
19
- ((((_b = methods[key]) === null || _b === void 0 ? void 0 : _b.getMethods()) || [])
18
+ ((methods[key]?.getMethods() || [])
20
19
  .map((m) => `'${m}'`)
21
20
  .join(", ") || "...") +
22
21
  "]\n" +
@@ -1 +1 @@
1
- {"version":3,"file":"depends-on-method.js","sourceRoot":"","sources":["../src/depends-on-method.ts"],"names":[],"mappings":";;;AACA,qCAAgD;AAGhD,MAAa,eAAe;IAC1B,YACkB,OAIf;QAJe,YAAO,GAAP,OAAO,CAItB;QAEA,MAAM,CAAC,IAAI,CAAC,OAAO,CAA8B,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;;YACjE,IAAI,GAAG,IAAI,OAAO,EAAE;gBAClB,MAAM,eAAe,GAAG,CAAA,MAAA,OAAO,CAAC,GAAG,CAAC,0CAAE,UAAU,EAAE,KAAI,EAAE,CAAC;gBACzD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBAClC,MAAM,IAAI,6BAAoB,CAC5B,iCAAiC,GAAG,oEAAoE;wBACtG,sEAAsE;wBACtE,cAAc;wBACd,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,MAAM;wBAClC,KAAK,GAAG,8BAA8B;wBACtC,kBAAkB,GAAG,KAAK;wBAC1B,CAAC,CAAC,CAAA,MAAA,OAAO,CAAC,GAAG,CAAC,0CAAE,UAAU,EAAE,KAAI,EAAE,CAAC;6BAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;6BACpB,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;wBACvB,KAAK;wBACL,sBAAsB,GAAG,KAAK;wBAC9B,WAAW;wBACX,QAAQ;wBACR,OAAO,CACV,CAAC;iBACH;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAhCD,0CAgCC"}
1
+ {"version":3,"file":"depends-on-method.js","sourceRoot":"","sources":["../src/depends-on-method.ts"],"names":[],"mappings":";;;AACA,qCAAgD;AAGhD,MAAa,eAAe;IAC1B,YACkB,OAIf;QAJe,YAAO,GAAP,OAAO,CAItB;QAEA,MAAM,CAAC,IAAI,CAAC,OAAO,CAA8B,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjE,IAAI,GAAG,IAAI,OAAO,EAAE;gBAClB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;gBACzD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBAClC,MAAM,IAAI,6BAAoB,CAC5B,iCAAiC,GAAG,oEAAoE;wBACtG,sEAAsE;wBACtE,cAAc;wBACd,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,MAAM;wBAClC,KAAK,GAAG,8BAA8B;wBACtC,kBAAkB,GAAG,KAAK;wBAC1B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;6BAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;6BACpB,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;wBACvB,KAAK;wBACL,sBAAsB,GAAG,KAAK;wBAC9B,WAAW;wBACX,QAAQ;wBACR,OAAO,CACV,CAAC;iBACH;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAhCD,0CAgCC"}
@@ -31,8 +31,9 @@ export declare abstract class AbstractEndpoint {
31
31
  abstract getPositiveMimeTypes(): string[];
32
32
  abstract getNegativeMimeTypes(): string[];
33
33
  abstract getSecurity(): LogicalContainer<Security>;
34
+ abstract getScopes(): string[];
34
35
  }
35
- declare type EndpointProps<IN extends IOSchema, OUT extends IOSchema, OPT extends FlatObject, M extends Method, POS extends ApiResponse, NEG extends ApiResponse> = {
36
+ declare type EndpointProps<IN extends IOSchema, OUT extends IOSchema, OPT extends FlatObject, M extends Method, POS extends ApiResponse, NEG extends ApiResponse, SCO extends string> = {
36
37
  middlewares: AnyMiddlewareDef[];
37
38
  inputSchema: IN;
38
39
  mimeTypes: string[];
@@ -40,8 +41,9 @@ declare type EndpointProps<IN extends IOSchema, OUT extends IOSchema, OPT extend
40
41
  handler: Handler<z.output<IN>, z.input<OUT>, OPT>;
41
42
  resultHandler: ResultHandlerDefinition<POS, NEG>;
42
43
  description?: string;
44
+ scopes?: SCO[];
43
45
  } & MethodsDefinition<M>;
44
- export declare class Endpoint<IN extends IOSchema, OUT extends IOSchema, OPT extends FlatObject, M extends Method, POS extends ApiResponse, NEG extends ApiResponse> extends AbstractEndpoint {
46
+ export declare class Endpoint<IN extends IOSchema, OUT extends IOSchema, OPT extends FlatObject, M extends Method, POS extends ApiResponse, NEG extends ApiResponse, SCO extends string> extends AbstractEndpoint {
45
47
  #private;
46
48
  protected readonly description?: string;
47
49
  protected readonly methods: M[];
@@ -51,7 +53,8 @@ export declare class Endpoint<IN extends IOSchema, OUT extends IOSchema, OPT ext
51
53
  protected readonly outputSchema: OUT;
52
54
  protected readonly handler: Handler<z.output<IN>, z.input<OUT>, OPT>;
53
55
  protected readonly resultHandler: ResultHandlerDefinition<POS, NEG>;
54
- constructor({ middlewares, inputSchema, outputSchema, handler, resultHandler, description, mimeTypes, ...rest }: EndpointProps<IN, OUT, OPT, M, POS, NEG>);
56
+ protected readonly scopes?: SCO[];
57
+ constructor({ middlewares, inputSchema, outputSchema, handler, resultHandler, description, mimeTypes, scopes, ...rest }: EndpointProps<IN, OUT, OPT, M, POS, NEG, SCO>);
55
58
  getDescription(): string | undefined;
56
59
  getMethods(): M[];
57
60
  getInputSchema(): IN;
@@ -61,7 +64,8 @@ export declare class Endpoint<IN extends IOSchema, OUT extends IOSchema, OPT ext
61
64
  getInputMimeTypes(): string[];
62
65
  getPositiveMimeTypes(): string[];
63
66
  getNegativeMimeTypes(): string[];
64
- getSecurity(): LogicalContainer<Security>;
67
+ getSecurity(): LogicalContainer<Security<string, string>>;
68
+ getScopes(): SCO[];
65
69
  execute({ request, response, logger, config, }: {
66
70
  request: Request;
67
71
  response: Response;
package/dist/endpoint.js CHANGED
@@ -16,7 +16,7 @@ class AbstractEndpoint {
16
16
  }
17
17
  exports.AbstractEndpoint = AbstractEndpoint;
18
18
  class Endpoint extends AbstractEndpoint {
19
- constructor({ middlewares, inputSchema, outputSchema, handler, resultHandler, description, mimeTypes, ...rest }) {
19
+ constructor({ middlewares, inputSchema, outputSchema, handler, resultHandler, description, mimeTypes, scopes, ...rest }) {
20
20
  super();
21
21
  _Endpoint_instances.add(this);
22
22
  this.methods = [];
@@ -28,6 +28,7 @@ class Endpoint extends AbstractEndpoint {
28
28
  this.handler = handler;
29
29
  this.resultHandler = resultHandler;
30
30
  this.description = description;
31
+ this.scopes = scopes;
31
32
  if ("methods" in rest) {
32
33
  this.methods = rest.methods;
33
34
  }
@@ -65,6 +66,9 @@ class Endpoint extends AbstractEndpoint {
65
66
  getSecurity() {
66
67
  return this.middlewares.reduce((acc, middleware) => middleware.security ? (0, logical_container_1.combineContainers)(acc, middleware.security) : acc, { and: [] });
67
68
  }
69
+ getScopes() {
70
+ return this.scopes || [];
71
+ }
68
72
  async execute({ request, response, logger, config, }) {
69
73
  const method = (0, common_helpers_1.getActualMethod)(request);
70
74
  let output;
@@ -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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"}
@@ -7,24 +7,25 @@ import { Endpoint, Handler } from "./endpoint";
7
7
  import { Method, MethodsDefinition } from "./method";
8
8
  import { AnyMiddlewareDef, ExpressMiddleware, ExpressMiddlewareFeatures, MiddlewareCreationProps, MiddlewareDefinition } from "./middleware";
9
9
  import { ResultHandlerDefinition } from "./result-handler";
10
- declare type BuildProps<IN extends IOSchema, OUT extends IOSchema, MIN extends IOSchema<"strip"> | null, OPT extends FlatObject, M extends Method> = {
10
+ declare type BuildProps<IN extends IOSchema, OUT extends IOSchema, MIN extends IOSchema<"strip"> | null, OPT extends FlatObject, M extends Method, SCO extends string> = {
11
11
  input: IN;
12
12
  output: OUT;
13
13
  handler: Handler<z.output<ProbableIntersection<MIN, IN>>, z.input<OUT>, OPT>;
14
14
  description?: string;
15
+ scopes?: SCO[];
15
16
  } & MethodsDefinition<M>;
16
- export declare class EndpointsFactory<POS extends ApiResponse, NEG extends ApiResponse, IN extends IOSchema<"strip"> | null = null, OUT extends FlatObject = {}> {
17
+ export declare class EndpointsFactory<POS extends ApiResponse, NEG extends ApiResponse, IN extends IOSchema<"strip"> | null = null, OUT extends FlatObject = {}, SCO extends string = string> {
17
18
  #private;
18
19
  protected resultHandler: ResultHandlerDefinition<POS, NEG>;
19
20
  protected middlewares: AnyMiddlewareDef[];
20
21
  constructor(resultHandler: ResultHandlerDefinition<POS, NEG>);
21
- addMiddleware<AIN extends IOSchema<"strip">, AOUT extends FlatObject>(definition: MiddlewareDefinition<AIN, OUT, AOUT>): EndpointsFactory<POS, NEG, ProbableIntersection<IN, AIN>, OUT & AOUT>;
22
+ addMiddleware<AIN extends IOSchema<"strip">, AOUT extends FlatObject, ASCO extends string>(definition: MiddlewareDefinition<AIN, OUT, AOUT, ASCO>): EndpointsFactory<POS, NEG, ProbableIntersection<IN, AIN>, OUT & AOUT, SCO & ASCO>;
22
23
  /** @deprecated please use createMiddleware() for the argument */
23
- addMiddleware<AIN extends IOSchema<"strip">, AOUT extends FlatObject>(props: MiddlewareCreationProps<AIN, OUT, AOUT>): EndpointsFactory<POS, NEG, ProbableIntersection<IN, AIN>, OUT & AOUT>;
24
- use: <R extends Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>, S extends Response<any, Record<string, any>>, AOUT extends FlatObject = {}>(middleware: ExpressMiddleware<R, S>, features?: ExpressMiddlewareFeatures<R, S, AOUT> | undefined) => EndpointsFactory<POS, NEG, IN, OUT & AOUT>;
25
- addExpressMiddleware<R extends Request, S extends Response, AOUT extends FlatObject = {}>(middleware: ExpressMiddleware<R, S>, features?: ExpressMiddlewareFeatures<R, S, AOUT>): EndpointsFactory<POS, NEG, IN, OUT & AOUT>;
26
- addOptions<AOUT extends FlatObject>(options: AOUT): EndpointsFactory<POS, NEG, IN, OUT & AOUT>;
27
- build<BIN extends IOSchema, BOUT extends IOSchema, M extends Method>({ input, handler, description, output: outputSchema, ...rest }: BuildProps<BIN, BOUT, IN, OUT, M>): Endpoint<ProbableIntersection<IN, BIN>, BOUT, OUT, M, POS, NEG>;
24
+ addMiddleware<AIN extends IOSchema<"strip">, AOUT extends FlatObject, ASCO extends string>(props: MiddlewareCreationProps<AIN, OUT, AOUT, ASCO>): EndpointsFactory<POS, NEG, ProbableIntersection<IN, AIN>, OUT & AOUT, SCO & ASCO>;
25
+ use: <R extends Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>, S extends Response<any, Record<string, any>>, AOUT extends FlatObject = {}>(middleware: ExpressMiddleware<R, S>, features?: ExpressMiddlewareFeatures<R, S, AOUT> | undefined) => EndpointsFactory<POS, NEG, IN, OUT & AOUT, SCO>;
26
+ addExpressMiddleware<R extends Request, S extends Response, AOUT extends FlatObject = {}>(middleware: ExpressMiddleware<R, S>, features?: ExpressMiddlewareFeatures<R, S, AOUT>): EndpointsFactory<POS, NEG, IN, OUT & AOUT, SCO>;
27
+ addOptions<AOUT extends FlatObject>(options: AOUT): EndpointsFactory<POS, NEG, IN, OUT & AOUT, SCO>;
28
+ build<BIN extends IOSchema, BOUT extends IOSchema, M extends Method>({ input, handler, description, output: outputSchema, ...rest }: BuildProps<BIN, BOUT, IN, OUT, M, SCO>): Endpoint<ProbableIntersection<IN, BIN>, BOUT, OUT, M, POS, NEG, SCO>;
28
29
  }
29
30
  export declare const defaultEndpointsFactory: EndpointsFactory<ApiResponse<z.ZodObject<{
30
31
  status: z.ZodLiteral<"success">;
@@ -144,5 +145,5 @@ export declare const defaultEndpointsFactory: EndpointsFactory<ApiResponse<z.Zod
144
145
  }> & {
145
146
  keyof: () => z.ZodEnum<never>;
146
147
  } & any;
147
- }>, null, {}>;
148
+ }>, null, {}, string>;
148
149
  export {};
@@ -23,8 +23,8 @@ class EndpointsFactory {
23
23
  return __classPrivateFieldGet(EndpointsFactory, _a, "m", _EndpointsFactory_create).call(EndpointsFactory, this.middlewares.concat("type" in subject ? subject : (0, middleware_1.createMiddleware)(subject)), this.resultHandler);
24
24
  }
25
25
  addExpressMiddleware(middleware, features) {
26
- const transformer = (features === null || features === void 0 ? void 0 : features.transformer) || ((err) => err);
27
- const provider = (features === null || features === void 0 ? void 0 : features.provider) || (() => ({}));
26
+ const transformer = features?.transformer || ((err) => err);
27
+ const provider = features?.provider || (() => ({}));
28
28
  const definition = {
29
29
  type: "express",
30
30
  input: zod_1.z.object({}),
@@ -1 +1 @@
1
- {"version":3,"file":"endpoints-factory.js","sourceRoot":"","sources":["../src/endpoints-factory.ts"],"names":[],"mappings":";;;;;;;;;AACA,6BAAwB;AAExB,qDAM0B;AAC1B,yCAA+C;AAE/C,6CAOsB;AACtB,iCAAiD;AACjD,qDAG0B;AAe1B,MAAa,gBAAgB;IAQ3B,YAAsB,aAAgD;QAAhD,kBAAa,GAAb,aAAa,CAAmC;QAF5D,gBAAW,GAAuB,EAAE,CAAC;QA2CxC,QAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC;IAzCkC,CAAC;IAuBnE,aAAa,CAClB,OAE2C;QAE3C,OAAO,uBAAA,gBAAgB,oCAAQ,MAAxB,gBAAgB,EAMrB,IAAI,CAAC,WAAW,CAAC,MAAM,CACrB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,6BAAgB,EAAC,OAAO,CAAC,CACxD,EACD,IAAI,CAAC,aAAa,CACnB,CAAC;IACJ,CAAC;IAIM,oBAAoB,CAKzB,UAAmC,EACnC,QAAgD;QAEhD,MAAM,WAAW,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,KAAI,CAAC,CAAC,GAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,KAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAW,CAAA,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAqB;YACnC,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACnB,UAAU,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAC1C,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACpC,MAAM,IAAI,GAAG,CAAC,GAAS,EAAE,EAAE;oBACzB,IAAI,GAAG,IAAI,GAAG,YAAY,KAAK,EAAE;wBAC/B,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;qBACjC;oBACD,OAAO,CAAC,QAAQ,CAAC,OAAY,EAAE,QAAa,CAAC,CAAC,CAAC;gBACjD,CAAC,CAAC;gBACF,UAAU,CAAC,OAAY,EAAE,QAAa,EAAE,IAAI,CAAC,CAAC;YAChD,CAAC,CAAC;SACL,CAAC;QACF,OAAO,uBAAA,gBAAgB,oCAAQ,MAAxB,gBAAgB,EACrB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EACnC,IAAI,CAAC,aAAa,CACnB,CAAC;IACJ,CAAC;IAEM,UAAU,CAA0B,OAAa;QACtD,OAAO,uBAAA,gBAAgB,oCAAQ,MAAxB,gBAAgB,EACrB,IAAI,CAAC,WAAW,CAAC,MAAM,CACrB,IAAA,6BAAgB,EAAC;YACf,KAAK,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACnB,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO;SAChC,CAAC,CACH,EACD,IAAI,CAAC,aAAa,CACnB,CAAC;IACJ,CAAC;IAEM,KAAK,CAAgE,EAC1E,KAAK,EACL,OAAO,EACP,WAAW,EACX,MAAM,EAAE,YAAY,EACpB,GAAG,IAAI,EAC2B;QAQlC,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;QAC5C,OAAO,IAAI,mBAAQ,CAAC;YAClB,OAAO;YACP,WAAW;YACX,WAAW;YACX,YAAY;YACZ,aAAa;YACb,WAAW,EAAE,IAAA,4CAA2B,EAAU,WAAW,EAAE,KAAK,CAAC;YACrE,SAAS,EAAE,IAAA,0BAAS,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAa,CAAC,CAAC,CAAC,CAAC,CAAC,eAAQ,CAAC;YAC1D,GAAG,IAAI;SACR,CAAC,CAAC;IACL,CAAC;CACF;AAvHD,4CAuHC;oFAvGG,WAA+B,EAC/B,aAAkD;IAElD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAwB,aAAa,CAAC,CAAC;IAC3E,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;IAClC,OAAO,OAAO,CAAC;AACjB,CAAC;AAmGU,QAAA,uBAAuB,GAAG,IAAI,gBAAgB,CACzD,qCAAoB,CACrB,CAAC"}
1
+ {"version":3,"file":"endpoints-factory.js","sourceRoot":"","sources":["../src/endpoints-factory.ts"],"names":[],"mappings":"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"}
@@ -2,24 +2,25 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.combineContainers = exports.andToOr = exports.mapLogicalContainer = exports.flattenAnds = void 0;
4
4
  const common_helpers_1 = require("./common-helpers");
5
+ const isObject = (subject) => typeof subject === "object" && subject !== null;
5
6
  /** @desc combines several LogicalAnds into a one */
6
7
  const flattenAnds = (subject) => ({
7
- and: subject.reduce((agg, item) => agg.concat(typeof item === "object" && "and" in item ? item.and : item), []),
8
+ and: subject.reduce((agg, item) => agg.concat(isObject(item) && "and" in item ? item.and : item), []),
8
9
  });
9
10
  exports.flattenAnds = flattenAnds;
10
11
  /** @desc creates a LogicalContainer out of another one */
11
12
  const mapLogicalContainer = (container, fn) => {
12
- if (typeof container === "object") {
13
+ if (isObject(container)) {
13
14
  if ("and" in container) {
14
15
  return {
15
- and: container.and.map((entry) => typeof entry === "object" && "or" in entry
16
+ and: container.and.map((entry) => isObject(entry) && "or" in entry
16
17
  ? { or: entry.or.map(fn) }
17
18
  : fn(entry)),
18
19
  };
19
20
  }
20
21
  if ("or" in container) {
21
22
  return {
22
- or: container.or.map((entry) => typeof entry === "object" && "and" in entry
23
+ or: container.or.map((entry) => isObject(entry) && "and" in entry
23
24
  ? { and: entry.and.map(fn) }
24
25
  : fn(entry)),
25
26
  };
@@ -31,7 +32,7 @@ exports.mapLogicalContainer = mapLogicalContainer;
31
32
  /** @desc converts LogicalAnd into LogicalOr */
32
33
  const andToOr = (subject) => {
33
34
  return subject.and.reduce((acc, item) => {
34
- const combs = (0, common_helpers_1.combinations)(acc.or, typeof item === "object" && "or" in item ? item.or : [item]);
35
+ const combs = (0, common_helpers_1.combinations)(acc.or, isObject(item) && "or" in item ? item.or : [item]);
35
36
  if (combs.type === "single") {
36
37
  acc.or.push(...combs.value);
37
38
  }
@@ -46,7 +47,7 @@ const andToOr = (subject) => {
46
47
  exports.andToOr = andToOr;
47
48
  /** @desc reducer, combines two LogicalContainers */
48
49
  const combineContainers = (a, b) => {
49
- if (typeof a === "object" && typeof b === "object") {
50
+ if (isObject(a) && isObject(b)) {
50
51
  if ("and" in a) {
51
52
  if ("and" in b) {
52
53
  return (0, exports.flattenAnds)([a, b]);
@@ -1 +1 @@
1
- {"version":3,"file":"logical-container.js","sourceRoot":"","sources":["../src/logical-container.ts"],"names":[],"mappings":";;;AAAA,qDAAgD;AAUhD,oDAAoD;AAC7C,MAAM,WAAW,GAAG,CACzB,OAA8B,EACf,EAAE,CAAC,CAAC;IACnB,GAAG,EAAE,OAAO,CAAC,MAAM,CACjB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CACZ,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EACzE,EAAE,CACH;CACF,CAAC,CAAC;AARU,QAAA,WAAW,eAQrB;AAEH,0DAA0D;AACnD,MAAM,mBAAmB,GAAG,CACjC,SAA8B,EAC9B,EAAqB,EACA,EAAE;IACvB,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QACjC,IAAI,KAAK,IAAI,SAAS,EAAE;YACtB,OAAO;gBACL,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC/B,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,IAAI,KAAK;oBACxC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAC1B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CACd;aACF,CAAC;SACH;QACD,IAAI,IAAI,IAAI,SAAS,EAAE;YACrB,OAAO;gBACL,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC7B,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,KAAK;oBACzC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAC5B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CACd;aACF,CAAC;SACH;KACF;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;AACvB,CAAC,CAAC;AAzBW,QAAA,mBAAmB,uBAyB9B;AAEF,+CAA+C;AACxC,MAAM,OAAO,GAAG,CACrB,OAAqC,EACP,EAAE;IAChC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CACvB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACZ,MAAM,KAAK,GAAG,IAAA,6BAAY,EACxB,GAAG,CAAC,EAAE,EACN,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAC5D,CAAC;QACF,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC3B,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;SAC7B;aAAM;YACL,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAW,CAAC,CAAC;SACvC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EACD;QACE,EAAE,EAAE,EAAE;KACP,CACF,CAAC;AACJ,CAAC,CAAC;AApBW,QAAA,OAAO,WAoBlB;AAEF,oDAAoD;AAC7C,MAAM,iBAAiB,GAAG,CAC/B,CAAsB,EACtB,CAAsB,EACD,EAAE;IACvB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QAClD,IAAI,KAAK,IAAI,CAAC,EAAE;YACd,IAAI,KAAK,IAAI,CAAC,EAAE;gBACd,OAAO,IAAA,mBAAW,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aAC5B;YACD,IAAI,IAAI,IAAI,CAAC,EAAE;gBACb,OAAO,IAAA,yBAAiB,EAAC,IAAA,eAAO,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACzC;SACF;QACD,IAAI,IAAI,IAAI,CAAC,EAAE;YACb,IAAI,KAAK,IAAI,CAAC,EAAE;gBACd,OAAO,IAAA,yBAAiB,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAChC;YACD,IAAI,IAAI,IAAI,CAAC,EAAE;gBACb,MAAM,KAAK,GAAG,IAAA,6BAAY,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvC,OAAO;oBACL,EAAE,EACA,KAAK,CAAC,IAAI,KAAK,QAAQ;wBACrB,CAAC,CAAC,KAAK,CAAC,KAAK;wBACb,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAW,CAAC;iBACnC,CAAC;aACH;SACF;KACF;IACD,OAAO,EAAE,GAAG,EAAE,CAAC,CAAM,EAAE,CAAM,CAAC,EAAE,CAAC;AACnC,CAAC,CAAC;AA7BW,QAAA,iBAAiB,qBA6B5B"}
1
+ {"version":3,"file":"logical-container.js","sourceRoot":"","sources":["../src/logical-container.ts"],"names":[],"mappings":"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"}
@@ -13,16 +13,16 @@ interface MiddlewareParams<IN, OPT> {
13
13
  logger: Logger;
14
14
  }
15
15
  declare type Middleware<IN, OPT, OUT> = (params: MiddlewareParams<IN, OPT>) => Promise<OUT>;
16
- export interface MiddlewareCreationProps<IN extends IOSchema<"strip">, OPT, OUT extends FlatObject> {
16
+ export interface MiddlewareCreationProps<IN extends IOSchema<"strip">, OPT, OUT extends FlatObject, SCO extends string> {
17
17
  input: IN;
18
- security?: LogicalContainer<Security<keyof z.input<IN> & string>>;
18
+ security?: LogicalContainer<Security<keyof z.input<IN> & string, SCO>>;
19
19
  middleware: Middleware<z.output<IN>, OPT, OUT>;
20
20
  }
21
- export interface MiddlewareDefinition<IN extends IOSchema<"strip">, OPT, OUT extends FlatObject> extends MiddlewareCreationProps<IN, OPT, OUT> {
21
+ export interface MiddlewareDefinition<IN extends IOSchema<"strip">, OPT, OUT extends FlatObject, SCO extends string> extends MiddlewareCreationProps<IN, OPT, OUT, SCO> {
22
22
  type: "proprietary" | "express";
23
23
  }
24
- export declare type AnyMiddlewareDef = MiddlewareDefinition<any, any, any>;
25
- export declare const createMiddleware: <IN extends IOSchema<"strip">, OPT, OUT extends FlatObject>(props: MiddlewareCreationProps<IN, OPT, OUT>) => MiddlewareDefinition<IN, OPT, OUT>;
24
+ export declare type AnyMiddlewareDef = MiddlewareDefinition<any, any, any, any>;
25
+ 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>;
26
26
  export declare type ExpressMiddleware<R extends Request, S extends Response> = (request: R, response: S, next: (error?: any) => void) => void | Promise<void>;
27
27
  export interface ExpressMiddlewareFeatures<R extends Request, S extends Response, OUT extends FlatObject> {
28
28
  provider?: (request: R, response: S) => OUT | Promise<OUT>;
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":";;;AAwCO,MAAM,gBAAgB,GAAG,CAK9B,KAA4C,EACR,EAAE,CAAC,CAAC;IACxC,GAAG,KAAK;IACR,IAAI,EAAE,aAAa;CACpB,CAAC,CAAC;AATU,QAAA,gBAAgB,oBAS1B"}
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":";;;AA0CO,MAAM,gBAAgB,GAAG,CAM9B,KAAiD,EACR,EAAE,CAAC,CAAC;IAC7C,GAAG,KAAK;IACR,IAAI,EAAE,aAAa;CACpB,CAAC,CAAC;AAVU,QAAA,gBAAgB,oBAU1B"}
@@ -1,5 +1,4 @@
1
- import { MediaTypeObject, ParameterObject, SchemaObject } from "openapi3-ts";
2
- import { RequestBodyObject, ResponseObject, SecurityRequirementObject, SecuritySchemeObject } from "openapi3-ts/src/model/OpenApi";
1
+ import { MediaTypeObject, ParameterObject, SchemaObject, RequestBodyObject, ResponseObject, SecurityRequirementObject, SecuritySchemeObject } from "openapi3-ts";
3
2
  import { z } from "zod";
4
3
  import { IOSchema } from "./common-helpers";
5
4
  import { InputSources } from "./config-type";
@@ -45,6 +44,7 @@ export declare const depictArray: DepictHelper<z.ZodArray<z.ZodTypeAny>>;
45
44
  /** @todo improve it when OpenAPI 3.1.0 will be released */
46
45
  export declare const depictTuple: DepictHelper<z.ZodTuple>;
47
46
  export declare const depictString: DepictHelper<z.ZodString>;
47
+ /** @todo support exclusive min/max as numbers in case of OpenAPI v3.1.x */
48
48
  export declare const depictNumber: DepictHelper<z.ZodNumber>;
49
49
  export declare const depictObjectProperties: ({ schema: { shape }, isResponse, }: Parameters<DepictHelper<z.AnyZodObject>>[0]) => Record<string, SchemaObject>;
50
50
  export declare const depictEffect: DepictHelper<z.ZodEffects<z.ZodTypeAny>>;
@@ -72,6 +72,9 @@ export declare const depictResponse: ({ method, path, description, endpoint, isP
72
72
  isPositive: boolean;
73
73
  }) => ResponseObject;
74
74
  export declare const depictSecurity: (container: LogicalContainer<Security>) => LogicalContainer<SecuritySchemeObject>;
75
- export declare const depictSecurityNames: (container: LogicalContainer<string>) => SecurityRequirementObject[];
75
+ export declare const depictSecurityRefs: (container: LogicalContainer<{
76
+ name: string;
77
+ scopes: string[];
78
+ }>) => SecurityRequirementObject[];
76
79
  export declare const depictRequest: ({ method, path, endpoint, }: ReqResDepictHelperCommonProps) => RequestBodyObject;
77
80
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.depictRequest = exports.depictSecurityNames = exports.depictSecurity = exports.depictResponse = exports.excludeExampleFromDepiction = exports.excludeParamsFromDepiction = exports.depictSchema = exports.depictRequestParams = exports.extractObjectSchema = exports.depictIOParamExamples = exports.depictIOExamples = exports.depictZodBranded = exports.depictEffect = exports.depictObjectProperties = exports.depictNumber = exports.depictString = exports.depictTuple = exports.depictArray = exports.depictRecord = exports.depictBigInt = exports.depictBoolean = exports.depictDateOut = exports.depictDateIn = exports.depictNull = exports.depictObject = exports.depictLiteral = exports.depictEnum = exports.depictOptionalOrNullable = exports.depictIntersection = exports.depictDiscriminatedUnion = exports.depictUnion = exports.depictFile = exports.depictUpload = exports.depictAny = exports.depictDefault = exports.reformatParamsInPath = void 0;
3
+ exports.depictRequest = exports.depictSecurityRefs = exports.depictSecurity = exports.depictResponse = exports.excludeExampleFromDepiction = exports.excludeParamsFromDepiction = exports.depictSchema = exports.depictRequestParams = exports.extractObjectSchema = exports.depictIOParamExamples = exports.depictIOExamples = exports.depictZodBranded = exports.depictEffect = exports.depictObjectProperties = exports.depictNumber = exports.depictString = exports.depictTuple = exports.depictArray = exports.depictRecord = exports.depictBigInt = exports.depictBoolean = exports.depictDateOut = exports.depictDateIn = exports.depictNull = exports.depictObject = exports.depictLiteral = exports.depictEnum = exports.depictOptionalOrNullable = exports.depictIntersection = exports.depictDiscriminatedUnion = exports.depictUnion = exports.depictFile = exports.depictUpload = exports.depictAny = exports.depictDefault = exports.reformatParamsInPath = void 0;
4
4
  const ramda_1 = require("ramda");
5
5
  const zod_1 = require("zod");
6
6
  const common_helpers_1 = require("./common-helpers");
@@ -246,6 +246,7 @@ const depictString = ({ schema: { _def: { checks }, }, initial, }) => {
246
246
  };
247
247
  };
248
248
  exports.depictString = depictString;
249
+ /** @todo support exclusive min/max as numbers in case of OpenAPI v3.1.x */
249
250
  const depictNumber = ({ schema, initial, }) => {
250
251
  const minCheck = schema._def.checks.find(({ kind }) => kind === "min");
251
252
  const isMinInclusive = minCheck ? minCheck.inclusive : true;
@@ -521,14 +522,20 @@ const depictCookieSecurity = ({ name }) => ({
521
522
  in: "cookie",
522
523
  name,
523
524
  });
524
- // @todo implement scopes
525
525
  const depictOpenIdSecurity = ({ url: openIdConnectUrl, }) => ({
526
526
  type: "openIdConnect",
527
527
  openIdConnectUrl,
528
528
  });
529
- // @todo implement scopes
530
- const depictOAuth2Security = ({}) => ({
529
+ const depictOAuth2Security = ({ flows = {} }) => ({
531
530
  type: "oauth2",
531
+ flows: Object.keys(flows).reduce((acc, key) => {
532
+ const flow = flows[key];
533
+ if (!flow) {
534
+ return acc;
535
+ }
536
+ const { scopes = {}, ...rest } = flow;
537
+ return { ...acc, [key]: { ...rest, scopes } };
538
+ }, {}),
532
539
  });
533
540
  const depictSecurity = (container) => {
534
541
  const methods = {
@@ -543,23 +550,23 @@ const depictSecurity = (container) => {
543
550
  return (0, logical_container_1.mapLogicalContainer)(container, (security) => methods[security.type](security));
544
551
  };
545
552
  exports.depictSecurity = depictSecurity;
546
- const depictSecurityNames = (container) => {
553
+ const depictSecurityRefs = (container) => {
547
554
  if (typeof container === "object") {
548
555
  if ("or" in container) {
549
- return container.or.map((entry) => (typeof entry === "string"
550
- ? [entry]
551
- : entry.and).reduce((agg, name) => ({
556
+ return container.or.map((entry) => ("and" in entry
557
+ ? entry.and
558
+ : [entry]).reduce((agg, { name, scopes }) => ({
552
559
  ...agg,
553
- [name]: [],
560
+ [name]: scopes,
554
561
  }), {}));
555
562
  }
556
563
  if ("and" in container) {
557
- return (0, exports.depictSecurityNames)((0, logical_container_1.andToOr)(container));
564
+ return (0, exports.depictSecurityRefs)((0, logical_container_1.andToOr)(container));
558
565
  }
559
566
  }
560
- return (0, exports.depictSecurityNames)({ or: [container] });
567
+ return (0, exports.depictSecurityRefs)({ or: [container] });
561
568
  };
562
- exports.depictSecurityNames = depictSecurityNames;
569
+ exports.depictSecurityRefs = depictSecurityRefs;
563
570
  const depictRequest = ({ method, path, endpoint, }) => {
564
571
  const pathParams = (0, common_helpers_1.getRoutePathParams)(path);
565
572
  const bodyDepiction = (0, exports.excludeExampleFromDepiction)((0, exports.excludeParamsFromDepiction)((0, exports.depictSchema)({