@abyss-project/monitor 2.3.0 → 2.5.0
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/__tests__/body-redaction.test.d.ts +1 -0
- package/dist/__tests__/body-redaction.test.js +104 -0
- package/dist/__tests__/body-redaction.test.js.map +1 -0
- package/dist/__tests__/header-pattern.test.js +3 -0
- package/dist/__tests__/header-pattern.test.js.map +1 -1
- package/dist/__tests__/route-decorator-body-flags.test.d.ts +1 -0
- package/dist/__tests__/route-decorator-body-flags.test.js +117 -0
- package/dist/__tests__/route-decorator-body-flags.test.js.map +1 -0
- package/dist/__tests__/route-flags-loader.test.d.ts +1 -0
- package/dist/__tests__/route-flags-loader.test.js +153 -0
- package/dist/__tests__/route-flags-loader.test.js.map +1 -0
- package/dist/__tests__/sentinel-header-mask.test.d.ts +1 -0
- package/dist/__tests__/sentinel-header-mask.test.js +14 -0
- package/dist/__tests__/sentinel-header-mask.test.js.map +1 -0
- package/dist/frameworks/express/decorators.d.ts +2 -0
- package/dist/frameworks/express/decorators.js +6 -0
- package/dist/frameworks/express/decorators.js.map +1 -1
- package/dist/frameworks/express/index.js +15 -5
- package/dist/frameworks/express/index.js.map +1 -1
- package/dist/middlewares/logger-endpoint.middleware.js +5 -4
- package/dist/middlewares/logger-endpoint.middleware.js.map +1 -1
- package/dist/types/enum/application-sentinel-check-status.enum.d.ts +6 -0
- package/dist/types/enum/application-sentinel-check-status.enum.js +10 -0
- package/dist/types/enum/application-sentinel-check-status.enum.js.map +1 -0
- package/dist/types/enum/index.d.ts +1 -0
- package/dist/types/enum/index.js +1 -0
- package/dist/types/enum/index.js.map +1 -1
- package/dist/types/interface/api/requests/application-sentinel.request.d.ts +2 -0
- package/dist/types/interface/dto/application-sentinel-configuration.dto.d.ts +9 -12
- package/dist/types/interface/dto/application-sentinel-configuration.dto.js +2 -1
- package/dist/types/interface/dto/application-sentinel-configuration.dto.js.map +1 -1
- package/dist/types/interface/models/application-sentinel-history.model.d.ts +2 -0
- package/dist/types/interface/models/application-sentinel.model.d.ts +2 -1
- package/dist/utils/body-redaction.d.ts +9 -0
- package/dist/utils/body-redaction.js +57 -0
- package/dist/utils/body-redaction.js.map +1 -0
- package/dist/utils/header-pattern.js +1 -0
- package/dist/utils/header-pattern.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const body_redaction_1 = require("../utils/body-redaction");
|
|
4
|
+
describe('redactCapturedBody', () => {
|
|
5
|
+
it('drops credential keys by suffix, whatever the case or separator', () => {
|
|
6
|
+
const body = {
|
|
7
|
+
email: 'a@b.c',
|
|
8
|
+
password: 'p',
|
|
9
|
+
currentPassword: 'p',
|
|
10
|
+
new_password: 'p',
|
|
11
|
+
accessToken: 't',
|
|
12
|
+
refresh_token: 't',
|
|
13
|
+
'x-admin-token': 't',
|
|
14
|
+
adminToken: 't',
|
|
15
|
+
clientSecret: 's',
|
|
16
|
+
webhook_secret: 's',
|
|
17
|
+
apiKey: 'k',
|
|
18
|
+
API_KEY: 'k',
|
|
19
|
+
};
|
|
20
|
+
expect((0, body_redaction_1.redactCapturedBody)(body, body_redaction_1.CapturedBodySide.REQUEST)).toEqual({ email: 'a@b.c' });
|
|
21
|
+
});
|
|
22
|
+
it('drops exact keys sid, authorization and cookie', () => {
|
|
23
|
+
const body = { sid: 's', Authorization: 'Bearer x', cookie: 'c', user: { id: 'u1' } };
|
|
24
|
+
expect((0, body_redaction_1.redactCapturedBody)(body, body_redaction_1.CapturedBodySide.RESPONSE)).toEqual({ user: { id: 'u1' } });
|
|
25
|
+
});
|
|
26
|
+
it('drops code on the request side only', () => {
|
|
27
|
+
expect((0, body_redaction_1.redactCapturedBody)({ code: 'oauth-code', state: 'x' }, body_redaction_1.CapturedBodySide.REQUEST)).toEqual({
|
|
28
|
+
state: 'x',
|
|
29
|
+
});
|
|
30
|
+
expect((0, body_redaction_1.redactCapturedBody)({ code: 'emailNotVerified', type: 'authError' }, body_redaction_1.CapturedBodySide.RESPONSE)).toEqual({ code: 'emailNotVerified', type: 'authError' });
|
|
31
|
+
});
|
|
32
|
+
it('walks nested objects and arrays', () => {
|
|
33
|
+
const body = {
|
|
34
|
+
data: {
|
|
35
|
+
user: { id: 'u1' },
|
|
36
|
+
adminToken: 't',
|
|
37
|
+
items: [
|
|
38
|
+
{ id: 1, token: 'a' },
|
|
39
|
+
{ id: 2, token: 'b' },
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
expect((0, body_redaction_1.redactCapturedBody)(body, body_redaction_1.CapturedBodySide.RESPONSE)).toEqual({
|
|
44
|
+
data: { user: { id: 'u1' }, items: [{ id: 1 }, { id: 2 }] },
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
it('passes primitives, strings and null through unchanged', () => {
|
|
48
|
+
expect((0, body_redaction_1.redactCapturedBody)('Payload Too Large', body_redaction_1.CapturedBodySide.RESPONSE)).toBe('Payload Too Large');
|
|
49
|
+
expect((0, body_redaction_1.redactCapturedBody)(null, body_redaction_1.CapturedBodySide.REQUEST)).toBeNull();
|
|
50
|
+
expect((0, body_redaction_1.redactCapturedBody)(42, body_redaction_1.CapturedBodySide.REQUEST)).toBe(42);
|
|
51
|
+
expect((0, body_redaction_1.redactCapturedBody)(['a', 'b'], body_redaction_1.CapturedBodySide.REQUEST)).toEqual(['a', 'b']);
|
|
52
|
+
});
|
|
53
|
+
it('keeps keys that only contain a credential word without ending with it', () => {
|
|
54
|
+
expect((0, body_redaction_1.redactCapturedBody)({ tokenCount: 3, passwordUpdatedAt: 'd', secretName: 'n' }, body_redaction_1.CapturedBodySide.RESPONSE)).toEqual({ tokenCount: 3, passwordUpdatedAt: 'd', secretName: 'n' });
|
|
55
|
+
});
|
|
56
|
+
it('drops invitationTokenId, the consumption credential of an invitation (card #471 / ADR-0090)', () => {
|
|
57
|
+
const body = { invitationTokenId: 'inv-1', email: 'a@b.c' };
|
|
58
|
+
expect((0, body_redaction_1.redactCapturedBody)(body, body_redaction_1.CapturedBodySide.REQUEST)).toEqual({ email: 'a@b.c' });
|
|
59
|
+
expect((0, body_redaction_1.redactCapturedBody)(body, body_redaction_1.CapturedBodySide.RESPONSE)).toEqual({ email: 'a@b.c' });
|
|
60
|
+
});
|
|
61
|
+
it('keeps tokenHistoryId: it does not end with the tokenid suffix', () => {
|
|
62
|
+
const body = { tokenHistoryId: 'th-1' };
|
|
63
|
+
expect((0, body_redaction_1.redactCapturedBody)(body, body_redaction_1.CapturedBodySide.REQUEST)).toEqual({ tokenHistoryId: 'th-1' });
|
|
64
|
+
expect((0, body_redaction_1.redactCapturedBody)(body, body_redaction_1.CapturedBodySide.RESPONSE)).toEqual({ tokenHistoryId: 'th-1' });
|
|
65
|
+
});
|
|
66
|
+
it('never mutates its input', () => {
|
|
67
|
+
const body = { password: 'p', nested: { token: 't' } };
|
|
68
|
+
(0, body_redaction_1.redactCapturedBody)(body, body_redaction_1.CapturedBodySide.REQUEST);
|
|
69
|
+
expect(body).toEqual({ password: 'p', nested: { token: 't' } });
|
|
70
|
+
});
|
|
71
|
+
it('replaces nesting deeper than 32 levels with null', () => {
|
|
72
|
+
let deep = { token: 'leak' };
|
|
73
|
+
for (let i = 0; i < 40; i += 1)
|
|
74
|
+
deep = { child: deep };
|
|
75
|
+
const out = JSON.stringify((0, body_redaction_1.redactCapturedBody)(deep, body_redaction_1.CapturedBodySide.REQUEST));
|
|
76
|
+
expect(out).not.toContain('leak');
|
|
77
|
+
});
|
|
78
|
+
it('keeps a JSON-parsed __proto__ key as an own property instead of letting it vanish', () => {
|
|
79
|
+
const body = JSON.parse('{"__proto__":{"isAdmin":true},"email":"a@b.c"}');
|
|
80
|
+
const out = (0, body_redaction_1.redactCapturedBody)(body, body_redaction_1.CapturedBodySide.REQUEST);
|
|
81
|
+
expect(Object.keys(out)).toEqual(['__proto__', 'email']);
|
|
82
|
+
expect(JSON.stringify(out)).toContain('"__proto__"');
|
|
83
|
+
expect(Object.getPrototypeOf(out)).toBe(Object.prototype);
|
|
84
|
+
});
|
|
85
|
+
it('still drops a credential key nested under a __proto__ own property', () => {
|
|
86
|
+
const body = JSON.parse('{"__proto__":{"token":"leak","id":1}}');
|
|
87
|
+
const out = (0, body_redaction_1.redactCapturedBody)(body, body_redaction_1.CapturedBodySide.REQUEST);
|
|
88
|
+
expect(JSON.stringify(out)).not.toContain('leak');
|
|
89
|
+
expect(JSON.stringify(out)).toContain('"id":1');
|
|
90
|
+
});
|
|
91
|
+
it('does not pollute the global Object prototype', () => {
|
|
92
|
+
(0, body_redaction_1.redactCapturedBody)(JSON.parse('{"__proto__":{"isAdmin":true},"email":"a@b.c"}'), body_redaction_1.CapturedBodySide.REQUEST);
|
|
93
|
+
(0, body_redaction_1.redactCapturedBody)(JSON.parse('{"__proto__":{"token":"leak","id":1}}'), body_redaction_1.CapturedBodySide.REQUEST);
|
|
94
|
+
expect({}.isAdmin).toBeUndefined();
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
describe('isCredentialBodyKey', () => {
|
|
98
|
+
it('matches suffixes after normalization', () => {
|
|
99
|
+
expect((0, body_redaction_1.isCredentialBodyKey)('secretPublishToken', body_redaction_1.CapturedBodySide.RESPONSE)).toBe(true);
|
|
100
|
+
expect((0, body_redaction_1.isCredentialBodyKey)('personal_api_key', body_redaction_1.CapturedBodySide.RESPONSE)).toBe(true);
|
|
101
|
+
expect((0, body_redaction_1.isCredentialBodyKey)('description', body_redaction_1.CapturedBodySide.RESPONSE)).toBe(false);
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
//# sourceMappingURL=body-redaction.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"body-redaction.test.js","sourceRoot":"","sources":["../../src/__tests__/body-redaction.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,9 @@ describe('shouldCaptureHeader', () => {
|
|
|
21
21
|
expect((0, header_pattern_1.shouldCaptureHeader)('Authorization', ['authorization'])).toBe(false);
|
|
22
22
|
expect((0, header_pattern_1.shouldCaptureHeader)('Cookie', ['cookie'])).toBe(false);
|
|
23
23
|
});
|
|
24
|
+
it('returns false for the mesh admin token even if allowlisted by wildcard', () => {
|
|
25
|
+
expect((0, header_pattern_1.shouldCaptureHeader)('abyss-admin-token', ['abyss-*'])).toBe(false);
|
|
26
|
+
});
|
|
24
27
|
it('returns false when not in allowlist', () => {
|
|
25
28
|
expect((0, header_pattern_1.shouldCaptureHeader)('X-Custom', ['content-type'])).toBe(false);
|
|
26
29
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header-pattern.test.js","sourceRoot":"","sources":["../../src/__tests__/header-pattern.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"header-pattern.test.js","sourceRoot":"","sources":["../../src/__tests__/header-pattern.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
require("reflect-metadata");
|
|
13
|
+
const decorators_1 = require("../frameworks/express/decorators");
|
|
14
|
+
function RejectingInnerDecorator() {
|
|
15
|
+
return function (_target, _propertyKey, descriptor) {
|
|
16
|
+
descriptor.value = function (...args) {
|
|
17
|
+
const res = args[1];
|
|
18
|
+
res.status(403).json({ message: 'forbidden' });
|
|
19
|
+
return undefined;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function fakeRes() {
|
|
24
|
+
return {
|
|
25
|
+
locals: {},
|
|
26
|
+
status: jest.fn().mockReturnThis(),
|
|
27
|
+
json: jest.fn().mockReturnThis(),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
describe('Route decorators — shouldNotSaveRequestBody / shouldNotSaveResponseBody', () => {
|
|
31
|
+
it('sets shouldNotSaveRequestBody on res.locals even when an inner decorator rejects before the handler runs', () => {
|
|
32
|
+
const handler = jest.fn();
|
|
33
|
+
class Ctrl {
|
|
34
|
+
create(_req, res, _next) {
|
|
35
|
+
handler();
|
|
36
|
+
res.status(200).json({ ok: true });
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, decorators_1.Post)({ path: '/', shouldNotSaveRequestBody: true }),
|
|
41
|
+
RejectingInnerDecorator(),
|
|
42
|
+
__metadata("design:type", Function),
|
|
43
|
+
__metadata("design:paramtypes", [Object, Object, Object]),
|
|
44
|
+
__metadata("design:returntype", void 0)
|
|
45
|
+
], Ctrl.prototype, "create", null);
|
|
46
|
+
const ctrl = new Ctrl();
|
|
47
|
+
const res = fakeRes();
|
|
48
|
+
ctrl.create({}, res, jest.fn());
|
|
49
|
+
expect(res.locals.shouldNotSaveRequestBody).toBe(true);
|
|
50
|
+
expect(handler).not.toHaveBeenCalled();
|
|
51
|
+
});
|
|
52
|
+
it('sets shouldNotSaveResponseBody on res.locals for a normal (non-rejected) handler', () => {
|
|
53
|
+
const handler = jest.fn();
|
|
54
|
+
class Ctrl {
|
|
55
|
+
value(_req, res, _next) {
|
|
56
|
+
handler();
|
|
57
|
+
res.status(200).json({ ok: true });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
__decorate([
|
|
61
|
+
(0, decorators_1.Get)({ path: '/:id/value', shouldNotSaveResponseBody: true }),
|
|
62
|
+
__metadata("design:type", Function),
|
|
63
|
+
__metadata("design:paramtypes", [Object, Object, Object]),
|
|
64
|
+
__metadata("design:returntype", void 0)
|
|
65
|
+
], Ctrl.prototype, "value", null);
|
|
66
|
+
const ctrl = new Ctrl();
|
|
67
|
+
const res = fakeRes();
|
|
68
|
+
ctrl.value({}, res, jest.fn());
|
|
69
|
+
expect(res.locals.shouldNotSaveResponseBody).toBe(true);
|
|
70
|
+
expect(handler).toHaveBeenCalled();
|
|
71
|
+
});
|
|
72
|
+
it('leaves both flags falsy when the route declares neither option', () => {
|
|
73
|
+
class Ctrl {
|
|
74
|
+
create(_req, res, _next) {
|
|
75
|
+
res.status(200).json({ ok: true });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
__decorate([
|
|
79
|
+
(0, decorators_1.Post)({ path: '/' }),
|
|
80
|
+
__metadata("design:type", Function),
|
|
81
|
+
__metadata("design:paramtypes", [Object, Object, Object]),
|
|
82
|
+
__metadata("design:returntype", void 0)
|
|
83
|
+
], Ctrl.prototype, "create", null);
|
|
84
|
+
const ctrl = new Ctrl();
|
|
85
|
+
const res = fakeRes();
|
|
86
|
+
ctrl.create({}, res, jest.fn());
|
|
87
|
+
expect(res.locals.shouldNotSaveRequestBody).not.toBe(true);
|
|
88
|
+
expect(res.locals.shouldNotSaveResponseBody).not.toBe(true);
|
|
89
|
+
});
|
|
90
|
+
it('never clobbers a flag an earlier layer already set, even when the route has no option', () => {
|
|
91
|
+
const observed = [];
|
|
92
|
+
class Ctrl {
|
|
93
|
+
create(_req, res, _next) {
|
|
94
|
+
observed.push({
|
|
95
|
+
requestBody: res.locals.shouldNotSaveRequestBody,
|
|
96
|
+
responseBody: res.locals.shouldNotSaveResponseBody,
|
|
97
|
+
});
|
|
98
|
+
res.status(200).json({ ok: true });
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
__decorate([
|
|
102
|
+
(0, decorators_1.Post)({ path: '/' }),
|
|
103
|
+
__metadata("design:type", Function),
|
|
104
|
+
__metadata("design:paramtypes", [Object, Object, Object]),
|
|
105
|
+
__metadata("design:returntype", void 0)
|
|
106
|
+
], Ctrl.prototype, "create", null);
|
|
107
|
+
const ctrl = new Ctrl();
|
|
108
|
+
const res = fakeRes();
|
|
109
|
+
res.locals.shouldNotSaveRequestBody = true;
|
|
110
|
+
res.locals.shouldNotSaveResponseBody = true;
|
|
111
|
+
ctrl.create({}, res, jest.fn());
|
|
112
|
+
expect(observed).toEqual([{ requestBody: true, responseBody: true }]);
|
|
113
|
+
expect(res.locals.shouldNotSaveRequestBody).toBe(true);
|
|
114
|
+
expect(res.locals.shouldNotSaveResponseBody).toBe(true);
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
//# sourceMappingURL=route-decorator-body-flags.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-decorator-body-flags.test.js","sourceRoot":"","sources":["../../src/__tests__/route-decorator-body-flags.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
require("reflect-metadata");
|
|
13
|
+
const events_1 = require("events");
|
|
14
|
+
const index_1 = require("../frameworks/express/index");
|
|
15
|
+
const decorators_1 = require("../frameworks/express/decorators");
|
|
16
|
+
class RejectingMiddleware {
|
|
17
|
+
run(_req, res, _next) {
|
|
18
|
+
res.status(403).json({ message: 'forbidden' });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function fakeApp() {
|
|
22
|
+
return { set: jest.fn(), use: jest.fn() };
|
|
23
|
+
}
|
|
24
|
+
function fakeRouter() {
|
|
25
|
+
const registry = new Map();
|
|
26
|
+
const router = {
|
|
27
|
+
get(path, ...handlers) {
|
|
28
|
+
registry.set(`GET ${path}`, handlers);
|
|
29
|
+
},
|
|
30
|
+
post(path, ...handlers) {
|
|
31
|
+
registry.set(`POST ${path}`, handlers);
|
|
32
|
+
},
|
|
33
|
+
put(path, ...handlers) {
|
|
34
|
+
registry.set(`PUT ${path}`, handlers);
|
|
35
|
+
},
|
|
36
|
+
patch(path, ...handlers) {
|
|
37
|
+
registry.set(`PATCH ${path}`, handlers);
|
|
38
|
+
},
|
|
39
|
+
delete(path, ...handlers) {
|
|
40
|
+
registry.set(`DELETE ${path}`, handlers);
|
|
41
|
+
},
|
|
42
|
+
use(..._args) {
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
return { router, registry };
|
|
46
|
+
}
|
|
47
|
+
function fakeReq() {
|
|
48
|
+
return { headers: {}, params: {}, query: {} };
|
|
49
|
+
}
|
|
50
|
+
function fakeRes() {
|
|
51
|
+
const res = Object.assign(new events_1.EventEmitter(), {
|
|
52
|
+
locals: {},
|
|
53
|
+
statusCode: 200,
|
|
54
|
+
status(code) {
|
|
55
|
+
res.statusCode = code;
|
|
56
|
+
return res;
|
|
57
|
+
},
|
|
58
|
+
json(body) {
|
|
59
|
+
res.body = body;
|
|
60
|
+
res.emit('close');
|
|
61
|
+
return res;
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
return res;
|
|
65
|
+
}
|
|
66
|
+
function runChain(handlers, req, res) {
|
|
67
|
+
let index = 0;
|
|
68
|
+
const next = (err) => {
|
|
69
|
+
if (err)
|
|
70
|
+
throw err;
|
|
71
|
+
const handler = handlers[index++];
|
|
72
|
+
if (handler)
|
|
73
|
+
handler(req, res, next);
|
|
74
|
+
};
|
|
75
|
+
next();
|
|
76
|
+
}
|
|
77
|
+
describe('controllerLoader — route flags survive a rejecting controller middleware', () => {
|
|
78
|
+
it('sets shouldNotSaveRequestBody on res.locals when a controller middleware rejects before the handler runs', async () => {
|
|
79
|
+
let Ctrl = class Ctrl {
|
|
80
|
+
create(_req, res) {
|
|
81
|
+
res.status(200).json({ ok: true });
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
__decorate([
|
|
85
|
+
(0, decorators_1.Post)({ path: '/', shouldNotSaveRequestBody: true }),
|
|
86
|
+
__metadata("design:type", Function),
|
|
87
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
88
|
+
__metadata("design:returntype", void 0)
|
|
89
|
+
], Ctrl.prototype, "create", null);
|
|
90
|
+
Ctrl = __decorate([
|
|
91
|
+
(0, decorators_1.Controller)({ prefixPath: '/x', middlewares: [RejectingMiddleware] })
|
|
92
|
+
], Ctrl);
|
|
93
|
+
const { router, registry } = fakeRouter();
|
|
94
|
+
await (0, index_1.controllerLoader)(fakeApp(), {
|
|
95
|
+
prefix: '/api',
|
|
96
|
+
middlewares: [RejectingMiddleware],
|
|
97
|
+
controllers: [Ctrl],
|
|
98
|
+
router: () => router,
|
|
99
|
+
});
|
|
100
|
+
const chain = registry.get('POST /');
|
|
101
|
+
expect(chain).toBeDefined();
|
|
102
|
+
const req = fakeReq();
|
|
103
|
+
const res = fakeRes();
|
|
104
|
+
let observedAtClose;
|
|
105
|
+
res.on('close', () => {
|
|
106
|
+
observedAtClose = {
|
|
107
|
+
requestBody: res.locals.shouldNotSaveRequestBody,
|
|
108
|
+
responseBody: res.locals.shouldNotSaveResponseBody,
|
|
109
|
+
};
|
|
110
|
+
});
|
|
111
|
+
runChain(chain, req, res);
|
|
112
|
+
expect(res.statusCode).toBe(403);
|
|
113
|
+
expect(observedAtClose).toEqual({ requestBody: true, responseBody: undefined });
|
|
114
|
+
});
|
|
115
|
+
it('leaves the flag unset when the route declares no option, even under the same rejecting middleware', async () => {
|
|
116
|
+
let Ctrl = class Ctrl {
|
|
117
|
+
create(_req, res) {
|
|
118
|
+
res.status(200).json({ ok: true });
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
__decorate([
|
|
122
|
+
(0, decorators_1.Post)({ path: '/' }),
|
|
123
|
+
__metadata("design:type", Function),
|
|
124
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
125
|
+
__metadata("design:returntype", void 0)
|
|
126
|
+
], Ctrl.prototype, "create", null);
|
|
127
|
+
Ctrl = __decorate([
|
|
128
|
+
(0, decorators_1.Controller)({ prefixPath: '/x', middlewares: [RejectingMiddleware] })
|
|
129
|
+
], Ctrl);
|
|
130
|
+
const { router, registry } = fakeRouter();
|
|
131
|
+
await (0, index_1.controllerLoader)(fakeApp(), {
|
|
132
|
+
prefix: '/api',
|
|
133
|
+
middlewares: [RejectingMiddleware],
|
|
134
|
+
controllers: [Ctrl],
|
|
135
|
+
router: () => router,
|
|
136
|
+
});
|
|
137
|
+
const chain = registry.get('POST /');
|
|
138
|
+
expect(chain).toBeDefined();
|
|
139
|
+
const req = fakeReq();
|
|
140
|
+
const res = fakeRes();
|
|
141
|
+
let observedAtClose;
|
|
142
|
+
res.on('close', () => {
|
|
143
|
+
observedAtClose = {
|
|
144
|
+
requestBody: res.locals.shouldNotSaveRequestBody,
|
|
145
|
+
responseBody: res.locals.shouldNotSaveResponseBody,
|
|
146
|
+
};
|
|
147
|
+
});
|
|
148
|
+
runChain(chain, req, res);
|
|
149
|
+
expect(res.statusCode).toBe(403);
|
|
150
|
+
expect(observedAtClose).toEqual({ requestBody: undefined, responseBody: undefined });
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
//# sourceMappingURL=route-flags-loader.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-flags-loader.test.js","sourceRoot":"","sources":["../../src/__tests__/route-flags-loader.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const http_1 = require("http");
|
|
4
|
+
const index_1 = require("../index");
|
|
5
|
+
describe('APPLICATION_SENTINEL_HEADER_MASK', () => {
|
|
6
|
+
it('is exported from the package root barrel', () => {
|
|
7
|
+
expect(typeof index_1.APPLICATION_SENTINEL_HEADER_MASK).toBe('string');
|
|
8
|
+
expect(index_1.APPLICATION_SENTINEL_HEADER_MASK.length).toBeGreaterThan(0);
|
|
9
|
+
});
|
|
10
|
+
it('can never be a real HTTP header value', () => {
|
|
11
|
+
expect(() => (0, http_1.validateHeaderValue)('X-Probe', index_1.APPLICATION_SENTINEL_HEADER_MASK)).toThrow();
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=sentinel-header-mask.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sentinel-header-mask.test.js","sourceRoot":"","sources":["../../src/__tests__/sentinel-header-mask.test.ts"],"names":[],"mappings":";;AAAA,+BAA2C;AAC3C,oCAA4D;AAE5D,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,OAAO,wCAAgC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,CAAC,wCAAgC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAIH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,0BAAmB,EAAC,SAAS,EAAE,wCAAgC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -21,6 +21,12 @@ function Route(options) {
|
|
|
21
21
|
descriptor.value = function (...args) {
|
|
22
22
|
args[1].locals.shouldNotPublishLog =
|
|
23
23
|
typeof options === 'string' ? false : options.shouldNotPublishLog;
|
|
24
|
+
if (typeof options !== 'string' && options.shouldNotSaveRequestBody) {
|
|
25
|
+
args[1].locals.shouldNotSaveRequestBody = true;
|
|
26
|
+
}
|
|
27
|
+
if (typeof options !== 'string' && options.shouldNotSaveResponseBody) {
|
|
28
|
+
args[1].locals.shouldNotSaveResponseBody = true;
|
|
29
|
+
}
|
|
24
30
|
return originalMethod.apply(target, args);
|
|
25
31
|
};
|
|
26
32
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/frameworks/express/decorators.ts"],"names":[],"mappings":";;;;;;AACA,uCAAwD;AACxD,wBAWW;AACX,oEAA0C;AAE1C,uCAAuC;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/frameworks/express/decorators.ts"],"names":[],"mappings":";;;;;;AACA,uCAAwD;AACxD,wBAWW;AACX,oEAA0C;AAE1C,uCAAuC;AAuDvC,SAAS,KAAK,CAAC,OAAyB;IACtC,OAAO,UAAU,MAAW,EAAE,WAA4B,EAAE,UAA8B;QACxF,OAAO,CAAC,cAAc,CAAC,kBAAe,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACnE,OAAO,CAAC,cAAc,CAAC,iBAAc,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC1E,OAAO,CAAC,cAAc,CAAC,mBAAgB,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC9E,OAAO,CAAC,cAAc,CAAC,oBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACxE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,cAAc,CAAC,iBAAc,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QACxC,UAAU,CAAC,KAAK,GAAG,UACjB,GAAG,IAAgE;YAEnE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB;gBAChC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;YAEpE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,wBAAwB,EAAE,CAAC;gBACpE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,GAAG,IAAI,CAAC;YACjD,CAAC;YACD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,yBAAyB,EAAE,CAAC;gBACrE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,GAAG,IAAI,CAAC;YAClD,CAAC;YAED,OAAO,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,GAAG,CAAC,OAAwC,EAAE,IAAW;IACvE,OAAO,KAAK,CAAC;QACX,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9D,IAAI;QACJ,MAAM,EAAE,iBAAS,CAAC,GAAG;KACtB,CAAC,CAAC;AACL,CAAC;AAND,kBAMC;AACD,SAAgB,IAAI,CAAC,OAAwC,EAAE,IAAW;IACxE,OAAO,KAAK,CAAC;QACX,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9D,IAAI;QACJ,MAAM,EAAE,iBAAS,CAAC,IAAI;KACvB,CAAC,CAAC;AACL,CAAC;AAND,oBAMC;AACD,SAAgB,GAAG,CAAC,OAAwC,EAAE,IAAW;IACvE,OAAO,KAAK,CAAC;QACX,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9D,IAAI;QACJ,MAAM,EAAE,iBAAS,CAAC,GAAG;KACtB,CAAC,CAAC;AACL,CAAC;AAND,kBAMC;AACD,SAAgB,MAAM,CAAC,OAAwC,EAAE,IAAW;IAC1E,OAAO,KAAK,CAAC;QACX,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9D,IAAI;QACJ,MAAM,EAAE,iBAAS,CAAC,MAAM;KACzB,CAAC,CAAC;AACL,CAAC;AAND,wBAMC;AACD,SAAgB,KAAK,CAAC,OAAwC,EAAE,IAAW;IACzE,OAAO,KAAK,CAAC;QACX,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9D,IAAI;QACJ,MAAM,EAAE,iBAAS,CAAC,KAAK;KACxB,CAAC,CAAC;AACL,CAAC;AAND,sBAMC;AAED,SAAgB,UAAU,CACxB,OAMU;IAEV,MAAM,WAAW,GAAG,GAAG,CAAC;IAExB,OAAO,UAAU,MAAW;QAC1B,OAAO,CAAC,cAAc,CAAC,uBAAoB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3D,OAAO,CAAC,cAAc,CACpB,mBAAgB,EAChB,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,EACjE,MAAM,CACP,CAAC;QACF,OAAO,CAAC,cAAc,CACpB,iBAAc,EACd,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,WAAW,EAC3E,MAAM,CACP,CAAC;QAEF,MAAM,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,4BAAyB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QACzF,OAAO,CAAC,cAAc,CACpB,4BAAyB,EACzB,CAAC,OAAO,OAAO,KAAK,QAAQ;YAC1B,CAAC,CAAC,mBAAmB;YACrB,CAAC,CAAC;gBACE,GAAG,mBAAmB;gBACtB,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aACrE,CAAC,IAAI,mBAAmB,EAC7B,MAAM,CACP,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AApCD,gCAoCC;AACD,SAAgB,UAAU;IACxB,OAAO,UAAU,MAAW;QAC1B,OAAO,CAAC,cAAc,CAAC,uBAAoB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAJD,gCAIC;AAED,SAAgB,WAAW,CAAC,WAAyB;IACnD,OAAO,UAAU,MAAW,EAAE,WAA4B;QACxD,MAAM,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,4BAAyB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QACzF,OAAO,CAAC,cAAc,CACpB,4BAAyB,EACzB,CAAC,GAAG,mBAAmB,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EACtF,MAAM,EACN,WAAW,CACZ,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAVD,kCAUC;AAED,SAAgB,IAAI,CAAC,MAAkB,EAAE,OAA2B;IAClE,OAAO,UAAU,MAAW,EAAE,WAA4B,EAAE,UAA8B;QACxF,MAAM,YAAY,GAAS,OAAO,CAAC,WAAW,CAAC,iBAAc,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;QAC1F,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YACvB,YAAY,CAAC,IAAI,GAAG,EAAE,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,wBAAwB,EAAE,CAAC;YACvC,YAAY,CAAC,IAAI,CAAC,OAAO,GAAG,IAAA,wBAAY,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC;QAC3D,CAAC;QACD,OAAO,CAAC,cAAc,CAAC,iBAAc,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAE1E,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QACxC,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAkD;YAChF,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAEzF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,MAAM,CAAC,KAAK,CAAC;YACrB,CAAC;YAED,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;YAE5B,OAAO,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAxBD,oBAwBC;AAED,SAAgB,MAAM,CAAC,MAAkB,EAAE,OAA2B;IACpE,OAAO,UAAU,MAAW,EAAE,WAA4B,EAAE,UAA8B;QACxF,MAAM,YAAY,GAAS,OAAO,CAAC,WAAW,CAAC,iBAAc,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;QAC1F,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YACzB,YAAY,CAAC,MAAM,GAAG,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,wBAAwB,EAAE,CAAC;YACvC,YAAY,CAAC,MAAM,CAAC,OAAO,GAAG,IAAA,wBAAY,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC;QAC7D,CAAC;QACD,OAAO,CAAC,cAAc,CAAC,iBAAc,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAE1E,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QACxC,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAkD;YAChF,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAE3F,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,MAAM,CAAC,KAAK,CAAC;YACrB,CAAC;YAED,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;YAE9B,OAAO,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAxBD,wBAwBC;AAED,SAAgB,KAAK,CAAC,MAAkB,EAAE,OAA2B;IACnE,OAAO,UAAU,MAAW,EAAE,WAA4B,EAAE,UAA8B;QACxF,MAAM,YAAY,GAAS,OAAO,CAAC,WAAW,CAAC,iBAAc,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;QAC1F,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YACxB,YAAY,CAAC,KAAK,GAAG,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,wBAAwB,EAAE,CAAC;YACvC,YAAY,CAAC,KAAK,CAAC,OAAO,GAAG,IAAA,wBAAY,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC;QAC5D,CAAC;QACD,OAAO,CAAC,cAAc,CAAC,iBAAc,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAE1E,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QACxC,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAkD;YAChF,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAE1F,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,MAAM,CAAC,KAAK,CAAC;YACrB,CAAC;YAED,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAE7B,OAAO,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAxBD,sBAwBC;AAsBD,SAAgB,QAAQ;IACtB,OAAO,UAAU,MAAW,EAAE,WAA4B;QAExD,OAAO,CAAC,cAAc,CAAC,qBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC,CAAC;AACJ,CAAC;AALD,4BAKC"}
|
|
@@ -111,29 +111,30 @@ const controllerLoader = async (app, options) => {
|
|
|
111
111
|
? [(0, rate_limit_1.createRouteRateLimiter)(rlOpts, options.rateLimit)]
|
|
112
112
|
: [];
|
|
113
113
|
const routerToUse = routeOptions.shouldSkipController ? mainRouter : router;
|
|
114
|
+
const routeFlagsMw = setRouteFlagsMiddleware(routeOptions);
|
|
114
115
|
switch (apiMethod) {
|
|
115
116
|
case types_1.APIMethod.DELETE:
|
|
116
|
-
routerToUse.delete(path, ...(routeOptions.shouldSkipController
|
|
117
|
+
routerToUse.delete(path, routeFlagsMw, ...(routeOptions.shouldSkipController
|
|
117
118
|
? []
|
|
118
119
|
: middlewaresToUseOnController.map((middleware) => middleware.run)), setLocalsMiddleware(controller, options, fullPath, null, undefined, method), ...middlewaresToUseOnRoute.map((middleware) => middleware.run), ...rateLimitMw, instance[method]);
|
|
119
120
|
break;
|
|
120
121
|
case types_1.APIMethod.GET:
|
|
121
|
-
routerToUse.get(path, ...(routeOptions.shouldSkipController
|
|
122
|
+
routerToUse.get(path, routeFlagsMw, ...(routeOptions.shouldSkipController
|
|
122
123
|
? []
|
|
123
124
|
: middlewaresToUseOnController.map((middleware) => middleware.run)), setLocalsMiddleware(controller, options, fullPath, null, undefined, method), ...middlewaresToUseOnRoute.map((middleware) => middleware.run), ...rateLimitMw, instance[method]);
|
|
124
125
|
break;
|
|
125
126
|
case types_1.APIMethod.POST:
|
|
126
|
-
routerToUse.post(path, ...(routeOptions.shouldSkipController
|
|
127
|
+
routerToUse.post(path, routeFlagsMw, ...(routeOptions.shouldSkipController
|
|
127
128
|
? []
|
|
128
129
|
: middlewaresToUseOnController.map((middleware) => middleware.run)), setLocalsMiddleware(controller, options, fullPath, null, undefined, method), ...middlewaresToUseOnRoute.map((middleware) => middleware.run), ...rateLimitMw, instance[method]);
|
|
129
130
|
break;
|
|
130
131
|
case types_1.APIMethod.PUT:
|
|
131
|
-
routerToUse.put(path, ...(routeOptions.shouldSkipController
|
|
132
|
+
routerToUse.put(path, routeFlagsMw, ...(routeOptions.shouldSkipController
|
|
132
133
|
? []
|
|
133
134
|
: middlewaresToUseOnController.map((middleware) => middleware.run)), setLocalsMiddleware(controller, options, fullPath, null, undefined, method), ...middlewaresToUseOnRoute.map((middleware) => middleware.run), ...rateLimitMw, instance[method]);
|
|
134
135
|
break;
|
|
135
136
|
case types_1.APIMethod.PATCH:
|
|
136
|
-
routerToUse.patch(path, ...(routeOptions.shouldSkipController
|
|
137
|
+
routerToUse.patch(path, routeFlagsMw, ...(routeOptions.shouldSkipController
|
|
137
138
|
? []
|
|
138
139
|
: middlewaresToUseOnController.map((middleware) => middleware.run)), setLocalsMiddleware(controller, options, fullPath, null, undefined, method), ...middlewaresToUseOnRoute.map((middleware) => middleware.run), ...rateLimitMw, instance[method]);
|
|
139
140
|
break;
|
|
@@ -176,4 +177,13 @@ const setLocalsMiddleware = (controller, options = { prefix: '/' }, controllerPr
|
|
|
176
177
|
res.locals.path = `${options.prefix}${controllerPrefix}${path !== null ? path || req.path : ''}`;
|
|
177
178
|
next();
|
|
178
179
|
};
|
|
180
|
+
const setRouteFlagsMiddleware = (routeOptions) => (_req, res, next) => {
|
|
181
|
+
if (routeOptions.shouldNotSaveRequestBody) {
|
|
182
|
+
res.locals.shouldNotSaveRequestBody = true;
|
|
183
|
+
}
|
|
184
|
+
if (routeOptions.shouldNotSaveResponseBody) {
|
|
185
|
+
res.locals.shouldNotSaveResponseBody = true;
|
|
186
|
+
}
|
|
187
|
+
next();
|
|
188
|
+
};
|
|
179
189
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/frameworks/express/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/frameworks/express/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ const context_middleware_1 = require("./context.middleware");
|
|
|
6
6
|
const types_1 = require("../types");
|
|
7
7
|
const import_utils_1 = require("../utils/import.utils");
|
|
8
8
|
const header_pattern_1 = require("../utils/header-pattern");
|
|
9
|
+
const body_redaction_1 = require("../utils/body-redaction");
|
|
9
10
|
const node_require_1 = require("../utils/node-require");
|
|
10
11
|
let netModule;
|
|
11
12
|
const getNet = () => {
|
|
@@ -53,17 +54,17 @@ const loggerEndpointMiddleware = async (logger, req, res, next, callback, option
|
|
|
53
54
|
endpoint: res.locals.path || req.route?.path || req.path,
|
|
54
55
|
controller: res.locals.controller || 'Unknown Controller',
|
|
55
56
|
method: types_1.APIMethod[req.method.toUpperCase()],
|
|
56
|
-
requestParams: req.params,
|
|
57
|
-
requestQuery: req.query,
|
|
57
|
+
requestParams: (0, body_redaction_1.redactCapturedBody)(req.params, body_redaction_1.CapturedBodySide.REQUEST),
|
|
58
|
+
requestQuery: (0, body_redaction_1.redactCapturedBody)(req.query, body_redaction_1.CapturedBodySide.REQUEST),
|
|
58
59
|
requestBody: res.locals.shouldNotSaveRequestBody
|
|
59
60
|
? null
|
|
60
61
|
: req.body
|
|
61
|
-
? JSON.parse(JSON.stringify(req.body))
|
|
62
|
+
? (0, body_redaction_1.redactCapturedBody)(JSON.parse(JSON.stringify(req.body)), body_redaction_1.CapturedBodySide.REQUEST)
|
|
62
63
|
: null,
|
|
63
64
|
responseBody: res.locals.shouldNotSaveResponseBody
|
|
64
65
|
? null
|
|
65
66
|
: res.locals.responseBody
|
|
66
|
-
? JSON.parse(JSON.stringify(res.locals.responseBody))
|
|
67
|
+
? (0, body_redaction_1.redactCapturedBody)(JSON.parse(JSON.stringify(res.locals.responseBody)), body_redaction_1.CapturedBodySide.RESPONSE)
|
|
67
68
|
: null,
|
|
68
69
|
requestHeaders,
|
|
69
70
|
responseHeaders,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger-endpoint.middleware.js","sourceRoot":"","sources":["../../src/middlewares/logger-endpoint.middleware.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"logger-endpoint.middleware.js","sourceRoot":"","sources":["../../src/middlewares/logger-endpoint.middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApplicationSentinelCheckStatus = void 0;
|
|
4
|
+
var ApplicationSentinelCheckStatus;
|
|
5
|
+
(function (ApplicationSentinelCheckStatus) {
|
|
6
|
+
ApplicationSentinelCheckStatus["SUCCESS"] = "SUCCESS";
|
|
7
|
+
ApplicationSentinelCheckStatus["FAILED"] = "FAILED";
|
|
8
|
+
ApplicationSentinelCheckStatus["NOT_RUN"] = "NOT_RUN";
|
|
9
|
+
})(ApplicationSentinelCheckStatus || (exports.ApplicationSentinelCheckStatus = ApplicationSentinelCheckStatus = {}));
|
|
10
|
+
//# sourceMappingURL=application-sentinel-check-status.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-sentinel-check-status.enum.js","sourceRoot":"","sources":["../../../src/types/enum/application-sentinel-check-status.enum.ts"],"names":[],"mappings":";;;AAOA,IAAY,8BASX;AATD,WAAY,8BAA8B;IACxC,qDAAmB,CAAA;IACnB,mDAAiB,CAAA;IAMjB,qDAAmB,CAAA;AACrB,CAAC,EATW,8BAA8B,8CAA9B,8BAA8B,QASzC"}
|
package/dist/types/enum/index.js
CHANGED
|
@@ -22,4 +22,5 @@ __exportStar(require("./log-level.enum"), exports);
|
|
|
22
22
|
__exportStar(require("./log-scenario.enum"), exports);
|
|
23
23
|
__exportStar(require("./application-webhook-scope.enum"), exports);
|
|
24
24
|
__exportStar(require("./application-sentinel-type.enum"), exports);
|
|
25
|
+
__exportStar(require("./application-sentinel-check-status.enum"), exports);
|
|
25
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/enum/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,oDAAkC;AAClC,gEAA8C;AAC9C,gEAA8C;AAC9C,mDAAiC;AACjC,sDAAoC;AACpC,mEAAiD;AACjD,mEAAiD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/enum/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,oDAAkC;AAClC,gEAA8C;AAC9C,gEAA8C;AAC9C,mDAAiC;AACjC,sDAAoC;AACpC,mEAAiD;AACjD,mEAAiD;AACjD,2EAAyD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { QueryPaginate } from '..';
|
|
2
2
|
import { ApplicationSentinelConfigurationDto } from '../../dto';
|
|
3
|
+
import { ApplicationSentinelCheckStatus } from '../../../enum';
|
|
3
4
|
export interface IGetApplicationSentinelParams {
|
|
4
5
|
applicationId: string;
|
|
5
6
|
applicationSentinelId: string;
|
|
@@ -52,6 +53,7 @@ export type IPaginateHistoryApplicationSentinelQuery = {
|
|
|
52
53
|
minLatency?: number;
|
|
53
54
|
maxLatency?: number;
|
|
54
55
|
hasFailed?: boolean;
|
|
56
|
+
status?: ApplicationSentinelCheckStatus;
|
|
55
57
|
} & QueryPaginate;
|
|
56
58
|
export interface IDeleteApplicationSentinelParams {
|
|
57
59
|
applicationId: string;
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { ApplicationSentinelType } from '../../enum/application-sentinel-type.enum';
|
|
2
2
|
import { APIMethod } from '../../enum';
|
|
3
3
|
export declare const MAX_APPLICATION_SENTINEL_RETRY_COUNT = 5;
|
|
4
|
+
export declare const APPLICATION_SENTINEL_HEADER_MASK = "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022";
|
|
5
|
+
export type ApplicationSentinelLatencyPolicy = {
|
|
6
|
+
max: number;
|
|
7
|
+
min?: number | null;
|
|
8
|
+
};
|
|
4
9
|
export type ApplicationSentinelConfigurationDto = ApplicationSentinelConfigurationPing | ApplicationSentinelConfigurationHttp | ApplicationSentinelConfigurationTcp;
|
|
5
10
|
export type ApplicationSentinelConfigurationPing = {
|
|
6
11
|
type: ApplicationSentinelType.PING;
|
|
7
12
|
host: string;
|
|
8
13
|
successPolicy: {
|
|
9
|
-
latency:
|
|
10
|
-
min: number;
|
|
11
|
-
max: number;
|
|
12
|
-
};
|
|
14
|
+
latency: ApplicationSentinelLatencyPolicy;
|
|
13
15
|
};
|
|
14
16
|
};
|
|
15
17
|
export type ApplicationSentinelConfigurationHttp = {
|
|
@@ -22,10 +24,7 @@ export type ApplicationSentinelConfigurationHttp = {
|
|
|
22
24
|
};
|
|
23
25
|
headers: Record<string, string>;
|
|
24
26
|
successPolicy: {
|
|
25
|
-
latency:
|
|
26
|
-
min: number;
|
|
27
|
-
max: number;
|
|
28
|
-
};
|
|
27
|
+
latency: ApplicationSentinelLatencyPolicy;
|
|
29
28
|
statusCodes?: number[];
|
|
30
29
|
bodyAssertion?: {
|
|
31
30
|
enabled: boolean;
|
|
@@ -39,15 +38,13 @@ export type ApplicationSentinelConfigurationTcp = {
|
|
|
39
38
|
host: string;
|
|
40
39
|
port: number;
|
|
41
40
|
successPolicy: {
|
|
42
|
-
latency:
|
|
43
|
-
min: number;
|
|
44
|
-
max: number;
|
|
45
|
-
};
|
|
41
|
+
latency: ApplicationSentinelLatencyPolicy;
|
|
46
42
|
};
|
|
47
43
|
};
|
|
48
44
|
export type ApplicationSentinelResult = {
|
|
49
45
|
isSuccess: boolean;
|
|
50
46
|
latency: number;
|
|
47
|
+
totalDurationMs?: number;
|
|
51
48
|
retryCount: number;
|
|
52
49
|
metadata: Record<string, string> | null;
|
|
53
50
|
errorMessage: string | null;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MAX_APPLICATION_SENTINEL_RETRY_COUNT = void 0;
|
|
3
|
+
exports.APPLICATION_SENTINEL_HEADER_MASK = exports.MAX_APPLICATION_SENTINEL_RETRY_COUNT = void 0;
|
|
4
4
|
exports.MAX_APPLICATION_SENTINEL_RETRY_COUNT = 5;
|
|
5
|
+
exports.APPLICATION_SENTINEL_HEADER_MASK = '••••••••';
|
|
5
6
|
//# sourceMappingURL=application-sentinel-configuration.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-sentinel-configuration.dto.js","sourceRoot":"","sources":["../../../../src/types/interface/dto/application-sentinel-configuration.dto.ts"],"names":[],"mappings":";;;AAGa,QAAA,oCAAoC,GAAG,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"application-sentinel-configuration.dto.js","sourceRoot":"","sources":["../../../../src/types/interface/dto/application-sentinel-configuration.dto.ts"],"names":[],"mappings":";;;AAGa,QAAA,oCAAoC,GAAG,CAAC,CAAC;AAazC,QAAA,gCAAgC,GAAG,UAAU,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { ApplicationSentinelResult } from '../dto';
|
|
2
|
+
import { ApplicationSentinelCheckStatus } from '../../enum';
|
|
2
3
|
import { IApplicationSentinel } from './application-sentinel.model';
|
|
3
4
|
import { IApplicationWebhookHistory } from './application-webhook-history.model';
|
|
4
5
|
export interface IApplicationSentinelHistory {
|
|
5
6
|
id?: string;
|
|
6
7
|
applicationSentinelId: string;
|
|
7
8
|
startDate: Date;
|
|
9
|
+
status: ApplicationSentinelCheckStatus;
|
|
8
10
|
hasFailed: boolean;
|
|
9
11
|
latency: number | null;
|
|
10
12
|
webhookMetadata: Record<string, string>;
|
|
@@ -14,7 +14,8 @@ export interface IApplicationSentinel {
|
|
|
14
14
|
lastDownNotificationDate?: Date | null;
|
|
15
15
|
lastUpNotificationDate?: Date | null;
|
|
16
16
|
consecutiveFailures?: number;
|
|
17
|
-
|
|
17
|
+
enqueueFailures?: number;
|
|
18
|
+
nextNotificationAfter?: Date | null;
|
|
18
19
|
lastCheckedAt?: Date | null;
|
|
19
20
|
updatedAt?: Date;
|
|
20
21
|
createdAt?: Date;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare enum CapturedBodySide {
|
|
2
|
+
REQUEST = "REQUEST",
|
|
3
|
+
RESPONSE = "RESPONSE"
|
|
4
|
+
}
|
|
5
|
+
export declare const NEVER_CAPTURE_BODY_KEY_SUFFIXES: readonly string[];
|
|
6
|
+
export declare const NEVER_CAPTURE_BODY_KEYS: ReadonlySet<string>;
|
|
7
|
+
export declare const NEVER_CAPTURE_REQUEST_KEYS: ReadonlySet<string>;
|
|
8
|
+
export declare function isCredentialBodyKey(key: string, side: CapturedBodySide): boolean;
|
|
9
|
+
export declare function redactCapturedBody<T>(value: T, side: CapturedBodySide): T;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.redactCapturedBody = exports.isCredentialBodyKey = exports.NEVER_CAPTURE_REQUEST_KEYS = exports.NEVER_CAPTURE_BODY_KEYS = exports.NEVER_CAPTURE_BODY_KEY_SUFFIXES = exports.CapturedBodySide = void 0;
|
|
4
|
+
var CapturedBodySide;
|
|
5
|
+
(function (CapturedBodySide) {
|
|
6
|
+
CapturedBodySide["REQUEST"] = "REQUEST";
|
|
7
|
+
CapturedBodySide["RESPONSE"] = "RESPONSE";
|
|
8
|
+
})(CapturedBodySide || (exports.CapturedBodySide = CapturedBodySide = {}));
|
|
9
|
+
exports.NEVER_CAPTURE_BODY_KEY_SUFFIXES = [
|
|
10
|
+
'password',
|
|
11
|
+
'token',
|
|
12
|
+
'secret',
|
|
13
|
+
'apikey',
|
|
14
|
+
'tokenid',
|
|
15
|
+
];
|
|
16
|
+
exports.NEVER_CAPTURE_BODY_KEYS = new Set([
|
|
17
|
+
'sid',
|
|
18
|
+
'authorization',
|
|
19
|
+
'cookie',
|
|
20
|
+
]);
|
|
21
|
+
exports.NEVER_CAPTURE_REQUEST_KEYS = new Set(['code']);
|
|
22
|
+
const MAX_REDACTION_DEPTH = 32;
|
|
23
|
+
const normalizeKey = (key) => key.toLowerCase().replace(/[_-]/g, '');
|
|
24
|
+
function isCredentialBodyKey(key, side) {
|
|
25
|
+
const normalized = normalizeKey(key);
|
|
26
|
+
if (exports.NEVER_CAPTURE_BODY_KEYS.has(normalized))
|
|
27
|
+
return true;
|
|
28
|
+
if (side === CapturedBodySide.REQUEST && exports.NEVER_CAPTURE_REQUEST_KEYS.has(normalized))
|
|
29
|
+
return true;
|
|
30
|
+
return exports.NEVER_CAPTURE_BODY_KEY_SUFFIXES.some((suffix) => normalized.endsWith(suffix));
|
|
31
|
+
}
|
|
32
|
+
exports.isCredentialBodyKey = isCredentialBodyKey;
|
|
33
|
+
const redact = (value, side, depth) => {
|
|
34
|
+
if (value === null || typeof value !== 'object')
|
|
35
|
+
return value;
|
|
36
|
+
if (depth >= MAX_REDACTION_DEPTH)
|
|
37
|
+
return null;
|
|
38
|
+
if (Array.isArray(value))
|
|
39
|
+
return value.map((item) => redact(item, side, depth + 1));
|
|
40
|
+
const safe = {};
|
|
41
|
+
for (const [key, item] of Object.entries(value)) {
|
|
42
|
+
if (!isCredentialBodyKey(key, side)) {
|
|
43
|
+
Object.defineProperty(safe, key, {
|
|
44
|
+
value: redact(item, side, depth + 1),
|
|
45
|
+
enumerable: true,
|
|
46
|
+
writable: true,
|
|
47
|
+
configurable: true,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return safe;
|
|
52
|
+
};
|
|
53
|
+
function redactCapturedBody(value, side) {
|
|
54
|
+
return redact(value, side, 0);
|
|
55
|
+
}
|
|
56
|
+
exports.redactCapturedBody = redactCapturedBody;
|
|
57
|
+
//# sourceMappingURL=body-redaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"body-redaction.js","sourceRoot":"","sources":["../../src/utils/body-redaction.ts"],"names":[],"mappings":";;;AA2BA,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,uCAAmB,CAAA;IACnB,yCAAqB,CAAA;AACvB,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B;AAEY,QAAA,+BAA+B,GAAsB;IAChE,UAAU;IACV,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,SAAS;CACV,CAAC;AAEW,QAAA,uBAAuB,GAAwB,IAAI,GAAG,CAAC;IAClE,KAAK;IACL,eAAe;IACf,QAAQ;CACT,CAAC,CAAC;AAEU,QAAA,0BAA0B,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEjF,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,MAAM,YAAY,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAErF,SAAgB,mBAAmB,CAAC,GAAW,EAAE,IAAsB;IACrE,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,+BAAuB,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,IAAI,IAAI,KAAK,gBAAgB,CAAC,OAAO,IAAI,kCAA0B,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACjG,OAAO,uCAA+B,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACvF,CAAC;AALD,kDAKC;AAED,MAAM,MAAM,GAAG,CAAC,KAAc,EAAE,IAAsB,EAAE,KAAa,EAAW,EAAE;IAChF,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE9D,IAAI,KAAK,IAAI,mBAAmB;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAEpF,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC3E,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;YAIpC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE;gBAC/B,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC;gBACpC,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,SAAgB,kBAAkB,CAAI,KAAQ,EAAE,IAAsB;IACpE,OAAO,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAM,CAAC;AACrC,CAAC;AAFD,gDAEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header-pattern.js","sourceRoot":"","sources":["../../src/utils/header-pattern.ts"],"names":[],"mappings":";;;AAAa,QAAA,wBAAwB,GAAsB;IACzD,aAAa;IACb,aAAa;IACb,cAAc;IACd,kBAAkB;IAClB,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,YAAY;IACZ,SAAS;CACV,CAAC;AAEW,QAAA,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAChE,eAAe;IACf,QAAQ;IACR,YAAY;IACZ,eAAe;IACf,qBAAqB;IACrB,cAAc;
|
|
1
|
+
{"version":3,"file":"header-pattern.js","sourceRoot":"","sources":["../../src/utils/header-pattern.ts"],"names":[],"mappings":";;;AAAa,QAAA,wBAAwB,GAAsB;IACzD,aAAa;IACb,aAAa;IACb,cAAc;IACd,kBAAkB;IAClB,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,YAAY;IACZ,SAAS;CACV,CAAC;AAEW,QAAA,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAChE,eAAe;IACf,QAAQ;IACR,YAAY;IACZ,eAAe;IACf,qBAAqB;IACrB,cAAc;IAEd,mBAAmB;CACpB,CAAC,CAAC;AAEH,SAAgB,aAAa,CAAC,IAAY,EAAE,QAA2B;IACrE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACzB,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,KAAK,KAAK,GAAG,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC;AAPD,sCAOC;AAED,SAAgB,mBAAmB,CAAC,IAAY,EAAE,SAA4B;IAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,IAAI,6BAAqB,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnD,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACzC,CAAC;AAJD,kDAIC;AAED,SAAgB,qBAAqB,CACnC,MAAqD,EACrD,MAAsC;IAEtC,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAE1D,MAAM,SAAS,GACb,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,gCAAwB,CAAC,CAAC,CAAC,CAAC,GAAG,gCAAwB,EAAE,GAAG,MAAM,CAAC,CAAC;IAExF,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,IAAI,QAAQ,KAAK,SAAS;YAAE,SAAS;QACrC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC;YAAE,SAAS;QACvD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvE,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAjBD,sDAiBC"}
|
package/dist/utils/index.d.ts
CHANGED
package/dist/utils/index.js
CHANGED
|
@@ -24,5 +24,6 @@ __exportStar(require("./request-tracker.utils"), exports);
|
|
|
24
24
|
__exportStar(require("./graceful-shutdown.utils"), exports);
|
|
25
25
|
__exportStar(require("./string.utils"), exports);
|
|
26
26
|
__exportStar(require("./header-pattern"), exports);
|
|
27
|
+
__exportStar(require("./body-redaction"), exports);
|
|
27
28
|
__exportStar(require("./node-require"), exports);
|
|
28
29
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,8DAA4C;AAC5C,wEAAsD;AACtD,+CAA6B;AAC7B,gDAA8B;AAC9B,+DAA6C;AAC7C,0DAAwC;AACxC,4DAA0C;AAC1C,iDAA+B;AAC/B,mDAAiC;AACjC,iDAA+B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,8DAA4C;AAC5C,wEAAsD;AACtD,+CAA6B;AAC7B,gDAA8B;AAC9B,+DAA6C;AAC7C,0DAAwC;AACxC,4DAA0C;AAC1C,iDAA+B;AAC/B,mDAAiC;AACjC,mDAAiC;AACjC,iDAA+B"}
|