@abyss-project/monitor 2.2.1 → 2.4.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 (100) hide show
  1. package/README.md +36 -0
  2. package/dist/__tests__/alert-log-url.test.d.ts +1 -0
  3. package/dist/__tests__/alert-log-url.test.js +21 -0
  4. package/dist/__tests__/alert-log-url.test.js.map +1 -0
  5. package/dist/__tests__/application-log-bulk-api.test.d.ts +1 -0
  6. package/dist/__tests__/application-log-bulk-api.test.js +125 -0
  7. package/dist/__tests__/application-log-bulk-api.test.js.map +1 -0
  8. package/dist/__tests__/body-redaction.test.d.ts +1 -0
  9. package/dist/__tests__/body-redaction.test.js +104 -0
  10. package/dist/__tests__/body-redaction.test.js.map +1 -0
  11. package/dist/__tests__/graceful-shutdown-flush.test.d.ts +1 -0
  12. package/dist/__tests__/graceful-shutdown-flush.test.js +253 -0
  13. package/dist/__tests__/graceful-shutdown-flush.test.js.map +1 -0
  14. package/dist/__tests__/header-pattern.test.js +3 -0
  15. package/dist/__tests__/header-pattern.test.js.map +1 -1
  16. package/dist/__tests__/log-queue.test.d.ts +1 -0
  17. package/dist/__tests__/log-queue.test.js +97 -0
  18. package/dist/__tests__/log-queue.test.js.map +1 -0
  19. package/dist/__tests__/log-shipper-preconfig.test.d.ts +1 -0
  20. package/dist/__tests__/log-shipper-preconfig.test.js +54 -0
  21. package/dist/__tests__/log-shipper-preconfig.test.js.map +1 -0
  22. package/dist/__tests__/log-shipper.test.d.ts +1 -0
  23. package/dist/__tests__/log-shipper.test.js +1040 -0
  24. package/dist/__tests__/log-shipper.test.js.map +1 -0
  25. package/dist/__tests__/log-spool.test.d.ts +1 -0
  26. package/dist/__tests__/log-spool.test.js +297 -0
  27. package/dist/__tests__/log-spool.test.js.map +1 -0
  28. package/dist/__tests__/logger-body-size.test.d.ts +1 -0
  29. package/dist/__tests__/logger-body-size.test.js +12 -0
  30. package/dist/__tests__/logger-body-size.test.js.map +1 -0
  31. package/dist/__tests__/logger-enqueues.test.d.ts +1 -0
  32. package/dist/__tests__/logger-enqueues.test.js +276 -0
  33. package/dist/__tests__/logger-enqueues.test.js.map +1 -0
  34. package/dist/__tests__/logger-returns-promise.test.d.ts +1 -0
  35. package/dist/__tests__/logger-returns-promise.test.js +27 -0
  36. package/dist/__tests__/logger-returns-promise.test.js.map +1 -0
  37. package/dist/__tests__/route-decorator-body-flags.test.d.ts +1 -0
  38. package/dist/__tests__/route-decorator-body-flags.test.js +117 -0
  39. package/dist/__tests__/route-decorator-body-flags.test.js.map +1 -0
  40. package/dist/__tests__/route-flags-loader.test.d.ts +1 -0
  41. package/dist/__tests__/route-flags-loader.test.js +153 -0
  42. package/dist/__tests__/route-flags-loader.test.js.map +1 -0
  43. package/dist/__tests__/setconfig-keeps-queued-logs.test.d.ts +1 -0
  44. package/dist/__tests__/setconfig-keeps-queued-logs.test.js +59 -0
  45. package/dist/__tests__/setconfig-keeps-queued-logs.test.js.map +1 -0
  46. package/dist/__tests__/shipper-replay-on-config.test.d.ts +1 -0
  47. package/dist/__tests__/shipper-replay-on-config.test.js +59 -0
  48. package/dist/__tests__/shipper-replay-on-config.test.js.map +1 -0
  49. package/dist/__tests__/utils/setup-global.d.ts +1 -0
  50. package/dist/__tests__/utils/setup-global.js +35 -0
  51. package/dist/__tests__/utils/setup-global.js.map +1 -0
  52. package/dist/__tests__/utils/teardown-global.d.ts +1 -0
  53. package/dist/__tests__/utils/teardown-global.js +36 -0
  54. package/dist/__tests__/utils/teardown-global.js.map +1 -0
  55. package/dist/api/application-log.api.d.ts +5 -1
  56. package/dist/api/application-log.api.js +10 -1
  57. package/dist/api/application-log.api.js.map +1 -1
  58. package/dist/frameworks/express/decorators.d.ts +2 -0
  59. package/dist/frameworks/express/decorators.js +6 -0
  60. package/dist/frameworks/express/decorators.js.map +1 -1
  61. package/dist/frameworks/express/index.js +15 -5
  62. package/dist/frameworks/express/index.js.map +1 -1
  63. package/dist/index.d.ts +5 -0
  64. package/dist/index.js +22 -0
  65. package/dist/index.js.map +1 -1
  66. package/dist/middlewares/logger-endpoint.middleware.js +5 -4
  67. package/dist/middlewares/logger-endpoint.middleware.js.map +1 -1
  68. package/dist/models/index.d.ts +3 -0
  69. package/dist/models/index.js +3 -0
  70. package/dist/models/index.js.map +1 -1
  71. package/dist/models/log-queue.model.d.ts +25 -0
  72. package/dist/models/log-queue.model.js +68 -0
  73. package/dist/models/log-queue.model.js.map +1 -0
  74. package/dist/models/log-shipper.model.d.ts +75 -0
  75. package/dist/models/log-shipper.model.js +452 -0
  76. package/dist/models/log-shipper.model.js.map +1 -0
  77. package/dist/models/log-spool.model.d.ts +32 -0
  78. package/dist/models/log-spool.model.js +202 -0
  79. package/dist/models/log-spool.model.js.map +1 -0
  80. package/dist/models/logger.model.d.ts +2 -0
  81. package/dist/models/logger.model.js +49 -70
  82. package/dist/models/logger.model.js.map +1 -1
  83. package/dist/types/interface/api/requests/application-log.request.d.ts +10 -0
  84. package/dist/types/interface/api/responses/application-log.response.d.ts +5 -0
  85. package/dist/utils/alert.utils.d.ts +1 -0
  86. package/dist/utils/alert.utils.js +8 -5
  87. package/dist/utils/alert.utils.js.map +1 -1
  88. package/dist/utils/body-redaction.d.ts +9 -0
  89. package/dist/utils/body-redaction.js +57 -0
  90. package/dist/utils/body-redaction.js.map +1 -0
  91. package/dist/utils/graceful-shutdown.utils.d.ts +1 -0
  92. package/dist/utils/graceful-shutdown.utils.js +53 -8
  93. package/dist/utils/graceful-shutdown.utils.js.map +1 -1
  94. package/dist/utils/header-pattern.js +1 -0
  95. package/dist/utils/header-pattern.js.map +1 -1
  96. package/dist/utils/index.d.ts +1 -0
  97. package/dist/utils/index.js +1 -0
  98. package/dist/utils/index.js.map +1 -1
  99. package/jest.config.ts +5 -0
  100. package/package.json +1 -1
