express-zod-api 9.2.1 → 10.0.0-beta2
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 +62 -0
- package/README.md +28 -20
- package/SECURITY.md +14 -13
- package/dist/esm/index.js +58 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/index.d.ts +776 -21
- package/dist/index.js +55 -69
- package/dist/index.js.map +1 -1
- package/package.json +31 -25
- package/dist/api-response.d.ts +0 -16
- package/dist/api-response.js +0 -3
- package/dist/api-response.js.map +0 -1
- package/dist/client-helpers.d.ts +0 -23
- package/dist/client-helpers.js +0 -71
- package/dist/client-helpers.js.map +0 -1
- package/dist/client.d.ts +0 -15
- package/dist/client.js +0 -120
- package/dist/client.js.map +0 -1
- package/dist/common-helpers.d.ts +0 -46
- package/dist/common-helpers.js +0 -207
- package/dist/common-helpers.js.map +0 -1
- package/dist/config-type.d.ts +0 -59
- package/dist/config-type.js +0 -11
- package/dist/config-type.js.map +0 -1
- package/dist/date-in-schema.d.ts +0 -11
- package/dist/date-in-schema.js +0 -46
- package/dist/date-in-schema.js.map +0 -1
- package/dist/date-out-schema.d.ts +0 -10
- package/dist/date-out-schema.js +0 -31
- package/dist/date-out-schema.js.map +0 -1
- package/dist/depends-on-method.d.ts +0 -10
- package/dist/depends-on-method.js +0 -32
- package/dist/depends-on-method.js.map +0 -1
- package/dist/endpoint.d.ts +0 -98
- package/dist/endpoint.js +0 -261
- package/dist/endpoint.js.map +0 -1
- package/dist/endpoints-factory.d.ts +0 -161
- package/dist/endpoints-factory.js +0 -68
- package/dist/endpoints-factory.js.map +0 -1
- package/dist/errors.d.ts +0 -35
- package/dist/errors.js +0 -64
- package/dist/errors.js.map +0 -1
- package/dist/extend-zod.d.ts +0 -22
- package/dist/extend-zod.js +0 -33
- package/dist/extend-zod.js.map +0 -1
- package/dist/file-schema.d.ts +0 -23
- package/dist/file-schema.js +0 -55
- package/dist/file-schema.js.map +0 -1
- package/dist/io-schema.d.ts +0 -16
- package/dist/io-schema.js +0 -21
- package/dist/io-schema.js.map +0 -1
- package/dist/logger.d.ts +0 -3
- package/dist/logger.js +0 -54
- package/dist/logger.js.map +0 -1
- package/dist/logical-container.d.ts +0 -16
- package/dist/logical-container.js +0 -85
- package/dist/logical-container.js.map +0 -1
- package/dist/metadata.d.ts +0 -27
- package/dist/metadata.js +0 -58
- package/dist/metadata.js.map +0 -1
- package/dist/method.d.ts +0 -8
- package/dist/method.js +0 -5
- package/dist/method.js.map +0 -1
- package/dist/middleware.d.ts +0 -32
- package/dist/middleware.js +0 -16
- package/dist/middleware.js.map +0 -1
- package/dist/mime.d.ts +0 -2
- package/dist/mime.js +0 -10
- package/dist/mime.js.map +0 -1
- package/dist/mock.d.ts +0 -38
- package/dist/mock.js +0 -66
- package/dist/mock.js.map +0 -1
- package/dist/open-api-helpers.d.ts +0 -83
- package/dist/open-api-helpers.js +0 -621
- package/dist/open-api-helpers.js.map +0 -1
- package/dist/open-api.d.ts +0 -25
- package/dist/open-api.js +0 -98
- package/dist/open-api.js.map +0 -1
- package/dist/result-handler.d.ts +0 -151
- package/dist/result-handler.js +0 -71
- package/dist/result-handler.js.map +0 -1
- package/dist/routing-walker.d.ts +0 -12
- package/dist/routing-walker.js +0 -55
- package/dist/routing-walker.js.map +0 -1
- package/dist/routing.d.ts +0 -15
- package/dist/routing.js +0 -25
- package/dist/routing.js.map +0 -1
- package/dist/schema-walker.d.ts +0 -23
- package/dist/schema-walker.js +0 -26
- package/dist/schema-walker.js.map +0 -1
- package/dist/security.d.ts +0 -72
- package/dist/security.js +0 -3
- package/dist/security.js.map +0 -1
- package/dist/serve-static.d.ts +0 -9
- package/dist/serve-static.js +0 -17
- package/dist/serve-static.js.map +0 -1
- package/dist/server.d.ts +0 -20
- package/dist/server.js +0 -131
- package/dist/server.js.map +0 -1
- package/dist/startup-logo.d.ts +0 -1
- package/dist/startup-logo.js +0 -27
- package/dist/startup-logo.js.map +0 -1
- package/dist/upload-schema.d.ts +0 -11
- package/dist/upload-schema.js +0 -42
- package/dist/upload-schema.js.map +0 -1
- package/dist/zts-helpers.d.ts +0 -37
- package/dist/zts-helpers.js +0 -60
- package/dist/zts-helpers.js.map +0 -1
- package/dist/zts.d.ts +0 -31
- package/dist/zts.js +0 -147
- package/dist/zts.js.map +0 -1
- package/dist-esm/api-response.js +0 -2
- package/dist-esm/api-response.js.map +0 -1
- package/dist-esm/client-helpers.js +0 -48
- package/dist-esm/client-helpers.js.map +0 -1
- package/dist-esm/client.js +0 -113
- package/dist-esm/client.js.map +0 -1
- package/dist-esm/common-helpers.js +0 -188
- package/dist-esm/common-helpers.js.map +0 -1
- package/dist-esm/config-type.js +0 -7
- package/dist-esm/config-type.js.map +0 -1
- package/dist-esm/date-in-schema.js +0 -42
- package/dist-esm/date-in-schema.js.map +0 -1
- package/dist-esm/date-out-schema.js +0 -27
- package/dist-esm/date-out-schema.js.map +0 -1
- package/dist-esm/depends-on-method.js +0 -28
- package/dist-esm/depends-on-method.js.map +0 -1
- package/dist-esm/endpoint.js +0 -256
- package/dist-esm/endpoint.js.map +0 -1
- package/dist-esm/endpoints-factory.js +0 -64
- package/dist-esm/endpoints-factory.js.map +0 -1
- package/dist-esm/errors.js +0 -54
- package/dist-esm/errors.js.map +0 -1
- package/dist-esm/extend-zod.js +0 -16
- package/dist-esm/extend-zod.js.map +0 -1
- package/dist-esm/file-schema.js +0 -51
- package/dist-esm/file-schema.js.map +0 -1
- package/dist-esm/index.js +0 -19
- package/dist-esm/index.js.map +0 -1
- package/dist-esm/io-schema.js +0 -17
- package/dist-esm/io-schema.js.map +0 -1
- package/dist-esm/logger.js +0 -47
- package/dist-esm/logger.js.map +0 -1
- package/dist-esm/logical-container.js +0 -78
- package/dist-esm/logical-container.js.map +0 -1
- package/dist-esm/metadata.js +0 -51
- package/dist-esm/metadata.js.map +0 -1
- package/dist-esm/method.js +0 -2
- package/dist-esm/method.js.map +0 -1
- package/dist-esm/middleware.js +0 -12
- package/dist-esm/middleware.js.map +0 -1
- package/dist-esm/mime.js +0 -4
- package/dist-esm/mime.js.map +0 -1
- package/dist-esm/mock.js +0 -57
- package/dist-esm/mock.js.map +0 -1
- package/dist-esm/open-api-helpers.js +0 -575
- package/dist-esm/open-api-helpers.js.map +0 -1
- package/dist-esm/open-api.js +0 -94
- package/dist-esm/open-api.js.map +0 -1
- package/dist-esm/package.json +0 -1
- package/dist-esm/result-handler.js +0 -66
- package/dist-esm/result-handler.js.map +0 -1
- package/dist-esm/routing-walker.js +0 -51
- package/dist-esm/routing-walker.js.map +0 -1
- package/dist-esm/routing.js +0 -21
- package/dist-esm/routing.js.map +0 -1
- package/dist-esm/schema-walker.js +0 -22
- package/dist-esm/schema-walker.js.map +0 -1
- package/dist-esm/security.js +0 -2
- package/dist-esm/security.js.map +0 -1
- package/dist-esm/serve-static.js +0 -10
- package/dist-esm/serve-static.js.map +0 -1
- package/dist-esm/server.js +0 -98
- package/dist-esm/server.js.map +0 -1
- package/dist-esm/startup-logo.js +0 -23
- package/dist-esm/startup-logo.js.map +0 -1
- package/dist-esm/upload-schema.js +0 -38
- package/dist-esm/upload-schema.js.map +0 -1
- package/dist-esm/zts-helpers.js +0 -50
- package/dist-esm/zts-helpers.js.map +0 -1
- package/dist-esm/zts.js +0 -140
- package/dist-esm/zts.js.map +0 -1
package/dist/common-helpers.js
DELETED
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.errToObj = exports.tryToTransform = exports.makeCleanId = exports.hasCoercion = exports.hasUpload = exports.hasTopLevelTransformingEffect = exports.getRoutePathParams = exports.combinations = exports.getExamples = exports.getStatusCodeFromError = exports.getMessageFromError = exports.makeErrorFromAnything = exports.isValidDate = exports.isLoggerConfig = exports.getInput = exports.getActualMethod = exports.defaultInputSources = exports.routePathParamsRegex = void 0;
|
|
4
|
-
const http_errors_1 = require("http-errors");
|
|
5
|
-
const zod_1 = require("zod");
|
|
6
|
-
const config_type_1 = require("./config-type");
|
|
7
|
-
const errors_1 = require("./errors");
|
|
8
|
-
const metadata_1 = require("./metadata");
|
|
9
|
-
const mime_1 = require("./mime");
|
|
10
|
-
const upload_schema_1 = require("./upload-schema");
|
|
11
|
-
/** @see https://expressjs.com/en/guide/routing.html */
|
|
12
|
-
exports.routePathParamsRegex = /:([A-Za-z0-9_]+)/g;
|
|
13
|
-
function areFilesAvailable(request) {
|
|
14
|
-
const contentType = request.header("content-type") || "";
|
|
15
|
-
const isMultipart = contentType.slice(0, mime_1.mimeMultipart.length).toLowerCase() === mime_1.mimeMultipart;
|
|
16
|
-
return "files" in request && isMultipart;
|
|
17
|
-
}
|
|
18
|
-
exports.defaultInputSources = {
|
|
19
|
-
get: ["query", "params"],
|
|
20
|
-
post: ["body", "params", "files"],
|
|
21
|
-
put: ["body", "params"],
|
|
22
|
-
patch: ["body", "params"],
|
|
23
|
-
delete: ["query", "params"],
|
|
24
|
-
};
|
|
25
|
-
const fallbackInputSource = ["body", "query", "params"];
|
|
26
|
-
const getActualMethod = (request) => request.method.toLowerCase();
|
|
27
|
-
exports.getActualMethod = getActualMethod;
|
|
28
|
-
function getInput(request, inputAssignment) {
|
|
29
|
-
const method = (0, exports.getActualMethod)(request);
|
|
30
|
-
if (method === "options") {
|
|
31
|
-
return {};
|
|
32
|
-
}
|
|
33
|
-
let props = fallbackInputSource;
|
|
34
|
-
if (method in exports.defaultInputSources) {
|
|
35
|
-
props = exports.defaultInputSources[method];
|
|
36
|
-
}
|
|
37
|
-
if (inputAssignment && method in inputAssignment) {
|
|
38
|
-
props = inputAssignment[method] || props;
|
|
39
|
-
}
|
|
40
|
-
return props
|
|
41
|
-
.filter((prop) => (prop === "files" ? areFilesAvailable(request) : true))
|
|
42
|
-
.reduce((carry, prop) => ({
|
|
43
|
-
...carry,
|
|
44
|
-
...request[prop],
|
|
45
|
-
}), {});
|
|
46
|
-
}
|
|
47
|
-
exports.getInput = getInput;
|
|
48
|
-
function isLoggerConfig(logger) {
|
|
49
|
-
return (typeof logger === "object" &&
|
|
50
|
-
"level" in logger &&
|
|
51
|
-
"color" in logger &&
|
|
52
|
-
Object.keys(config_type_1.loggerLevels).includes(logger.level) &&
|
|
53
|
-
typeof logger.color === "boolean");
|
|
54
|
-
}
|
|
55
|
-
exports.isLoggerConfig = isLoggerConfig;
|
|
56
|
-
function isValidDate(date) {
|
|
57
|
-
return !isNaN(date.getTime());
|
|
58
|
-
}
|
|
59
|
-
exports.isValidDate = isValidDate;
|
|
60
|
-
function makeErrorFromAnything(subject) {
|
|
61
|
-
return subject instanceof Error
|
|
62
|
-
? subject
|
|
63
|
-
: new Error(typeof subject === "symbol" ? subject.toString() : `${subject}`);
|
|
64
|
-
}
|
|
65
|
-
exports.makeErrorFromAnything = makeErrorFromAnything;
|
|
66
|
-
function getMessageFromError(error) {
|
|
67
|
-
if (error instanceof zod_1.z.ZodError) {
|
|
68
|
-
return error.issues
|
|
69
|
-
.map(({ path, message }) => (path.length ? [path.join("/")] : []).concat(message).join(": "))
|
|
70
|
-
.join("; ");
|
|
71
|
-
}
|
|
72
|
-
if (error instanceof errors_1.OutputValidationError) {
|
|
73
|
-
const hasFirstField = error.originalError.issues[0]?.path.length > 0;
|
|
74
|
-
return `output${hasFirstField ? "/" : ": "}${error.message}`;
|
|
75
|
-
}
|
|
76
|
-
return error.message;
|
|
77
|
-
}
|
|
78
|
-
exports.getMessageFromError = getMessageFromError;
|
|
79
|
-
function getStatusCodeFromError(error) {
|
|
80
|
-
if (error instanceof http_errors_1.HttpError) {
|
|
81
|
-
return error.statusCode;
|
|
82
|
-
}
|
|
83
|
-
if (error instanceof errors_1.InputValidationError) {
|
|
84
|
-
return 400;
|
|
85
|
-
}
|
|
86
|
-
return 500;
|
|
87
|
-
}
|
|
88
|
-
exports.getStatusCodeFromError = getStatusCodeFromError;
|
|
89
|
-
const getExamples = (schema, parseToOutput) => {
|
|
90
|
-
const examples = (0, metadata_1.getMeta)(schema, "examples");
|
|
91
|
-
if (examples === undefined) {
|
|
92
|
-
return [];
|
|
93
|
-
}
|
|
94
|
-
return examples.reduce((carry, example) => {
|
|
95
|
-
const parsedExample = schema.safeParse(example);
|
|
96
|
-
return carry.concat(parsedExample.success
|
|
97
|
-
? parseToOutput
|
|
98
|
-
? parsedExample.data
|
|
99
|
-
: example
|
|
100
|
-
: []);
|
|
101
|
-
}, []);
|
|
102
|
-
};
|
|
103
|
-
exports.getExamples = getExamples;
|
|
104
|
-
const combinations = (a, b) => {
|
|
105
|
-
if (a.length === 0) {
|
|
106
|
-
return { type: "single", value: b };
|
|
107
|
-
}
|
|
108
|
-
if (b.length === 0) {
|
|
109
|
-
return { type: "single", value: a };
|
|
110
|
-
}
|
|
111
|
-
const result = [];
|
|
112
|
-
for (const itemA of a) {
|
|
113
|
-
for (const itemB of b) {
|
|
114
|
-
result.push([itemA, itemB]);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
return { type: "tuple", value: result };
|
|
118
|
-
};
|
|
119
|
-
exports.combinations = combinations;
|
|
120
|
-
function getRoutePathParams(path) {
|
|
121
|
-
const match = path.match(exports.routePathParamsRegex);
|
|
122
|
-
if (!match) {
|
|
123
|
-
return [];
|
|
124
|
-
}
|
|
125
|
-
return match.map((param) => param.slice(1));
|
|
126
|
-
}
|
|
127
|
-
exports.getRoutePathParams = getRoutePathParams;
|
|
128
|
-
const reduceBool = (arr) => arr.reduce((carry, bool) => carry || bool, false);
|
|
129
|
-
function hasTopLevelTransformingEffect(schema) {
|
|
130
|
-
if (schema instanceof zod_1.z.ZodEffects) {
|
|
131
|
-
if (schema._def.effect.type !== "refinement") {
|
|
132
|
-
return true;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
if (schema instanceof zod_1.z.ZodUnion) {
|
|
136
|
-
return reduceBool(schema.options.map(hasTopLevelTransformingEffect));
|
|
137
|
-
}
|
|
138
|
-
if (schema instanceof zod_1.z.ZodIntersection) {
|
|
139
|
-
return reduceBool([schema._def.left, schema._def.right].map(hasTopLevelTransformingEffect));
|
|
140
|
-
}
|
|
141
|
-
return false; // ZodObject left
|
|
142
|
-
}
|
|
143
|
-
exports.hasTopLevelTransformingEffect = hasTopLevelTransformingEffect;
|
|
144
|
-
function hasUpload(schema) {
|
|
145
|
-
if (schema instanceof upload_schema_1.ZodUpload) {
|
|
146
|
-
return true;
|
|
147
|
-
}
|
|
148
|
-
if (schema instanceof zod_1.z.ZodObject) {
|
|
149
|
-
return reduceBool(Object.values(schema.shape).map(hasUpload));
|
|
150
|
-
}
|
|
151
|
-
if (schema instanceof zod_1.z.ZodUnion) {
|
|
152
|
-
return reduceBool(schema.options.map(hasUpload));
|
|
153
|
-
}
|
|
154
|
-
if (schema instanceof zod_1.z.ZodIntersection) {
|
|
155
|
-
return reduceBool([schema._def.left, schema._def.right].map(hasUpload));
|
|
156
|
-
}
|
|
157
|
-
if (schema instanceof zod_1.z.ZodOptional || schema instanceof zod_1.z.ZodNullable) {
|
|
158
|
-
return hasUpload(schema.unwrap());
|
|
159
|
-
}
|
|
160
|
-
if (schema instanceof zod_1.z.ZodEffects || schema instanceof zod_1.z.ZodTransformer) {
|
|
161
|
-
return hasUpload(schema._def.schema);
|
|
162
|
-
}
|
|
163
|
-
if (schema instanceof zod_1.z.ZodRecord) {
|
|
164
|
-
return hasUpload(schema._def.valueType);
|
|
165
|
-
}
|
|
166
|
-
if (schema instanceof zod_1.z.ZodArray) {
|
|
167
|
-
return hasUpload(schema._def.type);
|
|
168
|
-
}
|
|
169
|
-
if (schema instanceof zod_1.z.ZodDefault) {
|
|
170
|
-
return hasUpload(schema._def.innerType);
|
|
171
|
-
}
|
|
172
|
-
return false;
|
|
173
|
-
}
|
|
174
|
-
exports.hasUpload = hasUpload;
|
|
175
|
-
/**
|
|
176
|
-
* @desc isNullable() and isOptional() validate the schema's input
|
|
177
|
-
* @desc They always return true in case of coercion, which should be taken into account when depicting response
|
|
178
|
-
*/
|
|
179
|
-
const hasCoercion = (schema) => "coerce" in schema._def && typeof schema._def.coerce === "boolean"
|
|
180
|
-
? schema._def.coerce
|
|
181
|
-
: false;
|
|
182
|
-
exports.hasCoercion = hasCoercion;
|
|
183
|
-
const makeCleanId = (path, method, suffix) => {
|
|
184
|
-
return [method]
|
|
185
|
-
.concat(path.split("/"))
|
|
186
|
-
.concat(suffix || [])
|
|
187
|
-
.flatMap((entry) => entry.split(/[^A-Z0-9]/gi))
|
|
188
|
-
.map((entry) => entry.slice(0, 1).toUpperCase() + entry.slice(1).toLowerCase())
|
|
189
|
-
.join("");
|
|
190
|
-
};
|
|
191
|
-
exports.makeCleanId = makeCleanId;
|
|
192
|
-
const tryToTransform = ({ effect, sample, }) => {
|
|
193
|
-
try {
|
|
194
|
-
return typeof effect.transform(sample, {
|
|
195
|
-
addIssue: () => { },
|
|
196
|
-
path: [],
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
catch (e) {
|
|
200
|
-
return undefined;
|
|
201
|
-
}
|
|
202
|
-
};
|
|
203
|
-
exports.tryToTransform = tryToTransform;
|
|
204
|
-
// the copy of the private Zod errorUtil.errToObj
|
|
205
|
-
const errToObj = (message) => typeof message === "string" ? { message } : message || {};
|
|
206
|
-
exports.errToObj = errToObj;
|
|
207
|
-
//# sourceMappingURL=common-helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import compression from "compression";
|
|
3
|
-
import { NextHandleFunction } from "connect";
|
|
4
|
-
import { Express, Request } from "express";
|
|
5
|
-
import fileUpload from "express-fileupload";
|
|
6
|
-
import { ServerOptions } from "https";
|
|
7
|
-
import { Logger } from "winston";
|
|
8
|
-
import { AbstractEndpoint } from "./endpoint";
|
|
9
|
-
import { Method } from "./method";
|
|
10
|
-
import { ResultHandlerDefinition } from "./result-handler";
|
|
11
|
-
export declare const loggerLevels: {
|
|
12
|
-
silent: boolean;
|
|
13
|
-
warn: boolean;
|
|
14
|
-
debug: boolean;
|
|
15
|
-
};
|
|
16
|
-
export interface LoggerConfig {
|
|
17
|
-
level: keyof typeof loggerLevels;
|
|
18
|
-
color: boolean;
|
|
19
|
-
}
|
|
20
|
-
type UploadOptions = Pick<fileUpload.Options, "createParentPath" | "uriDecodeFileNames" | "safeFileNames" | "preserveExtension" | "useTempFiles" | "tempFileDir" | "debug" | "uploadTimeout">;
|
|
21
|
-
type CompressionOptions = Pick<compression.CompressionOptions, "threshold" | "level" | "strategy" | "chunkSize" | "memLevel">;
|
|
22
|
-
export interface ServerConfig {
|
|
23
|
-
server: {
|
|
24
|
-
listen: number | string;
|
|
25
|
-
jsonParser?: NextHandleFunction;
|
|
26
|
-
upload?: boolean | UploadOptions;
|
|
27
|
-
compression?: boolean | CompressionOptions;
|
|
28
|
-
};
|
|
29
|
-
https?: {
|
|
30
|
-
options: ServerOptions;
|
|
31
|
-
listen: number | string;
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
export interface AppConfig {
|
|
35
|
-
app: Express;
|
|
36
|
-
}
|
|
37
|
-
export type InputSource = keyof Pick<Request, "query" | "body" | "files" | "params">;
|
|
38
|
-
export type InputSources = Record<Method, InputSource[]>;
|
|
39
|
-
type Headers = Record<string, string>;
|
|
40
|
-
type HeadersProvider = (params: {
|
|
41
|
-
defaultHeaders: Headers;
|
|
42
|
-
request: Request;
|
|
43
|
-
endpoint: AbstractEndpoint;
|
|
44
|
-
logger: Logger;
|
|
45
|
-
}) => Headers | Promise<Headers>;
|
|
46
|
-
export type TagsConfig<TAG extends string> = Record<TAG, string | {
|
|
47
|
-
description: string;
|
|
48
|
-
url?: string;
|
|
49
|
-
}>;
|
|
50
|
-
export interface CommonConfig<TAG extends string = string> {
|
|
51
|
-
cors: boolean | HeadersProvider;
|
|
52
|
-
errorHandler?: ResultHandlerDefinition<any, any>;
|
|
53
|
-
logger: LoggerConfig | Logger;
|
|
54
|
-
startupLogo?: boolean;
|
|
55
|
-
inputSources?: Partial<InputSources>;
|
|
56
|
-
tags?: TagsConfig<TAG>;
|
|
57
|
-
}
|
|
58
|
-
export declare const createConfig: <TAG extends string, T extends (AppConfig | ServerConfig) & CommonConfig<TAG>>(config: T) => T;
|
|
59
|
-
export {};
|
package/dist/config-type.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createConfig = exports.loggerLevels = void 0;
|
|
4
|
-
exports.loggerLevels = {
|
|
5
|
-
silent: true,
|
|
6
|
-
warn: true,
|
|
7
|
-
debug: true,
|
|
8
|
-
};
|
|
9
|
-
const createConfig = (config) => config;
|
|
10
|
-
exports.createConfig = createConfig;
|
|
11
|
-
//# sourceMappingURL=config-type.js.map
|
package/dist/config-type.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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;AAmFK,MAAM,YAAY,GAAG,CAI1B,MAAS,EACN,EAAE,CAAC,MAAM,CAAC;AALF,QAAA,YAAY,gBAKV"}
|
package/dist/date-in-schema.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ParseInput, ParseReturnType, ZodType, ZodTypeDef } from "zod";
|
|
2
|
-
export declare const isoDateRegex: RegExp;
|
|
3
|
-
declare const zodDateInKind = "ZodDateIn";
|
|
4
|
-
export interface ZodDateInDef extends ZodTypeDef {
|
|
5
|
-
typeName: typeof zodDateInKind;
|
|
6
|
-
}
|
|
7
|
-
export declare class ZodDateIn extends ZodType<Date, ZodDateInDef, string> {
|
|
8
|
-
_parse(input: ParseInput): ParseReturnType<Date>;
|
|
9
|
-
static create: () => ZodDateIn;
|
|
10
|
-
}
|
|
11
|
-
export {};
|
package/dist/date-in-schema.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ZodDateIn = exports.isoDateRegex = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const common_helpers_1 = require("./common-helpers");
|
|
6
|
-
// simple regex for ISO date, supports the following formats:
|
|
7
|
-
// 2021-01-01T00:00:00.000Z
|
|
8
|
-
// 2021-01-01T00:00:00.0Z
|
|
9
|
-
// 2021-01-01T00:00:00Z
|
|
10
|
-
// 2021-01-01T00:00:00
|
|
11
|
-
// 2021-01-01
|
|
12
|
-
exports.isoDateRegex = /^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$/;
|
|
13
|
-
const zodDateInKind = "ZodDateIn";
|
|
14
|
-
class ZodDateIn extends zod_1.ZodType {
|
|
15
|
-
_parse(input) {
|
|
16
|
-
const { status, ctx } = this._processInputParams(input);
|
|
17
|
-
if (ctx.parsedType !== zod_1.ZodParsedType.string) {
|
|
18
|
-
(0, zod_1.addIssueToContext)(ctx, {
|
|
19
|
-
code: zod_1.ZodIssueCode.invalid_type,
|
|
20
|
-
expected: zod_1.ZodParsedType.string,
|
|
21
|
-
received: ctx.parsedType,
|
|
22
|
-
});
|
|
23
|
-
return zod_1.INVALID;
|
|
24
|
-
}
|
|
25
|
-
if (!exports.isoDateRegex.test(ctx.data)) {
|
|
26
|
-
(0, zod_1.addIssueToContext)(ctx, {
|
|
27
|
-
code: zod_1.ZodIssueCode.invalid_string,
|
|
28
|
-
validation: "regex",
|
|
29
|
-
});
|
|
30
|
-
status.dirty();
|
|
31
|
-
}
|
|
32
|
-
const date = new Date(ctx.data);
|
|
33
|
-
if (!(0, common_helpers_1.isValidDate)(date)) {
|
|
34
|
-
(0, zod_1.addIssueToContext)(ctx, {
|
|
35
|
-
code: zod_1.ZodIssueCode.invalid_date,
|
|
36
|
-
});
|
|
37
|
-
return zod_1.INVALID;
|
|
38
|
-
}
|
|
39
|
-
return { status: status.value, value: date };
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
exports.ZodDateIn = ZodDateIn;
|
|
43
|
-
ZodDateIn.create = () => new ZodDateIn({
|
|
44
|
-
typeName: zodDateInKind,
|
|
45
|
-
});
|
|
46
|
-
//# sourceMappingURL=date-in-schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date-in-schema.js","sourceRoot":"","sources":["../src/date-in-schema.ts"],"names":[],"mappings":";;;AAAA,6BASa;AACb,qDAA+C;AAE/C,6DAA6D;AAC7D,2BAA2B;AAC3B,yBAAyB;AACzB,uBAAuB;AACvB,sBAAsB;AACtB,aAAa;AACA,QAAA,YAAY,GACvB,oDAAoD,CAAC;AAEvD,MAAM,aAAa,GAAG,WAAW,CAAC;AAMlC,MAAa,SAAU,SAAQ,aAAmC;IAChE,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,IAAI,CAAC,oBAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAc,CAAC,EAAE;YAC1C,IAAA,uBAAiB,EAAC,GAAG,EAAE;gBACrB,IAAI,EAAE,kBAAY,CAAC,cAAc;gBACjC,UAAU,EAAE,OAAO;aACpB,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,EAAE,CAAC;SAChB;QAED,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEhC,IAAI,CAAC,IAAA,4BAAW,EAAC,IAAI,CAAC,EAAE;YACtB,IAAA,uBAAiB,EAAC,GAAG,EAAE;gBACrB,IAAI,EAAE,kBAAY,CAAC,YAAY;aAChC,CAAC,CAAC;YACH,OAAO,aAAO,CAAC;SAChB;QAED,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC/C,CAAC;;AA9BH,8BAoCC;AAJQ,gBAAM,GAAG,GAAG,EAAE,CACnB,IAAI,SAAS,CAAC;IACZ,QAAQ,EAAE,aAAa;CACxB,CAAC,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { ParseInput, ParseReturnType, ZodType, ZodTypeDef } from "zod";
|
|
2
|
-
declare const zodDateOutKind = "ZodDateOut";
|
|
3
|
-
export interface ZodDateOutDef extends ZodTypeDef {
|
|
4
|
-
typeName: typeof zodDateOutKind;
|
|
5
|
-
}
|
|
6
|
-
export declare class ZodDateOut extends ZodType<string, ZodDateOutDef, Date> {
|
|
7
|
-
_parse(input: ParseInput): ParseReturnType<string>;
|
|
8
|
-
static create: () => ZodDateOut;
|
|
9
|
-
}
|
|
10
|
-
export {};
|
package/dist/date-out-schema.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ZodDateOut = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const common_helpers_1 = require("./common-helpers");
|
|
6
|
-
const zodDateOutKind = "ZodDateOut";
|
|
7
|
-
class ZodDateOut extends zod_1.ZodType {
|
|
8
|
-
_parse(input) {
|
|
9
|
-
const { status, ctx } = this._processInputParams(input);
|
|
10
|
-
if (ctx.parsedType !== zod_1.ZodParsedType.date) {
|
|
11
|
-
(0, zod_1.addIssueToContext)(ctx, {
|
|
12
|
-
code: zod_1.ZodIssueCode.invalid_type,
|
|
13
|
-
expected: zod_1.ZodParsedType.date,
|
|
14
|
-
received: ctx.parsedType,
|
|
15
|
-
});
|
|
16
|
-
return zod_1.INVALID;
|
|
17
|
-
}
|
|
18
|
-
if (!(0, common_helpers_1.isValidDate)(ctx.data)) {
|
|
19
|
-
(0, zod_1.addIssueToContext)(ctx, {
|
|
20
|
-
code: zod_1.ZodIssueCode.invalid_date,
|
|
21
|
-
});
|
|
22
|
-
return zod_1.INVALID;
|
|
23
|
-
}
|
|
24
|
-
return { status: status.value, value: ctx.data.toISOString() };
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
exports.ZodDateOut = ZodDateOut;
|
|
28
|
-
ZodDateOut.create = () => new ZodDateOut({
|
|
29
|
-
typeName: zodDateOutKind,
|
|
30
|
-
});
|
|
31
|
-
//# sourceMappingURL=date-out-schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date-out-schema.js","sourceRoot":"","sources":["../src/date-out-schema.ts"],"names":[],"mappings":";;;AAAA,6BASa;AACb,qDAA+C;AAE/C,MAAM,cAAc,GAAG,YAAY,CAAC;AAMpC,MAAa,UAAW,SAAQ,aAAoC;IAClE,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,IAAI,EAAE;YACzC,IAAA,uBAAiB,EAAC,GAAG,EAAE;gBACrB,IAAI,EAAE,kBAAY,CAAC,YAAY;gBAC/B,QAAQ,EAAE,mBAAa,CAAC,IAAI;gBAC5B,QAAQ,EAAE,GAAG,CAAC,UAAU;aACzB,CAAC,CAAC;YACH,OAAO,aAAO,CAAC;SAChB;QAED,IAAI,CAAC,IAAA,4BAAW,EAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC1B,IAAA,uBAAiB,EAAC,GAAG,EAAE;gBACrB,IAAI,EAAE,kBAAY,CAAC,YAAY;aAChC,CAAC,CAAC;YACH,OAAO,aAAO,CAAC;SAChB;QAED,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAG,GAAG,CAAC,IAAa,CAAC,WAAW,EAAE,EAAE,CAAC;IAC3E,CAAC;;AApBH,gCA0BC;AAJQ,iBAAM,GAAG,GAAG,EAAE,CACnB,IAAI,UAAU,CAAC;IACb,QAAQ,EAAE,cAAc;CACzB,CAAC,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Endpoint } from "./endpoint";
|
|
2
|
-
import { Method } from "./method";
|
|
3
|
-
export declare class DependsOnMethod {
|
|
4
|
-
readonly methods: {
|
|
5
|
-
[K in Method]?: Endpoint<any, any, any, K, any, any, any, any> | Endpoint<any, any, any, Method, any, any, any, any>;
|
|
6
|
-
};
|
|
7
|
-
constructor(methods: {
|
|
8
|
-
[K in Method]?: Endpoint<any, any, any, K, any, any, any, any> | Endpoint<any, any, any, Method, any, any, any, any>;
|
|
9
|
-
});
|
|
10
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DependsOnMethod = void 0;
|
|
4
|
-
const errors_1 = require("./errors");
|
|
5
|
-
class DependsOnMethod {
|
|
6
|
-
constructor(methods) {
|
|
7
|
-
this.methods = methods;
|
|
8
|
-
Object.keys(methods).forEach((key) => {
|
|
9
|
-
if (key in methods) {
|
|
10
|
-
const endpointMethods = methods[key]?.getMethods() || [];
|
|
11
|
-
if (!endpointMethods.includes(key)) {
|
|
12
|
-
throw new errors_1.DependsOnMethodError(`The endpoint assigned to the '${key}' parameter must have at least this method in its specification.\n` +
|
|
13
|
-
"This error should prevent mistakes during the development process.\n" +
|
|
14
|
-
"Example:\n\n" +
|
|
15
|
-
`new ${this.constructor.name}({\n` +
|
|
16
|
-
` ${key}: endpointsFactory.build({\n` +
|
|
17
|
-
` methods: ['${key}', ` +
|
|
18
|
-
((methods[key]?.getMethods() || [])
|
|
19
|
-
.map((m) => `'${m}'`)
|
|
20
|
-
.join(", ") || "...") +
|
|
21
|
-
"]\n" +
|
|
22
|
-
` // or method: '${key}'\n` +
|
|
23
|
-
" ...\n" +
|
|
24
|
-
" })\n" +
|
|
25
|
-
"});\n");
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
exports.DependsOnMethod = DependsOnMethod;
|
|
32
|
-
//# sourceMappingURL=depends-on-method.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"depends-on-method.js","sourceRoot":"","sources":["../src/depends-on-method.ts"],"names":[],"mappings":";;;AACA,qCAAgD;AAGhD,MAAa,eAAe;IAC1B,YACkB,OAIf;QAJe,YAAO,GAAP,OAAO,CAItB;QAEA,MAAM,CAAC,IAAI,CAAC,OAAO,CAA8B,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjE,IAAI,GAAG,IAAI,OAAO,EAAE;gBAClB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;gBACzD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBAClC,MAAM,IAAI,6BAAoB,CAC5B,iCAAiC,GAAG,oEAAoE;wBACtG,sEAAsE;wBACtE,cAAc;wBACd,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,MAAM;wBAClC,KAAK,GAAG,8BAA8B;wBACtC,kBAAkB,GAAG,KAAK;wBAC1B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;6BAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;6BACpB,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;wBACvB,KAAK;wBACL,sBAAsB,GAAG,KAAK;wBAC9B,WAAW;wBACX,QAAQ;wBACR,OAAO,CACV,CAAC;iBACH;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAhCD,0CAgCC"}
|
package/dist/endpoint.d.ts
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { Request, Response } from "express";
|
|
2
|
-
import { Logger } from "winston";
|
|
3
|
-
import { z } from "zod";
|
|
4
|
-
import { CommonConfig } from "./config-type";
|
|
5
|
-
import { FlatObject } from "./common-helpers";
|
|
6
|
-
import { IOSchema } from "./io-schema";
|
|
7
|
-
import { LogicalContainer } from "./logical-container";
|
|
8
|
-
import { Method, MethodsDefinition } from "./method";
|
|
9
|
-
import { AnyMiddlewareDef } from "./middleware";
|
|
10
|
-
import { ResultHandlerDefinition } from "./result-handler";
|
|
11
|
-
import { Security } from "./security";
|
|
12
|
-
export type Handler<IN, OUT, OPT> = (params: {
|
|
13
|
-
input: IN;
|
|
14
|
-
options: OPT;
|
|
15
|
-
logger: Logger;
|
|
16
|
-
}) => Promise<OUT>;
|
|
17
|
-
type DescriptionVariant = "short" | "long";
|
|
18
|
-
type IOVariant = "input" | "output";
|
|
19
|
-
type ResponseVariant = "positive" | "negative";
|
|
20
|
-
type MimeVariant = Extract<IOVariant, "input"> | ResponseVariant;
|
|
21
|
-
export declare abstract class AbstractEndpoint {
|
|
22
|
-
abstract execute(params: {
|
|
23
|
-
request: Request;
|
|
24
|
-
response: Response;
|
|
25
|
-
logger: Logger;
|
|
26
|
-
config: CommonConfig;
|
|
27
|
-
}): Promise<void>;
|
|
28
|
-
abstract getDescription(variant: DescriptionVariant): string | undefined;
|
|
29
|
-
abstract getMethods(): Method[];
|
|
30
|
-
abstract getSchema(variant: IOVariant): IOSchema;
|
|
31
|
-
abstract getSchema(variant: ResponseVariant): z.ZodTypeAny;
|
|
32
|
-
abstract getMimeTypes(variant: MimeVariant): string[];
|
|
33
|
-
abstract getStatusCode(variant: ResponseVariant): number;
|
|
34
|
-
abstract getSecurity(): LogicalContainer<Security>;
|
|
35
|
-
abstract getScopes(): string[];
|
|
36
|
-
abstract getTags(): string[];
|
|
37
|
-
abstract _setSiblingMethods(methods: Method[]): void;
|
|
38
|
-
}
|
|
39
|
-
type EndpointProps<IN extends IOSchema, OUT extends IOSchema, OPT extends FlatObject, M extends Method, POS extends z.ZodTypeAny, NEG extends z.ZodTypeAny, SCO extends string, TAG extends string> = {
|
|
40
|
-
middlewares: AnyMiddlewareDef[];
|
|
41
|
-
inputSchema: IN;
|
|
42
|
-
outputSchema: OUT;
|
|
43
|
-
handler: Handler<z.output<IN>, z.input<OUT>, OPT>;
|
|
44
|
-
resultHandler: ResultHandlerDefinition<POS, NEG>;
|
|
45
|
-
description?: string;
|
|
46
|
-
shortDescription?: string;
|
|
47
|
-
} & ({
|
|
48
|
-
scopes?: SCO[];
|
|
49
|
-
} | {
|
|
50
|
-
scope?: SCO;
|
|
51
|
-
}) & ({
|
|
52
|
-
tags?: TAG[];
|
|
53
|
-
} | {
|
|
54
|
-
tag?: TAG;
|
|
55
|
-
}) & MethodsDefinition<M>;
|
|
56
|
-
export declare class Endpoint<IN extends IOSchema, OUT extends IOSchema, OPT extends FlatObject, M extends Method, POS extends z.ZodTypeAny, NEG extends z.ZodTypeAny, SCO extends string, TAG extends string> extends AbstractEndpoint {
|
|
57
|
-
#private;
|
|
58
|
-
protected readonly descriptions: Record<DescriptionVariant, string | undefined>;
|
|
59
|
-
protected readonly methods: M[];
|
|
60
|
-
protected siblingMethods: Method[];
|
|
61
|
-
protected readonly middlewares: AnyMiddlewareDef[];
|
|
62
|
-
protected readonly mimeTypes: Record<MimeVariant, string[]>;
|
|
63
|
-
protected readonly statusCodes: Record<ResponseVariant, number>;
|
|
64
|
-
protected readonly handler: Handler<z.output<IN>, z.input<OUT>, OPT>;
|
|
65
|
-
protected readonly resultHandler: ResultHandlerDefinition<POS, NEG>;
|
|
66
|
-
protected readonly schemas: {
|
|
67
|
-
input: IN;
|
|
68
|
-
output: OUT;
|
|
69
|
-
positive: POS;
|
|
70
|
-
negative: NEG;
|
|
71
|
-
};
|
|
72
|
-
protected readonly scopes: SCO[];
|
|
73
|
-
protected readonly tags: TAG[];
|
|
74
|
-
constructor({ middlewares, inputSchema, outputSchema, handler, resultHandler, description, shortDescription, ...rest }: EndpointProps<IN, OUT, OPT, M, POS, NEG, SCO, TAG>);
|
|
75
|
-
/**
|
|
76
|
-
* @desc Sets the other methods supported by the same path. Used by Routing in DependsOnMethod case, for options.
|
|
77
|
-
* @deprecated This method is for internal needs of the library, please avoid using it.
|
|
78
|
-
* */
|
|
79
|
-
_setSiblingMethods(methods: Method[]): void;
|
|
80
|
-
getDescription(variant: DescriptionVariant): string | undefined;
|
|
81
|
-
getMethods(): M[];
|
|
82
|
-
getSchema(variant: "input"): IN;
|
|
83
|
-
getSchema(variant: "output"): OUT;
|
|
84
|
-
getSchema(variant: "positive"): POS;
|
|
85
|
-
getSchema(variant: "negative"): NEG;
|
|
86
|
-
getMimeTypes(variant: MimeVariant): string[];
|
|
87
|
-
getStatusCode(variant: ResponseVariant): number;
|
|
88
|
-
getSecurity(): LogicalContainer<Security<string, string>>;
|
|
89
|
-
getScopes(): SCO[];
|
|
90
|
-
getTags(): TAG[];
|
|
91
|
-
execute({ request, response, logger, config, }: {
|
|
92
|
-
request: Request;
|
|
93
|
-
response: Response;
|
|
94
|
-
logger: Logger;
|
|
95
|
-
config: CommonConfig;
|
|
96
|
-
}): Promise<void>;
|
|
97
|
-
}
|
|
98
|
-
export {};
|