@soulbatical/tetra-core 0.1.10 → 0.1.11
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.
Potentially problematic release.
This version of @soulbatical/tetra-core might be problematic. Click here for more details.
- package/dist/core/createApp.d.ts +1 -1
- package/dist/core/createApp.d.ts.map +1 -1
- package/dist/middleware/securityMiddleware.d.ts +9 -1
- package/dist/middleware/securityMiddleware.d.ts.map +1 -1
- package/dist/middleware/securityMiddleware.js +5 -0
- package/dist/middleware/securityMiddleware.js.map +1 -1
- package/package.json +1 -1
package/dist/core/createApp.d.ts
CHANGED
|
@@ -61,7 +61,7 @@ export declare function createApp(config: CreateAppConfig): {
|
|
|
61
61
|
security: {
|
|
62
62
|
enforceHTTPS: (req: Request, res: Response, next: NextFunction) => void;
|
|
63
63
|
securityHeaders: (req: import("http").IncomingMessage, res: import("http").ServerResponse, next: (err?: unknown) => void) => void;
|
|
64
|
-
configureCORS: (req: Request, res: Response, next: NextFunction) => express.Response<any, Record<string, any>>;
|
|
64
|
+
configureCORS: (req: Request, res: Response, next: NextFunction) => void | express.Response<any, Record<string, any>>;
|
|
65
65
|
generalRateLimiter: import("express-rate-limit").RateLimitRequestHandler;
|
|
66
66
|
strictRateLimiter: import("express-rate-limit").RateLimitRequestHandler;
|
|
67
67
|
publicContentRateLimiter: import("express-rate-limit").RateLimitRequestHandler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createApp.d.ts","sourceRoot":"","sources":["../../src/core/createApp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5E,OAAO,EAAqB,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAIxF,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,2CAA2C;IAC3C,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACvC,wFAAwF;IACxF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yDAAyD;IACzD,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACrF,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,mDAAmD;IACnD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe;;;;;;6GAiHzC,CAAP;;;;;;
|
|
1
|
+
{"version":3,"file":"createApp.d.ts","sourceRoot":"","sources":["../../src/core/createApp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5E,OAAO,EAAqB,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAIxF,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,2CAA2C;IAC3C,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACvC,wFAAwF;IACxF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yDAAyD;IACzD,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACrF,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,mDAAmD;IACnD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe;;;;;;6GAiHzC,CAAP;;;;;;6CAYg3C,YAAY,EAAC,aAAc,EAAC,kBAAmB;;;;EAD/5C"}
|
|
@@ -41,11 +41,19 @@ export interface SecurityConfig {
|
|
|
41
41
|
cspDirectives?: Record<string, string[]>;
|
|
42
42
|
/** Skip HTTPS enforcement entirely (for projects behind proxy that handles it) */
|
|
43
43
|
skipHTTPS?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Path prefixes where Tetra's CORS middleware should pass through to next().
|
|
46
|
+
* Use this when you need custom CORS handling on specific routes (e.g., widgets
|
|
47
|
+
* that run on third-party sites and need `origin: true` instead of a whitelist).
|
|
48
|
+
*
|
|
49
|
+
* Example: ['/api/public/widget', '/api/public/feedback', '/widget']
|
|
50
|
+
*/
|
|
51
|
+
corsPassthroughPaths?: string[];
|
|
44
52
|
}
|
|
45
53
|
export declare function configureSecurity(config?: SecurityConfig): {
|
|
46
54
|
enforceHTTPS: (req: Request, res: Response, next: NextFunction) => void;
|
|
47
55
|
securityHeaders: (req: import("http").IncomingMessage, res: import("http").ServerResponse, next: (err?: unknown) => void) => void;
|
|
48
|
-
configureCORS: (req: Request, res: Response, next: NextFunction) => Response<any, Record<string, any>>;
|
|
56
|
+
configureCORS: (req: Request, res: Response, next: NextFunction) => void | Response<any, Record<string, any>>;
|
|
49
57
|
generalRateLimiter: import("express-rate-limit").RateLimitRequestHandler;
|
|
50
58
|
strictRateLimiter: import("express-rate-limit").RateLimitRequestHandler;
|
|
51
59
|
publicContentRateLimiter: import("express-rate-limit").RateLimitRequestHandler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"securityMiddleware.d.ts","sourceRoot":"","sources":["../../src/middleware/securityMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,MAAM,MAAM,QAAQ,CAAC;AAO5B,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,yCAAyC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,kFAAkF;IAClF,SAAS,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"securityMiddleware.d.ts","sourceRoot":"","sources":["../../src/middleware/securityMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,MAAM,MAAM,QAAQ,CAAC;AAO5B,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,yCAAyC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,kFAAkF;IAClF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAOD,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,cAAmB;wBAIhC,OAAO,OAAO,QAAQ,QAAQ,YAAY;yGAyFhC,CAAC;yBAvBV,OAAO,OAAO,QAAQ,QAAQ,YAAY;;;;mCAwB5B,MAAM,QAAwB,MAAM;gCAqC3C,GAAG,MAC5B,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY;4BAU1B,OAAO,OAAO,QAAQ,QAAQ,YAAY;yBAY7C,OAAO,OAAO,QAAQ,QAAQ,YAAY;EA2BvE"}
|
|
@@ -91,7 +91,12 @@ export function configureSecurity(config = {}) {
|
|
|
91
91
|
...DEFAULT_CORS_HEADERS,
|
|
92
92
|
...(config.corsHeaders || [])
|
|
93
93
|
].join(', ');
|
|
94
|
+
const passthroughPaths = config.corsPassthroughPaths || [];
|
|
94
95
|
const configureCORS = (req, res, next) => {
|
|
96
|
+
// Skip for paths that handle their own CORS (e.g., widget routes with wildcard origin)
|
|
97
|
+
if (passthroughPaths.length > 0 && passthroughPaths.some(p => req.path.startsWith(p))) {
|
|
98
|
+
return next();
|
|
99
|
+
}
|
|
95
100
|
const origin = req.headers.origin;
|
|
96
101
|
res.setHeader('Vary', 'Origin');
|
|
97
102
|
if (origin && allOrigins.includes(origin)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"securityMiddleware.js","sourceRoot":"","sources":["../../src/middleware/securityMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,MAAM,MAAM,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"securityMiddleware.js","sourceRoot":"","sources":["../../src/middleware/securityMiddleware.ts"],"names":[],"mappings":"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"}
|