@abyss-project/monitor 3.0.0 → 5.0.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.
Files changed (94) hide show
  1. package/.eslintrc.js +67 -18
  2. package/dist/types/interface/api/requests/application.request.d.ts +0 -8
  3. package/dist/types/interface/api/responses/infrastructure.admin.response.d.ts +2 -19
  4. package/dist/types/interface/api/responses/infrastructure.admin.response.js +1 -8
  5. package/dist/types/interface/api/responses/infrastructure.admin.response.js.map +1 -1
  6. package/package.json +2 -2
  7. package/tsconfig.build.json +4 -0
  8. package/dist/__tests__/alert-log-url.test.d.ts +0 -1
  9. package/dist/__tests__/alert-log-url.test.js +0 -21
  10. package/dist/__tests__/alert-log-url.test.js.map +0 -1
  11. package/dist/__tests__/application-log-bulk-api.test.d.ts +0 -1
  12. package/dist/__tests__/application-log-bulk-api.test.js +0 -125
  13. package/dist/__tests__/application-log-bulk-api.test.js.map +0 -1
  14. package/dist/__tests__/body-redaction.test.d.ts +0 -1
  15. package/dist/__tests__/body-redaction.test.js +0 -104
  16. package/dist/__tests__/body-redaction.test.js.map +0 -1
  17. package/dist/__tests__/graceful-shutdown-flush.test.d.ts +0 -1
  18. package/dist/__tests__/graceful-shutdown-flush.test.js +0 -253
  19. package/dist/__tests__/graceful-shutdown-flush.test.js.map +0 -1
  20. package/dist/__tests__/graceful-shutdown-logger.test.d.ts +0 -1
  21. package/dist/__tests__/graceful-shutdown-logger.test.js +0 -124
  22. package/dist/__tests__/graceful-shutdown-logger.test.js.map +0 -1
  23. package/dist/__tests__/header-pattern.test.d.ts +0 -1
  24. package/dist/__tests__/header-pattern.test.js +0 -66
  25. package/dist/__tests__/header-pattern.test.js.map +0 -1
  26. package/dist/__tests__/identifier-resolver.test.d.ts +0 -1
  27. package/dist/__tests__/identifier-resolver.test.js +0 -50
  28. package/dist/__tests__/identifier-resolver.test.js.map +0 -1
  29. package/dist/__tests__/latency-bucket.test.d.ts +0 -1
  30. package/dist/__tests__/latency-bucket.test.js +0 -10
  31. package/dist/__tests__/latency-bucket.test.js.map +0 -1
  32. package/dist/__tests__/log-queue.test.d.ts +0 -1
  33. package/dist/__tests__/log-queue.test.js +0 -97
  34. package/dist/__tests__/log-queue.test.js.map +0 -1
  35. package/dist/__tests__/log-shipper-preconfig.test.d.ts +0 -1
  36. package/dist/__tests__/log-shipper-preconfig.test.js +0 -54
  37. package/dist/__tests__/log-shipper-preconfig.test.js.map +0 -1
  38. package/dist/__tests__/log-shipper.test.d.ts +0 -1
  39. package/dist/__tests__/log-shipper.test.js +0 -1040
  40. package/dist/__tests__/log-shipper.test.js.map +0 -1
  41. package/dist/__tests__/log-spool.test.d.ts +0 -1
  42. package/dist/__tests__/log-spool.test.js +0 -297
  43. package/dist/__tests__/log-spool.test.js.map +0 -1
  44. package/dist/__tests__/logger-body-size.test.d.ts +0 -1
  45. package/dist/__tests__/logger-body-size.test.js +0 -12
  46. package/dist/__tests__/logger-body-size.test.js.map +0 -1
  47. package/dist/__tests__/logger-console-min-level.test.d.ts +0 -1
  48. package/dist/__tests__/logger-console-min-level.test.js +0 -55
  49. package/dist/__tests__/logger-console-min-level.test.js.map +0 -1
  50. package/dist/__tests__/logger-debug-critical.test.d.ts +0 -1
  51. package/dist/__tests__/logger-debug-critical.test.js +0 -77
  52. package/dist/__tests__/logger-debug-critical.test.js.map +0 -1
  53. package/dist/__tests__/logger-endpoint-headers.test.d.ts +0 -1
  54. package/dist/__tests__/logger-endpoint-headers.test.js +0 -23
  55. package/dist/__tests__/logger-endpoint-headers.test.js.map +0 -1
  56. package/dist/__tests__/logger-enqueues.test.d.ts +0 -1
  57. package/dist/__tests__/logger-enqueues.test.js +0 -276
  58. package/dist/__tests__/logger-enqueues.test.js.map +0 -1
  59. package/dist/__tests__/logger-returns-promise.test.d.ts +0 -1
  60. package/dist/__tests__/logger-returns-promise.test.js +0 -27
  61. package/dist/__tests__/logger-returns-promise.test.js.map +0 -1
  62. package/dist/__tests__/parse-window.test.d.ts +0 -1
  63. package/dist/__tests__/parse-window.test.js +0 -19
  64. package/dist/__tests__/parse-window.test.js.map +0 -1
  65. package/dist/__tests__/rate-limit.decorator.test.d.ts +0 -1
  66. package/dist/__tests__/rate-limit.decorator.test.js +0 -47
  67. package/dist/__tests__/rate-limit.decorator.test.js.map +0 -1
  68. package/dist/__tests__/rate-limit.middleware.test.d.ts +0 -1
  69. package/dist/__tests__/rate-limit.middleware.test.js +0 -156
  70. package/dist/__tests__/rate-limit.middleware.test.js.map +0 -1
  71. package/dist/__tests__/route-decorator-body-flags.test.d.ts +0 -1
  72. package/dist/__tests__/route-decorator-body-flags.test.js +0 -117
  73. package/dist/__tests__/route-decorator-body-flags.test.js.map +0 -1
  74. package/dist/__tests__/route-flags-loader.test.d.ts +0 -1
  75. package/dist/__tests__/route-flags-loader.test.js +0 -153
  76. package/dist/__tests__/route-flags-loader.test.js.map +0 -1
  77. package/dist/__tests__/sentinel-header-mask.test.d.ts +0 -1
  78. package/dist/__tests__/sentinel-header-mask.test.js +0 -14
  79. package/dist/__tests__/sentinel-header-mask.test.js.map +0 -1
  80. package/dist/__tests__/setconfig-keeps-queued-logs.test.d.ts +0 -1
  81. package/dist/__tests__/setconfig-keeps-queued-logs.test.js +0 -59
  82. package/dist/__tests__/setconfig-keeps-queued-logs.test.js.map +0 -1
  83. package/dist/__tests__/shipper-replay-on-config.test.d.ts +0 -1
  84. package/dist/__tests__/shipper-replay-on-config.test.js +0 -59
  85. package/dist/__tests__/shipper-replay-on-config.test.js.map +0 -1
  86. package/dist/__tests__/token-bucket.store.test.d.ts +0 -1
  87. package/dist/__tests__/token-bucket.store.test.js +0 -99
  88. package/dist/__tests__/token-bucket.store.test.js.map +0 -1
  89. package/dist/__tests__/utils/setup-global.d.ts +0 -1
  90. package/dist/__tests__/utils/setup-global.js +0 -35
  91. package/dist/__tests__/utils/setup-global.js.map +0 -1
  92. package/dist/__tests__/utils/teardown-global.d.ts +0 -1
  93. package/dist/__tests__/utils/teardown-global.js +0 -36
  94. package/dist/__tests__/utils/teardown-global.js.map +0 -1
