@soulbatical/tetra-core 0.10.0 → 0.10.2
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/core/createApp.d.ts +1 -2
- package/dist/core/createApp.d.ts.map +1 -1
- package/dist/frontend/index.d.ts +2 -0
- package/dist/frontend/index.d.ts.map +1 -1
- package/dist/frontend/index.js +1 -0
- package/dist/frontend/index.js.map +1 -1
- package/dist/middleware/securityMiddleware.d.ts.map +1 -1
- package/dist/middleware/securityMiddleware.js +36 -15
- package/dist/middleware/securityMiddleware.js.map +1 -1
- package/package.json +1 -1
package/dist/core/createApp.d.ts
CHANGED
|
@@ -119,8 +119,7 @@ export declare function createApp(config: CreateAppConfig): {
|
|
|
119
119
|
authRateLimiter: import("express-rate-limit").RateLimitRequestHandler;
|
|
120
120
|
publicContentRateLimiter: import("express-rate-limit").RateLimitRequestHandler;
|
|
121
121
|
createRateLimiter: (windowMs?: number, max?: number) => import("express-rate-limit").RateLimitRequestHandler;
|
|
122
|
-
smartRateLimiter: (limiter: any) => (req: Request,
|
|
123
|
-
res: Response, next: NextFunction) => any;
|
|
122
|
+
smartRateLimiter: (limiter: any) => (req: Request, res: Response, next: NextFunction) => any;
|
|
124
123
|
limitRequestSize: (req: Request, res: Response, next: NextFunction) => express.Response<any, Record<string, any>> | undefined;
|
|
125
124
|
sanitizeInput: (req: Request, res: Response, next: NextFunction) => void;
|
|
126
125
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createApp.d.ts","sourceRoot":"","sources":["../../src/core/createApp.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"createApp.d.ts","sourceRoot":"","sources":["../../src/core/createApp.ts"],"names":[],"mappings":"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"}
|
package/dist/frontend/index.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ export { StorageDropzone } from './storage/StorageDropzone.js';
|
|
|
16
16
|
export type { StorageDropzoneProps } from './storage/StorageDropzone.js';
|
|
17
17
|
export { useFeature } from './hooks/useFeature.js';
|
|
18
18
|
export type { UseFeatureOptions, UseFeatureResult } from './hooks/useFeature.js';
|
|
19
|
+
export { useClickToConfirm } from './hooks/useClickToConfirm.js';
|
|
20
|
+
export type { UseClickToConfirmOptions, UseClickToConfirmResult } from './hooks/useClickToConfirm.js';
|
|
19
21
|
export { FeatureTable } from './components/FeatureTable.js';
|
|
20
22
|
export type { FeatureTableProps, CellRendererMap } from './components/FeatureTable.js';
|
|
21
23
|
export { FeatureFilters } from './components/FeatureFilters.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/frontend/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACzG,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AACnH,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEvF,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAExF,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/frontend/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACzG,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AACnH,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEtG,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEvF,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAExF,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/frontend/index.js
CHANGED
|
@@ -12,6 +12,7 @@ export { configureStorageUrls } from './storage/storageUrl.js';
|
|
|
12
12
|
export { useStorageUpload } from './storage/useStorageUpload.js';
|
|
13
13
|
export { StorageDropzone } from './storage/StorageDropzone.js';
|
|
14
14
|
export { useFeature } from './hooks/useFeature.js';
|
|
15
|
+
export { useClickToConfirm } from './hooks/useClickToConfirm.js';
|
|
15
16
|
export { FeatureTable } from './components/FeatureTable.js';
|
|
16
17
|
export { FeatureFilters } from './components/FeatureFilters.js';
|
|
17
18
|
export { FeatureForm } from './components/FeatureForm.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/frontend/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGhE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/frontend/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGjE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGhE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -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;QAChB,6EAA6E;QAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,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;
|
|
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;QAChB,6EAA6E;QAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,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;yGAgFtB,CAAC;yBAdpB,OAAO,OAAO,QAAQ,QAAQ,YAAY;;;;;mCA8B5B,MAAM,QAAwB,MAAM;gCAiD3C,GAAG,MAC5B,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY;4BAU1B,OAAO,OAAO,QAAQ,QAAQ,YAAY;yBAY7C,OAAO,OAAO,QAAQ,QAAQ,YAAY;EA4BvE;AAED,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -100,13 +100,20 @@ export function configureSecurity(config = {}) {
|
|
|
100
100
|
const origin = req.headers.origin;
|
|
101
101
|
res.setHeader('Vary', 'Origin');
|
|
102
102
|
if (origin && allOrigins.includes(origin)) {
|
|
103
|
+
// ONLY set CORS headers when origin is whitelisted.
|
|
104
|
+
// Setting Allow-Credentials or Allow-Headers for unknown origins
|
|
105
|
+
// leaks information about accepted headers and enables CORS confusion attacks.
|
|
103
106
|
res.setHeader('Access-Control-Allow-Origin', origin);
|
|
107
|
+
res.setHeader('Access-Control-Allow-Headers', corsHeaderStr);
|
|
108
|
+
res.setHeader('Access-Control-Allow-Credentials', 'true');
|
|
109
|
+
if (req.method === 'OPTIONS') {
|
|
110
|
+
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH, DELETE, OPTIONS');
|
|
111
|
+
return res.status(200).end();
|
|
112
|
+
}
|
|
104
113
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH, DELETE, OPTIONS');
|
|
109
|
-
return res.status(200).end();
|
|
114
|
+
else if (req.method === 'OPTIONS') {
|
|
115
|
+
// Unknown origin preflight — return 204 with no CORS headers (browser will block)
|
|
116
|
+
return res.status(204).end();
|
|
110
117
|
}
|
|
111
118
|
next();
|
|
112
119
|
};
|
|
@@ -226,25 +233,39 @@ function parseBytes(str) {
|
|
|
226
233
|
}
|
|
227
234
|
/** Keys that enable prototype pollution attacks */
|
|
228
235
|
const DANGEROUS_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
|
|
229
|
-
|
|
236
|
+
/** Maximum nesting depth to prevent stack overflow on malicious payloads */
|
|
237
|
+
const MAX_DEPTH = 10;
|
|
238
|
+
function sanitizeString(value) {
|
|
239
|
+
return value
|
|
240
|
+
.replace(/<[^>]*>/g, '') // Strip ALL HTML tags
|
|
241
|
+
.replace(/javascript:/gi, '')
|
|
242
|
+
.replace(/on\w+\s*=/gi, '')
|
|
243
|
+
.replace(/[\r\n]/g, '') // Strip CRLF (prevents SMTP header injection)
|
|
244
|
+
.trim();
|
|
245
|
+
}
|
|
246
|
+
function sanitizeObject(obj, depth = 0) {
|
|
247
|
+
// Depth guard: return empty object for excessively nested payloads
|
|
248
|
+
if (depth >= MAX_DEPTH)
|
|
249
|
+
return {};
|
|
230
250
|
const sanitized = {};
|
|
231
251
|
for (const [key, value] of Object.entries(obj)) {
|
|
232
|
-
// Prototype pollution protection
|
|
252
|
+
// Prototype pollution protection — at EVERY nesting level
|
|
233
253
|
if (DANGEROUS_KEYS.has(key))
|
|
234
254
|
continue;
|
|
235
255
|
if (typeof value === 'string') {
|
|
236
|
-
sanitized[key] = value
|
|
237
|
-
.replace(/<[^>]*>/g, '') // Strip ALL HTML tags
|
|
238
|
-
.replace(/javascript:/gi, '')
|
|
239
|
-
.replace(/on\w+\s*=/gi, '')
|
|
240
|
-
.replace(/[\r\n]/g, '') // Strip CRLF (prevents SMTP header injection)
|
|
241
|
-
.trim();
|
|
256
|
+
sanitized[key] = sanitizeString(value);
|
|
242
257
|
}
|
|
243
258
|
else if (Array.isArray(value)) {
|
|
244
|
-
sanitized[key] = value.map(item =>
|
|
259
|
+
sanitized[key] = value.map(item => {
|
|
260
|
+
if (typeof item === 'string')
|
|
261
|
+
return sanitizeString(item);
|
|
262
|
+
if (typeof item === 'object' && item !== null)
|
|
263
|
+
return sanitizeObject(item, depth + 1);
|
|
264
|
+
return item;
|
|
265
|
+
});
|
|
245
266
|
}
|
|
246
267
|
else if (typeof value === 'object' && value !== null) {
|
|
247
|
-
sanitized[key] = sanitizeObject(value);
|
|
268
|
+
sanitized[key] = sanitizeObject(value, depth + 1);
|
|
248
269
|
}
|
|
249
270
|
else {
|
|
250
271
|
sanitized[key] = value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"securityMiddleware.js","sourceRoot":"","sources":["../../src/middleware/securityMiddleware.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"securityMiddleware.js","sourceRoot":"","sources":["../../src/middleware/securityMiddleware.ts"],"names":[],"mappings":"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"}
|