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.
Files changed (183) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/README.md +28 -20
  3. package/SECURITY.md +14 -13
  4. package/dist/esm/index.js +58 -0
  5. package/dist/esm/index.js.map +1 -0
  6. package/dist/esm/package.json +1 -0
  7. package/dist/index.d.ts +776 -21
  8. package/dist/index.js +55 -69
  9. package/dist/index.js.map +1 -1
  10. package/package.json +31 -25
  11. package/dist/api-response.d.ts +0 -16
  12. package/dist/api-response.js +0 -3
  13. package/dist/api-response.js.map +0 -1
  14. package/dist/client-helpers.d.ts +0 -23
  15. package/dist/client-helpers.js +0 -71
  16. package/dist/client-helpers.js.map +0 -1
  17. package/dist/client.d.ts +0 -15
  18. package/dist/client.js +0 -120
  19. package/dist/client.js.map +0 -1
  20. package/dist/common-helpers.d.ts +0 -46
  21. package/dist/common-helpers.js +0 -207
  22. package/dist/common-helpers.js.map +0 -1
  23. package/dist/config-type.d.ts +0 -59
  24. package/dist/config-type.js +0 -11
  25. package/dist/config-type.js.map +0 -1
  26. package/dist/date-in-schema.d.ts +0 -11
  27. package/dist/date-in-schema.js +0 -46
  28. package/dist/date-in-schema.js.map +0 -1
  29. package/dist/date-out-schema.d.ts +0 -10
  30. package/dist/date-out-schema.js +0 -31
  31. package/dist/date-out-schema.js.map +0 -1
  32. package/dist/depends-on-method.d.ts +0 -10
  33. package/dist/depends-on-method.js +0 -32
  34. package/dist/depends-on-method.js.map +0 -1
  35. package/dist/endpoint.d.ts +0 -98
  36. package/dist/endpoint.js +0 -261
  37. package/dist/endpoint.js.map +0 -1
  38. package/dist/endpoints-factory.d.ts +0 -161
  39. package/dist/endpoints-factory.js +0 -68
  40. package/dist/endpoints-factory.js.map +0 -1
  41. package/dist/errors.d.ts +0 -35
  42. package/dist/errors.js +0 -64
  43. package/dist/errors.js.map +0 -1
  44. package/dist/extend-zod.d.ts +0 -22
  45. package/dist/extend-zod.js +0 -33
  46. package/dist/extend-zod.js.map +0 -1
  47. package/dist/file-schema.d.ts +0 -23
  48. package/dist/file-schema.js +0 -55
  49. package/dist/file-schema.js.map +0 -1
  50. package/dist/io-schema.d.ts +0 -16
  51. package/dist/io-schema.js +0 -21
  52. package/dist/io-schema.js.map +0 -1
  53. package/dist/logger.d.ts +0 -3
  54. package/dist/logger.js +0 -54
  55. package/dist/logger.js.map +0 -1
  56. package/dist/logical-container.d.ts +0 -16
  57. package/dist/logical-container.js +0 -85
  58. package/dist/logical-container.js.map +0 -1
  59. package/dist/metadata.d.ts +0 -27
  60. package/dist/metadata.js +0 -58
  61. package/dist/metadata.js.map +0 -1
  62. package/dist/method.d.ts +0 -8
  63. package/dist/method.js +0 -5
  64. package/dist/method.js.map +0 -1
  65. package/dist/middleware.d.ts +0 -32
  66. package/dist/middleware.js +0 -16
  67. package/dist/middleware.js.map +0 -1
  68. package/dist/mime.d.ts +0 -2
  69. package/dist/mime.js +0 -10
  70. package/dist/mime.js.map +0 -1
  71. package/dist/mock.d.ts +0 -38
  72. package/dist/mock.js +0 -66
  73. package/dist/mock.js.map +0 -1
  74. package/dist/open-api-helpers.d.ts +0 -83
  75. package/dist/open-api-helpers.js +0 -621
  76. package/dist/open-api-helpers.js.map +0 -1
  77. package/dist/open-api.d.ts +0 -25
  78. package/dist/open-api.js +0 -98
  79. package/dist/open-api.js.map +0 -1
  80. package/dist/result-handler.d.ts +0 -151
  81. package/dist/result-handler.js +0 -71
  82. package/dist/result-handler.js.map +0 -1
  83. package/dist/routing-walker.d.ts +0 -12
  84. package/dist/routing-walker.js +0 -55
  85. package/dist/routing-walker.js.map +0 -1
  86. package/dist/routing.d.ts +0 -15
  87. package/dist/routing.js +0 -25
  88. package/dist/routing.js.map +0 -1
  89. package/dist/schema-walker.d.ts +0 -23
  90. package/dist/schema-walker.js +0 -26
  91. package/dist/schema-walker.js.map +0 -1
  92. package/dist/security.d.ts +0 -72
  93. package/dist/security.js +0 -3
  94. package/dist/security.js.map +0 -1
  95. package/dist/serve-static.d.ts +0 -9
  96. package/dist/serve-static.js +0 -17
  97. package/dist/serve-static.js.map +0 -1
  98. package/dist/server.d.ts +0 -20
  99. package/dist/server.js +0 -131
  100. package/dist/server.js.map +0 -1
  101. package/dist/startup-logo.d.ts +0 -1
  102. package/dist/startup-logo.js +0 -27
  103. package/dist/startup-logo.js.map +0 -1
  104. package/dist/upload-schema.d.ts +0 -11
  105. package/dist/upload-schema.js +0 -42
  106. package/dist/upload-schema.js.map +0 -1
  107. package/dist/zts-helpers.d.ts +0 -37
  108. package/dist/zts-helpers.js +0 -60
  109. package/dist/zts-helpers.js.map +0 -1
  110. package/dist/zts.d.ts +0 -31
  111. package/dist/zts.js +0 -147
  112. package/dist/zts.js.map +0 -1
  113. package/dist-esm/api-response.js +0 -2
  114. package/dist-esm/api-response.js.map +0 -1
  115. package/dist-esm/client-helpers.js +0 -48
  116. package/dist-esm/client-helpers.js.map +0 -1
  117. package/dist-esm/client.js +0 -113
  118. package/dist-esm/client.js.map +0 -1
  119. package/dist-esm/common-helpers.js +0 -188
  120. package/dist-esm/common-helpers.js.map +0 -1
  121. package/dist-esm/config-type.js +0 -7
  122. package/dist-esm/config-type.js.map +0 -1
  123. package/dist-esm/date-in-schema.js +0 -42
  124. package/dist-esm/date-in-schema.js.map +0 -1
  125. package/dist-esm/date-out-schema.js +0 -27
  126. package/dist-esm/date-out-schema.js.map +0 -1
  127. package/dist-esm/depends-on-method.js +0 -28
  128. package/dist-esm/depends-on-method.js.map +0 -1
  129. package/dist-esm/endpoint.js +0 -256
  130. package/dist-esm/endpoint.js.map +0 -1
  131. package/dist-esm/endpoints-factory.js +0 -64
  132. package/dist-esm/endpoints-factory.js.map +0 -1
  133. package/dist-esm/errors.js +0 -54
  134. package/dist-esm/errors.js.map +0 -1
  135. package/dist-esm/extend-zod.js +0 -16
  136. package/dist-esm/extend-zod.js.map +0 -1
  137. package/dist-esm/file-schema.js +0 -51
  138. package/dist-esm/file-schema.js.map +0 -1
  139. package/dist-esm/index.js +0 -19
  140. package/dist-esm/index.js.map +0 -1
  141. package/dist-esm/io-schema.js +0 -17
  142. package/dist-esm/io-schema.js.map +0 -1
  143. package/dist-esm/logger.js +0 -47
  144. package/dist-esm/logger.js.map +0 -1
  145. package/dist-esm/logical-container.js +0 -78
  146. package/dist-esm/logical-container.js.map +0 -1
  147. package/dist-esm/metadata.js +0 -51
  148. package/dist-esm/metadata.js.map +0 -1
  149. package/dist-esm/method.js +0 -2
  150. package/dist-esm/method.js.map +0 -1
  151. package/dist-esm/middleware.js +0 -12
  152. package/dist-esm/middleware.js.map +0 -1
  153. package/dist-esm/mime.js +0 -4
  154. package/dist-esm/mime.js.map +0 -1
  155. package/dist-esm/mock.js +0 -57
  156. package/dist-esm/mock.js.map +0 -1
  157. package/dist-esm/open-api-helpers.js +0 -575
  158. package/dist-esm/open-api-helpers.js.map +0 -1
  159. package/dist-esm/open-api.js +0 -94
  160. package/dist-esm/open-api.js.map +0 -1
  161. package/dist-esm/package.json +0 -1
  162. package/dist-esm/result-handler.js +0 -66
  163. package/dist-esm/result-handler.js.map +0 -1
  164. package/dist-esm/routing-walker.js +0 -51
  165. package/dist-esm/routing-walker.js.map +0 -1
  166. package/dist-esm/routing.js +0 -21
  167. package/dist-esm/routing.js.map +0 -1
  168. package/dist-esm/schema-walker.js +0 -22
  169. package/dist-esm/schema-walker.js.map +0 -1
  170. package/dist-esm/security.js +0 -2
  171. package/dist-esm/security.js.map +0 -1
  172. package/dist-esm/serve-static.js +0 -10
  173. package/dist-esm/serve-static.js.map +0 -1
  174. package/dist-esm/server.js +0 -98
  175. package/dist-esm/server.js.map +0 -1
  176. package/dist-esm/startup-logo.js +0 -23
  177. package/dist-esm/startup-logo.js.map +0 -1
  178. package/dist-esm/upload-schema.js +0 -38
  179. package/dist-esm/upload-schema.js.map +0 -1
  180. package/dist-esm/zts-helpers.js +0 -50
  181. package/dist-esm/zts-helpers.js.map +0 -1
  182. package/dist-esm/zts.js +0 -140
  183. package/dist-esm/zts.js.map +0 -1
