@utilix-tech/sdk 0.35.0 → 0.37.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.cjs CHANGED
@@ -9676,13 +9676,16 @@ var network_exports = {};
9676
9676
  __export(network_exports, {
9677
9677
  DNS_RECORD_TYPES: () => DNS_RECORD_TYPES,
9678
9678
  HTTP_HEADERS: () => HTTP_HEADERS,
9679
+ LINK_REL_VALUES: () => LINK_REL_VALUES,
9679
9680
  REFERRER_POLICY_VALUES: () => REFERRER_POLICY_VALUES,
9680
9681
  STATUS_CODES: () => STATUS_CODES,
9681
9682
  buildCacheControl: () => buildCacheControl,
9682
9683
  buildDnsQueryUrl: () => buildDnsQueryUrl,
9683
9684
  buildGeoUrl: () => buildGeoUrl,
9685
+ buildLinkHeader: () => buildLinkHeader,
9684
9686
  buildMapUrl: () => buildMapUrl,
9685
9687
  buildReferrerPolicy: () => buildReferrerPolicy,
9688
+ checkSetCookieHeader: () => checkSetCookieHeader,
9686
9689
  countryCodeToFlag: () => countryCodeToFlag,
9687
9690
  formatCoordinates: () => formatCoordinates,
9688
9691
  formatTtl: () => formatTtl,
@@ -11566,6 +11569,73 @@ function buildReferrerPolicy(policies) {
11566
11569
  const metaTag = `<meta name="referrer" content="${last.value}">`;
11567
11570
  return { header, headerName: "Referrer-Policy", snippet, metaTag, policies: entries, warnings };
11568
11571
  }
11572
+ var LINK_REL_VALUES = [
11573
+ "preload",
11574
+ "preconnect",
11575
+ "prefetch",
11576
+ "prerender",
11577
+ "dns-prefetch",
11578
+ "canonical",
11579
+ "next",
11580
+ "prev",
11581
+ "alternate",
11582
+ "stylesheet",
11583
+ "icon",
11584
+ "modulepreload"
11585
+ ];
11586
+ var _LINK_REL_INFO = {
11587
+ preload: "Tells the browser to fetch this resource early, before the parser would otherwise discover it, without blocking rendering. Requires an `as` attribute so the browser applies the right request priority and Content-Security-Policy check; omitting it commonly causes the resource to be fetched twice.",
11588
+ preconnect: "Tells the browser to start the connection handshake (DNS, TCP, TLS) to this origin early, before any real request to it is made, so the first actual request lands faster.",
11589
+ prefetch: "Tells the browser to fetch this resource at low priority for a likely future navigation and cache it. Unlike preload, it does not affect the current page load.",
11590
+ prerender: "Tells the browser to fetch and render this page in the background so navigating to it feels instant, at a real bandwidth and CPU cost if the user never navigates there.",
11591
+ "dns-prefetch": "Tells the browser to resolve this origin's DNS early, a lighter-weight version of preconnect that skips the TCP/TLS handshake.",
11592
+ canonical: "Tells search engines which URL is the authoritative version of this page, used to consolidate duplicate-content signals across query-string or protocol variants.",
11593
+ next: "Marks the next page in a paginated sequence, a hint search engines and some browsers use for pagination.",
11594
+ prev: "Marks the previous page in a paginated sequence.",
11595
+ alternate: "Points to an alternate version of this resource, such as a different language or an RSS feed.",
11596
+ stylesheet: 'Loads an external stylesheet, the same effect as a `<link rel="stylesheet">` tag but delivered as a response header instead.',
11597
+ icon: 'Points to this resource\'s favicon, the same effect as a `<link rel="icon">` tag but delivered as a response header instead.',
11598
+ modulepreload: "Tells the browser to fetch and parse this JavaScript module early, ahead of when the module graph would otherwise discover it."
11599
+ };
11600
+ function buildLinkHeader(links) {
11601
+ if (!Array.isArray(links) || links.length === 0) {
11602
+ return { error: "At least one link entry is required" };
11603
+ }
11604
+ const entries = [];
11605
+ for (const link of links) {
11606
+ const url = typeof link.url === "string" ? link.url.trim() : "";
11607
+ const rel = typeof link.rel === "string" ? link.rel.trim() : "";
11608
+ if (!url) return { error: "Each link entry requires a non-empty url" };
11609
+ if (!rel) return { error: "Each link entry requires a non-empty rel" };
11610
+ if (!LINK_REL_VALUES.includes(rel)) {
11611
+ return { error: `'${rel}' is not a supported rel value. Supported values: ${LINK_REL_VALUES.join(", ")}` };
11612
+ }
11613
+ const as = link.as?.trim() || void 0;
11614
+ const type = link.type?.trim() || void 0;
11615
+ const crossorigin = link.crossorigin === true;
11616
+ let value = `<${url}>; rel="${rel}"`;
11617
+ if (as) value += `; as="${as}"`;
11618
+ if (type) value += `; type="${type}"`;
11619
+ if (crossorigin) value += "; crossorigin";
11620
+ entries.push({ url, rel, as, type, crossorigin: crossorigin || void 0, value, explanation: _LINK_REL_INFO[rel] });
11621
+ }
11622
+ const warnings = [];
11623
+ for (const entry of entries) {
11624
+ if (entry.rel === "preload" && !entry.as) {
11625
+ warnings.push(`preload link for "${entry.url}" is missing an \`as\` attribute \u2014 the browser may fetch it twice or apply the wrong request priority.`);
11626
+ }
11627
+ if ((entry.rel === "preconnect" || entry.rel === "dns-prefetch") && (entry.as || entry.type)) {
11628
+ warnings.push(`${entry.rel} link for "${entry.url}" sets \`as\`/\`type\`, which it ignores since no specific resource is being fetched yet.`);
11629
+ }
11630
+ }
11631
+ const canonicalCount = entries.filter((e) => e.rel === "canonical").length;
11632
+ if (canonicalCount > 1) {
11633
+ warnings.push(`${canonicalCount} canonical links present \u2014 only one canonical URL should be declared per page.`);
11634
+ }
11635
+ const header = entries.map((e) => e.value).join(", ");
11636
+ const snippet = `Link: ${header}`;
11637
+ return { header, headerName: "Link", snippet, links: entries, warnings };
11638
+ }
11569
11639
  function isValidIpv6HexGroup(g) {
11570
11640
  return /^[0-9a-fA-F]{1,4}$/.test(g);
11571
11641
  }
@@ -11654,6 +11724,83 @@ function parseIpv6Address(input) {
11654
11724
  addressType: classifyIpv6(expandedGroups)
11655
11725
  };
11656
11726
  }
11727
+ var MAX_COOKIE_AGE_SECONDS = 400 * 24 * 60 * 60;
11728
+ function checkSetCookieHeader(header) {
11729
+ if (typeof header !== "string" || !header.trim()) {
11730
+ return { error: "A Set-Cookie header value is required" };
11731
+ }
11732
+ const parts = header.split(";").map((p) => p.trim()).filter(Boolean);
11733
+ const [nameValue, ...attrParts] = parts;
11734
+ const eqIdx = nameValue.indexOf("=");
11735
+ if (eqIdx === -1) return { error: "Missing name=value pair" };
11736
+ const name = nameValue.slice(0, eqIdx).trim();
11737
+ const value = nameValue.slice(eqIdx + 1).trim();
11738
+ if (!name) return { error: "Cookie name cannot be empty" };
11739
+ const cookie = {
11740
+ name,
11741
+ value,
11742
+ domain: null,
11743
+ path: null,
11744
+ expires: null,
11745
+ maxAge: null,
11746
+ secure: false,
11747
+ httpOnly: false,
11748
+ sameSite: null
11749
+ };
11750
+ for (const attr of attrParts) {
11751
+ const idx = attr.indexOf("=");
11752
+ const key = (idx === -1 ? attr : attr.slice(0, idx)).trim().toLowerCase();
11753
+ const val = idx === -1 ? "" : attr.slice(idx + 1).trim();
11754
+ switch (key) {
11755
+ case "domain":
11756
+ cookie.domain = val || null;
11757
+ break;
11758
+ case "path":
11759
+ cookie.path = val || null;
11760
+ break;
11761
+ case "expires":
11762
+ cookie.expires = val || null;
11763
+ break;
11764
+ case "max-age": {
11765
+ const n = Number(val);
11766
+ cookie.maxAge = Number.isFinite(n) ? n : null;
11767
+ break;
11768
+ }
11769
+ case "secure":
11770
+ cookie.secure = true;
11771
+ break;
11772
+ case "httponly":
11773
+ cookie.httpOnly = true;
11774
+ break;
11775
+ case "samesite": {
11776
+ const normalized = val.toLowerCase();
11777
+ if (normalized === "strict") cookie.sameSite = "Strict";
11778
+ else if (normalized === "lax") cookie.sameSite = "Lax";
11779
+ else if (normalized === "none") cookie.sameSite = "None";
11780
+ break;
11781
+ }
11782
+ }
11783
+ }
11784
+ const issues = [];
11785
+ const warnings = [];
11786
+ if (cookie.sameSite === "None" && !cookie.secure) {
11787
+ issues.push("SameSite=None requires the Secure attribute \u2014 modern browsers reject this cookie without it.");
11788
+ }
11789
+ if (name.startsWith("__Host-")) {
11790
+ if (!cookie.secure) issues.push("__Host- prefixed cookies require the Secure attribute.");
11791
+ if (cookie.domain) issues.push("__Host- prefixed cookies must not set a Domain attribute.");
11792
+ if (cookie.path !== "/") issues.push("__Host- prefixed cookies must set Path=/.");
11793
+ } else if (name.startsWith("__Secure-")) {
11794
+ if (!cookie.secure) issues.push("__Secure- prefixed cookies require the Secure attribute.");
11795
+ }
11796
+ if (!cookie.secure) {
11797
+ warnings.push("Missing Secure attribute \u2014 the cookie can be sent over a plain HTTP connection.");
11798
+ }
11799
+ if (cookie.maxAge !== null && cookie.maxAge > MAX_COOKIE_AGE_SECONDS) {
11800
+ warnings.push(`Max-Age (${cookie.maxAge}s) exceeds 400 days \u2014 Chromium-based browsers clamp cookie expiry to 400 days from when it's set, so this will be shortened.`);
11801
+ }
11802
+ return { cookie, issues, warnings, valid: issues.length === 0 };
11803
+ }
11657
11804
 
11658
11805
  // src/tools/api.ts
11659
11806
  var api_exports = {};
@@ -13014,6 +13161,7 @@ __export(code_exports, {
13014
13161
  searchCheatsheet: () => searchCheatsheet,
13015
13162
  searchEndpoints: () => searchEndpoints,
13016
13163
  splitStatements: () => splitStatements,
13164
+ testGitignorePatterns: () => testGitignorePatterns,
13017
13165
  testPattern: () => testPattern,
13018
13166
  testRegex: () => testRegex,
13019
13167
  validateEnvKey: () => validateEnvKey2
@@ -15822,6 +15970,85 @@ function lintConventionalCommit(message, options = {}) {
15822
15970
  const valid = !findings.some((f) => f.severity === "error");
15823
15971
  return { message, valid, parsed, findings };
15824
15972
  }
15973
+ function globSegmentToRegexSource(segment) {
15974
+ let out = "";
15975
+ for (let i = 0; i < segment.length; i++) {
15976
+ const c = segment[i];
15977
+ if (c === "*") {
15978
+ out += "[^/]*";
15979
+ } else if (c === "?") {
15980
+ out += "[^/]";
15981
+ } else if (c === "[") {
15982
+ const close = segment.indexOf("]", i + 1);
15983
+ if (close === -1) {
15984
+ out += "\\[";
15985
+ } else {
15986
+ let cls = segment.slice(i + 1, close);
15987
+ if (cls.startsWith("!")) cls = "^" + cls.slice(1);
15988
+ out += `[${cls}]`;
15989
+ i = close;
15990
+ }
15991
+ } else {
15992
+ out += c.replace(/[.+^${}()|\\]/g, "\\$&");
15993
+ }
15994
+ }
15995
+ return out;
15996
+ }
15997
+ function compileGitignorePattern(raw, line) {
15998
+ let pattern = raw.replace(/\s+$/, "");
15999
+ if (!pattern || pattern.startsWith("#")) return null;
16000
+ let negate = false;
16001
+ if (pattern.startsWith("!")) {
16002
+ negate = true;
16003
+ pattern = pattern.slice(1);
16004
+ }
16005
+ pattern = pattern.replace(/\\(.)/g, "$1");
16006
+ if (!pattern) return null;
16007
+ const dirOnly = pattern.endsWith("/") && !pattern.endsWith("\\/");
16008
+ if (dirOnly) pattern = pattern.slice(0, -1);
16009
+ const hasLeadingSlash = pattern.startsWith("/");
16010
+ if (hasLeadingSlash) pattern = pattern.slice(1);
16011
+ const anchored = hasLeadingSlash || pattern.includes("/");
16012
+ const segments = pattern.split("/");
16013
+ const regexParts = segments.map((seg) => {
16014
+ if (seg === "**") return "(?:.*)";
16015
+ return globSegmentToRegexSource(seg);
16016
+ });
16017
+ let body = regexParts.join("/");
16018
+ body = body.replace(/\(\?:\.\*\)\//g, "(?:.*/)?").replace(/\/\(\?:\.\*\)/g, "(?:/.*)?");
16019
+ const prefix = anchored ? "^" : "^(?:.*/)?";
16020
+ const suffix = "(?:/.*)?$";
16021
+ const regex = new RegExp(prefix + body + suffix);
16022
+ return { raw, line, negate, regex };
16023
+ }
16024
+ function testGitignorePatterns(gitignoreContent, paths) {
16025
+ if (typeof gitignoreContent !== "string" || !gitignoreContent.trim()) {
16026
+ return { error: "gitignore content is required" };
16027
+ }
16028
+ if (!Array.isArray(paths) || paths.length === 0) {
16029
+ return { error: "At least one path is required" };
16030
+ }
16031
+ const lines = gitignoreContent.split("\n");
16032
+ const patterns = [];
16033
+ lines.forEach((line, idx) => {
16034
+ const compiled = compileGitignorePattern(line, idx + 1);
16035
+ if (compiled) patterns.push(compiled);
16036
+ });
16037
+ return paths.map((rawPath) => {
16038
+ const path = rawPath.trim().replace(/^\.\//, "");
16039
+ let ignored = false;
16040
+ let matchedPattern = null;
16041
+ let matchedLine = null;
16042
+ for (const p of patterns) {
16043
+ if (p.regex.test(path)) {
16044
+ ignored = !p.negate;
16045
+ matchedPattern = p.raw.trim();
16046
+ matchedLine = p.line;
16047
+ }
16048
+ }
16049
+ return { path, ignored, matchedPattern, matchedLine };
16050
+ });
16051
+ }
15825
16052
 
15826
16053
  // src/tools/color.ts
15827
16054
  var color_exports = {};
package/dist/index.d.cts CHANGED
@@ -6,9 +6,9 @@ export { d as data } from './data-CFeS9kes.cjs';
6
6
  export { g as generators } from './generators-Du8cBesn.cjs';
7
7
  export { t as time } from './time-KqJjdqII.cjs';
8
8
  export { u as units } from './units-c90DW-OZ.cjs';
9
- export { n as network } from './network-DfY5Ikvr.cjs';
9
+ export { n as network } from './network-CnKUQT4g.cjs';
10
10
  export { a as api } from './api-DmTNE4c1.cjs';
11
- export { c as code } from './code-BK-x8hVx.cjs';
11
+ export { c as code } from './code-KXoRsHtl.cjs';
12
12
  export { c as color } from './color-tPwZCr9H.cjs';
13
13
  export { c as css } from './css-Cf7AMGM-.cjs';
14
14
  export { m as misc } from './misc-CA3N198T.cjs';
package/dist/index.d.ts CHANGED
@@ -6,9 +6,9 @@ export { d as data } from './data-CFeS9kes.js';
6
6
  export { g as generators } from './generators-Du8cBesn.js';
7
7
  export { t as time } from './time-KqJjdqII.js';
8
8
  export { u as units } from './units-c90DW-OZ.js';
9
- export { n as network } from './network-DfY5Ikvr.js';
9
+ export { n as network } from './network-CnKUQT4g.js';
10
10
  export { a as api } from './api-DmTNE4c1.js';
11
- export { c as code } from './code-BK-x8hVx.js';
11
+ export { c as code } from './code-KXoRsHtl.js';
12
12
  export { c as color } from './color-tPwZCr9H.js';
13
13
  export { c as css } from './css-Cf7AMGM-.js';
14
14
  export { m as misc } from './misc-CA3N198T.js';
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  export { media_exports as media } from './chunk-L6V4W4SU.js';
2
2
  export { units_exports as units } from './chunk-7AJRK57W.js';
3
- export { network_exports as network } from './chunk-3YUKLV5N.js';
3
+ export { network_exports as network } from './chunk-DBNTO3YO.js';
4
4
  export { api_exports as api } from './chunk-52ZDKSIX.js';
5
- export { code_exports as code } from './chunk-UUT5HNST.js';
5
+ export { code_exports as code } from './chunk-JL7YTXRB.js';
6
6
  export { color_exports as color } from './chunk-BPVAB4P2.js';
7
7
  export { css_exports as css } from './chunk-6YPV2AB5.js';
8
8
  export { misc_exports as misc } from './chunk-GX7H6TAX.js';
@@ -14,6 +14,8 @@
14
14
  * - cache-control-builder: buildCacheControl
15
15
  * - referrer-policy-builder: buildReferrerPolicy
16
16
  * - ipv6-compressor: parseIpv6Address
17
+ * - link-header-builder: buildLinkHeader
18
+ * - same-site-cookie-checker: checkSetCookieHeader
17
19
  */
18
20
  declare const DNS_RECORD_TYPES: readonly ["A", "AAAA", "CNAME", "MX", "TXT", "NS", "SOA", "PTR", "SRV", "CAA"];
19
21
  type DnsRecordType = typeof DNS_RECORD_TYPES[number];
@@ -319,6 +321,41 @@ declare const REFERRER_POLICY_VALUES: ReferrerPolicyValue[];
319
321
  declare function buildReferrerPolicy(policies: string | string[]): ReferrerPolicyResult | {
320
322
  error: string;
321
323
  };
324
+ type LinkRel = 'preload' | 'preconnect' | 'prefetch' | 'prerender' | 'dns-prefetch' | 'canonical' | 'next' | 'prev' | 'alternate' | 'stylesheet' | 'icon' | 'modulepreload';
325
+ interface LinkHeaderEntryInput {
326
+ url: string;
327
+ rel: string;
328
+ as?: string;
329
+ type?: string;
330
+ crossorigin?: boolean;
331
+ }
332
+ interface LinkHeaderEntry {
333
+ url: string;
334
+ rel: string;
335
+ as?: string;
336
+ type?: string;
337
+ crossorigin?: boolean;
338
+ value: string;
339
+ explanation: string;
340
+ }
341
+ interface LinkHeaderResult {
342
+ header: string;
343
+ headerName: 'Link';
344
+ snippet: string;
345
+ links: LinkHeaderEntry[];
346
+ warnings: string[];
347
+ }
348
+ declare const LINK_REL_VALUES: LinkRel[];
349
+ /**
350
+ * Build an HTTP `Link` response header from a list of URL/rel pairs (preload,
351
+ * preconnect, prefetch, canonical, pagination, etc.), including the `as`/
352
+ * `type`/`crossorigin` attributes preload needs, plus a plain-English
353
+ * explanation of each entry's effect. Pure string assembly and lookup; it
354
+ * never fetches or validates that a URL actually exists.
355
+ */
356
+ declare function buildLinkHeader(links: LinkHeaderEntryInput[]): LinkHeaderResult | {
357
+ error: string;
358
+ };
322
359
  type Ipv6AddressType = 'unspecified' | 'loopback' | 'link-local' | 'unique-local' | 'multicast' | 'ipv4-mapped' | 'documentation' | 'global-unicast';
323
360
  interface Ipv6ParseResult {
324
361
  expanded: string;
@@ -336,10 +373,41 @@ interface Ipv6ParseResult {
336
373
  declare function parseIpv6Address(input: string): Ipv6ParseResult | {
337
374
  error: string;
338
375
  };
376
+ type SameSiteValue = 'Strict' | 'Lax' | 'None';
377
+ interface CookieAttributes {
378
+ name: string;
379
+ value: string;
380
+ domain: string | null;
381
+ path: string | null;
382
+ expires: string | null;
383
+ maxAge: number | null;
384
+ secure: boolean;
385
+ httpOnly: boolean;
386
+ sameSite: SameSiteValue | null;
387
+ }
388
+ interface CookieCheckResult {
389
+ cookie: CookieAttributes;
390
+ issues: string[];
391
+ warnings: string[];
392
+ valid: boolean;
393
+ }
394
+ /**
395
+ * Parse a `Set-Cookie` header value and validate its attribute combination:
396
+ * `SameSite=None` requires `Secure`, the `__Host-`/`__Secure-` name prefixes
397
+ * each require their own attributes (`__Host-` additionally forbids `Domain`
398
+ * and requires `Path=/`), a missing `Secure` attribute is flagged, and a
399
+ * `Max-Age` beyond 400 days is flagged since Chromium-based browsers clamp
400
+ * it to that cap regardless of what was sent.
401
+ */
402
+ declare function checkSetCookieHeader(header: string): CookieCheckResult | {
403
+ error: string;
404
+ };
339
405
 
340
406
  type network_CacheControlDirective = CacheControlDirective;
341
407
  type network_CacheControlOptions = CacheControlOptions;
342
408
  type network_CacheControlResult = CacheControlResult;
409
+ type network_CookieAttributes = CookieAttributes;
410
+ type network_CookieCheckResult = CookieCheckResult;
343
411
  declare const network_DNS_RECORD_TYPES: typeof DNS_RECORD_TYPES;
344
412
  type network_DnsRecord = DnsRecord;
345
413
  type network_DnsRecordType = DnsRecordType;
@@ -353,6 +421,11 @@ type network_HeaderCategory = HeaderCategory;
353
421
  type network_HttpHeader = HttpHeader;
354
422
  type network_Ipv6AddressType = Ipv6AddressType;
355
423
  type network_Ipv6ParseResult = Ipv6ParseResult;
424
+ declare const network_LINK_REL_VALUES: typeof LINK_REL_VALUES;
425
+ type network_LinkHeaderEntry = LinkHeaderEntry;
426
+ type network_LinkHeaderEntryInput = LinkHeaderEntryInput;
427
+ type network_LinkHeaderResult = LinkHeaderResult;
428
+ type network_LinkRel = LinkRel;
356
429
  type network_ParsedDnsResult = ParsedDnsResult;
357
430
  type network_ParsedGeoResult = ParsedGeoResult;
358
431
  declare const network_REFERRER_POLICY_VALUES: typeof REFERRER_POLICY_VALUES;
@@ -364,6 +437,7 @@ type network_RobotsIssue = RobotsIssue;
364
437
  type network_RobotsRule = RobotsRule;
365
438
  type network_RobotsValidationResult = RobotsValidationResult;
366
439
  declare const network_STATUS_CODES: typeof STATUS_CODES;
440
+ type network_SameSiteValue = SameSiteValue;
367
441
  type network_SitemapIndexEntry = SitemapIndexEntry;
368
442
  type network_SitemapIssue = SitemapIssue;
369
443
  type network_SitemapUrlEntry = SitemapUrlEntry;
@@ -374,8 +448,10 @@ type network_UserAgentInfo = UserAgentInfo;
374
448
  declare const network_buildCacheControl: typeof buildCacheControl;
375
449
  declare const network_buildDnsQueryUrl: typeof buildDnsQueryUrl;
376
450
  declare const network_buildGeoUrl: typeof buildGeoUrl;
451
+ declare const network_buildLinkHeader: typeof buildLinkHeader;
377
452
  declare const network_buildMapUrl: typeof buildMapUrl;
378
453
  declare const network_buildReferrerPolicy: typeof buildReferrerPolicy;
454
+ declare const network_checkSetCookieHeader: typeof checkSetCookieHeader;
379
455
  declare const network_countryCodeToFlag: typeof countryCodeToFlag;
380
456
  declare const network_formatCoordinates: typeof formatCoordinates;
381
457
  declare const network_formatTtl: typeof formatTtl;
@@ -405,7 +481,7 @@ declare const network_validateHeaderValue: typeof validateHeaderValue;
405
481
  declare const network_validateRobotsTxt: typeof validateRobotsTxt;
406
482
  declare const network_validateSitemap: typeof validateSitemap;
407
483
  declare namespace network {
408
- export { type network_CacheControlDirective as CacheControlDirective, type network_CacheControlOptions as CacheControlOptions, type network_CacheControlResult as CacheControlResult, network_DNS_RECORD_TYPES as DNS_RECORD_TYPES, type network_DnsRecord as DnsRecord, type network_DnsRecordType as DnsRecordType, type network_DnsResponse as DnsResponse, type network_GeoResult as GeoResult, network_HTTP_HEADERS as HTTP_HEADERS, type network_HarEntry as HarEntry, type network_HarParseResult as HarParseResult, type network_HarSummary as HarSummary, type network_HeaderCategory as HeaderCategory, type network_HttpHeader as HttpHeader, type network_Ipv6AddressType as Ipv6AddressType, type network_Ipv6ParseResult as Ipv6ParseResult, type network_ParsedDnsResult as ParsedDnsResult, type network_ParsedGeoResult as ParsedGeoResult, network_REFERRER_POLICY_VALUES as REFERRER_POLICY_VALUES, type network_ReferrerPolicyEntry as ReferrerPolicyEntry, type network_ReferrerPolicyResult as ReferrerPolicyResult, type network_ReferrerPolicyValue as ReferrerPolicyValue, type network_RobotsGroup as RobotsGroup, type network_RobotsIssue as RobotsIssue, type network_RobotsRule as RobotsRule, type network_RobotsValidationResult as RobotsValidationResult, network_STATUS_CODES as STATUS_CODES, type network_SitemapIndexEntry as SitemapIndexEntry, type network_SitemapIssue as SitemapIssue, type network_SitemapUrlEntry as SitemapUrlEntry, type network_SitemapValidationResult as SitemapValidationResult, type network_StatusCode as StatusCode, type network_UaDeviceType as UaDeviceType, type network_UserAgentInfo as UserAgentInfo, network_buildCacheControl as buildCacheControl, network_buildDnsQueryUrl as buildDnsQueryUrl, network_buildGeoUrl as buildGeoUrl, network_buildMapUrl as buildMapUrl, network_buildReferrerPolicy as buildReferrerPolicy, network_countryCodeToFlag as countryCodeToFlag, network_formatCoordinates as formatCoordinates, network_formatTtl as formatTtl, network_getByCategory as getByCategory, network_getHeader as getHeader, network_getHeadersByCategory as getHeadersByCategory, network_getStatusByCategory as getStatusByCategory, network_getStatusCode as getStatusCode, network_isClientError as isClientError, network_isServerError as isServerError, network_isSuccess as isSuccess, network_isValidIp as isValidIp, network_isValidIpv4 as isValidIpv4, network_isValidIpv6 as isValidIpv6, network_parseDnsResponse as parseDnsResponse, network_parseGeoResponse as parseGeoResponse, network_parseHar as parseHar, network_parseIpv6Address as parseIpv6Address, network_parseUserAgent as parseUserAgent, network_searchHeaders as searchHeaders, network_searchStatusCodes as searchStatusCodes, network_statusCodeToText as statusCodeToText, network_typeNumberToLabel as typeNumberToLabel, network_validateDomain as validateDomain, network_validateHeaderName as validateHeaderName, network_validateHeaderValue as validateHeaderValue, network_validateRobotsTxt as validateRobotsTxt, network_validateSitemap as validateSitemap };
484
+ export { type network_CacheControlDirective as CacheControlDirective, type network_CacheControlOptions as CacheControlOptions, type network_CacheControlResult as CacheControlResult, type network_CookieAttributes as CookieAttributes, type network_CookieCheckResult as CookieCheckResult, network_DNS_RECORD_TYPES as DNS_RECORD_TYPES, type network_DnsRecord as DnsRecord, type network_DnsRecordType as DnsRecordType, type network_DnsResponse as DnsResponse, type network_GeoResult as GeoResult, network_HTTP_HEADERS as HTTP_HEADERS, type network_HarEntry as HarEntry, type network_HarParseResult as HarParseResult, type network_HarSummary as HarSummary, type network_HeaderCategory as HeaderCategory, type network_HttpHeader as HttpHeader, type network_Ipv6AddressType as Ipv6AddressType, type network_Ipv6ParseResult as Ipv6ParseResult, network_LINK_REL_VALUES as LINK_REL_VALUES, type network_LinkHeaderEntry as LinkHeaderEntry, type network_LinkHeaderEntryInput as LinkHeaderEntryInput, type network_LinkHeaderResult as LinkHeaderResult, type network_LinkRel as LinkRel, type network_ParsedDnsResult as ParsedDnsResult, type network_ParsedGeoResult as ParsedGeoResult, network_REFERRER_POLICY_VALUES as REFERRER_POLICY_VALUES, type network_ReferrerPolicyEntry as ReferrerPolicyEntry, type network_ReferrerPolicyResult as ReferrerPolicyResult, type network_ReferrerPolicyValue as ReferrerPolicyValue, type network_RobotsGroup as RobotsGroup, type network_RobotsIssue as RobotsIssue, type network_RobotsRule as RobotsRule, type network_RobotsValidationResult as RobotsValidationResult, network_STATUS_CODES as STATUS_CODES, type network_SameSiteValue as SameSiteValue, type network_SitemapIndexEntry as SitemapIndexEntry, type network_SitemapIssue as SitemapIssue, type network_SitemapUrlEntry as SitemapUrlEntry, type network_SitemapValidationResult as SitemapValidationResult, type network_StatusCode as StatusCode, type network_UaDeviceType as UaDeviceType, type network_UserAgentInfo as UserAgentInfo, network_buildCacheControl as buildCacheControl, network_buildDnsQueryUrl as buildDnsQueryUrl, network_buildGeoUrl as buildGeoUrl, network_buildLinkHeader as buildLinkHeader, network_buildMapUrl as buildMapUrl, network_buildReferrerPolicy as buildReferrerPolicy, network_checkSetCookieHeader as checkSetCookieHeader, network_countryCodeToFlag as countryCodeToFlag, network_formatCoordinates as formatCoordinates, network_formatTtl as formatTtl, network_getByCategory as getByCategory, network_getHeader as getHeader, network_getHeadersByCategory as getHeadersByCategory, network_getStatusByCategory as getStatusByCategory, network_getStatusCode as getStatusCode, network_isClientError as isClientError, network_isServerError as isServerError, network_isSuccess as isSuccess, network_isValidIp as isValidIp, network_isValidIpv4 as isValidIpv4, network_isValidIpv6 as isValidIpv6, network_parseDnsResponse as parseDnsResponse, network_parseGeoResponse as parseGeoResponse, network_parseHar as parseHar, network_parseIpv6Address as parseIpv6Address, network_parseUserAgent as parseUserAgent, network_searchHeaders as searchHeaders, network_searchStatusCodes as searchStatusCodes, network_statusCodeToText as statusCodeToText, network_typeNumberToLabel as typeNumberToLabel, network_validateDomain as validateDomain, network_validateHeaderName as validateHeaderName, network_validateHeaderValue as validateHeaderValue, network_validateRobotsTxt as validateRobotsTxt, network_validateSitemap as validateSitemap };
409
485
  }
410
486
 
411
- export { isValidIpv6 as $, buildCacheControl as A, buildDnsQueryUrl as B, type CacheControlDirective as C, DNS_RECORD_TYPES as D, buildGeoUrl as E, buildMapUrl as F, type GeoResult as G, HTTP_HEADERS as H, type Ipv6AddressType as I, buildReferrerPolicy as J, countryCodeToFlag as K, formatCoordinates as L, formatTtl as M, getByCategory as N, getHeader as O, type ParsedDnsResult as P, getHeadersByCategory as Q, REFERRER_POLICY_VALUES as R, STATUS_CODES as S, getStatusByCategory as T, type UaDeviceType as U, getStatusCode as V, isClientError as W, isServerError as X, isSuccess as Y, isValidIp as Z, isValidIpv4 as _, type CacheControlOptions as a, parseDnsResponse as a0, parseGeoResponse as a1, parseHar as a2, parseIpv6Address as a3, parseUserAgent as a4, searchHeaders as a5, searchStatusCodes as a6, statusCodeToText as a7, typeNumberToLabel as a8, validateDomain as a9, validateHeaderName as aa, validateHeaderValue as ab, validateRobotsTxt as ac, validateSitemap as ad, type CacheControlResult as b, type DnsRecord as c, type DnsRecordType as d, type DnsResponse as e, type HarEntry as f, type HarParseResult as g, type HarSummary as h, type HeaderCategory as i, type HttpHeader as j, type Ipv6ParseResult as k, type ParsedGeoResult as l, type ReferrerPolicyEntry as m, network as n, type ReferrerPolicyResult as o, type ReferrerPolicyValue as p, type RobotsGroup as q, type RobotsIssue as r, type RobotsRule as s, type RobotsValidationResult as t, type SitemapIndexEntry as u, type SitemapIssue as v, type SitemapUrlEntry as w, type SitemapValidationResult as x, type StatusCode as y, type UserAgentInfo as z };
487
+ export { getByCategory as $, type SameSiteValue as A, type SitemapIndexEntry as B, type CacheControlDirective as C, DNS_RECORD_TYPES as D, type SitemapIssue as E, type SitemapUrlEntry as F, type GeoResult as G, HTTP_HEADERS as H, type Ipv6AddressType as I, type SitemapValidationResult as J, type StatusCode as K, LINK_REL_VALUES as L, type UserAgentInfo as M, buildCacheControl as N, buildDnsQueryUrl as O, type ParsedDnsResult as P, buildGeoUrl as Q, REFERRER_POLICY_VALUES as R, STATUS_CODES as S, buildLinkHeader as T, type UaDeviceType as U, buildMapUrl as V, buildReferrerPolicy as W, checkSetCookieHeader as X, countryCodeToFlag as Y, formatCoordinates as Z, formatTtl as _, type CacheControlOptions as a, getHeader as a0, getHeadersByCategory as a1, getStatusByCategory as a2, getStatusCode as a3, isClientError as a4, isServerError as a5, isSuccess as a6, isValidIp as a7, isValidIpv4 as a8, isValidIpv6 as a9, parseDnsResponse as aa, parseGeoResponse as ab, parseHar as ac, parseIpv6Address as ad, parseUserAgent as ae, searchHeaders as af, searchStatusCodes as ag, statusCodeToText as ah, typeNumberToLabel as ai, validateDomain as aj, validateHeaderName as ak, validateHeaderValue as al, validateRobotsTxt as am, validateSitemap as an, type CacheControlResult as b, type CookieAttributes as c, type CookieCheckResult as d, type DnsRecord as e, type DnsRecordType as f, type DnsResponse as g, type HarEntry as h, type HarParseResult as i, type HarSummary as j, type HeaderCategory as k, type HttpHeader as l, type Ipv6ParseResult as m, network as n, type LinkHeaderEntry as o, type LinkHeaderEntryInput as p, type LinkHeaderResult as q, type LinkRel as r, type ParsedGeoResult as s, type ReferrerPolicyEntry as t, type ReferrerPolicyResult as u, type ReferrerPolicyValue as v, type RobotsGroup as w, type RobotsIssue as x, type RobotsRule as y, type RobotsValidationResult as z };
@@ -14,6 +14,8 @@
14
14
  * - cache-control-builder: buildCacheControl
15
15
  * - referrer-policy-builder: buildReferrerPolicy
16
16
  * - ipv6-compressor: parseIpv6Address
17
+ * - link-header-builder: buildLinkHeader
18
+ * - same-site-cookie-checker: checkSetCookieHeader
17
19
  */
18
20
  declare const DNS_RECORD_TYPES: readonly ["A", "AAAA", "CNAME", "MX", "TXT", "NS", "SOA", "PTR", "SRV", "CAA"];
19
21
  type DnsRecordType = typeof DNS_RECORD_TYPES[number];
@@ -319,6 +321,41 @@ declare const REFERRER_POLICY_VALUES: ReferrerPolicyValue[];
319
321
  declare function buildReferrerPolicy(policies: string | string[]): ReferrerPolicyResult | {
320
322
  error: string;
321
323
  };
324
+ type LinkRel = 'preload' | 'preconnect' | 'prefetch' | 'prerender' | 'dns-prefetch' | 'canonical' | 'next' | 'prev' | 'alternate' | 'stylesheet' | 'icon' | 'modulepreload';
325
+ interface LinkHeaderEntryInput {
326
+ url: string;
327
+ rel: string;
328
+ as?: string;
329
+ type?: string;
330
+ crossorigin?: boolean;
331
+ }
332
+ interface LinkHeaderEntry {
333
+ url: string;
334
+ rel: string;
335
+ as?: string;
336
+ type?: string;
337
+ crossorigin?: boolean;
338
+ value: string;
339
+ explanation: string;
340
+ }
341
+ interface LinkHeaderResult {
342
+ header: string;
343
+ headerName: 'Link';
344
+ snippet: string;
345
+ links: LinkHeaderEntry[];
346
+ warnings: string[];
347
+ }
348
+ declare const LINK_REL_VALUES: LinkRel[];
349
+ /**
350
+ * Build an HTTP `Link` response header from a list of URL/rel pairs (preload,
351
+ * preconnect, prefetch, canonical, pagination, etc.), including the `as`/
352
+ * `type`/`crossorigin` attributes preload needs, plus a plain-English
353
+ * explanation of each entry's effect. Pure string assembly and lookup; it
354
+ * never fetches or validates that a URL actually exists.
355
+ */
356
+ declare function buildLinkHeader(links: LinkHeaderEntryInput[]): LinkHeaderResult | {
357
+ error: string;
358
+ };
322
359
  type Ipv6AddressType = 'unspecified' | 'loopback' | 'link-local' | 'unique-local' | 'multicast' | 'ipv4-mapped' | 'documentation' | 'global-unicast';
323
360
  interface Ipv6ParseResult {
324
361
  expanded: string;
@@ -336,10 +373,41 @@ interface Ipv6ParseResult {
336
373
  declare function parseIpv6Address(input: string): Ipv6ParseResult | {
337
374
  error: string;
338
375
  };
376
+ type SameSiteValue = 'Strict' | 'Lax' | 'None';
377
+ interface CookieAttributes {
378
+ name: string;
379
+ value: string;
380
+ domain: string | null;
381
+ path: string | null;
382
+ expires: string | null;
383
+ maxAge: number | null;
384
+ secure: boolean;
385
+ httpOnly: boolean;
386
+ sameSite: SameSiteValue | null;
387
+ }
388
+ interface CookieCheckResult {
389
+ cookie: CookieAttributes;
390
+ issues: string[];
391
+ warnings: string[];
392
+ valid: boolean;
393
+ }
394
+ /**
395
+ * Parse a `Set-Cookie` header value and validate its attribute combination:
396
+ * `SameSite=None` requires `Secure`, the `__Host-`/`__Secure-` name prefixes
397
+ * each require their own attributes (`__Host-` additionally forbids `Domain`
398
+ * and requires `Path=/`), a missing `Secure` attribute is flagged, and a
399
+ * `Max-Age` beyond 400 days is flagged since Chromium-based browsers clamp
400
+ * it to that cap regardless of what was sent.
401
+ */
402
+ declare function checkSetCookieHeader(header: string): CookieCheckResult | {
403
+ error: string;
404
+ };
339
405
 
340
406
  type network_CacheControlDirective = CacheControlDirective;
341
407
  type network_CacheControlOptions = CacheControlOptions;
342
408
  type network_CacheControlResult = CacheControlResult;
409
+ type network_CookieAttributes = CookieAttributes;
410
+ type network_CookieCheckResult = CookieCheckResult;
343
411
  declare const network_DNS_RECORD_TYPES: typeof DNS_RECORD_TYPES;
344
412
  type network_DnsRecord = DnsRecord;
345
413
  type network_DnsRecordType = DnsRecordType;
@@ -353,6 +421,11 @@ type network_HeaderCategory = HeaderCategory;
353
421
  type network_HttpHeader = HttpHeader;
354
422
  type network_Ipv6AddressType = Ipv6AddressType;
355
423
  type network_Ipv6ParseResult = Ipv6ParseResult;
424
+ declare const network_LINK_REL_VALUES: typeof LINK_REL_VALUES;
425
+ type network_LinkHeaderEntry = LinkHeaderEntry;
426
+ type network_LinkHeaderEntryInput = LinkHeaderEntryInput;
427
+ type network_LinkHeaderResult = LinkHeaderResult;
428
+ type network_LinkRel = LinkRel;
356
429
  type network_ParsedDnsResult = ParsedDnsResult;
357
430
  type network_ParsedGeoResult = ParsedGeoResult;
358
431
  declare const network_REFERRER_POLICY_VALUES: typeof REFERRER_POLICY_VALUES;
@@ -364,6 +437,7 @@ type network_RobotsIssue = RobotsIssue;
364
437
  type network_RobotsRule = RobotsRule;
365
438
  type network_RobotsValidationResult = RobotsValidationResult;
366
439
  declare const network_STATUS_CODES: typeof STATUS_CODES;
440
+ type network_SameSiteValue = SameSiteValue;
367
441
  type network_SitemapIndexEntry = SitemapIndexEntry;
368
442
  type network_SitemapIssue = SitemapIssue;
369
443
  type network_SitemapUrlEntry = SitemapUrlEntry;
@@ -374,8 +448,10 @@ type network_UserAgentInfo = UserAgentInfo;
374
448
  declare const network_buildCacheControl: typeof buildCacheControl;
375
449
  declare const network_buildDnsQueryUrl: typeof buildDnsQueryUrl;
376
450
  declare const network_buildGeoUrl: typeof buildGeoUrl;
451
+ declare const network_buildLinkHeader: typeof buildLinkHeader;
377
452
  declare const network_buildMapUrl: typeof buildMapUrl;
378
453
  declare const network_buildReferrerPolicy: typeof buildReferrerPolicy;
454
+ declare const network_checkSetCookieHeader: typeof checkSetCookieHeader;
379
455
  declare const network_countryCodeToFlag: typeof countryCodeToFlag;
380
456
  declare const network_formatCoordinates: typeof formatCoordinates;
381
457
  declare const network_formatTtl: typeof formatTtl;
@@ -405,7 +481,7 @@ declare const network_validateHeaderValue: typeof validateHeaderValue;
405
481
  declare const network_validateRobotsTxt: typeof validateRobotsTxt;
406
482
  declare const network_validateSitemap: typeof validateSitemap;
407
483
  declare namespace network {
408
- export { type network_CacheControlDirective as CacheControlDirective, type network_CacheControlOptions as CacheControlOptions, type network_CacheControlResult as CacheControlResult, network_DNS_RECORD_TYPES as DNS_RECORD_TYPES, type network_DnsRecord as DnsRecord, type network_DnsRecordType as DnsRecordType, type network_DnsResponse as DnsResponse, type network_GeoResult as GeoResult, network_HTTP_HEADERS as HTTP_HEADERS, type network_HarEntry as HarEntry, type network_HarParseResult as HarParseResult, type network_HarSummary as HarSummary, type network_HeaderCategory as HeaderCategory, type network_HttpHeader as HttpHeader, type network_Ipv6AddressType as Ipv6AddressType, type network_Ipv6ParseResult as Ipv6ParseResult, type network_ParsedDnsResult as ParsedDnsResult, type network_ParsedGeoResult as ParsedGeoResult, network_REFERRER_POLICY_VALUES as REFERRER_POLICY_VALUES, type network_ReferrerPolicyEntry as ReferrerPolicyEntry, type network_ReferrerPolicyResult as ReferrerPolicyResult, type network_ReferrerPolicyValue as ReferrerPolicyValue, type network_RobotsGroup as RobotsGroup, type network_RobotsIssue as RobotsIssue, type network_RobotsRule as RobotsRule, type network_RobotsValidationResult as RobotsValidationResult, network_STATUS_CODES as STATUS_CODES, type network_SitemapIndexEntry as SitemapIndexEntry, type network_SitemapIssue as SitemapIssue, type network_SitemapUrlEntry as SitemapUrlEntry, type network_SitemapValidationResult as SitemapValidationResult, type network_StatusCode as StatusCode, type network_UaDeviceType as UaDeviceType, type network_UserAgentInfo as UserAgentInfo, network_buildCacheControl as buildCacheControl, network_buildDnsQueryUrl as buildDnsQueryUrl, network_buildGeoUrl as buildGeoUrl, network_buildMapUrl as buildMapUrl, network_buildReferrerPolicy as buildReferrerPolicy, network_countryCodeToFlag as countryCodeToFlag, network_formatCoordinates as formatCoordinates, network_formatTtl as formatTtl, network_getByCategory as getByCategory, network_getHeader as getHeader, network_getHeadersByCategory as getHeadersByCategory, network_getStatusByCategory as getStatusByCategory, network_getStatusCode as getStatusCode, network_isClientError as isClientError, network_isServerError as isServerError, network_isSuccess as isSuccess, network_isValidIp as isValidIp, network_isValidIpv4 as isValidIpv4, network_isValidIpv6 as isValidIpv6, network_parseDnsResponse as parseDnsResponse, network_parseGeoResponse as parseGeoResponse, network_parseHar as parseHar, network_parseIpv6Address as parseIpv6Address, network_parseUserAgent as parseUserAgent, network_searchHeaders as searchHeaders, network_searchStatusCodes as searchStatusCodes, network_statusCodeToText as statusCodeToText, network_typeNumberToLabel as typeNumberToLabel, network_validateDomain as validateDomain, network_validateHeaderName as validateHeaderName, network_validateHeaderValue as validateHeaderValue, network_validateRobotsTxt as validateRobotsTxt, network_validateSitemap as validateSitemap };
484
+ export { type network_CacheControlDirective as CacheControlDirective, type network_CacheControlOptions as CacheControlOptions, type network_CacheControlResult as CacheControlResult, type network_CookieAttributes as CookieAttributes, type network_CookieCheckResult as CookieCheckResult, network_DNS_RECORD_TYPES as DNS_RECORD_TYPES, type network_DnsRecord as DnsRecord, type network_DnsRecordType as DnsRecordType, type network_DnsResponse as DnsResponse, type network_GeoResult as GeoResult, network_HTTP_HEADERS as HTTP_HEADERS, type network_HarEntry as HarEntry, type network_HarParseResult as HarParseResult, type network_HarSummary as HarSummary, type network_HeaderCategory as HeaderCategory, type network_HttpHeader as HttpHeader, type network_Ipv6AddressType as Ipv6AddressType, type network_Ipv6ParseResult as Ipv6ParseResult, network_LINK_REL_VALUES as LINK_REL_VALUES, type network_LinkHeaderEntry as LinkHeaderEntry, type network_LinkHeaderEntryInput as LinkHeaderEntryInput, type network_LinkHeaderResult as LinkHeaderResult, type network_LinkRel as LinkRel, type network_ParsedDnsResult as ParsedDnsResult, type network_ParsedGeoResult as ParsedGeoResult, network_REFERRER_POLICY_VALUES as REFERRER_POLICY_VALUES, type network_ReferrerPolicyEntry as ReferrerPolicyEntry, type network_ReferrerPolicyResult as ReferrerPolicyResult, type network_ReferrerPolicyValue as ReferrerPolicyValue, type network_RobotsGroup as RobotsGroup, type network_RobotsIssue as RobotsIssue, type network_RobotsRule as RobotsRule, type network_RobotsValidationResult as RobotsValidationResult, network_STATUS_CODES as STATUS_CODES, type network_SameSiteValue as SameSiteValue, type network_SitemapIndexEntry as SitemapIndexEntry, type network_SitemapIssue as SitemapIssue, type network_SitemapUrlEntry as SitemapUrlEntry, type network_SitemapValidationResult as SitemapValidationResult, type network_StatusCode as StatusCode, type network_UaDeviceType as UaDeviceType, type network_UserAgentInfo as UserAgentInfo, network_buildCacheControl as buildCacheControl, network_buildDnsQueryUrl as buildDnsQueryUrl, network_buildGeoUrl as buildGeoUrl, network_buildLinkHeader as buildLinkHeader, network_buildMapUrl as buildMapUrl, network_buildReferrerPolicy as buildReferrerPolicy, network_checkSetCookieHeader as checkSetCookieHeader, network_countryCodeToFlag as countryCodeToFlag, network_formatCoordinates as formatCoordinates, network_formatTtl as formatTtl, network_getByCategory as getByCategory, network_getHeader as getHeader, network_getHeadersByCategory as getHeadersByCategory, network_getStatusByCategory as getStatusByCategory, network_getStatusCode as getStatusCode, network_isClientError as isClientError, network_isServerError as isServerError, network_isSuccess as isSuccess, network_isValidIp as isValidIp, network_isValidIpv4 as isValidIpv4, network_isValidIpv6 as isValidIpv6, network_parseDnsResponse as parseDnsResponse, network_parseGeoResponse as parseGeoResponse, network_parseHar as parseHar, network_parseIpv6Address as parseIpv6Address, network_parseUserAgent as parseUserAgent, network_searchHeaders as searchHeaders, network_searchStatusCodes as searchStatusCodes, network_statusCodeToText as statusCodeToText, network_typeNumberToLabel as typeNumberToLabel, network_validateDomain as validateDomain, network_validateHeaderName as validateHeaderName, network_validateHeaderValue as validateHeaderValue, network_validateRobotsTxt as validateRobotsTxt, network_validateSitemap as validateSitemap };
409
485
  }
410
486
 
411
- export { isValidIpv6 as $, buildCacheControl as A, buildDnsQueryUrl as B, type CacheControlDirective as C, DNS_RECORD_TYPES as D, buildGeoUrl as E, buildMapUrl as F, type GeoResult as G, HTTP_HEADERS as H, type Ipv6AddressType as I, buildReferrerPolicy as J, countryCodeToFlag as K, formatCoordinates as L, formatTtl as M, getByCategory as N, getHeader as O, type ParsedDnsResult as P, getHeadersByCategory as Q, REFERRER_POLICY_VALUES as R, STATUS_CODES as S, getStatusByCategory as T, type UaDeviceType as U, getStatusCode as V, isClientError as W, isServerError as X, isSuccess as Y, isValidIp as Z, isValidIpv4 as _, type CacheControlOptions as a, parseDnsResponse as a0, parseGeoResponse as a1, parseHar as a2, parseIpv6Address as a3, parseUserAgent as a4, searchHeaders as a5, searchStatusCodes as a6, statusCodeToText as a7, typeNumberToLabel as a8, validateDomain as a9, validateHeaderName as aa, validateHeaderValue as ab, validateRobotsTxt as ac, validateSitemap as ad, type CacheControlResult as b, type DnsRecord as c, type DnsRecordType as d, type DnsResponse as e, type HarEntry as f, type HarParseResult as g, type HarSummary as h, type HeaderCategory as i, type HttpHeader as j, type Ipv6ParseResult as k, type ParsedGeoResult as l, type ReferrerPolicyEntry as m, network as n, type ReferrerPolicyResult as o, type ReferrerPolicyValue as p, type RobotsGroup as q, type RobotsIssue as r, type RobotsRule as s, type RobotsValidationResult as t, type SitemapIndexEntry as u, type SitemapIssue as v, type SitemapUrlEntry as w, type SitemapValidationResult as x, type StatusCode as y, type UserAgentInfo as z };
487
+ export { getByCategory as $, type SameSiteValue as A, type SitemapIndexEntry as B, type CacheControlDirective as C, DNS_RECORD_TYPES as D, type SitemapIssue as E, type SitemapUrlEntry as F, type GeoResult as G, HTTP_HEADERS as H, type Ipv6AddressType as I, type SitemapValidationResult as J, type StatusCode as K, LINK_REL_VALUES as L, type UserAgentInfo as M, buildCacheControl as N, buildDnsQueryUrl as O, type ParsedDnsResult as P, buildGeoUrl as Q, REFERRER_POLICY_VALUES as R, STATUS_CODES as S, buildLinkHeader as T, type UaDeviceType as U, buildMapUrl as V, buildReferrerPolicy as W, checkSetCookieHeader as X, countryCodeToFlag as Y, formatCoordinates as Z, formatTtl as _, type CacheControlOptions as a, getHeader as a0, getHeadersByCategory as a1, getStatusByCategory as a2, getStatusCode as a3, isClientError as a4, isServerError as a5, isSuccess as a6, isValidIp as a7, isValidIpv4 as a8, isValidIpv6 as a9, parseDnsResponse as aa, parseGeoResponse as ab, parseHar as ac, parseIpv6Address as ad, parseUserAgent as ae, searchHeaders as af, searchStatusCodes as ag, statusCodeToText as ah, typeNumberToLabel as ai, validateDomain as aj, validateHeaderName as ak, validateHeaderValue as al, validateRobotsTxt as am, validateSitemap as an, type CacheControlResult as b, type CookieAttributes as c, type CookieCheckResult as d, type DnsRecord as e, type DnsRecordType as f, type DnsResponse as g, type HarEntry as h, type HarParseResult as i, type HarSummary as j, type HeaderCategory as k, type HttpHeader as l, type Ipv6ParseResult as m, network as n, type LinkHeaderEntry as o, type LinkHeaderEntryInput as p, type LinkHeaderResult as q, type LinkRel as r, type ParsedGeoResult as s, type ReferrerPolicyEntry as t, type ReferrerPolicyResult as u, type ReferrerPolicyValue as v, type RobotsGroup as w, type RobotsIssue as x, type RobotsRule as y, type RobotsValidationResult as z };