@@ -1,77 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const logger_model_1 = require("../models/logger.model");
4
- const log_level_enum_1 = require("../types/enum/log-level.enum");
5
- describe('Logger — debug() publie DEBUG, critical() est ajouté', () => {
6
- it('debug() publie level === LogLevel.DEBUG avec un stack', async () => {
7
- const published = [];
8
- const logger = new logger_model_1.Logger({
9
- shouldDisableConsoleLogging: true,
10
- customPublishLog: async (payload) => {
11
- published.push(payload);
12
- },
13
- });
14
- await logger.debug('x');
15
- expect(published).toHaveLength(1);
16
- expect(published[0].level).toBe(log_level_enum_1.LogLevel.DEBUG);
17
- expect(published[0].stack).toEqual(expect.any(String));
18
- });
19
- it('critical() publie level === LogLevel.CRITICAL', async () => {
20
- const published = [];
21
- const logger = new logger_model_1.Logger({
22
- shouldDisableConsoleLogging: true,
23
- customPublishLog: async (payload) => {
24
- published.push(payload);
25
- },
26
- });
27
- await logger.critical('x');
28
- expect(published).toHaveLength(1);
29
- expect(published[0].level).toBe(log_level_enum_1.LogLevel.CRITICAL);
30
- });
31
- it("critical(Error) porte message, stack et data.errorName de l'erreur (Error branch)", async () => {
32
- const published = [];
33
- const logger = new logger_model_1.Logger({
34
- shouldDisableConsoleLogging: true,
35
- customPublishLog: async (payload) => {
36
- published.push(payload);
37
- },
38
- });
39
- const error = new Error('boom');
40
- await logger.critical(error);
41
- expect(published).toHaveLength(1);
42
- expect(published[0].level).toBe(log_level_enum_1.LogLevel.CRITICAL);
43
- expect(published[0].message).toBe('Error boom');
44
- expect(published[0].stack).toBe(error.stack);
45
- expect(published[0].data).toMatchObject({ errorName: 'Error' });
46
- });
47
- describe('sortie console', () => {
48
- const originalEnv = process.env.ABYSS_LOGGER_CONSOLE_MIN_LEVEL;
49
- let sink;
50
- beforeEach(() => {
51
- sink = jest.spyOn(console, 'log').mockImplementation(() => undefined);
52
- });
53
- afterEach(() => {
54
- sink.mockRestore();
55
- if (originalEnv === undefined) {
56
- delete process.env.ABYSS_LOGGER_CONSOLE_MIN_LEVEL;
57
- }
58
- else {
59
- process.env.ABYSS_LOGGER_CONSOLE_MIN_LEVEL = originalEnv;
60
- }
61
- });
62
- it("une ligne CRITICAL ne contient pas 'undefined'", async () => {
63
- delete process.env.ABYSS_LOGGER_CONSOLE_MIN_LEVEL;
64
- const logger = new logger_model_1.Logger({ shouldDisableRemoteLogging: true });
65
- await logger.critical('x');
66
- expect(sink).toHaveBeenCalledTimes(1);
67
- expect(String(sink.mock.calls[0][0])).not.toContain('undefined');
68
- });
69
- it('la valeur par défaut (LogLevel.LOG) masque DEBUG en console', async () => {
70
- delete process.env.ABYSS_LOGGER_CONSOLE_MIN_LEVEL;
71
- const logger = new logger_model_1.Logger({ shouldDisableRemoteLogging: true });
72
- await logger.debug('caché par défaut');
73
- expect(sink).not.toHaveBeenCalled();
74
- });
75
- });
76
- });
77
- //# sourceMappingURL=logger-debug-critical.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger-debug-critical.test.js","sourceRoot":"","sources":["../../src/__tests__/logger-debug-critical.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const header_pattern_1 = require("../utils/header-pattern");
4
- describe('logger endpoint header capture integration', () => {
5
- it('captures ratelimit headers when enabled', () => {
6
- const filtered = (0, header_pattern_1.filterCapturedHeaders)({
7
- 'ratelimit-limit': '100',
8
- 'ratelimit-remaining': '99',
9
- authorization: 'Bearer leaked',
10
- 'content-type': 'application/json',
11
- }, true);
12
- expect(filtered).toEqual({
13
- 'ratelimit-limit': '100',
14
- 'ratelimit-remaining': '99',
15
- 'content-type': 'application/json',
16
- });
17
- });
18
- it('returns null when disabled', () => {
19
- const filtered = (0, header_pattern_1.filterCapturedHeaders)({ a: '1' }, false);
20
- expect(filtered).toBeNull();
21
- });
22
- });
23
- //# sourceMappingURL=logger-endpoint-headers.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger-endpoint-headers.test.js","sourceRoot":"","sources":["../../src/__tests__/logger-endpoint-headers.test.ts"],"names":[],"mappings":";;AAAA,4DAAgE;AAEhE,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;IAC1D,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,QAAQ,GAAG,IAAA,sCAAqB,EACpC;YACE,iBAAiB,EAAE,KAAK;YACxB,qBAAqB,EAAE,IAAI;YAC3B,aAAa,EAAE,eAAe;YAC9B,cAAc,EAAE,kBAAkB;SACnC,EACD,IAAI,CACL,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;YACvB,iBAAiB,EAAE,KAAK;YACxB,qBAAqB,EAAE,IAAI;YAC3B,cAAc,EAAE,kBAAkB;SACnC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,QAAQ,GAAG,IAAA,sCAAqB,EAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,276 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- const logger_model_1 = require("../models/logger.model");
27
- const __1 = require("..");
28
- const alertUtils = __importStar(require("../utils/alert.utils"));
29
- describe('Logger -> LogShipper', () => {
30
- afterEach(() => {
31
- delete process.env.ABYSS_LOGGER_CONSOLE_MIN_LEVEL;
32
- });
33
- it('empile au lieu de POSTer une ligne à la fois', async () => {
34
- __1.AbyssMonitorCore.setConfig({ applicationId: 'app-1', secretPublishToken: 'secret' });
35
- const enqueue = jest
36
- .spyOn(__1.AbyssMonitorCore.getShipper(), 'enqueue')
37
- .mockImplementation(() => undefined);
38
- const post = jest.spyOn(__1.AbyssMonitorCore.axios, 'post');
39
- const logger = new logger_model_1.Logger({ shouldDisableConsoleLogging: true });
40
- await logger.info('coucou');
41
- expect(enqueue).toHaveBeenCalledTimes(1);
42
- expect(post).not.toHaveBeenCalled();
43
- enqueue.mockRestore();
44
- post.mockRestore();
45
- });
46
- it('tronque les corps de requête et de réponse au-delà de MAXIMUM_BODY_SIZE', async () => {
47
- __1.AbyssMonitorCore.setConfig({ applicationId: 'app-1', secretPublishToken: 'secret' });
48
- const enqueue = jest
49
- .spyOn(__1.AbyssMonitorCore.getShipper(), 'enqueue')
50
- .mockImplementation(() => undefined);
51
- const logger = new logger_model_1.Logger({ shouldDisableConsoleLogging: true });
52
- await logger.info('gros', {
53
- applicationLogEndpoint: {
54
- controller: 'C',
55
- endpoint: '/e',
56
- ip: [],
57
- method: 1,
58
- responseTime: 1,
59
- responseHttpCode: 200,
60
- requestBody: 'x'.repeat(2 * 1024 * 1024),
61
- responseBody: 'y'.repeat(2 * 1024 * 1024),
62
- },
63
- });
64
- const enqueued = enqueue.mock.calls[0][0];
65
- expect(enqueued.applicationLogEndpoint?.requestBody).toBe('Payload Too Large');
66
- expect(enqueued.applicationLogEndpoint?.responseBody).toBe('Payload Too Large');
67
- enqueue.mockRestore();
68
- });
69
- it("refuse d'empiler et le dit sur stderr quand la charge dépasse encore la limite après troncature", async () => {
70
- __1.AbyssMonitorCore.setConfig({ applicationId: 'app-1', secretPublishToken: 'secret' });
71
- const enqueue = jest
72
- .spyOn(__1.AbyssMonitorCore.getShipper(), 'enqueue')
73
- .mockImplementation(() => undefined);
74
- const errorSink = jest.spyOn(console, 'error').mockImplementation(() => undefined);
75
- const logger = new logger_model_1.Logger({ shouldDisableConsoleLogging: true });
76
- await logger.info('x'.repeat(2 * 1024 * 1024));
77
- expect(enqueue).not.toHaveBeenCalled();
78
- expect(errorSink).toHaveBeenCalledTimes(1);
79
- expect(errorSink.mock.calls[0][0]).toEqual(expect.stringContaining('Unable to queue log'));
80
- enqueue.mockRestore();
81
- errorSink.mockRestore();
82
- });
83
- it("A7 : un log sous ABYSS_LOGGER_CONSOLE_MIN_LEVEL n'écrit pas en console mais est quand même empilé", async () => {
84
- __1.AbyssMonitorCore.setConfig({ applicationId: 'app-1', secretPublishToken: 'secret' });
85
- process.env.ABYSS_LOGGER_CONSOLE_MIN_LEVEL = 'WARN';
86
- const sink = jest.spyOn(console, 'log').mockImplementation(() => undefined);
87
- const enqueue = jest
88
- .spyOn(__1.AbyssMonitorCore.getShipper(), 'enqueue')
89
- .mockImplementation(() => undefined);
90
- const logger = new logger_model_1.Logger({});
91
- await logger.info('sous le seuil');
92
- expect(sink).not.toHaveBeenCalled();
93
- expect(enqueue).toHaveBeenCalledTimes(1);
94
- sink.mockRestore();
95
- enqueue.mockRestore();
96
- });
97
- it("n'empile pas quand shouldDisableRemoteLogging est actif", async () => {
98
- __1.AbyssMonitorCore.setConfig({ applicationId: 'app-1', secretPublishToken: 'secret' });
99
- const enqueue = jest
100
- .spyOn(__1.AbyssMonitorCore.getShipper(), 'enqueue')
101
- .mockImplementation(() => undefined);
102
- const logger = new logger_model_1.Logger({
103
- shouldDisableConsoleLogging: true,
104
- shouldDisableRemoteLogging: true,
105
- });
106
- await logger.info('pas de shipper');
107
- expect(enqueue).not.toHaveBeenCalled();
108
- enqueue.mockRestore();
109
- });
110
- describe('Controller ruling 12 — la garde de sendLogAlert', () => {
111
- it('(a) shouldDisableRemoteLogging: ni alerte ni empilement', async () => {
112
- __1.AbyssMonitorCore.setConfig({ applicationId: 'app-1', secretPublishToken: 'secret' });
113
- const enqueue = jest
114
- .spyOn(__1.AbyssMonitorCore.getShipper(), 'enqueue')
115
- .mockImplementation(() => undefined);
116
- const alert = jest
117
- .spyOn(alertUtils, 'sendLogAlert')
118
- .mockImplementation(async () => undefined);
119
- const logger = new logger_model_1.Logger({
120
- shouldDisableConsoleLogging: true,
121
- shouldDisableRemoteLogging: true,
122
- });
123
- await logger.error('boom');
124
- expect(enqueue).not.toHaveBeenCalled();
125
- expect(alert).not.toHaveBeenCalled();
126
- enqueue.mockRestore();
127
- alert.mockRestore();
128
- });
129
- it('(b) configuré + remote logging actif : alerte envoyée sans application_log_id=, ligne empilée', async () => {
130
- __1.AbyssMonitorCore.setConfig({ applicationId: 'app-1', secretPublishToken: 'secret' });
131
- const enqueue = jest
132
- .spyOn(__1.AbyssMonitorCore.getShipper(), 'enqueue')
133
- .mockImplementation(() => undefined);
134
- const alert = jest
135
- .spyOn(alertUtils, 'sendLogAlert')
136
- .mockImplementation(async () => undefined);
137
- const logger = new logger_model_1.Logger({ shouldDisableConsoleLogging: true });
138
- await logger.error('boom');
139
- expect(enqueue).toHaveBeenCalledTimes(1);
140
- expect(alert).toHaveBeenCalledTimes(1);
141
- const alertParams = alert.mock.calls[0][0];
142
- expect(alertParams.applicationLogId).toBeNull();
143
- enqueue.mockRestore();
144
- alert.mockRestore();
145
- });
146
- it('(c) application non configurée : ligne empilée quand même, aucune alerte', async () => {
147
- __1.AbyssMonitorCore.setConfig({ applicationId: '', secretPublishToken: '' });
148
- const enqueue = jest
149
- .spyOn(__1.AbyssMonitorCore.getShipper(), 'enqueue')
150
- .mockImplementation(() => undefined);
151
- const alert = jest
152
- .spyOn(alertUtils, 'sendLogAlert')
153
- .mockImplementation(async () => undefined);
154
- const logger = new logger_model_1.Logger({ shouldDisableConsoleLogging: true });
155
- await logger.error('boom');
156
- expect(enqueue).toHaveBeenCalledTimes(1);
157
- expect(alert).not.toHaveBeenCalled();
158
- enqueue.mockRestore();
159
- alert.mockRestore();
160
- });
161
- });
162
- describe("T9 — l'alerte du bloc catch garde la garde de la ruling 12", () => {
163
- const circularData = () => {
164
- const data = {};
165
- data.self = data;
166
- return data;
167
- };
168
- afterEach(() => {
169
- jest.restoreAllMocks();
170
- });
171
- it('remote logging coupé : un échec de publication ne part pas sur Discord', async () => {
172
- __1.AbyssMonitorCore.setConfig({ applicationId: 'app-1', secretPublishToken: 'secret' });
173
- const alert = jest
174
- .spyOn(alertUtils, 'sendLogAlert')
175
- .mockImplementation(async () => undefined);
176
- jest.spyOn(console, 'error').mockImplementation(() => undefined);
177
- const logger = new logger_model_1.Logger({
178
- shouldDisableRemoteLogging: true,
179
- customConsoleLogger: (data) => {
180
- JSON.stringify(data);
181
- },
182
- });
183
- await logger.error('boom', { data: circularData() });
184
- expect(console.error).toHaveBeenCalledWith(expect.stringContaining('Unable to publish log'));
185
- expect(alert).not.toHaveBeenCalled();
186
- });
187
- it('application non configurée : une charge impossible à sérialiser ne part pas sur Discord', async () => {
188
- __1.AbyssMonitorCore.setConfig({ applicationId: '', secretPublishToken: '' });
189
- const alert = jest
190
- .spyOn(alertUtils, 'sendLogAlert')
191
- .mockImplementation(async () => undefined);
192
- jest.spyOn(console, 'error').mockImplementation(() => undefined);
193
- const logger = new logger_model_1.Logger({ shouldDisableConsoleLogging: true });
194
- await logger.error('boom', { data: circularData() });
195
- expect(console.error).toHaveBeenCalledWith(expect.stringContaining('Unable to publish log'));
196
- expect(alert).not.toHaveBeenCalled();
197
- });
198
- it("configurée, remote logging actif : l'échec de publication alerte, une fois", async () => {
199
- __1.AbyssMonitorCore.setConfig({ applicationId: 'app-1', secretPublishToken: 'secret' });
200
- const alert = jest
201
- .spyOn(alertUtils, 'sendLogAlert')
202
- .mockImplementation(async () => undefined);
203
- jest.spyOn(console, 'error').mockImplementation(() => undefined);
204
- const logger = new logger_model_1.Logger({ shouldDisableConsoleLogging: true });
205
- await logger.error('boom', { data: circularData() });
206
- expect(alert).toHaveBeenCalledTimes(1);
207
- expect(alert.mock.calls[0][0]).toMatchObject({ author: 'AbyssMonitor Logger' });
208
- });
209
- });
210
- describe('M2 — une ligne mesurée une fois, et seulement si elle part', () => {
211
- afterEach(() => {
212
- jest.restoreAllMocks();
213
- });
214
- it('remote logging coupé : la ligne n est jamais sérialisée', async () => {
215
- __1.AbyssMonitorCore.setConfig({ applicationId: 'app-1', secretPublishToken: 'secret' });
216
- const enqueue = jest
217
- .spyOn(__1.AbyssMonitorCore.getShipper(), 'enqueue')
218
- .mockImplementation(() => undefined);
219
- const stringify = jest.spyOn(JSON, 'stringify');
220
- const logger = new logger_model_1.Logger({
221
- shouldDisableConsoleLogging: true,
222
- shouldDisableRemoteLogging: true,
223
- });
224
- await logger.info('locale seulement', { data: { big: 'x'.repeat(10_000) } });
225
- expect(stringify).not.toHaveBeenCalled();
226
- expect(enqueue).not.toHaveBeenCalled();
227
- });
228
- it('sérialise la ligne une seule fois et passe sa taille au shipper', async () => {
229
- __1.AbyssMonitorCore.setConfig({ applicationId: '', secretPublishToken: '' });
230
- const enqueue = jest
231
- .spyOn(__1.AbyssMonitorCore.getShipper(), 'enqueue')
232
- .mockImplementation(() => undefined);
233
- const stringify = jest.spyOn(JSON, 'stringify');
234
- const logger = new logger_model_1.Logger({ shouldDisableConsoleLogging: true });
235
- await logger.info('mesurée');
236
- expect(stringify).toHaveBeenCalledTimes(1);
237
- const [queued, size] = enqueue.mock.calls[0];
238
- stringify.mockRestore();
239
- expect(size).toBe(Buffer.byteLength(JSON.stringify(queued)));
240
- });
241
- it('mesure sans Buffer, comme dans un navigateur', async () => {
242
- __1.AbyssMonitorCore.setConfig({ applicationId: '', secretPublishToken: '' });
243
- const enqueue = jest
244
- .spyOn(__1.AbyssMonitorCore.getShipper(), 'enqueue')
245
- .mockImplementation(() => undefined);
246
- const errorSink = jest.spyOn(console, 'error').mockImplementation(() => undefined);
247
- const logger = new logger_model_1.Logger({ shouldDisableConsoleLogging: true });
248
- const globals = globalThis;
249
- const originalBuffer = globals.Buffer;
250
- globals.Buffer = undefined;
251
- try {
252
- await logger.info('é');
253
- }
254
- finally {
255
- globals.Buffer = originalBuffer;
256
- }
257
- expect(errorSink).not.toHaveBeenCalled();
258
- const [queued, size] = enqueue.mock.calls[0];
259
- expect(size).toBe(Buffer.byteLength(JSON.stringify(queued)));
260
- });
261
- });
262
- it('setConfig({ shipper }) reconfigure le singleton existant au lieu de le remplacer', () => {
263
- __1.AbyssMonitorCore.setConfig({ applicationId: 'app-1', secretPublishToken: 'secret' });
264
- const first = __1.AbyssMonitorCore.getShipper();
265
- const stop = jest.spyOn(first, 'stop');
266
- const reconfigure = jest.spyOn(first, 'reconfigure');
267
- __1.AbyssMonitorCore.setConfig({ shipper: { flushIntervalMs: 1000 } });
268
- expect(reconfigure).toHaveBeenCalledWith({ flushIntervalMs: 1000 });
269
- expect(stop).not.toHaveBeenCalled();
270
- expect(__1.AbyssMonitorCore.getShipper()).toBe(first);
271
- stop.mockRestore();
272
- reconfigure.mockRestore();
273
- __1.AbyssMonitorCore.getShipper().stop();
274
- });
275
- });
276
- //# sourceMappingURL=logger-enqueues.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger-enqueues.test.js","sourceRoot":"","sources":["../../src/__tests__/logger-enqueues.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const logger_model_1 = require("../models/logger.model");
4
- describe('Logger — les méthodes attendent la publication', () => {
5
- const buildLogger = (order) => new logger_model_1.Logger({
6
- shouldDisableConsoleLogging: true,
7
- customPublishLog: async () => {
8
- await new Promise((resolve) => setTimeout(resolve, 20));
9
- order.push('published');
10
- },
11
- });
12
- it.each(['log', 'info', 'warn', 'error', 'debug'])('%s() résout après la publication', async (method) => {
13
- const order = [];
14
- const logger = buildLogger(order);
15
- await logger[method]('message');
16
- order.push('awaited');
17
- expect(order).toEqual(['published', 'awaited']);
18
- });
19
- it('error(Error instance) résout après la publication (Error branch)', async () => {
20
- const order = [];
21
- const logger = buildLogger(order);
22
- await logger.error(new Error('boom'));
23
- order.push('awaited');
24
- expect(order).toEqual(['published', 'awaited']);
25
- });
26
- });
27
- //# sourceMappingURL=logger-returns-promise.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger-returns-promise.test.js","sourceRoot":"","sources":["../../src/__tests__/logger-returns-promise.test.ts"],"names":[],"mappings":";;AAAA,yDAAgD;AAEhD,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC9D,MAAM,WAAW,GAAG,CAAC,KAAe,EAAU,EAAE,CAC9C,IAAI,qBAAM,CAAC;QACT,2BAA2B,EAAE,IAAI;QACjC,gBAAgB,EAAE,KAAK,IAAI,EAAE;YAC3B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;YACxD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1B,CAAC;KACF,CAAC,CAAC;IAEL,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAU,CAAC,CACzD,kCAAkC,EAClC,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAElC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEtB,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAClD,CAAC,CACF,CAAC;IAEF,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAElC,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEtB,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const parse_window_1 = require("../middlewares/rate-limit/parse-window");
4
- describe('parseWindow', () => {
5
- it.each([
6
- ['1s', 1],
7
- ['30s', 30],
8
- ['1m', 60],
9
- ['5m', 300],
10
- ['1h', 3600],
11
- ['2h', 7200],
12
- ])('parses %s to %d seconds', (input, expected) => {
13
- expect((0, parse_window_1.parseWindow)(input)).toBe(expected);
14
- });
15
- it.each(['', 'abc', '1', '1x', '-1m', '0m', '1.5m'])('rejects %p', (input) => {
16
- expect(() => (0, parse_window_1.parseWindow)(input)).toThrow(/invalid window/i);
17
- });
18
- });
19
- //# sourceMappingURL=parse-window.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-window.test.js","sourceRoot":"","sources":["../../src/__tests__/parse-window.test.ts"],"names":[],"mappings":";;AAAA,yEAAqE;AAErE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,IAAI,CAAC;QACN,CAAC,IAAI,EAAE,CAAC,CAAC;QACT,CAAC,KAAK,EAAE,EAAE,CAAC;QACX,CAAC,IAAI,EAAE,EAAE,CAAC;QACV,CAAC,IAAI,EAAE,GAAG,CAAC;QACX,CAAC,IAAI,EAAE,IAAI,CAAC;QACZ,CAAC,IAAI,EAAE,IAAI,CAAC;KACb,CAAC,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAChD,MAAM,CAAC,IAAA,0BAAW,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;QAC3E,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,0BAAW,EAAC,KAAc,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- import 'reflect-metadata';
@@ -1,47 +0,0 @@
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 rate_limit_decorator_1 = require("../middlewares/rate-limit/rate-limit.decorator");
14
- describe('@RateLimit decorator', () => {
15
- it('stores options as metadata on the method', () => {
16
- class Ctrl {
17
- login() { }
18
- }
19
- __decorate([
20
- (0, rate_limit_decorator_1.RateLimit)({ scope: 'ip', max: 5, window: '1m' }),
21
- __metadata("design:type", Function),
22
- __metadata("design:paramtypes", []),
23
- __metadata("design:returntype", void 0)
24
- ], Ctrl.prototype, "login", null);
25
- const meta = Reflect.getMetadata(rate_limit_decorator_1.RATE_LIMIT_WATERMARK, Ctrl.prototype, 'login');
26
- expect(meta).toEqual({ scope: 'ip', max: 5, window: '1m' });
27
- });
28
- it('readRateLimitOptions returns undefined when decorator not applied', () => {
29
- class Ctrl {
30
- ping() { }
31
- }
32
- expect((0, rate_limit_decorator_1.readRateLimitOptions)(Ctrl.prototype, 'ping')).toBeUndefined();
33
- });
34
- it('readRateLimitOptions returns options when applied', () => {
35
- class Ctrl {
36
- heavy() { }
37
- }
38
- __decorate([
39
- (0, rate_limit_decorator_1.RateLimit)({ cost: 10 }),
40
- __metadata("design:type", Function),
41
- __metadata("design:paramtypes", []),
42
- __metadata("design:returntype", void 0)
43
- ], Ctrl.prototype, "heavy", null);
44
- expect((0, rate_limit_decorator_1.readRateLimitOptions)(Ctrl.prototype, 'heavy')).toEqual({ cost: 10 });
45
- });
46
- });
47
- //# sourceMappingURL=rate-limit.decorator.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rate-limit.decorator.test.js","sourceRoot":"","sources":["../../src/__tests__/rate-limit.decorator.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,4BAA0B;AAC1B,yFAIwD;AAExD,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,IAAI;YAER,KAAK,KAAI,CAAC;SACX;QADC;YADC,IAAA,gCAAS,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;;;yCACvC;QAGZ,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,2CAAoB,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChF,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,IAAI;YACR,IAAI,KAAI,CAAC;SACV;QACD,MAAM,CAAC,IAAA,2CAAoB,EAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,IAAI;YAER,KAAK,KAAI,CAAC;SACX;QADC;YADC,IAAA,gCAAS,EAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;;;;yCACd;QAEZ,MAAM,CAAC,IAAA,2CAAoB,EAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- import 'reflect-metadata';