@@ -1,113 +0,0 @@
1
- import ts from "typescript";
2
- import { exportModifier, f, makeAnyPromise, makeConst, makeEmptyInitializingConstructor, makeImplementationCallFn, makeIndexedPromise, makeObjectKeysReducer, makeParam, makeParams, makePublicClass, makePublicExtendedInterface, makePublicLiteralType, makePublicReadonlyProp, makePublicType, makeQuotedProp, makeRecord, makeTemplate, makeTypeParams, parametricIndexNode, protectedReadonlyModifier, } from "./client-helpers.js";
3
- import { makeCleanId } from "./common-helpers.js";
4
- import { methods } from "./method.js";
5
- import { mimeJson } from "./mime.js";
6
- import { walkRouting } from "./routing-walker.js";
7
- import { zodToTs } from "./zts.js";
8
- import { createTypeAlias, printNode } from "./zts-helpers.js";
9
- export class Client {
10
- constructor(routing) {
11
- this.agg = [];
12
- this.registry = {};
13
- this.paths = [];
14
- walkRouting({
15
- routing,
16
- onEndpoint: (endpoint, path, method) => {
17
- const inputId = makeCleanId(path, method, "input");
18
- const responseId = makeCleanId(path, method, "response");
19
- const input = zodToTs({
20
- schema: endpoint.getSchema("input"),
21
- isResponse: false,
22
- });
23
- const response = zodToTs({
24
- isResponse: true,
25
- schema: endpoint
26
- .getSchema("positive")
27
- .or(endpoint.getSchema("negative")),
28
- });
29
- const inputAlias = createTypeAlias(input, inputId);
30
- const responseAlias = createTypeAlias(response, responseId);
31
- this.agg.push(inputAlias);
32
- this.agg.push(responseAlias);
33
- if (method !== "options") {
34
- this.paths.push(path);
35
- this.registry[`${method} ${path}`] = {
36
- in: inputId,
37
- out: responseId,
38
- isJson: endpoint.getMimeTypes("positive").includes(mimeJson),
39
- };
40
- }
41
- },
42
- });
43
- const pathNode = makePublicLiteralType("Path", this.paths);
44
- const methodNode = makePublicLiteralType("Method", methods);
45
- const methodPathNode = makePublicType("MethodPath", makeTemplate([methodNode.name, pathNode.name]));
46
- const extenderClause = [
47
- f.createHeritageClause(ts.SyntaxKind.ExtendsKeyword, [
48
- makeRecord(methodPathNode.name, ts.SyntaxKind.AnyKeyword),
49
- ]),
50
- ];
51
- const inputNode = makePublicExtendedInterface("Input", extenderClause, Object.keys(this.registry).map((methodPath) => makeQuotedProp(methodPath, this.registry[methodPath].in)));
52
- const responseNode = makePublicExtendedInterface("Response", extenderClause, Object.keys(this.registry).map((methodPath) => makeQuotedProp(methodPath, this.registry[methodPath].out)));
53
- const jsonEndpointsNode = f.createVariableStatement(exportModifier, makeConst("jsonEndpoints", f.createObjectLiteralExpression(Object.keys(this.registry)
54
- .filter((methodPath) => this.registry[methodPath].isJson)
55
- .map((methodPath) => f.createPropertyAssignment(`"${methodPath}"`, f.createTrue())))));
56
- const providerNode = makePublicType("Provider", f.createFunctionTypeNode(makeTypeParams({ M: methodNode.name, P: pathNode.name }), makeParams({
57
- method: f.createTypeReferenceNode("M"),
58
- path: f.createTypeReferenceNode("P"),
59
- params: f.createIndexedAccessTypeNode(f.createTypeReferenceNode(inputNode.name), parametricIndexNode),
60
- }), makeIndexedPromise(responseNode.name, parametricIndexNode)));
61
- const implementationNode = makePublicType("Implementation", f.createFunctionTypeNode(undefined, makeParams({
62
- method: f.createTypeReferenceNode(methodNode.name),
63
- path: f.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
64
- params: makeRecord(ts.SyntaxKind.StringKeyword, ts.SyntaxKind.AnyKeyword),
65
- }), makeAnyPromise()));
66
- const keyParamExpression = f.createTemplateExpression(f.createTemplateHead(":"), [
67
- f.createTemplateSpan(f.createIdentifier("key"), f.createTemplateTail("")),
68
- ]);
69
- const clientNode = makePublicClass("ExpressZodAPIClient", makeEmptyInitializingConstructor([
70
- makeParam("implementation", f.createTypeReferenceNode(implementationNode.name), protectedReadonlyModifier),
71
- ]), [
72
- makePublicReadonlyProp("provide", f.createTypeReferenceNode(providerNode.name), makeImplementationCallFn(["method", "path", "params"], [
73
- f.createIdentifier("method"),
74
- makeObjectKeysReducer("params", f.createCallExpression(f.createPropertyAccessExpression(f.createIdentifier("acc"), "replace"), undefined, [
75
- keyParamExpression,
76
- f.createElementAccessExpression(f.createIdentifier("params"), f.createIdentifier("key")),
77
- ]), f.createIdentifier("path")),
78
- makeObjectKeysReducer("params", f.createConditionalExpression(f.createBinaryExpression(f.createCallExpression(f.createPropertyAccessExpression(f.createIdentifier("path"), "indexOf"), undefined, [keyParamExpression]), ts.SyntaxKind.GreaterThanEqualsToken, f.createNumericLiteral(0)), undefined, f.createIdentifier("acc"), undefined, f.createObjectLiteralExpression([
79
- f.createSpreadAssignment(f.createIdentifier("acc")),
80
- f.createPropertyAssignment("[key]", // @todo is there a better way to do it?
81
- f.createElementAccessExpression(f.createIdentifier("params"), f.createIdentifier("key"))),
82
- ])), f.createObjectLiteralExpression()),
83
- ])),
84
- ]);
85
- ts.addSyntheticLeadingComment(clientNode, ts.SyntaxKind.MultiLineCommentTrivia, "\n" +
86
- "export const exampleImplementation: Implementation = async (\n" +
87
- " method,\n" +
88
- " path,\n" +
89
- " params\n" +
90
- ") => {\n" +
91
- " const searchParams =\n" +
92
- ' method === "get" ? `?${new URLSearchParams(params)}` : "";\n' +
93
- " const response = await fetch(`https://example.com${path}${searchParams}`, {\n" +
94
- " method: method.toUpperCase(),\n" +
95
- " headers:\n" +
96
- ' method === "get" ? undefined : { "Content-Type": "application/json" },\n' +
97
- ' body: method === "get" ? undefined : JSON.stringify(params),\n' +
98
- " });\n" +
99
- " if (`${method} ${path}` in jsonEndpoints) {\n" +
100
- " return response.json();\n" +
101
- " }\n" +
102
- " return response.text();\n" +
103
- "};\n" +
104
- "\n" +
105
- "const client = new ExpressZodAPIClient(exampleImplementation);\n" +
106
- 'client.provide("get", "/v1/user/retrieve", { id: "10" });\n', true);
107
- this.agg.push(pathNode, methodNode, methodPathNode, inputNode, responseNode, jsonEndpointsNode, providerNode, implementationNode, clientNode);
108
- }
109
- print(printerOptions) {
110
- return this.agg.map((node) => printNode(node, printerOptions)).join("\n\n");
111
- }
112
- }
113
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1,188 +0,0 @@
1
- import { HttpError } from "http-errors";
2
- import { z } from "zod";
3
- import { loggerLevels, } from "./config-type.js";
4
- import { InputValidationError, OutputValidationError } from "./errors.js";
5
- import { getMeta } from "./metadata.js";
6
- import { mimeMultipart } from "./mime.js";
7
- import { ZodUpload } from "./upload-schema.js";
8
- /** @see https://expressjs.com/en/guide/routing.html */
9
- export const routePathParamsRegex = /:([A-Za-z0-9_]+)/g;
10
- function areFilesAvailable(request) {
11
- const contentType = request.header("content-type") || "";
12
- const isMultipart = contentType.slice(0, mimeMultipart.length).toLowerCase() === mimeMultipart;
13
- return "files" in request && isMultipart;
14
- }
15
- export const defaultInputSources = {
16
- get: ["query", "params"],
17
- post: ["body", "params", "files"],
18
- put: ["body", "params"],
19
- patch: ["body", "params"],
20
- delete: ["query", "params"],
21
- };
22
- const fallbackInputSource = ["body", "query", "params"];
23
- export const getActualMethod = (request) => request.method.toLowerCase();
24
- export function getInput(request, inputAssignment) {
25
- const method = getActualMethod(request);
26
- if (method === "options") {
27
- return {};
28
- }
29
- let props = fallbackInputSource;
30
- if (method in defaultInputSources) {
31
- props = defaultInputSources[method];
32
- }
33
- if (inputAssignment && method in inputAssignment) {
34
- props = inputAssignment[method] || props;
35
- }
36
- return props
37
- .filter((prop) => (prop === "files" ? areFilesAvailable(request) : true))
38
- .reduce((carry, prop) => ({
39
- ...carry,
40
- ...request[prop],
41
- }), {});
42
- }
43
- export function isLoggerConfig(logger) {
44
- return (typeof logger === "object" &&
45
- "level" in logger &&
46
- "color" in logger &&
47
- Object.keys(loggerLevels).includes(logger.level) &&
48
- typeof logger.color === "boolean");
49
- }
50
- export function isValidDate(date) {
51
- return !isNaN(date.getTime());
52
- }
53
- export function makeErrorFromAnything(subject) {
54
- return subject instanceof Error
55
- ? subject
56
- : new Error(typeof subject === "symbol" ? subject.toString() : `${subject}`);
57
- }
58
- export function getMessageFromError(error) {
59
- if (error instanceof z.ZodError) {
60
- return error.issues
61
- .map(({ path, message }) => (path.length ? [path.join("/")] : []).concat(message).join(": "))
62
- .join("; ");
63
- }
64
- if (error instanceof OutputValidationError) {
65
- const hasFirstField = error.originalError.issues[0]?.path.length > 0;
66
- return `output${hasFirstField ? "/" : ": "}${error.message}`;
67
- }
68
- return error.message;
69
- }
70
- export function getStatusCodeFromError(error) {
71
- if (error instanceof HttpError) {
72
- return error.statusCode;
73
- }
74
- if (error instanceof InputValidationError) {
75
- return 400;
76
- }
77
- return 500;
78
- }
79
- export const getExamples = (schema, parseToOutput) => {
80
- const examples = getMeta(schema, "examples");
81
- if (examples === undefined) {
82
- return [];
83
- }
84
- return examples.reduce((carry, example) => {
85
- const parsedExample = schema.safeParse(example);
86
- return carry.concat(parsedExample.success
87
- ? parseToOutput
88
- ? parsedExample.data
89
- : example
90
- : []);
91
- }, []);
92
- };
93
- export const combinations = (a, b) => {
94
- if (a.length === 0) {
95
- return { type: "single", value: b };
96
- }
97
- if (b.length === 0) {
98
- return { type: "single", value: a };
99
- }
100
- const result = [];
101
- for (const itemA of a) {
102
- for (const itemB of b) {
103
- result.push([itemA, itemB]);
104
- }
105
- }
106
- return { type: "tuple", value: result };
107
- };
108
- export function getRoutePathParams(path) {
109
- const match = path.match(routePathParamsRegex);
110
- if (!match) {
111
- return [];
112
- }
113
- return match.map((param) => param.slice(1));
114
- }
115
- const reduceBool = (arr) => arr.reduce((carry, bool) => carry || bool, false);
116
- export function hasTopLevelTransformingEffect(schema) {
117
- if (schema instanceof z.ZodEffects) {
118
- if (schema._def.effect.type !== "refinement") {
119
- return true;
120
- }
121
- }
122
- if (schema instanceof z.ZodUnion) {
123
- return reduceBool(schema.options.map(hasTopLevelTransformingEffect));
124
- }
125
- if (schema instanceof z.ZodIntersection) {
126
- return reduceBool([schema._def.left, schema._def.right].map(hasTopLevelTransformingEffect));
127
- }
128
- return false; // ZodObject left
129
- }
130
- export function hasUpload(schema) {
131
- if (schema instanceof ZodUpload) {
132
- return true;
133
- }
134
- if (schema instanceof z.ZodObject) {
135
- return reduceBool(Object.values(schema.shape).map(hasUpload));
136
- }
137
- if (schema instanceof z.ZodUnion) {
138
- return reduceBool(schema.options.map(hasUpload));
139
- }
140
- if (schema instanceof z.ZodIntersection) {
141
- return reduceBool([schema._def.left, schema._def.right].map(hasUpload));
142
- }
143
- if (schema instanceof z.ZodOptional || schema instanceof z.ZodNullable) {
144
- return hasUpload(schema.unwrap());
145
- }
146
- if (schema instanceof z.ZodEffects || schema instanceof z.ZodTransformer) {
147
- return hasUpload(schema._def.schema);
148
- }
149
- if (schema instanceof z.ZodRecord) {
150
- return hasUpload(schema._def.valueType);
151
- }
152
- if (schema instanceof z.ZodArray) {
153
- return hasUpload(schema._def.type);
154
- }
155
- if (schema instanceof z.ZodDefault) {
156
- return hasUpload(schema._def.innerType);
157
- }
158
- return false;
159
- }
160
- /**
161
- * @desc isNullable() and isOptional() validate the schema's input
162
- * @desc They always return true in case of coercion, which should be taken into account when depicting response
163
- */
164
- export const hasCoercion = (schema) => "coerce" in schema._def && typeof schema._def.coerce === "boolean"
165
- ? schema._def.coerce
166
- : false;
167
- export const makeCleanId = (path, method, suffix) => {
168
- return [method]
169
- .concat(path.split("/"))
170
- .concat(suffix || [])
171
- .flatMap((entry) => entry.split(/[^A-Z0-9]/gi))
172
- .map((entry) => entry.slice(0, 1).toUpperCase() + entry.slice(1).toLowerCase())
173
- .join("");
174
- };
175
- export const tryToTransform = ({ effect, sample, }) => {
176
- try {
177
- return typeof effect.transform(sample, {
178
- addIssue: () => { },
179
- path: [],
180
- });
181
- }
182
- catch (e) {
183
- return undefined;
184
- }
185
- };
186
- // the copy of the private Zod errorUtil.errToObj
187
- export const errToObj = (message) => typeof message === "string" ? { message } : message || {};
188
- //# 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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"}
@@ -1,7 +0,0 @@
1
- export const loggerLevels = {
2
- silent: true,
3
- warn: true,
4
- debug: true,
5
- };
6
- export const createConfig = (config) => config;
7
- //# sourceMappingURL=config-type.js.map
@@ -1 +0,0 @@
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;AAmFF,MAAM,CAAC,MAAM,YAAY,GAAG,CAI1B,MAAS,EACN,EAAE,CAAC,MAAM,CAAC"}
@@ -1,42 +0,0 @@
1
- import { INVALID, ZodIssueCode, ZodParsedType, ZodType, addIssueToContext, } from "zod";
2
- import { isValidDate } from "./common-helpers.js";
3
- // simple regex for ISO date, supports the following formats:
4
- // 2021-01-01T00:00:00.000Z
5
- // 2021-01-01T00:00:00.0Z
6
- // 2021-01-01T00:00:00Z
7
- // 2021-01-01T00:00:00
8
- // 2021-01-01
9
- export const isoDateRegex = /^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$/;
10
- const zodDateInKind = "ZodDateIn";
11
- export class ZodDateIn extends ZodType {
12
- _parse(input) {
13
- const { status, ctx } = this._processInputParams(input);
14
- if (ctx.parsedType !== ZodParsedType.string) {
15
- addIssueToContext(ctx, {
16
- code: ZodIssueCode.invalid_type,
17
- expected: ZodParsedType.string,
18
- received: ctx.parsedType,
19
- });
20
- return INVALID;
21
- }
22
- if (!isoDateRegex.test(ctx.data)) {
23
- addIssueToContext(ctx, {
24
- code: ZodIssueCode.invalid_string,
25
- validation: "regex",
26
- });
27
- status.dirty();
28
- }
29
- const date = new Date(ctx.data);
30
- if (!isValidDate(date)) {
31
- addIssueToContext(ctx, {
32
- code: ZodIssueCode.invalid_date,
33
- });
34
- return INVALID;
35
- }
36
- return { status: status.value, value: date };
37
- }
38
- }
39
- ZodDateIn.create = () => new ZodDateIn({
40
- typeName: zodDateInKind,
41
- });
42
- //# 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,OAAO,EACL,OAAO,EAGP,YAAY,EACZ,aAAa,EACb,OAAO,EAEP,iBAAiB,GAClB,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,6DAA6D;AAC7D,2BAA2B;AAC3B,yBAAyB;AACzB,uBAAuB;AACvB,sBAAsB;AACtB,aAAa;AACb,MAAM,CAAC,MAAM,YAAY,GACvB,oDAAoD,CAAC;AAEvD,MAAM,aAAa,GAAG,WAAW,CAAC;AAMlC,MAAM,OAAO,SAAU,SAAQ,OAAmC;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,aAAa,CAAC,MAAM,EAAE;YAC3C,iBAAiB,CAAC,GAAG,EAAE;gBACrB,IAAI,EAAE,YAAY,CAAC,YAAY;gBAC/B,QAAQ,EAAE,aAAa,CAAC,MAAM;gBAC9B,QAAQ,EAAE,GAAG,CAAC,UAAU;aACzB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;SAChB;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAc,CAAC,EAAE;YAC1C,iBAAiB,CAAC,GAAG,EAAE;gBACrB,IAAI,EAAE,YAAY,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,WAAW,CAAC,IAAI,CAAC,EAAE;YACtB,iBAAiB,CAAC,GAAG,EAAE;gBACrB,IAAI,EAAE,YAAY,CAAC,YAAY;aAChC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;SAChB;QAED,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC/C,CAAC;;AAEM,gBAAM,GAAG,GAAG,EAAE,CACnB,IAAI,SAAS,CAAC;IACZ,QAAQ,EAAE,aAAa;CACxB,CAAC,CAAC"}
@@ -1,27 +0,0 @@
1
- import { INVALID, ZodIssueCode, ZodParsedType, ZodType, addIssueToContext, } from "zod";
2
- import { isValidDate } from "./common-helpers.js";
3
- const zodDateOutKind = "ZodDateOut";
4
- export class ZodDateOut extends ZodType {
5
- _parse(input) {
6
- const { status, ctx } = this._processInputParams(input);
7
- if (ctx.parsedType !== ZodParsedType.date) {
8
- addIssueToContext(ctx, {
9
- code: ZodIssueCode.invalid_type,
10
- expected: ZodParsedType.date,
11
- received: ctx.parsedType,
12
- });
13
- return INVALID;
14
- }
15
- if (!isValidDate(ctx.data)) {
16
- addIssueToContext(ctx, {
17
- code: ZodIssueCode.invalid_date,
18
- });
19
- return INVALID;
20
- }
21
- return { status: status.value, value: ctx.data.toISOString() };
22
- }
23
- }
24
- ZodDateOut.create = () => new ZodDateOut({
25
- typeName: zodDateOutKind,
26
- });
27
- //# 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,OAAO,EACL,OAAO,EAGP,YAAY,EACZ,aAAa,EACb,OAAO,EAEP,iBAAiB,GAClB,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,cAAc,GAAG,YAAY,CAAC;AAMpC,MAAM,OAAO,UAAW,SAAQ,OAAoC;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,aAAa,CAAC,IAAI,EAAE;YACzC,iBAAiB,CAAC,GAAG,EAAE;gBACrB,IAAI,EAAE,YAAY,CAAC,YAAY;gBAC/B,QAAQ,EAAE,aAAa,CAAC,IAAI;gBAC5B,QAAQ,EAAE,GAAG,CAAC,UAAU;aACzB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;SAChB;QAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC1B,iBAAiB,CAAC,GAAG,EAAE;gBACrB,IAAI,EAAE,YAAY,CAAC,YAAY;aAChC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;SAChB;QAED,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAG,GAAG,CAAC,IAAa,CAAC,WAAW,EAAE,EAAE,CAAC;IAC3E,CAAC;;AAEM,iBAAM,GAAG,GAAG,EAAE,CACnB,IAAI,UAAU,CAAC;IACb,QAAQ,EAAE,cAAc;CACzB,CAAC,CAAC"}
@@ -1,28 +0,0 @@
1
- import { DependsOnMethodError } from "./errors.js";
2
- export class DependsOnMethod {
3
- constructor(methods) {
4
- this.methods = methods;
5
- Object.keys(methods).forEach((key) => {
6
- if (key in methods) {
7
- const endpointMethods = methods[key]?.getMethods() || [];
8
- if (!endpointMethods.includes(key)) {
9
- throw new DependsOnMethodError(`The endpoint assigned to the '${key}' parameter must have at least this method in its specification.\n` +
10
- "This error should prevent mistakes during the development process.\n" +
11
- "Example:\n\n" +
12
- `new ${this.constructor.name}({\n` +
13
- ` ${key}: endpointsFactory.build({\n` +
14
- ` methods: ['${key}', ` +
15
- ((methods[key]?.getMethods() || [])
16
- .map((m) => `'${m}'`)
17
- .join(", ") || "...") +
18
- "]\n" +
19
- ` // or method: '${key}'\n` +
20
- " ...\n" +
21
- " })\n" +
22
- "});\n");
23
- }
24
- }
25
- });
26
- }
27
- }
28
- //# 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,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGhD,MAAM,OAAO,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,oBAAoB,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"}