express-zod-api 3.0.0 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +55 -27
  3. package/dist/{helpers.d.ts → common-helpers.d.ts} +2 -0
  4. package/dist/{helpers.js → common-helpers.js} +16 -7
  5. package/dist/common-helpers.js.map +1 -0
  6. package/dist/config-type.d.ts +3 -2
  7. package/dist/config-type.js.map +1 -1
  8. package/dist/endpoint.d.ts +1 -1
  9. package/dist/endpoint.js +3 -3
  10. package/dist/endpoint.js.map +1 -1
  11. package/dist/endpoints-factory.d.ts +5 -5
  12. package/dist/file-schema.d.ts +1 -1
  13. package/dist/file-schema.js +3 -3
  14. package/dist/file-schema.js.map +1 -1
  15. package/dist/index.d.ts +1 -1
  16. package/dist/index.js +2 -2
  17. package/dist/index.js.map +1 -1
  18. package/dist/metadata.js +2 -2
  19. package/dist/metadata.js.map +1 -1
  20. package/dist/middleware.d.ts +1 -1
  21. package/dist/open-api-helpers.d.ts +24 -0
  22. package/dist/open-api-helpers.js +422 -0
  23. package/dist/open-api-helpers.js.map +1 -0
  24. package/dist/open-api.d.ts +2 -2
  25. package/dist/open-api.js +22 -386
  26. package/dist/open-api.js.map +1 -1
  27. package/dist/result-handler.d.ts +5 -5
  28. package/dist/result-handler.js +5 -5
  29. package/dist/result-handler.js.map +1 -1
  30. package/dist/routing.d.ts +2 -2
  31. package/dist/routing.js +13 -13
  32. package/dist/routing.js.map +1 -1
  33. package/dist/server.js +3 -3
  34. package/dist/server.js.map +1 -1
  35. package/dist-esm/{helpers.js → common-helpers.js} +14 -6
  36. package/dist-esm/common-helpers.js.map +1 -0
  37. package/dist-esm/config-type.js.map +1 -1
  38. package/dist-esm/endpoint.js +1 -1
  39. package/dist-esm/endpoint.js.map +1 -1
  40. package/dist-esm/file-schema.js +1 -1
  41. package/dist-esm/file-schema.js.map +1 -1
  42. package/dist-esm/index.js +1 -1
  43. package/dist-esm/index.js.map +1 -1
  44. package/dist-esm/metadata.js +1 -1
  45. package/dist-esm/metadata.js.map +1 -1
  46. package/dist-esm/open-api-helpers.js +414 -0
  47. package/dist-esm/open-api-helpers.js.map +1 -0
  48. package/dist-esm/open-api.js +23 -387
  49. package/dist-esm/open-api.js.map +1 -1
  50. package/dist-esm/package.json +1 -1
  51. package/dist-esm/result-handler.js +1 -1
  52. package/dist-esm/result-handler.js.map +1 -1
  53. package/dist-esm/routing.js +13 -13
  54. package/dist-esm/routing.js.map +1 -1
  55. package/dist-esm/server.js +1 -1
  56. package/dist-esm/server.js.map +1 -1
  57. package/package.json +1 -1
  58. package/dist/helpers.js.map +0 -1
  59. package/dist-esm/helpers.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,56 @@
2
2
 
3
3
  ## Version 3
4
4
 
5
+ ### v3.1.1
6
+
7
+ - No changes. Releasing as 3.1.1 due to a typo in Readme I found after publishing 3.1.0.
8
+
9
+ ### v3.1.0
10
+
11
+ - Feature #174: Route path params as the new input source.
12
+ - `request.params` is validated against the input schema.
13
+ - The schema for validating the path params can now be described along with other inputs.
14
+ - You no longer need a middleware like `paramsProviderMiddleware` to handle path params.
15
+ - The route path params are now reflected in the generated documentation.
16
+
17
+ ```typescript
18
+ const routingExample: Routing = {
19
+ v1: {
20
+ user: {
21
+ // route path /v1/user/:id, where :id is the path param
22
+ ":id": getUserEndpoint,
23
+ },
24
+ },
25
+ };
26
+ const getUserEndpoint = endpointsFactory.build({
27
+ method: "get",
28
+ input: withMeta(
29
+ z.object({
30
+ // id is the route path param, always string
31
+ id: z.string().transform((value) => parseInt(value, 10)),
32
+ // other inputs (in query):
33
+ withExtendedInformation: z.boolean().optional(),
34
+ })
35
+ ).example({
36
+ id: "12",
37
+ withExtendedInformation: true,
38
+ }),
39
+ // ...
40
+ });
41
+ ```
42
+
43
+ - The default configuration of `inputSources` has been changed.
44
+
45
+ ```typescript
46
+ const newInputSourcesByDefault: InputSources = {
47
+ get: ["query", "params"],
48
+ post: ["body", "params", "files"],
49
+ put: ["body", "params"],
50
+ patch: ["body", "params"],
51
+ delete: ["body", "query", "params"],
52
+ };
53
+ ```
54
+
5
55
  ### v3.0.0
6
56
 