@@ -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
+ export {};
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const log_queue_model_1 = require("../models/log-queue.model");
4
+ const types_1 = require("../types");
5
+ const makeLog = (message) => ({ message, level: types_1.LogLevel.LOG, processId: '1', dateValue: new Date() });
6
+ describe('LogQueue', () => {
7
+ it('empile et rend les entrées dans l ordre', () => {
8
+ const queue = new log_queue_model_1.LogQueue({ maxEntries: 10, maxBytes: 1000 });
9
+ queue.push(makeLog('a'), 10);
10
+ queue.push(makeLog('b'), 10);
11
+ const drained = queue.drain(10, 1000);
12
+ expect(drained.map((entry) => entry.log.message)).toEqual(['a', 'b']);
13
+ expect(queue.entryCount).toBe(0);
14
+ expect(queue.byteCount).toBe(0);
15
+ });
16
+ it('jette les plus VIEUX au dépassement du nombre d entrées', () => {
17
+ const queue = new log_queue_model_1.LogQueue({ maxEntries: 2, maxBytes: 1000 });
18
+ queue.push(makeLog('a'), 10);
19
+ queue.push(makeLog('b'), 10);
20
+ queue.push(makeLog('c'), 10);
21
+ expect(queue.drain(10, 1000).map((entry) => entry.log.message)).toEqual(['b', 'c']);
22
+ expect(queue.takeDroppedCount()).toBe(1);
23
+ });
24
+ it('jette les plus VIEUX au dépassement de la taille en octets', () => {
25
+ const queue = new log_queue_model_1.LogQueue({ maxEntries: 100, maxBytes: 25 });
26
+ queue.push(makeLog('a'), 10);
27
+ queue.push(makeLog('b'), 10);
28
+ queue.push(makeLog('c'), 10);
29
+ expect(queue.drain(100, 1000).map((entry) => entry.log.message)).toEqual(['b', 'c']);
30
+ expect(queue.takeDroppedCount()).toBe(1);
31
+ });
32
+ it('drain respecte les plafonds demandés et laisse le reste', () => {
33
+ const queue = new log_queue_model_1.LogQueue({ maxEntries: 100, maxBytes: 10_000 });
34
+ queue.push(makeLog('a'), 10);
35
+ queue.push(makeLog('b'), 10);
36
+ queue.push(makeLog('c'), 10);
37
+ expect(queue.drain(2, 10_000).map((entry) => entry.log.message)).toEqual(['a', 'b']);
38
+ expect(queue.entryCount).toBe(1);
39
+ expect(queue.drain(100, 15).map((entry) => entry.log.message)).toEqual(['c']);
40
+ });
41
+ it('drain rend toujours au moins une entrée même si elle dépasse le plafond d octets', () => {
42
+ const queue = new log_queue_model_1.LogQueue({ maxEntries: 10, maxBytes: 10_000 });
43
+ queue.push(makeLog('enorme'), 5_000);
44
+ expect(queue.drain(10, 100)).toHaveLength(1);
45
+ });
46
+ it('ne jette jamais l unique entrée même si elle dépasse le plafond en octets', () => {
47
+ const queue = new log_queue_model_1.LogQueue({ maxEntries: 10, maxBytes: 100 });
48
+ queue.push(makeLog('oversized'), 200);
49
+ expect(queue.entryCount).toBe(1);
50
+ expect(queue.byteCount).toBe(200);
51
+ expect(queue.takeDroppedCount()).toBe(0);
52
+ });
53
+ it('takeDroppedCount remet le compteur à zéro', () => {
54
+ const queue = new log_queue_model_1.LogQueue({ maxEntries: 1, maxBytes: 1000 });
55
+ queue.push(makeLog('a'), 10);
56
+ queue.push(makeLog('b'), 10);
57
+ expect(queue.takeDroppedCount()).toBe(1);
58
+ expect(queue.takeDroppedCount()).toBe(0);
59
+ });
60
+ it('remet des entrées en tête, dans leur ordre', () => {
61
+ const queue = new log_queue_model_1.LogQueue({ maxEntries: 10, maxBytes: 10_000 });
62
+ queue.push(makeLog('a'), 10);
63
+ queue.push(makeLog('b'), 10);
64
+ const drained = queue.drain(2, 10_000);
65
+ queue.push(makeLog('c'), 10);
66
+ queue.requeueFront(drained);
67
+ expect(queue.drain(10, 10_000).map((e) => e.log.message)).toEqual(['a', 'b', 'c']);
68
+ });
69
+ it('applique les plafonds à une remise en tête et compte ce qu elle jette', () => {
70
+ const queue = new log_queue_model_1.LogQueue({ maxEntries: 2, maxBytes: 10_000 });
71
+ queue.push(makeLog('a'), 10);
72
+ const drained = queue.drain(1, 10_000);
73
+ queue.push(makeLog('b'), 10);
74
+ queue.push(makeLog('c'), 10);
75
+ queue.requeueFront(drained);
76
+ expect(queue.drain(10, 10_000).map((e) => e.log.message)).toEqual(['b', 'c']);
77
+ expect(queue.takeDroppedCount()).toBe(1);
78
+ });
79
+ it('resize garde les entrées déjà en file sous des plafonds plus larges', () => {
80
+ const queue = new log_queue_model_1.LogQueue({ maxEntries: 2, maxBytes: 10_000 });
81
+ queue.push(makeLog('a'), 10);
82
+ queue.push(makeLog('b'), 10);
83
+ queue.resize({ maxEntries: 3, maxBytes: 10_000 });
84
+ queue.push(makeLog('c'), 10);
85
+ expect(queue.drain(10, 10_000).map((e) => e.log.message)).toEqual(['a', 'b', 'c']);
86
+ expect(queue.takeDroppedCount()).toBe(0);
87
+ });
88
+ it('resize applique tout de suite des plafonds plus serrés, en comptant ce qu il jette', () => {
89
+ const queue = new log_queue_model_1.LogQueue({ maxEntries: 10, maxBytes: 10_000 });
90
+ ['a', 'b', 'c'].forEach((message) => queue.push(makeLog(message), 10));
91
+ queue.resize({ maxEntries: 1, maxBytes: 10_000 });
92
+ expect(queue.entryCount).toBe(1);
93
+ expect(queue.takeDroppedCount()).toBe(2);
94
+ expect(queue.drain(10, 10_000).map((e) => e.log.message)).toEqual(['c']);
95
+ });
96
+ });
97
+ //# sourceMappingURL=log-queue.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-queue.test.js","sourceRoot":"","sources":["../../src/__tests__/log-queue.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,54 @@
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 fs = __importStar(require("fs"));
27
+ const os = __importStar(require("os"));
28
+ const path = __importStar(require("path"));
29
+ const log_shipper_model_1 = require("../models/log-shipper.model");
30
+ const __1 = require("..");
31
+ const applicationLogApi = __importStar(require("../api/application-log.api"));
32
+ const types_1 = require("../types");
33
+ const makeLog = (message) => ({ message, level: types_1.LogLevel.LOG, processId: '1', dateValue: new Date() });
34
+ describe('LogShipper — fenêtre pré-configuration', () => {
35
+ it('conserve les logs émis avant setConfig et les envoie après', async () => {
36
+ const directory = fs.mkdtempSync(path.join(os.tmpdir(), 'abyss-preconfig-'));
37
+ const sendBulk = jest
38
+ .spyOn(applicationLogApi, 'createBulkApplicationLog')
39
+ .mockResolvedValue({ data: { created: 1, deduped: 0 } });
40
+ __1.AbyssMonitorCore.setConfig({ applicationId: '', secretPublishToken: '' });
41
+ const shipper = new log_shipper_model_1.LogShipper({ spoolDirectory: directory, flushIntervalMs: 10_000 });
42
+ shipper.enqueue(makeLog('avant-config'));
43
+ await shipper.flush();
44
+ expect(sendBulk).not.toHaveBeenCalled();
45
+ __1.AbyssMonitorCore.setConfig({ applicationId: 'app-1', secretPublishToken: 'secret' });
46
+ await shipper.flush();
47
+ expect(sendBulk).toHaveBeenCalledTimes(1);
48
+ expect(sendBulk.mock.calls[0][2].logs[0].message).toBe('avant-config');
49
+ shipper.stop();
50
+ sendBulk.mockRestore();
51
+ fs.rmSync(directory, { recursive: true, force: true });
52
+ });
53
+ });
54
+ //# sourceMappingURL=log-shipper-preconfig.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-shipper-preconfig.test.js","sourceRoot":"","sources":["../../src/__tests__/log-shipper-preconfig.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAC7B,mEAAyD;AAEzD,0BAAsC;AACtC,8EAAgE;AAChE,oCAAoC;AAEpC,MAAM,OAAO,GAAG,CAAC,OAAe,EAAW,EAAE,CAC3C,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAc,CAAA,CAAC;AAEvF,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;IACtD,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAAG,IAAI;aAClB,KAAK,CAAC,iBAAiB,EAAE,0BAA0B,CAAC;aACpD,iBAAiB,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAW,CAAC,CAAC;QAEpE,oBAAgB,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,IAAI,8BAAU,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;QAEvF,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;QACzC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAExC,oBAAgB,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QAEtB,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEvE,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,QAAQ,CAAC,WAAW,EAAE,CAAC;QACvB,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};