@ooneex/http-header 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,3 +1,433 @@
1
- import{UAParser as Z}from"ua-parser-js";class W{native;constructor(z){this.native=z}get(z){return this.native.get(z)}has(z){return this.native.has(z)}toJson(){let z={};return this.native.forEach((B,G)=>{z[G]=B}),z}getContentType(){return this.get("Content-Type")}getContentLength(){let z=this.get("Content-Length")||null;return z?Number.parseInt(z,10):0}getCharset(){let z=this.getContentType();if(!z)return null;let B=z.match(/charset *= *(?<charset>[a-z0-9-]+)/i);if(!B)return null;return B[1]?.toUpperCase()||null}getContentDisposition(){return this.get("Content-Disposition")}getAccept(){return this.get("Accept")??null}getLang(){let z=this.get("Accept-Language");if(!z||z.trim()==="")return null;let B=z.split(",").map((Q)=>Q.split(";")[0]?.trim()).filter((Q)=>Boolean(Q))[0];if(!B)return null;let G=B.split("-"),K=G[0];if(!K)return null;if(G.length===1)return{code:K};let N=G[1];return{code:K,...N&&{region:N}}}getAcceptEncoding(){let z=this.get("Accept-Encoding");if(!z)return null;return z.split(",").map((B)=>B.trim())}getHost(){return this.get("Host")}getUserAgent(){let z=this.get("User-Agent")||null;return z?Z(z):null}getReferer(){return this.get("Referer")}getOrigin(){return this.get("Origin")}getAuthorization(){return this.get("Authorization")}getBasicAuth(){let z=this.get("Authorization");if(!z)return null;let B=z.match(/Basic +(?<auth>[^, ]+)/);if(!B)return null;return B[1]||null}getBearerToken(){return(this.get("Authorization")||null)?.match(/Bearer +(?<token>[^, ]+)/)?.[1]||null}getCookies(){let z=this.get("Cookie");if(!z)return null;let B={};return z.split(";").forEach((G)=>{let[K,...N]=G.trim().split("=");if(K&&N.length>0){let Q=N.join("=");B[K.trim()]=decodeURIComponent(Q.trim())}}),Object.keys(B).length>0?B:null}getCookie(z){return this.getCookies()?.[z]||null}getIp(){return this.get("X-Forwarded-For")||this.get("X-Real-IP")||null}getXForwardedFor(){return this.get("X-Forwarded-For")}getXRealIP(){return this.get("X-Real-IP")}getClientIps(){let z=[],B=this.getXForwardedFor();if(B){let N=B.split(",").map((Q)=>Q.trim());z.push(...N)}let G=this.getXRealIP();if(G&&!z.includes(G))z.push(G);let K=this.getIp();if(K&&!z.includes(K))z.push(K);return z.filter((N)=>N&&N.length>0)}getCacheControl(){return this.get("Cache-Control")}getEtag(){return this.get("Etag")}getLastModified(){let z=this.get("Last-Modified");return z?new Date(z):null}getIfModifiedSince(){let z=this.get("If-Modified-Since");return z?new Date(z):null}getIfNoneMatch(){return this.get("If-None-Match")}getAccessControlAllowOrigin(){return this.get("Access-Control-Allow-Origin")}getAccessControlAllowMethods(){let z=this.get("Access-Control-Allow-Methods");if(!z)return null;return z.split(",").map((B)=>B.trim())}getAccessControlAllowHeaders(){let z=this.get("Access-Control-Allow-Headers");if(!z)return null;return z.split(",").map((B)=>B.trim())}getAccessControlAllowCredentials(){let z=this.get("Access-Control-Allow-Credentials");if(!z)return null;return z.toLowerCase()==="true"}getContentSecurityPolicy(){return this.get("Content-Security-Policy")}getStrictTransportSecurity(){return this.get("Strict-Transport-Security")}getXContentTypeOptions(){return this.get("X-Content-Type-Options")}getXFrameOptions(){return this.get("X-Frame-Options")}getXXSSProtection(){return this.get("X-XSS-Protection")}getLocation(){return this.get("Location")}isSecure(){return this.get("X-Forwarded-Proto")==="https"}isAjax(){return this.get("X-Requested-With")?.toLowerCase()==="xmlhttprequest"}isCorsRequest(){return this.has("Origin")}*[Symbol.iterator](){let z=[];this.native.forEach((B,G)=>{z.push([G,B])});for(let B of z)yield B}}class Y extends W{constructor(z){super(z||new Headers)}add(z,B){return this.native.append(z,B),this}remove(z){return this.native.delete(z),this}set(z,B){return this.native.set(z,B),this}contentType(z,B){let G=String(z),K=B?`${G}; charset=${B}`:G;if(this.add("Content-Type",K),G.startsWith("text/")||G==="application/json")this.add("Accept-Charset",B||"utf-8");return this}contentLength(z){return this.add("Content-Length",z.toString()),this}contentDisposition(z){return this.add("Content-Disposition",z)}clearContentType(){return this.remove("Content-Type"),this.remove("Accept-Charset"),this}setJson(z){return this.add("Accept","application/json"),this.contentType("application/json",z),this}setHtml(z){return this.contentType("text/html",z)}setText(z){return this.contentType("text/plain",z)}setForm(z){return this.contentType("application/x-www-form-urlencoded",z)}setFormData(z){return this.contentType("multipart/form-data",z)}setBlobType(z){return this.contentType("application/octet-stream",z)}setAccept(z){return this.add("Accept",z)}setLang(z){return this.set("Accept-Language",z)}setAcceptEncoding(z){return this.add("Accept-Encoding",z.join(", "))}setHost(z){return this.add("Host",z)}setUserAgent(z){return this.add("User-Agent",z)}setReferer(z){return this.add("Referer",z)}setOrigin(z){return this.add("Origin",z)}setAuthorization(z){return this.add("Authorization",z)}setBasicAuth(z){return this.add("Authorization",`Basic ${z}`)}setBearerToken(z){return this.add("Authorization",`Bearer ${z}`)}setCookie(z,B,G){let K=`${z}=${B}`;if(G?.maxAge!==void 0)K+=`; Max-Age=${G.maxAge}`;if(G?.expires)K+=`; Expires=${G.expires.toUTCString()}`;if(G?.path)K+=`; Path=${G.path}`;if(G?.domain)K+=`; Domain=${G.domain}`;if(G?.secure)K+="; Secure";if(G?.httpOnly)K+="; HttpOnly";if(G?.sameSite)K+=`; SameSite=${G.sameSite}`;return this.add("Set-Cookie",K)}setCookies(z){return z.forEach((B)=>{this.setCookie(B.name,B.value,B.options)}),this}addCookie(z,B,G){return this.setCookie(z,B,G)}removeCookie(z,B){let G=new Date(0);return this.setCookie(z,"",{...B,expires:G,maxAge:0})}setCacheControl(z){return this.add("Cache-Control",z)}setEtag(z){return this.add("Etag",z)}setLastModified(z){return this.add("Last-Modified",z.toUTCString())}setIfModifiedSince(z){return this.add("If-Modified-Since",z.toUTCString())}setAccessControlAllowOrigin(z){return this.add("Access-Control-Allow-Origin",z)}setAccessControlAllowMethods(z){let B=z.join(", ");return this.add("Access-Control-Allow-Methods",B)}setAccessControlAllowHeaders(z){let B=z.join(", ");return this.add("Access-Control-Allow-Headers",B)}setAccessControlAllowCredentials(z){return this.add("Access-Control-Allow-Credentials",z.toString())}setContentSecurityPolicy(z){return this.add("Content-Security-Policy",z)}setStrictTransportSecurity(z,B=!1,G=!1){let K=`max-age=${z}`;if(B)K+="; includeSubDomains";if(G)K+="; preload";return this.add("Strict-Transport-Security",K)}setXContentTypeOptions(z="nosniff"){return this.add("X-Content-Type-Options",z)}setXFrameOptions(z){return this.add("X-Frame-Options",z)}setXXSSProtection(z=!0,B){let G=z?"1":"0";if(z&&B)G+=`; mode=${B}`;return this.add("X-XSS-Protection",G)}setLocation(z){return this.add("Location",z)}setCustom(z){return this.add("X-Custom",z)}}var $;((K)=>{K.STRICT="Strict";K.LAX="Lax";K.NONE="None"})($||={});var j;((G)=>{G.DENY="DENY";G.SAMEORIGIN="SAMEORIGIN"})(j||={});export{W as ReadonlyHeader,Y as Header,j as EXFrameOptions,$ as ECookieSameSite};
1
+ // src/ReadonlyHeader.ts
2
+ import { UAParser } from "ua-parser-js";
2
3
 
