@futdevpro/nts-dynamo 1.15.194 → 1.15.196

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.
@@ -0,0 +1,101 @@
1
+ import { URL } from 'url';
2
+ /**
3
+ * BFR-FSMED-013 — SSRF-safe, KORLÁTOS remote-metadata kliens.
4
+ *
5
+ * Egy nyilvános felületről érkező URL letöltése a klasszikus SSRF-felület: a szerver a saját
6
+ * hálózati pozíciójából kér le tetszőleges címet. A védelemnek ezért **minden DNS-válaszra és
7
+ * minden redirect-hopra** érvényesnek kell lennie, nem csak az első URL-re — különben egy
8
+ * **DNS-rebinding** vagy egy belső címre mutató redirect átviszi a kérést a privát hálózatba.
9
+ *
10
+ * Amit kikényszerít:
11
+ * - URL-normalizálás, credential-es URL (`user:pass@`) TILTVA;
12
+ * - protokoll-policy (alapból csak `https:`);
13
+ * - **minden** feloldott IP ellenőrzése (privát / loopback / link-local / reserved / CGNAT),
14
+ * IPv4-in-IPv6 és vegyes jelölés kezelésével;
15
+ * - redirect-limit, és **hopokként újra-ellenőrzött** cél;
16
+ * - timeout, maximális válasz-méret (bounded stream — a body sosem olvasható korlátlanul),
17
+ * engedélyezett content-type lista;
18
+ * - stabil `reason` kódok és REDAKTÁLT diagnosztika (a hibába nem kerül credential).
19
+ */
20
+ /** Stabil, gépileg feldolgozható elutasítási okok. */
21
+ export declare enum DyNTS_SafeFetchReason_Type {
22
+ invalidUrl = "invalid-url",
23
+ credentialsInUrl = "credentials-in-url",
24
+ protocolNotAllowed = "protocol-not-allowed",
25
+ hostNotResolvable = "host-not-resolvable",
26
+ blockedAddress = "blocked-address",
27
+ tooManyRedirects = "too-many-redirects",
28
+ contentTypeNotAllowed = "content-type-not-allowed",
29
+ responseTooLarge = "response-too-large",
30
+ timeout = "timeout",
31
+ requestFailed = "request-failed"
32
+ }
33
+ /** A kliens beállításai — minden korlát explicit, alapértelmezés a szigorúbb. */
34
+ export interface DyNTS_SafeFetch_Options_Interface {
35
+ allowedProtocols?: string[];
36
+ maxRedirects?: number;
37
+ timeoutMs?: number;
38
+ maxResponseBytes?: number;
39
+ allowedContentTypes?: string[];
40
+ /** Injektálható DNS-feloldó — teszthez és a rebinding-mátrixhoz. */
41
+ resolve?: (hostname: string) => Promise<string[]>;
42
+ /** Injektálható transport — teszthez, illetve saját HTTP-réteghez (proxy, mTLS). */
43
+ transport?: DyNTS_SafeFetch_Transport;
44
+ }
45
+ /** Egyetlen HTTP-hop kimenete — a body itt MÁR korlátos. */
46
+ export interface DyNTS_SafeFetch_TransportResult_Interface {
47
+ status: number;
48
+ headers: Record<string, string | string[] | undefined>;
49
+ body: string;
50
+ bytes: number;
51
+ truncated: boolean;
52
+ }
53
+ /** Injektálható transport-szignatúra. */
54
+ export type DyNTS_SafeFetch_Transport = (url: URL, options: DyNTS_SafeFetch_Options_Interface) => Promise<DyNTS_SafeFetch_TransportResult_Interface>;
55
+ /** Sikeres letöltés eredménye — a body KORLÁTOS. */
56
+ export interface DyNTS_SafeFetch_Result_Interface {
57
+ finalUrl: string;
58
+ /** A bejárt hopok, az eredeti URL-lel kezdve — auditálható redirect-lánc. */
59
+ redirectChain: string[];
60
+ status: number;
61
+ contentType: string;
62
+ bytes: number;
63
+ body: string;
64
+ truncated: boolean;
65
+ }
66
+ /** Elutasítás — stabil kóddal és redaktált diagnosztikával. */
67
+ export declare class DyNTS_SafeFetch_Error extends Error {
68
+ readonly reason: DyNTS_SafeFetchReason_Type;
69
+ readonly diagnostic?: Record<string, unknown>;
70
+ constructor(reason: DyNTS_SafeFetchReason_Type, message: string, diagnostic?: Record<string, unknown>);
71
+ }
72
+ export declare class DyNTS_SafeRemoteFetch_Util {
73
+ private static readonly defaults;
74
+ /**
75
+ * IP-cím blokkolandó-e. IPv4 és IPv6 (a **IPv4-in-IPv6** alakkal együtt: `::ffff:10.0.0.1`).
76
+ *
77
+ * ⚠️ Ez a döntő pont: a hostnév ártalmatlan lehet, miközben egy KÜLSŐ DNS-szerver privát címre
78
+ * oldja fel (DNS-rebinding). Ezért a szűrés a FELOLDOTT CÍMEN történik, nem a néven.
79
+ */
80
+ static isBlockedAddress(address: string): boolean;
81
+ /** Privát / loopback / link-local / reserved / CGNAT IPv4. */
82
+ private static isBlockedIpv4;
83
+ /** Loopback / link-local / unique-local / unspecified IPv6. */
84
+ private static isBlockedIpv6;
85
+ /** URL-normalizálás + protokoll- és credential-ellenőrzés. */
86
+ static assertUrlIsAllowed(rawUrl: string, options?: DyNTS_SafeFetch_Options_Interface): URL;
87
+ /** A host MINDEN feloldott címét ellenőrzi — egyetlen blokkolt cím is elutasít. */
88
+ static assertHostResolvesToPublicAddress(hostname: string, options?: DyNTS_SafeFetch_Options_Interface): Promise<string[]>;
89
+ /** Content-type engedélyezett-e (a paramétereket levágva). */
90
+ static isContentTypeAllowed(contentType: string, options?: DyNTS_SafeFetch_Options_Interface): boolean;
91
+ /**
92
+ * KORLÁTOS letöltés: minden hopon újra-ellenőrzött cél, bounded body, timeout.
93
+ *
94
+ * A body-t soha nem olvassuk korlátlanul: a `maxResponseBytes` fölött a kapcsolatot elvágjuk
95
+ * (a `Content-Length` HIÁNYA nem mentesít — a stream-limit a valódi védelem).
96
+ */
97
+ static fetchMetadata(rawUrl: string, options?: DyNTS_SafeFetch_Options_Interface): Promise<DyNTS_SafeFetch_Result_Interface>;
98
+ /** Egyetlen HTTP-hívás bounded stream-olvasással és timeouttal (az alapértelmezett transport). */
99
+ static request(url: URL, options?: DyNTS_SafeFetch_Options_Interface): Promise<DyNTS_SafeFetch_TransportResult_Interface>;
100
+ }
101
+ //# sourceMappingURL=safe-remote-fetch.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-remote-fetch.util.d.ts","sourceRoot":"","sources":["../../src/_collections/safe-remote-fetch.util.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;;;;;;;;;;;;;;;;GAiBG;AAEH,sDAAsD;AACtD,oBAAY,0BAA0B;IACpC,UAAU,gBAAgB;IAC1B,gBAAgB,uBAAuB;IACvC,kBAAkB,yBAAyB;IAC3C,iBAAiB,wBAAwB;IACzC,cAAc,oBAAoB;IAClC,gBAAgB,uBAAuB;IACvC,qBAAqB,6BAA6B;IAClD,gBAAgB,uBAAuB;IACvC,OAAO,YAAY;IACnB,aAAa,mBAAmB;CACjC;AAED,iFAAiF;AACjF,MAAM,WAAW,iCAAiC;IAChD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,oEAAoE;IACpE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,oFAAoF;IACpF,SAAS,CAAC,EAAE,yBAAyB,CAAC;CACvC;AAED,4DAA4D;AAC5D,MAAM,WAAW,yCAAyC;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,yCAAyC;AACzC,MAAM,MAAM,yBAAyB,GACnC,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,iCAAiC,KAAK,OAAO,CAAC,yCAAyC,CAAC,CAAC;AAE/G,oDAAoD;AACpD,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,+DAA+D;AAC/D,qBAAa,qBAAsB,SAAQ,KAAK;aAE5B,MAAM,EAAE,0BAA0B;aAElC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFpC,MAAM,EAAE,0BAA0B,EAClD,OAAO,EAAE,MAAM,EACC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAKvD;AAED,qBAAa,0BAA0B;IAErC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAM9B;IAEF;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAoBjD,8DAA8D;IAC9D,OAAO,CAAC,MAAM,CAAC,aAAa;IAqB5B,+DAA+D;IAC/D,OAAO,CAAC,MAAM,CAAC,aAAa;IAU5B,8DAA8D;IAC9D,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iCAAiC,GAAG,GAAG;IAgC3F,mFAAmF;WACtE,iCAAiC,CAC5C,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iCAAiC,GAC5D,OAAO,CAAC,MAAM,EAAE,CAAC;IAyCpB,8DAA8D;IAC9D,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iCAAiC,GAAG,OAAO;IAQtG;;;;;OAKG;WACU,aAAa,CACxB,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iCAAiC,GAC1D,OAAO,CAAC,gCAAgC,CAAC;IAkD5C,kGAAkG;IAClG,MAAM,CAAC,OAAO,CACZ,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,iCAAiC,GACpD,OAAO,CAAC,yCAAyC,CAAC;CAgEtD"}
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_SafeRemoteFetch_Util = exports.DyNTS_SafeFetch_Error = exports.DyNTS_SafeFetchReason_Type = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const dns = tslib_1.__importStar(require("dns"));
6
+ const http = tslib_1.__importStar(require("http"));
7
+ const https = tslib_1.__importStar(require("https"));
8
+ const url_1 = require("url");
9
+ /**
10
+ * BFR-FSMED-013 — SSRF-safe, KORLÁTOS remote-metadata kliens.
11
+ *
12
+ * Egy nyilvános felületről érkező URL letöltése a klasszikus SSRF-felület: a szerver a saját
13
+ * hálózati pozíciójából kér le tetszőleges címet. A védelemnek ezért **minden DNS-válaszra és
14
+ * minden redirect-hopra** érvényesnek kell lennie, nem csak az első URL-re — különben egy
15
+ * **DNS-rebinding** vagy egy belső címre mutató redirect átviszi a kérést a privát hálózatba.
16
+ *
17
+ * Amit kikényszerít:
18
+ * - URL-normalizálás, credential-es URL (`user:pass@`) TILTVA;
19
+ * - protokoll-policy (alapból csak `https:`);
20
+ * - **minden** feloldott IP ellenőrzése (privát / loopback / link-local / reserved / CGNAT),
21
+ * IPv4-in-IPv6 és vegyes jelölés kezelésével;
22
+ * - redirect-limit, és **hopokként újra-ellenőrzött** cél;
23
+ * - timeout, maximális válasz-méret (bounded stream — a body sosem olvasható korlátlanul),
24
+ * engedélyezett content-type lista;
25
+ * - stabil `reason` kódok és REDAKTÁLT diagnosztika (a hibába nem kerül credential).
26
+ */
27
+ /** Stabil, gépileg feldolgozható elutasítási okok. */
28
+ var DyNTS_SafeFetchReason_Type;
29
+ (function (DyNTS_SafeFetchReason_Type) {
30
+ DyNTS_SafeFetchReason_Type["invalidUrl"] = "invalid-url";
31
+ DyNTS_SafeFetchReason_Type["credentialsInUrl"] = "credentials-in-url";
32
+ DyNTS_SafeFetchReason_Type["protocolNotAllowed"] = "protocol-not-allowed";
33
+ DyNTS_SafeFetchReason_Type["hostNotResolvable"] = "host-not-resolvable";
34
+ DyNTS_SafeFetchReason_Type["blockedAddress"] = "blocked-address";
35
+ DyNTS_SafeFetchReason_Type["tooManyRedirects"] = "too-many-redirects";
36
+ DyNTS_SafeFetchReason_Type["contentTypeNotAllowed"] = "content-type-not-allowed";
37
+ DyNTS_SafeFetchReason_Type["responseTooLarge"] = "response-too-large";
38
+ DyNTS_SafeFetchReason_Type["timeout"] = "timeout";
39
+ DyNTS_SafeFetchReason_Type["requestFailed"] = "request-failed";
40
+ })(DyNTS_SafeFetchReason_Type || (exports.DyNTS_SafeFetchReason_Type = DyNTS_SafeFetchReason_Type = {}));
41
+ /** Elutasítás — stabil kóddal és redaktált diagnosztikával. */
42
+ class DyNTS_SafeFetch_Error extends Error {
43
+ reason;
44
+ diagnostic;
45
+ constructor(reason, message, diagnostic) {
46
+ super(message);
47
+ this.reason = reason;
48
+ this.diagnostic = diagnostic;
49
+ this.name = 'DyNTS_SafeFetch_Error';
50
+ }
51
+ }
52
+ exports.DyNTS_SafeFetch_Error = DyNTS_SafeFetch_Error;
53
+ class DyNTS_SafeRemoteFetch_Util {
54
+ static defaults = {
55
+ allowedProtocols: ['https:'],
56
+ maxRedirects: 3,
57
+ timeoutMs: 5_000,
58
+ maxResponseBytes: 256 * 1024,
59
+ allowedContentTypes: ['text/html', 'application/json', 'text/plain', 'application/xml', 'text/xml'],
60
+ };
61
+ /**
62
+ * IP-cím blokkolandó-e. IPv4 és IPv6 (a **IPv4-in-IPv6** alakkal együtt: `::ffff:10.0.0.1`).
63
+ *
64
+ * ⚠️ Ez a döntő pont: a hostnév ártalmatlan lehet, miközben egy KÜLSŐ DNS-szerver privát címre
65
+ * oldja fel (DNS-rebinding). Ezért a szűrés a FELOLDOTT CÍMEN történik, nem a néven.
66
+ */
67
+ static isBlockedAddress(address) {
68
+ const value = `${address ?? ''}`.trim().toLowerCase().replace(/^\[|\]$/g, '');
69
+ if (!value.length) {
70
+ return true;
71
+ }
72
+ // IPv4-in-IPv6 (`::ffff:10.0.0.1`) és a `::ffff:0a00:0001` hexa-alak → az IPv4-re vezetjük vissza
73
+ const mappedIpv4 = value.match(/^::ffff:(\d{1,3}(?:\.\d{1,3}){3})$/);
74
+ if (mappedIpv4) {
75
+ return DyNTS_SafeRemoteFetch_Util.isBlockedIpv4(mappedIpv4[1]);
76
+ }
77
+ if (value.includes(':')) {
78
+ return DyNTS_SafeRemoteFetch_Util.isBlockedIpv6(value);
79
+ }
80
+ return DyNTS_SafeRemoteFetch_Util.isBlockedIpv4(value);
81
+ }
82
+ /** Privát / loopback / link-local / reserved / CGNAT IPv4. */
83
+ static isBlockedIpv4(address) {
84
+ const parts = address.split('.').map((p) => Number(p));
85
+ if (parts.length !== 4 || parts.some((n) => !Number.isInteger(n) || n < 0 || n > 255)) {
86
+ return true;
87
+ }
88
+ const [a, b] = parts;
89
+ return a === 0 // "this network"
90
+ || a === 10 // privát
91
+ || a === 127 // loopback
92
+ || (a === 169 && b === 254) // link-local
93
+ || (a === 172 && b >= 16 && b <= 31) // privát
94
+ || (a === 192 && b === 168) // privát
95
+ || (a === 100 && b >= 64 && b <= 127) // CGNAT
96
+ || (a === 192 && b === 0) // IETF protocol assignments / TEST-NET-1
97
+ || a === 198 && (b === 18 || b === 19) // benchmark
98
+ || a >= 224; // multicast + reserved
99
+ }
100
+ /** Loopback / link-local / unique-local / unspecified IPv6. */
101
+ static isBlockedIpv6(address) {
102
+ if (address === '::' || address === '::1') {
103
+ return true;
104
+ }
105
+ return /^fe[89ab]/.test(address) // link-local
106
+ || /^f[cd]/.test(address) // unique-local
107
+ || /^ff/.test(address); // multicast
108
+ }
109
+ /** URL-normalizálás + protokoll- és credential-ellenőrzés. */
110
+ static assertUrlIsAllowed(rawUrl, options) {
111
+ let url;
112
+ try {
113
+ url = new url_1.URL(`${rawUrl}`);
114
+ }
115
+ catch {
116
+ throw new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.invalidUrl, 'The URL could not be parsed.');
117
+ }
118
+ // A credential a REDIRECT-en is átöröklődhetne, és a naplóba is beszivárogna — tiltva.
119
+ if (url.username.length || url.password.length) {
120
+ throw new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.credentialsInUrl, 'A URL carrying credentials is not allowed.', { host: url.hostname });
121
+ }
122
+ const allowed = options?.allowedProtocols ?? DyNTS_SafeRemoteFetch_Util.defaults.allowedProtocols;
123
+ if (!allowed.includes(url.protocol)) {
124
+ throw new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.protocolNotAllowed, `The '${url.protocol}' protocol is not allowed.`, { protocol: url.protocol, allowed: allowed });
125
+ }
126
+ return url;
127
+ }
128
+ /** A host MINDEN feloldott címét ellenőrzi — egyetlen blokkolt cím is elutasít. */
129
+ static async assertHostResolvesToPublicAddress(hostname, options) {
130
+ const resolver = options?.resolve
131
+ ?? (async (host) => {
132
+ const records = await dns.promises.lookup(host, { all: true });
133
+ return records.map((r) => r.address);
134
+ });
135
+ let addresses;
136
+ try {
137
+ addresses = await resolver(hostname);
138
+ }
139
+ catch {
140
+ throw new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.hostNotResolvable, 'The host could not be resolved.', { host: hostname });
141
+ }
142
+ if (!addresses?.length) {
143
+ throw new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.hostNotResolvable, 'The host resolved to no address.', { host: hostname });
144
+ }
145
+ const blocked = addresses.filter((address) => DyNTS_SafeRemoteFetch_Util.isBlockedAddress(address));
146
+ if (blocked.length) {
147
+ throw new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.blockedAddress, 'The host resolves to a non-public address.', { host: hostname, blockedCount: blocked.length });
148
+ }
149
+ return addresses;
150
+ }
151
+ /** Content-type engedélyezett-e (a paramétereket levágva). */
152
+ static isContentTypeAllowed(contentType, options) {
153
+ const allowed = options?.allowedContentTypes
154
+ ?? DyNTS_SafeRemoteFetch_Util.defaults.allowedContentTypes;
155
+ const value = `${contentType ?? ''}`.split(';')[0].trim().toLowerCase();
156
+ return allowed.includes(value);
157
+ }
158
+ /**
159
+ * KORLÁTOS letöltés: minden hopon újra-ellenőrzött cél, bounded body, timeout.
160
+ *
161
+ * A body-t soha nem olvassuk korlátlanul: a `maxResponseBytes` fölött a kapcsolatot elvágjuk
162
+ * (a `Content-Length` HIÁNYA nem mentesít — a stream-limit a valódi védelem).
163
+ */
164
+ static async fetchMetadata(rawUrl, options) {
165
+ const maxRedirects = options?.maxRedirects ?? DyNTS_SafeRemoteFetch_Util.defaults.maxRedirects;
166
+ const transport = options?.transport ?? DyNTS_SafeRemoteFetch_Util.request;
167
+ const redirectChain = [];
168
+ let currentUrl = rawUrl;
169
+ for (let hop = 0; hop <= maxRedirects; hop++) {
170
+ const url = DyNTS_SafeRemoteFetch_Util.assertUrlIsAllowed(currentUrl, options);
171
+ await DyNTS_SafeRemoteFetch_Util.assertHostResolvesToPublicAddress(url.hostname, options);
172
+ redirectChain.push(url.toString());
173
+ const response = await transport(url, options ?? {});
174
+ const location = `${response.headers.location ?? ''}` || undefined;
175
+ if (response.status >= 300 && response.status < 400 && location) {
176
+ // A redirect celja UJRA vegigmegy a teljes ellenorzesen: URL-policy, credential-tiltas ES
177
+ // DNS-feloldas. Ez zarja a "publikus elso hop, privat masodik hop" utat.
178
+ currentUrl = new url_1.URL(location, url).toString();
179
+ continue;
180
+ }
181
+ const contentType = `${response.headers['content-type'] ?? ''}`;
182
+ if (!DyNTS_SafeRemoteFetch_Util.isContentTypeAllowed(contentType, options)) {
183
+ throw new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.contentTypeNotAllowed, 'The response content-type is not allowed.', { contentType: contentType.split(';')[0], finalUrl: url.toString() });
184
+ }
185
+ return {
186
+ finalUrl: url.toString(),
187
+ redirectChain: redirectChain,
188
+ status: response.status,
189
+ contentType: contentType,
190
+ bytes: response.bytes,
191
+ body: response.body,
192
+ truncated: response.truncated,
193
+ };
194
+ }
195
+ throw new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.tooManyRedirects, 'The redirect limit was exceeded.', { maxRedirects: maxRedirects, hops: redirectChain.length });
196
+ }
197
+ /** Egyetlen HTTP-hívás bounded stream-olvasással és timeouttal (az alapértelmezett transport). */
198
+ static request(url, options) {
199
+ const timeoutMs = options?.timeoutMs ?? DyNTS_SafeRemoteFetch_Util.defaults.timeoutMs;
200
+ const maxBytes = options?.maxResponseBytes ?? DyNTS_SafeRemoteFetch_Util.defaults.maxResponseBytes;
201
+ const lib = url.protocol === 'http:' ? http : https;
202
+ return new Promise((resolve, reject) => {
203
+ const request = lib.request(url, { method: 'GET', timeout: timeoutMs }, (response) => {
204
+ let size = 0;
205
+ let truncated = false;
206
+ const chunks = [];
207
+ response.on('data', (chunk) => {
208
+ size += chunk.length;
209
+ if (size > maxBytes) {
210
+ truncated = true;
211
+ response.destroy();
212
+ return;
213
+ }
214
+ chunks.push(chunk);
215
+ });
216
+ response.on('end', () => {
217
+ resolve({
218
+ status: response.statusCode ?? 0,
219
+ headers: response.headers,
220
+ body: Buffer.concat(chunks).toString('utf8'),
221
+ bytes: size,
222
+ truncated: truncated,
223
+ });
224
+ });
225
+ response.on('close', () => {
226
+ if (truncated) {
227
+ resolve({
228
+ status: response.statusCode ?? 0,
229
+ headers: response.headers,
230
+ body: Buffer.concat(chunks).toString('utf8'),
231
+ bytes: size,
232
+ truncated: true,
233
+ });
234
+ }
235
+ });
236
+ });
237
+ request.on('timeout', () => {
238
+ request.destroy();
239
+ reject(new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.timeout, 'The request timed out.'));
240
+ });
241
+ request.on('error', (error) => {
242
+ // A hibaüzenet a HOSTOT tartalmazhatja, credentialt nem (azt már fentebb kizártuk).
243
+ reject(new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.requestFailed, 'The request failed.', { host: url.hostname, cause: error.name }));
244
+ });
245
+ request.end();
246
+ });
247
+ }
248
+ }
249
+ exports.DyNTS_SafeRemoteFetch_Util = DyNTS_SafeRemoteFetch_Util;
250
+ //# sourceMappingURL=safe-remote-fetch.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-remote-fetch.util.js","sourceRoot":"","sources":["../../src/_collections/safe-remote-fetch.util.ts"],"names":[],"mappings":";;;;AAAA,iDAA2B;AAC3B,mDAA6B;AAC7B,qDAA+B;AAC/B,6BAA0B;AAE1B;;;;;;;;;;;;;;;;;GAiBG;AAEH,sDAAsD;AACtD,IAAY,0BAWX;AAXD,WAAY,0BAA0B;IACpC,wDAA0B,CAAA;IAC1B,qEAAuC,CAAA;IACvC,yEAA2C,CAAA;IAC3C,uEAAyC,CAAA;IACzC,gEAAkC,CAAA;IAClC,qEAAuC,CAAA;IACvC,gFAAkD,CAAA;IAClD,qEAAuC,CAAA;IACvC,iDAAmB,CAAA;IACnB,8DAAgC,CAAA;AAClC,CAAC,EAXW,0BAA0B,0CAA1B,0BAA0B,QAWrC;AAwCD,+DAA+D;AAC/D,MAAa,qBAAsB,SAAQ,KAAK;IAE5B;IAEA;IAHlB,YACkB,MAAkC,EAClD,OAAe,EACC,UAAoC;QAEpD,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,WAAM,GAAN,MAAM,CAA4B;QAElC,eAAU,GAAV,UAAU,CAA0B;QAGpD,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AATD,sDASC;AAED,MAAa,0BAA0B;IAE7B,MAAM,CAAU,QAAQ,GAA+E;QAC7G,gBAAgB,EAAE,CAAE,QAAQ,CAAE;QAC9B,YAAY,EAAE,CAAC;QACf,SAAS,EAAE,KAAK;QAChB,gBAAgB,EAAE,GAAG,GAAG,IAAI;QAC5B,mBAAmB,EAAE,CAAE,WAAW,EAAE,kBAAkB,EAAE,YAAY,EAAE,iBAAiB,EAAE,UAAU,CAAE;KACtG,CAAC;IAEF;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAe;QACrC,MAAM,KAAK,GAAW,GAAG,OAAO,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAEtF,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,kGAAkG;QAClG,MAAM,UAAU,GAA4B,KAAK,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC9F,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,0BAA0B,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,0BAA0B,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,0BAA0B,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,8DAA8D;IACtD,MAAM,CAAC,aAAa,CAAC,OAAe;QAC1C,MAAM,KAAK,GAAa,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAS,EAAW,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;YACvG,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,CAAE,CAAC,EAAE,CAAC,CAAE,GAAa,KAAK,CAAC;QAEjC,OAAO,CAAC,KAAK,CAAC,CAAuB,iBAAiB;eACjD,CAAC,KAAK,EAAE,CAAwB,SAAS;eACzC,CAAC,KAAK,GAAG,CAAuB,WAAW;eAC3C,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAQ,aAAa;eAC7C,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS;eAC3C,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAQ,SAAS;eACzC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ;eAC3C,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAU,yCAAyC;eACzE,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,YAAY;eAChD,CAAC,IAAI,GAAG,CAAC,CAAuB,uBAAuB;IAC9D,CAAC;IAED,+DAA+D;IACvD,MAAM,CAAC,aAAa,CAAC,OAAe;QAC1C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAG,aAAa;eAC3C,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAQ,eAAe;eAC7C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAU,YAAY;IACjD,CAAC;IAED,8DAA8D;IAC9D,MAAM,CAAC,kBAAkB,CAAC,MAAc,EAAE,OAA2C;QACnF,IAAI,GAAQ,CAAC;QAEb,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,SAAG,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,qBAAqB,CAC7B,0BAA0B,CAAC,UAAU,EAAE,8BAA8B,CACtE,CAAC;QACJ,CAAC;QAED,uFAAuF;QACvF,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,IAAI,qBAAqB,CAC7B,0BAA0B,CAAC,gBAAgB,EAC3C,4CAA4C,EAC5C,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,CACvB,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAa,OAAO,EAAE,gBAAgB,IAAI,0BAA0B,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC5G,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,qBAAqB,CAC7B,0BAA0B,CAAC,kBAAkB,EAC7C,QAAQ,GAAG,CAAC,QAAQ,4BAA4B,EAChD,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAC7C,CAAC;QACJ,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,mFAAmF;IACnF,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAC5C,QAAgB,EAAE,OAA2C;QAE7D,MAAM,QAAQ,GAAwC,OAAO,EAAE,OAAO;eACjE,CAAC,KAAK,EAAE,IAAY,EAAqB,EAAE;gBAC5C,MAAM,OAAO,GAAwB,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAoB,EAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QAEL,IAAI,SAAmB,CAAC;QACxB,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,qBAAqB,CAC7B,0BAA0B,CAAC,iBAAiB,EAC5C,iCAAiC,EACjC,EAAE,IAAI,EAAE,QAAQ,EAAE,CACnB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,qBAAqB,CAC7B,0BAA0B,CAAC,iBAAiB,EAC5C,kCAAkC,EAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,CACnB,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAa,SAAS,CAAC,MAAM,CACxC,CAAC,OAAe,EAAW,EAAE,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,OAAO,CAAC,CACnF,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,qBAAqB,CAC7B,0BAA0B,CAAC,cAAc,EACzC,4CAA4C,EAC5C,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,CACjD,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,8DAA8D;IAC9D,MAAM,CAAC,oBAAoB,CAAC,WAAmB,EAAE,OAA2C;QAC1F,MAAM,OAAO,GAAa,OAAO,EAAE,mBAAmB;eACjD,0BAA0B,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC7D,MAAM,KAAK,GAAW,GAAG,WAAW,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAEhF,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,aAAa,CACxB,MAAc,EAAE,OAA2C;QAE3D,MAAM,YAAY,GAAW,OAAO,EAAE,YAAY,IAAI,0BAA0B,CAAC,QAAQ,CAAC,YAAY,CAAC;QACvG,MAAM,SAAS,GAA8B,OAAO,EAAE,SAAS,IAAI,0BAA0B,CAAC,OAAO,CAAC;QACtG,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,IAAI,UAAU,GAAW,MAAM,CAAC;QAEhC,KAAK,IAAI,GAAG,GAAW,CAAC,EAAE,GAAG,IAAI,YAAY,EAAE,GAAG,EAAE,EAAE,CAAC;YACrD,MAAM,GAAG,GAAQ,0BAA0B,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACpF,MAAM,0BAA0B,CAAC,iCAAiC,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAE1F,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEnC,MAAM,QAAQ,GAA8C,MAAM,SAAS,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;YAChG,MAAM,QAAQ,GAAuB,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,SAAS,CAAC;YAEvF,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAChE,0FAA0F;gBAC1F,yEAAyE;gBACzE,UAAU,GAAG,IAAI,SAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC/C,SAAS;YACX,CAAC;YAED,MAAM,WAAW,GAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC;YAExE,IAAI,CAAC,0BAA0B,CAAC,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC;gBAC3E,MAAM,IAAI,qBAAqB,CAC7B,0BAA0B,CAAC,qBAAqB,EAChD,2CAA2C,EAC3C,EAAE,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CACrE,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE;gBACxB,aAAa,EAAE,aAAa;gBAC5B,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,WAAW,EAAE,WAAW;gBACxB,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;aAC9B,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,qBAAqB,CAC7B,0BAA0B,CAAC,gBAAgB,EAC3C,kCAAkC,EAClC,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE,CAC3D,CAAC;IACJ,CAAC;IAED,kGAAkG;IAClG,MAAM,CAAC,OAAO,CACZ,GAAQ,EAAE,OAA2C;QAErD,MAAM,SAAS,GAAW,OAAO,EAAE,SAAS,IAAI,0BAA0B,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC9F,MAAM,QAAQ,GAAW,OAAO,EAAE,gBAAgB,IAAI,0BAA0B,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC3G,MAAM,GAAG,GAAiB,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAE,IAAgC,CAAC,CAAC,CAAC,KAAK,CAAC;QAE/F,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAQ,EAAE;YAC3C,MAAM,OAAO,GAAuB,GAAG,CAAC,OAAO,CAC7C,GAAG,EACH,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,EACrC,CAAC,QAA8B,EAAQ,EAAE;gBACvC,IAAI,IAAI,GAAW,CAAC,CAAC;gBACrB,IAAI,SAAS,GAAY,KAAK,CAAC;gBAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;gBAE5B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAQ,EAAE;oBAC1C,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;oBAErB,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;wBACpB,SAAS,GAAG,IAAI,CAAC;wBACjB,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACnB,OAAO;oBACT,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAS,EAAE;oBAC5B,OAAO,CAAC;wBACN,MAAM,EAAE,QAAQ,CAAC,UAAU,IAAI,CAAC;wBAChC,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAC5C,KAAK,EAAE,IAAI;wBACX,SAAS,EAAE,SAAS;qBACrB,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,GAAS,EAAE;oBAC9B,IAAI,SAAS,EAAE,CAAC;wBACd,OAAO,CAAC;4BACN,MAAM,EAAE,QAAQ,CAAC,UAAU,IAAI,CAAC;4BAChC,OAAO,EAAE,QAAQ,CAAC,OAAO;4BACzB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;4BAC5C,KAAK,EAAE,IAAI;4BACX,SAAS,EAAE,IAAI;yBAChB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAS,EAAE;gBAC/B,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,qBAAqB,CAAC,0BAA0B,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC;YAClG,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAQ,EAAE;gBACzC,oFAAoF;gBACpF,MAAM,CAAC,IAAI,qBAAqB,CAC9B,0BAA0B,CAAC,aAAa,EAAE,qBAAqB,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAC3G,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;;AAvRH,gEAwRC"}
@@ -20,6 +20,30 @@ export declare class DyNTS_RateLimit_Middleware extends DyNTS_SingletonServiceBa
20
20
  private endpointPolicies;
