@futdevpro/nts-dynamo 1.15.465 → 1.15.467

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 (50) hide show
  1. package/build/_collections/global-settings.const.d.ts.map +1 -1
  2. package/build/_collections/global-settings.const.js +2 -0
  3. package/build/_collections/global-settings.const.js.map +1 -1
  4. package/build/_models/interfaces/global-settings.interface.d.ts +5 -0
  5. package/build/_models/interfaces/global-settings.interface.d.ts.map +1 -1
  6. package/build/_modules/messaging/index.d.ts +9 -0
  7. package/build/_modules/messaging/index.d.ts.map +1 -1
  8. package/build/_modules/messaging/index.js +10 -0
  9. package/build/_modules/messaging/index.js.map +1 -1
  10. package/build/_modules/messaging/input-draft/msg-input-draft-call.interface.d.ts +13 -0
  11. package/build/_modules/messaging/input-draft/msg-input-draft-call.interface.d.ts.map +1 -0
  12. package/build/_modules/messaging/input-draft/msg-input-draft-call.interface.js +3 -0
  13. package/build/_modules/messaging/input-draft/msg-input-draft-call.interface.js.map +1 -0
  14. package/build/_modules/messaging/input-draft/msg-input-draft-default-settings.const.d.ts +6 -0
  15. package/build/_modules/messaging/input-draft/msg-input-draft-default-settings.const.d.ts.map +1 -0
  16. package/build/_modules/messaging/input-draft/msg-input-draft-default-settings.const.js +16 -0
  17. package/build/_modules/messaging/input-draft/msg-input-draft-default-settings.const.js.map +1 -0
  18. package/build/_modules/messaging/input-draft/msg-input-draft-routing.util.d.ts +22 -0
  19. package/build/_modules/messaging/input-draft/msg-input-draft-routing.util.d.ts.map +1 -0
  20. package/build/_modules/messaging/input-draft/msg-input-draft-routing.util.js +34 -0
  21. package/build/_modules/messaging/input-draft/msg-input-draft-routing.util.js.map +1 -0
  22. package/build/_modules/messaging/input-draft/msg-input-draft-save-result.interface.d.ts +15 -0
  23. package/build/_modules/messaging/input-draft/msg-input-draft-save-result.interface.d.ts.map +1 -0
  24. package/build/_modules/messaging/input-draft/msg-input-draft-save-result.interface.js +3 -0
  25. package/build/_modules/messaging/input-draft/msg-input-draft-save-result.interface.js.map +1 -0
  26. package/build/_modules/messaging/input-draft/msg-input-draft-settings.interface.d.ts +20 -0
  27. package/build/_modules/messaging/input-draft/msg-input-draft-settings.interface.d.ts.map +1 -0
  28. package/build/_modules/messaging/input-draft/msg-input-draft-settings.interface.js +3 -0
  29. package/build/_modules/messaging/input-draft/msg-input-draft-settings.interface.js.map +1 -0
  30. package/build/_modules/messaging/input-draft/msg-input-draft.controller.d.ts +46 -0
  31. package/build/_modules/messaging/input-draft/msg-input-draft.controller.d.ts.map +1 -0
  32. package/build/_modules/messaging/input-draft/msg-input-draft.controller.js +139 -0
  33. package/build/_modules/messaging/input-draft/msg-input-draft.controller.js.map +1 -0
  34. package/build/_modules/messaging/input-draft/msg-input-draft.data-model.d.ts +38 -0
  35. package/build/_modules/messaging/input-draft/msg-input-draft.data-model.d.ts.map +1 -0
  36. package/build/_modules/messaging/input-draft/msg-input-draft.data-model.js +60 -0
  37. package/build/_modules/messaging/input-draft/msg-input-draft.data-model.js.map +1 -0
  38. package/build/_modules/messaging/input-draft/msg-input-draft.data-service.d.ts +55 -0
  39. package/build/_modules/messaging/input-draft/msg-input-draft.data-service.d.ts.map +1 -0
  40. package/build/_modules/messaging/input-draft/msg-input-draft.data-service.js +123 -0
  41. package/build/_modules/messaging/input-draft/msg-input-draft.data-service.js.map +1 -0
  42. package/build/_modules/messaging/input-draft/msg-input-draft.util.d.ts +20 -0
  43. package/build/_modules/messaging/input-draft/msg-input-draft.util.d.ts.map +1 -0
  44. package/build/_modules/messaging/input-draft/msg-input-draft.util.js +71 -0
  45. package/build/_modules/messaging/input-draft/msg-input-draft.util.js.map +1 -0
  46. package/build/_services/core/memory-guard.service.d.ts +32 -2
  47. package/build/_services/core/memory-guard.service.d.ts.map +1 -1
  48. package/build/_services/core/memory-guard.service.js +63 -21
  49. package/build/_services/core/memory-guard.service.js.map +1 -1
  50. package/package.json +1 -1
