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/endpoint.js
DELETED
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
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
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
-
};
|
|
7
|
-
var _Endpoint_instances, _Endpoint_getDefaultCorsHeaders, _Endpoint_parseOutput, _Endpoint_runMiddlewares, _Endpoint_parseAndRunHandler, _Endpoint_handleResult;
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.Endpoint = exports.AbstractEndpoint = void 0;
|
|
10
|
-
const zod_1 = require("zod");
|
|
11
|
-
const errors_1 = require("./errors");
|
|
12
|
-
const common_helpers_1 = require("./common-helpers");
|
|
13
|
-
const logical_container_1 = require("./logical-container");
|
|
14
|
-
const mime_1 = require("./mime");
|
|
15
|
-
const result_handler_1 = require("./result-handler");
|
|
16
|
-
const getMimeTypesFromApiResponse = (subject, fallback = [mime_1.mimeJson]) => {
|
|
17
|
-
if (subject instanceof zod_1.z.ZodType) {
|
|
18
|
-
return fallback;
|
|
19
|
-
}
|
|
20
|
-
const { mimeTypes, mimeType } = subject;
|
|
21
|
-
return mimeType ? [mimeType] : mimeTypes || fallback;
|
|
22
|
-
};
|
|
23
|
-
class AbstractEndpoint {
|
|
24
|
-
}
|
|
25
|
-
exports.AbstractEndpoint = AbstractEndpoint;
|
|
26
|
-
class Endpoint extends AbstractEndpoint {
|
|
27
|
-
constructor({ middlewares, inputSchema, outputSchema, handler, resultHandler, description, shortDescription, ...rest }) {
|
|
28
|
-
super();
|
|
29
|
-
_Endpoint_instances.add(this);
|
|
30
|
-
this.methods = [];
|
|
31
|
-
this.siblingMethods = [];
|
|
32
|
-
this.middlewares = [];
|
|
33
|
-
this.scopes = [];
|
|
34
|
-
this.tags = [];
|
|
35
|
-
[
|
|
36
|
-
{ name: "input schema", schema: inputSchema },
|
|
37
|
-
{ name: "output schema", schema: outputSchema },
|
|
38
|
-
].forEach(({ name, schema }) => {
|
|
39
|
-
if ((0, common_helpers_1.hasTopLevelTransformingEffect)(schema)) {
|
|
40
|
-
throw new errors_1.IOSchemaError(`Using transformations on the top level of endpoint ${name} is not allowed.`);
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
this.middlewares = middlewares;
|
|
44
|
-
const apiResponse = {
|
|
45
|
-
positive: resultHandler.getPositiveResponse(outputSchema),
|
|
46
|
-
negative: resultHandler.getNegativeResponse(),
|
|
47
|
-
};
|
|
48
|
-
this.mimeTypes = {
|
|
49
|
-
input: (0, common_helpers_1.hasUpload)(inputSchema) ? [mime_1.mimeMultipart] : [mime_1.mimeJson],
|
|
50
|
-
positive: getMimeTypesFromApiResponse(apiResponse.positive),
|
|
51
|
-
negative: getMimeTypesFromApiResponse(apiResponse.negative),
|
|
52
|
-
};
|
|
53
|
-
this.schemas = {
|
|
54
|
-
input: inputSchema,
|
|
55
|
-
output: outputSchema,
|
|
56
|
-
positive: apiResponse.positive instanceof zod_1.z.ZodType
|
|
57
|
-
? apiResponse.positive
|
|
58
|
-
: apiResponse.positive.schema,
|
|
59
|
-
negative: apiResponse.negative instanceof zod_1.z.ZodType
|
|
60
|
-
? apiResponse.negative
|
|
61
|
-
: apiResponse.negative.schema,
|
|
62
|
-
};
|
|
63
|
-
this.statusCodes = {
|
|
64
|
-
positive: apiResponse.positive instanceof zod_1.z.ZodType
|
|
65
|
-
? result_handler_1.defaultStatusCodes.positive
|
|
66
|
-
: apiResponse.positive.statusCode || result_handler_1.defaultStatusCodes.positive,
|
|
67
|
-
negative: apiResponse.negative instanceof zod_1.z.ZodType
|
|
68
|
-
? result_handler_1.defaultStatusCodes.negative
|
|
69
|
-
: apiResponse.negative.statusCode || result_handler_1.defaultStatusCodes.negative,
|
|
70
|
-
};
|
|
71
|
-
this.handler = handler;
|
|
72
|
-
this.resultHandler = resultHandler;
|
|
73
|
-
this.descriptions = { long: description, short: shortDescription };
|
|
74
|
-
if ("scopes" in rest && rest.scopes) {
|
|
75
|
-
this.scopes.push(...rest.scopes);
|
|
76
|
-
}
|
|
77
|
-
if ("scope" in rest && rest.scope) {
|
|
78
|
-
this.scopes.push(rest.scope);
|
|
79
|
-
}
|
|
80
|
-
if ("tags" in rest && rest.tags) {
|
|
81
|
-
this.tags.push(...rest.tags);
|
|
82
|
-
}
|
|
83
|
-
if ("tag" in rest && rest.tag) {
|
|
84
|
-
this.tags.push(rest.tag);
|
|
85
|
-
}
|
|
86
|
-
if ("methods" in rest) {
|
|
87
|
-
this.methods = rest.methods;
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
this.methods = [rest.method];
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* @desc Sets the other methods supported by the same path. Used by Routing in DependsOnMethod case, for options.
|
|
95
|
-
* @deprecated This method is for internal needs of the library, please avoid using it.
|
|
96
|
-
* */
|
|
97
|
-
_setSiblingMethods(methods) {
|
|
98
|
-
this.siblingMethods = methods;
|
|
99
|
-
}
|
|
100
|
-
getDescription(variant) {
|
|
101
|
-
return this.descriptions[variant];
|
|
102
|
-
}
|
|
103
|
-
getMethods() {
|
|
104
|
-
return this.methods;
|
|
105
|
-
}
|
|
106
|
-
getSchema(variant) {
|
|
107
|
-
return this.schemas[variant];
|
|
108
|
-
}
|
|
109
|
-
getMimeTypes(variant) {
|
|
110
|
-
return this.mimeTypes[variant];
|
|
111
|
-
}
|
|
112
|
-
getStatusCode(variant) {
|
|
113
|
-
return this.statusCodes[variant];
|
|
114
|
-
}
|
|
115
|
-
getSecurity() {
|
|
116
|
-
return this.middlewares.reduce((acc, middleware) => middleware.security ? (0, logical_container_1.combineContainers)(acc, middleware.security) : acc, { and: [] });
|
|
117
|
-
}
|
|
118
|
-
getScopes() {
|
|
119
|
-
return this.scopes;
|
|
120
|
-
}
|
|
121
|
-
getTags() {
|
|
122
|
-
return this.tags;
|
|
123
|
-
}
|
|
124
|
-
async execute({ request, response, logger, config, }) {
|
|
125
|
-
const method = (0, common_helpers_1.getActualMethod)(request);
|
|
126
|
-
let output;
|
|
127
|
-
let error = null;
|
|
128
|
-
if (config.cors) {
|
|
129
|
-
let headers = __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_getDefaultCorsHeaders).call(this);
|
|
130
|
-
if (typeof config.cors === "function") {
|
|
131
|
-
headers = await config.cors({
|
|
132
|
-
request,
|
|
133
|
-
logger,
|
|
134
|
-
endpoint: this,
|
|
135
|
-
defaultHeaders: headers,
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
for (const key in headers) {
|
|
139
|
-
response.set(key, headers[key]);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
const input = (0, common_helpers_1.getInput)(request, config.inputSources);
|
|
143
|
-
try {
|
|
144
|
-
const { options, isStreamClosed } = await __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_runMiddlewares).call(this, {
|
|
145
|
-
method,
|
|
146
|
-
input,
|
|
147
|
-
request,
|
|
148
|
-
response,
|
|
149
|
-
logger,
|
|
150
|
-
});
|
|
151
|
-
if (isStreamClosed) {
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
154
|
-
if (method === "options") {
|
|
155
|
-
response.status(200).end();
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
output = await __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_parseOutput).call(this, await __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_parseAndRunHandler).call(this, { input, options, logger }));
|
|
159
|
-
}
|
|
160
|
-
catch (e) {
|
|
161
|
-
error = (0, common_helpers_1.makeErrorFromAnything)(e);
|
|
162
|
-
}
|
|
163
|
-
await __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_handleResult).call(this, {
|
|
164
|
-
input,
|
|
165
|
-
output,
|
|
166
|
-
request,
|
|
167
|
-
response,
|
|
168
|
-
error,
|
|
169
|
-
logger,
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
exports.Endpoint = Endpoint;
|
|
174
|
-
_Endpoint_instances = new WeakSet(), _Endpoint_getDefaultCorsHeaders = function _Endpoint_getDefaultCorsHeaders() {
|
|
175
|
-
const accessMethods = this.methods
|
|
176
|
-
.concat(this.siblingMethods)
|
|
177
|
-
.concat("options")
|
|
178
|
-
.join(", ")
|
|
179
|
-
.toUpperCase();
|
|
180
|
-
return {
|
|
181
|
-
"Access-Control-Allow-Origin": "*",
|
|
182
|
-
"Access-Control-Allow-Methods": accessMethods,
|
|
183
|
-
"Access-Control-Allow-Headers": "content-type",
|
|
184
|
-
};
|
|
185
|
-
}, _Endpoint_parseOutput = async function _Endpoint_parseOutput(output) {
|
|
186
|
-
try {
|
|
187
|
-
return await this.schemas.output.parseAsync(output);
|
|
188
|
-
}
|
|
189
|
-
catch (e) {
|
|
190
|
-
if (e instanceof zod_1.z.ZodError) {
|
|
191
|
-
throw new errors_1.OutputValidationError(e);
|
|
192
|
-
}
|
|
193
|
-
throw e;
|
|
194
|
-
}
|
|
195
|
-
}, _Endpoint_runMiddlewares = async function _Endpoint_runMiddlewares({ method, input, request, response, logger, }) {
|
|
196
|
-
const options = {};
|
|
197
|
-
let isStreamClosed = false;
|
|
198
|
-
for (const def of this.middlewares) {
|
|
199
|
-
if (method === "options" && def.type === "proprietary") {
|
|
200
|
-
continue;
|
|
201
|
-
}
|
|
202
|
-
let finalInput;
|
|
203
|
-
try {
|
|
204
|
-
finalInput = await def.input.parseAsync(input);
|
|
205
|
-
}
|
|
206
|
-
catch (e) {
|
|
207
|
-
if (e instanceof zod_1.z.ZodError) {
|
|
208
|
-
throw new errors_1.InputValidationError(e);
|
|
209
|
-
}
|
|
210
|
-
throw e;
|
|
211
|
-
}
|
|
212
|
-
Object.assign(options, await def.middleware({
|
|
213
|
-
input: finalInput,
|
|
214
|
-
options,
|
|
215
|
-
request,
|
|
216
|
-
response,
|
|
217
|
-
logger,
|
|
218
|
-
}));
|
|
219
|
-
isStreamClosed = "writableEnded" in response && response.writableEnded;
|
|
220
|
-
if (isStreamClosed) {
|
|
221
|
-
logger.warn(`The middleware ${def.middleware.name} has closed the stream. Accumulated options:`, options);
|
|
222
|
-
break;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
return { options, isStreamClosed };
|
|
226
|
-
}, _Endpoint_parseAndRunHandler = async function _Endpoint_parseAndRunHandler({ input, options, logger, }) {
|
|
227
|
-
let finalInput; // final input types transformations for handler
|
|
228
|
-
try {
|
|
229
|
-
finalInput = (await this.schemas.input.parseAsync(input));
|
|
230
|
-
}
|
|
231
|
-
catch (e) {
|
|
232
|
-
if (e instanceof zod_1.z.ZodError) {
|
|
233
|
-
throw new errors_1.InputValidationError(e);
|
|
234
|
-
}
|
|
235
|
-
throw e;
|
|
236
|
-
}
|
|
237
|
-
return this.handler({
|
|
238
|
-
input: finalInput,
|
|
239
|
-
options,
|
|
240
|
-
logger,
|
|
241
|
-
});
|
|
242
|
-
}, _Endpoint_handleResult = async function _Endpoint_handleResult({ error, request, response, logger, input, output, }) {
|
|
243
|
-
try {
|
|
244
|
-
await this.resultHandler.handler({
|
|
245
|
-
error,
|
|
246
|
-
output,
|
|
247
|
-
request,
|
|
248
|
-
response,
|
|
249
|
-
logger,
|
|
250
|
-
input,
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
catch (e) {
|
|
254
|
-
(0, result_handler_1.lastResortHandler)({
|
|
255
|
-
logger,
|
|
256
|
-
response,
|
|
257
|
-
error: new errors_1.ResultHandlerError((0, common_helpers_1.makeErrorFromAnything)(e).message, error),
|
|
258
|
-
});
|
|
259
|
-
}
|
|
260
|
-
};
|
|
261
|
-
//# sourceMappingURL=endpoint.js.map
|
package/dist/endpoint.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
/// <reference types="qs" />
|
|
2
|
-
import { Request, Response } from "express";
|
|
3
|
-
import { z } from "zod";
|
|
4
|
-
import { FlatObject } from "./common-helpers";
|
|
5
|
-
import { CommonConfig } from "./config-type";
|
|
6
|
-
import { Endpoint, Handler } from "./endpoint";
|
|
7
|
-
import { IOSchema, ProbableIntersection } from "./io-schema";
|
|
8
|
-
import { Method, MethodsDefinition } from "./method";
|
|
9
|
-
import { AnyMiddlewareDef, ExpressMiddleware, ExpressMiddlewareFeatures, MiddlewareDefinition } from "./middleware";
|
|
10
|
-
import { ResultHandlerDefinition } from "./result-handler";
|
|
11
|
-
type BuildProps<IN extends IOSchema, OUT extends IOSchema, MIN extends IOSchema<"strip"> | null, OPT extends FlatObject, M extends Method, SCO extends string, TAG extends string> = {
|
|
12
|
-
input: IN;
|
|
13
|
-
output: OUT;
|
|
14
|
-
handler: Handler<z.output<ProbableIntersection<MIN, IN>>, z.input<OUT>, OPT>;
|
|
15
|
-
description?: string;
|
|
16
|
-
shortDescription?: string;
|
|
17
|
-
} & ({
|
|
18
|
-
scopes?: SCO[];
|
|
19
|
-
} | {
|
|
20
|
-
scope?: SCO;
|
|
21
|
-
}) & ({
|
|
22
|
-
tags?: TAG[];
|
|
23
|
-
} | {
|
|
24
|
-
tag?: TAG;
|
|
25
|
-
}) & MethodsDefinition<M>;
|
|
26
|
-
export declare class EndpointsFactory<POS extends z.ZodTypeAny, NEG extends z.ZodTypeAny, IN extends IOSchema<"strip"> | null = null, OUT extends FlatObject = {}, SCO extends string = string, TAG extends string = string> {
|
|
27
|
-
#private;
|
|
28
|
-
protected resultHandler: ResultHandlerDefinition<POS, NEG>;
|
|
29
|
-
protected middlewares: AnyMiddlewareDef[];
|
|
30
|
-
constructor(resultHandler: ResultHandlerDefinition<POS, NEG>);
|
|
31
|
-
/** @desc Consider using the "config" prop with the "tags" option to enforce constraints on tagging the endpoints */
|
|
32
|
-
constructor(params: {
|
|
33
|
-
resultHandler: ResultHandlerDefinition<POS, NEG>;
|
|
34
|
-
config?: CommonConfig<TAG>;
|
|
35
|
-
});
|
|
36
|
-
addMiddleware<AIN extends IOSchema<"strip">, AOUT extends FlatObject, ASCO extends string>(subject: MiddlewareDefinition<AIN, OUT, AOUT, ASCO>): EndpointsFactory<POS, NEG, ProbableIntersection<IN, AIN>, OUT & AOUT, SCO & ASCO, TAG>;
|
|
37
|
-
use: <R extends Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>, S extends Response<any, Record<string, any>>, AOUT extends FlatObject = {}>(middleware: ExpressMiddleware<R, S>, features?: ExpressMiddlewareFeatures<R, S, AOUT> | undefined) => EndpointsFactory<POS, NEG, IN, OUT & AOUT, SCO, TAG>;
|
|
38
|
-
addExpressMiddleware<R extends Request, S extends Response, AOUT extends FlatObject = {}>(middleware: ExpressMiddleware<R, S>, features?: ExpressMiddlewareFeatures<R, S, AOUT>): EndpointsFactory<POS, NEG, IN, OUT & AOUT, SCO, TAG>;
|
|
39
|
-
addOptions<AOUT extends FlatObject>(options: AOUT): EndpointsFactory<POS, NEG, IN, OUT & AOUT, SCO, TAG>;
|
|
40
|
-
build<BIN extends IOSchema, BOUT extends IOSchema, M extends Method>({ input, handler, output: outputSchema, ...rest }: BuildProps<BIN, BOUT, IN, OUT, M, SCO, TAG>): Endpoint<ProbableIntersection<IN, BIN>, BOUT, OUT, M, POS, NEG, SCO, TAG>;
|
|
41
|
-
}
|
|
42
|
-
export declare const defaultEndpointsFactory: EndpointsFactory<z.ZodObject<{
|
|
43
|
-
status: z.ZodLiteral<"success">;
|
|
44
|
-
data: IOSchema<any>;
|
|
45
|
-
}, "strip", z.ZodTypeAny, {
|
|
46
|
-
status: "success";
|
|
47
|
-
data?: unknown;
|
|
48
|
-
}, {
|
|
49
|
-
status: "success";
|
|
50
|
-
data?: unknown;
|
|
51
|
-
}> & {
|
|
52
|
-
keyof: () => z.ZodEnum<never>;
|
|
53
|
-
} & {
|
|
54
|
-
_def: z.ZodObjectDef<{
|
|
55
|
-
status: z.ZodLiteral<"success">;
|
|
56
|
-
data: IOSchema<any>;
|
|
57
|
-
}, "strip", z.ZodTypeAny> & import("./metadata").MetaDef<z.ZodObject<{
|
|
58
|
-
status: z.ZodLiteral<"success">;
|
|
59
|
-
data: IOSchema<any>;
|
|
60
|
-
}, "strip", z.ZodTypeAny, {
|
|
61
|
-
status: "success";
|
|
62
|
-
data?: unknown;
|
|
63
|
-
}, {
|
|
64
|
-
status: "success";
|
|
65
|
-
data?: unknown;
|
|
66
|
-
}>>;
|
|
67
|
-
example: (example: {
|
|
68
|
-
status: "success";
|
|
69
|
-
data?: unknown;
|
|
70
|
-
}) => z.ZodObject<{
|
|
71
|
-
status: z.ZodLiteral<"success">;
|
|
72
|
-
data: IOSchema<any>;
|
|
73
|
-
}, "strip", z.ZodTypeAny, {
|
|
74
|
-
status: "success";
|
|
75
|
-
data?: unknown;
|
|
76
|
-
}, {
|
|
77
|
-
status: "success";
|
|
78
|
-
data?: unknown;
|
|
79
|
-
}> & {
|
|
80
|
-
keyof: () => z.ZodEnum<never>;
|
|
81
|
-
} & any;
|
|
82
|
-
}, z.ZodObject<{
|
|
83
|
-
status: z.ZodLiteral<"error">;
|
|
84
|
-
error: z.ZodObject<{
|
|
85
|
-
message: z.ZodString;
|
|
86
|
-
}, "strip", z.ZodTypeAny, {
|
|
87
|
-
message: string;
|
|
88
|
-
}, {
|
|
89
|
-
message: string;
|
|
90
|
-
}>;
|
|
91
|
-
}, "strip", z.ZodTypeAny, {
|
|
92
|
-
status: "error";
|
|
93
|
-
error: {
|
|
94
|
-
message: string;
|
|
95
|
-
};
|
|
96
|
-
}, {
|
|
97
|
-
status: "error";
|
|
98
|
-
error: {
|
|
99
|
-
message: string;
|
|
100
|
-
};
|
|
101
|
-
}> & {
|
|
102
|
-
keyof: () => z.ZodEnum<never>;
|
|
103
|
-
} & {
|
|
104
|
-
_def: z.ZodObjectDef<{
|
|
105
|
-
status: z.ZodLiteral<"error">;
|
|
106
|
-
error: z.ZodObject<{
|
|
107
|
-
message: z.ZodString;
|
|
108
|
-
}, "strip", z.ZodTypeAny, {
|
|
109
|
-
message: string;
|
|
110
|
-
}, {
|
|
111
|
-
message: string;
|
|
112
|
-
}>;
|
|
113
|
-
}, "strip", z.ZodTypeAny> & import("./metadata").MetaDef<z.ZodObject<{
|
|
114
|
-
status: z.ZodLiteral<"error">;
|
|
115
|
-
error: z.ZodObject<{
|
|
116
|
-
message: z.ZodString;
|
|
117
|
-
}, "strip", z.ZodTypeAny, {
|
|
118
|
-
message: string;
|
|
119
|
-
}, {
|
|
120
|
-
message: string;
|
|
121
|
-
}>;
|
|
122
|
-
}, "strip", z.ZodTypeAny, {
|
|
123
|
-
status: "error";
|
|
124
|
-
error: {
|
|
125
|
-
message: string;
|
|
126
|
-
};
|
|
127
|
-
}, {
|
|
128
|
-
status: "error";
|
|
129
|
-
error: {
|
|
130
|
-
message: string;
|
|
131
|
-
};
|
|
132
|
-
}>>;
|
|
133
|
-
example: (example: {
|
|
134
|
-
status: "error";
|
|
135
|
-
error: {
|
|
136
|
-
message: string;
|
|
137
|
-
};
|
|
138
|
-
}) => z.ZodObject<{
|
|
139
|
-
status: z.ZodLiteral<"error">;
|
|
140
|
-
error: z.ZodObject<{
|
|
141
|
-
message: z.ZodString;
|
|
142
|
-
}, "strip", z.ZodTypeAny, {
|
|
143
|
-
message: string;
|
|
144
|
-
}, {
|
|
145
|
-
message: string;
|
|
146
|
-
}>;
|
|
147
|
-
}, "strip", z.ZodTypeAny, {
|
|
148
|
-
status: "error";
|
|
149
|
-
error: {
|
|
150
|
-
message: string;
|
|
151
|
-
};
|
|
152
|
-
}, {
|
|
153
|
-
status: "error";
|
|
154
|
-
error: {
|
|
155
|
-
message: string;
|
|
156
|
-
};
|
|
157
|
-
}> & {
|
|
158
|
-
keyof: () => z.ZodEnum<never>;
|
|
159
|
-
} & any;
|
|
160
|
-
}, null, {}, string, string>;
|
|
161
|
-
export {};
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
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
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
-
};
|
|
7
|
-
var _a, _EndpointsFactory_create;
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.defaultEndpointsFactory = exports.EndpointsFactory = void 0;
|
|
10
|
-
const zod_1 = require("zod");
|
|
11
|
-
const endpoint_1 = require("./endpoint");
|
|
12
|
-
const io_schema_1 = require("./io-schema");
|
|
13
|
-
const middleware_1 = require("./middleware");
|
|
14
|
-
const result_handler_1 = require("./result-handler");
|
|
15
|
-
class EndpointsFactory {
|
|
16
|
-
constructor(subject) {
|
|
17
|
-
this.middlewares = [];
|
|
18
|
-
this.use = this.addExpressMiddleware;
|
|
19
|
-
this.resultHandler =
|
|
20
|
-
"resultHandler" in subject ? subject.resultHandler : subject;
|
|
21
|
-
}
|
|
22
|
-
addMiddleware(subject) {
|
|
23
|
-
return __classPrivateFieldGet(EndpointsFactory, _a, "m", _EndpointsFactory_create).call(EndpointsFactory, this.middlewares.concat(subject), this.resultHandler);
|
|
24
|
-
}
|
|
25
|
-
addExpressMiddleware(middleware, features) {
|
|
26
|
-
const transformer = features?.transformer || ((err) => err);
|
|
27
|
-
const provider = features?.provider || (() => ({}));
|
|
28
|
-
const definition = {
|
|
29
|
-
type: "express",
|
|
30
|
-
input: zod_1.z.object({}),
|
|
31
|
-
middleware: async ({ request, response }) => new Promise((resolve, reject) => {
|
|
32
|
-
const next = (err) => {
|
|
33
|
-
if (err && err instanceof Error) {
|
|
34
|
-
return reject(transformer(err));
|
|
35
|
-
}
|
|
36
|
-
resolve(provider(request, response));
|
|
37
|
-
};
|
|
38
|
-
middleware(request, response, next);
|
|
39
|
-
}),
|
|
40
|
-
};
|
|
41
|
-
return __classPrivateFieldGet(EndpointsFactory, _a, "m", _EndpointsFactory_create).call(EndpointsFactory, this.middlewares.concat(definition), this.resultHandler);
|
|
42
|
-
}
|
|
43
|
-
addOptions(options) {
|
|
44
|
-
return __classPrivateFieldGet(EndpointsFactory, _a, "m", _EndpointsFactory_create).call(EndpointsFactory, this.middlewares.concat((0, middleware_1.createMiddleware)({
|
|
45
|
-
input: zod_1.z.object({}),
|
|
46
|
-
middleware: async () => options,
|
|
47
|
-
})), this.resultHandler);
|
|
48
|
-
}
|
|
49
|
-
build({ input, handler, output: outputSchema, ...rest }) {
|
|
50
|
-
const { middlewares, resultHandler } = this;
|
|
51
|
-
return new endpoint_1.Endpoint({
|
|
52
|
-
handler,
|
|
53
|
-
middlewares,
|
|
54
|
-
outputSchema,
|
|
55
|
-
resultHandler,
|
|
56
|
-
inputSchema: (0, io_schema_1.getFinalEndpointInputSchema)(middlewares, input),
|
|
57
|
-
...rest,
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
exports.EndpointsFactory = EndpointsFactory;
|
|
62
|
-
_a = EndpointsFactory, _EndpointsFactory_create = function _EndpointsFactory_create(middlewares, resultHandler) {
|
|
63
|
-
const factory = new EndpointsFactory(resultHandler);
|
|
64
|
-
factory.middlewares = middlewares;
|
|
65
|
-
return factory;
|
|
66
|
-
};
|
|
67
|
-
exports.defaultEndpointsFactory = new EndpointsFactory(result_handler_1.defaultResultHandler);
|
|
68
|
-
//# sourceMappingURL=endpoints-factory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"endpoints-factory.js","sourceRoot":"","sources":["../src/endpoints-factory.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { ZodError } from "zod";
|
|
2
|
-
/** @desc An error related to the wrong Routing declaration */
|
|
3
|
-
export declare class RoutingError extends Error {
|
|
4
|
-
name: string;
|
|
5
|
-
}
|
|
6
|
-
/** @desc An error related to the issues of using DependsOnMethod class */
|
|
7
|
-
export declare class DependsOnMethodError extends RoutingError {
|
|
8
|
-
name: string;
|
|
9
|
-
}
|
|
10
|
-
/** @desc An error related to the generating of the documentation */
|
|
11
|
-
export declare class OpenAPIError extends Error {
|
|
12
|
-
name: string;
|
|
13
|
-
}
|
|
14
|
-
/** @desc An error related to the input and output schemas declaration */
|
|
15
|
-
export declare class IOSchemaError extends Error {
|
|
16
|
-
name: string;
|
|
17
|
-
}
|
|
18
|
-
/** @desc An error of validating the Endpoint handler's returns against the Endpoint output schema */
|
|
19
|
-
export declare class OutputValidationError extends IOSchemaError {
|
|
20
|
-
name: string;
|
|
21
|
-
readonly originalError: ZodError;
|
|
22
|
-
constructor(originalError: ZodError);
|
|
23
|
-
}
|
|
24
|
-
/** @desc An error of validating the input sources against the Middleware or Endpoint input schema */
|
|
25
|
-
export declare class InputValidationError extends IOSchemaError {
|
|
26
|
-
name: string;
|
|
27
|
-
readonly originalError: ZodError;
|
|
28
|
-
constructor(originalError: ZodError);
|
|
29
|
-
}
|
|
30
|
-
/** @desc An error related to the execution of ResultHandler */
|
|
31
|
-
export declare class ResultHandlerError extends Error {
|
|
32
|
-
name: string;
|
|
33
|
-
readonly originalError: Error | undefined;
|
|
34
|
-
constructor(message: string, originalError?: Error | null);
|
|
35
|
-
}
|
package/dist/errors.js
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ResultHandlerError = exports.InputValidationError = exports.OutputValidationError = exports.IOSchemaError = exports.OpenAPIError = exports.DependsOnMethodError = exports.RoutingError = void 0;
|
|
4
|
-
const common_helpers_1 = require("./common-helpers");
|
|
5
|
-
/** @desc An error related to the wrong Routing declaration */
|
|
6
|
-
class RoutingError extends Error {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.name = "RoutingError";
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
exports.RoutingError = RoutingError;
|
|
13
|
-
/** @desc An error related to the issues of using DependsOnMethod class */
|
|
14
|
-
class DependsOnMethodError extends RoutingError {
|
|
15
|
-
constructor() {
|
|
16
|
-
super(...arguments);
|
|
17
|
-
this.name = "DependsOnMethodError";
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
exports.DependsOnMethodError = DependsOnMethodError;
|
|
21
|
-
/** @desc An error related to the generating of the documentation */
|
|
22
|
-
class OpenAPIError extends Error {
|
|
23
|
-
constructor() {
|
|
24
|
-
super(...arguments);
|
|
25
|
-
this.name = "OpenAPIError";
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
exports.OpenAPIError = OpenAPIError;
|
|
29
|
-
/** @desc An error related to the input and output schemas declaration */
|
|
30
|
-
class IOSchemaError extends Error {
|
|
31
|
-
constructor() {
|
|
32
|
-
super(...arguments);
|
|
33
|
-
this.name = "IOSchemaError";
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
exports.IOSchemaError = IOSchemaError;
|
|
37
|
-
/** @desc An error of validating the Endpoint handler's returns against the Endpoint output schema */
|
|
38
|
-
class OutputValidationError extends IOSchemaError {
|
|
39
|
-
constructor(originalError) {
|
|
40
|
-
super((0, common_helpers_1.getMessageFromError)(originalError));
|
|
41
|
-
this.name = "OutputValidationError";
|
|
42
|
-
this.originalError = originalError;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
exports.OutputValidationError = OutputValidationError;
|
|
46
|
-
/** @desc An error of validating the input sources against the Middleware or Endpoint input schema */
|
|
47
|
-
class InputValidationError extends IOSchemaError {
|
|
48
|
-
constructor(originalError) {
|
|
49
|
-
super((0, common_helpers_1.getMessageFromError)(originalError));
|
|
50
|
-
this.name = "InputValidationError";
|
|
51
|
-
this.originalError = originalError;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
exports.InputValidationError = InputValidationError;
|
|
55
|
-
/** @desc An error related to the execution of ResultHandler */
|
|
56
|
-
class ResultHandlerError extends Error {
|
|
57
|
-
constructor(message, originalError) {
|
|
58
|
-
super(message);
|
|
59
|
-
this.name = "ResultHandlerError";
|
|
60
|
-
this.originalError = originalError || undefined;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
exports.ResultHandlerError = ResultHandlerError;
|
|
64
|
-
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AACA,qDAAuD;AAEvD,8DAA8D;AAC9D,MAAa,YAAa,SAAQ,KAAK;IAAvC;;QACkB,SAAI,GAAG,cAAc,CAAC;IACxC,CAAC;CAAA;AAFD,oCAEC;AAED,0EAA0E;AAC1E,MAAa,oBAAqB,SAAQ,YAAY;IAAtD;;QACkB,SAAI,GAAG,sBAAsB,CAAC;IAChD,CAAC;CAAA;AAFD,oDAEC;AAED,oEAAoE;AACpE,MAAa,YAAa,SAAQ,KAAK;IAAvC;;QACkB,SAAI,GAAG,cAAc,CAAC;IACxC,CAAC;CAAA;AAFD,oCAEC;AAED,yEAAyE;AACzE,MAAa,aAAc,SAAQ,KAAK;IAAxC;;QACkB,SAAI,GAAG,eAAe,CAAC;IACzC,CAAC;CAAA;AAFD,sCAEC;AAED,qGAAqG;AACrG,MAAa,qBAAsB,SAAQ,aAAa;IAItD,YAAY,aAAuB;QACjC,KAAK,CAAC,IAAA,oCAAmB,EAAC,aAAa,CAAC,CAAC,CAAC;QAJ5B,SAAI,GAAG,uBAAuB,CAAC;QAK7C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;CACF;AARD,sDAQC;AAED,qGAAqG;AACrG,MAAa,oBAAqB,SAAQ,aAAa;IAIrD,YAAY,aAAuB;QACjC,KAAK,CAAC,IAAA,oCAAmB,EAAC,aAAa,CAAC,CAAC,CAAC;QAJ5B,SAAI,GAAG,sBAAsB,CAAC;QAK5C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;CACF;AARD,oDAQC;AAED,+DAA+D;AAC/D,MAAa,kBAAmB,SAAQ,KAAK;IAI3C,YAAY,OAAe,EAAE,aAA4B;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;QAJD,SAAI,GAAG,oBAAoB,CAAC;QAK1C,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,SAAS,CAAC;IAClD,CAAC;CACF;AARD,gDAQC"}
|
package/dist/extend-zod.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { ZodDate } from "zod";
|
|
2
|
-
import { ZodDateIn } from "./date-in-schema";
|
|
3
|
-
import { ZodDateOut } from "./date-out-schema";
|
|
4
|
-
import { ZodFile } from "./file-schema";
|
|
5
|
-
import { ZodUpload } from "./upload-schema";
|
|
6
|
-
export * from "zod";
|
|
7
|
-
export declare const file: () => ZodFile;
|
|
8
|
-
export declare const upload: () => ZodUpload;
|
|
9
|
-
export declare const dateIn: () => ZodDateIn;
|
|
10
|
-
export declare const dateOut: () => ZodDateOut;
|
|
11
|
-
/**
|
|
12
|
-
* @description z.date() represents the Date, it should not be used within IO schemas
|
|
13
|
-
* @deprecated Please use z.dateIn() or z.dateOut() within IO schemas
|
|
14
|
-
* */
|
|
15
|
-
export declare const date: (params?: ({
|
|
16
|
-
errorMap?: import("zod").ZodErrorMap | undefined;
|
|
17
|
-
invalid_type_error?: string | undefined;
|
|
18
|
-
required_error?: string | undefined;
|
|
19
|
-
description?: string | undefined;
|
|
20
|
-
} & {
|
|
21
|
-
coerce?: boolean | undefined;
|
|
22
|
-
}) | undefined) => ZodDate;
|
package/dist/extend-zod.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.date = exports.dateOut = exports.dateIn = exports.upload = exports.file = void 0;
|
|
18
|
-
const zod_1 = require("zod");
|
|
19
|
-
const date_in_schema_1 = require("./date-in-schema");
|
|
20
|
-
const date_out_schema_1 = require("./date-out-schema");
|
|
21
|
-
const file_schema_1 = require("./file-schema");
|
|
22
|
-
const upload_schema_1 = require("./upload-schema");
|
|
23
|
-
__exportStar(require("zod"), exports);
|
|
24
|
-
exports.file = file_schema_1.ZodFile.create;
|
|
25
|
-
exports.upload = upload_schema_1.ZodUpload.create;
|
|
26
|
-
exports.dateIn = date_in_schema_1.ZodDateIn.create;
|
|
27
|
-
exports.dateOut = date_out_schema_1.ZodDateOut.create;
|
|
28
|
-
/**
|
|
29
|
-
* @description z.date() represents the Date, it should not be used within IO schemas
|
|
30
|
-
* @deprecated Please use z.dateIn() or z.dateOut() within IO schemas
|
|
31
|
-
* */
|
|
32
|
-
exports.date = zod_1.ZodDate.create;
|
|
33
|
-
//# sourceMappingURL=extend-zod.js.map
|