21
21
  /** Returns the process-wide rate-limit middleware. */
22
22
  static getInstance(): DyNTS_RateLimit_Middleware;
23
+ /**
24
+ * BFR-FSMED-012 — NEVESITETT SCOPE-ok a process-szintu singleton MELLE.
25
+ *
26
+ * A mert baj: a `getInstance().configure(...)` GLOBALISAN cserelte le a `keyExtractor`-t es az
27
+ * `endpointGrouper`-t, a policy-mapeket pedig osszevonta. Igy ha ket controller-csalad (pl. media
28
+ * es profile) ugyanabban a host appban mast igenyelt, a MASODIK configure csendben elvitte az
29
+ * elso viselkedeset — es ezt semmi nem jelezte.
30
+ *
31
+ * A scope-ok teljesen KULON allapotot visznek (sajat extractor, grouper, policy-map ES
32
+ * request-log/store), igy egymastol fuggetlenul konfiguralhatok. A `getInstance()` valtozatlanul
33
+ * a process-szintu alapertelmezett scope-ot adja — a meglevo hivok szamara semmi nem valtozik.
34
+ */
35
+ private static readonly namedScopes;
36
+ /**
37
+ * Egy NEVESITETT rate-limit scope (sajat, fuggetlen allapottal). Ugyanarra a nevre mindig
38
+ * ugyanazt a peldanyt adja vissza, igy a middleware tobbszor is bekothetо ugyanabba a scope-ba.
39
+ *
40
+ * @param scopeName A scope stabil neve (pl. a controller-csalad neve).
41
+ */
42
+ static getScope(scopeName: string): DyNTS_RateLimit_Middleware;
43
+ /** A letrehozott nevesitett scope-ok nevei (diagnosztika; tartalom-mentes). */
44
+ static getScopeNames(): string[];
45
+ /** Egy nevesitett scope eldobasa (fokent teszt-izolaciohoz). */
46
+ static resetScope(scopeName: string): boolean;
23
47
  /** Applies a validated configuration atomically; invalid settings do not partially mutate the service. */
