@desaubv/quik 0.0.21 → 0.0.81

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.
@@ -0,0 +1,318 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/http/index.ts
21
+ var http_exports = {};
22
+ __export(http_exports, {
23
+ Status: () => Status,
24
+ Types: () => Types,
25
+ ValidationException: () => ValidationException,
26
+ Validator: () => Validator
27
+ });
28
+ module.exports = __toCommonJS(http_exports);
29
+
30
+ // src/http/validatorTypes.ts
31
+ var ArrayType = class {
32
+ type;
33
+ description = "array";
34
+ empty = false;
35
+ constructor(...type) {
36
+ this.type = [...type];
37
+ this.empty = false;
38
+ const types = type.map((t) => t.description);
39
+ this.description = `array(${types.join(" | ")})`;
40
+ }
41
+ canBeEmpty() {
42
+ this.empty = true;
43
+ return this;
44
+ }
45
+ };
46
+ var ObjectType = class {
47
+ fields;
48
+ description = "object";
49
+ constructor(fields) {
50
+ this.fields = fields;
51
+ const names = Object.keys(fields);
52
+ this.description = `object{${names.join(", ")}}`;
53
+ }
54
+ };
55
+ function Array2(...type) {
56
+ return new ArrayType(...type);
57
+ }
58
+ function Struct(fields) {
59
+ return new ObjectType(fields);
60
+ }
61
+ var Types = {
62
+ String: /* @__PURE__ */ Symbol("string"),
63
+ Number: /* @__PURE__ */ Symbol("number"),
64
+ Int: /* @__PURE__ */ Symbol("int"),
65
+ Float: /* @__PURE__ */ Symbol("float"),
66
+ Boolean: /* @__PURE__ */ Symbol("boolean"),
67
+ Object: /* @__PURE__ */ Symbol("object"),
68
+ Null: /* @__PURE__ */ Symbol("null"),
69
+ Any: /* @__PURE__ */ Symbol("any"),
70
+ Array: Array2,
71
+ Struct
72
+ };
73
+
74
+ // src/http/exceptions.ts
75
+ var ValidationException = class extends Error {
76
+ constructor(message) {
77
+ super(message);
78
+ this.name = "ValidationException";
79
+ }
80
+ };
81
+ var RequestBodyUndefinedException = class extends ValidationException {
82
+ constructor() {
83
+ super("Request body is undefined");
84
+ this.name = "RequestBodyUndefinedException";
85
+ }
86
+ };
87
+ var InvalidBodyException = class extends ValidationException {
88
+ constructor() {
89
+ super("Request body must be an object");
90
+ this.name = "InvalidBodyException";
91
+ }
92
+ };
93
+ var RequiredFieldException = class extends ValidationException {
94
+ constructor(field) {
95
+ super(`Field "${field}" is required`);
96
+ this.field = field;
97
+ this.name = "RequiredFieldException";
98
+ }
99
+ field;
100
+ };
101
+ var InvalidTypeException = class extends ValidationException {
102
+ constructor(field, expected, received) {
103
+ super(
104
+ `Field "${field}" must be of type ${expected}, received ${received}`
105
+ );
106
+ this.field = field;
107
+ this.expected = expected;
108
+ this.received = received;
109
+ this.name = "InvalidTypeException";
110
+ }
111
+ field;
112
+ expected;
113
+ received;
114
+ };
115
+ var EmptyArrayException = class extends ValidationException {
116
+ constructor(field) {
117
+ super(`Field "${field}" must not be an empty array`);
118
+ this.field = field;
119
+ this.name = "EmptyArrayException";
120
+ }
121
+ field;
122
+ };
123
+
124
+ // src/http/validador.ts
125
+ var Validator = {
126
+ body(body, fields) {
127
+ if (body === void 0) {
128
+ throw new RequestBodyUndefinedException();
129
+ }
130
+ if (typeof body !== "object" || body === null || Array.isArray(body)) {
131
+ throw new InvalidBodyException();
132
+ }
133
+ return validateObject(body, fields);
134
+ }
135
+ };
136
+ function validateObject(body, fields, parentPath = "") {
137
+ if (typeof body !== "object" || body === null || Array.isArray(body)) {
138
+ throw new InvalidBodyException();
139
+ }
140
+ const bodyData = body;
141
+ const data = {};
142
+ for (const name in fields) {
143
+ const field = fields[name];
144
+ if (!field) {
145
+ continue;
146
+ }
147
+ const fieldPath = parentPath ? `${parentPath}.${name}` : name;
148
+ let value = bodyData[name];
149
+ if (field.required && value === void 0) {
150
+ throw new RequiredFieldException(fieldPath);
151
+ }
152
+ if (value === void 0) {
153
+ continue;
154
+ }
155
+ if (!validateType(field.type, value, fieldPath)) {
156
+ const type = getTypeDescription(field.type);
157
+ throw new InvalidTypeException(
158
+ fieldPath,
159
+ type,
160
+ whatTypeIs(value)
161
+ );
162
+ }
163
+ if (field.validator) {
164
+ const result = field.validator(value);
165
+ if (result instanceof ValidationException) {
166
+ throw result;
167
+ }
168
+ value = result;
169
+ }
170
+ data[name] = value;
171
+ }
172
+ return data;
173
+ }
174
+ function validateType(type, value, fieldName = "") {
175
+ if (Array.isArray(type)) {
176
+ return type.some(
177
+ (t) => validateType(t, value, fieldName)
178
+ );
179
+ }
180
+ if (type instanceof ArrayType) {
181
+ if (!Array.isArray(value)) {
182
+ return false;
183
+ }
184
+ if (!type.empty && value.length === 0) {
185
+ throw new EmptyArrayException(fieldName);
186
+ }
187
+ for (const item of value) {
188
+ if (!validateType(type.type, item, fieldName)) {
189
+ return false;
190
+ }
191
+ }
192
+ return true;
193
+ }
194
+ if (type instanceof ObjectType) {
195
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
196
+ return false;
197
+ }
198
+ validateObject(
199
+ value,
200
+ type.fields,
201
+ fieldName
202
+ );
203
+ return true;
204
+ }
205
+ switch (type?.description) {
206
+ case "any":
207
+ return true;
208
+ case "null":
209
+ return value === null;
210
+ case "string":
211
+ return typeof value === "string";
212
+ case "number":
213
+ case "float":
214
+ return typeof value === "number";
215
+ case "int":
216
+ return typeof value === "number" && Number.isInteger(value);
217
+ case "boolean":
218
+ return typeof value === "boolean";
219
+ case "object":
220
+ return typeof value === "object" && value !== null && !Array.isArray(value);
221
+ }
222
+ return false;
223
+ }
224
+ function getTypeDescription(type) {
225
+ if (Array.isArray(type)) {
226
+ return type.map((t) => getTypeDescription(t)).join(" | ");
227
+ }
228
+ return type.description || "";
229
+ }
230
+ function whatTypeIs(value) {
231
+ if (typeof value === "number" && Number.isInteger(value)) {
232
+ return "int";
233
+ }
234
+ if (Array.isArray(value)) {
235
+ return "array";
236
+ }
237
+ if (value === null) {
238
+ return "null";
239
+ }
240
+ return typeof value;
241
+ }
242
+
243
+ // src/http/status.ts
244
+ var Status = {
245
+ // 1xx Informational
246
+ CONTINUE: 100,
247
+ SWITCHING_PROTOCOLS: 101,
248
+ PROCESSING: 102,
249
+ EARLY_HINTS: 103,
250
+ // 2xx Success
251
+ OK: 200,
252
+ CREATED: 201,
253
+ ACCEPTED: 202,
254
+ NON_AUTHORITATIVE_INFORMATION: 203,
255
+ NO_CONTENT: 204,
256
+ RESET_CONTENT: 205,
257
+ PARTIAL_CONTENT: 206,
258
+ MULTI_STATUS: 207,
259
+ ALREADY_REPORTED: 208,
260
+ IM_USED: 226,
261
+ // 3xx Redirection
262
+ MULTIPLE_CHOICES: 300,
263
+ MOVED_PERMANENTLY: 301,
264
+ FOUND: 302,
265
+ SEE_OTHER: 303,
266
+ NOT_MODIFIED: 304,
267
+ TEMPORARY_REDIRECT: 307,
268
+ PERMANENT_REDIRECT: 308,
269
+ // 4xx Client Errors
270
+ BAD_REQUEST: 400,
271
+ UNAUTHORIZED: 401,
272
+ PAYMENT_REQUIRED: 402,
273
+ FORBIDDEN: 403,
274
+ NOT_FOUND: 404,
275
+ METHOD_NOT_ALLOWED: 405,
276
+ NOT_ACCEPTABLE: 406,
277
+ PROXY_AUTHENTICATION_REQUIRED: 407,
278
+ REQUEST_TIMEOUT: 408,
279
+ CONFLICT: 409,
280
+ GONE: 410,
281
+ LENGTH_REQUIRED: 411,
282
+ PRECONDITION_FAILED: 412,
283
+ PAYLOAD_TOO_LARGE: 413,
284
+ URI_TOO_LONG: 414,
285
+ UNSUPPORTED_MEDIA_TYPE: 415,
286
+ RANGE_NOT_SATISFIABLE: 416,
287
+ EXPECTATION_FAILED: 417,
288
+ IM_A_TEAPOT: 418,
289
+ MISDIRECTED_REQUEST: 421,
290
+ UNPROCESSABLE_CONTENT: 422,
291
+ LOCKED: 423,
292
+ FAILED_DEPENDENCY: 424,
293
+ UPGRADE_REQUIRED: 426,
294
+ PRECONDITION_REQUIRED: 428,
295
+ TOO_MANY_REQUESTS: 429,
296
+ REQUEST_HEADER_FIELDS_TOO_LARGE: 431,
297
+ UNAVAILABLE_FOR_LEGAL_REASONS: 451,
298
+ // 5xx Server Errors
299
+ INTERNAL_SERVER_ERROR: 500,
300
+ NOT_IMPLEMENTED: 501,
301
+ BAD_GATEWAY: 502,
302
+ SERVICE_UNAVAILABLE: 503,
303
+ GATEWAY_TIMEOUT: 504,
304
+ HTTP_VERSION_NOT_SUPPORTED: 505,
305
+ VARIANT_ALSO_NEGOTIATES: 506,
306
+ INSUFFICIENT_STORAGE: 507,
307
+ LOOP_DETECTED: 508,
308
+ NOT_EXTENDED: 510,
309
+ NETWORK_AUTHENTICATION_REQUIRED: 511
310
+ };
311
+ // Annotate the CommonJS export names for ESM import in node:
312
+ 0 && (module.exports = {
313
+ Status,
314
+ Types,
315
+ ValidationException,
316
+ Validator
317
+ });
318
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/http/index.ts","../../src/http/validatorTypes.ts","../../src/http/exceptions.ts","../../src/http/validador.ts","../../src/http/status.ts"],"sourcesContent":["export { Types } from \"./validatorTypes.js\";\r\n\r\nexport { ValidationException } from \"./exceptions.js\";\r\nexport { Validator } from \"./validador.js\";\r\nexport { Status } from \"./status.js\";\r\n","import type { ValidationException } from \"./exceptions.js\";\r\n\r\nexport class ArrayType {\r\n type: PrimitiveType[];\r\n description = \"array\";\r\n empty: boolean = false;\r\n\r\n constructor(...type: PrimitiveType[]) {\r\n this.type = [...type];\r\n this.empty = false;\r\n\r\n const types = type.map((t) => t.description);\r\n this.description = `array(${types.join(\" | \")})`;\r\n }\r\n\r\n canBeEmpty() {\r\n this.empty = true;\r\n return this;\r\n }\r\n}\r\n\r\nexport type FieldDefinition = {\r\n type: ValidatorType;\r\n required?: boolean;\r\n validator?: (value: unknown) => unknown | ValidationException;\r\n};\r\n\r\nexport type ObjectFields = {\r\n [name: string]: FieldDefinition;\r\n};\r\n\r\nexport class ObjectType {\r\n fields: ObjectFields;\r\n description = \"object\";\r\n\r\n constructor(fields: ObjectFields) {\r\n this.fields = fields;\r\n\r\n const names = Object.keys(fields);\r\n\r\n this.description = `object{${names.join(\", \")}}`;\r\n }\r\n}\r\n\r\nfunction Array(...type: PrimitiveType[]) {\r\n return new ArrayType(...type);\r\n}\r\n\r\nfunction Struct(fields: ObjectFields) {\r\n return new ObjectType(fields);\r\n}\r\n\r\nexport const Types = {\r\n String: Symbol(\"string\"),\r\n Number: Symbol(\"number\"),\r\n Int: Symbol(\"int\"),\r\n Float: Symbol(\"float\"),\r\n Boolean: Symbol(\"boolean\"),\r\n Object: Symbol(\"object\"),\r\n Null: Symbol(\"null\"),\r\n Any: Symbol(\"any\"),\r\n \r\n Array,\r\n Struct,\r\n};\r\n\r\nexport type PrimitiveType =\r\n | typeof Types.String\r\n | typeof Types.Number\r\n | typeof Types.Int\r\n | typeof Types.Float\r\n | typeof Types.Boolean\r\n | typeof Types.Object\r\n | typeof Types.Null;\r\n\r\nexport type MultiType = PrimitiveType[];\r\n\r\nexport type ValidatorType =\r\n | PrimitiveType\r\n | MultiType\r\n | ArrayType\r\n | ObjectType;","class ValidationException extends Error {\r\n constructor(message: string) {\r\n super(message);\r\n\r\n this.name = \"ValidationException\";\r\n }\r\n}\r\n\r\nclass RequestBodyUndefinedException extends ValidationException {\r\n constructor() {\r\n super(\"Request body is undefined\");\r\n\r\n this.name = \"RequestBodyUndefinedException\";\r\n }\r\n}\r\n\r\nclass InvalidBodyException extends ValidationException {\r\n constructor() {\r\n super(\"Request body must be an object\");\r\n\r\n this.name = \"InvalidBodyException\";\r\n }\r\n}\r\n\r\nclass RequiredFieldException extends ValidationException {\r\n constructor(\r\n public readonly field: string,\r\n ) {\r\n super(`Field \"${field}\" is required`);\r\n\r\n this.name = \"RequiredFieldException\";\r\n }\r\n}\r\n\r\nclass InvalidTypeException extends ValidationException {\r\n constructor(\r\n public readonly field: string,\r\n public readonly expected: string | undefined,\r\n public readonly received: string,\r\n ) {\r\n super(\r\n `Field \"${field}\" must be of type ${expected}, received ${received}`,\r\n );\r\n\r\n this.name = \"InvalidTypeException\";\r\n }\r\n}\r\n\r\nclass CustomValidationException extends ValidationException {\r\n constructor(\r\n public readonly field: string,\r\n ) {\r\n super(`Field \"${field}\" failed custom validation`);\r\n\r\n this.name = \"CustomValidationException\";\r\n }\r\n}\r\n\r\nclass EmptyArrayException extends ValidationException {\r\n constructor(\r\n public readonly field: string,\r\n ) {\r\n super(`Field \"${field}\" must not be an empty array`);\r\n\r\n this.name = \"EmptyArrayException\";\r\n }\r\n}\r\n\r\nexport {\r\n ValidationException,\r\n RequestBodyUndefinedException,\r\n InvalidBodyException,\r\n RequiredFieldException,\r\n InvalidTypeException,\r\n CustomValidationException,\r\n EmptyArrayException\r\n}","import {\r\n ValidationException,\r\n RequestBodyUndefinedException,\r\n InvalidBodyException,\r\n RequiredFieldException,\r\n InvalidTypeException,\r\n EmptyArrayException\r\n} from \"./exceptions.js\";\r\n\r\nimport {\r\n ArrayType,\r\n ObjectType,\r\n Types\r\n} from \"./validatorTypes.js\";\r\n\r\nimport type {\r\n ValidatorType,\r\n ObjectFields\r\n} from \"./validatorTypes.js\";\r\n\r\ntype FieldDefinition = {\r\n type: ValidatorType;\r\n required?: boolean;\r\n validator?: (\r\n value: unknown\r\n ) => unknown | ValidationException;\r\n};\r\n\r\ninterface BodyFields {\r\n [name: string]: FieldDefinition;\r\n}\r\n\r\ninterface Body {\r\n [name: string]: unknown;\r\n}\r\n\r\nconst Validator = {\r\n body(body: Body, fields: BodyFields) {\r\n if (body === undefined) {\r\n throw new RequestBodyUndefinedException();\r\n }\r\n\r\n if (\r\n typeof body !== \"object\" ||\r\n body === null ||\r\n Array.isArray(body)\r\n ) {\r\n throw new InvalidBodyException();\r\n }\r\n\r\n return validateObject(body, fields);\r\n }\r\n};\r\n\r\nfunction validateObject(\r\n body: unknown,\r\n fields: ObjectFields,\r\n parentPath = \"\"\r\n): Record<string, unknown> {\r\n\r\n if (\r\n typeof body !== \"object\" ||\r\n body === null ||\r\n Array.isArray(body)\r\n ) {\r\n throw new InvalidBodyException();\r\n }\r\n\r\n const bodyData = body as Record<string, unknown>;\r\n const data: Record<string, unknown> = {};\r\n\r\n for (const name in fields) {\r\n const field = fields[name];\r\n\r\n if (!field) {\r\n continue;\r\n }\r\n\r\n const fieldPath = parentPath\r\n ? `${parentPath}.${name}`\r\n : name;\r\n\r\n let value = bodyData[name];\r\n\r\n // Required field\r\n if (field.required && value === undefined) {\r\n throw new RequiredFieldException(fieldPath);\r\n }\r\n\r\n // Optional field not provided\r\n if (value === undefined) {\r\n continue;\r\n }\r\n\r\n // Validate type\r\n if (!validateType(field.type, value, fieldPath)) {\r\n const type = getTypeDescription(field.type);\r\n\r\n throw new InvalidTypeException(\r\n fieldPath,\r\n type,\r\n whatTypeIs(value)\r\n );\r\n }\r\n\r\n // Custom validator\r\n if (field.validator) {\r\n const result = field.validator(value);\r\n\r\n if (result instanceof ValidationException) {\r\n throw result;\r\n }\r\n\r\n value = result;\r\n }\r\n\r\n data[name] = value;\r\n }\r\n\r\n return data;\r\n}\r\n\r\nfunction validateType(\r\n type: ValidatorType | undefined,\r\n value: unknown,\r\n fieldName = \"\"\r\n): boolean {\r\n\r\n // Multiple types\r\n if (Array.isArray(type)) {\r\n return type.some((t) =>\r\n validateType(t, value, fieldName)\r\n );\r\n }\r\n\r\n // Array\r\n if (type instanceof ArrayType) {\r\n\r\n if (!Array.isArray(value)) {\r\n return false;\r\n }\r\n\r\n if (!type.empty && value.length === 0) {\r\n throw new EmptyArrayException(fieldName);\r\n }\r\n\r\n for (const item of value) {\r\n if (!validateType(type.type, item, fieldName)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n // Object structure\r\n if (type instanceof ObjectType) {\r\n\r\n if (\r\n typeof value !== \"object\" ||\r\n value === null ||\r\n Array.isArray(value)\r\n ) {\r\n return false;\r\n }\r\n\r\n validateObject(\r\n value,\r\n type.fields,\r\n fieldName\r\n );\r\n\r\n return true;\r\n }\r\n\r\n // Primitive types\r\n switch (type?.description) {\r\n case \"any\":\r\n return true;\r\n\r\n case \"null\":\r\n return value === null;\r\n\r\n case \"string\":\r\n return typeof value === \"string\";\r\n\r\n case \"number\":\r\n case \"float\":\r\n return typeof value === \"number\";\r\n\r\n case \"int\":\r\n return (\r\n typeof value === \"number\" &&\r\n Number.isInteger(value)\r\n );\r\n\r\n case \"boolean\":\r\n return typeof value === \"boolean\";\r\n\r\n case \"object\":\r\n return (\r\n typeof value === \"object\" &&\r\n value !== null &&\r\n !Array.isArray(value)\r\n );\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction getTypeDescription(\r\n type: ValidatorType\r\n): string {\r\n\r\n if (Array.isArray(type)) {\r\n return type\r\n .map((t) => getTypeDescription(t))\r\n .join(\" | \");\r\n }\r\n\r\n return type.description || \"\";\r\n}\r\n\r\nfunction whatTypeIs(value: unknown): string {\r\n\r\n if (\r\n typeof value === \"number\" &&\r\n Number.isInteger(value)\r\n ) {\r\n return \"int\";\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n return \"array\";\r\n }\r\n\r\n if (value === null) {\r\n return \"null\";\r\n }\r\n\r\n return typeof value;\r\n}\r\n\r\nexport {\r\n Validator\r\n};","const Status = {\r\n // 1xx Informational\r\n CONTINUE: 100,\r\n SWITCHING_PROTOCOLS: 101,\r\n PROCESSING: 102,\r\n EARLY_HINTS: 103,\r\n\r\n // 2xx Success\r\n OK: 200,\r\n CREATED: 201,\r\n ACCEPTED: 202,\r\n NON_AUTHORITATIVE_INFORMATION: 203,\r\n NO_CONTENT: 204,\r\n RESET_CONTENT: 205,\r\n PARTIAL_CONTENT: 206,\r\n MULTI_STATUS: 207,\r\n ALREADY_REPORTED: 208,\r\n IM_USED: 226,\r\n\r\n // 3xx Redirection\r\n MULTIPLE_CHOICES: 300,\r\n MOVED_PERMANENTLY: 301,\r\n FOUND: 302,\r\n SEE_OTHER: 303,\r\n NOT_MODIFIED: 304,\r\n TEMPORARY_REDIRECT: 307,\r\n PERMANENT_REDIRECT: 308,\r\n\r\n // 4xx Client Errors\r\n BAD_REQUEST: 400,\r\n UNAUTHORIZED: 401,\r\n PAYMENT_REQUIRED: 402,\r\n FORBIDDEN: 403,\r\n NOT_FOUND: 404,\r\n METHOD_NOT_ALLOWED: 405,\r\n NOT_ACCEPTABLE: 406,\r\n PROXY_AUTHENTICATION_REQUIRED: 407,\r\n REQUEST_TIMEOUT: 408,\r\n CONFLICT: 409,\r\n GONE: 410,\r\n LENGTH_REQUIRED: 411,\r\n PRECONDITION_FAILED: 412,\r\n PAYLOAD_TOO_LARGE: 413,\r\n URI_TOO_LONG: 414,\r\n UNSUPPORTED_MEDIA_TYPE: 415,\r\n RANGE_NOT_SATISFIABLE: 416,\r\n EXPECTATION_FAILED: 417,\r\n IM_A_TEAPOT: 418,\r\n MISDIRECTED_REQUEST: 421,\r\n UNPROCESSABLE_CONTENT: 422,\r\n LOCKED: 423,\r\n FAILED_DEPENDENCY: 424,\r\n UPGRADE_REQUIRED: 426,\r\n PRECONDITION_REQUIRED: 428,\r\n TOO_MANY_REQUESTS: 429,\r\n REQUEST_HEADER_FIELDS_TOO_LARGE: 431,\r\n UNAVAILABLE_FOR_LEGAL_REASONS: 451,\r\n\r\n // 5xx Server Errors\r\n INTERNAL_SERVER_ERROR: 500,\r\n NOT_IMPLEMENTED: 501,\r\n BAD_GATEWAY: 502,\r\n SERVICE_UNAVAILABLE: 503,\r\n GATEWAY_TIMEOUT: 504,\r\n HTTP_VERSION_NOT_SUPPORTED: 505,\r\n VARIANT_ALSO_NEGOTIATES: 506,\r\n INSUFFICIENT_STORAGE: 507,\r\n LOOP_DETECTED: 508,\r\n NOT_EXTENDED: 510,\r\n NETWORK_AUTHENTICATION_REQUIRED: 511\r\n} as const;\r\n\r\nexport {\r\n Status\r\n};"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEO,IAAM,YAAN,MAAgB;AAAA,EACnB;AAAA,EACA,cAAc;AAAA,EACd,QAAiB;AAAA,EAEjB,eAAe,MAAuB;AAClC,SAAK,OAAO,CAAC,GAAG,IAAI;AACpB,SAAK,QAAQ;AAEb,UAAM,QAAQ,KAAK,IAAI,CAAC,MAAM,EAAE,WAAW;AAC3C,SAAK,cAAc,SAAS,MAAM,KAAK,KAAK,CAAC;AAAA,EACjD;AAAA,EAEA,aAAa;AACT,SAAK,QAAQ;AACb,WAAO;AAAA,EACX;AACJ;AAYO,IAAM,aAAN,MAAiB;AAAA,EACpB;AAAA,EACA,cAAc;AAAA,EAEd,YAAY,QAAsB;AAC9B,SAAK,SAAS;AAEd,UAAM,QAAQ,OAAO,KAAK,MAAM;AAEhC,SAAK,cAAc,UAAU,MAAM,KAAK,IAAI,CAAC;AAAA,EACjD;AACJ;AAEA,SAASA,UAAS,MAAuB;AACrC,SAAO,IAAI,UAAU,GAAG,IAAI;AAChC;AAEA,SAAS,OAAO,QAAsB;AAClC,SAAO,IAAI,WAAW,MAAM;AAChC;AAEO,IAAM,QAAQ;AAAA,EACjB,QAAQ,uBAAO,QAAQ;AAAA,EACvB,QAAQ,uBAAO,QAAQ;AAAA,EACvB,KAAK,uBAAO,KAAK;AAAA,EACjB,OAAO,uBAAO,OAAO;AAAA,EACrB,SAAS,uBAAO,SAAS;AAAA,EACzB,QAAQ,uBAAO,QAAQ;AAAA,EACvB,MAAM,uBAAO,MAAM;AAAA,EACnB,KAAK,uBAAO,KAAK;AAAA,EAEjB,OAAAA;AAAA,EACA;AACJ;;;AChEA,IAAM,sBAAN,cAAkC,MAAM;AAAA,EACpC,YAAY,SAAiB;AACzB,UAAM,OAAO;AAEb,SAAK,OAAO;AAAA,EAChB;AACJ;AAEA,IAAM,gCAAN,cAA4C,oBAAoB;AAAA,EAC5D,cAAc;AACV,UAAM,2BAA2B;AAEjC,SAAK,OAAO;AAAA,EAChB;AACJ;AAEA,IAAM,uBAAN,cAAmC,oBAAoB;AAAA,EACnD,cAAc;AACV,UAAM,gCAAgC;AAEtC,SAAK,OAAO;AAAA,EAChB;AACJ;AAEA,IAAM,yBAAN,cAAqC,oBAAoB;AAAA,EACrD,YACoB,OAClB;AACE,UAAM,UAAU,KAAK,eAAe;AAFpB;AAIhB,SAAK,OAAO;AAAA,EAChB;AAAA,EALoB;AAMxB;AAEA,IAAM,uBAAN,cAAmC,oBAAoB;AAAA,EACnD,YACoB,OACA,UACA,UAClB;AACE;AAAA,MACI,UAAU,KAAK,qBAAqB,QAAQ,cAAc,QAAQ;AAAA,IACtE;AANgB;AACA;AACA;AAMhB,SAAK,OAAO;AAAA,EAChB;AAAA,EAToB;AAAA,EACA;AAAA,EACA;AAQxB;AAYA,IAAM,sBAAN,cAAkC,oBAAoB;AAAA,EAClD,YACoB,OAClB;AACE,UAAM,UAAU,KAAK,8BAA8B;AAFnC;AAIhB,SAAK,OAAO;AAAA,EAChB;AAAA,EALoB;AAMxB;;;AC9BA,IAAM,YAAY;AAAA,EACd,KAAK,MAAY,QAAoB;AACjC,QAAI,SAAS,QAAW;AACpB,YAAM,IAAI,8BAA8B;AAAA,IAC5C;AAEA,QACI,OAAO,SAAS,YAChB,SAAS,QACT,MAAM,QAAQ,IAAI,GACpB;AACE,YAAM,IAAI,qBAAqB;AAAA,IACnC;AAEA,WAAO,eAAe,MAAM,MAAM;AAAA,EACtC;AACJ;AAEA,SAAS,eACL,MACA,QACA,aAAa,IACU;AAEvB,MACI,OAAO,SAAS,YAChB,SAAS,QACT,MAAM,QAAQ,IAAI,GACpB;AACE,UAAM,IAAI,qBAAqB;AAAA,EACnC;AAEA,QAAM,WAAW;AACjB,QAAM,OAAgC,CAAC;AAEvC,aAAW,QAAQ,QAAQ;AACvB,UAAM,QAAQ,OAAO,IAAI;AAEzB,QAAI,CAAC,OAAO;AACR;AAAA,IACJ;AAEA,UAAM,YAAY,aACZ,GAAG,UAAU,IAAI,IAAI,KACrB;AAEN,QAAI,QAAQ,SAAS,IAAI;AAGzB,QAAI,MAAM,YAAY,UAAU,QAAW;AACvC,YAAM,IAAI,uBAAuB,SAAS;AAAA,IAC9C;AAGA,QAAI,UAAU,QAAW;AACrB;AAAA,IACJ;AAGA,QAAI,CAAC,aAAa,MAAM,MAAM,OAAO,SAAS,GAAG;AAC7C,YAAM,OAAO,mBAAmB,MAAM,IAAI;AAE1C,YAAM,IAAI;AAAA,QACN;AAAA,QACA;AAAA,QACA,WAAW,KAAK;AAAA,MACpB;AAAA,IACJ;AAGA,QAAI,MAAM,WAAW;AACjB,YAAM,SAAS,MAAM,UAAU,KAAK;AAEpC,UAAI,kBAAkB,qBAAqB;AACvC,cAAM;AAAA,MACV;AAEA,cAAQ;AAAA,IACZ;AAEA,SAAK,IAAI,IAAI;AAAA,EACjB;AAEA,SAAO;AACX;AAEA,SAAS,aACL,MACA,OACA,YAAY,IACL;AAGP,MAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,WAAO,KAAK;AAAA,MAAK,CAAC,MACd,aAAa,GAAG,OAAO,SAAS;AAAA,IACpC;AAAA,EACJ;AAGA,MAAI,gBAAgB,WAAW;AAE3B,QAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AACvB,aAAO;AAAA,IACX;AAEA,QAAI,CAAC,KAAK,SAAS,MAAM,WAAW,GAAG;AACnC,YAAM,IAAI,oBAAoB,SAAS;AAAA,IAC3C;AAEA,eAAW,QAAQ,OAAO;AACtB,UAAI,CAAC,aAAa,KAAK,MAAM,MAAM,SAAS,GAAG;AAC3C,eAAO;AAAA,MACX;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAGA,MAAI,gBAAgB,YAAY;AAE5B,QACI,OAAO,UAAU,YACjB,UAAU,QACV,MAAM,QAAQ,KAAK,GACrB;AACE,aAAO;AAAA,IACX;AAEA;AAAA,MACI;AAAA,MACA,KAAK;AAAA,MACL;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAGA,UAAQ,MAAM,aAAa;AAAA,IACvB,KAAK;AACD,aAAO;AAAA,IAEX,KAAK;AACD,aAAO,UAAU;AAAA,IAErB,KAAK;AACD,aAAO,OAAO,UAAU;AAAA,IAE5B,KAAK;AAAA,IACL,KAAK;AACD,aAAO,OAAO,UAAU;AAAA,IAE5B,KAAK;AACD,aACI,OAAO,UAAU,YACjB,OAAO,UAAU,KAAK;AAAA,IAG9B,KAAK;AACD,aAAO,OAAO,UAAU;AAAA,IAE5B,KAAK;AACD,aACI,OAAO,UAAU,YACjB,UAAU,QACV,CAAC,MAAM,QAAQ,KAAK;AAAA,EAEhC;AAEA,SAAO;AACX;AAEA,SAAS,mBACL,MACM;AAEN,MAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,WAAO,KACF,IAAI,CAAC,MAAM,mBAAmB,CAAC,CAAC,EAChC,KAAK,KAAK;AAAA,EACnB;AAEA,SAAO,KAAK,eAAe;AAC/B;AAEA,SAAS,WAAW,OAAwB;AAExC,MACI,OAAO,UAAU,YACjB,OAAO,UAAU,KAAK,GACxB;AACE,WAAO;AAAA,EACX;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,WAAO;AAAA,EACX;AAEA,MAAI,UAAU,MAAM;AAChB,WAAO;AAAA,EACX;AAEA,SAAO,OAAO;AAClB;;;ACjPA,IAAM,SAAS;AAAA;AAAA,EAEX,UAAU;AAAA,EACV,qBAAqB;AAAA,EACrB,YAAY;AAAA,EACZ,aAAa;AAAA;AAAA,EAGb,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,UAAU;AAAA,EACV,+BAA+B;AAAA,EAC/B,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,SAAS;AAAA;AAAA,EAGT,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,OAAO;AAAA,EACP,WAAW;AAAA,EACX,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,oBAAoB;AAAA;AAAA,EAGpB,aAAa;AAAA,EACb,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,WAAW;AAAA,EACX,WAAW;AAAA,EACX,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,+BAA+B;AAAA,EAC/B,iBAAiB;AAAA,EACjB,UAAU;AAAA,EACV,MAAM;AAAA,EACN,iBAAiB;AAAA,EACjB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,cAAc;AAAA,EACd,wBAAwB;AAAA,EACxB,uBAAuB;AAAA,EACvB,oBAAoB;AAAA,EACpB,aAAa;AAAA,EACb,qBAAqB;AAAA,EACrB,uBAAuB;AAAA,EACvB,QAAQ;AAAA,EACR,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,uBAAuB;AAAA,EACvB,mBAAmB;AAAA,EACnB,iCAAiC;AAAA,EACjC,+BAA+B;AAAA;AAAA,EAG/B,uBAAuB;AAAA,EACvB,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,qBAAqB;AAAA,EACrB,iBAAiB;AAAA,EACjB,4BAA4B;AAAA,EAC5B,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,eAAe;AAAA,EACf,cAAc;AAAA,EACd,iCAAiC;AACrC;","names":["Array"]}
@@ -0,0 +1,121 @@
1
+ declare class ValidationException extends Error {
2
+ constructor(message: string);
3
+ }
4
+
5
+ declare class ArrayType {
6
+ type: PrimitiveType[];
7
+ description: string;
8
+ empty: boolean;
9
+ constructor(...type: PrimitiveType[]);
10
+ canBeEmpty(): this;
11
+ }
12
+ type FieldDefinition$1 = {
13
+ type: ValidatorType;
14
+ required?: boolean;
15
+ validator?: (value: unknown) => unknown | ValidationException;
16
+ };
17
+ type ObjectFields = {
18
+ [name: string]: FieldDefinition$1;
19
+ };
20
+ declare class ObjectType {
21
+ fields: ObjectFields;
22
+ description: string;
23
+ constructor(fields: ObjectFields);
24
+ }
25
+ declare function Array(...type: PrimitiveType[]): ArrayType;
26
+ declare function Struct(fields: ObjectFields): ObjectType;
27
+ declare const Types: {
28
+ String: symbol;
29
+ Number: symbol;
30
+ Int: symbol;
31
+ Float: symbol;
32
+ Boolean: symbol;
33
+ Object: symbol;
34
+ Null: symbol;
35
+ Any: symbol;
36
+ Array: typeof Array;
37
+ Struct: typeof Struct;
38
+ };
39
+ type PrimitiveType = typeof Types.String | typeof Types.Number | typeof Types.Int | typeof Types.Float | typeof Types.Boolean | typeof Types.Object | typeof Types.Null;
40
+ type MultiType = PrimitiveType[];
41
+ type ValidatorType = PrimitiveType | MultiType | ArrayType | ObjectType;
42
+
43
+ type FieldDefinition = {
44
+ type: ValidatorType;
45
+ required?: boolean;
46
+ validator?: (value: unknown) => unknown | ValidationException;
47
+ };
48
+ interface BodyFields {
49
+ [name: string]: FieldDefinition;
50
+ }
51
+ interface Body {
52
+ [name: string]: unknown;
53
+ }
54
+ declare const Validator: {
55
+ body(body: Body, fields: BodyFields): Record<string, unknown>;
56
+ };
57
+
58
+ declare const Status: {
59
+ readonly CONTINUE: 100;
60
+ readonly SWITCHING_PROTOCOLS: 101;
61
+ readonly PROCESSING: 102;
62
+ readonly EARLY_HINTS: 103;
63
+ readonly OK: 200;
64
+ readonly CREATED: 201;
65
+ readonly ACCEPTED: 202;
66
+ readonly NON_AUTHORITATIVE_INFORMATION: 203;
67
+ readonly NO_CONTENT: 204;
68
+ readonly RESET_CONTENT: 205;
69
+ readonly PARTIAL_CONTENT: 206;
70
+ readonly MULTI_STATUS: 207;
71
+ readonly ALREADY_REPORTED: 208;
72
+ readonly IM_USED: 226;
73
+ readonly MULTIPLE_CHOICES: 300;
74
+ readonly MOVED_PERMANENTLY: 301;
75
+ readonly FOUND: 302;
76
+ readonly SEE_OTHER: 303;
77
+ readonly NOT_MODIFIED: 304;
78
+ readonly TEMPORARY_REDIRECT: 307;
79
+ readonly PERMANENT_REDIRECT: 308;
80
+ readonly BAD_REQUEST: 400;
81
+ readonly UNAUTHORIZED: 401;
82
+ readonly PAYMENT_REQUIRED: 402;
83
+ readonly FORBIDDEN: 403;
84
+ readonly NOT_FOUND: 404;
85
+ readonly METHOD_NOT_ALLOWED: 405;
86
+ readonly NOT_ACCEPTABLE: 406;
87
+ readonly PROXY_AUTHENTICATION_REQUIRED: 407;
88
+ readonly REQUEST_TIMEOUT: 408;
89
+ readonly CONFLICT: 409;
90
+ readonly GONE: 410;
91
+ readonly LENGTH_REQUIRED: 411;
92
+ readonly PRECONDITION_FAILED: 412;
93
+ readonly PAYLOAD_TOO_LARGE: 413;
94
+ readonly URI_TOO_LONG: 414;
95
+ readonly UNSUPPORTED_MEDIA_TYPE: 415;
96
+ readonly RANGE_NOT_SATISFIABLE: 416;
97
+ readonly EXPECTATION_FAILED: 417;
98
+ readonly IM_A_TEAPOT: 418;
99
+ readonly MISDIRECTED_REQUEST: 421;
100
+ readonly UNPROCESSABLE_CONTENT: 422;
101
+ readonly LOCKED: 423;
102
+ readonly FAILED_DEPENDENCY: 424;
103
+ readonly UPGRADE_REQUIRED: 426;
104
+ readonly PRECONDITION_REQUIRED: 428;
105
+ readonly TOO_MANY_REQUESTS: 429;
106
+ readonly REQUEST_HEADER_FIELDS_TOO_LARGE: 431;
107
+ readonly UNAVAILABLE_FOR_LEGAL_REASONS: 451;
108
+ readonly INTERNAL_SERVER_ERROR: 500;
109
+ readonly NOT_IMPLEMENTED: 501;
110
+ readonly BAD_GATEWAY: 502;
111
+ readonly SERVICE_UNAVAILABLE: 503;
112
+ readonly GATEWAY_TIMEOUT: 504;
113
+ readonly HTTP_VERSION_NOT_SUPPORTED: 505;
114
+ readonly VARIANT_ALSO_NEGOTIATES: 506;
115
+ readonly INSUFFICIENT_STORAGE: 507;
116
+ readonly LOOP_DETECTED: 508;
117
+ readonly NOT_EXTENDED: 510;
118
+ readonly NETWORK_AUTHENTICATION_REQUIRED: 511;
119
+ };
120
+
121
+ export { Status, Types, ValidationException, Validator };
@@ -0,0 +1,121 @@
1
+ declare class ValidationException extends Error {
2
+ constructor(message: string);
3
+ }
4
+
5
+ declare class ArrayType {
6
+ type: PrimitiveType[];
7
+ description: string;
8
+ empty: boolean;
9
+ constructor(...type: PrimitiveType[]);
10
+ canBeEmpty(): this;
11
+ }
12
+ type FieldDefinition$1 = {
13
+ type: ValidatorType;
14
+ required?: boolean;
15
+ validator?: (value: unknown) => unknown | ValidationException;
16
+ };
17
+ type ObjectFields = {
18
+ [name: string]: FieldDefinition$1;
19
+ };
20
+ declare class ObjectType {
21
+ fields: ObjectFields;
22
+ description: string;
23
+ constructor(fields: ObjectFields);
24
+ }
25
+ declare function Array(...type: PrimitiveType[]): ArrayType;
26
+ declare function Struct(fields: ObjectFields): ObjectType;
27
+ declare const Types: {
28
+ String: symbol;
29
+ Number: symbol;
30
+ Int: symbol;
31
+ Float: symbol;
32
+ Boolean: symbol;
33
+ Object: symbol;
34
+ Null: symbol;
35
+ Any: symbol;
36
+ Array: typeof Array;
37
+ Struct: typeof Struct;
38
+ };
39
+ type PrimitiveType = typeof Types.String | typeof Types.Number | typeof Types.Int | typeof Types.Float | typeof Types.Boolean | typeof Types.Object | typeof Types.Null;
40
+ type MultiType = PrimitiveType[];
41
+ type ValidatorType = PrimitiveType | MultiType | ArrayType | ObjectType;
42
+
43
+ type FieldDefinition = {
44
+ type: ValidatorType;
45
+ required?: boolean;
46
+ validator?: (value: unknown) => unknown | ValidationException;
47
+ };
48
+ interface BodyFields {
49
+ [name: string]: FieldDefinition;
50
+ }
51
+ interface Body {
52
+ [name: string]: unknown;
53
+ }
54
+ declare const Validator: {
55
+ body(body: Body, fields: BodyFields): Record<string, unknown>;
56
+ };
57
+
58
+ declare const Status: {
59
+ readonly CONTINUE: 100;
60
+ readonly SWITCHING_PROTOCOLS: 101;
61
+ readonly PROCESSING: 102;
62
+ readonly EARLY_HINTS: 103;
63
+ readonly OK: 200;
64
+ readonly CREATED: 201;
65
+ readonly ACCEPTED: 202;
66
+ readonly NON_AUTHORITATIVE_INFORMATION: 203;
67
+ readonly NO_CONTENT: 204;
68
+ readonly RESET_CONTENT: 205;
69
+ readonly PARTIAL_CONTENT: 206;
70
+ readonly MULTI_STATUS: 207;
71
+ readonly ALREADY_REPORTED: 208;
72
+ readonly IM_USED: 226;
73
+ readonly MULTIPLE_CHOICES: 300;
74
+ readonly MOVED_PERMANENTLY: 301;
75
+ readonly FOUND: 302;
76
+ readonly SEE_OTHER: 303;
77
+ readonly NOT_MODIFIED: 304;
78
+ readonly TEMPORARY_REDIRECT: 307;
79
+ readonly PERMANENT_REDIRECT: 308;
80
+ readonly BAD_REQUEST: 400;
81
+ readonly UNAUTHORIZED: 401;
82
+ readonly PAYMENT_REQUIRED: 402;
83
+ readonly FORBIDDEN: 403;
84
+ readonly NOT_FOUND: 404;
85
+ readonly METHOD_NOT_ALLOWED: 405;
86
+ readonly NOT_ACCEPTABLE: 406;
87
+ readonly PROXY_AUTHENTICATION_REQUIRED: 407;
88
+ readonly REQUEST_TIMEOUT: 408;
89
+ readonly CONFLICT: 409;
90
+ readonly GONE: 410;
91
+ readonly LENGTH_REQUIRED: 411;
92
+ readonly PRECONDITION_FAILED: 412;
93
+ readonly PAYLOAD_TOO_LARGE: 413;
94
+ readonly URI_TOO_LONG: 414;
95
+ readonly UNSUPPORTED_MEDIA_TYPE: 415;
96
+ readonly RANGE_NOT_SATISFIABLE: 416;
97
+ readonly EXPECTATION_FAILED: 417;
98
+ readonly IM_A_TEAPOT: 418;
99
+ readonly MISDIRECTED_REQUEST: 421;
100
+ readonly UNPROCESSABLE_CONTENT: 422;
101
+ readonly LOCKED: 423;
102
+ readonly FAILED_DEPENDENCY: 424;
103
+ readonly UPGRADE_REQUIRED: 426;
104
+ readonly PRECONDITION_REQUIRED: 428;
105
+ readonly TOO_MANY_REQUESTS: 429;
106
+ readonly REQUEST_HEADER_FIELDS_TOO_LARGE: 431;
107
+ readonly UNAVAILABLE_FOR_LEGAL_REASONS: 451;
108
+ readonly INTERNAL_SERVER_ERROR: 500;
109
+ readonly NOT_IMPLEMENTED: 501;
110
+ readonly BAD_GATEWAY: 502;
111
+ readonly SERVICE_UNAVAILABLE: 503;
112
+ readonly GATEWAY_TIMEOUT: 504;
113
+ readonly HTTP_VERSION_NOT_SUPPORTED: 505;
114
+ readonly VARIANT_ALSO_NEGOTIATES: 506;
115
+ readonly INSUFFICIENT_STORAGE: 507;
116
+ readonly LOOP_DETECTED: 508;
117
+ readonly NOT_EXTENDED: 510;
118
+ readonly NETWORK_AUTHENTICATION_REQUIRED: 511;
119
+ };
120
+
121
+ export { Status, Types, ValidationException, Validator };