3
- //# debugId=E4D65FB11A59392764756E2164756E21
4
+ class ReadonlyHeader {
5
+ native;
6
+ constructor(native) {
7
+ this.native = native;
8
+ }
9
+ get(name) {
10
+ return this.native.get(name);
11
+ }
12
+ has(name) {
13
+ return this.native.has(name);
14
+ }
15
+ toJson() {
16
+ const headers = {};
17
+ this.native.forEach((value, key) => {
18
+ headers[key] = value;
19
+ });
20
+ return headers;
21
+ }
22
+ getContentType() {
23
+ return this.get("Content-Type");
24
+ }
25
+ getContentLength() {
26
+ const length = this.get("Content-Length") || null;
27
+ return length ? Number.parseInt(length, 10) : 0;
28
+ }
29
+ getCharset() {
30
+ const contentType = this.getContentType();
31
+ if (!contentType) {
32
+ return null;
33
+ }
34
+ const match = contentType.match(/charset *= *(?<charset>[a-z0-9-]+)/i);
35
+ if (!match) {
36
+ return null;
37
+ }
38
+ return match[1]?.toUpperCase() || null;
39
+ }
40
+ getContentDisposition() {
41
+ return this.get("Content-Disposition");
42
+ }
43
+ getAccept() {
44
+ return this.get("Accept") ?? null;
45
+ }
46
+ getLang() {
47
+ const acceptLanguage = this.get("Accept-Language");
48
+ if (!acceptLanguage || acceptLanguage.trim() === "") {
49
+ return null;
50
+ }
51
+ const firstLang = acceptLanguage.split(",").map((lang) => lang.split(";")[0]?.trim()).filter((lang) => Boolean(lang))[0];
52
+ if (!firstLang) {
53
+ return null;
54
+ }
55
+ const parts = firstLang.split("-");
56
+ const code = parts[0];
57
+ if (!code) {
58
+ return null;
59
+ }
60
+ if (parts.length === 1) {
61
+ return { code };
62
+ }
63
+ const region = parts[1];
64
+ return {
65
+ code,
66
+ ...region && { region }
67
+ };
68
+ }
69
+ getAcceptEncoding() {
70
+ const encoding = this.get("Accept-Encoding");
71
+ if (!encoding) {
72
+ return null;
73
+ }
74
+ return encoding.split(",").map((val) => val.trim());
75
+ }
76
+ getHost() {
77
+ return this.get("Host");
78
+ }
79
+ getUserAgent() {
80
+ const userAgent = this.get("User-Agent") || null;
81
+ return userAgent ? UAParser(userAgent) : null;
82
+ }
83
+ getReferer() {
84
+ return this.get("Referer");
85
+ }
86
+ getOrigin() {
87
+ return this.get("Origin");
88
+ }
89
+ getAuthorization() {
90
+ return this.get("Authorization");
91
+ }
92
+ getBasicAuth() {
93
+ const auth = this.get("Authorization");
94
+ if (!auth) {
95
+ return null;
96
+ }
97
+ const match = auth.match(/Basic +(?<auth>[^, ]+)/);
98
+ if (!match) {
99
+ return null;
100
+ }
101
+ return match[1] || null;
102
+ }
103
+ getBearerToken() {
104
+ const token = this.get("Authorization") || null;
105
+ const match = token?.match(/Bearer +(?<token>[^, ]+)/);
106
+ return match?.[1] || null;
107
+ }
108
+ getCookies() {
109
+ const cookieHeader = this.get("Cookie");
110
+ if (!cookieHeader) {
111
+ return null;
112
+ }
113
+ const cookies = {};
114
+ cookieHeader.split(";").forEach((cookie) => {
115
+ const [key, ...valueParts] = cookie.trim().split("=");
116
+ if (key && valueParts.length > 0) {
117
+ const value = valueParts.join("=");
118
+ cookies[key.trim()] = decodeURIComponent(value.trim());
119
+ }
120
+ });
121
+ return Object.keys(cookies).length > 0 ? cookies : null;
122
+ }
123
+ getCookie(name) {
124
+ const cookies = this.getCookies();
125
+ return cookies?.[name] || null;
126
+ }
127
+ getIp() {
128
+ return this.get("X-Forwarded-For") || this.get("X-Real-IP") || null;
129
+ }
130
+ getXForwardedFor() {
131
+ return this.get("X-Forwarded-For");
132
+ }
133
+ getXRealIP() {
134
+ return this.get("X-Real-IP");
135
+ }
136
+ getClientIps() {
137
+ const ips = [];
138
+ const xForwardedFor = this.getXForwardedFor();
139
+ if (xForwardedFor) {
140
+ const forwardedIps = xForwardedFor.split(",").map((ip2) => ip2.trim());
141
+ ips.push(...forwardedIps);
142
+ }
143
+ const xRealIp = this.getXRealIP();
144
+ if (xRealIp && !ips.includes(xRealIp)) {
145
+ ips.push(xRealIp);
146
+ }
147
+ const ip = this.getIp();
148
+ if (ip && !ips.includes(ip)) {
149
+ ips.push(ip);
150
+ }
151
+ return ips.filter((ip2) => ip2 && ip2.length > 0);
152
+ }
153
+ getCacheControl() {
154
+ return this.get("Cache-Control");
155
+ }
156
+ getEtag() {
157
+ return this.get("Etag");
158
+ }
159
+ getLastModified() {
160
+ const lastModified = this.get("Last-Modified");
161
+ return lastModified ? new Date(lastModified) : null;
162
+ }
163
+ getIfModifiedSince() {
164
+ const ifModifiedSince = this.get("If-Modified-Since");
165
+ return ifModifiedSince ? new Date(ifModifiedSince) : null;
166
+ }
167
+ getIfNoneMatch() {
168
+ return this.get("If-None-Match");
169
+ }
170
+ getAccessControlAllowOrigin() {
171
+ return this.get("Access-Control-Allow-Origin");
172
+ }
173
+ getAccessControlAllowMethods() {
174
+ const methods = this.get("Access-Control-Allow-Methods");
175
+ if (!methods) {
176
+ return null;
177
+ }
178
+ return methods.split(",").map((method) => method.trim());
179
+ }
180
+ getAccessControlAllowHeaders() {
181
+ const headers = this.get("Access-Control-Allow-Headers");
182
+ if (!headers) {
183
+ return null;
184
+ }
185
+ return headers.split(",").map((header) => header.trim());
186
+ }
187
+ getAccessControlAllowCredentials() {
188
+ const credentials = this.get("Access-Control-Allow-Credentials");
189
+ if (!credentials) {
190
+ return null;
191
+ }
192
+ return credentials.toLowerCase() === "true";
193
+ }
194
+ getContentSecurityPolicy() {
195
+ return this.get("Content-Security-Policy");
196
+ }
197
+ getStrictTransportSecurity() {
198
+ return this.get("Strict-Transport-Security");
199
+ }
200
+ getXContentTypeOptions() {
201
+ return this.get("X-Content-Type-Options");
202
+ }
203
+ getXFrameOptions() {
204
+ return this.get("X-Frame-Options");
205
+ }
206
+ getXXSSProtection() {
207
+ return this.get("X-XSS-Protection");
208
+ }
209
+ getLocation() {
210
+ return this.get("Location");
211
+ }
212
+ isSecure() {
213
+ const proto = this.get("X-Forwarded-Proto");
214
+ return proto === "https";
215
+ }
216
+ isAjax() {
217
+ return this.get("X-Requested-With")?.toLowerCase() === "xmlhttprequest";
218
+ }
219
+ isCorsRequest() {
220
+ return this.has("Origin");
221
+ }
222
+ *[Symbol.iterator]() {
223
+ const entries = [];
224
+ this.native.forEach((value, key) => {
225
+ entries.push([key, value]);
226
+ });
227
+ for (const entry of entries) {
228
+ yield entry;
229
+ }
230
+ }
231
+ }
232
+
233
+ // src/Header.ts
234
+ class Header extends ReadonlyHeader {
235
+ constructor(headers) {
236
+ super(headers || new Headers);
237
+ }
238
+ add(name, value) {
239
+ this.native.append(name, value);
240
+ return this;
241
+ }
242
+ remove(name) {
243
+ this.native.delete(name);
244
+ return this;
245
+ }
246
+ set(name, value) {
247
+ this.native.set(name, value);
248
+ return this;
249
+ }
250
+ contentType(type, charset) {
251
+ const typeStr = String(type);
252
+ const value = charset ? `${typeStr}; charset=${charset}` : typeStr;
253
+ this.add("Content-Type", value);
254
+ if (typeStr.startsWith("text/") || typeStr === "application/json") {
255
+ this.add("Accept-Charset", charset || "utf-8");
256
+ }
257
+ return this;
258
+ }
259
+ contentLength(length) {
260
+ this.add("Content-Length", length.toString());
261
+ return this;
262
+ }
263
+ contentDisposition(value) {
264
+ return this.add("Content-Disposition", value);
265
+ }
266
+ clearContentType() {
267
+ this.remove("Content-Type");
268
+ this.remove("Accept-Charset");
269
+ return this;
270
+ }
271
+ setJson(charset) {
272
+ this.add("Accept", "application/json");
273
+ this.contentType("application/json", charset);
274
+ return this;
275
+ }
276
+ setHtml(charset) {
277
+ return this.contentType("text/html", charset);
278
+ }
279
+ setText(charset) {
280
+ return this.contentType("text/plain", charset);
281
+ }
282
+ setForm(charset) {
283
+ return this.contentType("application/x-www-form-urlencoded", charset);
284
+ }
285
+ setFormData(charset) {
286
+ return this.contentType("multipart/form-data", charset);
287
+ }
288
+ setBlobType(charset) {
289
+ return this.contentType("application/octet-stream", charset);
290
+ }
291
+ setAccept(mimeType) {
292
+ return this.add("Accept", mimeType);
293
+ }
294
+ setLang(language) {
295
+ return this.set("Accept-Language", language);
296
+ }
297
+ setAcceptEncoding(encodings) {
298
+ return this.add("Accept-Encoding", encodings.join(", "));
299
+ }
300
+ setHost(host) {
301
+ return this.add("Host", host);
302
+ }
303
+ setUserAgent(userAgent) {
304
+ return this.add("User-Agent", userAgent);
305
+ }
306
+ setReferer(referer) {
307
+ return this.add("Referer", referer);
308
+ }
309
+ setOrigin(origin) {
310
+ return this.add("Origin", origin);
311
+ }
312
+ setAuthorization(value) {
313
+ return this.add("Authorization", value);
314
+ }
315
+ setBasicAuth(token) {
316
+ return this.add("Authorization", `Basic ${token}`);
317
+ }
318
+ setBearerToken(token) {
319
+ return this.add("Authorization", `Bearer ${token}`);
320
+ }
321
+ setCookie(name, value, options) {
322
+ let cookieValue = `${name}=${value}`;
323
+ if (options?.maxAge !== undefined) {
324
+ cookieValue += `; Max-Age=${options.maxAge}`;
325
+ }
326
+ if (options?.expires) {
327
+ cookieValue += `; Expires=${options.expires.toUTCString()}`;
328
+ }
329
+ if (options?.path)
330
+ cookieValue += `; Path=${options.path}`;
331
+ if (options?.domain)
332
+ cookieValue += `; Domain=${options.domain}`;
333
+ if (options?.secure)
334
+ cookieValue += "; Secure";
335
+ if (options?.httpOnly)
336
+ cookieValue += "; HttpOnly";
337
+ if (options?.sameSite)
338
+ cookieValue += `; SameSite=${options.sameSite}`;
339
+ return this.add("Set-Cookie", cookieValue);
340
+ }
341
+ setCookies(cookies) {
342
+ cookies.forEach((cookie) => {
343
+ this.setCookie(cookie.name, cookie.value, cookie.options);
344
+ });
345
+ return this;
346
+ }
347
+ addCookie(name, value, options) {
348
+ return this.setCookie(name, value, options);
349
+ }
350
+ removeCookie(name, options) {
351
+ const pastDate = new Date(0);
352
+ return this.setCookie(name, "", {
353
+ ...options,
354
+ expires: pastDate,
355
+ maxAge: 0
356
+ });
357
+ }
358
+ setCacheControl(value) {
359
+ return this.add("Cache-Control", value);
360
+ }
361
+ setEtag(value) {
362
+ return this.add("Etag", value);
363
+ }
364
+ setLastModified(date) {
365
+ return this.add("Last-Modified", date.toUTCString());
366
+ }
367
+ setIfModifiedSince(date) {
368
+ return this.add("If-Modified-Since", date.toUTCString());
369
+ }
370
+ setAccessControlAllowOrigin(origin) {
371
+ return this.add("Access-Control-Allow-Origin", origin);
372
+ }
373
+ setAccessControlAllowMethods(methods) {
374
+ const value = methods.join(", ");
375
+ return this.add("Access-Control-Allow-Methods", value);
376
+ }
377
+ setAccessControlAllowHeaders(headers) {
378
+ const value = headers.join(", ");
379
+ return this.add("Access-Control-Allow-Headers", value);
380
+ }
381
+ setAccessControlAllowCredentials(allow) {
382
+ return this.add("Access-Control-Allow-Credentials", allow.toString());
383
+ }
384
+ setContentSecurityPolicy(policy) {
385
+ return this.add("Content-Security-Policy", policy);
386
+ }
387
+ setStrictTransportSecurity(maxAge, includeSubDomains = false, preload = false) {
388
+ let value = `max-age=${maxAge}`;
389
+ if (includeSubDomains)
390
+ value += "; includeSubDomains";
391
+ if (preload)
392
+ value += "; preload";
393
+ return this.add("Strict-Transport-Security", value);
394
+ }
395
+ setXContentTypeOptions(value = "nosniff") {
396
+ return this.add("X-Content-Type-Options", value);
397
+ }
398
+ setXFrameOptions(value) {
399
+ return this.add("X-Frame-Options", value);
400
+ }
401
+ setXXSSProtection(enabled = true, mode) {
402
+ let value = enabled ? "1" : "0";
403
+ if (enabled && mode)
404
+ value += `; mode=${mode}`;
405
+ return this.add("X-XSS-Protection", value);
406
+ }
407
+ setLocation(location) {
408
+ return this.add("Location", location);
409
+ }
410
+ setCustom(value) {
411
+ return this.add("X-Custom", value);
412
+ }
413
+ }
414
+ // src/types.ts
415
+ var ECookieSameSite;
416
+ ((ECookieSameSite2) => {
417
+ ECookieSameSite2["STRICT"] = "Strict";
418
+ ECookieSameSite2["LAX"] = "Lax";
419
+ ECookieSameSite2["NONE"] = "None";
420
+ })(ECookieSameSite ||= {});
421
+ var EXFrameOptions;
422
+ ((EXFrameOptions2) => {
423
+ EXFrameOptions2["DENY"] = "DENY";
424
+ EXFrameOptions2["SAMEORIGIN"] = "SAMEORIGIN";
425
+ })(EXFrameOptions ||= {});
426
+ export {
427
+ ReadonlyHeader,
428
+ Header,
429
+ EXFrameOptions,
430
+ ECookieSameSite
431
+ };
432
+
433
+ //# debugId=93B6830F13E86DFE64756E2164756E21
package/dist/index.js.map CHANGED
@@ -6,7 +6,7 @@
6
6
  "import type { MimeType } from \"@ooneex/http-mimes\";\nimport type { CharsetType, EncodingType, HttpMethodType } from \"@ooneex/types\";\nimport { ReadonlyHeader } from \"./ReadonlyHeader\";\nimport type { HeaderFieldType, IHeader } from \"./types\";\n\nexport class Header extends ReadonlyHeader implements IHeader {\n constructor(headers?: Headers) {\n super(headers || new Headers());\n }\n\n // Core methods\n public add(name: HeaderFieldType, value: string): this {\n this.native.append(name, value);\n return this;\n }\n\n public remove(name: HeaderFieldType): this {\n this.native.delete(name);\n return this;\n }\n\n public set(name: HeaderFieldType, value: string): this {\n this.native.set(name, value);\n return this;\n }\n\n // Content handling\n public contentType(type: MimeType, charset?: CharsetType): this {\n const typeStr = String(type);\n const value = charset ? `${typeStr}; charset=${charset}` : typeStr;\n this.add(\"Content-Type\", value);\n\n if (typeStr.startsWith(\"text/\") || typeStr === \"application/json\") {\n this.add(\"Accept-Charset\", charset || \"utf-8\");\n }\n\n return this;\n }\n\n public contentLength(length: number): this {\n this.add(\"Content-Length\", length.toString());\n return this;\n }\n\n public contentDisposition(value: string): this {\n return this.add(\"Content-Disposition\", value);\n }\n\n public clearContentType(): this {\n this.remove(\"Content-Type\");\n this.remove(\"Accept-Charset\");\n return this;\n }\n\n // Content type convenience methods\n public setJson(charset?: CharsetType): this {\n this.add(\"Accept\", \"application/json\");\n this.contentType(\"application/json\", charset);\n return this;\n }\n\n public setHtml(charset?: CharsetType): this {\n return this.contentType(\"text/html\", charset);\n }\n\n public setText(charset?: CharsetType): this {\n return this.contentType(\"text/plain\", charset);\n }\n\n public setForm(charset?: CharsetType): this {\n return this.contentType(\"application/x-www-form-urlencoded\", charset);\n }\n\n public setFormData(charset?: CharsetType): this {\n return this.contentType(\"multipart/form-data\", charset);\n }\n\n public setBlobType(charset?: CharsetType): this {\n return this.contentType(\"application/octet-stream\", charset);\n }\n\n // Content negotiation\n public setAccept(mimeType: MimeType): this {\n return this.add(\"Accept\", mimeType as string);\n }\n\n public setLang(language: string): this {\n return this.set(\"Accept-Language\", language);\n }\n\n public setAcceptEncoding(encodings: EncodingType[]): this {\n return this.add(\"Accept-Encoding\", encodings.join(\", \"));\n }\n\n // Request information\n public setHost(host: string): this {\n return this.add(\"Host\", host);\n }\n\n public setUserAgent(userAgent: string): this {\n return this.add(\"User-Agent\", userAgent);\n }\n\n public setReferer(referer: string): this {\n return this.add(\"Referer\", referer);\n }\n\n public setOrigin(origin: string): this {\n return this.add(\"Origin\", origin);\n }\n\n // Authentication\n public setAuthorization(value: string): this {\n return this.add(\"Authorization\", value);\n }\n\n public setBasicAuth(token: string): this {\n return this.add(\"Authorization\", `Basic ${token}`);\n }\n\n public setBearerToken(token: string): this {\n return this.add(\"Authorization\", `Bearer ${token}`);\n }\n\n // Cookies\n public setCookie(\n name: string,\n value: string,\n options?: {\n domain?: string;\n path?: string;\n expires?: Date;\n maxAge?: number;\n secure?: boolean;\n httpOnly?: boolean;\n sameSite?: \"Strict\" | \"Lax\" | \"None\";\n },\n ): this {\n let cookieValue = `${name}=${value}`;\n\n if (options?.maxAge !== undefined) {\n cookieValue += `; Max-Age=${options.maxAge}`;\n }\n if (options?.expires) {\n cookieValue += `; Expires=${options.expires.toUTCString()}`;\n }\n if (options?.path) cookieValue += `; Path=${options.path}`;\n if (options?.domain) cookieValue += `; Domain=${options.domain}`;\n if (options?.secure) cookieValue += \"; Secure\";\n if (options?.httpOnly) cookieValue += \"; HttpOnly\";\n if (options?.sameSite) cookieValue += `; SameSite=${options.sameSite}`;\n\n return this.add(\"Set-Cookie\", cookieValue);\n }\n\n public setCookies(\n cookies: {\n name: string;\n value: string;\n options?: {\n domain?: string;\n path?: string;\n expires?: Date;\n maxAge?: number;\n secure?: boolean;\n httpOnly?: boolean;\n sameSite?: \"Strict\" | \"Lax\" | \"None\";\n };\n }[],\n ): this {\n cookies.forEach((cookie) => {\n this.setCookie(cookie.name, cookie.value, cookie.options);\n });\n return this;\n }\n\n public addCookie(\n name: string,\n value: string,\n options?: {\n domain?: string;\n path?: string;\n expires?: Date;\n maxAge?: number;\n secure?: boolean;\n httpOnly?: boolean;\n sameSite?: \"Strict\" | \"Lax\" | \"None\";\n },\n ): this {\n return this.setCookie(name, value, options);\n }\n\n public removeCookie(\n name: string,\n options?: {\n domain?: string;\n path?: string;\n },\n ): this {\n const pastDate = new Date(0); // January 1, 1970\n return this.setCookie(name, \"\", {\n ...options,\n expires: pastDate,\n maxAge: 0,\n });\n }\n\n // Caching\n public setCacheControl(value: string): this {\n return this.add(\"Cache-Control\", value);\n }\n\n public setEtag(value: string): this {\n return this.add(\"Etag\", value);\n }\n\n public setLastModified(date: Date): this {\n return this.add(\"Last-Modified\", date.toUTCString());\n }\n\n public setIfModifiedSince(date: Date): this {\n return this.add(\"If-Modified-Since\", date.toUTCString());\n }\n\n // CORS\n public setAccessControlAllowOrigin(origin: string): this {\n return this.add(\"Access-Control-Allow-Origin\", origin);\n }\n\n public setAccessControlAllowMethods(methods: HttpMethodType[]): this {\n const value = methods.join(\", \");\n return this.add(\"Access-Control-Allow-Methods\", value);\n }\n\n public setAccessControlAllowHeaders(headers: string[]): this {\n const value = headers.join(\", \");\n return this.add(\"Access-Control-Allow-Headers\", value);\n }\n\n public setAccessControlAllowCredentials(allow: boolean): this {\n return this.add(\"Access-Control-Allow-Credentials\", allow.toString());\n }\n\n // Security headers\n public setContentSecurityPolicy(policy: string): this {\n return this.add(\"Content-Security-Policy\", policy);\n }\n\n public setStrictTransportSecurity(maxAge: number, includeSubDomains = false, preload = false): this {\n let value = `max-age=${maxAge}`;\n if (includeSubDomains) value += \"; includeSubDomains\";\n if (preload) value += \"; preload\";\n return this.add(\"Strict-Transport-Security\", value);\n }\n\n public setXContentTypeOptions(value = \"nosniff\"): this {\n return this.add(\"X-Content-Type-Options\", value);\n }\n\n public setXFrameOptions(value: \"DENY\" | \"SAMEORIGIN\" | string): this {\n return this.add(\"X-Frame-Options\", value);\n }\n\n public setXXSSProtection(enabled = true, mode?: string): this {\n let value = enabled ? \"1\" : \"0\";\n if (enabled && mode) value += `; mode=${mode}`;\n return this.add(\"X-XSS-Protection\", value);\n }\n\n // Redirects\n public setLocation(location: string): this {\n return this.add(\"Location\", location);\n }\n\n // Utility\n public setCustom(value: string): this {\n return this.add(\"X-Custom\", value);\n }\n}\n",