24
48
  configure(config: DyNTS_RateLimit_Config): void;
25
49
  /** Returns content-free configuration diagnostics. */
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit.middleware.d.ts","sourceRoot":"","sources":["../../../src/_modules/rate-limit/rate-limit.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAK5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAyC/E,qFAAqF;AACrF,qBAAa,0BAA2B,SAAQ,0BAA0B;IACxE,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,wBAAwB,CAAqC;IACrE,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,sBAAsB,CAAkB;IAChD,OAAO,CAAC,yBAAyB,CAAkB;IACnD,OAAO,CAAC,YAAY,CAA2E;IAC/F,OAAO,CAAC,eAAe,CAAgE;IACvF,OAAO,CAAC,aAAa,CAInB;IACF,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,KAAK,CAAwE;IACrF,OAAO,CAAC,WAAW,CAAkD;IACrE,OAAO,CAAC,gBAAgB,CAAkD;IAE1E,sDAAsD;WACxC,WAAW,IAAI,0BAA0B;IAIvD,0GAA0G;IACnG,SAAS,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAkBtD,sDAAsD;IAC/C,SAAS,IAAI;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,OAAO,CAAC;QACzB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,sBAAsB,EAAE,MAAM,CAAC;QAC/B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,SAAS,EAAE,6BAA6B,CAAC;QACzC,kBAAkB,EAAE,OAAO,CAAC;KAC3B;IAeH,yCAAyC;IAClC,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAMzE,kCAAkC;IAC3B,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI3C,gDAAgD;IACzC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAMnF,yCAAyC;IAClC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIrD,oFAAoF;IACpF,SAAgB,KAAK,QAAe,OAAO,OAAO,QAAQ,KAAG,OAAO,CAAC,IAAI,CAAC,CAgDxE;IAEF,yFAAyF;IAClF,KAAK,IAAI,IAAI;IAMpB,2EAA2E;IACpE,WAAW,IAAI,IAAI;IAE1B,kEAAkE;IAC3D,gBAAgB,IAAI,IAAI;IAoB/B,OAAO,CAAC,mBAAmB;IAkD3B,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,4BAA4B;IAqBpC,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,MAAM;IAqBd,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,mBAAmB;CAY5B"}
1
+ {"version":3,"file":"rate-limit.middleware.d.ts","sourceRoot":"","sources":["../../../src/_modules/rate-limit/rate-limit.middleware.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,51 @@ class DyNTS_RateLimit_Middleware extends singleton_service_base_1.DyNTS_Singleto
35
35
  static getInstance() {
36
36
  return DyNTS_RateLimit_Middleware.getSingletonInstance();
37
37
  }
38
+ /**
39
+ * BFR-FSMED-012 — NEVESITETT SCOPE-ok a process-szintu singleton MELLE.
40
+ *
41
+ * A mert baj: a `getInstance().configure(...)` GLOBALISAN cserelte le a `keyExtractor`-t es az
42
+ * `endpointGrouper`-t, a policy-mapeket pedig osszevonta. Igy ha ket controller-csalad (pl. media
43
+ * es profile) ugyanabban a host appban mast igenyelt, a MASODIK configure csendben elvitte az
44
+ * elso viselkedeset — es ezt semmi nem jelezte.
45
+ *
46
+ * A scope-ok teljesen KULON allapotot visznek (sajat extractor, grouper, policy-map ES
47
+ * request-log/store), igy egymastol fuggetlenul konfiguralhatok. A `getInstance()` valtozatlanul
48
+ * a process-szintu alapertelmezett scope-ot adja — a meglevo hivok szamara semmi nem valtozik.
49
+ */
50
+ static namedScopes = new Map();
51
+ /**
52
+ * Egy NEVESITETT rate-limit scope (sajat, fuggetlen allapottal). Ugyanarra a nevre mindig
53
+ * ugyanazt a peldanyt adja vissza, igy a middleware tobbszor is bekothetо ugyanabba a scope-ba.
54
+ *
55
+ * @param scopeName A scope stabil neve (pl. a controller-csalad neve).
56
+ */
57
+ static getScope(scopeName) {
58
+ const name = `${scopeName ?? ''}`.trim();
59
+ if (!name.length) {
60
+ throw new fsm_dynamo_1.DyFM_Error({
61
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-RL-SCOPE0`,
62
+ message: 'getScope requires a non-empty scope name.',
63
+ userMessage: 'A server configuration error occurred.',
64
+ issuerService: 'DyNTS_RateLimit_Middleware',
65
+ });
66
+ }
67
+ const existing = DyNTS_RateLimit_Middleware.namedScopes.get(name);
68
+ if (existing) {
69
+ return existing;
70
+ }
71
+ const scope = new DyNTS_RateLimit_Middleware();
72
+ DyNTS_RateLimit_Middleware.namedScopes.set(name, scope);
73
+ return scope;
74
+ }
75
+ /** A letrehozott nevesitett scope-ok nevei (diagnosztika; tartalom-mentes). */
76
+ static getScopeNames() {
77
+ return [...DyNTS_RateLimit_Middleware.namedScopes.keys()];
78
+ }
79
+ /** Egy nevesitett scope eldobasa (fokent teszt-izolaciohoz). */
80
+ static resetScope(scopeName) {
81
+ return DyNTS_RateLimit_Middleware.namedScopes.delete(`${scopeName ?? ''}`.trim());
82
+ }
38
83
  /** Applies a validated configuration atomically; invalid settings do not partially mutate the service. */
39
84
  configure(config) {
40
85
  const snapshot = this.buildConfigSnapshot(config);
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit.middleware.js","sourceRoot":"","sources":["../../../src/_modules/rate-limit/rate-limit.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rate-limit.middleware.js","sourceRoot":"","sources":["../../../src/_modules/rate-limit/rate-limit.middleware.ts"],"names":[],"mappings":"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"}
package/build/index.d.ts CHANGED
@@ -32,6 +32,9 @@ export * from './_collections/signed-url.util';
32
32
  export * from './_collections/client-safe-error.util';
33
33
  export * from './_collections/client-safe-error-response.interface';
34
34
  export * from './_collections/load-shed.util';
35
+ export * from './_collections/secret-redaction.util';
36
+ export * from './_collections/dependency-host-guard.util';
37
+ export * from './_collections/safe-remote-fetch.util';
35
38
  export * from './_services/core/event-loop-diag.service';
36
39
  export * from './_services/core/request-hunter.service';
37
40
  export * from './_services/core/db-stats.service';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA2BA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qDAAqD,CAAC;AACpE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,sCAAsC,CAAC;AAIrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAK7C,mEAAmE;AACnE,cAAc,uDAAuD,CAAC;AACtE,cAAc,qDAAqD,CAAC;AACpE,cAAc,wDAAwD,CAAC;AACvE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wDAAwD,CAAC;AACvE,cAAc,yDAAyD,CAAC;AACxE,cAAc,uDAAuD,CAAC;AACtE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0DAA0D,CAAC;AACzE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,2DAA2D,CAAC;AAC1E,cAAc,2DAA2D,CAAC;AAC1E,cAAc,iDAAiD,CAAC;AAChE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,2DAA2D,CAAC;AAC1E,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qDAAqD,CAAC;AACpE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AAGrD,cAAc,wDAAwD,CAAC;AACvE,cAAc,gEAAgE,CAAA;AAC9E,cAAc,mDAAmD,CAAC;AAClE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,wDAAwD,CAAC;AACvE,cAAc,sDAAsD,CAAC;AACrE,cAAc,uDAAuD,CAAC;AAGtE,cAAc,gCAAgC,CAAC;AAG/C,cAAc,mDAAmD,CAAC;AAKlE,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oDAAoD,CAAC;AACnE,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oDAAoD,CAAC;AAEnE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oDAAoD,CAAC;AAGnE,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AAGnD,cAAc,+BAA+B,CAAC;AAG9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA2BA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qDAAqD,CAAC;AACpE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,sCAAsC,CAAC;AAIrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAK7C,mEAAmE;AACnE,cAAc,uDAAuD,CAAC;AACtE,cAAc,qDAAqD,CAAC;AACpE,cAAc,wDAAwD,CAAC;AACvE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wDAAwD,CAAC;AACvE,cAAc,yDAAyD,CAAC;AACxE,cAAc,uDAAuD,CAAC;AACtE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0DAA0D,CAAC;AACzE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,2DAA2D,CAAC;AAC1E,cAAc,2DAA2D,CAAC;AAC1E,cAAc,iDAAiD,CAAC;AAChE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,2DAA2D,CAAC;AAC1E,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qDAAqD,CAAC;AACpE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AAGrD,cAAc,wDAAwD,CAAC;AACvE,cAAc,gEAAgE,CAAA;AAC9E,cAAc,mDAAmD,CAAC;AAClE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,wDAAwD,CAAC;AACvE,cAAc,sDAAsD,CAAC;AACrE,cAAc,uDAAuD,CAAC;AAGtE,cAAc,gCAAgC,CAAC;AAG/C,cAAc,mDAAmD,CAAC;AAKlE,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oDAAoD,CAAC;AACnE,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oDAAoD,CAAC;AAEnE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oDAAoD,CAAC;AAGnE,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AAGnD,cAAc,+BAA+B,CAAC;AAG9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,mCAAmC,CAAC"}
package/build/index.js CHANGED
@@ -61,6 +61,9 @@ tslib_1.__exportStar(require("./_collections/signed-url.util"), exports);
61
61
  tslib_1.__exportStar(require("./_collections/client-safe-error.util"), exports);
62
62
  tslib_1.__exportStar(require("./_collections/client-safe-error-response.interface"), exports);
63
63
  tslib_1.__exportStar(require("./_collections/load-shed.util"), exports);
64
+ tslib_1.__exportStar(require("./_collections/secret-redaction.util"), exports);
65
+ tslib_1.__exportStar(require("./_collections/dependency-host-guard.util"), exports);
66
+ tslib_1.__exportStar(require("./_collections/safe-remote-fetch.util"), exports);
64
67
  tslib_1.__exportStar(require("./_services/core/event-loop-diag.service"), exports);
65
68
  tslib_1.__exportStar(require("./_services/core/request-hunter.service"), exports);
66
69
  tslib_1.__exportStar(require("./_services/core/db-stats.service"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;IAsBI;;;AAEJ,cAAc;AACd,sEAA4C;AAC5C,8EAAoD;AACpD,wFAA8D;AAC9D,8FAAoE;AACpE,sFAA4D;AAC5D,mFAAyD;AACzD,uFAA6D;AAC7D,+EAAqD;AAGrD,QAAQ;AACR,wEAA8C;AAC9C,8EAAoD;AACpD,8EAAoD;AACpD,uEAA6C;AAG7C,6CAA6C;AAE7C,mEAAmE;AACnE,gGAAsE;AACtE,8FAAoE;AACpE,iGAAuE;AACvE,yFAA+D;AAC/D,iGAAuE;AACvE,kGAAwE;AACxE,gGAAsE;AACtE,uFAA6D;AAC7D,mGAAyE;AACzE,qGAA2E;AAC3E,oGAA0E;AAC1E,oGAA0E;AAC1E,0FAAgE;AAChE,yFAA+D;AAC/D,oGAA0E;AAC1E,+EAAqD;AACrD,iFAAuD;AACvD,yEAA+C;AAC/C,gFAAsD;AACtD,8FAAoE;AACpE,wEAA8C;AAC9C,mFAAyD;AACzD,kFAAwD;AACxD,4EAAkD;AAClD,+EAAqD;AAErD,wBAAwB;AACxB,iGAAuE;AACvE,yGAA8E;AAC9E,4FAAkE;AAClE,qGAA2E;AAC3E,iGAAuE;AACvE,+FAAqE;AACrE,gGAAsE;AAEtE,eAAe;AACf,yEAA+C;AAE/C,qBAAqB;AACrB,4FAAkE;AAGlE,WAAW;AACX,gBAAgB;AAChB,uEAA6C;AAC7C,wEAA8C;AAE9C,yEAA+C;AAC/C,6FAAmE;AACnE,0EAAgD;AAChD,gFAAsD;AACtD,6FAAmE;AAEnE,sFAA4D;AAC5D,oFAA0D;AAC1D,6FAAmE;AAEnE,gBAAgB;AAChB,4EAAkD;AAClD,gFAAsD;AACtD,wEAA8C;AAC9C,sEAA4C;AAC5C,kFAAwD;AACxD,6EAAmD;AAEnD,kBAAkB;AAClB,wEAA8C;AAE9C,iBAAiB;AACjB,+EAAqD;AACrD,mFAAyD;AAEzD,kBAAkB;AAClB,4EAAkD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;IAsBI;;;AAEJ,cAAc;AACd,sEAA4C;AAC5C,8EAAoD;AACpD,wFAA8D;AAC9D,8FAAoE;AACpE,sFAA4D;AAC5D,mFAAyD;AACzD,uFAA6D;AAC7D,+EAAqD;AAGrD,QAAQ;AACR,wEAA8C;AAC9C,8EAAoD;AACpD,8EAAoD;AACpD,uEAA6C;AAG7C,6CAA6C;AAE7C,mEAAmE;AACnE,gGAAsE;AACtE,8FAAoE;AACpE,iGAAuE;AACvE,yFAA+D;AAC/D,iGAAuE;AACvE,kGAAwE;AACxE,gGAAsE;AACtE,uFAA6D;AAC7D,mGAAyE;AACzE,qGAA2E;AAC3E,oGAA0E;AAC1E,oGAA0E;AAC1E,0FAAgE;AAChE,yFAA+D;AAC/D,oGAA0E;AAC1E,+EAAqD;AACrD,iFAAuD;AACvD,yEAA+C;AAC/C,gFAAsD;AACtD,8FAAoE;AACpE,wEAA8C;AAC9C,+EAAqD;AACrD,oFAA0D;AAC1D,gFAAsD;AACtD,mFAAyD;AACzD,kFAAwD;AACxD,4EAAkD;AAClD,+EAAqD;AAErD,wBAAwB;AACxB,iGAAuE;AACvE,yGAA8E;AAC9E,4FAAkE;AAClE,qGAA2E;AAC3E,iGAAuE;AACvE,+FAAqE;AACrE,gGAAsE;AAEtE,eAAe;AACf,yEAA+C;AAE/C,qBAAqB;AACrB,4FAAkE;AAGlE,WAAW;AACX,gBAAgB;AAChB,uEAA6C;AAC7C,wEAA8C;AAE9C,yEAA+C;AAC/C,6FAAmE;AACnE,0EAAgD;AAChD,gFAAsD;AACtD,6FAAmE;AAEnE,sFAA4D;AAC5D,oFAA0D;AAC1D,6FAAmE;AAEnE,gBAAgB;AAChB,4EAAkD;AAClD,gFAAsD;AACtD,wEAA8C;AAC9C,sEAA4C;AAC5C,kFAAwD;AACxD,6EAAmD;AAEnD,kBAAkB;AAClB,wEAA8C;AAE9C,iBAAiB;AACjB,+EAAqD;AACrD,mFAAyD;AAEzD,kBAAkB;AAClB,4EAAkD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/nts-dynamo",
3
- "version": "01.15.194",
3
+ "version": "01.15.196",
4
4
  "description": "Dynamic NodeTS (NodeJS-Typescript), MongoDB Backend System Framework by Future Development Program Ltd.",
5
5
  "DyBu_settings": {
6
6
  "packageType": "server-package",