express-endpoints-collection 1.0.28 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -4
- package/dist/EndpointsCollection.d.ts +1 -0
- package/dist/EndpointsCollection.d.ts.map +1 -1
- package/dist/EndpointsCollection.js +46 -12
- package/dist/EndpointsCollection.js.map +1 -1
- package/dist/generator.js.map +1 -1
- package/dist/types/EndpointArgs.d.ts +3 -3
- package/dist/types/EndpointArgs.d.ts.map +1 -1
- package/dist/types/EndpointInfo.d.ts +6 -6
- package/dist/types/EndpointInfo.d.ts.map +1 -1
- package/dist/types/TypedRequestHandler.d.ts +10 -7
- package/dist/types/TypedRequestHandler.d.ts.map +1 -1
- package/package.json +15 -11
package/README.md
CHANGED
|
@@ -10,17 +10,19 @@ You can configure exposed endpoints, request and response schemas, and validatio
|
|
|
10
10
|
|
|
11
11
|

|
|
12
12
|
|
|
13
|
+
For support of zod v3 and express v4 use 1.0.28
|
|
14
|
+
|
|
13
15
|
## Features
|
|
14
16
|
|
|
15
|
-
- Fully typed endpoints (TypeScript hints and checks)
|
|
17
|
+
- Fully typed endpoints (TypeScript hints and checks) for Express v5
|
|
16
18
|
- Request body
|
|
17
19
|
- Response body
|
|
18
20
|
- Query parameters
|
|
19
21
|
- Path parameters
|
|
20
22
|
- Headers
|
|
21
|
-
- Automatic OpenAPI 3 schema generation
|
|
22
|
-
- Request and response validation using Zod
|
|
23
|
-
-
|
|
23
|
+
- Automatic OpenAPI 3.0 schema generation
|
|
24
|
+
- Request and response validation using Zod v4
|
|
25
|
+
- Full middleware support
|
|
24
26
|
- Minimal setup
|
|
25
27
|
|
|
26
28
|
## Installation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EndpointsCollection.d.ts","sourceRoot":"","sources":["../src/EndpointsCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAIhE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAqB;gBAEtC,EACjB,gBAAgB,EAChB,kBAAkB,GACnB,GAAE;QACD,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;KACpC;IAKN,OAAO,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"EndpointsCollection.d.ts","sourceRoot":"","sources":["../src/EndpointsCollection.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,12 +10,21 @@ class EndpointsCollection {
|
|
|
10
10
|
this.collectionPrefix = collectionPrefix;
|
|
11
11
|
this.customErrorHandler = customErrorHandler;
|
|
12
12
|
}
|
|
13
|
+
setRequestQuery(req, query) {
|
|
14
|
+
Object.defineProperty(req, "query", {
|
|
15
|
+
value: query,
|
|
16
|
+
writable: true,
|
|
17
|
+
enumerable: true,
|
|
18
|
+
configurable: true,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
13
21
|
validateInput(schema) {
|
|
14
22
|
return (req, res, next) => {
|
|
15
23
|
try {
|
|
16
24
|
if (schema.query) {
|
|
17
|
-
|
|
18
|
-
|
|
25
|
+
let query = this.coerceAll(schema.query, req.query);
|
|
26
|
+
query = schema.query.parse(query);
|
|
27
|
+
this.setRequestQuery(req, query);
|
|
19
28
|
}
|
|
20
29
|
if (schema.body) {
|
|
21
30
|
req.body = this.coerceAll(schema.body, req.body);
|
|
@@ -36,10 +45,10 @@ class EndpointsCollection {
|
|
|
36
45
|
if (this.customErrorHandler) {
|
|
37
46
|
return res
|
|
38
47
|
.status(400)
|
|
39
|
-
.json(this.customErrorHandler(error, error.
|
|
48
|
+
.json(this.customErrorHandler(error, error.issues));
|
|
40
49
|
}
|
|
41
50
|
return res.status(400).json({
|
|
42
|
-
error: error.
|
|
51
|
+
error: error.issues,
|
|
43
52
|
});
|
|
44
53
|
}
|
|
45
54
|
next(error);
|
|
@@ -47,10 +56,13 @@ class EndpointsCollection {
|
|
|
47
56
|
};
|
|
48
57
|
}
|
|
49
58
|
coerceAll(schema, data) {
|
|
59
|
+
const record = data !== null && typeof data === "object" && !Array.isArray(data)
|
|
60
|
+
? data
|
|
61
|
+
: {};
|
|
50
62
|
const deepClone = {};
|
|
51
63
|
for (const key in schema.shape) {
|
|
52
|
-
const coerced = this.coerceOnly(schema.shape[key],
|
|
53
|
-
deepClone[key] = coerced.success ? coerced.data :
|
|
64
|
+
const coerced = this.coerceOnly(schema.shape[key], record[key]);
|
|
65
|
+
deepClone[key] = coerced.success ? coerced.data : record[key];
|
|
54
66
|
}
|
|
55
67
|
return deepClone;
|
|
56
68
|
}
|
|
@@ -80,10 +92,10 @@ class EndpointsCollection {
|
|
|
80
92
|
if (Array.isArray(value)) {
|
|
81
93
|
const coercedArray = value.map((item) => this.coerceOnly(schema.element, item));
|
|
82
94
|
return zod_1.z
|
|
83
|
-
.array(zod_1.z.
|
|
95
|
+
.array(zod_1.z.unknown())
|
|
84
96
|
.safeParse(coercedArray.map((result) => result.success ? result.data : result.error));
|
|
85
97
|
}
|
|
86
|
-
return zod_1.z.array(zod_1.z.
|
|
98
|
+
return zod_1.z.array(zod_1.z.unknown()).safeParse(value);
|
|
87
99
|
}
|
|
88
100
|
else if (schema instanceof zod_1.z.ZodObject) {
|
|
89
101
|
if (typeof value === "object" && value !== null) {
|
|
@@ -112,7 +124,7 @@ class EndpointsCollection {
|
|
|
112
124
|
return schema.safeParse(value);
|
|
113
125
|
}
|
|
114
126
|
else if (schema instanceof zod_1.z.ZodOptional) {
|
|
115
|
-
return this.coerceOnly(schema.
|
|
127
|
+
return this.coerceOnly(schema.def.innerType, value);
|
|
116
128
|
}
|
|
117
129
|
else {
|
|
118
130
|
return schema.safeParse(value);
|
|
@@ -131,18 +143,40 @@ class EndpointsCollection {
|
|
|
131
143
|
operationId,
|
|
132
144
|
});
|
|
133
145
|
const combinedHandlers = [];
|
|
146
|
+
const asExpressHandler = (h) => h;
|
|
134
147
|
if (beforeInputValidation) {
|
|
135
|
-
|
|
148
|
+
for (const item of beforeInputValidation) {
|
|
149
|
+
if (Array.isArray(item)) {
|
|
150
|
+
combinedHandlers.push(item.map(asExpressHandler));
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
combinedHandlers.push(asExpressHandler(item));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
136
156
|
}
|
|
137
157
|
if (inputSchema) {
|
|
138
158
|
combinedHandlers.push(this.validateInput(inputSchema));
|
|
139
159
|
}
|
|
140
160
|
if (afterInputValidation) {
|
|
141
|
-
|
|
161
|
+
for (const item of afterInputValidation) {
|
|
162
|
+
if (Array.isArray(item)) {
|
|
163
|
+
combinedHandlers.push(item.map(asExpressHandler));
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
combinedHandlers.push(asExpressHandler(item));
|
|
167
|
+
}
|
|
168
|
+
}
|
|
142
169
|
}
|
|
143
170
|
combinedHandlers.push(handler);
|
|
144
171
|
if (beforeResponse) {
|
|
145
|
-
|
|
172
|
+
for (const item of beforeResponse) {
|
|
173
|
+
if (Array.isArray(item)) {
|
|
174
|
+
combinedHandlers.push(item.map(asExpressHandler));
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
combinedHandlers.push(asExpressHandler(item));
|
|
178
|
+
}
|
|
179
|
+
}
|
|
146
180
|
}
|
|
147
181
|
return this.router[method](pathToUse, ...combinedHandlers);
|
|
148
182
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EndpointsCollection.js","sourceRoot":"","sources":["../src/EndpointsCollection.ts"],"names":[],"mappings":";;;AAKA,qCAMiB;AAIjB,
|
|
1
|
+
{"version":3,"file":"EndpointsCollection.js","sourceRoot":"","sources":["../src/EndpointsCollection.ts"],"names":[],"mappings":"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"}
|
package/dist/generator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":";;;;;AAYA,0CA0HC;AArID,mEAKwC;AACxC,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,8 @@ export type EndpointArgs<TInput extends EndpointInputSchema, TOutput extends End
|
|
|
6
6
|
outputSchema: TOutput;
|
|
7
7
|
summary?: string;
|
|
8
8
|
operationId?: string;
|
|
9
|
-
beforeInputValidation?: (RequestHandler | RequestHandler[]
|
|
10
|
-
afterInputValidation?: (
|
|
11
|
-
beforeResponse?: (
|
|
9
|
+
beforeInputValidation?: (RequestHandler | RequestHandler[])[];
|
|
10
|
+
afterInputValidation?: (TypedRequestHandler<TInput, TOutput> | TypedRequestHandler<TInput, TOutput>[])[];
|
|
11
|
+
beforeResponse?: (TypedRequestHandler<TInput, TOutput> | TypedRequestHandler<TInput, TOutput>[])[];
|
|
12
12
|
};
|
|
13
13
|
//# sourceMappingURL=EndpointArgs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EndpointArgs.d.ts","sourceRoot":"","sources":["../../src/types/EndpointArgs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,MAAM,YAAY,CACtB,MAAM,SAAS,mBAAmB,EAClC,OAAO,SAAS,oBAAoB,IAClC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"EndpointArgs.d.ts","sourceRoot":"","sources":["../../src/types/EndpointArgs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,MAAM,YAAY,CACtB,MAAM,SAAS,mBAAmB,EAClC,OAAO,SAAS,oBAAoB,IAClC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,CAAC,cAAc,GAAG,cAAc,EAAE,CAAC,EAAE,CAAC;IAC9D,oBAAoB,CAAC,EAAE,CACnB,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CACzC,EAAE,CAAC;IACJ,cAAc,CAAC,EAAE,CACb,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CACzC,EAAE,CAAC;CACL,CAAC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { HttpMethod } from "./HttpMethod";
|
|
2
|
-
import {
|
|
2
|
+
import type { ZodObject, ZodTypeAny } from "zod";
|
|
3
3
|
export type EndpointInputSchema = {
|
|
4
|
-
query?:
|
|
5
|
-
body?:
|
|
6
|
-
params?:
|
|
7
|
-
headers?:
|
|
4
|
+
query?: ZodObject;
|
|
5
|
+
body?: ZodObject;
|
|
6
|
+
params?: ZodObject;
|
|
7
|
+
headers?: ZodObject;
|
|
8
8
|
};
|
|
9
9
|
export type EndpointOutputSchema = {
|
|
10
10
|
status: number;
|
|
11
11
|
description?: string;
|
|
12
|
-
body?:
|
|
12
|
+
body?: ZodTypeAny;
|
|
13
13
|
}[];
|
|
14
14
|
export type EndpointInfo = {
|
|
15
15
|
path: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EndpointInfo.d.ts","sourceRoot":"","sources":["../../src/types/EndpointInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"EndpointInfo.d.ts","sourceRoot":"","sources":["../../src/types/EndpointInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEjD,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,EAAE,CAAC;AAEJ,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,YAAY,EAAE,oBAAoB,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC"}
|
|
@@ -2,20 +2,23 @@ import { z } from "zod";
|
|
|
2
2
|
import { NextFunction, Request, Response } from "express";
|
|
3
3
|
import { EndpointInputSchema, EndpointOutputSchema } from "./EndpointInfo";
|
|
4
4
|
import { ParamsDictionary, Query } from "express-serve-static-core";
|
|
5
|
-
|
|
5
|
+
import { IncomingHttpHeaders } from "http";
|
|
6
|
+
type TypedHeaders<T extends EndpointInputSchema> = undefined extends T["headers"] ? IncomingHttpHeaders : z.output<NonNullable<T["headers"]>> & IncomingHttpHeaders;
|
|
7
|
+
export interface TypedRequest<T extends EndpointInputSchema> extends Omit<Request, "body" | "query" | "params" | "headers"> {
|
|
6
8
|
body: z.infer<NonNullable<T["body"]>>;
|
|
7
9
|
query: z.infer<NonNullable<T["query"]>> & Omit<Query, never>;
|
|
8
10
|
params: z.infer<NonNullable<T["params"]>> & Omit<ParamsDictionary, never>;
|
|
9
|
-
headers:
|
|
11
|
+
headers: TypedHeaders<T>;
|
|
10
12
|
}
|
|
11
13
|
export type TypedResponse<T extends EndpointOutputSchema> = Omit<Response, "json" | "status" | "sendStatus"> & {
|
|
12
|
-
json: (data: z.infer<NonNullable<T[number]["body"]>>) =>
|
|
13
|
-
status: <S extends T[number]["status"]>(code: S) =>
|
|
14
|
+
json: (data: z.infer<NonNullable<T[number]["body"]>>) => Response;
|
|
15
|
+
status: <S extends T[number]["status"]>(code: S) => Response & {
|
|
14
16
|
json: (data: z.infer<NonNullable<Extract<T[number], {
|
|
15
17
|
status: S;
|
|
16
|
-
}>["body"]>>) =>
|
|
18
|
+
}>["body"]>>) => Response;
|
|
17
19
|
};
|
|
18
|
-
sendStatus: <S extends T[number]["status"]>(code: S) =>
|
|
20
|
+
sendStatus: <S extends T[number]["status"]>(code: S) => Response;
|
|
19
21
|
};
|
|
20
|
-
export type TypedRequestHandler<TInput extends EndpointInputSchema, TOutput extends EndpointOutputSchema> = (req: TypedRequest<TInput>, res: TypedResponse<TOutput>, next: NextFunction) =>
|
|
22
|
+
export type TypedRequestHandler<TInput extends EndpointInputSchema, TOutput extends EndpointOutputSchema> = (req: TypedRequest<TInput>, res: TypedResponse<TOutput>, next: NextFunction) => unknown;
|
|
23
|
+
export {};
|
|
21
24
|
//# sourceMappingURL=TypedRequestHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedRequestHandler.d.ts","sourceRoot":"","sources":["../../src/types/TypedRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"TypedRequestHandler.d.ts","sourceRoot":"","sources":["../../src/types/TypedRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAE3C,KAAK,YAAY,CAAC,CAAC,SAAS,mBAAmB,IAC7C,SAAS,SAAS,CAAC,CAAC,SAAS,CAAC,GAC1B,mBAAmB,GACnB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC;AAEhE,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,mBAAmB,CAAE,SAAQ,IAAI,CACvE,OAAO,EACP,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CACxC;IACC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAC1E,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;CAC1B;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,oBAAoB,IAAI,IAAI,CAC9D,QAAQ,EACR,MAAM,GAAG,QAAQ,GAAG,YAAY,CACjC,GAAG;IACF,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;IAClE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EACpC,IAAI,EAAE,CAAC,KACJ,QAAQ,GAAG;QACd,IAAI,EAAE,CACJ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;YAAE,MAAM,EAAE,CAAC,CAAA;SAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAClE,QAAQ,CAAC;KACf,CAAC;IACF,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC;CAClE,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAC7B,MAAM,SAAS,mBAAmB,EAClC,OAAO,SAAS,oBAAoB,IAClC,CACF,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,EACzB,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,EAC3B,IAAI,EAAE,YAAY,KACf,OAAO,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,37 +1,41 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "express-endpoints-collection",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"repository": "https://github.com/pilotpirxie/express-endpoints-collection.git",
|
|
6
6
|
"author": "pilotpirxie <10637666+pilotpirxie@users.noreply.github.com>",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
9
|
"devDependencies": {
|
|
10
|
-
"@types/express": "^
|
|
10
|
+
"@types/express": "^5.0.6",
|
|
11
11
|
"@types/js-yaml": "^4.0.9",
|
|
12
12
|
"@types/jsonwebtoken": "^9.0.8",
|
|
13
|
-
"@types/node": "^
|
|
14
|
-
"body-parser": "^
|
|
13
|
+
"@types/node": "^24.1.0",
|
|
14
|
+
"body-parser": "^2.2.2",
|
|
15
15
|
"jsonwebtoken": "^9.0.2",
|
|
16
|
+
"knip": "^6.2.0",
|
|
16
17
|
"node-cache": "^5.1.2",
|
|
17
|
-
"prettier": "3.
|
|
18
|
+
"prettier": "3.8.1",
|
|
18
19
|
"ts-node": "^10.9.2",
|
|
19
|
-
"
|
|
20
|
+
"tsx": "^4.19.2",
|
|
21
|
+
"typescript": "^6.0.2"
|
|
20
22
|
},
|
|
21
23
|
"scripts": {
|
|
22
|
-
"
|
|
24
|
+
"fix": "prettier --write .",
|
|
23
25
|
"dev": "ts-node ./example/app.ts",
|
|
24
26
|
"minimal": "ts-node ./example/minimal.ts",
|
|
25
27
|
"multiple": "ts-node ./example/multiple.ts",
|
|
26
28
|
"middlewares": "ts-node ./example/middlewares.ts",
|
|
27
29
|
"build": "tsc",
|
|
28
|
-
"prepare": "tsc"
|
|
30
|
+
"prepare": "tsc",
|
|
31
|
+
"test": "tsc --noEmit && tsc --noEmit -p tsconfig.spec.json && tsc --noEmit -p tsconfig.example.json && node --import tsx --test --experimental-test-coverage \"src/**/*.spec.ts\" \"examples/**/*.spec.ts\"",
|
|
32
|
+
"lint": "tsc --noEmit && tsc --noEmit -p tsconfig.example.json && prettier --write . && knip"
|
|
29
33
|
},
|
|
30
34
|
"dependencies": {
|
|
31
|
-
"@asteasolutions/zod-to-openapi": "^
|
|
32
|
-
"express": "^
|
|
35
|
+
"@asteasolutions/zod-to-openapi": "^8.5.0",
|
|
36
|
+
"express": "^5.2.1",
|
|
33
37
|
"js-yaml": "^4.1.0",
|
|
34
|
-
"zod": "^3.
|
|
38
|
+
"zod": "^4.3.6"
|
|
35
39
|
},
|
|
36
40
|
"files": [
|
|
37
41
|
"dist"
|