express-zod-api 7.4.1 → 7.6.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 +55 -0
- package/README.md +47 -21
- package/dist/common-helpers.d.ts +2 -0
- package/dist/common-helpers.js +7 -2
- package/dist/common-helpers.js.map +1 -1
- package/dist/config-type.d.ts +9 -1
- package/dist/config-type.js.map +1 -1
- package/dist/endpoint.js +32 -14
- package/dist/endpoint.js.map +1 -1
- package/dist/endpoints-factory.d.ts +13 -3
- package/dist/endpoints-factory.js +5 -4
- package/dist/endpoints-factory.js.map +1 -1
- package/dist/metadata.d.ts +8 -1
- package/dist/metadata.js.map +1 -1
- package/dist/middleware.d.ts +6 -3
- package/dist/middleware.js +4 -1
- package/dist/middleware.js.map +1 -1
- package/dist/open-api-helpers.d.ts +5 -1
- package/dist/result-handler.d.ts +10 -2
- package/dist/routing.d.ts +2 -2
- package/dist/routing.js +5 -5
- package/dist/routing.js.map +1 -1
- package/dist-esm/common-helpers.js +5 -1
- package/dist-esm/common-helpers.js.map +1 -1
- package/dist-esm/config-type.js.map +1 -1
- package/dist-esm/endpoint.js +33 -15
- package/dist-esm/endpoint.js.map +1 -1
- package/dist-esm/endpoints-factory.js +5 -4
- package/dist-esm/endpoints-factory.js.map +1 -1
- package/dist-esm/metadata.js.map +1 -1
- package/dist-esm/middleware.js +4 -1
- package/dist-esm/middleware.js.map +1 -1
- package/dist-esm/package.json +1 -1
- package/dist-esm/routing.js +5 -5
- package/dist-esm/routing.js.map +1 -1
- package/package.json +17 -17
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,61 @@
|
|
|
2
2
|
|
|
3
3
|
## Version 7
|
|
4
4
|
|
|
5
|
+
### v7.6.1
|
|
6
|
+
|
|
7
|
+
- Fixed issue #514: native express middlewares did not run for `OPTIONS` requests.
|
|
8
|
+
- Using `.addExpressMiddleware()` or its alias `.use()` of `EndpointsFactory` it did not work for requests having
|
|
9
|
+
`OPTIONS` method.
|
|
10
|
+
- This version introduces the difference between a proprietary and native express middlewares.
|
|
11
|
+
- Please ensure usage of the `.addMiddleware()` method along with `createMiddleware()`.
|
|
12
|
+
- For the backward compatibility `.addMiddleware()` temporary also accepts the same arguments that
|
|
13
|
+
`createMiddleware()` does, however this is deprecated and will be removed later.
|
|
14
|
+
- Only native express middlewares are executed for `OPTIONS` request.
|
|
15
|
+
- It makes it possible to use `cors` package (express middleware), which is described in the
|
|
16
|
+
[Documentation](README.md#using-native-express-middlewares).
|
|
17
|
+
- **Please note:** If using both `cors` package (express middleware) and `cors` configuration option, the
|
|
18
|
+
configuration option sets CORS headers first, so the middleware can override them if needed.
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
import { defaultEndpointsFactory } from "express-zod-api";
|
|
22
|
+
import cors from "cors";
|
|
23
|
+
|
|
24
|
+
const myFactory = defaultEndpointsFactory.addExpressMiddleware(
|
|
25
|
+
cors({ credentials: true })
|
|
26
|
+
);
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### v7.6.0
|
|
30
|
+
|
|
31
|
+
- `zod` version is 3.17.9.
|
|
32
|
+
- Some new public methods have been introduced, so I'm changing the minor version.
|
|
33
|
+
|
|
34
|
+
### v7.5.0
|
|
35
|
+
|
|
36
|
+
- Feature #503: configurable CORS headers.
|
|
37
|
+
- The configuration options `cors` now accepts a function that returns custom headers.
|
|
38
|
+
- The function may be asynchronous.
|
|
39
|
+
- Setting `cors: true` implies the default headers.
|
|
40
|
+
|
|
41
|
+
```typescript
|
|
42
|
+
import { createConfig } from "express-zod-api";
|
|
43
|
+
|
|
44
|
+
const config = createConfig({
|
|
45
|
+
// ...
|
|
46
|
+
cors: ({ defaultHeaders, request, endpoint, logger }) => ({
|
|
47
|
+
...defaultHeaders,
|
|
48
|
+
"Access-Control-Max-Age": "5000",
|
|
49
|
+
}),
|
|
50
|
+
});
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
```yaml
|
|
54
|
+
# the default headers are:
|
|
55
|
+
Access-Control-Allow-Origin: *
|
|
56
|
+
Access-Control-Allow-Methods: ..., OPTIONS # endpoint methods + OPTIONS
|
|
57
|
+
Access-Control-Allow-Headers: content-type
|
|
58
|
+
```
|
|
59
|
+
|
|
5
60
|
### v7.4.1
|
|
6
61
|
|
|
7
62
|
- There was an issue with logger when calling its methods without a message.
|
package/README.md
CHANGED
|
@@ -26,25 +26,26 @@ Start your API server with I/O schema validation and custom middlewares in minut
|
|
|
26
26
|
6. [Start your server](#start-your-server)
|
|
27
27
|
7. [Try it](#try-it)
|
|
28
28
|
4. [Fascinating features](#fascinating-features)
|
|
29
|
-
1. [
|
|
30
|
-
2. [
|
|
31
|
-
3. [
|
|
32
|
-
4. [
|
|
33
|
-
5. [
|
|
34
|
-
6. [
|
|
35
|
-
7. [
|
|
36
|
-
8. [
|
|
37
|
-
9. [
|
|
38
|
-
10. [
|
|
39
|
-
11. [
|
|
40
|
-
12. [
|
|
41
|
-
13. [
|
|
42
|
-
14. [
|
|
43
|
-
15. [
|
|
44
|
-
16. [
|
|
45
|
-
17. [Enabling
|
|
46
|
-
18. [
|
|
47
|
-
19. [
|
|
29
|
+
1. [Cross-Origin Resource Sharing](#cross-origin-resource-sharing) (CORS)
|
|
30
|
+
2. [Middlewares](#middlewares)
|
|
31
|
+
3. [Options](#options)
|
|
32
|
+
4. [Refinements](#refinements)
|
|
33
|
+
5. [Transformations](#transformations)
|
|
34
|
+
6. [Dealing with dates](#dealing-with-dates)
|
|
35
|
+
7. [Route path params](#route-path-params)
|
|
36
|
+
8. [Response customization](#response-customization)
|
|
37
|
+
9. [Non-object response](#non-object-response) including file downloads
|
|
38
|
+
10. [Using native express middlewares](#using-native-express-middlewares)
|
|
39
|
+
11. [File uploads](#file-uploads)
|
|
40
|
+
12. [Customizing logger](#customizing-logger)
|
|
41
|
+
13. [Connect to your own express app](#connect-to-your-own-express-app)
|
|
42
|
+
14. [Multiple schemas for one route](#multiple-schemas-for-one-route)
|
|
43
|
+
15. [Serving static files](#serving-static-files)
|
|
44
|
+
16. [Customizing input sources](#customizing-input-sources)
|
|
45
|
+
17. [Enabling compression](#enabling-compression)
|
|
46
|
+
18. [Enabling HTTPS](#enabling-https)
|
|
47
|
+
19. [Generating a Frontend Client](#generating-a-frontend-client)
|
|
48
|
+
20. [Creating a documentation](#creating-a-documentation)
|
|
48
49
|
5. [Additional hints](#additional-hints)
|
|
49
50
|
1. [How to test endpoints](#how-to-test-endpoints)
|
|
50
51
|
2. [Excessive properties in endpoint output](#excessive-properties-in-endpoint-output)
|
|
@@ -209,6 +210,31 @@ You should receive the following response:
|
|
|
209
210
|
|
|
210
211
|
# Fascinating features
|
|
211
212
|
|
|
213
|
+
## Cross-Origin Resource Sharing
|
|
214
|
+
|
|
215
|
+
You can enable your API for other domains using the corresponding configuration option `cors`.
|
|
216
|
+
It's _not optional_ to draw your attention to making the appropriate decision, however, it's enabled in the
|
|
217
|
+
[Quick start example](#set-up-config) above, assuming that in most cases you will want to enable this feature.
|
|
218
|
+
See [MDN article](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) for more information.
|
|
219
|
+
|
|
220
|
+
In addition to being a boolean, `cors` can also be assigned a function that provides custom headers. That function
|
|
221
|
+
has several parameters and can be asynchronous.
|
|
222
|
+
|
|
223
|
+
```typescript
|
|
224
|
+
import { createConfig } from "express-zod-api";
|
|
225
|
+
|
|
226
|
+
const config = createConfig({
|
|
227
|
+
// ... other options
|
|
228
|
+
cors: ({ defaultHeaders, request, endpoint, logger }) => ({
|
|
229
|
+
...defaultHeaders,
|
|
230
|
+
"Access-Control-Max-Age": "5000",
|
|
231
|
+
}),
|
|
232
|
+
});
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
Please note: If you only want to send specific headers on requests to a specific endpoint, consider the
|
|
236
|
+
[Middlewares](#middlewares) or [response customization approach](#response-customization).
|
|
237
|
+
|
|
212
238
|
## Middlewares
|
|
213
239
|
|
|
214
240
|
Middleware can authenticate using input or `request` headers, and can provide endpoint handlers with `options`.
|
|
@@ -247,7 +273,7 @@ import { createMiddleware, createHttpError, z } from "express-zod-api";
|
|
|
247
273
|
|
|
248
274
|
const authMiddleware = createMiddleware({
|
|
249
275
|
input: z.object({
|
|
250
|
-
key: z.string().
|
|
276
|
+
key: z.string().min(1),
|
|
251
277
|
}),
|
|
252
278
|
middleware: async ({ input: { key }, request, logger }) => {
|
|
253
279
|
logger.debug("Checking the key and token");
|
|
@@ -299,7 +325,7 @@ const nicknameConstraintMiddleware = createMiddleware({
|
|
|
299
325
|
input: z.object({
|
|
300
326
|
nickname: z
|
|
301
327
|
.string()
|
|
302
|
-
.
|
|
328
|
+
.min(1)
|
|
303
329
|
.refine(
|
|
304
330
|
(nick) => !/^\d.*$/.test(nick),
|
|
305
331
|
"Nickname cannot start with a digit"
|
package/dist/common-helpers.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Request } from "express";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { CommonConfig, InputSources, LoggerConfig } from "./config-type";
|
|
4
|
+
import { Method } from "./method";
|
|
4
5
|
import { AnyMiddlewareDef } from "./middleware";
|
|
5
6
|
export declare type FlatObject = Record<string, any>;
|
|
6
7
|
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>>;
|
|
@@ -14,6 +15,7 @@ export declare type ProbableIntersection<A extends IOSchema<"strip"> | null, B e
|
|
|
14
15
|
*/
|
|
15
16
|
export declare const getFinalEndpointInputSchema: <MIN extends IOSchema<"strip"> | null, IN extends IOSchema<any>>(middlewares: AnyMiddlewareDef[], input: IN) => ProbableIntersection<MIN, IN>;
|
|
16
17
|
export declare const defaultInputSources: InputSources;
|
|
18
|
+
export declare const getActualMethod: (request: Request) => Method | "options";
|
|
17
19
|
export declare function getInitialInput(request: Request, inputAssignment: CommonConfig["inputSources"]): any;
|
|
18
20
|
export declare function isLoggerConfig(logger: any): logger is LoggerConfig;
|
|
19
21
|
export declare function isValidDate(date: Date): boolean;
|
package/dist/common-helpers.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.errToObj = exports.hasUpload = exports.getRoutePathParams = exports.combinations = exports.getExamples = exports.getStatusCodeFromError = exports.getMessageFromError = exports.isValidDate = exports.isLoggerConfig = exports.getInitialInput = exports.defaultInputSources = exports.getFinalEndpointInputSchema = exports.routePathParamsRegex = void 0;
|
|
3
|
+
exports.errToObj = exports.hasUpload = exports.getRoutePathParams = exports.combinations = exports.getExamples = exports.getStatusCodeFromError = exports.getMessageFromError = exports.isValidDate = exports.isLoggerConfig = exports.getInitialInput = exports.getActualMethod = exports.defaultInputSources = exports.getFinalEndpointInputSchema = exports.routePathParamsRegex = 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");
|
|
@@ -38,8 +38,13 @@ exports.defaultInputSources = {
|
|
|
38
38
|
delete: ["body", "query", "params"],
|
|
39
39
|
};
|
|
40
40
|
const fallbackInputSource = exports.defaultInputSources.delete;
|
|
41
|
+
const getActualMethod = (request) => request.method.toLowerCase();
|
|
42
|
+
exports.getActualMethod = getActualMethod;
|
|
41
43
|
function getInitialInput(request, inputAssignment) {
|
|
42
|
-
const method =
|
|
44
|
+
const method = (0, exports.getActualMethod)(request);
|
|
45
|
+
if (method === "options") {
|
|
46
|
+
return {};
|
|
47
|
+
}
|
|
43
48
|
let props = fallbackInputSource;
|
|
44
49
|
if (method in exports.defaultInputSources) {
|
|
45
50
|
props = exports.defaultInputSources[method];
|
|
@@ -1 +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;AACvC,mDAA4C;AAa5C,uDAAuD;AAC1C,QAAA,oBAAoB,GAAG,mBAAmB,CAAC;AAWxD;;;GAGG;AACI,MAAM,2BAA2B,GAAG,CAIzC,WAA+B,EAC/B,KAAS,EACsB,EAAE;IACjC,MAAM,MAAM,GAAG,WAAW;SACvB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;SAClC,MAAM,CAAC,KAAK,CAAC;SACb,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAkC,CAAC;IAC7E,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,CAAC;AAhBW,QAAA,2BAA2B,+BAgBtC;AAEF,SAAS,iBAAiB,CAAC,OAAgB;IACzC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACzD,MAAM,WAAW,GACf,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAa,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,oBAAa,CAAC;IAC7E,OAAO,OAAO,IAAI,OAAO,IAAI,WAAW,CAAC;AAC3C,CAAC;AAEY,QAAA,mBAAmB,GAAiB;IAC/C,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,2BAAmB,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"common-helpers.js","sourceRoot":"","sources":["../src/common-helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/config-type.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { Express, Request } from "express";
|
|
|
5
5
|
import fileUpload from "express-fileupload";
|
|
6
6
|
import { ServerOptions } from "https";
|
|
7
7
|
import { Logger } from "winston";
|
|
8
|
+
import { AbstractEndpoint } from "./endpoint";
|
|
8
9
|
import { Method } from "./method";
|
|
9
10
|
import { ResultHandlerDefinition } from "./result-handler";
|
|
10
11
|
export declare const loggerLevels: {
|
|
@@ -35,8 +36,15 @@ export interface AppConfig {
|
|
|
35
36
|
}
|
|
36
37
|
declare type InputSource = keyof Pick<Request, "query" | "body" | "files" | "params">;
|
|
37
38
|
export declare type InputSources = Record<Method, InputSource[]>;
|
|
39
|
+
declare type Headers = Record<string, string>;
|
|
40
|
+
declare type HeadersProvider = (params: {
|
|
41
|
+
defaultHeaders: Headers;
|
|
42
|
+
request: Request;
|
|
43
|
+
endpoint: AbstractEndpoint;
|
|
44
|
+
logger: Logger;
|
|
45
|
+
}) => Headers | Promise<Headers>;
|
|
38
46
|
export interface CommonConfig {
|
|
39
|
-
cors: boolean;
|
|
47
|
+
cors: boolean | HeadersProvider;
|
|
40
48
|
errorHandler?: ResultHandlerDefinition<any, any>;
|
|
41
49
|
logger: LoggerConfig | Logger;
|
|
42
50
|
startupLogo?: boolean;
|
package/dist/config-type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-type.js","sourceRoot":"","sources":["../src/config-type.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"config-type.js","sourceRoot":"","sources":["../src/config-type.ts"],"names":[],"mappings":";;;AAUa,QAAA,YAAY,GAAG;IAC1B,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;CACZ,CAAC;AAyEK,MAAM,YAAY,GAAG,CAG1B,MAAS,EACN,EAAE,CAAC,MAAM,CAAC;AAJF,QAAA,YAAY,gBAIV"}
|
package/dist/endpoint.js
CHANGED
|
@@ -4,7 +4,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
4
4
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
5
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
6
|
};
|
|
7
|
-
var _Endpoint_instances,
|
|
7
|
+
var _Endpoint_instances, _Endpoint_getDefaultCorsHeaders, _Endpoint_parseOutput, _Endpoint_runMiddlewares, _Endpoint_parseAndRunHandler, _Endpoint_handleResult;
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.Endpoint = exports.AbstractEndpoint = void 0;
|
|
10
10
|
const zod_1 = require("zod");
|
|
@@ -62,18 +62,27 @@ class Endpoint extends AbstractEndpoint {
|
|
|
62
62
|
return this.resultHandler.getNegativeResponse().mimeTypes;
|
|
63
63
|
}
|
|
64
64
|
async execute({ request, response, logger, config, }) {
|
|
65
|
+
const method = (0, common_helpers_1.getActualMethod)(request);
|
|
65
66
|
let output;
|
|
66
67
|
let error = null;
|
|
67
68
|
if (config.cors) {
|
|
68
|
-
__classPrivateFieldGet(this, _Endpoint_instances, "m",
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
let headers = __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_getDefaultCorsHeaders).call(this);
|
|
70
|
+
if (typeof config.cors === "function") {
|
|
71
|
+
headers = await config.cors({
|
|
72
|
+
request,
|
|
73
|
+
logger,
|
|
74
|
+
endpoint: this,
|
|
75
|
+
defaultHeaders: headers,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
for (const key in headers) {
|
|
79
|
+
response.set(key, headers[key]);
|
|
80
|
+
}
|
|
73
81
|
}
|
|
74
82
|
const initialInput = (0, common_helpers_1.getInitialInput)(request, config.inputSources);
|
|
75
83
|
try {
|
|
76
84
|
const { input, options, isStreamClosed } = await __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_runMiddlewares).call(this, {
|
|
85
|
+
method,
|
|
77
86
|
input: { ...initialInput },
|
|
78
87
|
request,
|
|
79
88
|
response,
|
|
@@ -82,6 +91,10 @@ class Endpoint extends AbstractEndpoint {
|
|
|
82
91
|
if (isStreamClosed) {
|
|
83
92
|
return;
|
|
84
93
|
}
|
|
94
|
+
if (method === "options") {
|
|
95
|
+
response.status(200).end();
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
85
98
|
output = await __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_parseOutput).call(this, await __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_parseAndRunHandler).call(this, { input, options, logger }));
|
|
86
99
|
}
|
|
87
100
|
catch (e) {
|
|
@@ -100,14 +113,16 @@ class Endpoint extends AbstractEndpoint {
|
|
|
100
113
|
}
|
|
101
114
|
}
|
|
102
115
|
exports.Endpoint = Endpoint;
|
|
103
|
-
_Endpoint_instances = new WeakSet(),
|
|
116
|
+
_Endpoint_instances = new WeakSet(), _Endpoint_getDefaultCorsHeaders = function _Endpoint_getDefaultCorsHeaders() {
|
|
104
117
|
const accessMethods = this.methods
|
|
105
|
-
.
|
|
106
|
-
.
|
|
107
|
-
.
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
118
|
+
.concat("options")
|
|
119
|
+
.join(", ")
|
|
120
|
+
.toUpperCase();
|
|
121
|
+
return {
|
|
122
|
+
"Access-Control-Allow-Origin": "*",
|
|
123
|
+
"Access-Control-Allow-Methods": accessMethods,
|
|
124
|
+
"Access-Control-Allow-Headers": "content-type",
|
|
125
|
+
};
|
|
111
126
|
}, _Endpoint_parseOutput = async function _Endpoint_parseOutput(output) {
|
|
112
127
|
try {
|
|
113
128
|
return await this.outputSchema.parseAsync(output);
|
|
@@ -128,10 +143,13 @@ _Endpoint_instances = new WeakSet(), _Endpoint_setupCorsHeaders = function _Endp
|
|
|
128
143
|
}
|
|
129
144
|
throw e;
|
|
130
145
|
}
|
|
131
|
-
}, _Endpoint_runMiddlewares = async function _Endpoint_runMiddlewares({ input, request, response, logger, }) {
|
|
146
|
+
}, _Endpoint_runMiddlewares = async function _Endpoint_runMiddlewares({ method, input, request, response, logger, }) {
|
|
132
147
|
const options = {};
|
|
133
148
|
let isStreamClosed = false;
|
|
134
149
|
for (const def of this.middlewares) {
|
|
150
|
+
if (method === "options" && def.type === "proprietary") {
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
135
153
|
Object.assign(input, await def.input.parseAsync(input)); // middleware can transform the input types
|
|
136
154
|
Object.assign(options, await def.middleware({
|
|
137
155
|
input,
|
package/dist/endpoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":";;;;;;;;;AAEA,6BAAwB;AAGxB,qCAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { ApiResponse } from "./api-response";
|
|
|
5
5
|
import { FlatObject, IOSchema, ProbableIntersection } from "./common-helpers";
|
|
6
6
|
import { Endpoint, Handler } from "./endpoint";
|
|
7
7
|
import { Method, MethodsDefinition } from "./method";
|
|
8
|
-
import { AnyMiddlewareDef, ExpressMiddleware, ExpressMiddlewareFeatures, MiddlewareDefinition } from "./middleware";
|
|
8
|
+
import { AnyMiddlewareDef, ExpressMiddleware, ExpressMiddlewareFeatures, MiddlewareCreationProps, MiddlewareDefinition } from "./middleware";
|
|
9
9
|
import { ResultHandlerDefinition } from "./result-handler";
|
|
10
10
|
declare type BuildProps<IN extends IOSchema, OUT extends IOSchema, MIN extends IOSchema<"strip"> | null, OPT extends FlatObject, M extends Method> = {
|
|
11
11
|
input: IN;
|
|
@@ -19,6 +19,8 @@ export declare class EndpointsFactory<POS extends ApiResponse, NEG extends ApiRe
|
|
|
19
19
|
protected middlewares: AnyMiddlewareDef[];
|
|
20
20
|
constructor(resultHandler: ResultHandlerDefinition<POS, NEG>);
|
|
21
21
|
addMiddleware<AIN extends IOSchema<"strip">, AOUT extends FlatObject>(definition: MiddlewareDefinition<AIN, OUT, AOUT>): EndpointsFactory<POS, NEG, ProbableIntersection<IN, AIN>, OUT & AOUT>;
|
|
22
|
+
/** @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>;
|
|
22
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>;
|
|
23
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>;
|
|
24
26
|
addOptions<AOUT extends FlatObject>(options: AOUT): EndpointsFactory<POS, NEG, IN, OUT & AOUT>;
|
|
@@ -34,6 +36,8 @@ export declare const defaultEndpointsFactory: EndpointsFactory<ApiResponse<z.Zod
|
|
|
34
36
|
data?: unknown;
|
|
35
37
|
status: "success";
|
|
36
38
|
}> & {
|
|
39
|
+
keyof: () => z.ZodEnum<never>;
|
|
40
|
+
} & {
|
|
37
41
|
_def: z.ZodObjectDef<{
|
|
38
42
|
status: z.ZodLiteral<"success">;
|
|
39
43
|
data: IOSchema<any>;
|
|
@@ -59,7 +63,9 @@ export declare const defaultEndpointsFactory: EndpointsFactory<ApiResponse<z.Zod
|
|
|
59
63
|
}, {
|
|
60
64
|
data?: unknown;
|
|
61
65
|
status: "success";
|
|
62
|
-
}> &
|
|
66
|
+
}> & {
|
|
67
|
+
keyof: () => z.ZodEnum<never>;
|
|
68
|
+
} & any;
|
|
63
69
|
}>, ApiResponse<z.ZodObject<{
|
|
64
70
|
status: z.ZodLiteral<"error">;
|
|
65
71
|
error: z.ZodObject<{
|
|
@@ -80,6 +86,8 @@ export declare const defaultEndpointsFactory: EndpointsFactory<ApiResponse<z.Zod
|
|
|
80
86
|
message: string;
|
|
81
87
|
};
|
|
82
88
|
}> & {
|
|
89
|
+
keyof: () => z.ZodEnum<never>;
|
|
90
|
+
} & {
|
|
83
91
|
_def: z.ZodObjectDef<{
|
|
84
92
|
status: z.ZodLiteral<"error">;
|
|
85
93
|
error: z.ZodObject<{
|
|
@@ -133,6 +141,8 @@ export declare const defaultEndpointsFactory: EndpointsFactory<ApiResponse<z.Zod
|
|
|
133
141
|
error: {
|
|
134
142
|
message: string;
|
|
135
143
|
};
|
|
136
|
-
}> &
|
|
144
|
+
}> & {
|
|
145
|
+
keyof: () => z.ZodEnum<never>;
|
|
146
|
+
} & any;
|
|
137
147
|
}>, null, {}>;
|
|
138
148
|
export {};
|
|
@@ -19,13 +19,14 @@ class EndpointsFactory {
|
|
|
19
19
|
this.middlewares = [];
|
|
20
20
|
this.use = this.addExpressMiddleware;
|
|
21
21
|
}
|
|
22
|
-
addMiddleware(
|
|
23
|
-
return __classPrivateFieldGet(EndpointsFactory, _a, "m", _EndpointsFactory_create).call(EndpointsFactory, this.middlewares.concat(
|
|
22
|
+
addMiddleware(subject) {
|
|
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
26
|
const transformer = (features === null || features === void 0 ? void 0 : features.transformer) || ((err) => err);
|
|
27
27
|
const provider = (features === null || features === void 0 ? void 0 : features.provider) || (() => ({}));
|
|
28
|
-
const definition =
|
|
28
|
+
const definition = {
|
|
29
|
+
type: "express",
|
|
29
30
|
input: zod_1.z.object({}),
|
|
30
31
|
middleware: async ({ request, response }) => new Promise((resolve, reject) => {
|
|
31
32
|
const next = (err) => {
|
|
@@ -36,7 +37,7 @@ class EndpointsFactory {
|
|
|
36
37
|
};
|
|
37
38
|
middleware(request, response, next);
|
|
38
39
|
}),
|
|
39
|
-
}
|
|
40
|
+
};
|
|
40
41
|
return __classPrivateFieldGet(EndpointsFactory, _a, "m", _EndpointsFactory_create).call(EndpointsFactory, this.middlewares.concat(definition), this.resultHandler);
|
|
41
42
|
}
|
|
42
43
|
addOptions(options) {
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"endpoints-factory.js","sourceRoot":"","sources":["../src/endpoints-factory.ts"],"names":[],"mappings":"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"}
|
package/dist/metadata.d.ts
CHANGED
|
@@ -9,7 +9,14 @@ export declare type MetaDef<T extends z.ZodTypeAny> = {
|
|
|
9
9
|
declare type MetaKey = keyof MetaDef<any>[MetaProp];
|
|
10
10
|
declare type MetaValue<T extends z.ZodTypeAny, K extends MetaKey> = Readonly<MetaDef<T>[MetaProp][K]>;
|
|
11
11
|
declare type ExampleSetter<T extends z.ZodTypeAny> = (example: z.input<T>) => WithMeta<T>;
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* @desc fixes the incompatibility of the ZodObject.keyof() method introduced in v3.17.9
|
|
14
|
+
* @todo remove it if/when it will be compatible
|
|
15
|
+
*/
|
|
16
|
+
declare type MetaFixForStrippedObject<T> = T extends z.ZodObject<any> ? T & {
|
|
17
|
+
keyof: z.ZodObject<any>["keyof"];
|
|
18
|
+
} : T;
|
|
19
|
+
declare type WithMeta<T extends z.ZodTypeAny> = MetaFixForStrippedObject<T> & {
|
|
13
20
|
_def: T["_def"] & MetaDef<T>;
|
|
14
21
|
example: ExampleSetter<T>;
|
|
15
22
|
};
|
package/dist/metadata.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":";;;AAAA,qDAAgD;AAEhD,iCAAuC;AAE1B,QAAA,QAAQ,GAAG,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
|
package/dist/middleware.d.ts
CHANGED
|
@@ -11,12 +11,15 @@ interface MiddlewareParams<IN, OPT> {
|
|
|
11
11
|
logger: Logger;
|
|
12
12
|
}
|
|
13
13
|
declare type Middleware<IN, OPT, OUT> = (params: MiddlewareParams<IN, OPT>) => Promise<OUT>;
|
|
14
|
-
export interface
|
|
14
|
+
export interface MiddlewareCreationProps<IN extends IOSchema<"strip">, OPT, OUT extends FlatObject> {
|
|
15
15
|
input: IN;
|
|
16
16
|
middleware: Middleware<z.output<IN>, OPT, OUT>;
|
|
17
17
|
}
|
|
18
|
-
export
|
|
19
|
-
|
|
18
|
+
export interface MiddlewareDefinition<IN extends IOSchema<"strip">, OPT, OUT extends FlatObject> extends MiddlewareCreationProps<IN, OPT, OUT> {
|
|
19
|
+
type: "proprietary" | "express";
|
|
20
|
+
}
|
|
21
|
+
export declare type AnyMiddlewareDef = MiddlewareDefinition<any, any, any>;
|
|
22
|
+
export declare const createMiddleware: <IN extends IOSchema<"strip">, OPT, OUT extends FlatObject>(props: MiddlewareCreationProps<IN, OPT, OUT>) => MiddlewareDefinition<IN, OPT, OUT>;
|
|
20
23
|
export declare type ExpressMiddleware<R extends Request, S extends Response> = (request: R, response: S, next: (error?: any) => void) => void | Promise<void>;
|
|
21
24
|
export interface ExpressMiddlewareFeatures<R extends Request, S extends Response, OUT extends FlatObject> {
|
|
22
25
|
provider?: (request: R, response: S) => OUT | Promise<OUT>;
|
package/dist/middleware.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createMiddleware = void 0;
|
|
4
|
-
const createMiddleware = (
|
|
4
|
+
const createMiddleware = (props) => ({
|
|
5
|
+
...props,
|
|
6
|
+
type: "proprietary",
|
|
7
|
+
});
|
|
5
8
|
exports.createMiddleware = createMiddleware;
|
|
6
9
|
//# sourceMappingURL=middleware.js.map
|
package/dist/middleware.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":";;;AAqCO,MAAM,gBAAgB,GAAG,CAK9B,KAA4C,EACR,EAAE,CAAC,CAAC;IACxC,GAAG,KAAK;IACR,IAAI,EAAE,aAAa;CACpB,CAAC,CAAC;AATU,QAAA,gBAAgB,oBAS1B"}
|
|
@@ -49,10 +49,14 @@ export declare const depictEffect: DepictHelper<z.ZodEffects<z.ZodTypeAny>>;
|
|
|
49
49
|
export declare const depictIOExamples: <T extends IOSchema<any>>(schema: T, isResponse: boolean, omitProps?: string[]) => MediaExamples;
|
|
50
50
|
export declare const depictIOParamExamples: <T extends IOSchema<any>>(schema: T, isResponse: boolean, param: string) => MediaExamples;
|
|
51
51
|
export declare function extractObjectSchema(subject: IOSchema): z.AnyZodObject | (z.AnyZodObject & {
|
|
52
|
+
keyof: () => z.ZodEnum<never>;
|
|
53
|
+
} & {
|
|
52
54
|
_def: z.ZodObjectDef<any, any, any> & import("./metadata").MetaDef<z.AnyZodObject>;
|
|
53
55
|
example: (example: {
|
|
54
56
|
[x: string]: any;
|
|
55
|
-
}) => z.AnyZodObject &
|
|
57
|
+
}) => z.AnyZodObject & {
|
|
58
|
+
keyof: () => z.ZodEnum<never>;
|
|
59
|
+
} & any;
|
|
56
60
|
});
|
|
57
61
|
export declare const depictRequestParams: ({ path, method, endpoint, inputSources, }: ReqResDepictHelperCommonProps & {
|
|
58
62
|
inputSources: InputSources[Method];
|
package/dist/result-handler.d.ts
CHANGED
|
@@ -34,6 +34,8 @@ export declare const defaultResultHandler: ResultHandlerDefinition<ApiResponse<z
|
|
|
34
34
|
data?: unknown;
|
|
35
35
|
status: "success";
|
|
36
36
|
}> & {
|
|
37
|
+
keyof: () => z.ZodEnum<never>;
|
|
38
|
+
} & {
|
|
37
39
|
_def: z.ZodObjectDef<{
|
|
38
40
|
status: z.ZodLiteral<"success">;
|
|
39
41
|
data: IOSchema<any>;
|
|
@@ -59,7 +61,9 @@ export declare const defaultResultHandler: ResultHandlerDefinition<ApiResponse<z
|
|
|
59
61
|
}, {
|
|
60
62
|
data?: unknown;
|
|
61
63
|
status: "success";
|
|
62
|
-
}> &
|
|
64
|
+
}> & {
|
|
65
|
+
keyof: () => z.ZodEnum<never>;
|
|
66
|
+
} & any;
|
|
63
67
|
}>, ApiResponse<z.ZodObject<{
|
|
64
68
|
status: z.ZodLiteral<"error">;
|
|
65
69
|
error: z.ZodObject<{
|
|
@@ -80,6 +84,8 @@ export declare const defaultResultHandler: ResultHandlerDefinition<ApiResponse<z
|
|
|
80
84
|
message: string;
|
|
81
85
|
};
|
|
82
86
|
}> & {
|
|
87
|
+
keyof: () => z.ZodEnum<never>;
|
|
88
|
+
} & {
|
|
83
89
|
_def: z.ZodObjectDef<{
|
|
84
90
|
status: z.ZodLiteral<"error">;
|
|
85
91
|
error: z.ZodObject<{
|
|
@@ -133,7 +139,9 @@ export declare const defaultResultHandler: ResultHandlerDefinition<ApiResponse<z
|
|
|
133
139
|
error: {
|
|
134
140
|
message: string;
|
|
135
141
|
};
|
|
136
|
-
}> &
|
|
142
|
+
}> & {
|
|
143
|
+
keyof: () => z.ZodEnum<never>;
|
|
144
|
+
} & any;
|
|
137
145
|
}>>;
|
|
138
146
|
export declare const lastResortHandler: ({ error, logger, response, }: LastResortHandlerParams) => void;
|
|
139
147
|
export {};
|
package/dist/routing.d.ts
CHANGED
|
@@ -13,9 +13,9 @@ export interface RoutingCycleParams {
|
|
|
13
13
|
endpointCb: (endpoint: AbstractEndpoint, path: string, method: Method | AuxMethod) => void;
|
|
14
14
|
staticCb?: (path: string, handler: StaticHandler) => void;
|
|
15
15
|
parentPath?: string;
|
|
16
|
-
|
|
16
|
+
hasCors?: boolean;
|
|
17
17
|
}
|
|
18
|
-
export declare const routingCycle: ({ routing, endpointCb, staticCb, parentPath,
|
|
18
|
+
export declare const routingCycle: ({ routing, endpointCb, staticCb, parentPath, hasCors, }: RoutingCycleParams) => void;
|
|
19
19
|
export declare const initRouting: ({ app, logger, config, routing, }: {
|
|
20
20
|
app: Express;
|
|
21
21
|
logger: Logger;
|
package/dist/routing.js
CHANGED
|
@@ -7,7 +7,7 @@ const endpoint_1 = require("./endpoint");
|
|
|
7
7
|
const errors_1 = require("./errors");
|
|
8
8
|
const serve_static_1 = require("./serve-static");
|
|
9
9
|
const startup_logo_1 = require("./startup-logo");
|
|
10
|
-
const routingCycle = ({ routing, endpointCb, staticCb, parentPath,
|
|
10
|
+
const routingCycle = ({ routing, endpointCb, staticCb, parentPath, hasCors, }) => {
|
|
11
11
|
Object.entries(routing).forEach(([segment, element]) => {
|
|
12
12
|
segment = segment.trim();
|
|
13
13
|
if (segment.match(/\//)) {
|
|
@@ -19,7 +19,7 @@ const routingCycle = ({ routing, endpointCb, staticCb, parentPath, cors, }) => {
|
|
|
19
19
|
const path = `${parentPath || ""}${segment ? `/${segment}` : ""}`;
|
|
20
20
|
if (element instanceof endpoint_1.AbstractEndpoint) {
|
|
21
21
|
const methods = element.getMethods().slice();
|
|
22
|
-
if (
|
|
22
|
+
if (hasCors) {
|
|
23
23
|
methods.push("options");
|
|
24
24
|
}
|
|
25
25
|
methods.forEach((method) => {
|
|
@@ -35,7 +35,7 @@ const routingCycle = ({ routing, endpointCb, staticCb, parentPath, cors, }) => {
|
|
|
35
35
|
Object.entries(element.methods).forEach(([method, endpoint]) => {
|
|
36
36
|
endpointCb(endpoint, path, method);
|
|
37
37
|
});
|
|
38
|
-
if (
|
|
38
|
+
if (hasCors && Object.keys(element.methods).length > 0) {
|
|
39
39
|
const firstEndpoint = Object.values(element.methods)[0];
|
|
40
40
|
endpointCb(firstEndpoint, path, "options");
|
|
41
41
|
}
|
|
@@ -45,7 +45,7 @@ const routingCycle = ({ routing, endpointCb, staticCb, parentPath, cors, }) => {
|
|
|
45
45
|
routing: element,
|
|
46
46
|
endpointCb,
|
|
47
47
|
staticCb,
|
|
48
|
-
|
|
48
|
+
hasCors: hasCors,
|
|
49
49
|
parentPath: path,
|
|
50
50
|
});
|
|
51
51
|
}
|
|
@@ -58,7 +58,7 @@ const initRouting = ({ app, logger, config, routing, }) => {
|
|
|
58
58
|
}
|
|
59
59
|
(0, exports.routingCycle)({
|
|
60
60
|
routing,
|
|
61
|
-
|
|
61
|
+
hasCors: !!config.cors,
|
|
62
62
|
endpointCb: (endpoint, path, method) => {
|
|
63
63
|
app[method](path, async (request, response) => {
|
|
64
64
|
logger.info(`${request.method}: ${path}`);
|
package/dist/routing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":";;;AAAA,qCAA0D;AAG1D,2DAAsD;AACtD,yCAA8C;AAC9C,qCAAwC;AAExC,iDAA4D;AAC5D,iDAAgD;AAkBzC,MAAM,YAAY,GAAG,CAAC,EAC3B,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,8 +34,12 @@ export const defaultInputSources = {
|
|
|
34
34
|
delete: ["body", "query", "params"],
|
|
35
35
|
};
|
|
36
36
|
const fallbackInputSource = defaultInputSources.delete;
|
|
37
|
+
export const getActualMethod = (request) => request.method.toLowerCase();
|
|
37
38
|
export function getInitialInput(request, inputAssignment) {
|
|
38
|
-
const method = request
|
|
39
|
+
const method = getActualMethod(request);
|
|
40
|
+
if (method === "options") {
|
|
41
|
+
return {};
|
|
42
|
+
}
|
|
39
43
|
let props = fallbackInputSource;
|
|
40
44
|
if (method in defaultInputSources) {
|
|
41
45
|
props = defaultInputSources[method];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-helpers.js","sourceRoot":"","sources":["../src/common-helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAIL,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAa5C,uDAAuD;AACvD,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AAWxD;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAIzC,WAA+B,EAC/B,KAAS,EACsB,EAAE;IACjC,MAAM,MAAM,GAAG,WAAW;SACvB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;SAClC,MAAM,CAAC,KAAK,CAAC;SACb,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAkC,CAAC;IAC7E,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KACpC;IACD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,SAAS,iBAAiB,CAAC,OAAgB;IACzC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACzD,MAAM,WAAW,GACf,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC;IAC7E,OAAO,OAAO,IAAI,OAAO,IAAI,WAAW,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAiB;IAC/C,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,MAAM,UAAU,eAAe,CAC7B,OAAgB,EAChB,eAA6C;IAE7C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"common-helpers.js","sourceRoot":"","sources":["../src/common-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-type.js","sourceRoot":"","sources":["../src/config-type.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config-type.js","sourceRoot":"","sources":["../src/config-type.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;CACZ,CAAC;AAyEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAG1B,MAAS,EACN,EAAE,CAAC,MAAM,CAAC"}
|
package/dist-esm/endpoint.js
CHANGED
|
@@ -3,10 +3,10 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
3
3
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4
4
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
5
|
};
|
|
6
|
-
var _Endpoint_instances,
|
|
6
|
+
var _Endpoint_instances, _Endpoint_getDefaultCorsHeaders, _Endpoint_parseOutput, _Endpoint_runMiddlewares, _Endpoint_parseAndRunHandler, _Endpoint_handleResult;
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
import { ResultHandlerError } from "./errors.js";
|
|
9
|
-
import { getInitialInput } from "./common-helpers.js";
|
|
9
|
+
import { getActualMethod, getInitialInput, } from "./common-helpers.js";
|
|
10
10
|
import { lastResortHandler } from "./result-handler.js";
|
|
11
11
|
export class AbstractEndpoint {
|
|
12
12
|
}
|
|
@@ -58,18 +58,27 @@ export class Endpoint extends AbstractEndpoint {
|
|
|
58
58
|
return this.resultHandler.getNegativeResponse().mimeTypes;
|
|
59
59
|
}
|
|
60
60
|
async execute({ request, response, logger, config, }) {
|
|
61
|
+
const method = getActualMethod(request);
|
|
61
62
|
let output;
|
|
62
63
|
let error = null;
|
|
63
64
|
if (config.cors) {
|
|
64
|
-
__classPrivateFieldGet(this, _Endpoint_instances, "m",
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
let headers = __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_getDefaultCorsHeaders).call(this);
|
|
66
|
+
if (typeof config.cors === "function") {
|
|
67
|
+
headers = await config.cors({
|
|
68
|
+
request,
|
|
69
|
+
logger,
|
|
70
|
+
endpoint: this,
|
|
71
|
+
defaultHeaders: headers,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
for (const key in headers) {
|
|
75
|
+
response.set(key, headers[key]);
|
|
76
|
+
}
|
|
69
77
|
}
|
|
70
78
|
const initialInput = getInitialInput(request, config.inputSources);
|
|
71
79
|
try {
|
|
72
80
|
const { input, options, isStreamClosed } = await __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_runMiddlewares).call(this, {
|
|
81
|
+
method,
|
|
73
82
|
input: { ...initialInput },
|
|
74
83
|
request,
|
|
75
84
|
response,
|
|
@@ -78,6 +87,10 @@ export class Endpoint extends AbstractEndpoint {
|
|
|
78
87
|
if (isStreamClosed) {
|
|
79
88
|
return;
|
|
80
89
|
}
|
|
90
|
+
if (method === "options") {
|
|
91
|
+
response.status(200).end();
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
81
94
|
output = await __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_parseOutput).call(this, await __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_parseAndRunHandler).call(this, { input, options, logger }));
|
|
82
95
|
}
|
|
83
96
|
catch (e) {
|
|
@@ -95,14 +108,16 @@ export class Endpoint extends AbstractEndpoint {
|
|
|
95
108
|
});
|
|
96
109
|
}
|
|
97
110
|
}
|
|
98
|
-
_Endpoint_instances = new WeakSet(),
|
|
111
|
+
_Endpoint_instances = new WeakSet(), _Endpoint_getDefaultCorsHeaders = function _Endpoint_getDefaultCorsHeaders() {
|
|
99
112
|
const accessMethods = this.methods
|
|
100
|
-
.
|
|
101
|
-
.
|
|
102
|
-
.
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
113
|
+
.concat("options")
|
|
114
|
+
.join(", ")
|
|
115
|
+
.toUpperCase();
|
|
116
|
+
return {
|
|
117
|
+
"Access-Control-Allow-Origin": "*",
|
|
118
|
+
"Access-Control-Allow-Methods": accessMethods,
|
|
119
|
+
"Access-Control-Allow-Headers": "content-type",
|
|
120
|
+
};
|
|
106
121
|
}, _Endpoint_parseOutput = async function _Endpoint_parseOutput(output) {
|
|
107
122
|
try {
|
|
108
123
|
return await this.outputSchema.parseAsync(output);
|
|
@@ -123,10 +138,13 @@ _Endpoint_instances = new WeakSet(), _Endpoint_setupCorsHeaders = function _Endp
|
|
|
123
138
|
}
|
|
124
139
|
throw e;
|
|
125
140
|
}
|
|
126
|
-
}, _Endpoint_runMiddlewares = async function _Endpoint_runMiddlewares({ input, request, response, logger, }) {
|
|
141
|
+
}, _Endpoint_runMiddlewares = async function _Endpoint_runMiddlewares({ method, input, request, response, logger, }) {
|
|
127
142
|
const options = {};
|
|
128
143
|
let isStreamClosed = false;
|
|
129
144
|
for (const def of this.middlewares) {
|
|
145
|
+
if (method === "options" && def.type === "proprietary") {
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
130
148
|
Object.assign(input, await def.input.parseAsync(input)); // middleware can transform the input types
|
|
131
149
|
Object.assign(options, await def.middleware({
|
|
132
150
|
input,
|
package/dist-esm/endpoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":";;;;;;AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,13 +16,14 @@ export class EndpointsFactory {
|
|
|
16
16
|
this.middlewares = [];
|
|
17
17
|
this.use = this.addExpressMiddleware;
|
|
18
18
|
}
|
|
19
|
-
addMiddleware(
|
|
20
|
-
return __classPrivateFieldGet(EndpointsFactory, _a, "m", _EndpointsFactory_create).call(EndpointsFactory, this.middlewares.concat(
|
|
19
|
+
addMiddleware(subject) {
|
|
20
|
+
return __classPrivateFieldGet(EndpointsFactory, _a, "m", _EndpointsFactory_create).call(EndpointsFactory, this.middlewares.concat("type" in subject ? subject : createMiddleware(subject)), this.resultHandler);
|
|
21
21
|
}
|
|
22
22
|
addExpressMiddleware(middleware, features) {
|
|
23
23
|
const transformer = (features === null || features === void 0 ? void 0 : features.transformer) || ((err) => err);
|
|
24
24
|
const provider = (features === null || features === void 0 ? void 0 : features.provider) || (() => ({}));
|
|
25
|
-
const definition =
|
|
25
|
+
const definition = {
|
|
26
|
+
type: "express",
|
|
26
27
|
input: z.object({}),
|
|
27
28
|
middleware: async ({ request, response }) => new Promise((resolve, reject) => {
|
|
28
29
|
const next = (err) => {
|
|
@@ -33,7 +34,7 @@ export class EndpointsFactory {
|
|
|
33
34
|
};
|
|
34
35
|
middleware(request, response, next);
|
|
35
36
|
}),
|
|
36
|
-
}
|
|
37
|
+
};
|
|
37
38
|
return __classPrivateFieldGet(EndpointsFactory, _a, "m", _EndpointsFactory_create).call(EndpointsFactory, this.middlewares.concat(definition), this.resultHandler);
|
|
38
39
|
}
|
|
39
40
|
addOptions(options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoints-factory.js","sourceRoot":"","sources":["../src/endpoints-factory.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAEL,2BAA2B,EAC3B,SAAS,GAGV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAW,MAAM,YAAY,CAAC;AAE/C,OAAO,EAEL,gBAAgB,
|
|
1
|
+
{"version":3,"file":"endpoints-factory.js","sourceRoot":"","sources":["../src/endpoints-factory.ts"],"names":[],"mappings":"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"}
|
package/dist-esm/metadata.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,CAAC,MAAM,QAAQ,GAAG,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,CAAC,MAAM,QAAQ,GAAG,mBAAmB,CAAC;AA8B5C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAyB,MAAS,EAAE,EAAE;IAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAkB,CAAC;IACtC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,QAAQ,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,QAAQ,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;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,MAAS,EACc,EAAE;IACzB,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;QAC9B,OAAO,KAAK,CAAC;KACd;IACD,OAAO,CACL,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAC5E,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,OAAO,CACrB,MAAS,EACT,IAAO;IAEP,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACpB,OAAO,SAAS,CAAC;KAClB;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAkB,CAAC;IACtC,OAAO,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,GAAM,EACN,IAAO,EACU,EAAE;IACnB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACjB,OAAO,IAAI,CAAC;KACb;IACD,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAkB,CAAC;IACpC,MAAM,oBAAoB,GAAG,YAAY,CACvC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,EACtB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAC5B,CAAC;IACF,qCAAqC;IACrC,GAAG,CAAC,QAAQ,CAAC,GAAG,cAAc,CAC5B,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAClC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CACxC,CAAC;IACF,IAAI,oBAAoB,CAAC,IAAI,KAAK,QAAQ,EAAE;QAC1C,GAAG,CAAC,QAAQ,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,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CACzB,cAAc,CAAC,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,CACtD,CAAC;SACH;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
package/dist-esm/middleware.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAqCA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAK9B,KAA4C,EACR,EAAE,CAAC,CAAC;IACxC,GAAG,KAAK;IACR,IAAI,EAAE,aAAa;CACpB,CAAC,CAAC"}
|
package/dist-esm/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"module","version":"7.
|
|
1
|
+
{"type":"module","version":"7.6.1"}
|
package/dist-esm/routing.js
CHANGED
|
@@ -4,7 +4,7 @@ import { AbstractEndpoint } from "./endpoint.js";
|
|
|
4
4
|
import { RoutingError } from "./errors.js";
|
|
5
5
|
import { ServeStatic } from "./serve-static.js";
|
|
6
6
|
import { getStartupLogo } from "./startup-logo.js";
|
|
7
|
-
export const routingCycle = ({ routing, endpointCb, staticCb, parentPath,
|
|
7
|
+
export const routingCycle = ({ routing, endpointCb, staticCb, parentPath, hasCors, }) => {
|
|
8
8
|
Object.entries(routing).forEach(([segment, element]) => {
|
|
9
9
|
segment = segment.trim();
|
|
10
10
|
if (segment.match(/\//)) {
|
|
@@ -16,7 +16,7 @@ export const routingCycle = ({ routing, endpointCb, staticCb, parentPath, cors,
|
|
|
16
16
|
const path = `${parentPath || ""}${segment ? `/${segment}` : ""}`;
|
|
17
17
|
if (element instanceof AbstractEndpoint) {
|
|
18
18
|
const methods = element.getMethods().slice();
|
|
19
|
-
if (
|
|
19
|
+
if (hasCors) {
|
|
20
20
|
methods.push("options");
|
|
21
21
|
}
|
|
22
22
|
methods.forEach((method) => {
|
|
@@ -32,7 +32,7 @@ export const routingCycle = ({ routing, endpointCb, staticCb, parentPath, cors,
|
|
|
32
32
|
Object.entries(element.methods).forEach(([method, endpoint]) => {
|
|
33
33
|
endpointCb(endpoint, path, method);
|
|
34
34
|
});
|
|
35
|
-
if (
|
|
35
|
+
if (hasCors && Object.keys(element.methods).length > 0) {
|
|
36
36
|
const firstEndpoint = Object.values(element.methods)[0];
|
|
37
37
|
endpointCb(firstEndpoint, path, "options");
|
|
38
38
|
}
|
|
@@ -42,7 +42,7 @@ export const routingCycle = ({ routing, endpointCb, staticCb, parentPath, cors,
|
|
|
42
42
|
routing: element,
|
|
43
43
|
endpointCb,
|
|
44
44
|
staticCb,
|
|
45
|
-
|
|
45
|
+
hasCors: hasCors,
|
|
46
46
|
parentPath: path,
|
|
47
47
|
});
|
|
48
48
|
}
|
|
@@ -54,7 +54,7 @@ export const initRouting = ({ app, logger, config, routing, }) => {
|
|
|
54
54
|
}
|
|
55
55
|
routingCycle({
|
|
56
56
|
routing,
|
|
57
|
-
|
|
57
|
+
hasCors: !!config.cors,
|
|
58
58
|
endpointCb: (endpoint, path, method) => {
|
|
59
59
|
app[method](path, async (request, response) => {
|
|
60
60
|
logger.info(`${request.method}: ${path}`);
|
package/dist-esm/routing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,IAAI,YAAY,EAAE,MAAM,SAAS,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,EAAE,WAAW,EAAiB,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAkBhD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,EACV,
|
|
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": "7.
|
|
3
|
+
"version": "7.6.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": {
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"ramda": "0.28.0",
|
|
50
50
|
"triple-beam": "1.3.0",
|
|
51
51
|
"winston": "3.8.1",
|
|
52
|
-
"zod": "3.17.
|
|
52
|
+
"zod": "3.17.9",
|
|
53
53
|
"zod-to-ts": "1.1.1"
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|
|
@@ -69,34 +69,34 @@
|
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
|
-
"@tsconfig/node12": "^1.0.
|
|
72
|
+
"@tsconfig/node12": "^1.0.11",
|
|
73
73
|
"@types/cors": "^2.8.12",
|
|
74
74
|
"@types/has-ansi": "^5.0.0",
|
|
75
|
-
"@types/jest": "^27.
|
|
75
|
+
"@types/jest": "^27.5.2",
|
|
76
76
|
"@types/mime": "^2.0.3",
|
|
77
|
-
"@types/node-fetch": "^2.
|
|
78
|
-
"@types/ramda": "^0.28.
|
|
77
|
+
"@types/node-fetch": "^2.6.2",
|
|
78
|
+
"@types/ramda": "^0.28.15",
|
|
79
79
|
"@types/triple-beam": "^1.3.2",
|
|
80
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
81
|
-
"@typescript-eslint/parser": "^5.
|
|
80
|
+
"@typescript-eslint/eslint-plugin": "^5.30.7",
|
|
81
|
+
"@typescript-eslint/parser": "^5.30.7",
|
|
82
82
|
"chalk": "^4.1.2",
|
|
83
83
|
"cors": "^2.8.5",
|
|
84
|
-
"eslint": "^8.
|
|
84
|
+
"eslint": "^8.20.0",
|
|
85
85
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
86
86
|
"eslint-config-airbnb-typescript": "^17.0.0",
|
|
87
|
-
"eslint-config-prettier": "^8.
|
|
88
|
-
"eslint-plugin-import": "^2.
|
|
89
|
-
"eslint-plugin-prettier": "^4.
|
|
90
|
-
"form-data": "^3.0.
|
|
87
|
+
"eslint-config-prettier": "^8.5.0",
|
|
88
|
+
"eslint-plugin-import": "^2.26.0",
|
|
89
|
+
"eslint-plugin-prettier": "^4.2.1",
|
|
90
|
+
"form-data": "^3.0.1",
|
|
91
91
|
"has-ansi": "^4.0.1",
|
|
92
|
-
"husky": "^7.0.
|
|
93
|
-
"jest": "^27.
|
|
92
|
+
"husky": "^7.0.4",
|
|
93
|
+
"jest": "^27.5.1",
|
|
94
94
|
"make-coverage-badge": "^1.2.0",
|
|
95
95
|
"mockdate": "^3.0.5",
|
|
96
|
-
"node-fetch": "^2.6.
|
|
96
|
+
"node-fetch": "^2.6.7",
|
|
97
97
|
"prettier": "2.7.1",
|
|
98
98
|
"strip-ansi": "^6.0.1",
|
|
99
|
-
"ts-jest": "^27.
|
|
99
|
+
"ts-jest": "^27.1.5",
|
|
100
100
|
"ts-node": "^10.9.1",
|
|
101
101
|
"tsd": "^0.21.0",
|
|
102
102
|
"typescript": "^4.7.4"
|