@@ -0,0 +1,55 @@
1
+ import { DyNTS_DataService } from '../../../_services/base/data.service';
2
+ import { DyNTS_Msg_InputDraft_DataModel } from './msg-input-draft.data-model';
3
+ import { DyNTS_Msg_InputDraft_Settings_Interface } from './msg-input-draft-settings.interface';
4
+ /**
5
+ * BFR-CCAPREVISIONED-030 part 2 (the CCAP's `MSG_InputDraft_DataService`, generalized) - the server copy of the
6
+ * unsent input texts, per owner and field key.
7
+ *
8
+ * - `save`: an UPSERT (the revision grows by one); an empty save over a text keeps that text in `lastWipedContent`;
9
+ * - `load` / `list`: only the owner's live drafts, younger than `maxAgeMs`; these reads NEVER throw (a database error
10
+ * gives none: opening a page must not break on it, and it is logged);
11
+ * - `clear`: after a successful send (a soft delete: the text stays recoverable in the database).
12
+ *
13
+ * ⚠️ The save looks up the current record with a THROWING read: a swallowed read error would look like "no draft yet"
14
+ * and create a second record for the same field (revision 1 again).
15
+ */
16
+ export declare class DyNTS_Msg_InputDraft_DataService extends DyNTS_DataService<DyNTS_Msg_InputDraft_DataModel> {
17
+ /** The resolved settings (expiry, list size). */
18
+ private readonly settings;
19
+ /** A service for one request (the issuer for the record metadata). */
20
+ constructor(set: {
21
+ issuer: string;
22
+ settings?: DyNTS_Msg_InputDraft_Settings_Interface;
23
+ });
24
+ /** Stores the field's draft (create or overwrite); a database error throws (the caller reports `saved: false`). */
25
+ save(set: {
26
+ ownerId: string;
27
+ fieldKey: string;
28
+ content: string;
29
+ savedByBrowserId?: string;
30
+ now?: Date;
31
+ }): Promise<DyNTS_Msg_InputDraft_DataModel>;
32
+ /** The field's live, not expired draft, or `null` (also on a database error, logged). */
33
+ load(set: {
34
+ ownerId: string;
35
+ fieldKey: string;
36
+ now?: Date;
37
+ }): Promise<DyNTS_Msg_InputDraft_DataModel | null>;
38
+ /** The owner's live, not expired drafts, newest first (at most `maxListCount`; `[]` on a database error, logged). */
39
+ list(set: {
40
+ ownerId: string;
41
+ now?: Date;
42
+ }): Promise<DyNTS_Msg_InputDraft_DataModel[]>;
43
+ /** Removes the field's draft after a send (soft delete); `false` when there was none (or on an error, logged). */
44
+ clear(set: {
45
+ ownerId: string;
46
+ fieldKey: string;
47
+ }): Promise<boolean>;
48
+ /** The field's live record, expired or not (THROWS on a database error). */
49
+ private findCurrent;
50
+ /** Whether the draft is older than `maxAgeMs`. */
51
+ private isExpired;
52
+ /** The oldest save time still given back. */
53
+ private cutoff;
54
+ }
55
+ //# sourceMappingURL=msg-input-draft.data-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msg-input-draft.data-service.d.ts","sourceRoot":"","sources":["../../../../src/_modules/messaging/input-draft/msg-input-draft.data-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,8BAA8B,EAAkC,MAAM,8BAA8B,CAAC;AAC9G,OAAO,EAAE,uCAAuC,EAAE,MAAM,sCAAsC,CAAC;AAG/F;;;;;;;;;;;GAWG;AACH,qBAAa,gCAAiC,SAAQ,iBAAiB,CAAC,8BAA8B,CAAC;IACrG,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoD;IAE7E,sEAAsE;gBAC1D,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,uCAAuC,CAAA;KAAE;IAKvF,mHAAmH;IAC7G,IAAI,CAAC,GAAG,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,GAAG,CAAC,EAAE,IAAI,CAAC;KACZ,GAAG,OAAO,CAAC,8BAA8B,CAAC;IAkC3C,yFAAyF;IACnF,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,8BAA8B,GAAG,IAAI,CAAC;IAYlH,qHAAqH;IAC/G,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,8BAA8B,EAAE,CAAC;IAmB3F,kHAAkH;IAC5G,KAAK,CAAC,GAAG,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAuBzE,4EAA4E;YAC9D,WAAW;IAUzB,kDAAkD;IAClD,OAAO,CAAC,SAAS;IAIjB,6CAA6C;IAC7C,OAAO,CAAC,MAAM;CAGf"}
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_Msg_InputDraft_DataService = void 0;
4
+ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
5
+ const global_settings_const_1 = require("../../../_collections/global-settings.const");
6
+ const data_service_1 = require("../../../_services/base/data.service");
7
+ const msg_input_draft_data_model_1 = require("./msg-input-draft.data-model");
8
+ const msg_input_draft_util_1 = require("./msg-input-draft.util");
9
+ /**
10
+ * BFR-CCAPREVISIONED-030 part 2 (the CCAP's `MSG_InputDraft_DataService`, generalized) - the server copy of the
11
+ * unsent input texts, per owner and field key.
12
+ *
13
+ * - `save`: an UPSERT (the revision grows by one); an empty save over a text keeps that text in `lastWipedContent`;
14
+ * - `load` / `list`: only the owner's live drafts, younger than `maxAgeMs`; these reads NEVER throw (a database error
15
+ * gives none: opening a page must not break on it, and it is logged);
16
+ * - `clear`: after a successful send (a soft delete: the text stays recoverable in the database).
17
+ *
18
+ * ⚠️ The save looks up the current record with a THROWING read: a swallowed read error would look like "no draft yet"
19
+ * and create a second record for the same field (revision 1 again).
20
+ */
21
+ class DyNTS_Msg_InputDraft_DataService extends data_service_1.DyNTS_DataService {
22
+ /** The resolved settings (expiry, list size). */
23
+ settings;
24
+ /** A service for one request (the issuer for the record metadata). */
25
+ constructor(set) {
26
+ super(new msg_input_draft_data_model_1.DyNTS_Msg_InputDraft_DataModel(), msg_input_draft_data_model_1.DyNTS_msgInputDraft_dataParams, set.issuer);
27
+ this.settings = msg_input_draft_util_1.DyNTS_Msg_InputDraft_Util.resolve(set.settings);
28
+ }
29
+ /** Stores the field's draft (create or overwrite); a database error throws (the caller reports `saved: false`). */
30
+ async save(set) {
31
+ try {
32
+ const existing = await this.findCurrent(set);
33
+ const draft = new msg_input_draft_data_model_1.DyNTS_Msg_InputDraft_DataModel(existing ?? {
34
+ ownerId: set.ownerId, fieldKey: set.fieldKey,
35
+ });
36
+ // an empty save over a text: the text is kept (the user's raw input is never lost by one wipe)
37
+ if (!set.content && existing?.content) {
38
+ draft.lastWipedContent = existing.content;
39
+ draft.lastWipedAt = existing.savedAt;
40
+ draft.lastWipedRevision = existing.revision;
41
+ }
42
+ draft.content = set.content;
43
+ draft.savedAt = set.now ?? new Date();
44
+ draft.revision = (existing?.revision ?? 0) + 1;
45
+ draft.savedByBrowserId = set.savedByBrowserId;
46
+ this.data = existing
47
+ ? await this.dataDBService.modifyData(draft, this.issuer)
48
+ : await this.dataDBService.createData(draft, this.issuer);
49
+ return new msg_input_draft_data_model_1.DyNTS_Msg_InputDraft_DataModel(this.data);
50
+ }
51
+ catch (error) {
52
+ throw new fsm_dynamo_1.DyFM_Error({
53
+ ...this.getDefaultErrorSettings('save', error),
54
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-MSG-ID-S0`,
55
+ message: 'The input draft could not be stored.',
56
+ userMessage: 'The draft could not be saved on the server.',
57
+ additionalContent: { fieldKey: set.fieldKey, contentLength: set.content.length },
58
+ });
59
+ }
60
+ }
61
+ /** The field's live, not expired draft, or `null` (also on a database error, logged). */
62
+ async load(set) {
63
+ try {
64
+ const current = await this.findCurrent(set);
65
+ return current && !this.isExpired({ draft: current, now: set.now }) ? current : null;
66
+ }
67
+ catch (error) {
68
+ fsm_dynamo_1.DyFM_Log.warn(`[DyNTS_Msg_InputDraft] load failed (no draft given): '${set.fieldKey}'`, error);
69
+ return null;
70
+ }
71
+ }
72
+ /** The owner's live, not expired drafts, newest first (at most `maxListCount`; `[]` on a database error, logged). */
73
+ async list(set) {
74
+ try {
75
+ const filter = {
76
+ ownerId: set.ownerId,
77
+ savedAt: { $gte: this.cutoff(set.now) },
78
+ };
79
+ const found = await this.dataDBService.find(filter, false, {
80
+ sort: { savedAt: -1 }, limit: this.settings.maxListCount,
81
+ });
82
+ return found.map((draft) => new msg_input_draft_data_model_1.DyNTS_Msg_InputDraft_DataModel(draft));
83
+ }
84
+ catch (error) {
85
+ fsm_dynamo_1.DyFM_Log.warn(`[DyNTS_Msg_InputDraft] list failed (an empty list given)`, error);
86
+ return [];
87
+ }
88
+ }
89
+ /** Removes the field's draft after a send (soft delete); `false` when there was none (or on an error, logged). */
90
+ async clear(set) {
91
+ try {
92
+ // EVERY live record of the field: two first saves racing can create two, and clearing only the newest would
93
+ // bring the older (already sent) text back
94
+ const live = await this.dataDBService.find({ ownerId: set.ownerId, fieldKey: set.fieldKey }, false, { limit: 20 });
95
+ const ids = live
96
+ .map((draft) => draft._id)
97
+ .filter((id) => !!id);
98
+ for (const id of ids) {
99
+ await this.dataDBService.markDeletedById(id, this.issuer);
100
+ }
101
+ return ids.length > 0;
102
+ }
103
+ catch (error) {
104
+ fsm_dynamo_1.DyFM_Log.warn(`[DyNTS_Msg_InputDraft] clear failed: '${set.fieldKey}'`, error);
105
+ return false;
106
+ }
107
+ }
108
+ /** The field's live record, expired or not (THROWS on a database error). */
109
+ async findCurrent(set) {
110
+ const found = await this.dataDBService.find({ ownerId: set.ownerId, fieldKey: set.fieldKey }, false, { sort: { savedAt: -1 }, limit: 1 });
111
+ return found[0] ? new msg_input_draft_data_model_1.DyNTS_Msg_InputDraft_DataModel(found[0]) : null;
112
+ }
113
+ /** Whether the draft is older than `maxAgeMs`. */
114
+ isExpired(set) {
115
+ return new Date(set.draft.savedAt).getTime() < this.cutoff(set.now).getTime();
116
+ }
117
+ /** The oldest save time still given back. */
118
+ cutoff(now) {
119
+ return new Date((now ?? new Date()).getTime() - this.settings.maxAgeMs);
120
+ }
121
+ }
122
+ exports.DyNTS_Msg_InputDraft_DataService = DyNTS_Msg_InputDraft_DataService;
123
+ //# sourceMappingURL=msg-input-draft.data-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msg-input-draft.data-service.js","sourceRoot":"","sources":["../../../../src/_modules/messaging/input-draft/msg-input-draft.data-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { DyNTS_Msg_InputDraft_Settings_Interface } from './msg-input-draft-settings.interface';
2
+ /**
3
+ * BFR-CCAPREVISIONED-030 part 2 - the input-draft request checks (a wrong request is the caller's bug: 400, with a
4
+ * code; the stored text itself is never changed).
5
+ */
6
+ export declare class DyNTS_Msg_InputDraft_Util {
7
+ /** The settings with every missing field taken from the defaults. */
8
+ static resolve(settings?: DyNTS_Msg_InputDraft_Settings_Interface): Required<DyNTS_Msg_InputDraft_Settings_Interface>;
9
+ /** The field key from a body / query value: a non-empty string, at most `maxFieldKeyLength` long (trimmed). */
10
+ static fieldKey(raw: unknown, settings: Required<DyNTS_Msg_InputDraft_Settings_Interface>): string;
11
+ /** The text from a body value, UNCHANGED: missing ⇒ empty; not a string or too long ⇒ 400 (never cut). */
12
+ static content(raw: unknown, settings: Required<DyNTS_Msg_InputDraft_Settings_Interface>): string;
13
+ /** An optional short id (the browser id): a non-empty string up to 200 characters, otherwise none. */
14
+ static optionalId(raw: unknown): string | undefined;
15
+ /** A 400 with the module's code. */
16
+ private static badRequest;
17
+ /** The given settings without their `undefined` fields (so they do not hide a default). */
18
+ private static defined;
19
+ }
20
+ //# sourceMappingURL=msg-input-draft.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msg-input-draft.util.d.ts","sourceRoot":"","sources":["../../../../src/_modules/messaging/input-draft/msg-input-draft.util.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uCAAuC,EAAE,MAAM,sCAAsC,CAAC;AAE/F;;;GAGG;AACH,qBAAa,yBAAyB;IACpC,qEAAqE;IACrE,MAAM,CAAC,OAAO,CACZ,QAAQ,CAAC,EAAE,uCAAuC,GACjD,QAAQ,CAAC,uCAAuC,CAAC;IAIpD,+GAA+G;IAC/G,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,uCAAuC,CAAC,GAAG,MAAM;IAgBlG,0GAA0G;IAC1G,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,uCAAuC,CAAC,GAAG,MAAM;IAkBjG,sGAAsG;IACtG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAMnD,oCAAoC;IACpC,OAAO,CAAC,MAAM,CAAC,UAAU;IAUzB,2FAA2F;IAC3F,OAAO,CAAC,MAAM,CAAC,OAAO;CAavB"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_Msg_InputDraft_Util = void 0;
4
+ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
5
+ const global_settings_const_1 = require("../../../_collections/global-settings.const");
6
+ const msg_input_draft_default_settings_const_1 = require("./msg-input-draft-default-settings.const");
7
+ /**
8
+ * BFR-CCAPREVISIONED-030 part 2 - the input-draft request checks (a wrong request is the caller's bug: 400, with a
9
+ * code; the stored text itself is never changed).
10
+ */
11
+ class DyNTS_Msg_InputDraft_Util {
12
+ /** The settings with every missing field taken from the defaults. */
13
+ static resolve(settings) {
14
+ return { ...msg_input_draft_default_settings_const_1.DyNTS_msgInputDraft_defaultSettings, ...DyNTS_Msg_InputDraft_Util.defined(settings) };
15
+ }
16
+ /** The field key from a body / query value: a non-empty string, at most `maxFieldKeyLength` long (trimmed). */
17
+ static fieldKey(raw, settings) {
18
+ const fieldKey = typeof raw === 'string' ? raw.trim() : '';
19
+ if (!fieldKey) {
20
+ throw DyNTS_Msg_InputDraft_Util.badRequest({ code: 'FK1', message: 'The fieldKey is missing.' });
21
+ }
22
+ if (fieldKey.length > settings.maxFieldKeyLength) {
23
+ throw DyNTS_Msg_InputDraft_Util.badRequest({
24
+ code: 'FK2', message: `The fieldKey is longer than ${settings.maxFieldKeyLength} characters.`,
25
+ });
26
+ }
27
+ return fieldKey;
28
+ }
29
+ /** The text from a body value, UNCHANGED: missing ⇒ empty; not a string or too long ⇒ 400 (never cut). */
30
+ static content(raw, settings) {
31
+ if (raw === undefined || raw === null) {
32
+ return '';
33
+ }
34
+ if (typeof raw !== 'string') {
35
+ throw DyNTS_Msg_InputDraft_Util.badRequest({ code: 'CT1', message: 'The content must be a text.' });
36
+ }
37
+ if (raw.length > settings.maxContentLength) {
38
+ throw DyNTS_Msg_InputDraft_Util.badRequest({
39
+ code: 'CT2', message: `The draft is longer than ${settings.maxContentLength} characters.`,
40
+ });
41
+ }
42
+ return raw;
43
+ }
44
+ /** An optional short id (the browser id): a non-empty string up to 200 characters, otherwise none. */
45
+ static optionalId(raw) {
46
+ const id = typeof raw === 'string' ? raw.trim() : '';
47
+ return id && id.length <= 200 ? id : undefined;
48
+ }
49
+ /** A 400 with the module's code. */
50
+ static badRequest(set) {
51
+ return new fsm_dynamo_1.DyFM_Error({
52
+ status: 400,
53
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-MSG-ID-${set.code}`,
54
+ message: set.message,
55
+ userMessage: set.message,
56
+ issuerService: 'DyNTS_Msg_InputDraft_Util',
57
+ });
58
+ }
59
+ /** The given settings without their `undefined` fields (so they do not hide a default). */
60
+ static defined(settings) {
61
+ const result = {};
62
+ Object.entries(settings ?? {}).forEach(([key, value]) => {
63
+ if (value !== undefined) {
64
+ Reflect.set(result, key, value);
65
+ }
66
+ });
67
+ return result;
68
+ }
69
+ }
70
+ exports.DyNTS_Msg_InputDraft_Util = DyNTS_Msg_InputDraft_Util;
71
+ //# sourceMappingURL=msg-input-draft.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msg-input-draft.util.js","sourceRoot":"","sources":["../../../../src/_modules/messaging/input-draft/msg-input-draft.util.ts"],"names":[],"mappings":"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"}
@@ -77,6 +77,11 @@ export interface DyNTS_MemoryGuard_Config {
77
77
  gcWarningFraction?: number;
78
78
  /** GC-hányad-küszöb a `critical`-hoz (0..1). Default: 0.60. */
79
79
  gcCriticalFraction?: number;
80
+ /**
81
+ * A GC-jel csak e heap-% FELETT lehet `critical` (alatta legfeljebb `warning`). Default: 50. Lásd
82
+ * `DyNTS_MemoryGuard.DEFAULT_GC_CRITICAL_MIN_HEAP_PCT`.
83
+ */
84
+ gcCriticalMinHeapPct?: number;
80
85
  /** `uncaughtException` crash-handler telepítése (teljes-részletű error-entry + tiszta exit). Default: true. */
81
86
  installCrashHandlers?: boolean;
82
87
  /** Tartós critical → tiszta exit (a wrapper újraindít). Default: false. */
@@ -92,6 +97,12 @@ export interface DyNTS_MemoryGuard_Config {
92
97
  }
93
98
  type DyNTS_MemoryGuard_State = 'normal' | 'warning' | 'critical';
94
99
  export declare class DyNTS_MemoryGuard extends DyNTS_SingletonServiceBase {
100
+ /**
101
+ * A heap-% padló, ami ALATT a GC-jel legfeljebb `warning` (mérve 2026-10-29: négy „heap pressure CRITICAL” riasztás
102
+ * 1–4% heapen, 40–100% GC-vel — a valódi mark-compact thrash a heap-plafon KÖZELÉBEN jön, a 70%-os eset továbbra is
103
+ * `critical`).
104
+ */
105
+ static readonly DEFAULT_GC_CRITICAL_MIN_HEAP_PCT: number;
95
106
  static getInstance(): DyNTS_MemoryGuard;
96
107
  private timer;
97
108
  private isInstallationActive;
@@ -103,6 +114,7 @@ export declare class DyNTS_MemoryGuard extends DyNTS_SingletonServiceBase {
103
114
  private maxHistoryCount;
104
115
  private gcWarnFraction;
105
116
  private gcCritFraction;
117
+ private gcCritMinHeapPct;
106
118
  private isCriticalExitEnabled;
107
119
  private sustainedCriticalPolls;
108
120
  private exitCode;
@@ -168,7 +180,7 @@ export declare class DyNTS_MemoryGuard extends DyNTS_SingletonServiceBase {
168
180
  * - gc: the GC share of the recent window;
169
181
  * - rss: the resident memory against the physical memory.
170
182
  */
171
- static pressureCause(event: Pick<DyNTS_MemoryGuard_Event, 'trigger' | 'gcFraction' | 'rssMb' | 'rssPct'>): string;
183
+ static pressureCause(event: Pick<DyNTS_MemoryGuard_Event, 'trigger' | 'gcFraction' | 'rssMb' | 'rssPct'> & Partial<Pick<DyNTS_MemoryGuard_Event, 'heapPct'>>, gcCriticalMinHeapPct?: number): string;
172
184
  private static rssPctOfPhysical;
173
185
  /**
174
186
  * A fizikai RAM byte-ban. **Külön metódus a spec-mockoláshoz** — ugyanaz a seam-minta, mint a
@@ -179,8 +191,26 @@ export declare class DyNTS_MemoryGuard extends DyNTS_SingletonServiceBase {
179
191
  private static normalizePct;
180
192
  /** `true`, ha a NEHÉZ műveleteket le kell shed-elni (critical nyomás) — a fogyasztó load-shed gate-jének. */
181
193
  shouldShedLoad(): boolean;
182
- /** A GC-hányad az utolsó `pollIntervalMs` ablakban (GC-ms / ablak-ms; clamp [0..1]). Nincs GC-observer → 0. */
194
+ /**
195
+ * A GC-hányad az utolsó `pollIntervalMs` ablakban (az ablakba eső GC-ms / ablak-ms; clamp [0..1]).
196
+ * Nincs GC-observer → 0.
197
+ *
198
+ * A GC-pause a SAJÁT idővonal-idején számít (`startTime` + `duration`), és csak az ablakba eső RÉSZE: a figyelő
199
+ * visszahívása egy eseményhurok-elakadás után egy hosszabb időszak bejegyzéseit egyszerre adja át — a visszahívás
200
+ * idejével bélyegezve ezek mind az aktuális ablakba estek, és a hányad a valódi többszöröse lett.
201
+ */
183
202
  private recentGcFraction;
203
+ /** GC perf-bejegyzések a gördülő ablakba, a saját idővonal-idejükkel (epoch ms). */
204
+ private addGcEntries;
205
+ /**
206
+ * A heap / GC / RSS jelek egy helyen — a `poll()` (riasztás) és a `pressure()` (load-shed) UGYANEZT olvassa.
207
+ *
208
+ * A GC-jel csak `gcCritMinHeapPct` heap FELETT lehet `critical`: a GC-pause FALIÓRA-idő, és egy kis heapen
209
+ * (mérve: 63 MB / 8 GB, GC 74%) ez ⛔ GC-munka, hanem egy megállított process (host-CPU-kiéheztetés, kiswapolt
210
+ * heap). Az ilyen jel `warning` marad, a saját okával — ⛔ néma, de ⛔ is „heap critical”, és ⛔ indít load-shedet /
211
+ * kilépést, ami egy kiéheztetett hoston nem segít.
212
+ */
213
+ private assess;
184
214
  /** A 'gc' perf-entry-k figyelője — a GC-ben töltött időt gyűjti a gördülő ablakhoz. Best-effort (nem kritikus). */
185
215
  private installGcObserver;
186
216
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"memory-guard.service.d.ts","sourceRoot":"","sources":["../../../src/_services/core/memory-guard.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-guard.service.d.ts","sourceRoot":"","sources":["../../../src/_services/core/memory-guard.service.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAG5E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,iEAAiE;AACjE,MAAM,WAAW,uBAAuB;IACtC,kFAAkF;IAClF,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IAC5C,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,gGAAgG;IAChG,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,sHAAsH;IACtH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,aAAa,GAAG,UAAU,CAAC;IAChG,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wFAAwF;AACxF,MAAM,WAAW,wBAAwB;IACvC,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yDAAyD;IACzD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wFAAwF;IACxF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kHAAkH;IAClH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mHAAmH;IACnH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+GAA+G;IAC/G,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,2EAA2E;IAC3E,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,iEAAiE;IACjE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sHAAsH;IACtH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;CACvD;AAED,KAAK,uBAAuB,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAoBjE,qBAAa,iBAAkB,SAAQ,0BAA0B;IAE/D;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,gCAAgC,EAAE,MAAM,CAAM;IAE9D,MAAM,CAAC,WAAW,IAAI,iBAAiB;IAIvC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,oBAAoB,CAAkB;IAC9C,OAAO,CAAC,KAAK,CAAqC;IAGlD,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,gBAAgB,CAA8D;IACtF,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,WAAW,CAAiB;IACpC,sFAAsF;IACtF,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,UAAU,CAAC,CAA2C;IAE9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,SAAS,CAAa;IAC9B,4FAA4F;IAC5F,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAa;IAG/B,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,cAAc,CAAa;IAEnC,OAAO,CAAC,YAAY,CAAyC;IAE7D,SAAS;IAIT;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,wBAAwB,GAAG,IAAI;IA+DhD,yFAAyF;IACzF,OAAO,CAAC,iBAAiB;IAIzB;;;OAGG;IACH,OAAO,CAAC,IAAI;IAkGZ,iFAAiF;IACjF,OAAO,CAAC,WAAW;IAyDnB;;;OAGG;IACH,QAAQ,IAAI;QACV,KAAK,EAAE,IAAI,GAAG,SAAS,GAAG,UAAU,CAAC;QACrC,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAC5F,sGAAsG;QACtG,MAAM,EAAE,MAAM,CAAC;QACf;;;;WAIG;QACH,UAAU,EAAE,MAAM,CAAC;KAClB;IA0BH;;;;OAIG;IACH;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAClB,KAAK,EAAE,IAAI,CAAC,uBAAuB,EAAE,SAAS,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC,GAC/E,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC,EACrD,oBAAoB,GAAE,MAA2D,GAChF,MAAM;IAuBT,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAS/B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAIrC,yFAAyF;IACzF,OAAO,CAAC,MAAM,CAAC,YAAY;IAQ3B,6GAA6G;IAC7G,cAAc,IAAI,OAAO;IAIzB;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAaxB,oFAAoF;IACpF,OAAO,CAAC,YAAY;IAUpB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM;IAYd,mHAAmH;IACnH,OAAO,CAAC,iBAAiB;IAYzB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAiC5B,oHAAoH;IACpH,OAAO,CAAC,YAAY;IA+BpB,qEAAqE;IACrE,UAAU,IAAI,uBAAuB,EAAE;IAIvC,+EAA+E;IAC/E,SAAS,IAAI;QACX,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,uBAAuB,CAAC;QAC/B,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KAClB;IAUH,kCAAkC;IAClC,WAAW,IAAI,OAAO;IAItB;;;OAGG;IACH,mBAAmB,IAAI,IAAI;CA6B5B"}
@@ -11,6 +11,12 @@ const singleton_service_base_1 = require("../base/singleton.service-base");
11
11
  const runtime_hooks_util_1 = require("../../_collections/runtime-hooks.util");
12
12
  const BYTES_PER_MB = 1024 * 1024;
13
13
  class DyNTS_MemoryGuard extends singleton_service_base_1.DyNTS_SingletonServiceBase {
14
+ /**
15
+ * A heap-% padló, ami ALATT a GC-jel legfeljebb `warning` (mérve 2026-10-29: négy „heap pressure CRITICAL” riasztás
16
+ * 1–4% heapen, 40–100% GC-vel — a valódi mark-compact thrash a heap-plafon KÖZELÉBEN jön, a 70%-os eset továbbra is
17
+ * `critical`).
18
+ */
19
+ static DEFAULT_GC_CRITICAL_MIN_HEAP_PCT = 50;
14
20
  static getInstance() {
15
21
  return DyNTS_MemoryGuard.getSingletonInstance();
16
22
  }
@@ -25,6 +31,7 @@ class DyNTS_MemoryGuard extends singleton_service_base_1.DyNTS_SingletonServiceB
25
31
  maxHistoryCount = 100;
26
32
  gcWarnFraction = 0.40;
27
33
  gcCritFraction = 0.60;
34
+ gcCritMinHeapPct = DyNTS_MemoryGuard.DEFAULT_GC_CRITICAL_MIN_HEAP_PCT;
28
35
  isCriticalExitEnabled = false;
29
36
  sustainedCriticalPolls = 3;
30
37
  exitCode = 137;
@@ -66,6 +73,8 @@ class DyNTS_MemoryGuard extends singleton_service_base_1.DyNTS_SingletonServiceB
66
73
  this.maxHistoryCount = config?.maxHistoryCount ?? g.maxHistoryCount ?? 100;
67
74
  this.gcWarnFraction = config?.gcWarningFraction ?? g.gcWarningFraction ?? 0.40;
68
75
  this.gcCritFraction = config?.gcCriticalFraction ?? g.gcCriticalFraction ?? 0.60;
76
+ this.gcCritMinHeapPct = config?.gcCriticalMinHeapPct ?? g.gcCriticalMinHeapPct
77
+ ?? DyNTS_MemoryGuard.DEFAULT_GC_CRITICAL_MIN_HEAP_PCT;
69
78
  // BFR-AM-016 — RSS-ág. Default 0 (kikapcsolva): gép-függő küszöb, és a meglévő appok viselkedése
70
79
  // maradjon bitre változatlan. A negatív/nem-szám érték is 0-ra esik (= kikapcsolva).
71
80
  this.rssWarnPct = DyNTS_MemoryGuard.normalizePct(config?.rssWarningThresholdPct ?? g.rssWarningThresholdPct);
@@ -132,13 +141,7 @@ class DyNTS_MemoryGuard extends singleton_service_base_1.DyNTS_SingletonServiceB
132
141
  // A szintet a heap-% ÉS a GC-hányad ÉS az RSS-% közül a ROSSZABB dönti el (a GC-thrash a %-küszöb ALATT
133
142
  // is OOM-ot jelez; az RSS-ág pedig a heapen KÍVÜLI memóriát fogja meg — BFR-AM-016).
134
143
  const rssPct = DyNTS_MemoryGuard.rssPctOfPhysical(mu.rss);
135
- const heapCrit = pct >= this.critPct;
136
- const gcCrit = gcFraction >= this.gcCritFraction;
137
- // A KIKAPCSOLT (0) küszöb sosem riaszt — enélkül minden app azonnal `critical`-be esne (0 >= 0).
138
- const rssCrit = this.rssCritPct > 0 && rssPct >= this.rssCritPct;
139
- const heapWarn = pct >= this.warnPct;
140
- const gcWarn = gcFraction >= this.gcWarnFraction;
141
- const rssWarn = this.rssWarnPct > 0 && rssPct >= this.rssWarnPct;
144
+ const { heapCrit, gcCrit, rssCrit, heapWarn, gcWarn, rssWarn } = this.assess({ pct: pct, gcFraction: gcFraction, rssPct: rssPct });
142
145
  // Hiszterézis-állapotgép — esemény CSAK állapot-váltáskor.
143
146
  const prev = this.state;
144
147
  let next = prev;
@@ -226,7 +229,7 @@ class DyNTS_MemoryGuard extends singleton_service_base_1.DyNTS_SingletonServiceB
226
229
  }
227
230
  // BFR-CCAPREVISIONED-022 — the stated CAUSE follows the trigger (it named the heap ceiling for a GC / RSS alert too,
228
231
  // with the heap at 3%); a heap trigger keeps the earlier text byte-identical (log monitors)
229
- const cause = DyNTS_MemoryGuard.pressureCause(event);
232
+ const cause = DyNTS_MemoryGuard.pressureCause(event, this.gcCritMinHeapPct);
230
233
  if (event.level === 'critical') {
231
234
  fsm_dynamo_1.DyFM_Log.H_error(`[DyNTS_MemoryGuard] CRITICAL heap pressure — ${summary} — `
232
235
  + `${event.trigger.includes('heap') ? 'OOM imminent' : cause}`);
@@ -268,10 +271,10 @@ class DyNTS_MemoryGuard extends singleton_service_base_1.DyNTS_SingletonServiceB
268
271
  const rssPct = DyNTS_MemoryGuard.rssPctOfPhysical(mu.rss);
269
272
  // Ugyanaz a „rosszabb ág dönt" szabály, mint a `poll()`-ban — a kettő NEM térhet el, különben a
270
273
  // load-shed (`shouldShedLoad`) mást gondolna a nyomásról, mint a riasztás.
271
- const level = (pct >= this.critPct || gcFraction >= this.gcCritFraction || (this.rssCritPct > 0 && rssPct >= this.rssCritPct))
274
+ const signals = this.assess({ pct: pct, gcFraction: gcFraction, rssPct: rssPct });
275
+ const level = (signals.heapCrit || signals.gcCrit || signals.rssCrit)
272
276
  ? 'critical'
273
- : (pct >= this.warnPct || gcFraction >= this.gcWarnFraction || (this.rssWarnPct > 0 && rssPct >= this.rssWarnPct))
274
- ? 'warning' : 'ok';
277
+ : (signals.heapWarn || signals.gcWarn || signals.rssWarn) ? 'warning' : 'ok';
275
278
  return {
276
279
  level: level,
277
280
  heapUsedMb: Math.round(mu.heapUsed / BYTES_PER_MB),
@@ -294,12 +297,18 @@ class DyNTS_MemoryGuard extends singleton_service_base_1.DyNTS_SingletonServiceB
294
297
  * - gc: the GC share of the recent window;
295
298
  * - rss: the resident memory against the physical memory.
296
299
  */
297
- static pressureCause(event) {
300
+ static pressureCause(event, gcCriticalMinHeapPct = DyNTS_MemoryGuard.DEFAULT_GC_CRITICAL_MIN_HEAP_PCT) {
298
301
  const parts = [];
299
302
  if (event.trigger.includes('heap')) {
300
303
  parts.push('Process approaching the --max-old-space-size ceiling — OOM crash risk.');
301
304
  }
302
- if (event.trigger.includes('gc')) {
305
+ if (event.trigger.includes('gc') && typeof event.heapPct === 'number' && event.heapPct < gcCriticalMinHeapPct) {
306
+ // a GC-pause falióra-ideje: kis heapen ez ⛔ GC-munka, hanem egy megállított process (host-CPU / swap)
307
+ parts.push(`GC took ${Math.round(event.gcFraction * 100)}% of the recent window's wall time with the heap at only `
308
+ + `${event.heapPct}% — at a heap this small that is not GC work but a stalled process (CPU starvation, or `
309
+ + 'the heap swapped out): a host problem, not a memory leak.');
310
+ }
311
+ else if (event.trigger.includes('gc')) {
303
312
  parts.push(`GC consumed ${Math.round(event.gcFraction * 100)}% of the recent window — the event loop is starved.`);
304
313
  }
305
314
  if (event.trigger.includes('rss')) {
@@ -332,22 +341,55 @@ class DyNTS_MemoryGuard extends singleton_service_base_1.DyNTS_SingletonServiceB
332
341
  shouldShedLoad() {
333
342
  return this.isInstallationActive && this.pressure().level === 'critical';
334
343
  }
335
- /** A GC-hányad az utolsó `pollIntervalMs` ablakban (GC-ms / ablak-ms; clamp [0..1]). Nincs GC-observer → 0. */
344
+ /**
345
+ * A GC-hányad az utolsó `pollIntervalMs` ablakban (az ablakba eső GC-ms / ablak-ms; clamp [0..1]).
346
+ * Nincs GC-observer → 0.
347
+ *
348
+ * A GC-pause a SAJÁT idővonal-idején számít (`startTime` + `duration`), és csak az ablakba eső RÉSZE: a figyelő
349
+ * visszahívása egy eseményhurok-elakadás után egy hosszabb időszak bejegyzéseit egyszerre adja át — a visszahívás
350
+ * idejével bélyegezve ezek mind az aktuális ablakba estek, és a hányad a valódi többszöröse lett.
351
+ */
336
352
  recentGcFraction() {
337
353
  const windowMs = this.pollIntervalMs > 0 ? this.pollIntervalMs : 10000;
338
- const cutoff = Date.now() - windowMs;
339
- this.gcEvents = this.gcEvents.filter((event) => event.at >= cutoff);
340
- const gcMs = this.gcEvents.reduce((sum, event) => sum + event.ms, 0);
354
+ // a GC-pause-ok IDŐVONALÁN mért „most” (⛔ `Date.now()`: egy faliórai NTP-igazítás elcsúsztatná az ablakot)
355
+ const now = perf_hooks_1.performance.timeOrigin + perf_hooks_1.performance.now();
356
+ const cutoff = now - windowMs;
357
+ this.gcEvents = this.gcEvents.filter((span) => span.end >= cutoff);
358
+ const gcMs = this.gcEvents.reduce((sum, span) => sum + Math.max(0, Math.min(span.end, now) - Math.max(span.start, cutoff)), 0);
341
359
  return Math.min(gcMs / windowMs, 1);
342
360
  }
361
+ /** GC perf-bejegyzések a gördülő ablakba, a saját idővonal-idejükkel (epoch ms). */
362
+ addGcEntries(entries) {
363
+ const origin = perf_hooks_1.performance.timeOrigin;
364
+ for (const entry of entries) {
365
+ const start = origin + entry.startTime;
366
+ this.gcEvents.push({ start: start, end: start + entry.duration });
367
+ }
368
+ }
369
+ /**
370
+ * A heap / GC / RSS jelek egy helyen — a `poll()` (riasztás) és a `pressure()` (load-shed) UGYANEZT olvassa.
371
+ *
372
+ * A GC-jel csak `gcCritMinHeapPct` heap FELETT lehet `critical`: a GC-pause FALIÓRA-idő, és egy kis heapen
373
+ * (mérve: 63 MB / 8 GB, GC 74%) ez ⛔ GC-munka, hanem egy megállított process (host-CPU-kiéheztetés, kiswapolt
374
+ * heap). Az ilyen jel `warning` marad, a saját okával — ⛔ néma, de ⛔ is „heap critical”, és ⛔ indít load-shedet /
375
+ * kilépést, ami egy kiéheztetett hoston nem segít.
376
+ */
377
+ assess(set) {
378
+ return {
379
+ heapCrit: set.pct >= this.critPct,
380
+ gcCrit: set.gcFraction >= this.gcCritFraction && set.pct >= this.gcCritMinHeapPct,
381
+ // A KIKAPCSOLT (0) küszöb sosem riaszt — enélkül minden app azonnal `critical`-be esne (0 >= 0).
382
+ rssCrit: this.rssCritPct > 0 && set.rssPct >= this.rssCritPct,
383
+ heapWarn: set.pct >= this.warnPct,
384
+ gcWarn: set.gcFraction >= this.gcWarnFraction,
385
+ rssWarn: this.rssWarnPct > 0 && set.rssPct >= this.rssWarnPct,
386
+ };
387
+ }
343
388
  /** A 'gc' perf-entry-k figyelője — a GC-ben töltött időt gyűjti a gördülő ablakhoz. Best-effort (nem kritikus). */
344
389
  installGcObserver() {
345
390
  try {
346
391
  this.gcObserver = new perf_hooks_1.PerformanceObserver((list) => {
347
- const now = Date.now();
348
- for (const entry of list.getEntries()) {
349
- this.gcEvents.push({ at: now, ms: entry.duration });
350
- }
392
+ this.addGcEntries(list.getEntries());
351
393
  });
352
394
  this.gcObserver.observe({ entryTypes: ['gc'] });
353
395
  }
@@ -1 +1 @@
1
- {"version":3,"file":"memory-guard.service.js","sourceRoot":"","sources":["../../../src/_services/core/memory-guard.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-guard.service.js","sourceRoot":"","sources":["../../../src/_services/core/memory-guard.service.ts"],"names":[],"mappings":"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"}