7
57
  - No changes. [November 20](https://en.wikipedia.org/wiki/Transgender_Day_of_Remembrance) release.
package/README.md CHANGED
@@ -29,15 +29,16 @@ Start your API server with I/O schema validation and custom middlewares in minut
29
29
  1. [Middlewares](#middlewares)
30
30
  2. [Refinements](#refinements)
31
31
  3. [Transformations](#transformations)
32
- 4. [Response customization](#response-customization)
33
- 5. [Non-object response](#non-object-response) including file downloads
34
- 6. [File uploads](#file-uploads)
35
- 7. [Customizing logger](#customizing-logger)
36
- 8. [Usage with your own express app](#usage-with-your-own-express-app)
37
- 9. [Multiple schemas for one route](#multiple-schemas-for-one-route)
38
- 10. [Customizing input sources](#customizing-input-sources)
39
- 11. [Exporting endpoint types to frontend](#exporting-endpoint-types-to-frontend)
40
- 12. [Creating a documentation](#creating-a-documentation)
32
+ 4. [Route path params](#route-path-params)
33
+ 5. [Response customization](#response-customization)
34
+ 6. [Non-object response](#non-object-response) including file downloads
35
+ 7. [File uploads](#file-uploads)
36
+ 8. [Customizing logger](#customizing-logger)
37
+ 9. [Usage with your own express app](#usage-with-your-own-express-app)
38
+ 10. [Multiple schemas for one route](#multiple-schemas-for-one-route)
39
+ 11. [Customizing input sources](#customizing-input-sources)
40
+ 12. [Exporting endpoint types to frontend](#exporting-endpoint-types-to-frontend)
41
+ 13. [Creating a documentation](#creating-a-documentation)
41
42
  5. [Known issues](#known-issues)
42
43
  1. [Excessive properties in endpoint output](#excessive-properties-in-endpoint-output)
43
44
  6. [Your input to my output](#your-input-to-my-output)
@@ -57,7 +58,7 @@ Therefore, many basic tasks can be accomplished faster and easier, in particular
57
58
  you expect a number.
58
59
  - Variables within an endpoint handler have types according to the declared schema, so your IDE and Typescript will
59
60
  provide you with necessary hints to focus on bringing your vision to life.
60
- - All of your endpoints can respond in a similar way.
61
+ - All of your endpoints can respond in a consistent way.
61
62
  - The expected endpoint input and response types can be exported to the frontend, so you don't get confused about the
62
63
  field names when you implement the client for your API.
63
64
  - You can generate your API documentation in a Swagger / OpenAPI compatible format.
@@ -81,7 +82,7 @@ The object being validated is the combination of certain `request` properties.
81
82
  It is available to the endpoint handler as the `input` parameter.
82
83
  Middlewares have access to all `request` properties, they can provide endpoints with `options`.
83
84
  The object returned by the endpoint handler is called `output`. It goes to the `ResultHandler` which is
84
- responsible for transmission of the final response containing the `output` or possible error.
85
+ responsible for transmitting consistent responses containing the `output` or possible error.
85
86
  Much can be customized to fit your needs.
86
87
 
87
88
  ![Dataflow](https://raw.githubusercontent.com/RobinTail/express-zod-api/master/dataflow.svg)
@@ -205,38 +206,28 @@ You should receive the following response:
205
206
  Middleware can authenticate using input or `request` headers, and can provide endpoint handlers with `options`.
206
207
  Inputs of middlewares are also available to endpoint handlers within `input`.
207
208
 
208
- Here is an example on how to provide parameters from the request path.
209
+ Here is an example on how to provide headers of the request.
209
210
 
210
211
  ```typescript
211
212
  import { createMiddleware } from "express-zod-api";
212
213
 
213
- const paramsProviderMiddleware = createMiddleware({
214
+ const headersProviderMiddleware = createMiddleware({
214
215
  input: z.object({}), // means no inputs
215
216
  middleware: async ({ request }) => ({
216
- params: request.params,
217
+ headers: request.headers,
217
218
  }),
218
219
  });
219
220
  ```
220
221
 
221
- Then, you can connect your endpoint to a path like `/user/:id`, where `id` is a parameter:
222
-
223
- ```typescript
224
- const routing: Routing = {
225
- user: {
226
- ":id": yourEndpoint,
227
- },
228
- };
229
- ```
230
-
231
222
  By using `.addMiddleware()` method before `.build()` you can connect it to the endpoint:
232
223
 
233
224
  ```typescript
234
225
  const yourEndpoint = defaultEndpointsFactory
235
- .addMiddleware(yourMiddleware)
226
+ .addMiddleware(headersProviderMiddleware)
236
227
  .build({
237
228
  // ...,
238
229
  handler: async ({ options }) => {
239
- // options.id is your param from /user/:id
230
+ // options.headers === request.headers
240
231
  },
241
232
  });
242
233
  ```
@@ -322,9 +313,46 @@ const getUserEndpoint = endpointsFactory.build({
322
313
  });
323
314
  ```
324
315
 
316
+ ## Route path params
317
+
318
+ You can describe the route of the endpoint using parameters:
319
+
320
+ ```typescript
321
+ import { Routing } from "express-zod-api";
322
+
323
+ const routing: Routing = {
324
+ v1: {
325
+ user: {
326
+ // route path /v1/user/:id, where :id is the path param
327
+ ":id": getUserEndpoint,
328
+ },
329
+ },
330
+ };
331
+ ```
332
+
333
+ You then need to specify these parameters in the endpoint input schema in the usual way:
334
+
335
+ ```typescript
336
+ const getUserEndpoint = endpointsFactory.build({
337
+ method: "get",
338
+ input: z.object({
339
+ // id is the route path param, always string
340
+ id: z.string().transform((value) => parseInt(value, 10)),
341
+ // other inputs (in query):
342
+ withExtendedInformation: z.boolean().optional(),
343
+ }),
344
+ output: z.object({
345
+ /* ... */
346
+ }),
347
+ handler: async ({ input: { id } }) => {
348
+ // id is the route path param, number
349
+ },
350
+ });
351
+ ```
352
+
325
353
  ## Response customization
326
354
 
327
- `ResultHandler` is responsible for transmission of the response containing the endpoint output or an error.
355
+ `ResultHandler` is responsible for transmitting consistent responses containing the endpoint output or an error.
328
356
  The `defaultResultHandler` sets the HTTP status code and ensures the following type of the response:
329
357
 
330
358
  ```typescript
@@ -35,6 +35,8 @@ export declare const combinations: <T extends unknown>(a: T[], b: T[]) => {
35
35
  type: "tuple";
36
36
  value: [T, T][];
37
37
  };
38
+ /** @see https://expressjs.com/en/guide/routing.html */
39
+ export declare function getRoutePathParams(path: string): string[];
38
40
  export declare type ErrMessage = Exclude<Parameters<typeof z.ZodString.prototype.email>[0], undefined>;
39
41
  export declare const errToObj: (message: ErrMessage | undefined) => {
40
42
  message?: string | undefined;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.errToObj = exports.combinations = exports.getExamples = exports.getStatusCodeFromError = exports.getMessageFromError = exports.isLoggerConfig = exports.getInitialInput = exports.combineEndpointAndMiddlewareInputSchemas = exports.extractObjectSchema = exports.markOutput = void 0;
3
+ exports.errToObj = exports.getRoutePathParams = exports.combinations = exports.getExamples = exports.getStatusCodeFromError = exports.getMessageFromError = exports.isLoggerConfig = exports.getInitialInput = exports.combineEndpointAndMiddlewareInputSchemas = exports.extractObjectSchema = exports.markOutput = void 0;
4
4
  const http_errors_1 = require("http-errors");
5
5
  const zod_1 = require("zod");
6
6
  const config_type_1 = require("./config-type");
@@ -44,11 +44,11 @@ function areFilesAvailable(request) {
44
44
  return "files" in request && isMultipart;
45
45
  }
46
46
  const defaultInputSources = {
47
- get: ["query"],
48
- post: ["body", "files"],
49
- put: ["body"],
50
- patch: ["body"],
51
- delete: ["query", "body"],
47
+ get: ["query", "params"],
48
+ post: ["body", "params", "files"],
49
+ put: ["body", "params"],
50
+ patch: ["body", "params"],
51
+ delete: ["body", "query", "params"],
52
52
  };
53
53
  const fallbackInputSource = defaultInputSources.delete;
54
54
  function getInitialInput(request, inputAssignment) {
@@ -126,7 +126,16 @@ const combinations = (a, b) => {
126
126
  return { type: "tuple", value: result };
127
127
  };
128
128
  exports.combinations = combinations;
129
+ /** @see https://expressjs.com/en/guide/routing.html */
130
+ function getRoutePathParams(path) {
131
+ const match = path.match(/:([A-Za-z0-9_]+)/g);
132
+ if (!match) {
133
+ return [];
134
+ }
135
+ return match.map((param) => param.slice(1));
136
+ }
137
+ exports.getRoutePathParams = getRoutePathParams;
129
138
  // the copy of the private Zod errorUtil.errToObj
130
139
  const errToObj = (message) => typeof message === "string" ? { message } : message || {};
131
140
  exports.errToObj = errToObj;
132
- //# sourceMappingURL=helpers.js.map
141
+ //# sourceMappingURL=common-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-helpers.js","sourceRoot":"","sources":["../src/common-helpers.ts"],"names":[],"mappings":";;;AACA,6CAAwC;AACxC,6BAAwB;AACxB,+CAKuB;AACvB,yCAA+C;AAG/C,iCAAuC;AAgDhC,MAAM,UAAU,GAAG,CAAC,MAAgB,EAAE,EAAE,CAAC,MAAsB,CAAC;AAA1D,QAAA,UAAU,cAAgD;AASvE,SAAgB,mBAAmB,CAAC,OAAiB;IACnD,IAAI,OAAO,YAAY,OAAC,CAAC,SAAS,EAAE;QAClC,OAAO,OAAO,CAAC;KAChB;IACD,IAAI,YAA0B,CAAC;IAC/B,IAAI,OAAO,YAAY,OAAC,CAAC,QAAQ,EAAE;QACjC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CACpD,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CACtC,CAAC;KACH;SAAM;QACL,sBAAsB;QACtB,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5D;IACD,OAAO,IAAA,mBAAQ,EAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AAdD,kDAcC;AAED,SAAgB,wCAAwC,CAItD,KAAS,EACT,WAAuD;IAEvD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,OAAO,mBAAmB,CAAC,KAAK,CAAoB,CAAC;KACtD;IACD,MAAM,OAAO,GAAG,WAAW;SACxB,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;SACrC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CACxB,mBAAmB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAC9D,CAAC;IACJ,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC,KAAK,CAC/C,mBAAmB,CAAC,KAAK,CAAC,CACR,CAAC;IACrB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,IAAA,mBAAQ,EAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KACpC;IACD,IAAA,mBAAQ,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC;AAChB,CAAC;AAvBD,4FAuBC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACzD,MAAM,WAAW,GACf,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,oBAAa,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,oBAAa,CAAC;IAC9E,OAAO,OAAO,IAAI,OAAO,IAAI,WAAW,CAAC;AAC3C,CAAC;AAED,MAAM,mBAAmB,GAAiB;IACxC,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;IACxB,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;IACjC,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IACvB,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IACzB,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;CACpC,CAAC;AACF,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,MAAM,CAAC;AAEvD,SAAgB,eAAe,CAC7B,OAAgB,EAChB,eAA6C;IAE7C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAY,CAAC;IACtD,IAAI,KAAK,GAAG,mBAAmB,CAAC;IAChC,IAAI,MAAM,IAAI,mBAAmB,EAAE;QACjC,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;KACrC;IACD,IAAI,eAAe,IAAI,MAAM,IAAI,eAAe,EAAE;QAChD,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;KAC1C;IACD,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACxE,MAAM,CACL,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,KAAK;QACR,GAAG,OAAO,CAAC,IAAI,CAAC;KACjB,CAAC,EACF,EAAE,CACH,CAAC;AACN,CAAC;AArBD,0CAqBC;AAED,SAAgB,cAAc,CAAC,MAAW;IACxC,OAAO,CACL,OAAO,MAAM,KAAK,QAAQ;QAC1B,OAAO,IAAI,MAAM;QACjB,OAAO,IAAI,MAAM;QACjB,MAAM,CAAC,IAAI,CAAC,0BAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAChD,OAAO,MAAM,CAAC,KAAK,KAAK,SAAS,CAClC,CAAC;AACJ,CAAC;AARD,wCAQC;AAED,SAAgB,mBAAmB,CAAC,KAAY;IAC9C,IAAI,KAAK,YAAY,OAAC,CAAC,QAAQ,EAAE;QAC/B,OAAO,KAAK,CAAC,MAAM;aAChB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC;aAC3D,IAAI,CAAC,IAAI,CAAC,CAAC;KACf;IACD,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC;AAPD,kDAOC;AAED,SAAgB,sBAAsB,CAAC,KAAY;IACjD,IAAI,KAAK,YAAY,uBAAS,EAAE;QAC9B,OAAO,KAAK,CAAC,UAAU,CAAC;KACzB;IACD,IAAI,KAAK,YAAY,OAAC,CAAC,QAAQ,EAAE;QAC/B,OAAO,GAAG,CAAC;KACZ;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AARD,wDAQC;AAGM,MAAM,WAAW,GAAG,CACzB,MAAS,EACT,aAAsB,EACT,EAAE;IACf,MAAM,QAAQ,GAAG,IAAA,kBAAO,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,SAAS,EAAE;QAC1B,OAAO,EAAE,CAAC;KACX;IACD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxC,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,KAAK,CAAC,MAAM,CACjB,aAAa,CAAC,OAAO;YACnB,CAAC,CAAC,aAAa;gBACb,CAAC,CAAC,aAAa,CAAC,IAAI;gBACpB,CAAC,CAAC,OAAO;YACX,CAAC,CAAC,EAAE,CACP,CAAC;IACJ,CAAC,EAAE,EAA+B,CAAC,CAAC;AACtC,CAAC,CAAC;AAlBW,QAAA,WAAW,eAkBtB;AAEK,MAAM,YAAY,GAAG,CAC1B,CAAM,EACN,CAAM,EAC+D,EAAE;IACvE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QAClB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACrC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QAClB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACrC;IACD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE;QACrB,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;SAC7B;KACF;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC1C,CAAC,CAAC;AAjBW,QAAA,YAAY,gBAiBvB;AAEF,uDAAuD;AACvD,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAE,CAAC;KACX;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAND,gDAMC;AAQD,iDAAiD;AAC1C,MAAM,QAAQ,GAAG,CAAC,OAA+B,EAAE,EAAE,CAC1D,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;AAD/C,QAAA,QAAQ,YACuC"}
@@ -1,5 +1,5 @@
1
1
  import { NextHandleFunction } from "connect";
2
- import { Express } from "express";
2
+ import { Express, Request } from "express";
3
3
  import fileUpload from "express-fileupload";
4
4
  import { Logger } from "winston";
5
5
  import { Method } from "./method";
@@ -24,7 +24,8 @@ export interface ServerConfig {
24
24
  export interface AppConfig {
25
25
  app: Express;
26
26
  }
27
- export declare type InputSources = Record<Method, ("query" | "body" | "files")[]>;
27
+ declare type InputSource = keyof Pick<Request, "query" | "body" | "files" | "params">;
28
+ export declare type InputSources = Record<Method, InputSource[]>;
28
29
  export interface CommonConfig {
29
30
  cors: boolean;
30
31
  errorHandler?: ResultHandlerDefinition<any, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"config-type.js","sourceRoot":"","sources":["../src/config-type.ts"],"names":[],"mappings":";;;AAOa,QAAA,YAAY,GAAG;IAC1B,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;CACZ,CAAC;AAmDK,MAAM,YAAY,GAAG,CAG1B,MAAS,EACN,EAAE,CAAC,MAAM,CAAC;AAJF,QAAA,YAAY,gBAIV"}
1
+ {"version":3,"file":"config-type.js","sourceRoot":"","sources":["../src/config-type.ts"],"names":[],"mappings":";;;AAOa,QAAA,YAAY,GAAG;IAC1B,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;CACZ,CAAC;AAqDK,MAAM,YAAY,GAAG,CAG1B,MAAS,EACN,EAAE,CAAC,MAAM,CAAC;AAJF,QAAA,YAAY,gBAIV"}
@@ -3,7 +3,7 @@ import { Logger } from "winston";
3
3
  import { z } from "zod";
4
4
  import { ApiResponse } from "./api-response";
5
5
  import { CommonConfig } from "./config-type";
6
- import { IOSchema, Merge, OutputMarker, ReplaceMarkerInShape } from "./helpers";
6
+ import { IOSchema, Merge, OutputMarker, ReplaceMarkerInShape } from "./common-helpers";
7
7
  import { Method, MethodsDefinition } from "./method";
8
8
  import { MiddlewareDefinition } from "./middleware";
9
9
  import { ResultHandlerDefinition } from "./result-handler";
package/dist/endpoint.js CHANGED
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.Endpoint = exports.AbstractEndpoint = void 0;
10
10
  const zod_1 = require("zod");
11
11
  const errors_1 = require("./errors");
12
- const helpers_1 = require("./helpers");
12
+ const common_helpers_1 = require("./common-helpers");
13
13
  const result_handler_1 = require("./result-handler");
14
14
  class AbstractEndpoint {
15
15
  }
@@ -22,7 +22,7 @@ class Endpoint extends AbstractEndpoint {
22
22
  this.methods = [];
23
23
  this.middlewares = [];
24
24
  this.middlewares = middlewares;
25
- this.inputSchema = (0, helpers_1.combineEndpointAndMiddlewareInputSchemas)(inputSchema, middlewares);
25
+ this.inputSchema = (0, common_helpers_1.combineEndpointAndMiddlewareInputSchemas)(inputSchema, middlewares);
26
26
  this.mimeTypes = mimeTypes;
27
27
  this.outputSchema = outputSchema;
28
28
  this.handler = handler;
@@ -71,7 +71,7 @@ class Endpoint extends AbstractEndpoint {
71
71
  if (request.method === "OPTIONS") {
72
72
  return response.end();
73
73
  }
74
- const initialInput = (0, helpers_1.getInitialInput)(request, config.inputSources);
74
+ const initialInput = (0, common_helpers_1.getInitialInput)(request, config.inputSources);
75
75
  try {
76
76
  const { input, options, isStreamClosed } = await __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_runMiddlewares).call(this, {
77
77
  input: { ...initialInput },
@@ -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":";;;;;;;;;AAEA,6BAAwB;AAGxB,qCAA8C;AAC9C,qDAO0B;AAG1B,qDAA8E;AAQ9E,MAAsB,gBAAgB;CAgBrC;AAhBD,4CAgBC;AA6DD,kCAAkC;AAClC,MAAa,QAQX,SAAQ,gBAAgB;IAcxB,YAAY,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,OAAO,EACP,aAAa,EACb,WAAW,EACX,SAAS,EACT,GAAG,IAAI,EACwC;QAC/C,KAAK,EAAE,CAAC;;QAtBS,YAAO,GAAQ,EAAE,CAAC;QAClB,gBAAW,GAA0C,EAAE,CAAC;QAsBzE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAA,yDAAwC,EACzD,WAAW,EACX,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,SAAS,IAAI,IAAI,EAAE;YACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;SAC7B;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;IACH,CAAC;IAEe,cAAc;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEe,UAAU;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEe,cAAc;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEe,eAAe;QAC7B,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEe,yBAAyB;QACvC,OAAO,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;IAC1E,CAAC;IAEe,yBAAyB;QACvC,OAAO,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC;IACzD,CAAC;IAEe,iBAAiB;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEe,oBAAoB;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;IAC7E,CAAC;IAEe,oBAAoB;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC;IAC5D,CAAC;IAyHe,KAAK,CAAC,OAAO,CAAC,EAC5B,OAAO,EACP,QAAQ,EACR,MAAM,EACN,MAAM,GAMP;QACC,IAAI,MAAW,CAAC;QAChB,IAAI,KAAK,GAAiB,IAAI,CAAC;QAC/B,IAAI,MAAM,CAAC,IAAI,EAAE;YACf,uBAAA,IAAI,uDAAkB,MAAtB,IAAI,EAAmB,QAAQ,CAAC,CAAC;SAClC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE;YAChC,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC;SACvB;QACD,MAAM,YAAY,GAAG,IAAA,gCAAe,EAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QACnE,IAAI;YACF,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,uBAAA,IAAI,qDAAgB,MAApB,IAAI,EAAiB;gBACpE,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE;gBAC1B,OAAO;gBACP,QAAQ;gBACR,MAAM;aACP,CAAC,CAAC;YACH,IAAI,cAAc,EAAE;gBAClB,OAAO;aACR;YACD,MAAM,GAAG,uBAAA,IAAI,kDAAa,MAAjB,IAAI,EACX,MAAM,uBAAA,IAAI,yDAAoB,MAAxB,IAAI,EAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAC3D,CAAC;SACH;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,YAAY,KAAK,EAAE;gBACtB,KAAK,GAAG,CAAC,CAAC;aACX;SACF;QACD,MAAM,uBAAA,IAAI,mDAAc,MAAlB,IAAI,EAAe;YACvB,YAAY;YACZ,MAAM;YACN,OAAO;YACP,QAAQ;YACR,KAAK;YACL,MAAM;SACP,CAAC,CAAC;IACL,CAAC;CACF;AA5PD,4BA4PC;sGAtKmB,QAAkB;IAClC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO;SAC/B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;SACrC,MAAM,CAAC,SAAS,CAAC;SACjB,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,QAAQ,CAAC,GAAG,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;IACjD,QAAQ,CAAC,GAAG,CAAC,8BAA8B,EAAE,aAAa,CAAC,CAAC;IAC5D,QAAQ,CAAC,GAAG,CAAC,8BAA8B,EAAE,cAAc,CAAC,CAAC;AAC/D,CAAC,yDAEY,MAAW;IACtB,IAAI;QACF,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACxC;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,YAAY,OAAC,CAAC,QAAQ,EAAE;YAC3B,MAAM,IAAI,OAAC,CAAC,QAAQ,CAAC;gBACnB;oBACE,OAAO,EAAE,gBAAgB;oBACzB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,QAAQ,CAAC;iBACjB;gBACD,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC1B,GAAG,KAAK;oBACR,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;iBACxD,CAAC,CAAC;aACJ,CAAC,CAAC;SACJ;QACD,MAAM,CAAC,CAAC;KACT;AACH,CAAC,6BAED,KAAK,mCAAiB,EACpB,KAAK,EACL,OAAO,EACP,QAAQ,EACR,MAAM,GAMP;IACC,MAAM,OAAO,GAAQ,EAAE,CAAC;IACxB,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE;QAClC,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,2CAA2C;QAC5F,MAAM,CAAC,MAAM,CACX,OAAO,EACP,MAAM,GAAG,CAAC,UAAU,CAAC;YACnB,KAAK;YACL,OAAO;YACP,OAAO;YACP,QAAQ;YACR,MAAM;SACP,CAAC,CACH,CAAC;QACF,cAAc,GAAG,eAAe,IAAI,QAAQ,IAAI,QAAQ,CAAC,aAAa,CAAC;QACvE,IAAI,cAAc,EAAE;YAClB,MAAM,CAAC,IAAI,CACT,kBAAkB,GAAG,CAAC,UAAU,CAAC,IAAI,8CAA8C,EACnF,OAAO,CACR,CAAC;YACF,MAAM;SACP;KACF;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;AAC5C,CAAC,iCAED,KAAK,uCAAqB,EACxB,KAAK,EACL,OAAO,EACP,MAAM,GAKP;IACC,OAAO,IAAI,CAAC,OAAO,CAAC;QAClB,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;QACpC,OAAO;QACP,MAAM;KACP,CAAC,CAAC;AACL,CAAC,2BAED,KAAK,iCAAe,EAClB,KAAK,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,MAAM,GAQP;IACC,IAAI;QACF,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YAC/B,KAAK;YACL,MAAM;YACN,OAAO;YACP,QAAQ;YACR,MAAM;YACN,KAAK,EAAE,YAAY;SACpB,CAAC,CAAC;KACJ;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,YAAY,KAAK,EAAE;YACtB,IAAA,kCAAiB,EAAC;gBAChB,MAAM;gBACN,QAAQ;gBACR,KAAK,EAAE,IAAI,2BAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC;aAChD,CAAC,CAAC;SACJ;KACF;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import { ApiResponse } from "./api-response";
3
3
  import { Endpoint, Handler } from "./endpoint";
4
- import { FlatObject, IOSchema, Merge } from "./helpers";
4
+ import { FlatObject, IOSchema, Merge } from "./common-helpers";
5
5
  import { Method, MethodsDefinition } from "./method";
6
6
  import { MiddlewareDefinition } from "./middleware";
7
7
  import { ResultHandlerDefinition } from "./result-handler";
@@ -22,7 +22,7 @@ export declare class EndpointsFactory<MwIN, MwOUT, POS extends ApiResponse, NEG
22
22
  }
23
23
  export declare const defaultEndpointsFactory: EndpointsFactory<unknown, unknown, ApiResponse<z.ZodObject<{
24
24
  status: z.ZodLiteral<"success">;
25
- data: import("./helpers").OutputMarker;
25
+ data: import("./common-helpers").OutputMarker;
26
26
  }, "strip", z.ZodTypeAny, {
27
27
  status: "success";
28
28
  data: {
@@ -40,10 +40,10 @@ export declare const defaultEndpointsFactory: EndpointsFactory<unknown, unknown,
40
40
  }> & {
41
41
  _def: z.ZodObjectDef<{
42
42
  status: z.ZodLiteral<"success">;
43
- data: import("./helpers").OutputMarker;
43
+ data: import("./common-helpers").OutputMarker;
44
44
  }, "strip", z.ZodTypeAny> & import("./metadata").MetaDef<z.ZodObject<{
45
45
  status: z.ZodLiteral<"success">;
46
- data: import("./helpers").OutputMarker;
46
+ data: import("./common-helpers").OutputMarker;
47
47
  }, "strip", z.ZodTypeAny, {
48
48
  status: "success";
49
49
  data: {
@@ -68,7 +68,7 @@ export declare const defaultEndpointsFactory: EndpointsFactory<unknown, unknown,
68
68
  };
69
69
  }) => z.ZodObject<{
70
70
  status: z.ZodLiteral<"success">;
71
- data: import("./helpers").OutputMarker;
71
+ data: import("./common-helpers").OutputMarker;
72
72
  }, "strip", z.ZodTypeAny, {
73
73
  status: "success";
74
74
  data: {
@@ -1,5 +1,5 @@
1
1
  import { ParseReturnType, ZodType, ZodTypeDef, ParseInput } from "zod";
2
- import { ErrMessage } from "./helpers";
2
+ import { ErrMessage } from "./common-helpers";
3
3
  declare const zodFileKind = "ZodFile";
4
4
  declare type ZodFileCheck = {
5
5
  kind: "binary";
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZodFile = void 0;
4
4
  const zod_1 = require("zod");
5
- const helpers_1 = require("./helpers");
5
+ const common_helpers_1 = require("./common-helpers");
6
6
  const zodFileKind = "ZodFile";
7
7
  const base64Regex = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;
8
8
  class ZodFile extends zod_1.ZodType {
@@ -10,11 +10,11 @@ class ZodFile extends zod_1.ZodType {
10
10
  super(...arguments);
11
11
  this.binary = (message) => new ZodFile({
12
12
  ...this._def,
13
- checks: [...this._def.checks, { kind: "binary", ...(0, helpers_1.errToObj)(message) }],
13
+ checks: [...this._def.checks, { kind: "binary", ...(0, common_helpers_1.errToObj)(message) }],
14
14
  });
15
15
  this.base64 = (message) => new ZodFile({
16
16
  ...this._def,
17
- checks: [...this._def.checks, { kind: "base64", ...(0, helpers_1.errToObj)(message) }],
17
+ checks: [...this._def.checks, { kind: "base64", ...(0, common_helpers_1.errToObj)(message) }],
18
18
  });
19
19
  }
20
20
  _parse(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"file-schema.js","sourceRoot":"","sources":["../src/file-schema.ts"],"names":[],"mappings":";;;AAAA,6BASa;AACb,uCAAiD;AAEjD,MAAM,WAAW,GAAG,SAAS,CAAC;AAiB9B,MAAM,WAAW,GACf,kEAAkE,CAAC;AAErE,MAAa,OAAQ,SAAQ,aAA2B;IAAxD;;QA2BE,WAAM,GAAG,CAAC,OAAoB,EAAE,EAAE,CAChC,IAAI,OAAO,CAAC;YACV,GAAG,IAAI,CAAC,IAAI;YACZ,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAA,kBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC;SACxE,CAAC,CAAC;QAEL,WAAM,GAAG,CAAC,OAAoB,EAAE,EAAE,CAChC,IAAI,OAAO,CAAC;YACV,GAAG,IAAI,CAAC,IAAI;YACZ,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAA,kBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC;SACxE,CAAC,CAAC;IAeP,CAAC;IAnDC,MAAM,CAAC,KAAiB;QACtB,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxD,IAAI,GAAG,CAAC,UAAU,KAAK,mBAAa,CAAC,MAAM,EAAE;YAC3C,IAAA,uBAAiB,EAAC,GAAG,EAAE;gBACrB,IAAI,EAAE,kBAAY,CAAC,YAAY;gBAC/B,QAAQ,EAAE,mBAAa,CAAC,MAAM;gBAC9B,QAAQ,EAAE,GAAG,CAAC,UAAU;aACzB,CAAC,CAAC;YACH,OAAO,aAAO,CAAC;SAChB;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACpC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBAC/B,IAAA,uBAAiB,EAAC,GAAG,EAAE;wBACrB,IAAI,EAAE,kBAAY,CAAC,MAAM;wBACzB,OAAO,EAAE,KAAK,CAAC,OAAO;qBACvB,CAAC,CAAC;oBACH,MAAM,CAAC,KAAK,EAAE,CAAC;iBAChB;aACF;SACF;QAED,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IACnD,CAAC;IAcD,IAAI,QAAQ;QACV,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACrE,CAAC;;AA7CH,0BAoDC;AALQ,cAAM,GAAG,GAAG,EAAE,CACnB,IAAI,OAAO,CAAC;IACV,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,WAAW;CACtB,CAAC,CAAC"}
1
+ {"version":3,"file":"file-schema.js","sourceRoot":"","sources":["../src/file-schema.ts"],"names":[],"mappings":";;;AAAA,6BASa;AACb,qDAAwD;AAExD,MAAM,WAAW,GAAG,SAAS,CAAC;AAiB9B,MAAM,WAAW,GACf,kEAAkE,CAAC;AAErE,MAAa,OAAQ,SAAQ,aAA2B;IAAxD;;QA2BE,WAAM,GAAG,CAAC,OAAoB,EAAE,EAAE,CAChC,IAAI,OAAO,CAAC;YACV,GAAG,IAAI,CAAC,IAAI;YACZ,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAA,yBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC;SACxE,CAAC,CAAC;QAEL,WAAM,GAAG,CAAC,OAAoB,EAAE,EAAE,CAChC,IAAI,OAAO,CAAC;YACV,GAAG,IAAI,CAAC,IAAI;YACZ,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAA,yBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC;SACxE,CAAC,CAAC;IAeP,CAAC;IAnDC,MAAM,CAAC,KAAiB;QACtB,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxD,IAAI,GAAG,CAAC,UAAU,KAAK,mBAAa,CAAC,MAAM,EAAE;YAC3C,IAAA,uBAAiB,EAAC,GAAG,EAAE;gBACrB,IAAI,EAAE,kBAAY,CAAC,YAAY;gBAC/B,QAAQ,EAAE,mBAAa,CAAC,MAAM;gBAC9B,QAAQ,EAAE,GAAG,CAAC,UAAU;aACzB,CAAC,CAAC;YACH,OAAO,aAAO,CAAC;SAChB;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACpC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBAC/B,IAAA,uBAAiB,EAAC,GAAG,EAAE;wBACrB,IAAI,EAAE,kBAAY,CAAC,MAAM;wBACzB,OAAO,EAAE,KAAK,CAAC,OAAO;qBACvB,CAAC,CAAC;oBACH,MAAM,CAAC,KAAK,EAAE,CAAC;iBAChB;aACF;SACF;QAED,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IACnD,CAAC;IAcD,IAAI,QAAQ;QACV,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACrE,CAAC;;AA7CH,0BAoDC;AALQ,cAAM,GAAG,GAAG,EAAE,CACnB,IAAI,OAAO,CAAC;IACV,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,WAAW;CACtB,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ export { createConfig, LoggerConfig } from "./config-type";
2
2
  export { AbstractEndpoint, EndpointInput, EndpointOutput, EndpointResponse, } from "./endpoint";
3
3
  export { Method } from "./method";
4
4
  export { EndpointsFactory, defaultEndpointsFactory } from "./endpoints-factory";
5
- export { IOSchema, FlatObject, markOutput } from "./helpers";
5
+ export { IOSchema, FlatObject, markOutput } from "./common-helpers";
6
6
  export { createApiResponse } from "./api-response";
7
7
  export { createLogger } from "./logger";
8
8
  export { createMiddleware } from "./middleware";
package/dist/index.js CHANGED
@@ -30,8 +30,8 @@ Object.defineProperty(exports, "AbstractEndpoint", { enumerable: true, get: func
30
30
  var endpoints_factory_1 = require("./endpoints-factory");
31
31
  Object.defineProperty(exports, "EndpointsFactory", { enumerable: true, get: function () { return endpoints_factory_1.EndpointsFactory; } });
32
32
  Object.defineProperty(exports, "defaultEndpointsFactory", { enumerable: true, get: function () { return endpoints_factory_1.defaultEndpointsFactory; } });
33
- var helpers_1 = require("./helpers");
34
- Object.defineProperty(exports, "markOutput", { enumerable: true, get: function () { return helpers_1.markOutput; } });
33
+ var common_helpers_1 = require("./common-helpers");
34
+ Object.defineProperty(exports, "markOutput", { enumerable: true, get: function () { return common_helpers_1.markOutput; } });
35
35
  var api_response_1 = require("./api-response");
36
36
  Object.defineProperty(exports, "createApiResponse", { enumerable: true, get: function () { return api_response_1.createApiResponse; } });
37
37
  var logger_1 = require("./logger");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA2D;AAAlD,2GAAA,YAAY,OAAA;AACrB,uCAKoB;AAJlB,4GAAA,gBAAgB,OAAA;AAMlB,yDAAgF;AAAvE,qHAAA,gBAAgB,OAAA;AAAE,4HAAA,uBAAuB,OAAA;AAClD,qCAA6D;AAA9B,qGAAA,UAAU,OAAA;AACzC,+CAAmD;AAA1C,iHAAA,iBAAiB,OAAA;AAC1B,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AACrB,2CAAgD;AAAvC,8GAAA,gBAAgB,OAAA;AACzB,mDAA6E;AAApE,qHAAA,mBAAmB,OAAA;AAAE,sHAAA,oBAAoB,OAAA;AAClD,qCAAqD;AAAnC,0GAAA,eAAe,OAAA;AACjC,mCAAuD;AAA9C,sGAAA,YAAY,OAAA;AAAE,uGAAA,aAAa,OAAA;AACpC,uCAAqC;AAA5B,mGAAA,OAAO,OAAA;AAChB,mCAA4E;AAAnE,sGAAA,YAAY,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AAAE,sGAAA,YAAY,OAAA;AACzD,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAEjB,gDAAkC;AAGR,cAAC;AAF3B,8DAA0C;AAEjC,0BAFF,qBAAe,CAEE"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA2D;AAAlD,2GAAA,YAAY,OAAA;AACrB,uCAKoB;AAJlB,4GAAA,gBAAgB,OAAA;AAMlB,yDAAgF;AAAvE,qHAAA,gBAAgB,OAAA;AAAE,4HAAA,uBAAuB,OAAA;AAClD,mDAAoE;AAArC,4GAAA,UAAU,OAAA;AACzC,+CAAmD;AAA1C,iHAAA,iBAAiB,OAAA;AAC1B,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AACrB,2CAAgD;AAAvC,8GAAA,gBAAgB,OAAA;AACzB,mDAA6E;AAApE,qHAAA,mBAAmB,OAAA;AAAE,sHAAA,oBAAoB,OAAA;AAClD,qCAAqD;AAAnC,0GAAA,eAAe,OAAA;AACjC,mCAAuD;AAA9C,sGAAA,YAAY,OAAA;AAAE,uGAAA,aAAa,OAAA;AACpC,uCAAqC;AAA5B,mGAAA,OAAO,OAAA;AAChB,mCAA4E;AAAnE,sGAAA,YAAY,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AAAE,sGAAA,YAAY,OAAA;AACzD,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAEjB,gDAAkC;AAGR,cAAC;AAF3B,8DAA0C;AAEjC,0BAFF,qBAAe,CAEE"}
package/dist/metadata.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.copyMeta = exports.getMeta = exports.hasMeta = exports.withMeta = exports.metaProp = void 0;
4
- const helpers_1 = require("./helpers");
4
+ const common_helpers_1 = require("./common-helpers");
5
5
  const ramda_1 = require("ramda");
6
6
  exports.metaProp = "expressZodApiMeta";
7
7
  const withMeta = (schema) => {
@@ -41,7 +41,7 @@ const copyMeta = (src, dest) => {
41
41
  }
42
42
  dest = (0, exports.withMeta)(dest);
43
43
  const def = dest._def;
44
- const examplesCombinations = (0, helpers_1.combinations)(def[exports.metaProp].examples, src._def[exports.metaProp].examples);
44
+ const examplesCombinations = (0, common_helpers_1.combinations)(def[exports.metaProp].examples, src._def[exports.metaProp].examples);
45
45
  // general deep merge except examples
46
46
  def[exports.metaProp] = (0, ramda_1.mergeDeepRight)({ ...def[exports.metaProp], examples: [] }, { ...src._def[exports.metaProp], examples: [] });
47
47
  if (examplesCombinations.type === "single") {
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":";;;AAAA,qDAAgD;AAEhD,iCAAuC;AAE1B,QAAA,QAAQ,GAAG,mBAAmB,CAAC;AAqBrC,MAAM,QAAQ,GAAG,CAAyB,MAAS,EAAE,EAAE;IAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAkB,CAAC;IACtC,GAAG,CAAC,gBAAQ,CAAC,GAAG,GAAG,CAAC,gBAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAClD,IAAI,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE;QAC1B,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAC9B,OAAO,EAAE;gBACP,GAAG,EAAE,GAAqB,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;oBACrC,GAAG,CAAC,gBAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACnC,OAAO,MAAqB,CAAC;gBAC/B,CAAC;aACF;SACF,CAAC,CAAC;KACJ;IACD,OAAO,MAAqB,CAAC;AAC/B,CAAC,CAAC;AAdW,QAAA,QAAQ,YAcnB;AAEK,MAAM,OAAO,GAAG,CACrB,MAAS,EACc,EAAE;IACzB,IAAI,CAAC,CAAC,gBAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;QAC9B,OAAO,KAAK,CAAC;KACd;IACD,OAAO,CACL,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAQ,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAQ,CAAC,KAAK,IAAI,CAC5E,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,OAAO,WASlB;AAEF,SAAgB,OAAO,CACrB,MAAS,EACT,IAAO;IAEP,IAAI,CAAC,IAAA,eAAO,EAAC,MAAM,CAAC,EAAE;QACpB,OAAO,SAAS,CAAC;KAClB;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAkB,CAAC;IACtC,OAAO,IAAI,IAAI,GAAG,CAAC,gBAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AATD,0BASC;AAEM,MAAM,QAAQ,GAAG,CACtB,GAAM,EACN,IAAO,EACU,EAAE;IACnB,IAAI,CAAC,IAAA,eAAO,EAAC,GAAG,CAAC,EAAE;QACjB,OAAO,IAAI,CAAC;KACb;IACD,IAAI,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;IACtB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAkB,CAAC;IACpC,MAAM,oBAAoB,GAAG,IAAA,6BAAY,EACvC,GAAG,CAAC,gBAAQ,CAAC,CAAC,QAAQ,EACtB,GAAG,CAAC,IAAI,CAAC,gBAAQ,CAAC,CAAC,QAAQ,CAC5B,CAAC;IACF,qCAAqC;IACrC,GAAG,CAAC,gBAAQ,CAAC,GAAG,IAAA,sBAAc,EAC5B,EAAE,GAAG,GAAG,CAAC,gBAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAClC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,gBAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CACxC,CAAC;IACF,IAAI,oBAAoB,CAAC,IAAI,KAAK,QAAQ,EAAE;QAC1C,GAAG,CAAC,gBAAQ,CAAC,CAAC,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC;KACrD;SAAM;QACL,KAAK,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,oBAAoB,CAAC,KAAK,EAAE;YAClE,GAAG,CAAC,gBAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CACzB,IAAA,sBAAc,EAAC,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,CACtD,CAAC;SACH;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AA5BW,QAAA,QAAQ,YA4BnB"}
@@ -1,7 +1,7 @@
1
1
  import { Request, Response } from "express";
2
2
  import { Logger } from "winston";
3
3
  import { z } from "zod";
4
- import { FlatObject, IOSchema } from "./helpers";
4
+ import { FlatObject, IOSchema } from "./common-helpers";
5
5
  interface MiddlewareParams<IN, OPT> {
6
6
  input: IN;
7
7
  options: OPT;
@@ -0,0 +1,24 @@
1
+ import { ParameterObject, SchemaObject } from "openapi3-ts";
2
+ import { RequestBodyObject, ResponseObject } from "openapi3-ts/src/model/OpenApi";
3
+ import { z } from "zod";
4
+ import { AbstractEndpoint } from "./endpoint";
5
+ import { Method } from "./method";
6
+ declare type DepictHelper<T extends z.ZodType<any>> = (params: {
7
+ schema: T;
8
+ initial?: SchemaObject;
9
+ isResponse: boolean;
10
+ }) => SchemaObject;
11
+ interface ReqResDepictHelperCommonProps {
12
+ method: Method;
13
+ path: string;
14
+ endpoint: AbstractEndpoint;
15
+ }
16
+ export declare const depictRequestParams: ({ path, method, endpoint, }: ReqResDepictHelperCommonProps) => ParameterObject[];
17
+ export declare const depictSchema: DepictHelper<z.ZodTypeAny>;
18
+ export declare const excludeParamsFromDepiction: (depicted: SchemaObject, pathParams: string[]) => SchemaObject;
19
+ export declare const depictResponse: ({ method, path, description, endpoint, isPositive, }: ReqResDepictHelperCommonProps & {
20
+ description: string;
21
+ isPositive: boolean;
22
+ }) => ResponseObject;
23
+ export declare const depictRequest: ({ method, path, endpoint, }: ReqResDepictHelperCommonProps) => RequestBodyObject;
24
+ export {};