sprint-es 0.0.149 → 0.0.150
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/dist/cjs/index.cjs +4 -4
- package/dist/cjs/modules/schemas/index.cjs +11 -12
- package/dist/esm/index.js +4 -4
- package/dist/esm/modules/schemas/index.js +11 -12
- package/dist/types/middleware.d.ts.map +1 -1
- package/dist/types/modules/schemas/index.d.ts +1 -0
- package/dist/types/modules/schemas/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cjs/index.cjs
CHANGED
|
@@ -31,6 +31,7 @@ const morgan = require("morgan");
|
|
|
31
31
|
const dotenv = require("dotenv");
|
|
32
32
|
const url = require("url");
|
|
33
33
|
const rateLimit = require("toolkitify/rate-limit");
|
|
34
|
+
const modules_schemas_index = require("./modules/schemas/index.cjs");
|
|
34
35
|
var _documentCurrentScript = typeof document !== "undefined" ? document.currentScript : null;
|
|
35
36
|
process.argv.includes("--dev");
|
|
36
37
|
const isVerbose = process.argv.includes("--verbose");
|
|
@@ -829,6 +830,7 @@ class Sprint {
|
|
|
829
830
|
}
|
|
830
831
|
}
|
|
831
832
|
function createSchemaValidationMiddleware(schema) {
|
|
833
|
+
const headersSchema = schema.headers ? modules_schemas_index.normalizeHeadersSchema(schema.headers) : null;
|
|
832
834
|
return (req, res, next) => {
|
|
833
835
|
const errors = [];
|
|
834
836
|
const method = req.method.toUpperCase();
|
|
@@ -863,11 +865,9 @@ function createSchemaValidationMiddleware(schema) {
|
|
|
863
865
|
})));
|
|
864
866
|
}
|
|
865
867
|
}
|
|
866
|
-
if (
|
|
868
|
+
if (headersSchema) {
|
|
867
869
|
const normalizedHeaders = Object.fromEntries(Object.entries(req.headers).map(([key, value]) => [key.toLowerCase(), value]));
|
|
868
|
-
const
|
|
869
|
-
const normalizedSchema = schemaShape ? schema.headers.constructor.create(Object.fromEntries(Object.entries(schemaShape).map(([key, value]) => [key.toLowerCase(), value]))) : schema.headers;
|
|
870
|
-
const result = normalizedSchema.safeParse(normalizedHeaders);
|
|
870
|
+
const result = headersSchema.safeParse(normalizedHeaders);
|
|
871
871
|
if (!result.success) {
|
|
872
872
|
errors.push(...result.error.issues.map((issue) => ({
|
|
873
873
|
location: "headers",
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const zod = require("zod");
|
|
4
|
+
function normalizeHeadersSchema(schema) {
|
|
5
|
+
const shape = schema.shape ?? schema._def?.shape?.();
|
|
6
|
+
if (!shape) return schema;
|
|
7
|
+
const normalizedShape = Object.fromEntries(Object.entries(shape).map(([key, value]) => [key.toLowerCase(), value]));
|
|
8
|
+
return zod.z.object(normalizedShape);
|
|
9
|
+
}
|
|
4
10
|
function createSprintAuthorizationSchema(options) {
|
|
5
11
|
const defaultSources = ["query:token", "headers:authorization"];
|
|
6
12
|
const sources = options?.sources ? Array.isArray(options.sources) ? options.sources : [options.sources] : defaultSources;
|
|
@@ -36,6 +42,7 @@ function parseSchema(schema, data) {
|
|
|
36
42
|
return { success: true, data: result.data };
|
|
37
43
|
}
|
|
38
44
|
function defineRouteSchema(schema) {
|
|
45
|
+
const headersSchema = schema.headers ? normalizeHeadersSchema(schema.headers) : null;
|
|
39
46
|
const middleware = (req, res, next) => {
|
|
40
47
|
const errors = [];
|
|
41
48
|
const method = req.method.toUpperCase();
|
|
@@ -52,19 +59,10 @@ function defineRouteSchema(schema) {
|
|
|
52
59
|
const result = parseSchema(schema.params, req.params);
|
|
53
60
|
if (!result.success) errors.push(...result.errors.map((e) => ({ location: "params", ...e })));
|
|
54
61
|
}
|
|
55
|
-
if (
|
|
62
|
+
if (headersSchema) {
|
|
56
63
|
const normalizedHeaders = Object.fromEntries(Object.entries(req.headers).map(([key, value]) => [key.toLowerCase(), value]));
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
const effectiveSchema = normalizedShape ? schema.headers.constructor.create(normalizedShape) : schema.headers;
|
|
60
|
-
const result = effectiveSchema.safeParse(normalizedHeaders);
|
|
61
|
-
if (!result.success) {
|
|
62
|
-
errors.push(...result.error.issues.map((issue) => ({
|
|
63
|
-
location: "headers",
|
|
64
|
-
path: issue.path.join("."),
|
|
65
|
-
message: issue.message
|
|
66
|
-
})));
|
|
67
|
-
}
|
|
64
|
+
const result = headersSchema.safeParse(normalizedHeaders);
|
|
65
|
+
if (!result.success) errors.push(...result.errors.map((e) => ({ location: "headers", ...e })));
|
|
68
66
|
}
|
|
69
67
|
if (schema.sprint?.authorization) {
|
|
70
68
|
const authSchema = schema.sprint.authorization;
|
|
@@ -110,5 +108,6 @@ function defineRouteSchema(schema) {
|
|
|
110
108
|
return middleware;
|
|
111
109
|
}
|
|
112
110
|
exports.defineRouteSchema = defineRouteSchema;
|
|
111
|
+
exports.normalizeHeadersSchema = normalizeHeadersSchema;
|
|
113
112
|
exports.sprint = sprintBuilder;
|
|
114
113
|
exports.z = proxyZ;
|
package/dist/esm/index.js
CHANGED
|
@@ -7,6 +7,7 @@ import morgan from "morgan";
|
|
|
7
7
|
import dotenv from "dotenv";
|
|
8
8
|
import { pathToFileURL } from "url";
|
|
9
9
|
import { RateLimiter } from "toolkitify/rate-limit";
|
|
10
|
+
import { normalizeHeadersSchema } from "./modules/schemas/index.js";
|
|
10
11
|
process.argv.includes("--dev");
|
|
11
12
|
const isVerbose = process.argv.includes("--verbose");
|
|
12
13
|
let __filename$1;
|
|
@@ -804,6 +805,7 @@ class Sprint {
|
|
|
804
805
|
}
|
|
805
806
|
}
|
|
806
807
|
function createSchemaValidationMiddleware(schema) {
|
|
808
|
+
const headersSchema = schema.headers ? normalizeHeadersSchema(schema.headers) : null;
|
|
807
809
|
return (req, res, next) => {
|
|
808
810
|
const errors = [];
|
|
809
811
|
const method = req.method.toUpperCase();
|
|
@@ -838,11 +840,9 @@ function createSchemaValidationMiddleware(schema) {
|
|
|
838
840
|
})));
|
|
839
841
|
}
|
|
840
842
|
}
|
|
841
|
-
if (
|
|
843
|
+
if (headersSchema) {
|
|
842
844
|
const normalizedHeaders = Object.fromEntries(Object.entries(req.headers).map(([key, value]) => [key.toLowerCase(), value]));
|
|
843
|
-
const
|
|
844
|
-
const normalizedSchema = schemaShape ? schema.headers.constructor.create(Object.fromEntries(Object.entries(schemaShape).map(([key, value]) => [key.toLowerCase(), value]))) : schema.headers;
|
|
845
|
-
const result = normalizedSchema.safeParse(normalizedHeaders);
|
|
845
|
+
const result = headersSchema.safeParse(normalizedHeaders);
|
|
846
846
|
if (!result.success) {
|
|
847
847
|
errors.push(...result.error.issues.map((issue) => ({
|
|
848
848
|
location: "headers",
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
function normalizeHeadersSchema(schema) {
|
|
3
|
+
const shape = schema.shape ?? schema._def?.shape?.();
|
|
4
|
+
if (!shape) return schema;
|
|
5
|
+
const normalizedShape = Object.fromEntries(Object.entries(shape).map(([key, value]) => [key.toLowerCase(), value]));
|
|
6
|
+
return z.object(normalizedShape);
|
|
7
|
+
}
|
|
2
8
|
function createSprintAuthorizationSchema(options) {
|
|
3
9
|
const defaultSources = ["query:token", "headers:authorization"];
|
|
4
10
|
const sources = options?.sources ? Array.isArray(options.sources) ? options.sources : [options.sources] : defaultSources;
|
|
@@ -34,6 +40,7 @@ function parseSchema(schema, data) {
|
|
|
34
40
|
return { success: true, data: result.data };
|
|
35
41
|
}
|
|
36
42
|
function defineRouteSchema(schema) {
|
|
43
|
+
const headersSchema = schema.headers ? normalizeHeadersSchema(schema.headers) : null;
|
|
37
44
|
const middleware = (req, res, next) => {
|
|
38
45
|
const errors = [];
|
|
39
46
|
const method = req.method.toUpperCase();
|
|
@@ -50,19 +57,10 @@ function defineRouteSchema(schema) {
|
|
|
50
57
|
const result = parseSchema(schema.params, req.params);
|
|
51
58
|
if (!result.success) errors.push(...result.errors.map((e) => ({ location: "params", ...e })));
|
|
52
59
|
}
|
|
53
|
-
if (
|
|
60
|
+
if (headersSchema) {
|
|
54
61
|
const normalizedHeaders = Object.fromEntries(Object.entries(req.headers).map(([key, value]) => [key.toLowerCase(), value]));
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
const effectiveSchema = normalizedShape ? schema.headers.constructor.create(normalizedShape) : schema.headers;
|
|
58
|
-
const result = effectiveSchema.safeParse(normalizedHeaders);
|
|
59
|
-
if (!result.success) {
|
|
60
|
-
errors.push(...result.error.issues.map((issue) => ({
|
|
61
|
-
location: "headers",
|
|
62
|
-
path: issue.path.join("."),
|
|
63
|
-
message: issue.message
|
|
64
|
-
})));
|
|
65
|
-
}
|
|
62
|
+
const result = headersSchema.safeParse(normalizedHeaders);
|
|
63
|
+
if (!result.success) errors.push(...result.errors.map((e) => ({ location: "headers", ...e })));
|
|
66
64
|
}
|
|
67
65
|
if (schema.sprint?.authorization) {
|
|
68
66
|
const authSchema = schema.sprint.authorization;
|
|
@@ -109,6 +107,7 @@ function defineRouteSchema(schema) {
|
|
|
109
107
|
}
|
|
110
108
|
export {
|
|
111
109
|
defineRouteSchema,
|
|
110
|
+
normalizeHeadersSchema,
|
|
112
111
|
sprintBuilder as sprint,
|
|
113
112
|
proxyZ as z
|
|
114
113
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/middleware.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/middleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAuB,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAoGlF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,gBAAgB,EAC7D,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAClC,gBAAgB,CAAC,OAAO,CAAC,CAwB3B"}
|
|
@@ -4,6 +4,7 @@ export type AuthorizationSource = `query:${string}` | `headers:${string}`;
|
|
|
4
4
|
export interface SprintAuthorizationOptions {
|
|
5
5
|
sources?: AuthorizationSource | AuthorizationSource[];
|
|
6
6
|
}
|
|
7
|
+
export declare function normalizeHeadersSchema(schema: any): any;
|
|
7
8
|
declare function createSprintAuthorizationSchema(options?: SprintAuthorizationOptions): ZodSchemaType<string, ZodTypeDef, string>;
|
|
8
9
|
declare const sprintBuilder: {
|
|
9
10
|
authorization: typeof createSprintAuthorizationSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,SAAS,IAAI,aAAa,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAErF,MAAM,MAAM,mBAAmB,GAAG,SAAS,MAAM,EAAE,GAAG,WAAW,MAAM,EAAE,CAAC;AAE1E,MAAM,WAAW,0BAA0B;IACvC,OAAO,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,CAAC;CACzD;AAED,iBAAS,+BAA+B,CAAC,OAAO,CAAC,EAAE,0BAA0B,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAKxH;AAED,QAAA,MAAM,aAAa;;CAElB,CAAC;AAEF,QAAA,MAAM,UAAU;;CAEf,CAAC;AAEF,KAAK,cAAc,GAAG,OAAO,UAAU,GAAG,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAQpE,KAAK,aAAa,GAAG,OAAO,CAAC,GAAG;IAC5B,MAAM,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,QAAA,MAAM,MAAM,EAKN,aAAa,CAAC;AAEpB,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;AACvB,OAAO,EAAE,aAAa,IAAI,MAAM,EAAE,CAAC;AAEnC,MAAM,WAAW,kBAAkB;IAC/B,IAAI,CAAC,EAAE,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IAClD,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE;QACL,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;KAC7D,CAAC;CACL;AAqBD,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,kBAAkB,EAAE,MAAM,EAAE,CAAC,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,SAAS,IAAI,aAAa,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAErF,MAAM,MAAM,mBAAmB,GAAG,SAAS,MAAM,EAAE,GAAG,WAAW,MAAM,EAAE,CAAC;AAE1E,MAAM,WAAW,0BAA0B;IACvC,OAAO,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,CAAC;CACzD;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAKvD;AAED,iBAAS,+BAA+B,CAAC,OAAO,CAAC,EAAE,0BAA0B,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAKxH;AAED,QAAA,MAAM,aAAa;;CAElB,CAAC;AAEF,QAAA,MAAM,UAAU;;CAEf,CAAC;AAEF,KAAK,cAAc,GAAG,OAAO,UAAU,GAAG,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAQpE,KAAK,aAAa,GAAG,OAAO,CAAC,GAAG;IAC5B,MAAM,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,QAAA,MAAM,MAAM,EAKN,aAAa,CAAC;AAEpB,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;AACvB,OAAO,EAAE,aAAa,IAAI,MAAM,EAAE,CAAC;AAEnC,MAAM,WAAW,kBAAkB;IAC/B,IAAI,CAAC,EAAE,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IAClD,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE;QACL,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;KAC7D,CAAC;CACL;AAqBD,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,kBAAkB,EAAE,MAAM,EAAE,CAAC,GAAG,cAAc,CA8EzF;AAED,YAAY,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC"}
|