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/extend-zod.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extend-zod.js","sourceRoot":"","sources":["../src/extend-zod.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6BAA8B;AAC9B,qDAA6C;AAC7C,uDAA+C;AAC/C,+CAAwC;AACxC,mDAA4C;AAE5C,sCAAoB;AACP,QAAA,IAAI,GAAG,qBAAO,CAAC,MAAM,CAAC;AACtB,QAAA,MAAM,GAAG,yBAAS,CAAC,MAAM,CAAC;AAC1B,QAAA,MAAM,GAAG,0BAAS,CAAC,MAAM,CAAC;AAC1B,QAAA,OAAO,GAAG,4BAAU,CAAC,MAAM,CAAC;AAEzC;;;KAGK;AACQ,QAAA,IAAI,GAAG,aAAO,CAAC,MAAM,CAAC"}
|
package/dist/file-schema.d.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { ParseInput, ParseReturnType, ZodType, ZodTypeDef } from "zod";
|
|
2
|
-
import { ErrMessage } from "./common-helpers";
|
|
3
|
-
declare const zodFileKind = "ZodFile";
|
|
4
|
-
declare type ZodFileCheck = {
|
|
5
|
-
kind: "binary";
|
|
6
|
-
message?: string;
|
|
7
|
-
} | {
|
|
8
|
-
kind: "base64";
|
|
9
|
-
message?: string;
|
|
10
|
-
};
|
|
11
|
-
export interface ZodFileDef extends ZodTypeDef {
|
|
12
|
-
checks: ZodFileCheck[];
|
|
13
|
-
typeName: typeof zodFileKind;
|
|
14
|
-
}
|
|
15
|
-
export declare class ZodFile extends ZodType<string, ZodFileDef> {
|
|
16
|
-
_parse(input: ParseInput): ParseReturnType<string>;
|
|
17
|
-
binary: (message?: ErrMessage) => ZodFile;
|
|
18
|
-
base64: (message?: ErrMessage) => ZodFile;
|
|
19
|
-
get isBinary(): boolean;
|
|
20
|
-
get isBase64(): boolean;
|
|
21
|
-
static create: () => ZodFile;
|
|
22
|
-
}
|
|
23
|
-
export {};
|
package/dist/file-schema.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ZodFile = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const common_helpers_1 = require("./common-helpers");
|
|
6
|
-
const zodFileKind = "ZodFile";
|
|
7
|
-
const base64Regex = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;
|
|
8
|
-
class ZodFile extends zod_1.ZodType {
|
|
9
|
-
constructor() {
|
|
10
|
-
super(...arguments);
|
|
11
|
-
this.binary = (message) => new ZodFile({
|
|
12
|
-
...this._def,
|
|
13
|
-
checks: [...this._def.checks, { kind: "binary", ...(0, common_helpers_1.errToObj)(message) }],
|
|
14
|
-
});
|
|
15
|
-
this.base64 = (message) => new ZodFile({
|
|
16
|
-
...this._def,
|
|
17
|
-
checks: [...this._def.checks, { kind: "base64", ...(0, common_helpers_1.errToObj)(message) }],
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
_parse(input) {
|
|
21
|
-
const { status, ctx } = this._processInputParams(input);
|
|
22
|
-
if (ctx.parsedType !== zod_1.ZodParsedType.string) {
|
|
23
|
-
(0, zod_1.addIssueToContext)(ctx, {
|
|
24
|
-
code: zod_1.ZodIssueCode.invalid_type,
|
|
25
|
-
expected: zod_1.ZodParsedType.string,
|
|
26
|
-
received: ctx.parsedType,
|
|
27
|
-
});
|
|
28
|
-
return zod_1.INVALID;
|
|
29
|
-
}
|
|
30
|
-
for (const check of this._def.checks) {
|
|
31
|
-
if (check.kind === "base64") {
|
|
32
|
-
if (!base64Regex.test(ctx.data)) {
|
|
33
|
-
(0, zod_1.addIssueToContext)(ctx, {
|
|
34
|
-
code: zod_1.ZodIssueCode.custom,
|
|
35
|
-
message: check.message,
|
|
36
|
-
});
|
|
37
|
-
status.dirty();
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return { status: status.value, value: ctx.data };
|
|
42
|
-
}
|
|
43
|
-
get isBinary() {
|
|
44
|
-
return !!this._def.checks.find((check) => check.kind === "binary");
|
|
45
|
-
}
|
|
46
|
-
get isBase64() {
|
|
47
|
-
return !!this._def.checks.find((check) => check.kind === "base64");
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
exports.ZodFile = ZodFile;
|
|
51
|
-
ZodFile.create = () => new ZodFile({
|
|
52
|
-
checks: [],
|
|
53
|
-
typeName: zodFileKind,
|
|
54
|
-
});
|
|
55
|
-
//# sourceMappingURL=file-schema.js.map
|
package/dist/file-schema.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-schema.js","sourceRoot":"","sources":["../src/file-schema.ts"],"names":[],"mappings":";;;AAAA,6BASa;AACb,qDAAwD;AAExD,MAAM,WAAW,GAAG,SAAS,CAAC;AAiB9B,MAAM,WAAW,GACf,kEAAkE,CAAC;AAErE,MAAa,OAAQ,SAAQ,aAA2B;IAAxD;;QA2BE,WAAM,GAAG,CAAC,OAAoB,EAAE,EAAE,CAChC,IAAI,OAAO,CAAC;YACV,GAAG,IAAI,CAAC,IAAI;YACZ,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAA,yBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC;SACxE,CAAC,CAAC;QAEL,WAAM,GAAG,CAAC,OAAoB,EAAE,EAAE,CAChC,IAAI,OAAO,CAAC;YACV,GAAG,IAAI,CAAC,IAAI;YACZ,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAA,yBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC;SACxE,CAAC,CAAC;IAeP,CAAC;IAnDC,MAAM,CAAC,KAAiB;QACtB,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxD,IAAI,GAAG,CAAC,UAAU,KAAK,mBAAa,CAAC,MAAM,EAAE;YAC3C,IAAA,uBAAiB,EAAC,GAAG,EAAE;gBACrB,IAAI,EAAE,kBAAY,CAAC,YAAY;gBAC/B,QAAQ,EAAE,mBAAa,CAAC,MAAM;gBAC9B,QAAQ,EAAE,GAAG,CAAC,UAAU;aACzB,CAAC,CAAC;YACH,OAAO,aAAO,CAAC;SAChB;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACpC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBAC/B,IAAA,uBAAiB,EAAC,GAAG,EAAE;wBACrB,IAAI,EAAE,kBAAY,CAAC,MAAM;wBACzB,OAAO,EAAE,KAAK,CAAC,OAAO;qBACvB,CAAC,CAAC;oBACH,MAAM,CAAC,KAAK,EAAE,CAAC;iBAChB;aACF;SACF;QAED,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IACnD,CAAC;IAcD,IAAI,QAAQ;QACV,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACrE,CAAC;;AA7CH,0BAoDC;AALQ,cAAM,GAAG,GAAG,EAAE,CACnB,IAAI,OAAO,CAAC;IACV,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,WAAW;CACtB,CAAC,CAAC"}
|
package/dist/io-schema.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { AnyMiddlewareDef } from "./middleware";
|
|
3
|
-
type UnknownKeysParam = "passthrough" | "strict" | "strip";
|
|
4
|
-
type Refined<T extends z.ZodTypeAny> = T extends z.ZodType<infer O> ? z.ZodEffects<T | Refined<T>, O, O> : never;
|
|
5
|
-
/**
|
|
6
|
-
* @desc The type allowed on the top level of Middlewares and Endpoints
|
|
7
|
-
* @param U — only "strip" is allowed for Middlewares due to intersection issue (Zod) #600
|
|
8
|
-
* */
|
|
9
|
-
export type IOSchema<U extends UnknownKeysParam = any> = z.ZodObject<any, U> | z.ZodUnion<[IOSchema<U>, ...IOSchema<U>[]]> | z.ZodIntersection<IOSchema<U>, IOSchema<U>> | z.ZodDiscriminatedUnion<string, z.ZodObject<any, U>[]> | Refined<z.ZodObject<any, U>>;
|
|
10
|
-
export type ProbableIntersection<A extends IOSchema<"strip"> | null, B extends IOSchema> = A extends null ? B : A extends IOSchema<"strip"> ? z.ZodIntersection<A, B> : never;
|
|
11
|
-
/**
|
|
12
|
-
* @description intersects input schemas of middlewares and the endpoint
|
|
13
|
-
* @since 07.03.2022 former combineEndpointAndMiddlewareInputSchemas()
|
|
14
|
-
*/
|
|
15
|
-
export declare const getFinalEndpointInputSchema: <MIN extends IOSchema<"strip"> | null, IN extends IOSchema<any>>(middlewares: AnyMiddlewareDef[], input: IN) => ProbableIntersection<MIN, IN>;
|
|
16
|
-
export {};
|
package/dist/io-schema.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getFinalEndpointInputSchema = void 0;
|
|
4
|
-
const metadata_1 = require("./metadata");
|
|
5
|
-
/**
|
|
6
|
-
* @description intersects input schemas of middlewares and the endpoint
|
|
7
|
-
* @since 07.03.2022 former combineEndpointAndMiddlewareInputSchemas()
|
|
8
|
-
*/
|
|
9
|
-
const getFinalEndpointInputSchema = (middlewares, input) => {
|
|
10
|
-
const result = middlewares
|
|
11
|
-
.map(({ input: schema }) => schema)
|
|
12
|
-
.concat(input)
|
|
13
|
-
.reduce((acc, schema) => acc.and(schema));
|
|
14
|
-
for (const middleware of middlewares) {
|
|
15
|
-
(0, metadata_1.copyMeta)(middleware.input, result);
|
|
16
|
-
}
|
|
17
|
-
(0, metadata_1.copyMeta)(input, result);
|
|
18
|
-
return result;
|
|
19
|
-
};
|
|
20
|
-
exports.getFinalEndpointInputSchema = getFinalEndpointInputSchema;
|
|
21
|
-
//# sourceMappingURL=io-schema.js.map
|
package/dist/io-schema.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"io-schema.js","sourceRoot":"","sources":["../src/io-schema.ts"],"names":[],"mappings":";;;AACA,yCAAsC;AA8BtC;;;GAGG;AACI,MAAM,2BAA2B,GAAG,CAIzC,WAA+B,EAC/B,KAAS,EACsB,EAAE;IACjC,MAAM,MAAM,GAAG,WAAW;SACvB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;SAClC,MAAM,CAAC,KAAK,CAAC;SACb,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAkC,CAAC;IAC7E,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,IAAA,mBAAQ,EAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KACpC;IACD,IAAA,mBAAQ,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAhBW,QAAA,2BAA2B,+BAgBtC"}
|
package/dist/logger.d.ts
DELETED
package/dist/logger.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createLogger = void 0;
|
|
7
|
-
const util_1 = require("util");
|
|
8
|
-
const triple_beam_1 = require("triple-beam");
|
|
9
|
-
const winston_1 = __importDefault(require("winston"));
|
|
10
|
-
const { combine, colorize, timestamp: useTimestamp, printf } = winston_1.default.format;
|
|
11
|
-
function createLogger(loggerConfig) {
|
|
12
|
-
const prettyPrint = (meta) => {
|
|
13
|
-
const { [triple_beam_1.LEVEL]: noLevel, [triple_beam_1.MESSAGE]: noMessage, [triple_beam_1.SPLAT]: noSplat, ...rest } = meta;
|
|
14
|
-
return (0, util_1.inspect)(rest, false, 1, loggerConfig.color);
|
|
15
|
-
};
|
|
16
|
-
const getOutputFormat = (isPretty) => printf(({ timestamp, message, level, durationMs, ...meta }) => {
|
|
17
|
-
if (typeof message === "object") {
|
|
18
|
-
meta = { ...meta, ...message };
|
|
19
|
-
message = "[No message]";
|
|
20
|
-
}
|
|
21
|
-
return (`${timestamp} ${level}: ${message}` +
|
|
22
|
-
(durationMs === undefined ? "" : ` duration: ${durationMs}ms`) +
|
|
23
|
-
(Object.keys(meta).length === 0
|
|
24
|
-
? ""
|
|
25
|
-
: " " + (isPretty ? prettyPrint(meta) : JSON.stringify(meta))));
|
|
26
|
-
});
|
|
27
|
-
const formats = [useTimestamp()];
|
|
28
|
-
const consoleOutputOptions = {
|
|
29
|
-
handleExceptions: true,
|
|
30
|
-
};
|
|
31
|
-
if (loggerConfig.color) {
|
|
32
|
-
formats.push(colorize());
|
|
33
|
-
}
|
|
34
|
-
switch (loggerConfig.level) {
|
|
35
|
-
case "debug":
|
|
36
|
-
consoleOutputOptions.level = "debug";
|
|
37
|
-
formats.push(getOutputFormat(true));
|
|
38
|
-
break;
|
|
39
|
-
case "silent":
|
|
40
|
-
case "warn":
|
|
41
|
-
default:
|
|
42
|
-
consoleOutputOptions.level = "warn";
|
|
43
|
-
formats.push(getOutputFormat());
|
|
44
|
-
}
|
|
45
|
-
consoleOutputOptions.format = combine(...formats);
|
|
46
|
-
return winston_1.default.createLogger({
|
|
47
|
-
silent: loggerConfig.level === "silent",
|
|
48
|
-
levels: winston_1.default.config.npm.levels,
|
|
49
|
-
transports: [new winston_1.default.transports.Console(consoleOutputOptions)],
|
|
50
|
-
exitOnError: false,
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
exports.createLogger = createLogger;
|
|
54
|
-
//# sourceMappingURL=logger.js.map
|
package/dist/logger.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;;;;AAAA,+BAA+B;AAE/B,6CAAoD;AACpD,sDAA8B;AAI9B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,iBAAO,CAAC,MAAM,CAAC;AAE9E,SAAgB,YAAY,CAAC,YAA0B;IACrD,MAAM,WAAW,GAAG,CAAC,IAAS,EAAE,EAAE;QAChC,MAAM,EACJ,CAAC,mBAAK,CAAC,EAAE,OAAO,EAChB,CAAC,qBAAO,CAAC,EAAE,SAAS,EACpB,CAAC,mBAAK,CAAC,EAAE,OAAO,EAChB,GAAG,IAAI,EACR,GAAG,IAAI,CAAC;QACT,OAAO,IAAA,cAAO,EAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,QAAkB,EAAE,EAAE,CAC7C,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;QAC5D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAI,OAAkB,EAAE,CAAC;YAC3C,OAAO,GAAG,cAAc,CAAC;SAC1B;QACD,OAAO,CACL,GAAG,SAAS,IAAI,KAAK,KAAK,OAAO,EAAE;YACnC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,UAAU,IAAI,CAAC;YAC9D,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAC7B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CACjE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,MAAM,OAAO,GAAa,CAAC,YAAY,EAAE,CAAC,CAAC;IAE3C,MAAM,oBAAoB,GAAqC;QAC7D,gBAAgB,EAAE,IAAI;KACvB,CAAC;IAEF,IAAI,YAAY,CAAC,KAAK,EAAE;QACtB,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC1B;IAED,QAAQ,YAAY,CAAC,KAAK,EAAE;QAC1B,KAAK,OAAO;YACV,oBAAoB,CAAC,KAAK,GAAG,OAAO,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YACpC,MAAM;QACR,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ;YACE,oBAAoB,CAAC,KAAK,GAAG,MAAM,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;KACnC;IAED,oBAAoB,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;IAElD,OAAO,iBAAO,CAAC,YAAY,CAAC;QAC1B,MAAM,EAAE,YAAY,CAAC,KAAK,KAAK,QAAQ;QACvC,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM;QACjC,UAAU,EAAE,CAAC,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAClE,WAAW,EAAE,KAAK;KACnB,CAAC,CAAC;AACL,CAAC;AAxDD,oCAwDC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
type LogicalOr<T> = {
|
|
2
|
-
or: T[];
|
|
3
|
-
};
|
|
4
|
-
type LogicalAnd<T> = {
|
|
5
|
-
and: T[];
|
|
6
|
-
};
|
|
7
|
-
export type LogicalContainer<T> = LogicalOr<T | LogicalAnd<T>> | LogicalAnd<T | LogicalOr<T>> | T;
|
|
8
|
-
/** @desc combines several LogicalAnds into a one */
|
|
9
|
-
export declare const flattenAnds: <T>(subject: (T | LogicalAnd<T>)[]) => LogicalAnd<T>;
|
|
10
|
-
/** @desc creates a LogicalContainer out of another one */
|
|
11
|
-
export declare const mapLogicalContainer: <T, S>(container: LogicalContainer<T>, fn: (subject: T) => S) => LogicalContainer<S>;
|
|
12
|
-
/** @desc converts LogicalAnd into LogicalOr */
|
|
13
|
-
export declare const andToOr: <T>(subject: LogicalAnd<T | LogicalOr<T>>) => LogicalOr<T | LogicalAnd<T>>;
|
|
14
|
-
/** @desc reducer, combines two LogicalContainers */
|
|
15
|
-
export declare const combineContainers: <T>(a: LogicalContainer<T>, b: LogicalContainer<T>) => LogicalContainer<T>;
|
|
16
|
-
export {};
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.combineContainers = exports.andToOr = exports.mapLogicalContainer = exports.flattenAnds = void 0;
|
|
4
|
-
const common_helpers_1 = require("./common-helpers");
|
|
5
|
-
const isObject = (subject) => typeof subject === "object" && subject !== null;
|
|
6
|
-
/** @desc combines several LogicalAnds into a one */
|
|
7
|
-
const flattenAnds = (subject) => ({
|
|
8
|
-
and: subject.reduce((agg, item) => agg.concat(isObject(item) && "and" in item ? item.and : item), []),
|
|
9
|
-
});
|
|
10
|
-
exports.flattenAnds = flattenAnds;
|
|
11
|
-
/** @desc creates a LogicalContainer out of another one */
|
|
12
|
-
const mapLogicalContainer = (container, fn) => {
|
|
13
|
-
if (isObject(container)) {
|
|
14
|
-
if ("and" in container) {
|
|
15
|
-
return {
|
|
16
|
-
and: container.and.map((entry) => isObject(entry) && "or" in entry
|
|
17
|
-
? { or: entry.or.map(fn) }
|
|
18
|
-
: fn(entry)),
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
if ("or" in container) {
|
|
22
|
-
return {
|
|
23
|
-
or: container.or.map((entry) => isObject(entry) && "and" in entry
|
|
24
|
-
? { and: entry.and.map(fn) }
|
|
25
|
-
: fn(entry)),
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return fn(container);
|
|
30
|
-
};
|
|
31
|
-
exports.mapLogicalContainer = mapLogicalContainer;
|
|
32
|
-
/** @desc converts LogicalAnd into LogicalOr */
|
|
33
|
-
const andToOr = (subject) => {
|
|
34
|
-
return subject.and.reduce((acc, item) => {
|
|
35
|
-
const combs = (0, common_helpers_1.combinations)(acc.or, isObject(item) && "or" in item ? item.or : [item]);
|
|
36
|
-
if (combs.type === "single") {
|
|
37
|
-
acc.or.push(...combs.value);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
acc.or = combs.value.map(exports.flattenAnds);
|
|
41
|
-
}
|
|
42
|
-
return acc;
|
|
43
|
-
}, {
|
|
44
|
-
or: [],
|
|
45
|
-
});
|
|
46
|
-
};
|
|
47
|
-
exports.andToOr = andToOr;
|
|
48
|
-
/** @desc reducer, combines two LogicalContainers */
|
|
49
|
-
const combineContainers = (a, b) => {
|
|
50
|
-
if (isObject(a)) {
|
|
51
|
-
if ("and" in a) {
|
|
52
|
-
if (isObject(b)) {
|
|
53
|
-
if ("and" in b) {
|
|
54
|
-
return (0, exports.flattenAnds)([a, b]);
|
|
55
|
-
}
|
|
56
|
-
if ("or" in b) {
|
|
57
|
-
return (0, exports.combineContainers)((0, exports.andToOr)(a), b);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return (0, exports.flattenAnds)([a, b]);
|
|
61
|
-
}
|
|
62
|
-
if ("or" in a) {
|
|
63
|
-
if (isObject(b)) {
|
|
64
|
-
if ("and" in b) {
|
|
65
|
-
return (0, exports.combineContainers)(b, a);
|
|
66
|
-
}
|
|
67
|
-
if ("or" in b) {
|
|
68
|
-
const combs = (0, common_helpers_1.combinations)(a.or, b.or);
|
|
69
|
-
return {
|
|
70
|
-
or: combs.type === "single"
|
|
71
|
-
? combs.value
|
|
72
|
-
: combs.value.map(exports.flattenAnds),
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return (0, exports.combineContainers)(a, { and: [b] });
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
if (isObject(b) && ("and" in b || "or" in b)) {
|
|
80
|
-
return (0, exports.combineContainers)(b, a);
|
|
81
|
-
}
|
|
82
|
-
return { and: [a, b] };
|
|
83
|
-
};
|
|
84
|
-
exports.combineContainers = combineContainers;
|
|
85
|
-
//# sourceMappingURL=logical-container.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logical-container.js","sourceRoot":"","sources":["../src/logical-container.ts"],"names":[],"mappings":"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"}
|
package/dist/metadata.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { z } from "./index";
|
|
2
|
-
export declare const metaProp = "expressZodApiMeta";
|
|
3
|
-
type MetaProp = typeof metaProp;
|
|
4
|
-
export type MetaDef<T extends z.ZodTypeAny> = {
|
|
5
|
-
[K in MetaProp]: {
|
|
6
|
-
examples: z.input<T>[];
|
|
7
|
-
};
|
|
8
|
-
};
|
|
9
|
-
type MetaKey = keyof MetaDef<any>[MetaProp];
|
|
10
|
-
type MetaValue<T extends z.ZodTypeAny, K extends MetaKey> = Readonly<MetaDef<T>[MetaProp][K]>;
|
|
11
|
-
type ExampleSetter<T extends z.ZodTypeAny> = (example: z.input<T>) => WithMeta<T>;
|
|
12
|
-
/**
|
|
13
|
-
* @desc fixes the incompatibility of the ZodObject.keyof() method introduced in v3.17.9
|
|
14
|
-
* @todo remove it if/when it will be compatible
|
|
15
|
-
*/
|
|
16
|
-
type MetaFixForStrippedObject<T> = T extends z.ZodObject<any> ? T & {
|
|
17
|
-
keyof: z.ZodObject<any>["keyof"];
|
|
18
|
-
} : T;
|
|
19
|
-
type WithMeta<T extends z.ZodTypeAny> = MetaFixForStrippedObject<T> & {
|
|
20
|
-
_def: T["_def"] & MetaDef<T>;
|
|
21
|
-
example: ExampleSetter<T>;
|
|
22
|
-
};
|
|
23
|
-
export declare const withMeta: <T extends z.ZodTypeAny>(schema: T) => WithMeta<T>;
|
|
24
|
-
export declare const hasMeta: <T extends z.ZodTypeAny>(schema: T) => schema is WithMeta<T>;
|
|
25
|
-
export declare function getMeta<T extends z.ZodTypeAny, K extends MetaKey>(schema: T, meta: K): MetaValue<T, K> | undefined;
|
|
26
|
-
export declare const copyMeta: <A extends z.ZodTypeAny, B extends z.ZodTypeAny>(src: A, dest: B) => B | WithMeta<B>;
|
|
27
|
-
export {};
|
package/dist/metadata.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.copyMeta = exports.getMeta = exports.hasMeta = exports.withMeta = exports.metaProp = void 0;
|
|
4
|
-
const common_helpers_1 = require("./common-helpers");
|
|
5
|
-
const ramda_1 = require("ramda");
|
|
6
|
-
exports.metaProp = "expressZodApiMeta";
|
|
7
|
-
const withMeta = (schema) => {
|
|
8
|
-
const def = schema._def;
|
|
9
|
-
def[exports.metaProp] = def[exports.metaProp] || { examples: [] };
|
|
10
|
-
if (!("example" in schema)) {
|
|
11
|
-
Object.defineProperties(schema, {
|
|
12
|
-
example: {
|
|
13
|
-
get: () => (value) => {
|
|
14
|
-
def[exports.metaProp].examples.push(value);
|
|
15
|
-
return schema;
|
|
16
|
-
},
|
|
17
|
-
},
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
return schema;
|
|
21
|
-
};
|
|
22
|
-
exports.withMeta = withMeta;
|
|
23
|
-
const hasMeta = (schema) => {
|
|
24
|
-
if (!(exports.metaProp in schema._def)) {
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
27
|
-
return (typeof schema._def[exports.metaProp] === "object" && schema._def[exports.metaProp] !== null);
|
|
28
|
-
};
|
|
29
|
-
exports.hasMeta = hasMeta;
|
|
30
|
-
function getMeta(schema, meta) {
|
|
31
|
-
if (!(0, exports.hasMeta)(schema)) {
|
|
32
|
-
return undefined;
|
|
33
|
-
}
|
|
34
|
-
const def = schema._def;
|
|
35
|
-
return meta in def[exports.metaProp] ? def[exports.metaProp][meta] : undefined;
|
|
36
|
-
}
|
|
37
|
-
exports.getMeta = getMeta;
|
|
38
|
-
const copyMeta = (src, dest) => {
|
|
39
|
-
if (!(0, exports.hasMeta)(src)) {
|
|
40
|
-
return dest;
|
|
41
|
-
}
|
|
42
|
-
dest = (0, exports.withMeta)(dest);
|
|
43
|
-
const def = dest._def;
|
|
44
|
-
const examplesCombinations = (0, common_helpers_1.combinations)(def[exports.metaProp].examples, src._def[exports.metaProp].examples);
|
|
45
|
-
// general deep merge except examples
|
|
46
|
-
def[exports.metaProp] = (0, ramda_1.mergeDeepRight)({ ...def[exports.metaProp], examples: [] }, { ...src._def[exports.metaProp], examples: [] });
|
|
47
|
-
if (examplesCombinations.type === "single") {
|
|
48
|
-
def[exports.metaProp].examples = examplesCombinations.value;
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
for (const [destExample, srcExample] of examplesCombinations.value) {
|
|
52
|
-
def[exports.metaProp].examples.push((0, ramda_1.mergeDeepRight)({ ...destExample }, { ...srcExample }));
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return dest;
|
|
56
|
-
};
|
|
57
|
-
exports.copyMeta = copyMeta;
|
|
58
|
-
//# sourceMappingURL=metadata.js.map
|
package/dist/metadata.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
|
package/dist/method.d.ts
DELETED
package/dist/method.js
DELETED
package/dist/method.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"method.js","sourceRoot":"","sources":["../src/method.ts"],"names":[],"mappings":";;;AACa,QAAA,OAAO,GAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC"}
|
package/dist/middleware.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Request, Response } from "express";
|
|
2
|
-
import { HttpError } from "http-errors";
|
|
3
|
-
import { Logger } from "winston";
|
|
4
|
-
import { z } from "zod";
|
|
5
|
-
import { FlatObject } from "./common-helpers";
|
|
6
|
-
import { IOSchema } from "./io-schema";
|
|
7
|
-
import { LogicalContainer } from "./logical-container";
|
|
8
|
-
import { Security } from "./security";
|
|
9
|
-
interface MiddlewareParams<IN, OPT> {
|
|
10
|
-
input: IN;
|
|
11
|
-
options: OPT;
|
|
12
|
-
request: Request;
|
|
13
|
-
response: Response;
|
|
14
|
-
logger: Logger;
|
|
15
|
-
}
|
|
16
|
-
type Middleware<IN, OPT, OUT> = (params: MiddlewareParams<IN, OPT>) => Promise<OUT>;
|
|
17
|
-
interface MiddlewareCreationProps<IN extends IOSchema<"strip">, OPT, OUT extends FlatObject, SCO extends string> {
|
|
18
|
-
input: IN;
|
|
19
|
-
security?: LogicalContainer<Security<keyof z.input<IN> & string, SCO>>;
|
|
20
|
-
middleware: Middleware<z.output<IN>, OPT, OUT>;
|
|
21
|
-
}
|
|
22
|
-
export interface MiddlewareDefinition<IN extends IOSchema<"strip">, OPT, OUT extends FlatObject, SCO extends string> extends MiddlewareCreationProps<IN, OPT, OUT, SCO> {
|
|
23
|
-
type: "proprietary" | "express";
|
|
24
|
-
}
|
|
25
|
-
export type AnyMiddlewareDef = MiddlewareDefinition<any, any, any, any>;
|
|
26
|
-
export declare const createMiddleware: <IN extends IOSchema<"strip">, OPT, OUT extends FlatObject, SCO extends string>(props: MiddlewareCreationProps<IN, OPT, OUT, SCO>) => MiddlewareDefinition<IN, OPT, OUT, SCO>;
|
|
27
|
-
export type ExpressMiddleware<R extends Request, S extends Response> = (request: R, response: S, next: (error?: any) => void) => void | Promise<void>;
|
|
28
|
-
export interface ExpressMiddlewareFeatures<R extends Request, S extends Response, OUT extends FlatObject> {
|
|
29
|
-
provider?: (request: R, response: S) => OUT | Promise<OUT>;
|
|
30
|
-
transformer?: (err: Error) => HttpError | Error;
|
|
31
|
-
}
|
|
32
|
-
export {};
|
package/dist/middleware.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createMiddleware = void 0;
|
|
4
|
-
const common_helpers_1 = require("./common-helpers");
|
|
5
|
-
const errors_1 = require("./errors");
|
|
6
|
-
const createMiddleware = (props) => {
|
|
7
|
-
if ((0, common_helpers_1.hasTopLevelTransformingEffect)(props.input)) {
|
|
8
|
-
throw new errors_1.IOSchemaError("Using transformations on the top level of middleware input schema is not allowed.");
|
|
9
|
-
}
|
|
10
|
-
return {
|
|
11
|
-
...props,
|
|
12
|
-
type: "proprietary",
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
exports.createMiddleware = createMiddleware;
|
|
16
|
-
//# sourceMappingURL=middleware.js.map
|
package/dist/middleware.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":";;;AAIA,qDAA6E;AAC7E,qCAAyC;AAuClC,MAAM,gBAAgB,GAAG,CAM9B,KAAiD,EACR,EAAE;IAC3C,IAAI,IAAA,8CAA6B,EAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAC9C,MAAM,IAAI,sBAAa,CACrB,mFAAmF,CACpF,CAAC;KACH;IACD,OAAO;QACL,GAAG,KAAK;QACR,IAAI,EAAE,aAAa;KACpB,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,gBAAgB,oBAiB3B"}
|
package/dist/mime.d.ts
DELETED
package/dist/mime.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.mimeMultipart = exports.mimeJson = void 0;
|
|
7
|
-
const mime_1 = __importDefault(require("mime"));
|
|
8
|
-
exports.mimeJson = mime_1.default.getType("json") || "application/json";
|
|
9
|
-
exports.mimeMultipart = "multipart/form-data";
|
|
10
|
-
//# sourceMappingURL=mime.js.map
|
package/dist/mime.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mime.js","sourceRoot":"","sources":["../src/mime.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAEX,QAAA,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC;AACtD,QAAA,aAAa,GAAG,qBAAqB,CAAC"}
|
package/dist/mock.d.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/// <reference types="jest" />
|
|
2
|
-
/// <reference types="qs" />
|
|
3
|
-
import { Request, Response } from "express";
|
|
4
|
-
import { Logger } from "winston";
|
|
5
|
-
import { CommonConfig } from "./config-type";
|
|
6
|
-
import { AbstractEndpoint } from "./endpoint";
|
|
7
|
-
interface TestEndpointProps<REQ, RES, LOG> {
|
|
8
|
-
endpoint: AbstractEndpoint;
|
|
9
|
-
requestProps?: REQ;
|
|
10
|
-
responseProps?: RES;
|
|
11
|
-
configProps?: Partial<CommonConfig>;
|
|
12
|
-
loggerProps?: LOG;
|
|
13
|
-
/** @deprecated for testing purposes only */
|
|
14
|
-
__noJest?: boolean;
|
|
15
|
-
}
|
|
16
|
-
export declare const makeRequestMock: <REQ>(requestProps?: REQ | undefined) => {
|
|
17
|
-
method: string;
|
|
18
|
-
} & Record<"header", jest.Mock<any, any, any>> & (REQ extends undefined ? {} : REQ);
|
|
19
|
-
export declare const makeResponseMock: <RES>(responseProps?: RES | undefined) => {
|
|
20
|
-
writableEnded: boolean;
|
|
21
|
-
statusCode: number;
|
|
22
|
-
statusMessage: string;
|
|
23
|
-
} & Record<"status" | "set" | "end" | "json", jest.Mock<any, any, any>> & (RES extends undefined ? {} : RES);
|
|
24
|
-
/**
|
|
25
|
-
* @description You need to install Jest and probably @types/jest to use this method
|
|
26
|
-
*/
|
|
27
|
-
export declare const testEndpoint: <REQ extends Partial<Record<keyof Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>, any>> | undefined = undefined, RES extends Partial<Record<keyof Response<any, Record<string, any>>, any>> | undefined = undefined, LOG extends Partial<Record<keyof Logger, any>> | undefined = undefined>({ endpoint, requestProps, responseProps, configProps, loggerProps, __noJest, }: TestEndpointProps<REQ, RES, LOG>) => Promise<{
|
|
28
|
-
requestMock: {
|
|
29
|
-
method: string;
|
|
30
|
-
} & Record<"header", jest.Mock<any, any, any>> & (REQ extends undefined ? {} : REQ);
|
|
31
|
-
responseMock: {
|
|
32
|
-
writableEnded: boolean;
|
|
33
|
-
statusCode: number;
|
|
34
|
-
statusMessage: string;
|
|
35
|
-
} & Record<"status" | "set" | "end" | "json", jest.Mock<any, any, any>> & (RES extends undefined ? {} : RES);
|
|
36
|
-
loggerMock: Record<"error" | "warn" | "debug" | "info", jest.Mock<any, any, any>> & (LOG extends undefined ? {} : LOG);
|
|
37
|
-
}>;
|
|
38
|
-
export {};
|
package/dist/mock.js
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.testEndpoint = exports.makeResponseMock = exports.makeRequestMock = void 0;
|
|
7
|
-
const http_1 = __importDefault(require("http"));
|
|
8
|
-
const mime_1 = require("./mime");
|
|
9
|
-
const makeRequestMock = (requestProps) => ({
|
|
10
|
-
method: "GET",
|
|
11
|
-
header: jest.fn(() => mime_1.mimeJson),
|
|
12
|
-
...requestProps,
|
|
13
|
-
});
|
|
14
|
-
exports.makeRequestMock = makeRequestMock;
|
|
15
|
-
const makeResponseMock = (responseProps) => {
|
|
16
|
-
const responseMock = {
|
|
17
|
-
writableEnded: false,
|
|
18
|
-
statusCode: 200,
|
|
19
|
-
statusMessage: http_1.default.STATUS_CODES[200],
|
|
20
|
-
set: jest.fn(() => responseMock),
|
|
21
|
-
status: jest.fn((code) => {
|
|
22
|
-
responseMock.statusCode = code;
|
|
23
|
-
responseMock.statusMessage = http_1.default.STATUS_CODES[code];
|
|
24
|
-
return responseMock;
|
|
25
|
-
}),
|
|
26
|
-
json: jest.fn(() => responseMock),
|
|
27
|
-
end: jest.fn(() => {
|
|
28
|
-
responseMock.writableEnded = true;
|
|
29
|
-
return responseMock;
|
|
30
|
-
}),
|
|
31
|
-
...responseProps,
|
|
32
|
-
};
|
|
33
|
-
return responseMock;
|
|
34
|
-
};
|
|
35
|
-
exports.makeResponseMock = makeResponseMock;
|
|
36
|
-
/**
|
|
37
|
-
* @description You need to install Jest and probably @types/jest to use this method
|
|
38
|
-
*/
|
|
39
|
-
const testEndpoint = async ({ endpoint, requestProps, responseProps, configProps, loggerProps, __noJest, }) => {
|
|
40
|
-
if (!jest || __noJest) {
|
|
41
|
-
throw new Error("You need to install Jest in order to use testEndpoint().");
|
|
42
|
-
}
|
|
43
|
-
const requestMock = (0, exports.makeRequestMock)(requestProps);
|
|
44
|
-
const responseMock = (0, exports.makeResponseMock)(responseProps);
|
|
45
|
-
const loggerMock = {
|
|
46
|
-
info: jest.fn(),
|
|
47
|
-
warn: jest.fn(),
|
|
48
|
-
error: jest.fn(),
|
|
49
|
-
debug: jest.fn(),
|
|
50
|
-
...loggerProps,
|
|
51
|
-
};
|
|
52
|
-
const configMock = {
|
|
53
|
-
cors: false,
|
|
54
|
-
logger: loggerMock,
|
|
55
|
-
...configProps,
|
|
56
|
-
};
|
|
57
|
-
await endpoint.execute({
|
|
58
|
-
request: requestMock,
|
|
59
|
-
response: responseMock,
|
|
60
|
-
config: configMock,
|
|
61
|
-
logger: loggerMock,
|
|
62
|
-
});
|
|
63
|
-
return { requestMock, responseMock, loggerMock };
|
|
64
|
-
};
|
|
65
|
-
exports.testEndpoint = testEndpoint;
|
|
66
|
-
//# sourceMappingURL=mock.js.map
|
package/dist/mock.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock.js","sourceRoot":"","sources":["../src/mock.ts"],"names":[],"mappings":";;;;;;AACA,gDAAwB;AAIxB,iCAAkC;AAY3B,MAAM,eAAe,GAAG,CAAM,YAAkB,EAAE,EAAE,CACzD,CAGC;IACC,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,eAAQ,CAAC;IAC/B,GAAG,YAAY;CAChB,CAAA,CAAC;AARS,QAAA,eAAe,mBAQxB;AAEG,MAAM,gBAAgB,GAAG,CAAM,aAAmB,EAAE,EAAE;IAC3D,MAAM,YAAY,GAOjB;QACC,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,GAAG;QACf,aAAa,EAAE,cAAI,CAAC,YAAY,CAAC,GAAG,CAAC;QACrC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;QAChC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAY,EAAE,EAAE;YAC/B,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;YAC/B,YAAY,CAAC,aAAa,GAAG,cAAI,CAAC,YAAY,CAAC,IAAI,CAAE,CAAC;YACtD,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;QACF,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;QACjC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;YAChB,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC;YAClC,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;QACF,GAAG,aAAa;KACjB,CAAC;IACF,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AA1BW,QAAA,gBAAgB,oBA0B3B;AAEF;;GAEG;AACI,MAAM,YAAY,GAAG,KAAK,EAI/B,EACA,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,GACyB,EAAE,EAAE;IACrC,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;KAC7E;IACD,MAAM,WAAW,GAAG,IAAA,uBAAe,EAAC,YAAY,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,IAAA,wBAAgB,EAAC,aAAa,CAAC,CAAC;IACrD,MAAM,UAAU,GAGf;QACC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,GAAG,WAAW;KACf,CAAC;IACF,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,UAAU;QAClB,GAAG,WAAW;KACf,CAAC;IACF,MAAM,QAAQ,CAAC,OAAO,CAAC;QACrB,OAAO,EAAE,WAAiC;QAC1C,QAAQ,EAAE,YAAmC;QAC7C,MAAM,EAAE,UAA0B;QAClC,MAAM,EAAE,UAA+B;KACxC,CAAC,CAAC;IACH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACnD,CAAC,CAAC;AAvCW,QAAA,YAAY,gBAuCvB"}
|