7
7
  "import type { MimeType } from \"@ooneex/http-mimes\";\nimport type { CharsetType, EncodingType, HttpMethodType } from \"@ooneex/types\";\nimport type { HEADERS } from \"./constants\";\n\nexport enum ECookieSameSite {\n STRICT = \"Strict\",\n LAX = \"Lax\",\n NONE = \"None\",\n}\n\nexport enum EXFrameOptions {\n DENY = \"DENY\",\n SAMEORIGIN = \"SAMEORIGIN\",\n}\n\nexport type CookieSameSiteType = `${ECookieSameSite}`;\nexport type XFrameOptionsType = `${EXFrameOptions}` | string;\n\nexport type HeaderFieldType = (typeof HEADERS)[number] | `X-Custom-${string}` | \"X-Real-IP\";\n\nexport type UserAgentType = {\n browser: {\n name?: string;\n version?: string;\n major?: string;\n };\n engine: {\n name?: string;\n version?: string;\n };\n os: {\n name?: string;\n version?: string;\n };\n device: {\n vendor?: string;\n model?: string;\n type?: string;\n };\n cpu: {\n architecture?: string;\n };\n};\n\nexport type UserAgentBrowserType = UserAgentType[\"browser\"];\nexport type UserAgentEngineType = UserAgentType[\"engine\"];\nexport type UserAgentOsType = UserAgentType[\"os\"];\nexport type UserAgentDeviceType = UserAgentType[\"device\"];\nexport type UserAgentCpuType = UserAgentType[\"cpu\"];\n\nexport interface IUserAgent {\n readonly browser: UserAgentBrowserType;\n readonly engine: UserAgentEngineType;\n readonly os: UserAgentOsType;\n readonly device: UserAgentDeviceType;\n readonly cpu: UserAgentCpuType;\n}\n\nexport interface IHeader extends IReadonlyHeader {\n readonly native: Headers;\n\n // Core methods\n add: (name: HeaderFieldType, value: string) => IHeader;\n remove: (name: HeaderFieldType) => IHeader;\n set: (name: HeaderFieldType, value: string) => IHeader;\n\n // Content handling\n contentType: (value: MimeType, charset?: CharsetType) => IHeader;\n contentLength: (length: number) => IHeader;\n contentDisposition: (value: string) => IHeader;\n\n // Content type convenience methods\n setJson: (charset?: CharsetType) => IHeader;\n setHtml: (charset?: CharsetType) => IHeader;\n setText: (charset?: CharsetType) => IHeader;\n setForm: (charset?: CharsetType) => IHeader;\n setFormData: (charset?: CharsetType) => IHeader;\n setBlobType: (charset?: CharsetType) => IHeader;\n\n // Content negotiation\n setAccept: (mimeType: MimeType) => IHeader;\n setLang: (language: string) => IHeader;\n setAcceptEncoding: (encodings: EncodingType[]) => IHeader;\n\n // Request information\n setHost: (host: string) => IHeader;\n setUserAgent: (userAgent: string) => IHeader;\n setReferer: (referer: string) => IHeader;\n setOrigin: (origin: string) => IHeader;\n\n // Authentication\n setAuthorization: (value: string) => IHeader;\n setBasicAuth: (token: string) => IHeader;\n setBearerToken: (token: string) => IHeader;\n\n // Cookies\n setCookie: (\n name: string,\n value: string,\n options?: {\n domain?: string;\n path?: string;\n expires?: Date;\n maxAge?: number;\n secure?: boolean;\n httpOnly?: boolean;\n sameSite?: CookieSameSiteType;\n },\n ) => IHeader;\n\n setCookies: (\n cookies: Array<{\n name: string;\n value: string;\n options?: {\n domain?: string;\n path?: string;\n expires?: Date;\n maxAge?: number;\n secure?: boolean;\n httpOnly?: boolean;\n sameSite?: CookieSameSiteType;\n };\n }>,\n ) => IHeader;\n\n addCookie: (\n name: string,\n value: string,\n options?: {\n domain?: string;\n path?: string;\n expires?: Date;\n maxAge?: number;\n secure?: boolean;\n httpOnly?: boolean;\n sameSite?: CookieSameSiteType;\n },\n ) => IHeader;\n\n removeCookie: (\n name: string,\n options?: {\n domain?: string;\n path?: string;\n },\n ) => IHeader;\n\n // Caching\n setCacheControl: (value: string) => IHeader;\n setEtag: (value: string) => IHeader;\n setLastModified: (date: Date) => IHeader;\n setIfModifiedSince: (date: Date) => IHeader;\n\n // CORS\n setAccessControlAllowOrigin: (origin: string) => IHeader;\n setAccessControlAllowMethods: (methods: HttpMethodType[]) => IHeader;\n setAccessControlAllowHeaders: (headers: string[]) => IHeader;\n setAccessControlAllowCredentials: (allow: boolean) => IHeader;\n\n // Security headers\n setContentSecurityPolicy: (policy: string) => IHeader;\n setStrictTransportSecurity: (maxAge: number, includeSubDomains?: boolean, preload?: boolean) => IHeader;\n setXContentTypeOptions: (value?: string) => IHeader;\n setXFrameOptions: (value: XFrameOptionsType) => IHeader;\n setXXSSProtection: (enabled?: boolean, mode?: string) => IHeader;\n\n // Redirects\n setLocation: (location: string) => IHeader;\n\n // Utility\n setCustom: (value: string) => IHeader;\n}\n\nexport interface IReadonlyHeader {\n readonly native: Headers;\n\n // Core methods\n get: (name: HeaderFieldType) => string | null;\n has: (name: HeaderFieldType) => boolean;\n toJson: () => Record<string, string>;\n\n // Content handling\n getContentType: () => MimeType | \"*/*\" | null;\n getContentLength: () => number;\n getCharset: () => CharsetType | null;\n getContentDisposition: () => string | null;\n\n // Content negotiation\n getAccept: () => MimeType | \"*/*\" | null;\n getLang: () => { code: string; region?: string } | null;\n getAcceptEncoding: () => EncodingType[] | null;\n\n // Request information\n getHost: () => string | null;\n getUserAgent: () => IUserAgent | null;\n getReferer: () => string | null;\n getOrigin: () => string | null;\n\n // Authentication\n getAuthorization: () => string | null;\n getBasicAuth: () => string | null;\n getBearerToken: () => string | null;\n\n // Cookies\n getCookies: () => Record<string, string> | null;\n getCookie: (name: string) => string | null;\n\n // Client IP detection\n getIp: () => string | null;\n getXForwardedFor: () => string | null;\n getXRealIP: () => string | null;\n getClientIps: () => string[];\n\n // Caching\n getCacheControl: () => string | null;\n getEtag: () => string | null;\n getLastModified: () => Date | null;\n getIfModifiedSince: () => Date | null;\n getIfNoneMatch: () => string | null;\n\n // CORS\n getAccessControlAllowOrigin: () => string | null;\n getAccessControlAllowMethods: () => HttpMethodType[] | null;\n getAccessControlAllowHeaders: () => string[] | null;\n getAccessControlAllowCredentials: () => boolean | null;\n\n // Security headers\n getContentSecurityPolicy: () => string | null;\n getStrictTransportSecurity: () => string | null;\n getXContentTypeOptions: () => string | null;\n getXFrameOptions: () => string | null;\n getXXSSProtection: () => string | null;\n\n // Redirects\n getLocation: () => string | null;\n\n // Request type detection\n isSecure: () => boolean;\n isAjax: () => boolean;\n isCorsRequest: () => boolean;\n\n // Iterator support\n [Symbol.iterator](): IterableIterator<[HeaderFieldType, string]>;\n}\n"
8
8
  ],
9
- "mappings": "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",
10
- "debugId": "E4D65FB11A59392764756E2164756E21",
9
+ "mappings": "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",
10
+ "debugId": "93B6830F13E86DFE64756E2164756E21",
11
11
  "names": []
12
12
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ooneex/http-header",
3
3
  "description": "HTTP header parsing with user agent detection, browser identification, and device information extraction",
4
- "version": "0.10.0",
4
+ "version": "0.12.0",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist",
@@ -31,8 +31,8 @@
31
31
  "ua-parser-js": "^2.0.6"
32
32
  },
33
33
  "devDependencies": {
34
- "@ooneex/http-mimes": "0.0.10",
35
- "@ooneex/types": "0.0.10"
34
+ "@ooneex/http-mimes": "0.0.11",
35
+ "@ooneex/types": "0.0.11"
36
36
  },
37
37
  "keywords": [
38
38
  "browser",