@utilix-tech/sdk 0.91.0 → 0.93.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.
@@ -33,6 +33,7 @@
33
33
  * - websocket-opcode-reference: lookupOpcode, listOpcodes
34
34
  * - robots-meta-tag-builder: buildRobotsMetaTag, parseRobotsMetaTag
35
35
  * - cookie-size-budget-calculator: calculateCookieSizeBudget
36
+ * - clear-site-data-header-builder: buildClearSiteData, parseClearSiteData
36
37
  */
37
38
  declare const DNS_RECORD_TYPES: readonly ["A", "AAAA", "CNAME", "MX", "TXT", "NS", "SOA", "PTR", "SRV", "CAA"];
38
39
  type DnsRecordType = typeof DNS_RECORD_TYPES[number];
@@ -1142,6 +1143,36 @@ interface SecurityHeadersScorecard {
1142
1143
  declare function scoreSecurityHeaders(rawHeaders: string): SecurityHeadersScorecard | {
1143
1144
  error: string;
1144
1145
  };
1146
+ type ClearSiteDataDirective = 'cache' | 'cookies' | 'storage' | 'executionContexts' | '*';
1147
+ interface ClearSiteDataResult {
1148
+ header: string;
1149
+ headerName: 'Clear-Site-Data';
1150
+ snippet: string;
1151
+ directives: ClearSiteDataDirective[];
1152
+ warnings: string[];
1153
+ }
1154
+ /**
1155
+ * Build a `Clear-Site-Data` response-header value from a list of directives
1156
+ * (`cache`, `cookies`, `storage`, `executionContexts`, or `*` for all of
1157
+ * them), per the spec's quoted-string-list syntax, e.g.
1158
+ * `"cache", "cookies"`. Duplicate directives are deduplicated, and listing
1159
+ * other directives alongside `*` is flagged as redundant since `*` already
1160
+ * covers every current (and future) data type on its own. Pure string
1161
+ * assembly; it never clears anything in a real browser.
1162
+ */
1163
+ declare function buildClearSiteData(directives: string[]): ClearSiteDataResult | {
1164
+ error: string;
1165
+ };
1166
+ /**
1167
+ * Parse an existing `Clear-Site-Data` header value (with or without a
1168
+ * leading `Clear-Site-Data:` label) into the same shape `buildClearSiteData`
1169
+ * returns. Accepts directives with or without the quotes the spec requires
1170
+ * on a real response, so a value copied from a note or a bug report without
1171
+ * its quoting still parses.
1172
+ */
1173
+ declare function parseClearSiteData(raw: string): ClearSiteDataResult | {
1174
+ error: string;
1175
+ };
1145
1176
 
1146
1177
  type network_AcceptLanguageEntry = AcceptLanguageEntry;
1147
1178
  type network_AcceptLanguageResult = AcceptLanguageResult;
@@ -1151,6 +1182,8 @@ declare const network_CLIENT_HINTS: typeof CLIENT_HINTS;
1151
1182
  type network_CacheControlDirective = CacheControlDirective;
1152
1183
  type network_CacheControlOptions = CacheControlOptions;
1153
1184
  type network_CacheControlResult = CacheControlResult;
1185
+ type network_ClearSiteDataDirective = ClearSiteDataDirective;
1186
+ type network_ClearSiteDataResult = ClearSiteDataResult;
1154
1187
  type network_ClientHintDef = ClientHintDef;
1155
1188
  type network_ClientHintValueType = ClientHintValueType;
1156
1189
  type network_ClientHintsBuildResult = ClientHintsBuildResult;
@@ -1254,6 +1287,7 @@ declare const network_analyzeEmailHeaders: typeof analyzeEmailHeaders;
1254
1287
  declare const network_assessContentTypeRisk: typeof assessContentTypeRisk;
1255
1288
  declare const network_buildAcceptLanguage: typeof buildAcceptLanguage;
1256
1289
  declare const network_buildCacheControl: typeof buildCacheControl;
1290
+ declare const network_buildClearSiteData: typeof buildClearSiteData;
1257
1291
  declare const network_buildClientHints: typeof buildClientHints;
1258
1292
  declare const network_buildContentDisposition: typeof buildContentDisposition;
1259
1293
  declare const network_buildDnsQueryUrl: typeof buildDnsQueryUrl;
@@ -1294,6 +1328,7 @@ declare const network_listOpcodes: typeof listOpcodes;
1294
1328
  declare const network_lookupCloseCode: typeof lookupCloseCode;
1295
1329
  declare const network_lookupOpcode: typeof lookupOpcode;
1296
1330
  declare const network_parseAcceptLanguage: typeof parseAcceptLanguage;
1331
+ declare const network_parseClearSiteData: typeof parseClearSiteData;
1297
1332
  declare const network_parseClientHintHeaders: typeof parseClientHintHeaders;
1298
1333
  declare const network_parseContentDisposition: typeof parseContentDisposition;
1299
1334
  declare const network_parseContentRangeHeader: typeof parseContentRangeHeader;
@@ -1325,7 +1360,7 @@ declare const network_validateManifest: typeof validateManifest;
1325
1360
  declare const network_validateRobotsTxt: typeof validateRobotsTxt;
1326
1361
  declare const network_validateSitemap: typeof validateSitemap;
1327
1362
  declare namespace network {
1328
- export { type network_AcceptLanguageEntry as AcceptLanguageEntry, type network_AcceptLanguageResult as AcceptLanguageResult, type network_AuthResultEntry as AuthResultEntry, type network_BuildRangeHeaderOptions as BuildRangeHeaderOptions, network_CLIENT_HINTS as CLIENT_HINTS, type network_CacheControlDirective as CacheControlDirective, type network_CacheControlOptions as CacheControlOptions, type network_CacheControlResult as CacheControlResult, type network_ClientHintDef as ClientHintDef, type network_ClientHintValueType as ClientHintValueType, type network_ClientHintsBuildResult as ClientHintsBuildResult, type network_ClientHintsParseResult as ClientHintsParseResult, type network_CloseCodeInfo as CloseCodeInfo, type network_CloseCodeRange as CloseCodeRange, type network_ContentDispositionBuildOptions as ContentDispositionBuildOptions, type network_ContentDispositionBuildResult as ContentDispositionBuildResult, type network_ContentDispositionParseResult as ContentDispositionParseResult, type network_ContentRangeResult as ContentRangeResult, type network_ContentTypeRiskResult as ContentTypeRiskResult, type network_ContentTypeSniffRisk as ContentTypeSniffRisk, type network_CookieAttributes as CookieAttributes, type network_CookieCheckResult as CookieCheckResult, type network_CookieSizeBudgetResult as CookieSizeBudgetResult, type network_CookieSizeEntry as CookieSizeEntry, 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_EmailHeaderAnalysis as EmailHeaderAnalysis, type network_EmailHeaderField as EmailHeaderField, 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_HstsOptions as HstsOptions, type network_HstsResult as HstsResult, 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_ManifestIconInfo as ManifestIconInfo, type network_ManifestIssue as ManifestIssue, type network_ManifestValidationResult as ManifestValidationResult, type network_MultipartParseResult as MultipartParseResult, type network_MultipartPart as MultipartPart, type network_OpcodeCategory as OpcodeCategory, type network_OpcodeInfo as OpcodeInfo, network_PERMISSIONS_POLICY_FEATURES as PERMISSIONS_POLICY_FEATURES, type network_ParsedClientHint as ParsedClientHint, type network_ParsedDnsResult as ParsedDnsResult, type network_ParsedGeoResult as ParsedGeoResult, type network_PermissionsPolicyDirective as PermissionsPolicyDirective, type network_PermissionsPolicyFeatureInput as PermissionsPolicyFeatureInput, type network_PermissionsPolicyResult as PermissionsPolicyResult, type network_PreferParameter as PreferParameter, type network_PreferPreference as PreferPreference, type network_PreferResult as PreferResult, type network_PriorityResult as PriorityResult, network_REFERRER_POLICY_VALUES as REFERRER_POLICY_VALUES, type network_RangeEntry as RangeEntry, type network_RangeEntryInput as RangeEntryInput, type network_RangeHeaderResult as RangeHeaderResult, type network_ReceivedHop as ReceivedHop, type network_ReferrerPolicyEntry as ReferrerPolicyEntry, type network_ReferrerPolicyResult as ReferrerPolicyResult, type network_ReferrerPolicyValue as ReferrerPolicyValue, type network_RetryAfterDateResult as RetryAfterDateResult, type network_RetryAfterResult as RetryAfterResult, type network_RetryAfterSecondsResult as RetryAfterSecondsResult, type network_RobotsGenerateGroup as RobotsGenerateGroup, type network_RobotsGenerateOptions as RobotsGenerateOptions, type network_RobotsGroup as RobotsGroup, type network_RobotsIssue as RobotsIssue, type network_RobotsMetaTagFlag as RobotsMetaTagFlag, type network_RobotsMetaTagOptions as RobotsMetaTagOptions, type network_RobotsMetaTagResult as RobotsMetaTagResult, type network_RobotsRule as RobotsRule, type network_RobotsValidationResult as RobotsValidationResult, network_STATUS_CODES as STATUS_CODES, type network_SameSiteValue as SameSiteValue, type network_SecurityHeaderCheck as SecurityHeaderCheck, type network_SecurityHeaderStatus as SecurityHeaderStatus, type network_SecurityHeadersScorecard as SecurityHeadersScorecard, type network_SitemapIndexEntry as SitemapIndexEntry, type network_SitemapIssue as SitemapIssue, type network_SitemapSplitFile as SitemapSplitFile, type network_SitemapUrlEntry as SitemapUrlEntry, type network_SitemapValidationResult as SitemapValidationResult, type network_SplitSitemapOptions as SplitSitemapOptions, type network_SplitSitemapResult as SplitSitemapResult, type network_StatusCode as StatusCode, type network_UaDeviceType as UaDeviceType, type network_UserAgentInfo as UserAgentInfo, type network_VaryHeaderEntry as VaryHeaderEntry, type network_VaryHeaderResult as VaryHeaderResult, type network_XContentTypeOptionsHeader as XContentTypeOptionsHeader, type network_XContentTypeOptionsParseResult as XContentTypeOptionsParseResult, type network_XRobotsTagFlag as XRobotsTagFlag, type network_XRobotsTagOptions as XRobotsTagOptions, type network_XRobotsTagResult as XRobotsTagResult, network_X_CONTENT_TYPE_OPTIONS_HEADER as X_CONTENT_TYPE_OPTIONS_HEADER, network_analyzeEmailHeaders as analyzeEmailHeaders, network_assessContentTypeRisk as assessContentTypeRisk, network_buildAcceptLanguage as buildAcceptLanguage, network_buildCacheControl as buildCacheControl, network_buildClientHints as buildClientHints, network_buildContentDisposition as buildContentDisposition, network_buildDnsQueryUrl as buildDnsQueryUrl, network_buildGeoUrl as buildGeoUrl, network_buildHsts as buildHsts, network_buildLinkHeader as buildLinkHeader, network_buildMapUrl as buildMapUrl, network_buildPermissionsPolicy as buildPermissionsPolicy, network_buildPreferHeader as buildPreferHeader, network_buildPriorityHeader as buildPriorityHeader, network_buildRangeHeader as buildRangeHeader, network_buildReferrerPolicy as buildReferrerPolicy, network_buildRetryAfterHeader as buildRetryAfterHeader, network_buildRobotsMetaTag as buildRobotsMetaTag, network_buildVaryHeader as buildVaryHeader, network_buildXContentTypeOptionsHeader as buildXContentTypeOptionsHeader, network_buildXRobotsTag as buildXRobotsTag, network_calculateCookieSizeBudget as calculateCookieSizeBudget, network_checkSetCookieHeader as checkSetCookieHeader, network_countryCodeToFlag as countryCodeToFlag, network_extractMultipartBoundary as extractMultipartBoundary, network_formatCoordinates as formatCoordinates, network_formatTtl as formatTtl, network_generateRobotsTxt as generateRobotsTxt, 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_listCloseCodes as listCloseCodes, network_listOpcodes as listOpcodes, network_lookupCloseCode as lookupCloseCode, network_lookupOpcode as lookupOpcode, network_parseAcceptLanguage as parseAcceptLanguage, network_parseClientHintHeaders as parseClientHintHeaders, network_parseContentDisposition as parseContentDisposition, network_parseContentRangeHeader as parseContentRangeHeader, network_parseDnsResponse as parseDnsResponse, network_parseGeoResponse as parseGeoResponse, network_parseHar as parseHar, network_parseHsts as parseHsts, network_parseIpv6Address as parseIpv6Address, network_parseMultipartFormData as parseMultipartFormData, network_parsePermissionsPolicy as parsePermissionsPolicy, network_parsePreferHeader as parsePreferHeader, network_parsePriorityHeader as parsePriorityHeader, network_parseRetryAfterHeader as parseRetryAfterHeader, network_parseRobotsMetaTag as parseRobotsMetaTag, network_parseUserAgent as parseUserAgent, network_parseVaryHeader as parseVaryHeader, network_parseXContentTypeOptionsHeader as parseXContentTypeOptionsHeader, network_parseXRobotsTag as parseXRobotsTag, network_scoreSecurityHeaders as scoreSecurityHeaders, network_searchHeaders as searchHeaders, network_searchStatusCodes as searchStatusCodes, network_splitSitemap as splitSitemap, network_statusCodeToText as statusCodeToText, network_typeNumberToLabel as typeNumberToLabel, network_validateDomain as validateDomain, network_validateHeaderName as validateHeaderName, network_validateHeaderValue as validateHeaderValue, network_validateManifest as validateManifest, network_validateRobotsTxt as validateRobotsTxt, network_validateSitemap as validateSitemap };
1363
+ export { type network_AcceptLanguageEntry as AcceptLanguageEntry, type network_AcceptLanguageResult as AcceptLanguageResult, type network_AuthResultEntry as AuthResultEntry, type network_BuildRangeHeaderOptions as BuildRangeHeaderOptions, network_CLIENT_HINTS as CLIENT_HINTS, type network_CacheControlDirective as CacheControlDirective, type network_CacheControlOptions as CacheControlOptions, type network_CacheControlResult as CacheControlResult, type network_ClearSiteDataDirective as ClearSiteDataDirective, type network_ClearSiteDataResult as ClearSiteDataResult, type network_ClientHintDef as ClientHintDef, type network_ClientHintValueType as ClientHintValueType, type network_ClientHintsBuildResult as ClientHintsBuildResult, type network_ClientHintsParseResult as ClientHintsParseResult, type network_CloseCodeInfo as CloseCodeInfo, type network_CloseCodeRange as CloseCodeRange, type network_ContentDispositionBuildOptions as ContentDispositionBuildOptions, type network_ContentDispositionBuildResult as ContentDispositionBuildResult, type network_ContentDispositionParseResult as ContentDispositionParseResult, type network_ContentRangeResult as ContentRangeResult, type network_ContentTypeRiskResult as ContentTypeRiskResult, type network_ContentTypeSniffRisk as ContentTypeSniffRisk, type network_CookieAttributes as CookieAttributes, type network_CookieCheckResult as CookieCheckResult, type network_CookieSizeBudgetResult as CookieSizeBudgetResult, type network_CookieSizeEntry as CookieSizeEntry, 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_EmailHeaderAnalysis as EmailHeaderAnalysis, type network_EmailHeaderField as EmailHeaderField, 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_HstsOptions as HstsOptions, type network_HstsResult as HstsResult, 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_ManifestIconInfo as ManifestIconInfo, type network_ManifestIssue as ManifestIssue, type network_ManifestValidationResult as ManifestValidationResult, type network_MultipartParseResult as MultipartParseResult, type network_MultipartPart as MultipartPart, type network_OpcodeCategory as OpcodeCategory, type network_OpcodeInfo as OpcodeInfo, network_PERMISSIONS_POLICY_FEATURES as PERMISSIONS_POLICY_FEATURES, type network_ParsedClientHint as ParsedClientHint, type network_ParsedDnsResult as ParsedDnsResult, type network_ParsedGeoResult as ParsedGeoResult, type network_PermissionsPolicyDirective as PermissionsPolicyDirective, type network_PermissionsPolicyFeatureInput as PermissionsPolicyFeatureInput, type network_PermissionsPolicyResult as PermissionsPolicyResult, type network_PreferParameter as PreferParameter, type network_PreferPreference as PreferPreference, type network_PreferResult as PreferResult, type network_PriorityResult as PriorityResult, network_REFERRER_POLICY_VALUES as REFERRER_POLICY_VALUES, type network_RangeEntry as RangeEntry, type network_RangeEntryInput as RangeEntryInput, type network_RangeHeaderResult as RangeHeaderResult, type network_ReceivedHop as ReceivedHop, type network_ReferrerPolicyEntry as ReferrerPolicyEntry, type network_ReferrerPolicyResult as ReferrerPolicyResult, type network_ReferrerPolicyValue as ReferrerPolicyValue, type network_RetryAfterDateResult as RetryAfterDateResult, type network_RetryAfterResult as RetryAfterResult, type network_RetryAfterSecondsResult as RetryAfterSecondsResult, type network_RobotsGenerateGroup as RobotsGenerateGroup, type network_RobotsGenerateOptions as RobotsGenerateOptions, type network_RobotsGroup as RobotsGroup, type network_RobotsIssue as RobotsIssue, type network_RobotsMetaTagFlag as RobotsMetaTagFlag, type network_RobotsMetaTagOptions as RobotsMetaTagOptions, type network_RobotsMetaTagResult as RobotsMetaTagResult, type network_RobotsRule as RobotsRule, type network_RobotsValidationResult as RobotsValidationResult, network_STATUS_CODES as STATUS_CODES, type network_SameSiteValue as SameSiteValue, type network_SecurityHeaderCheck as SecurityHeaderCheck, type network_SecurityHeaderStatus as SecurityHeaderStatus, type network_SecurityHeadersScorecard as SecurityHeadersScorecard, type network_SitemapIndexEntry as SitemapIndexEntry, type network_SitemapIssue as SitemapIssue, type network_SitemapSplitFile as SitemapSplitFile, type network_SitemapUrlEntry as SitemapUrlEntry, type network_SitemapValidationResult as SitemapValidationResult, type network_SplitSitemapOptions as SplitSitemapOptions, type network_SplitSitemapResult as SplitSitemapResult, type network_StatusCode as StatusCode, type network_UaDeviceType as UaDeviceType, type network_UserAgentInfo as UserAgentInfo, type network_VaryHeaderEntry as VaryHeaderEntry, type network_VaryHeaderResult as VaryHeaderResult, type network_XContentTypeOptionsHeader as XContentTypeOptionsHeader, type network_XContentTypeOptionsParseResult as XContentTypeOptionsParseResult, type network_XRobotsTagFlag as XRobotsTagFlag, type network_XRobotsTagOptions as XRobotsTagOptions, type network_XRobotsTagResult as XRobotsTagResult, network_X_CONTENT_TYPE_OPTIONS_HEADER as X_CONTENT_TYPE_OPTIONS_HEADER, network_analyzeEmailHeaders as analyzeEmailHeaders, network_assessContentTypeRisk as assessContentTypeRisk, network_buildAcceptLanguage as buildAcceptLanguage, network_buildCacheControl as buildCacheControl, network_buildClearSiteData as buildClearSiteData, network_buildClientHints as buildClientHints, network_buildContentDisposition as buildContentDisposition, network_buildDnsQueryUrl as buildDnsQueryUrl, network_buildGeoUrl as buildGeoUrl, network_buildHsts as buildHsts, network_buildLinkHeader as buildLinkHeader, network_buildMapUrl as buildMapUrl, network_buildPermissionsPolicy as buildPermissionsPolicy, network_buildPreferHeader as buildPreferHeader, network_buildPriorityHeader as buildPriorityHeader, network_buildRangeHeader as buildRangeHeader, network_buildReferrerPolicy as buildReferrerPolicy, network_buildRetryAfterHeader as buildRetryAfterHeader, network_buildRobotsMetaTag as buildRobotsMetaTag, network_buildVaryHeader as buildVaryHeader, network_buildXContentTypeOptionsHeader as buildXContentTypeOptionsHeader, network_buildXRobotsTag as buildXRobotsTag, network_calculateCookieSizeBudget as calculateCookieSizeBudget, network_checkSetCookieHeader as checkSetCookieHeader, network_countryCodeToFlag as countryCodeToFlag, network_extractMultipartBoundary as extractMultipartBoundary, network_formatCoordinates as formatCoordinates, network_formatTtl as formatTtl, network_generateRobotsTxt as generateRobotsTxt, 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_listCloseCodes as listCloseCodes, network_listOpcodes as listOpcodes, network_lookupCloseCode as lookupCloseCode, network_lookupOpcode as lookupOpcode, network_parseAcceptLanguage as parseAcceptLanguage, network_parseClearSiteData as parseClearSiteData, network_parseClientHintHeaders as parseClientHintHeaders, network_parseContentDisposition as parseContentDisposition, network_parseContentRangeHeader as parseContentRangeHeader, network_parseDnsResponse as parseDnsResponse, network_parseGeoResponse as parseGeoResponse, network_parseHar as parseHar, network_parseHsts as parseHsts, network_parseIpv6Address as parseIpv6Address, network_parseMultipartFormData as parseMultipartFormData, network_parsePermissionsPolicy as parsePermissionsPolicy, network_parsePreferHeader as parsePreferHeader, network_parsePriorityHeader as parsePriorityHeader, network_parseRetryAfterHeader as parseRetryAfterHeader, network_parseRobotsMetaTag as parseRobotsMetaTag, network_parseUserAgent as parseUserAgent, network_parseVaryHeader as parseVaryHeader, network_parseXContentTypeOptionsHeader as parseXContentTypeOptionsHeader, network_parseXRobotsTag as parseXRobotsTag, network_scoreSecurityHeaders as scoreSecurityHeaders, network_searchHeaders as searchHeaders, network_searchStatusCodes as searchStatusCodes, network_splitSitemap as splitSitemap, network_statusCodeToText as statusCodeToText, network_typeNumberToLabel as typeNumberToLabel, network_validateDomain as validateDomain, network_validateHeaderName as validateHeaderName, network_validateHeaderValue as validateHeaderValue, network_validateManifest as validateManifest, network_validateRobotsTxt as validateRobotsTxt, network_validateSitemap as validateSitemap };
1329
1364
  }
1330
1365
 
1331
- export { type OpcodeInfo as $, type AcceptLanguageEntry as A, type BuildRangeHeaderOptions as B, CLIENT_HINTS as C, DNS_RECORD_TYPES as D, type EmailHeaderAnalysis as E, type HarEntry as F, type GeoResult as G, HTTP_HEADERS as H, type HarParseResult as I, type HarSummary as J, type HeaderCategory as K, type HstsOptions as L, type HstsResult as M, type HttpHeader as N, type Ipv6AddressType as O, type Ipv6ParseResult as P, LINK_REL_VALUES as Q, type LinkHeaderEntry as R, type LinkHeaderEntryInput as S, type LinkHeaderResult as T, type LinkRel as U, type ManifestIconInfo as V, type ManifestIssue as W, type ManifestValidationResult as X, type MultipartParseResult as Y, type MultipartPart as Z, type OpcodeCategory as _, type AcceptLanguageResult as a, buildLinkHeader as a$, PERMISSIONS_POLICY_FEATURES as a0, type ParsedClientHint as a1, type ParsedDnsResult as a2, type ParsedGeoResult as a3, type PermissionsPolicyDirective as a4, type PermissionsPolicyFeatureInput as a5, type PermissionsPolicyResult as a6, type PreferParameter as a7, type PreferPreference as a8, type PreferResult as a9, type SitemapIndexEntry as aA, type SitemapIssue as aB, type SitemapSplitFile as aC, type SitemapUrlEntry as aD, type SitemapValidationResult as aE, type SplitSitemapOptions as aF, type SplitSitemapResult as aG, type StatusCode as aH, type UaDeviceType as aI, type UserAgentInfo as aJ, type VaryHeaderEntry as aK, type VaryHeaderResult as aL, type XContentTypeOptionsHeader as aM, type XContentTypeOptionsParseResult as aN, type XRobotsTagFlag as aO, type XRobotsTagOptions as aP, type XRobotsTagResult as aQ, X_CONTENT_TYPE_OPTIONS_HEADER as aR, analyzeEmailHeaders as aS, assessContentTypeRisk as aT, buildAcceptLanguage as aU, buildCacheControl as aV, buildClientHints as aW, buildContentDisposition as aX, buildDnsQueryUrl as aY, buildGeoUrl as aZ, buildHsts as a_, type PriorityResult as aa, REFERRER_POLICY_VALUES as ab, type RangeEntry as ac, type RangeEntryInput as ad, type RangeHeaderResult as ae, type ReceivedHop as af, type ReferrerPolicyEntry as ag, type ReferrerPolicyResult as ah, type ReferrerPolicyValue as ai, type RetryAfterDateResult as aj, type RetryAfterResult as ak, type RetryAfterSecondsResult as al, type RobotsGenerateGroup as am, type RobotsGenerateOptions as an, type RobotsGroup as ao, type RobotsIssue as ap, type RobotsMetaTagFlag as aq, type RobotsMetaTagOptions as ar, type RobotsMetaTagResult as as, type RobotsRule as at, type RobotsValidationResult as au, STATUS_CODES as av, type SameSiteValue as aw, type SecurityHeaderCheck as ax, type SecurityHeaderStatus as ay, type SecurityHeadersScorecard as az, type AuthResultEntry as b, validateSitemap as b$, buildMapUrl as b0, buildPermissionsPolicy as b1, buildPreferHeader as b2, buildPriorityHeader as b3, buildRangeHeader as b4, buildReferrerPolicy as b5, buildRetryAfterHeader as b6, buildRobotsMetaTag as b7, buildVaryHeader as b8, buildXContentTypeOptionsHeader as b9, parseContentRangeHeader as bA, parseDnsResponse as bB, parseGeoResponse as bC, parseHar as bD, parseHsts as bE, parseIpv6Address as bF, parseMultipartFormData as bG, parsePermissionsPolicy as bH, parsePreferHeader as bI, parsePriorityHeader as bJ, parseRetryAfterHeader as bK, parseRobotsMetaTag as bL, parseUserAgent as bM, parseVaryHeader as bN, parseXContentTypeOptionsHeader as bO, parseXRobotsTag as bP, scoreSecurityHeaders as bQ, searchHeaders as bR, searchStatusCodes as bS, splitSitemap as bT, statusCodeToText as bU, typeNumberToLabel as bV, validateDomain as bW, validateHeaderName as bX, validateHeaderValue as bY, validateManifest as bZ, validateRobotsTxt as b_, buildXRobotsTag as ba, calculateCookieSizeBudget as bb, checkSetCookieHeader as bc, countryCodeToFlag as bd, extractMultipartBoundary as be, formatCoordinates as bf, formatTtl as bg, generateRobotsTxt as bh, getByCategory as bi, getHeader as bj, getHeadersByCategory as bk, getStatusByCategory as bl, getStatusCode as bm, isClientError as bn, isServerError as bo, isSuccess as bp, isValidIp as bq, isValidIpv4 as br, isValidIpv6 as bs, listCloseCodes as bt, listOpcodes as bu, lookupCloseCode as bv, lookupOpcode as bw, parseAcceptLanguage as bx, parseClientHintHeaders as by, parseContentDisposition as bz, type CacheControlDirective as c, type CacheControlOptions as d, type CacheControlResult as e, type ClientHintDef as f, type ClientHintValueType as g, type ClientHintsBuildResult as h, type ClientHintsParseResult as i, type CloseCodeInfo as j, type CloseCodeRange as k, type ContentDispositionBuildOptions as l, type ContentDispositionBuildResult as m, network as n, type ContentDispositionParseResult as o, type ContentRangeResult as p, type ContentTypeRiskResult as q, type ContentTypeSniffRisk as r, type CookieAttributes as s, type CookieCheckResult as t, type CookieSizeBudgetResult as u, type CookieSizeEntry as v, type DnsRecord as w, type DnsRecordType as x, type DnsResponse as y, type EmailHeaderField as z };
1366
+ export { type MultipartPart as $, type AcceptLanguageEntry as A, type BuildRangeHeaderOptions as B, CLIENT_HINTS as C, DNS_RECORD_TYPES as D, type DnsResponse as E, type EmailHeaderAnalysis as F, type EmailHeaderField as G, type GeoResult as H, HTTP_HEADERS as I, type HarEntry as J, type HarParseResult as K, type HarSummary as L, type HeaderCategory as M, type HstsOptions as N, type HstsResult as O, type HttpHeader as P, type Ipv6AddressType as Q, type Ipv6ParseResult as R, LINK_REL_VALUES as S, type LinkHeaderEntry as T, type LinkHeaderEntryInput as U, type LinkHeaderResult as V, type LinkRel as W, type ManifestIconInfo as X, type ManifestIssue as Y, type ManifestValidationResult as Z, type MultipartParseResult as _, type AcceptLanguageResult as a, buildDnsQueryUrl as a$, type OpcodeCategory as a0, type OpcodeInfo as a1, PERMISSIONS_POLICY_FEATURES as a2, type ParsedClientHint as a3, type ParsedDnsResult as a4, type ParsedGeoResult as a5, type PermissionsPolicyDirective as a6, type PermissionsPolicyFeatureInput as a7, type PermissionsPolicyResult as a8, type PreferParameter as a9, type SecurityHeaderStatus as aA, type SecurityHeadersScorecard as aB, type SitemapIndexEntry as aC, type SitemapIssue as aD, type SitemapSplitFile as aE, type SitemapUrlEntry as aF, type SitemapValidationResult as aG, type SplitSitemapOptions as aH, type SplitSitemapResult as aI, type StatusCode as aJ, type UaDeviceType as aK, type UserAgentInfo as aL, type VaryHeaderEntry as aM, type VaryHeaderResult as aN, type XContentTypeOptionsHeader as aO, type XContentTypeOptionsParseResult as aP, type XRobotsTagFlag as aQ, type XRobotsTagOptions as aR, type XRobotsTagResult as aS, X_CONTENT_TYPE_OPTIONS_HEADER as aT, analyzeEmailHeaders as aU, assessContentTypeRisk as aV, buildAcceptLanguage as aW, buildCacheControl as aX, buildClearSiteData as aY, buildClientHints as aZ, buildContentDisposition as a_, type PreferPreference as aa, type PreferResult as ab, type PriorityResult as ac, REFERRER_POLICY_VALUES as ad, type RangeEntry as ae, type RangeEntryInput as af, type RangeHeaderResult as ag, type ReceivedHop as ah, type ReferrerPolicyEntry as ai, type ReferrerPolicyResult as aj, type ReferrerPolicyValue as ak, type RetryAfterDateResult as al, type RetryAfterResult as am, type RetryAfterSecondsResult as an, type RobotsGenerateGroup as ao, type RobotsGenerateOptions as ap, type RobotsGroup as aq, type RobotsIssue as ar, type RobotsMetaTagFlag as as, type RobotsMetaTagOptions as at, type RobotsMetaTagResult as au, type RobotsRule as av, type RobotsValidationResult as aw, STATUS_CODES as ax, type SameSiteValue as ay, type SecurityHeaderCheck as az, type AuthResultEntry as b, validateHeaderName as b$, buildGeoUrl as b0, buildHsts as b1, buildLinkHeader as b2, buildMapUrl as b3, buildPermissionsPolicy as b4, buildPreferHeader as b5, buildPriorityHeader as b6, buildRangeHeader as b7, buildReferrerPolicy as b8, buildRetryAfterHeader as b9, parseAcceptLanguage as bA, parseClearSiteData as bB, parseClientHintHeaders as bC, parseContentDisposition as bD, parseContentRangeHeader as bE, parseDnsResponse as bF, parseGeoResponse as bG, parseHar as bH, parseHsts as bI, parseIpv6Address as bJ, parseMultipartFormData as bK, parsePermissionsPolicy as bL, parsePreferHeader as bM, parsePriorityHeader as bN, parseRetryAfterHeader as bO, parseRobotsMetaTag as bP, parseUserAgent as bQ, parseVaryHeader as bR, parseXContentTypeOptionsHeader as bS, parseXRobotsTag as bT, scoreSecurityHeaders as bU, searchHeaders as bV, searchStatusCodes as bW, splitSitemap as bX, statusCodeToText as bY, typeNumberToLabel as bZ, validateDomain as b_, buildRobotsMetaTag as ba, buildVaryHeader as bb, buildXContentTypeOptionsHeader as bc, buildXRobotsTag as bd, calculateCookieSizeBudget as be, checkSetCookieHeader as bf, countryCodeToFlag as bg, extractMultipartBoundary as bh, formatCoordinates as bi, formatTtl as bj, generateRobotsTxt as bk, getByCategory as bl, getHeader as bm, getHeadersByCategory as bn, getStatusByCategory as bo, getStatusCode as bp, isClientError as bq, isServerError as br, isSuccess as bs, isValidIp as bt, isValidIpv4 as bu, isValidIpv6 as bv, listCloseCodes as bw, listOpcodes as bx, lookupCloseCode as by, lookupOpcode as bz, type CacheControlDirective as c, validateHeaderValue as c0, validateManifest as c1, validateRobotsTxt as c2, validateSitemap as c3, type CacheControlOptions as d, type CacheControlResult as e, type ClearSiteDataDirective as f, type ClearSiteDataResult as g, type ClientHintDef as h, type ClientHintValueType as i, type ClientHintsBuildResult as j, type ClientHintsParseResult as k, type CloseCodeInfo as l, type CloseCodeRange as m, network as n, type ContentDispositionBuildOptions as o, type ContentDispositionBuildResult as p, type ContentDispositionParseResult as q, type ContentRangeResult as r, type ContentTypeRiskResult as s, type ContentTypeSniffRisk as t, type CookieAttributes as u, type CookieCheckResult as v, type CookieSizeBudgetResult as w, type CookieSizeEntry as x, type DnsRecord as y, type DnsRecordType as z };
@@ -4546,6 +4546,209 @@ function buildCharacterClass(options) {
4546
4546
  const pattern = `[${negate ? "^" : ""}${parts.join("")}]`;
4547
4547
  return { pattern, negate, includes };
4548
4548
  }
4549
+ function detectLockfileFormat(input) {
4550
+ const trimmed = input.trim();
4551
+ if (trimmed.startsWith("{")) return "npm";
4552
+ if (/^lockfileVersion:/m.test(trimmed) || /^packages:\s*$/m.test(trimmed)) return "pnpm";
4553
+ if (/yarn lockfile v\d/i.test(trimmed)) return "yarn";
4554
+ if (/^\s*version\s+"[^"]+"/m.test(trimmed) && /@[^\s",]+["']?\s*:?\s*$/m.test(trimmed)) return "yarn";
4555
+ return null;
4556
+ }
4557
+ function parseNpmLockfile(input) {
4558
+ const data = JSON.parse(input);
4559
+ const entries = [];
4560
+ const packages = data.packages;
4561
+ if (packages && typeof packages === "object" && !Array.isArray(packages)) {
4562
+ for (const [path, metaRaw] of Object.entries(packages)) {
4563
+ if (path === "" || !metaRaw || typeof metaRaw !== "object") continue;
4564
+ const meta = metaRaw;
4565
+ if (typeof meta.version !== "string") continue;
4566
+ const idx = path.lastIndexOf("node_modules/");
4567
+ const name = idx === -1 ? path : path.slice(idx + "node_modules/".length);
4568
+ entries.push({ name, version: meta.version });
4569
+ }
4570
+ return entries;
4571
+ }
4572
+ const dependencies = data.dependencies;
4573
+ if (dependencies && typeof dependencies === "object" && !Array.isArray(dependencies)) {
4574
+ const walk = (deps) => {
4575
+ for (const [name, metaRaw] of Object.entries(deps)) {
4576
+ if (!metaRaw || typeof metaRaw !== "object") continue;
4577
+ const meta = metaRaw;
4578
+ if (typeof meta.version === "string") entries.push({ name, version: meta.version });
4579
+ if (meta.dependencies && typeof meta.dependencies === "object") {
4580
+ walk(meta.dependencies);
4581
+ }
4582
+ }
4583
+ };
4584
+ walk(dependencies);
4585
+ }
4586
+ return entries;
4587
+ }
4588
+ function splitYarnKey(key) {
4589
+ const trimmedKey = key.trim().replace(/^"|"$/g, "");
4590
+ const idx = trimmedKey.lastIndexOf("@");
4591
+ if (idx <= 0) return null;
4592
+ return { name: trimmedKey.slice(0, idx), range: trimmedKey.slice(idx + 1) };
4593
+ }
4594
+ function parseYarnLockfile(input) {
4595
+ const entries = [];
4596
+ const blocks = input.replace(/\r\n/g, "\n").split(/\n\n+/);
4597
+ for (const block of blocks) {
4598
+ const lines = block.split("\n");
4599
+ const headerLines = [];
4600
+ let i = 0;
4601
+ while (i < lines.length && lines[i].trim() !== "" && !lines[i].startsWith(" ") && !lines[i].startsWith("#")) {
4602
+ headerLines.push(lines[i]);
4603
+ i++;
4604
+ }
4605
+ if (headerLines.length === 0) continue;
4606
+ const header = headerLines.join(" ").replace(/:\s*$/, "");
4607
+ const keys = header.split(",").map((k) => k.trim()).filter(Boolean);
4608
+ const versionLine = lines.find((l) => /^\s+version\s+"/.test(l));
4609
+ if (!versionLine) continue;
4610
+ const versionMatch = versionLine.match(/version\s+"([^"]+)"/);
4611
+ if (!versionMatch) continue;
4612
+ const version = versionMatch[1];
4613
+ const names = /* @__PURE__ */ new Set();
4614
+ for (const key of keys) {
4615
+ const split = splitYarnKey(key);
4616
+ if (split) names.add(split.name);
4617
+ }
4618
+ for (const name of names) entries.push({ name, version });
4619
+ }
4620
+ return entries;
4621
+ }
4622
+ function parsePnpmPackageKey(rawKey) {
4623
+ let key = rawKey.trim();
4624
+ if (key.startsWith("/")) key = key.slice(1);
4625
+ const parenIdx = key.indexOf("(");
4626
+ if (parenIdx !== -1) key = key.slice(0, parenIdx);
4627
+ const idx = key.lastIndexOf("@");
4628
+ if (idx <= 0) return null;
4629
+ const name = key.slice(0, idx);
4630
+ const version = key.slice(idx + 1).trim();
4631
+ if (!version) return null;
4632
+ return { name, version };
4633
+ }
4634
+ function parsePnpmLockfile(input) {
4635
+ const data = jsYaml.load(input);
4636
+ const entries = [];
4637
+ const packages = data?.packages;
4638
+ if (!packages || typeof packages !== "object" || Array.isArray(packages)) return entries;
4639
+ for (const rawKey of Object.keys(packages)) {
4640
+ const parsed = parsePnpmPackageKey(rawKey);
4641
+ if (parsed) entries.push(parsed);
4642
+ }
4643
+ return entries;
4644
+ }
4645
+ function findDuplicateLockfileVersions(input, format) {
4646
+ if (!input || !input.trim()) return { error: "Input is empty" };
4647
+ const detected = format ?? detectLockfileFormat(input);
4648
+ if (!detected) {
4649
+ return { error: "Could not detect lockfile format; expected an npm package-lock.json, a yarn.lock, or a pnpm-lock.yaml" };
4650
+ }
4651
+ let rawEntries;
4652
+ try {
4653
+ if (detected === "npm") rawEntries = parseNpmLockfile(input);
4654
+ else if (detected === "yarn") rawEntries = parseYarnLockfile(input);
4655
+ else rawEntries = parsePnpmLockfile(input);
4656
+ } catch (e) {
4657
+ return { error: `Failed to parse ${detected} lockfile: ${e.message}` };
4658
+ }
4659
+ if (rawEntries.length === 0) {
4660
+ return { error: `No packages found in ${detected} lockfile. If this is a pnpm lockfile older than v6 (slash-separated versions instead of "name@version"), re-generate it with a current pnpm version first.` };
4661
+ }
4662
+ const byName = /* @__PURE__ */ new Map();
4663
+ for (const { name, version } of rawEntries) {
4664
+ let versions = byName.get(name);
4665
+ if (!versions) {
4666
+ versions = /* @__PURE__ */ new Map();
4667
+ byName.set(name, versions);
4668
+ }
4669
+ versions.set(version, (versions.get(version) ?? 0) + 1);
4670
+ }
4671
+ const packages = [];
4672
+ for (const [name, versions] of byName) {
4673
+ const versionList = [...versions.entries()].map(([version, count]) => ({ version, count })).sort((a, b) => b.count - a.count || a.version.localeCompare(b.version));
4674
+ packages.push({ name, versions: versionList, isDuplicate: versionList.length > 1 });
4675
+ }
4676
+ packages.sort((a, b) => a.name.localeCompare(b.name));
4677
+ const duplicatePackages = packages.filter((p) => p.isDuplicate);
4678
+ return {
4679
+ format: detected,
4680
+ totalPackages: packages.length,
4681
+ duplicatePackages,
4682
+ packages
4683
+ };
4684
+ }
4685
+ var GIT_DIFF_STAT_FILE_RE = /^\s*(.+?)\s*\|\s*(Bin|\d+)\s*(.*)$/;
4686
+ var GIT_DIFF_STAT_SUMMARY_RE = /^\s*(\d+)\s+files?\s+changed(?:,\s*(\d+)\s+insertions?\(\+\))?(?:,\s*(\d+)\s+deletions?\(-\))?/;
4687
+ function summarizeGitDiffStat(input) {
4688
+ if (!input || !input.trim()) return { error: "Input is empty" };
4689
+ const lines = input.replace(/\r\n/g, "\n").split("\n");
4690
+ const files = [];
4691
+ let summaryMatch = null;
4692
+ for (const line of lines) {
4693
+ if (!line.trim()) continue;
4694
+ const sm = line.match(GIT_DIFF_STAT_SUMMARY_RE);
4695
+ if (sm) {
4696
+ summaryMatch = sm;
4697
+ continue;
4698
+ }
4699
+ const m = line.match(GIT_DIFF_STAT_FILE_RE);
4700
+ if (!m) continue;
4701
+ const rawName = m[1];
4702
+ const countRaw = m[2];
4703
+ const bar = m[3];
4704
+ let file = rawName;
4705
+ let oldFile;
4706
+ const renameMatch = rawName.match(/^(.*?)\s*=>\s*(.*)$/);
4707
+ if (renameMatch) {
4708
+ oldFile = renameMatch[1].trim();
4709
+ file = renameMatch[2].trim();
4710
+ }
4711
+ if (countRaw === "Bin") {
4712
+ files.push({ file, oldFile, changes: null, insertions: null, deletions: null, binary: true, approximate: false });
4713
+ continue;
4714
+ }
4715
+ const changes = parseInt(countRaw, 10);
4716
+ const plusCount = (bar.match(/\+/g) ?? []).length;
4717
+ const minusCount = (bar.match(/-/g) ?? []).length;
4718
+ const barTotal = plusCount + minusCount;
4719
+ let insertions;
4720
+ let deletions;
4721
+ let approximate = false;
4722
+ if (barTotal === changes) {
4723
+ insertions = plusCount;
4724
+ deletions = minusCount;
4725
+ } else if (barTotal > 0) {
4726
+ approximate = true;
4727
+ insertions = Math.round(changes * plusCount / barTotal);
4728
+ deletions = changes - insertions;
4729
+ } else if (changes === 0) {
4730
+ insertions = 0;
4731
+ deletions = 0;
4732
+ } else {
4733
+ approximate = true;
4734
+ insertions = null;
4735
+ deletions = null;
4736
+ }
4737
+ files.push({ file, oldFile, changes, insertions, deletions, binary: false, approximate });
4738
+ }
4739
+ if (files.length === 0) {
4740
+ return { error: "No file stat lines found; expected output from `git diff --stat` or `git log --stat`" };
4741
+ }
4742
+ let filesChanged = files.length;
4743
+ let totalInsertions = files.reduce((sum, f) => sum + (f.insertions ?? 0), 0);
4744
+ let totalDeletions = files.reduce((sum, f) => sum + (f.deletions ?? 0), 0);
4745
+ if (summaryMatch) {
4746
+ filesChanged = parseInt(summaryMatch[1], 10);
4747
+ if (summaryMatch[2]) totalInsertions = parseInt(summaryMatch[2], 10);
4748
+ if (summaryMatch[3]) totalDeletions = parseInt(summaryMatch[3], 10);
4749
+ }
4750
+ return { files, filesChanged, totalInsertions, totalDeletions };
4751
+ }
4549
4752
 
4550
4753
  exports.ALL_FLAGS = ALL_FLAGS;
4551
4754
  exports.CHEATSHEET = CHEATSHEET;
@@ -4566,6 +4769,7 @@ exports.countProperties = countProperties;
4566
4769
  exports.countRules = countRules;
4567
4770
  exports.countSqlPlaceholders = countSqlPlaceholders;
4568
4771
  exports.detectDialect = detectDialect;
4772
+ exports.detectLockfileFormat = detectLockfileFormat;
4569
4773
  exports.detectOperationType = detectOperationType;
4570
4774
  exports.detectRedos = detectRedos;
4571
4775
  exports.envToExport = envToExport;
@@ -4573,6 +4777,7 @@ exports.envToJson = envToJson;
4573
4777
  exports.extractMarkdownFootnotes = extractMarkdownFootnotes;
4574
4778
  exports.extractMarkdownLinkReferences = extractMarkdownLinkReferences;
4575
4779
  exports.extractSvgSpriteSymbols = extractSvgSpriteSymbols;
4780
+ exports.findDuplicateLockfileVersions = findDuplicateLockfileVersions;
4576
4781
  exports.formatCss = formatCss;
4577
4782
  exports.formatGql = formatGql;
4578
4783
  exports.formatHtml = formatHtml;
@@ -4606,6 +4811,7 @@ exports.removeRedundantAttributes = removeRedundantAttributes;
4606
4811
  exports.searchCheatsheet = searchCheatsheet;
4607
4812
  exports.searchEndpoints = searchEndpoints;
4608
4813
  exports.splitStatements = splitStatements;
4814
+ exports.summarizeGitDiffStat = summarizeGitDiffStat;
4609
4815
  exports.testGitignorePatterns = testGitignorePatterns;
4610
4816
  exports.testPattern = testPattern;
4611
4817
  exports.testRegex = testRegex;
@@ -1 +1 @@
1
- export { A as ALL_FLAGS, a as ApiEndpoint, b as ApiInfo, d as AriaIssue, e as AriaValidationResult, C as CHEATSHEET, f as CharClassOptions, g as CharClassResult, h as CheatsheetEntry, i as CommitTrailer, j as CommitTrailerResult, k as ConnectionStringHost, l as ConnectionStringResult, m as ConventionalCommitFinding, n as ConventionalCommitFooter, o as ConventionalCommitOptions, p as ConventionalCommitParsed, q as ConventionalCommitResult, r as ConventionalCommitSeverity, s as CssResult, D as DEFAULT_COMMIT_TYPES, t as DependencyAuditDuplicate, u as DependencyAuditEntry, v as DependencyAuditIssue, w as DependencyAuditResult, x as DependencyRangeType, y as DependencySection, z as DockerImageRef, B as DockerfileLintFinding, E as DockerfileLintResult, F as DockerfileStage, G as EditorConfigIssue, H as EditorConfigProperty, I as EditorConfigSection, J as EditorConfigValidationResult, K as EnvEntry, L as EnvParseResult, M as ExportsIssue, N as ExportsShape, O as ExportsValidationResult, P as FenceTagIssue, Q as FenceTagIssueType, R as FenceValidationResult, S as GitCommandConfig, T as GitCommandResult, U as GitOperation, V as GithubUrlInfo, W as GithubUrlType, X as GitignoreTestResult, Y as GqlFormatResult, Z as HtmlFormatResult, _ as HtmlMinifyOptions, $ as HtmlMinifyResult, a0 as JsMinifyOptions, a1 as JsMinifyResult, a2 as KNOWN_LANGUAGE_TAGS, a3 as LinkReferenceDefinition, a4 as LinkReferenceUsage, a5 as MIME_TABLE, a6 as MarkdownFootnoteDefinition, a7 as MarkdownFootnoteReference, a8 as MarkdownFootnoteResult, a9 as MarkdownLinkReferenceResult, aa as MatchResult, ab as MermaidSyntaxIssue, ac as MermaidSyntaxResult, ad as MermaidSyntaxRule, ae as MimeEntry, af as MimeLookupResult, ag as OPERATIONS, ah as ParsedSpec, ai as PlaceholderStyle, aj as RedosFinding, ak as RedosResult, al as RedosSeverity, am as RegexBackreferenceInfo, an as RegexError, ao as RegexFlag, ap as RegexGroupAnalysis, aq as RegexGroupInfo, ar as RegexGroupIssue, as as RegexMatch, at as RegexResult, au as RegexSuccess, av as ResolvedLinkReference, aw as SQL_DEFAULT_OPTIONS, ax as Segment, ay as SpecVersion, az as SqlDialect, aA as SqlFormatOptions, aB as SqlPlaceholder, aC as SqlPlaceholderResult, aD as SvgSpriteResult, aE as SvgSpriteSymbol, aF as TestPatternResult, aG as TsconfigIssue, aH as TsconfigValidationResult, aI as analyzeRegexGroups, aJ as auditDependencyRanges, aK as buildCharacterClass, aL as buildDockerPull, aM as buildDockerRun, aN as buildGitCommand, aO as collapseHtmlWhitespace, aP as collapseJsWhitespace, aQ as countProperties, aR as countRules, aS as countSqlPlaceholders, aT as detectDialect, aU as detectOperationType, aV as detectRedos, aW as envToExport, aX as envToJson, aY as extractMarkdownFootnotes, aZ as extractMarkdownLinkReferences, a_ as extractSvgSpriteSymbols, a$ as formatCss, b0 as formatGql, b1 as formatHtml, b2 as formatSql, b3 as getEndpointsByTag, b4 as getHtmlStats, b5 as getJsStats, b6 as getMethodColor, b7 as isValidTag, b8 as lintConventionalCommit, b9 as lintDockerfile, ba as lookupMime, bb as minifyCss, bc as minifyGql, bd as minifyHtml, be as minifyJs, bf as minifySql, bg as normalizeRef, bh as parseCommitTrailers, bi as parseConnectionString, bj as parseDockerImage, bk as parseEnv, bl as parseGitCommand, bm as parseGithubUrl, bn as parseSpec, bo as removeConsoleCalls, bp as removeEmptyAttributes, bq as removeHtmlComments, br as removeJsComments, bs as removeRedundantAttributes, bt as searchCheatsheet, bu as searchEndpoints, bv as splitStatements, bw as testGitignorePatterns, bx as testPattern, by as testRegex, bz as validateAria, bA as validateEditorConfig, bB as validateEnvKey, bC as validateFenceLanguageTags, bD as validateMermaidSyntax, bE as validatePackageExports, bF as validateTsconfig } from '../code-DvJYYTea.cjs';
1
+ export { A as ALL_FLAGS, a as ApiEndpoint, b as ApiInfo, d as AriaIssue, e as AriaValidationResult, C as CHEATSHEET, f as CharClassOptions, g as CharClassResult, h as CheatsheetEntry, i as CommitTrailer, j as CommitTrailerResult, k as ConnectionStringHost, l as ConnectionStringResult, m as ConventionalCommitFinding, n as ConventionalCommitFooter, o as ConventionalCommitOptions, p as ConventionalCommitParsed, q as ConventionalCommitResult, r as ConventionalCommitSeverity, s as CssResult, D as DEFAULT_COMMIT_TYPES, t as DependencyAuditDuplicate, u as DependencyAuditEntry, v as DependencyAuditIssue, w as DependencyAuditResult, x as DependencyRangeType, y as DependencySection, z as DockerImageRef, B as DockerfileLintFinding, E as DockerfileLintResult, F as DockerfileStage, G as EditorConfigIssue, H as EditorConfigProperty, I as EditorConfigSection, J as EditorConfigValidationResult, K as EnvEntry, L as EnvParseResult, M as ExportsIssue, N as ExportsShape, O as ExportsValidationResult, P as FenceTagIssue, Q as FenceTagIssueType, R as FenceValidationResult, S as GitCommandConfig, T as GitCommandResult, U as GitDiffStatFileEntry, V as GitDiffStatSummary, W as GitOperation, X as GithubUrlInfo, Y as GithubUrlType, Z as GitignoreTestResult, _ as GqlFormatResult, $ as HtmlFormatResult, a0 as HtmlMinifyOptions, a1 as HtmlMinifyResult, a2 as JsMinifyOptions, a3 as JsMinifyResult, a4 as KNOWN_LANGUAGE_TAGS, a5 as LinkReferenceDefinition, a6 as LinkReferenceUsage, a7 as LockfileDuplicateReport, a8 as LockfileFormat, a9 as LockfilePackageEntry, aa as LockfileVersionInstance, ab as MIME_TABLE, ac as MarkdownFootnoteDefinition, ad as MarkdownFootnoteReference, ae as MarkdownFootnoteResult, af as MarkdownLinkReferenceResult, ag as MatchResult, ah as MermaidSyntaxIssue, ai as MermaidSyntaxResult, aj as MermaidSyntaxRule, ak as MimeEntry, al as MimeLookupResult, am as OPERATIONS, an as ParsedSpec, ao as PlaceholderStyle, ap as RedosFinding, aq as RedosResult, ar as RedosSeverity, as as RegexBackreferenceInfo, at as RegexError, au as RegexFlag, av as RegexGroupAnalysis, aw as RegexGroupInfo, ax as RegexGroupIssue, ay as RegexMatch, az as RegexResult, aA as RegexSuccess, aB as ResolvedLinkReference, aC as SQL_DEFAULT_OPTIONS, aD as Segment, aE as SpecVersion, aF as SqlDialect, aG as SqlFormatOptions, aH as SqlPlaceholder, aI as SqlPlaceholderResult, aJ as SvgSpriteResult, aK as SvgSpriteSymbol, aL as TestPatternResult, aM as TsconfigIssue, aN as TsconfigValidationResult, aO as analyzeRegexGroups, aP as auditDependencyRanges, aQ as buildCharacterClass, aR as buildDockerPull, aS as buildDockerRun, aT as buildGitCommand, aU as collapseHtmlWhitespace, aV as collapseJsWhitespace, aW as countProperties, aX as countRules, aY as countSqlPlaceholders, aZ as detectDialect, a_ as detectLockfileFormat, a$ as detectOperationType, b0 as detectRedos, b1 as envToExport, b2 as envToJson, b3 as extractMarkdownFootnotes, b4 as extractMarkdownLinkReferences, b5 as extractSvgSpriteSymbols, b6 as findDuplicateLockfileVersions, b7 as formatCss, b8 as formatGql, b9 as formatHtml, ba as formatSql, bb as getEndpointsByTag, bc as getHtmlStats, bd as getJsStats, be as getMethodColor, bf as isValidTag, bg as lintConventionalCommit, bh as lintDockerfile, bi as lookupMime, bj as minifyCss, bk as minifyGql, bl as minifyHtml, bm as minifyJs, bn as minifySql, bo as normalizeRef, bp as parseCommitTrailers, bq as parseConnectionString, br as parseDockerImage, bs as parseEnv, bt as parseGitCommand, bu as parseGithubUrl, bv as parseSpec, bw as removeConsoleCalls, bx as removeEmptyAttributes, by as removeHtmlComments, bz as removeJsComments, bA as removeRedundantAttributes, bB as searchCheatsheet, bC as searchEndpoints, bD as splitStatements, bE as summarizeGitDiffStat, bF as testGitignorePatterns, bG as testPattern, bH as testRegex, bI as validateAria, bJ as validateEditorConfig, bK as validateEnvKey, bL as validateFenceLanguageTags, bM as validateMermaidSyntax, bN as validatePackageExports, bO as validateTsconfig } from '../code-CZHElFHu.cjs';
@@ -1 +1 @@
1
- export { A as ALL_FLAGS, a as ApiEndpoint, b as ApiInfo, d as AriaIssue, e as AriaValidationResult, C as CHEATSHEET, f as CharClassOptions, g as CharClassResult, h as CheatsheetEntry, i as CommitTrailer, j as CommitTrailerResult, k as ConnectionStringHost, l as ConnectionStringResult, m as ConventionalCommitFinding, n as ConventionalCommitFooter, o as ConventionalCommitOptions, p as ConventionalCommitParsed, q as ConventionalCommitResult, r as ConventionalCommitSeverity, s as CssResult, D as DEFAULT_COMMIT_TYPES, t as DependencyAuditDuplicate, u as DependencyAuditEntry, v as DependencyAuditIssue, w as DependencyAuditResult, x as DependencyRangeType, y as DependencySection, z as DockerImageRef, B as DockerfileLintFinding, E as DockerfileLintResult, F as DockerfileStage, G as EditorConfigIssue, H as EditorConfigProperty, I as EditorConfigSection, J as EditorConfigValidationResult, K as EnvEntry, L as EnvParseResult, M as ExportsIssue, N as ExportsShape, O as ExportsValidationResult, P as FenceTagIssue, Q as FenceTagIssueType, R as FenceValidationResult, S as GitCommandConfig, T as GitCommandResult, U as GitOperation, V as GithubUrlInfo, W as GithubUrlType, X as GitignoreTestResult, Y as GqlFormatResult, Z as HtmlFormatResult, _ as HtmlMinifyOptions, $ as HtmlMinifyResult, a0 as JsMinifyOptions, a1 as JsMinifyResult, a2 as KNOWN_LANGUAGE_TAGS, a3 as LinkReferenceDefinition, a4 as LinkReferenceUsage, a5 as MIME_TABLE, a6 as MarkdownFootnoteDefinition, a7 as MarkdownFootnoteReference, a8 as MarkdownFootnoteResult, a9 as MarkdownLinkReferenceResult, aa as MatchResult, ab as MermaidSyntaxIssue, ac as MermaidSyntaxResult, ad as MermaidSyntaxRule, ae as MimeEntry, af as MimeLookupResult, ag as OPERATIONS, ah as ParsedSpec, ai as PlaceholderStyle, aj as RedosFinding, ak as RedosResult, al as RedosSeverity, am as RegexBackreferenceInfo, an as RegexError, ao as RegexFlag, ap as RegexGroupAnalysis, aq as RegexGroupInfo, ar as RegexGroupIssue, as as RegexMatch, at as RegexResult, au as RegexSuccess, av as ResolvedLinkReference, aw as SQL_DEFAULT_OPTIONS, ax as Segment, ay as SpecVersion, az as SqlDialect, aA as SqlFormatOptions, aB as SqlPlaceholder, aC as SqlPlaceholderResult, aD as SvgSpriteResult, aE as SvgSpriteSymbol, aF as TestPatternResult, aG as TsconfigIssue, aH as TsconfigValidationResult, aI as analyzeRegexGroups, aJ as auditDependencyRanges, aK as buildCharacterClass, aL as buildDockerPull, aM as buildDockerRun, aN as buildGitCommand, aO as collapseHtmlWhitespace, aP as collapseJsWhitespace, aQ as countProperties, aR as countRules, aS as countSqlPlaceholders, aT as detectDialect, aU as detectOperationType, aV as detectRedos, aW as envToExport, aX as envToJson, aY as extractMarkdownFootnotes, aZ as extractMarkdownLinkReferences, a_ as extractSvgSpriteSymbols, a$ as formatCss, b0 as formatGql, b1 as formatHtml, b2 as formatSql, b3 as getEndpointsByTag, b4 as getHtmlStats, b5 as getJsStats, b6 as getMethodColor, b7 as isValidTag, b8 as lintConventionalCommit, b9 as lintDockerfile, ba as lookupMime, bb as minifyCss, bc as minifyGql, bd as minifyHtml, be as minifyJs, bf as minifySql, bg as normalizeRef, bh as parseCommitTrailers, bi as parseConnectionString, bj as parseDockerImage, bk as parseEnv, bl as parseGitCommand, bm as parseGithubUrl, bn as parseSpec, bo as removeConsoleCalls, bp as removeEmptyAttributes, bq as removeHtmlComments, br as removeJsComments, bs as removeRedundantAttributes, bt as searchCheatsheet, bu as searchEndpoints, bv as splitStatements, bw as testGitignorePatterns, bx as testPattern, by as testRegex, bz as validateAria, bA as validateEditorConfig, bB as validateEnvKey, bC as validateFenceLanguageTags, bD as validateMermaidSyntax, bE as validatePackageExports, bF as validateTsconfig } from '../code-DvJYYTea.js';
1
+ export { A as ALL_FLAGS, a as ApiEndpoint, b as ApiInfo, d as AriaIssue, e as AriaValidationResult, C as CHEATSHEET, f as CharClassOptions, g as CharClassResult, h as CheatsheetEntry, i as CommitTrailer, j as CommitTrailerResult, k as ConnectionStringHost, l as ConnectionStringResult, m as ConventionalCommitFinding, n as ConventionalCommitFooter, o as ConventionalCommitOptions, p as ConventionalCommitParsed, q as ConventionalCommitResult, r as ConventionalCommitSeverity, s as CssResult, D as DEFAULT_COMMIT_TYPES, t as DependencyAuditDuplicate, u as DependencyAuditEntry, v as DependencyAuditIssue, w as DependencyAuditResult, x as DependencyRangeType, y as DependencySection, z as DockerImageRef, B as DockerfileLintFinding, E as DockerfileLintResult, F as DockerfileStage, G as EditorConfigIssue, H as EditorConfigProperty, I as EditorConfigSection, J as EditorConfigValidationResult, K as EnvEntry, L as EnvParseResult, M as ExportsIssue, N as ExportsShape, O as ExportsValidationResult, P as FenceTagIssue, Q as FenceTagIssueType, R as FenceValidationResult, S as GitCommandConfig, T as GitCommandResult, U as GitDiffStatFileEntry, V as GitDiffStatSummary, W as GitOperation, X as GithubUrlInfo, Y as GithubUrlType, Z as GitignoreTestResult, _ as GqlFormatResult, $ as HtmlFormatResult, a0 as HtmlMinifyOptions, a1 as HtmlMinifyResult, a2 as JsMinifyOptions, a3 as JsMinifyResult, a4 as KNOWN_LANGUAGE_TAGS, a5 as LinkReferenceDefinition, a6 as LinkReferenceUsage, a7 as LockfileDuplicateReport, a8 as LockfileFormat, a9 as LockfilePackageEntry, aa as LockfileVersionInstance, ab as MIME_TABLE, ac as MarkdownFootnoteDefinition, ad as MarkdownFootnoteReference, ae as MarkdownFootnoteResult, af as MarkdownLinkReferenceResult, ag as MatchResult, ah as MermaidSyntaxIssue, ai as MermaidSyntaxResult, aj as MermaidSyntaxRule, ak as MimeEntry, al as MimeLookupResult, am as OPERATIONS, an as ParsedSpec, ao as PlaceholderStyle, ap as RedosFinding, aq as RedosResult, ar as RedosSeverity, as as RegexBackreferenceInfo, at as RegexError, au as RegexFlag, av as RegexGroupAnalysis, aw as RegexGroupInfo, ax as RegexGroupIssue, ay as RegexMatch, az as RegexResult, aA as RegexSuccess, aB as ResolvedLinkReference, aC as SQL_DEFAULT_OPTIONS, aD as Segment, aE as SpecVersion, aF as SqlDialect, aG as SqlFormatOptions, aH as SqlPlaceholder, aI as SqlPlaceholderResult, aJ as SvgSpriteResult, aK as SvgSpriteSymbol, aL as TestPatternResult, aM as TsconfigIssue, aN as TsconfigValidationResult, aO as analyzeRegexGroups, aP as auditDependencyRanges, aQ as buildCharacterClass, aR as buildDockerPull, aS as buildDockerRun, aT as buildGitCommand, aU as collapseHtmlWhitespace, aV as collapseJsWhitespace, aW as countProperties, aX as countRules, aY as countSqlPlaceholders, aZ as detectDialect, a_ as detectLockfileFormat, a$ as detectOperationType, b0 as detectRedos, b1 as envToExport, b2 as envToJson, b3 as extractMarkdownFootnotes, b4 as extractMarkdownLinkReferences, b5 as extractSvgSpriteSymbols, b6 as findDuplicateLockfileVersions, b7 as formatCss, b8 as formatGql, b9 as formatHtml, ba as formatSql, bb as getEndpointsByTag, bc as getHtmlStats, bd as getJsStats, be as getMethodColor, bf as isValidTag, bg as lintConventionalCommit, bh as lintDockerfile, bi as lookupMime, bj as minifyCss, bk as minifyGql, bl as minifyHtml, bm as minifyJs, bn as minifySql, bo as normalizeRef, bp as parseCommitTrailers, bq as parseConnectionString, br as parseDockerImage, bs as parseEnv, bt as parseGitCommand, bu as parseGithubUrl, bv as parseSpec, bw as removeConsoleCalls, bx as removeEmptyAttributes, by as removeHtmlComments, bz as removeJsComments, bA as removeRedundantAttributes, bB as searchCheatsheet, bC as searchEndpoints, bD as splitStatements, bE as summarizeGitDiffStat, bF as testGitignorePatterns, bG as testPattern, bH as testRegex, bI as validateAria, bJ as validateEditorConfig, bK as validateEnvKey, bL as validateFenceLanguageTags, bM as validateMermaidSyntax, bN as validatePackageExports, bO as validateTsconfig } from '../code-CZHElFHu.js';
@@ -1,2 +1,2 @@
1
- export { ALL_FLAGS, CHEATSHEET, DEFAULT_COMMIT_TYPES, KNOWN_LANGUAGE_TAGS, MIME_TABLE, OPERATIONS, SQL_DEFAULT_OPTIONS, analyzeRegexGroups, auditDependencyRanges, buildCharacterClass, buildDockerPull, buildDockerRun, buildGitCommand, collapseHtmlWhitespace, collapseJsWhitespace, countProperties, countRules, countSqlPlaceholders, detectDialect, detectOperationType, detectRedos, envToExport, envToJson, extractMarkdownFootnotes, extractMarkdownLinkReferences, extractSvgSpriteSymbols, formatCss, formatGql, formatHtml, formatSql, getEndpointsByTag, getHtmlStats, getJsStats, getMethodColor, isValidTag, lintConventionalCommit, lintDockerfile, lookupMime, minifyCss, minifyGql, minifyHtml, minifyJs, minifySql, normalizeRef, parseCommitTrailers, parseConnectionString, parseDockerImage, parseEnv, parseGitCommand, parseGithubUrl, parseSpec, removeConsoleCalls, removeEmptyAttributes, removeHtmlComments, removeJsComments, removeRedundantAttributes, searchCheatsheet, searchEndpoints, splitStatements, testGitignorePatterns, testPattern, testRegex, validateAria, validateEditorConfig, validateEnvKey, validateFenceLanguageTags, validateMermaidSyntax, validatePackageExports, validateTsconfig } from '../chunk-KYBI62YY.js';
1
+ export { ALL_FLAGS, CHEATSHEET, DEFAULT_COMMIT_TYPES, KNOWN_LANGUAGE_TAGS, MIME_TABLE, OPERATIONS, SQL_DEFAULT_OPTIONS, analyzeRegexGroups, auditDependencyRanges, buildCharacterClass, buildDockerPull, buildDockerRun, buildGitCommand, collapseHtmlWhitespace, collapseJsWhitespace, countProperties, countRules, countSqlPlaceholders, detectDialect, detectLockfileFormat, detectOperationType, detectRedos, envToExport, envToJson, extractMarkdownFootnotes, extractMarkdownLinkReferences, extractSvgSpriteSymbols, findDuplicateLockfileVersions, formatCss, formatGql, formatHtml, formatSql, getEndpointsByTag, getHtmlStats, getJsStats, getMethodColor, isValidTag, lintConventionalCommit, lintDockerfile, lookupMime, minifyCss, minifyGql, minifyHtml, minifyJs, minifySql, normalizeRef, parseCommitTrailers, parseConnectionString, parseDockerImage, parseEnv, parseGitCommand, parseGithubUrl, parseSpec, removeConsoleCalls, removeEmptyAttributes, removeHtmlComments, removeJsComments, removeRedundantAttributes, searchCheatsheet, searchEndpoints, splitStatements, summarizeGitDiffStat, testGitignorePatterns, testPattern, testRegex, validateAria, validateEditorConfig, validateEnvKey, validateFenceLanguageTags, validateMermaidSyntax, validatePackageExports, validateTsconfig } from '../chunk-KRPIOHJ4.js';
2
2
  import '../chunk-MLKGABMK.js';
@@ -2121,6 +2121,68 @@ function alignMarkdownTables(markdown) {
2121
2121
  if (tables.length === 0) return { error: "No Markdown tables found" };
2122
2122
  return { output: outputLines.join("\n"), tables, warnings };
2123
2123
  }
2124
+ var _CSV_NUMERIC_RE = /^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;
2125
+ function _parseCsvNumeric(raw) {
2126
+ if (!_CSV_NUMERIC_RE.test(raw)) return null;
2127
+ const n = Number(raw);
2128
+ return Number.isFinite(n) ? n : null;
2129
+ }
2130
+ function summarizeCsvColumnStats(input, options) {
2131
+ const parsed = parseCsv(input, {
2132
+ delimiter: options?.delimiter ?? ",",
2133
+ hasHeader: options?.hasHeader !== false
2134
+ });
2135
+ if ("error" in parsed) return parsed;
2136
+ if (parsed.rows.length === 0) return { error: "No data rows found" };
2137
+ const columns = parsed.headers.map((name, colIdx) => {
2138
+ let nullCount = 0;
2139
+ let nonNumericCount = 0;
2140
+ const numericValues = [];
2141
+ const freq = /* @__PURE__ */ new Map();
2142
+ for (const row of parsed.rows) {
2143
+ const raw = (row[colIdx] ?? "").trim();
2144
+ if (raw === "") {
2145
+ nullCount++;
2146
+ continue;
2147
+ }
2148
+ freq.set(raw, (freq.get(raw) ?? 0) + 1);
2149
+ const n = _parseCsvNumeric(raw);
2150
+ if (n !== null) numericValues.push(n);
2151
+ else nonNumericCount++;
2152
+ }
2153
+ const nonEmptyCount = parsed.rows.length - nullCount;
2154
+ const isNumeric = nonEmptyCount > 0 && nonNumericCount === 0;
2155
+ let mostCommon;
2156
+ for (const [value, count] of freq) {
2157
+ if (!mostCommon || count > mostCommon.count) mostCommon = { value, count };
2158
+ }
2159
+ const stats = {
2160
+ name,
2161
+ totalCount: parsed.rows.length,
2162
+ nullCount,
2163
+ uniqueCount: freq.size,
2164
+ isNumeric,
2165
+ numericCount: numericValues.length
2166
+ };
2167
+ if (isNumeric && numericValues.length > 0) {
2168
+ const sorted = [...numericValues].sort((a, b) => a - b);
2169
+ const sum = sorted.reduce((a, b) => a + b, 0);
2170
+ const mean = sum / sorted.length;
2171
+ const mid = Math.floor(sorted.length / 2);
2172
+ const median = sorted.length % 2 === 0 ? (sorted[mid - 1] + sorted[mid]) / 2 : sorted[mid];
2173
+ const variance = sorted.reduce((acc, v) => acc + (v - mean) ** 2, 0) / sorted.length;
2174
+ stats.min = sorted[0];
2175
+ stats.max = sorted[sorted.length - 1];
2176
+ stats.mean = mean;
2177
+ stats.median = median;
2178
+ stats.stdDev = Math.sqrt(variance);
2179
+ } else {
2180
+ stats.mostCommon = mostCommon;
2181
+ }
2182
+ return stats;
2183
+ });
2184
+ return { columns, rowCount: parsed.rows.length };
2185
+ }
2124
2186
 
2125
2187
  exports.alignMarkdownTables = alignMarkdownTables;
2126
2188
  exports.analyzeCaptionSpeed = analyzeCaptionSpeed;
@@ -2169,6 +2231,7 @@ exports.resolveYamlAnchors = resolveYamlAnchors;
2169
2231
  exports.serializeSubtitles = serializeSubtitles;
2170
2232
  exports.shiftSubtitles = shiftSubtitles;
2171
2233
  exports.stringifyIni = stringifyIni;
2234
+ exports.summarizeCsvColumnStats = summarizeCsvColumnStats;
2172
2235
  exports.toCsvString = toCsvString;
2173
2236
  exports.tomlToJson = tomlToJson;
2174
2237
  exports.validateEnvKey = validateEnvKey;
@@ -1 +1 @@
1
- export { C as CaptionSpeedCue, a as CaptionSpeedResult, b as ConvertedSubtitles, c as CsvColumnType, e as CsvColumnTypeInfo, f as CsvColumnTypeOptions, g as CsvColumnTypeResult, h as CsvDuplicateGroup, i as CsvDuplicateOptions, j as CsvDuplicateResult, k as CsvParseResult, l as CsvToSqlOptions, m as CsvToSqlResult, E as EnvDiffError, n as EnvDiffResult, o as EnvEntry, p as EnvParseResult, F as FrontMatterError, q as FrontMatterResult, H as HeadingEntry, r as HeadingHierarchyResult, s as HeadingIssue, t as HeadingIssueType, I as IniSection, M as MarkdownAnchorHeading, u as MarkdownAnchorLink, v as MarkdownInternalLinkCheckResult, w as MarkdownTableAlignResult, x as MarkdownTableColumnAlignment, y as MarkdownTableInfo, z as MarkdownTaskListItem, A as MarkdownTaskListProgressResult, B as MarkdownTaskListSectionSummary, D as MarkdownTocEntry, G as MarkdownTocOptions, J as MarkdownTocResult, N as NdjsonDedupeResult, K as NdjsonLineResult, L as NdjsonValidateResult, P as ParseOptions, O as ParsedIni, Q as ParsedSubtitles, S as SubtitleCue, R as SubtitleFormat, T as TomlFormatResult, V as ValidationResult, X as XmlFormatResult, U as XmlToJsonOptions, Y as YamlAnchorInfo, W as YamlAnchorResolveError, Z as YamlAnchorResolveResult, _ as YamlDuplicateKeyEntry, $ as YamlDuplicateKeyError, a0 as YamlDuplicateKeyResult, a1 as alignMarkdownTables, a2 as analyzeCaptionSpeed, a3 as calculateMarkdownTaskListProgress, a4 as checkMarkdownInternalLinks, a5 as convertSubtitles, a6 as csvToJson, a7 as csvToSqlInsert, a8 as dedupeNdjson, a9 as detectDelimiter, aa as detectSubtitleFormat, ab as diffEnvExample, ac as envToExport, ad as envToJson, ae as findCsvDuplicateRows, af as findYamlDuplicateKeys, ag as formatNdjson, ah as formatSubtitleTimestamp, ai as formatToml, aj as formatXml, ak as generateMarkdownToc, al as getSection, am as getSectionNames, an as getTomlStats, ao as getXmlStats, ap as getYamlStats, aq as inferCsvColumnTypes, ar as iniToJson, as as jsonArrayToNdjson, at as jsonToIni, au as jsonToToml, av as jsonToXml, aw as minifyNdjson, ax as minifyToml, ay as minifyXml, az as ndjsonToCsv, aA as ndjsonToJsonArray, aB as parseCsv, aC as parseEnv, aD as parseFrontMatter, aE as parseIni, aF as parseSubtitleTimestamp, aG as parseSubtitles, aH as parseXmlToObject, aI as resolveYamlAnchors, aJ as serializeSubtitles, aK as shiftSubtitles, aL as stringifyIni, aM as toCsvString, aN as tomlToJson, aO as validateEnvKey, aP as validateIni, aQ as validateMarkdownHeadingHierarchy, aR as validateNdjson, aS as validateToml, aT as validateXml, aU as validateYaml, aV as xmlToJson } from '../data-cDudn2P6.cjs';
1
+ export { C as CaptionSpeedCue, a as CaptionSpeedResult, b as ConvertedSubtitles, c as CsvColumnMostCommon, e as CsvColumnStats, f as CsvColumnStatsOptions, g as CsvColumnStatsResult, h as CsvColumnType, i as CsvColumnTypeInfo, j as CsvColumnTypeOptions, k as CsvColumnTypeResult, l as CsvDuplicateGroup, m as CsvDuplicateOptions, n as CsvDuplicateResult, o as CsvParseResult, p as CsvToSqlOptions, q as CsvToSqlResult, E as EnvDiffError, r as EnvDiffResult, s as EnvEntry, t as EnvParseResult, F as FrontMatterError, u as FrontMatterResult, H as HeadingEntry, v as HeadingHierarchyResult, w as HeadingIssue, x as HeadingIssueType, I as IniSection, M as MarkdownAnchorHeading, y as MarkdownAnchorLink, z as MarkdownInternalLinkCheckResult, A as MarkdownTableAlignResult, B as MarkdownTableColumnAlignment, D as MarkdownTableInfo, G as MarkdownTaskListItem, J as MarkdownTaskListProgressResult, K as MarkdownTaskListSectionSummary, L as MarkdownTocEntry, N as MarkdownTocOptions, O as MarkdownTocResult, P as NdjsonDedupeResult, Q as NdjsonLineResult, R as NdjsonValidateResult, S as ParseOptions, T as ParsedIni, U as ParsedSubtitles, V as SubtitleCue, W as SubtitleFormat, X as TomlFormatResult, Y as ValidationResult, Z as XmlFormatResult, _ as XmlToJsonOptions, $ as YamlAnchorInfo, a0 as YamlAnchorResolveError, a1 as YamlAnchorResolveResult, a2 as YamlDuplicateKeyEntry, a3 as YamlDuplicateKeyError, a4 as YamlDuplicateKeyResult, a5 as alignMarkdownTables, a6 as analyzeCaptionSpeed, a7 as calculateMarkdownTaskListProgress, a8 as checkMarkdownInternalLinks, a9 as convertSubtitles, aa as csvToJson, ab as csvToSqlInsert, ac as dedupeNdjson, ad as detectDelimiter, ae as detectSubtitleFormat, af as diffEnvExample, ag as envToExport, ah as envToJson, ai as findCsvDuplicateRows, aj as findYamlDuplicateKeys, ak as formatNdjson, al as formatSubtitleTimestamp, am as formatToml, an as formatXml, ao as generateMarkdownToc, ap as getSection, aq as getSectionNames, ar as getTomlStats, as as getXmlStats, at as getYamlStats, au as inferCsvColumnTypes, av as iniToJson, aw as jsonArrayToNdjson, ax as jsonToIni, ay as jsonToToml, az as jsonToXml, aA as minifyNdjson, aB as minifyToml, aC as minifyXml, aD as ndjsonToCsv, aE as ndjsonToJsonArray, aF as parseCsv, aG as parseEnv, aH as parseFrontMatter, aI as parseIni, aJ as parseSubtitleTimestamp, aK as parseSubtitles, aL as parseXmlToObject, aM as resolveYamlAnchors, aN as serializeSubtitles, aO as shiftSubtitles, aP as stringifyIni, aQ as summarizeCsvColumnStats, aR as toCsvString, aS as tomlToJson, aT as validateEnvKey, aU as validateIni, aV as validateMarkdownHeadingHierarchy, aW as validateNdjson, aX as validateToml, aY as validateXml, aZ as validateYaml, a_ as xmlToJson } from '../data-3qMdFIF5.cjs';
@@ -1 +1 @@
1
- export { C as CaptionSpeedCue, a as CaptionSpeedResult, b as ConvertedSubtitles, c as CsvColumnType, e as CsvColumnTypeInfo, f as CsvColumnTypeOptions, g as CsvColumnTypeResult, h as CsvDuplicateGroup, i as CsvDuplicateOptions, j as CsvDuplicateResult, k as CsvParseResult, l as CsvToSqlOptions, m as CsvToSqlResult, E as EnvDiffError, n as EnvDiffResult, o as EnvEntry, p as EnvParseResult, F as FrontMatterError, q as FrontMatterResult, H as HeadingEntry, r as HeadingHierarchyResult, s as HeadingIssue, t as HeadingIssueType, I as IniSection, M as MarkdownAnchorHeading, u as MarkdownAnchorLink, v as MarkdownInternalLinkCheckResult, w as MarkdownTableAlignResult, x as MarkdownTableColumnAlignment, y as MarkdownTableInfo, z as MarkdownTaskListItem, A as MarkdownTaskListProgressResult, B as MarkdownTaskListSectionSummary, D as MarkdownTocEntry, G as MarkdownTocOptions, J as MarkdownTocResult, N as NdjsonDedupeResult, K as NdjsonLineResult, L as NdjsonValidateResult, P as ParseOptions, O as ParsedIni, Q as ParsedSubtitles, S as SubtitleCue, R as SubtitleFormat, T as TomlFormatResult, V as ValidationResult, X as XmlFormatResult, U as XmlToJsonOptions, Y as YamlAnchorInfo, W as YamlAnchorResolveError, Z as YamlAnchorResolveResult, _ as YamlDuplicateKeyEntry, $ as YamlDuplicateKeyError, a0 as YamlDuplicateKeyResult, a1 as alignMarkdownTables, a2 as analyzeCaptionSpeed, a3 as calculateMarkdownTaskListProgress, a4 as checkMarkdownInternalLinks, a5 as convertSubtitles, a6 as csvToJson, a7 as csvToSqlInsert, a8 as dedupeNdjson, a9 as detectDelimiter, aa as detectSubtitleFormat, ab as diffEnvExample, ac as envToExport, ad as envToJson, ae as findCsvDuplicateRows, af as findYamlDuplicateKeys, ag as formatNdjson, ah as formatSubtitleTimestamp, ai as formatToml, aj as formatXml, ak as generateMarkdownToc, al as getSection, am as getSectionNames, an as getTomlStats, ao as getXmlStats, ap as getYamlStats, aq as inferCsvColumnTypes, ar as iniToJson, as as jsonArrayToNdjson, at as jsonToIni, au as jsonToToml, av as jsonToXml, aw as minifyNdjson, ax as minifyToml, ay as minifyXml, az as ndjsonToCsv, aA as ndjsonToJsonArray, aB as parseCsv, aC as parseEnv, aD as parseFrontMatter, aE as parseIni, aF as parseSubtitleTimestamp, aG as parseSubtitles, aH as parseXmlToObject, aI as resolveYamlAnchors, aJ as serializeSubtitles, aK as shiftSubtitles, aL as stringifyIni, aM as toCsvString, aN as tomlToJson, aO as validateEnvKey, aP as validateIni, aQ as validateMarkdownHeadingHierarchy, aR as validateNdjson, aS as validateToml, aT as validateXml, aU as validateYaml, aV as xmlToJson } from '../data-cDudn2P6.js';
1
+ export { C as CaptionSpeedCue, a as CaptionSpeedResult, b as ConvertedSubtitles, c as CsvColumnMostCommon, e as CsvColumnStats, f as CsvColumnStatsOptions, g as CsvColumnStatsResult, h as CsvColumnType, i as CsvColumnTypeInfo, j as CsvColumnTypeOptions, k as CsvColumnTypeResult, l as CsvDuplicateGroup, m as CsvDuplicateOptions, n as CsvDuplicateResult, o as CsvParseResult, p as CsvToSqlOptions, q as CsvToSqlResult, E as EnvDiffError, r as EnvDiffResult, s as EnvEntry, t as EnvParseResult, F as FrontMatterError, u as FrontMatterResult, H as HeadingEntry, v as HeadingHierarchyResult, w as HeadingIssue, x as HeadingIssueType, I as IniSection, M as MarkdownAnchorHeading, y as MarkdownAnchorLink, z as MarkdownInternalLinkCheckResult, A as MarkdownTableAlignResult, B as MarkdownTableColumnAlignment, D as MarkdownTableInfo, G as MarkdownTaskListItem, J as MarkdownTaskListProgressResult, K as MarkdownTaskListSectionSummary, L as MarkdownTocEntry, N as MarkdownTocOptions, O as MarkdownTocResult, P as NdjsonDedupeResult, Q as NdjsonLineResult, R as NdjsonValidateResult, S as ParseOptions, T as ParsedIni, U as ParsedSubtitles, V as SubtitleCue, W as SubtitleFormat, X as TomlFormatResult, Y as ValidationResult, Z as XmlFormatResult, _ as XmlToJsonOptions, $ as YamlAnchorInfo, a0 as YamlAnchorResolveError, a1 as YamlAnchorResolveResult, a2 as YamlDuplicateKeyEntry, a3 as YamlDuplicateKeyError, a4 as YamlDuplicateKeyResult, a5 as alignMarkdownTables, a6 as analyzeCaptionSpeed, a7 as calculateMarkdownTaskListProgress, a8 as checkMarkdownInternalLinks, a9 as convertSubtitles, aa as csvToJson, ab as csvToSqlInsert, ac as dedupeNdjson, ad as detectDelimiter, ae as detectSubtitleFormat, af as diffEnvExample, ag as envToExport, ah as envToJson, ai as findCsvDuplicateRows, aj as findYamlDuplicateKeys, ak as formatNdjson, al as formatSubtitleTimestamp, am as formatToml, an as formatXml, ao as generateMarkdownToc, ap as getSection, aq as getSectionNames, ar as getTomlStats, as as getXmlStats, at as getYamlStats, au as inferCsvColumnTypes, av as iniToJson, aw as jsonArrayToNdjson, ax as jsonToIni, ay as jsonToToml, az as jsonToXml, aA as minifyNdjson, aB as minifyToml, aC as minifyXml, aD as ndjsonToCsv, aE as ndjsonToJsonArray, aF as parseCsv, aG as parseEnv, aH as parseFrontMatter, aI as parseIni, aJ as parseSubtitleTimestamp, aK as parseSubtitles, aL as parseXmlToObject, aM as resolveYamlAnchors, aN as serializeSubtitles, aO as shiftSubtitles, aP as stringifyIni, aQ as summarizeCsvColumnStats, aR as toCsvString, aS as tomlToJson, aT as validateEnvKey, aU as validateIni, aV as validateMarkdownHeadingHierarchy, aW as validateNdjson, aX as validateToml, aY as validateXml, aZ as validateYaml, a_ as xmlToJson } from '../data-3qMdFIF5.js';
@@ -1,2 +1,2 @@
1
- export { alignMarkdownTables, analyzeCaptionSpeed, calculateMarkdownTaskListProgress, checkMarkdownInternalLinks, convertSubtitles, csvToJson, csvToSqlInsert, dedupeNdjson, detectDelimiter, detectSubtitleFormat, diffEnvExample, envToExport, envToJson, findCsvDuplicateRows, findYamlDuplicateKeys, formatNdjson, formatSubtitleTimestamp, formatToml, formatXml, generateMarkdownToc, getSection, getSectionNames, getTomlStats, getXmlStats, getYamlStats, inferCsvColumnTypes, iniToJson, jsonArrayToNdjson, jsonToIni, jsonToToml, jsonToXml, minifyNdjson, minifyToml, minifyXml, ndjsonToCsv, ndjsonToJsonArray, parseCsv, parseEnv, parseFrontMatter, parseIni, parseSubtitleTimestamp, parseSubtitles, parseXmlToObject, resolveYamlAnchors, serializeSubtitles, shiftSubtitles, stringifyIni, toCsvString, tomlToJson, validateEnvKey, validateIni, validateMarkdownHeadingHierarchy, validateNdjson, validateToml, validateXml, validateYaml, xmlToJson } from '../chunk-2QNU6KRL.js';
1
+ export { alignMarkdownTables, analyzeCaptionSpeed, calculateMarkdownTaskListProgress, checkMarkdownInternalLinks, convertSubtitles, csvToJson, csvToSqlInsert, dedupeNdjson, detectDelimiter, detectSubtitleFormat, diffEnvExample, envToExport, envToJson, findCsvDuplicateRows, findYamlDuplicateKeys, formatNdjson, formatSubtitleTimestamp, formatToml, formatXml, generateMarkdownToc, getSection, getSectionNames, getTomlStats, getXmlStats, getYamlStats, inferCsvColumnTypes, iniToJson, jsonArrayToNdjson, jsonToIni, jsonToToml, jsonToXml, minifyNdjson, minifyToml, minifyXml, ndjsonToCsv, ndjsonToJsonArray, parseCsv, parseEnv, parseFrontMatter, parseIni, parseSubtitleTimestamp, parseSubtitles, parseXmlToObject, resolveYamlAnchors, serializeSubtitles, shiftSubtitles, stringifyIni, summarizeCsvColumnStats, toCsvString, tomlToJson, validateEnvKey, validateIni, validateMarkdownHeadingHierarchy, validateNdjson, validateToml, validateXml, validateYaml, xmlToJson } from '../chunk-PEMPPDMM.js';
2
2
  import '../chunk-MLKGABMK.js';
@@ -3579,6 +3579,51 @@ function scoreSecurityHeaders(rawHeaders) {
3579
3579
  const grade = score >= 90 ? "A" : score >= 75 ? "B" : score >= 60 ? "C" : score >= 40 ? "D" : "F";
3580
3580
  return { checks, score, grade, passCount, warningCount, missingCount, totalChecks };
3581
3581
  }
3582
+ var CLEAR_SITE_DATA_DIRECTIVES = /* @__PURE__ */ new Set(["cache", "cookies", "storage", "executionContexts", "*"]);
3583
+ function buildClearSiteData(directives) {
3584
+ if (!Array.isArray(directives) || directives.length === 0) {
3585
+ return { error: "directives must be a non-empty array" };
3586
+ }
3587
+ const seen = /* @__PURE__ */ new Set();
3588
+ const normalized = [];
3589
+ for (const raw of directives) {
3590
+ if (typeof raw !== "string") return { error: "Each directive must be a string" };
3591
+ if (!CLEAR_SITE_DATA_DIRECTIVES.has(raw)) {
3592
+ return { error: `Unrecognized directive "${raw}". Valid directives: cache, cookies, storage, executionContexts, *` };
3593
+ }
3594
+ if (seen.has(raw)) continue;
3595
+ seen.add(raw);
3596
+ normalized.push(raw);
3597
+ }
3598
+ const warnings = [];
3599
+ if (normalized.includes("*") && normalized.length > 1) {
3600
+ warnings.push('"*" already clears cache, cookies, storage, and executionContexts (plus any future data types the spec adds), so listing other directives alongside it is redundant.');
3601
+ }
3602
+ const header = normalized.map((d) => `"${d}"`).join(", ");
3603
+ return {
3604
+ header,
3605
+ headerName: "Clear-Site-Data",
3606
+ snippet: `Clear-Site-Data: ${header}`,
3607
+ directives: normalized,
3608
+ warnings
3609
+ };
3610
+ }
3611
+ function parseClearSiteData(raw) {
3612
+ if (!raw || raw.trim() === "") return { error: "Input is empty" };
3613
+ const withoutLabel = raw.trim().replace(/^clear-site-data:\s*/i, "");
3614
+ const tokens = withoutLabel.split(",").map((t) => t.trim()).filter((t) => t !== "");
3615
+ if (tokens.length === 0) return { error: "No directives found" };
3616
+ const directives = [];
3617
+ for (const token of tokens) {
3618
+ const match = token.match(/^"(.*)"$/);
3619
+ const value = match ? match[1] : token;
3620
+ if (!CLEAR_SITE_DATA_DIRECTIVES.has(value)) {
3621
+ return { error: `Unrecognized directive "${token}"; each directive should be a quoted string like "cookies"` };
3622
+ }
3623
+ directives.push(value);
3624
+ }
3625
+ return buildClearSiteData(directives);
3626
+ }
3582
3627
 
3583
3628
  exports.CLIENT_HINTS = CLIENT_HINTS;
3584
3629
  exports.DNS_RECORD_TYPES = DNS_RECORD_TYPES;
@@ -3592,6 +3637,7 @@ exports.analyzeEmailHeaders = analyzeEmailHeaders;
3592
3637
  exports.assessContentTypeRisk = assessContentTypeRisk;
3593
3638
  exports.buildAcceptLanguage = buildAcceptLanguage;
3594
3639
  exports.buildCacheControl = buildCacheControl;
3640
+ exports.buildClearSiteData = buildClearSiteData;
3595
3641
  exports.buildClientHints = buildClientHints;
3596
3642
  exports.buildContentDisposition = buildContentDisposition;
3597
3643
  exports.buildDnsQueryUrl = buildDnsQueryUrl;
@@ -3632,6 +3678,7 @@ exports.listOpcodes = listOpcodes;
3632
3678
  exports.lookupCloseCode = lookupCloseCode;
3633
3679
  exports.lookupOpcode = lookupOpcode;
3634
3680
  exports.parseAcceptLanguage = parseAcceptLanguage;
3681
+ exports.parseClearSiteData = parseClearSiteData;
3635
3682
  exports.parseClientHintHeaders = parseClientHintHeaders;
3636
3683
  exports.parseContentDisposition = parseContentDisposition;
3637
3684
  exports.parseContentRangeHeader = parseContentRangeHeader;