@utilix-tech/sdk 0.3.1 → 0.5.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/README.md +34 -12
- package/dist/{api-8aZtWhSj.d.cts → api-Xl7OzIgq.d.cts} +35 -2
- package/dist/{api-8aZtWhSj.d.ts → api-Xl7OzIgq.d.ts} +35 -2
- package/dist/{chunk-UC656APA.js → chunk-DNCOIO5N.js} +64 -1
- package/dist/{chunk-HFRTZE7T.js → chunk-Q3B3YWOA.js} +51 -1
- package/dist/{chunk-3BAHSW4C.js → chunk-V5JKVDBA.js} +60 -1
- package/dist/chunk-WWKPLYEP.js +277 -0
- package/dist/{data-rMjWNiOJ.d.cts → data-CakDxAcT.d.cts} +36 -2
- package/dist/{data-rMjWNiOJ.d.ts → data-CakDxAcT.d.ts} +36 -2
- package/dist/index.cjs +316 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +4 -4
- package/dist/media-D-K5aZnq.d.cts +53 -0
- package/dist/media-D-K5aZnq.d.ts +53 -0
- package/dist/{network-CNtmrDeN.d.cts → network-DwyAjwJS.d.cts} +39 -2
- package/dist/{network-CNtmrDeN.d.ts → network-DwyAjwJS.d.ts} +39 -2
- package/dist/tools/api.cjs +50 -0
- package/dist/tools/api.d.cts +1 -1
- package/dist/tools/api.d.ts +1 -1
- package/dist/tools/api.js +1 -1
- package/dist/tools/data.cjs +63 -0
- package/dist/tools/data.d.cts +1 -1
- package/dist/tools/data.d.ts +1 -1
- package/dist/tools/data.js +1 -1
- package/dist/tools/media.cjs +143 -0
- package/dist/tools/media.d.cts +1 -1
- package/dist/tools/media.d.ts +1 -1
- package/dist/tools/media.js +1 -1
- package/dist/tools/network.cjs +59 -0
- package/dist/tools/network.d.cts +1 -1
- package/dist/tools/network.d.ts +1 -1
- package/dist/tools/network.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-N7C52YGL.js +0 -134
- package/dist/media-DF2cx3pK.d.cts +0 -28
- package/dist/media-DF2cx3pK.d.ts +0 -28
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* - ip-geolocation: IP address geolocation via ip-api.com
|
|
8
8
|
* - http-status : HTTP status code lookup and search
|
|
9
9
|
* - http-headers : HTTP header reference lookup and validation
|
|
10
|
+
* - har-viewer : parseHar
|
|
10
11
|
*/
|
|
11
12
|
declare const DNS_RECORD_TYPES: readonly ["A", "AAAA", "CNAME", "MX", "TXT", "NS", "SOA", "PTR", "SRV", "CAA"];
|
|
12
13
|
type DnsRecordType = typeof DNS_RECORD_TYPES[number];
|
|
@@ -124,6 +125,38 @@ declare function validateHeaderValue(name: string, value: string): {
|
|
|
124
125
|
valid: boolean;
|
|
125
126
|
warning?: string;
|
|
126
127
|
};
|
|
128
|
+
interface HarEntry {
|
|
129
|
+
method: string;
|
|
130
|
+
url: string;
|
|
131
|
+
status: number;
|
|
132
|
+
statusText: string;
|
|
133
|
+
httpVersion: string;
|
|
134
|
+
mimeType: string;
|
|
135
|
+
size: number;
|
|
136
|
+
time: number;
|
|
137
|
+
startedDateTime: string;
|
|
138
|
+
}
|
|
139
|
+
interface HarSummary {
|
|
140
|
+
totalRequests: number;
|
|
141
|
+
totalSize: number;
|
|
142
|
+
totalTime: number;
|
|
143
|
+
avgTime: number;
|
|
144
|
+
failedRequests: number;
|
|
145
|
+
methods: Record<string, number>;
|
|
146
|
+
statusCodes: Record<string, number>;
|
|
147
|
+
}
|
|
148
|
+
interface HarParseResult {
|
|
149
|
+
version: string;
|
|
150
|
+
creator: {
|
|
151
|
+
name: string;
|
|
152
|
+
version: string;
|
|
153
|
+
};
|
|
154
|
+
entries: HarEntry[];
|
|
155
|
+
summary: HarSummary;
|
|
156
|
+
}
|
|
157
|
+
declare function parseHar(input: string): HarParseResult | {
|
|
158
|
+
error: string;
|
|
159
|
+
};
|
|
127
160
|
|
|
128
161
|
declare const network_DNS_RECORD_TYPES: typeof DNS_RECORD_TYPES;
|
|
129
162
|
type network_DnsRecord = DnsRecord;
|
|
@@ -131,6 +164,9 @@ type network_DnsRecordType = DnsRecordType;
|
|
|
131
164
|
type network_DnsResponse = DnsResponse;
|
|
132
165
|
type network_GeoResult = GeoResult;
|
|
133
166
|
declare const network_HTTP_HEADERS: typeof HTTP_HEADERS;
|
|
167
|
+
type network_HarEntry = HarEntry;
|
|
168
|
+
type network_HarParseResult = HarParseResult;
|
|
169
|
+
type network_HarSummary = HarSummary;
|
|
134
170
|
type network_HeaderCategory = HeaderCategory;
|
|
135
171
|
type network_HttpHeader = HttpHeader;
|
|
136
172
|
type network_ParsedDnsResult = ParsedDnsResult;
|
|
@@ -156,6 +192,7 @@ declare const network_isValidIpv4: typeof isValidIpv4;
|
|
|
156
192
|
declare const network_isValidIpv6: typeof isValidIpv6;
|
|
157
193
|
declare const network_parseDnsResponse: typeof parseDnsResponse;
|
|
158
194
|
declare const network_parseGeoResponse: typeof parseGeoResponse;
|
|
195
|
+
declare const network_parseHar: typeof parseHar;
|
|
159
196
|
declare const network_searchHeaders: typeof searchHeaders;
|
|
160
197
|
declare const network_searchStatusCodes: typeof searchStatusCodes;
|
|
161
198
|
declare const network_statusCodeToText: typeof statusCodeToText;
|
|
@@ -164,7 +201,7 @@ declare const network_validateDomain: typeof validateDomain;
|
|
|
164
201
|
declare const network_validateHeaderName: typeof validateHeaderName;
|
|
165
202
|
declare const network_validateHeaderValue: typeof validateHeaderValue;
|
|
166
203
|
declare namespace network {
|
|
167
|
-
export { 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_HeaderCategory as HeaderCategory, type network_HttpHeader as HttpHeader, type network_ParsedDnsResult as ParsedDnsResult, type network_ParsedGeoResult as ParsedGeoResult, network_STATUS_CODES as STATUS_CODES, type network_StatusCode as StatusCode, network_buildDnsQueryUrl as buildDnsQueryUrl, network_buildGeoUrl as buildGeoUrl, network_buildMapUrl as buildMapUrl, 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_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 };
|
|
204
|
+
export { 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_ParsedDnsResult as ParsedDnsResult, type network_ParsedGeoResult as ParsedGeoResult, network_STATUS_CODES as STATUS_CODES, type network_StatusCode as StatusCode, network_buildDnsQueryUrl as buildDnsQueryUrl, network_buildGeoUrl as buildGeoUrl, network_buildMapUrl as buildMapUrl, 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_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 };
|
|
168
205
|
}
|
|
169
206
|
|
|
170
|
-
export {
|
|
207
|
+
export { isValidIpv4 as A, isValidIpv6 as B, parseDnsResponse as C, DNS_RECORD_TYPES as D, parseGeoResponse as E, parseHar as F, type GeoResult as G, HTTP_HEADERS as H, searchHeaders as I, searchStatusCodes as J, statusCodeToText as K, typeNumberToLabel as L, validateDomain as M, validateHeaderName as N, validateHeaderValue as O, type ParsedDnsResult as P, STATUS_CODES as S, type DnsRecord as a, type DnsRecordType as b, type DnsResponse as c, type HarEntry as d, type HarParseResult as e, type HarSummary as f, type HeaderCategory as g, type HttpHeader as h, type ParsedGeoResult as i, type StatusCode as j, buildDnsQueryUrl as k, buildGeoUrl as l, buildMapUrl as m, network as n, countryCodeToFlag as o, formatCoordinates as p, formatTtl as q, getByCategory as r, getHeader as s, getHeadersByCategory as t, getStatusByCategory as u, getStatusCode as v, isClientError as w, isServerError as x, isSuccess as y, isValidIp as z };
|
package/dist/tools/api.cjs
CHANGED
|
@@ -444,6 +444,55 @@ function decodeJwt(token) {
|
|
|
444
444
|
function formatJwtJson(obj) {
|
|
445
445
|
return JSON.stringify(obj, null, 2);
|
|
446
446
|
}
|
|
447
|
+
function base64urlByteLength(s) {
|
|
448
|
+
const clean = s.replace(/=+$/, "");
|
|
449
|
+
return Math.floor(clean.length * 6 / 8);
|
|
450
|
+
}
|
|
451
|
+
function parseJwks(input) {
|
|
452
|
+
const trimmed = input.trim();
|
|
453
|
+
if (!trimmed) return { ok: false, error: "No input provided" };
|
|
454
|
+
let data;
|
|
455
|
+
try {
|
|
456
|
+
data = JSON.parse(trimmed);
|
|
457
|
+
} catch (e) {
|
|
458
|
+
return { ok: false, error: `Invalid JSON: ${e instanceof Error ? e.message : String(e)}` };
|
|
459
|
+
}
|
|
460
|
+
let rawKeys;
|
|
461
|
+
if (data && typeof data === "object" && Array.isArray(data.keys)) {
|
|
462
|
+
rawKeys = data.keys;
|
|
463
|
+
} else if (data && typeof data === "object" && typeof data.kty === "string") {
|
|
464
|
+
rawKeys = [data];
|
|
465
|
+
} else {
|
|
466
|
+
return { ok: false, error: 'Input must be a JWKS object with a "keys" array, or a single JWK object with a "kty" field' };
|
|
467
|
+
}
|
|
468
|
+
const keys = rawKeys.map((k) => {
|
|
469
|
+
const key = k ?? {};
|
|
470
|
+
const kty = typeof key.kty === "string" ? key.kty : "unknown";
|
|
471
|
+
let keySize = null;
|
|
472
|
+
let curve;
|
|
473
|
+
if (kty === "RSA" && typeof key.n === "string") {
|
|
474
|
+
keySize = base64urlByteLength(key.n) * 8;
|
|
475
|
+
} else if ((kty === "EC" || kty === "OKP") && typeof key.crv === "string") {
|
|
476
|
+
curve = key.crv;
|
|
477
|
+
} else if (kty === "oct" && typeof key.k === "string") {
|
|
478
|
+
keySize = base64urlByteLength(key.k) * 8;
|
|
479
|
+
}
|
|
480
|
+
return {
|
|
481
|
+
kty,
|
|
482
|
+
use: typeof key.use === "string" ? key.use : void 0,
|
|
483
|
+
keyOps: Array.isArray(key.key_ops) ? key.key_ops.filter((x) => typeof x === "string") : void 0,
|
|
484
|
+
alg: typeof key.alg === "string" ? key.alg : void 0,
|
|
485
|
+
kid: typeof key.kid === "string" ? key.kid : void 0,
|
|
486
|
+
keySize,
|
|
487
|
+
curve,
|
|
488
|
+
raw: key
|
|
489
|
+
};
|
|
490
|
+
});
|
|
491
|
+
const kidCounts = /* @__PURE__ */ new Map();
|
|
492
|
+
for (const k of keys) if (k.kid) kidCounts.set(k.kid, (kidCounts.get(k.kid) ?? 0) + 1);
|
|
493
|
+
const duplicateKids = [...kidCounts.entries()].filter(([, c]) => c > 1).map(([kid]) => kid);
|
|
494
|
+
return { ok: true, keys, count: keys.length, duplicateKids };
|
|
495
|
+
}
|
|
447
496
|
var ALG_TO_NODE_HASH = {
|
|
448
497
|
HS256: "sha256",
|
|
449
498
|
HS384: "sha384",
|
|
@@ -1207,6 +1256,7 @@ exports.normalizeUrl = normalizeUrl;
|
|
|
1207
1256
|
exports.parseCspHeader = parseCspHeader;
|
|
1208
1257
|
exports.parseCurl = parseCurl;
|
|
1209
1258
|
exports.parseCurlCommand = parseCurlCommand;
|
|
1259
|
+
exports.parseJwks = parseJwks;
|
|
1210
1260
|
exports.parseMetaTags = parseMetaTags;
|
|
1211
1261
|
exports.parseUrl = parseUrl;
|
|
1212
1262
|
exports.removeParam = removeParam;
|
package/dist/tools/api.d.cts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { C as COMMON_HEADERS, b as COMMON_PRESETS, c as CORS_COMMON_HEADERS, d as CorsConfig, e as CorsOutput, f as CspConfig, g as CspDirective, h as CspSource, i as CurlCommand, j as CurlConfig, D as DEFAULT_CORS_CONFIG, k as DIRECTIVE_DESCRIPTIONS, l as DirectiveConfig, F as FormatResult, H as HTTP_METHODS, m as Header, n as HttpMethod, J as
|
|
1
|
+
export { C as COMMON_HEADERS, b as COMMON_PRESETS, c as CORS_COMMON_HEADERS, d as CorsConfig, e as CorsOutput, f as CspConfig, g as CspDirective, h as CspSource, i as CurlCommand, j as CurlConfig, D as DEFAULT_CORS_CONFIG, k as DIRECTIVE_DESCRIPTIONS, l as DirectiveConfig, F as FormatResult, H as HTTP_METHODS, m as Header, n as HttpMethod, J as JwkSummary, o as JwksError, p as JwksParseResult, q as JwksResult, r as JwtAlgorithm, s as JwtDecodeError, t as JwtDecodeResult, u as JwtExpiry, v as JwtPart, w as JwtResult, x as JwtSignOptions, M as MetaTags, O as OgTags, P as ParsedUrl, R as ResponseFormat, S as SUPPORTED_LANGUAGES, T as TargetLanguage, y as TwitterTags, z as addParam, A as base64urlDecode, B as base64urlEncode, E as buildCurl, G as buildCurlMultiline, I as buildUrl, K as convertToCode, L as decodeJwt, N as decodeUrlComponent, Q as detectFormat, U as encodeUrlComponent, V as extractJsonPaths, W as formatJwtJson, X as formatResponse, Y as generateCors, Z as generateCspHeader, _ as generateFullHeader, $ as generateMetaHtml, a0 as getParam, a1 as getStats, a2 as isValidUrl, a3 as normalizeUrl, a4 as parseCspHeader, a5 as parseCurl, a6 as parseCurlCommand, a7 as parseJwks, a8 as parseMetaTags, a9 as parseUrl, aa as removeParam, ab as signJwt, ac as validateCorsConfig, ad as validateCspConfig, ae as validateOgTags } from '../api-Xl7OzIgq.cjs';
|
package/dist/tools/api.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { C as COMMON_HEADERS, b as COMMON_PRESETS, c as CORS_COMMON_HEADERS, d as CorsConfig, e as CorsOutput, f as CspConfig, g as CspDirective, h as CspSource, i as CurlCommand, j as CurlConfig, D as DEFAULT_CORS_CONFIG, k as DIRECTIVE_DESCRIPTIONS, l as DirectiveConfig, F as FormatResult, H as HTTP_METHODS, m as Header, n as HttpMethod, J as
|
|
1
|
+
export { C as COMMON_HEADERS, b as COMMON_PRESETS, c as CORS_COMMON_HEADERS, d as CorsConfig, e as CorsOutput, f as CspConfig, g as CspDirective, h as CspSource, i as CurlCommand, j as CurlConfig, D as DEFAULT_CORS_CONFIG, k as DIRECTIVE_DESCRIPTIONS, l as DirectiveConfig, F as FormatResult, H as HTTP_METHODS, m as Header, n as HttpMethod, J as JwkSummary, o as JwksError, p as JwksParseResult, q as JwksResult, r as JwtAlgorithm, s as JwtDecodeError, t as JwtDecodeResult, u as JwtExpiry, v as JwtPart, w as JwtResult, x as JwtSignOptions, M as MetaTags, O as OgTags, P as ParsedUrl, R as ResponseFormat, S as SUPPORTED_LANGUAGES, T as TargetLanguage, y as TwitterTags, z as addParam, A as base64urlDecode, B as base64urlEncode, E as buildCurl, G as buildCurlMultiline, I as buildUrl, K as convertToCode, L as decodeJwt, N as decodeUrlComponent, Q as detectFormat, U as encodeUrlComponent, V as extractJsonPaths, W as formatJwtJson, X as formatResponse, Y as generateCors, Z as generateCspHeader, _ as generateFullHeader, $ as generateMetaHtml, a0 as getParam, a1 as getStats, a2 as isValidUrl, a3 as normalizeUrl, a4 as parseCspHeader, a5 as parseCurl, a6 as parseCurlCommand, a7 as parseJwks, a8 as parseMetaTags, a9 as parseUrl, aa as removeParam, ab as signJwt, ac as validateCorsConfig, ad as validateCspConfig, ae as validateOgTags } from '../api-Xl7OzIgq.js';
|
package/dist/tools/api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { COMMON_HEADERS, COMMON_PRESETS, CORS_COMMON_HEADERS, DEFAULT_CORS_CONFIG, DIRECTIVE_DESCRIPTIONS, HTTP_METHODS, SUPPORTED_LANGUAGES, addParam, base64urlDecode, base64urlEncode, buildCurl, buildCurlMultiline, buildUrl, convertToCode, decodeJwt, decodeUrlComponent, detectFormat, encodeUrlComponent, extractJsonPaths, formatJwtJson, formatResponse, generateCors, generateCspHeader, generateFullHeader, generateMetaHtml, getParam, getStats, isValidUrl, normalizeUrl, parseCspHeader, parseCurl, parseCurlCommand, parseMetaTags, parseUrl, removeParam, signJwt, validateCorsConfig, validateCspConfig, validateOgTags } from '../chunk-
|
|
1
|
+
export { COMMON_HEADERS, COMMON_PRESETS, CORS_COMMON_HEADERS, DEFAULT_CORS_CONFIG, DIRECTIVE_DESCRIPTIONS, HTTP_METHODS, SUPPORTED_LANGUAGES, addParam, base64urlDecode, base64urlEncode, buildCurl, buildCurlMultiline, buildUrl, convertToCode, decodeJwt, decodeUrlComponent, detectFormat, encodeUrlComponent, extractJsonPaths, formatJwtJson, formatResponse, generateCors, generateCspHeader, generateFullHeader, generateMetaHtml, getParam, getStats, isValidUrl, normalizeUrl, parseCspHeader, parseCurl, parseCurlCommand, parseJwks, parseMetaTags, parseUrl, removeParam, signJwt, validateCorsConfig, validateCspConfig, validateOgTags } from '../chunk-Q3B3YWOA.js';
|
|
2
2
|
import '../chunk-MLKGABMK.js';
|
package/dist/tools/data.cjs
CHANGED
|
@@ -1064,11 +1064,70 @@ function envToExport(input) {
|
|
|
1064
1064
|
function validateEnvKey(key) {
|
|
1065
1065
|
return /^[A-Za-z_][A-Za-z0-9_]*$/.test(key);
|
|
1066
1066
|
}
|
|
1067
|
+
function validateNdjson(input) {
|
|
1068
|
+
const rawLines = input.split("\n");
|
|
1069
|
+
const lines = [];
|
|
1070
|
+
let validCount = 0;
|
|
1071
|
+
rawLines.forEach((raw, idx) => {
|
|
1072
|
+
if (raw.trim() === "") return;
|
|
1073
|
+
const lineNum = idx + 1;
|
|
1074
|
+
try {
|
|
1075
|
+
JSON.parse(raw);
|
|
1076
|
+
lines.push({ line: lineNum, raw, valid: true });
|
|
1077
|
+
validCount++;
|
|
1078
|
+
} catch (e) {
|
|
1079
|
+
lines.push({
|
|
1080
|
+
line: lineNum,
|
|
1081
|
+
raw,
|
|
1082
|
+
valid: false,
|
|
1083
|
+
error: e instanceof Error ? e.message : String(e)
|
|
1084
|
+
});
|
|
1085
|
+
}
|
|
1086
|
+
});
|
|
1087
|
+
return {
|
|
1088
|
+
valid: lines.length > 0 && validCount === lines.length,
|
|
1089
|
+
totalLines: lines.length,
|
|
1090
|
+
validLines: validCount,
|
|
1091
|
+
invalidLines: lines.length - validCount,
|
|
1092
|
+
lines
|
|
1093
|
+
};
|
|
1094
|
+
}
|
|
1095
|
+
function _firstNdjsonError(result) {
|
|
1096
|
+
const firstError = result.lines.find((l) => !l.valid);
|
|
1097
|
+
return firstError ? `Line ${firstError.line}: ${firstError.error}` : "Invalid NDJSON";
|
|
1098
|
+
}
|
|
1099
|
+
function minifyNdjson(input) {
|
|
1100
|
+
const result = validateNdjson(input);
|
|
1101
|
+
if (!result.valid) return { error: _firstNdjsonError(result) };
|
|
1102
|
+
return result.lines.map((l) => JSON.stringify(JSON.parse(l.raw))).join("\n");
|
|
1103
|
+
}
|
|
1104
|
+
function formatNdjson(input, indent = 2) {
|
|
1105
|
+
const result = validateNdjson(input);
|
|
1106
|
+
if (!result.valid) return { error: _firstNdjsonError(result) };
|
|
1107
|
+
return result.lines.map((l) => JSON.stringify(JSON.parse(l.raw), null, indent)).join("\n");
|
|
1108
|
+
}
|
|
1109
|
+
function ndjsonToJsonArray(input) {
|
|
1110
|
+
const result = validateNdjson(input);
|
|
1111
|
+
if (!result.valid) return { error: _firstNdjsonError(result) };
|
|
1112
|
+
const values = result.lines.map((l) => JSON.parse(l.raw));
|
|
1113
|
+
return JSON.stringify(values, null, 2);
|
|
1114
|
+
}
|
|
1115
|
+
function jsonArrayToNdjson(input) {
|
|
1116
|
+
let parsed;
|
|
1117
|
+
try {
|
|
1118
|
+
parsed = JSON.parse(input);
|
|
1119
|
+
} catch (e) {
|
|
1120
|
+
return { error: `Invalid JSON: ${e instanceof Error ? e.message : String(e)}` };
|
|
1121
|
+
}
|
|
1122
|
+
if (!Array.isArray(parsed)) return { error: "Input must be a JSON array" };
|
|
1123
|
+
return parsed.map((item) => JSON.stringify(item)).join("\n");
|
|
1124
|
+
}
|
|
1067
1125
|
|
|
1068
1126
|
exports.csvToJson = csvToJson;
|
|
1069
1127
|
exports.detectDelimiter = detectDelimiter;
|
|
1070
1128
|
exports.envToExport = envToExport;
|
|
1071
1129
|
exports.envToJson = envToJson;
|
|
1130
|
+
exports.formatNdjson = formatNdjson;
|
|
1072
1131
|
exports.formatToml = formatToml;
|
|
1073
1132
|
exports.formatXml = formatXml;
|
|
1074
1133
|
exports.getSection = getSection;
|
|
@@ -1077,11 +1136,14 @@ exports.getTomlStats = getTomlStats;
|
|
|
1077
1136
|
exports.getXmlStats = getXmlStats;
|
|
1078
1137
|
exports.getYamlStats = getYamlStats;
|
|
1079
1138
|
exports.iniToJson = iniToJson;
|
|
1139
|
+
exports.jsonArrayToNdjson = jsonArrayToNdjson;
|
|
1080
1140
|
exports.jsonToIni = jsonToIni;
|
|
1081
1141
|
exports.jsonToToml = jsonToToml;
|
|
1082
1142
|
exports.jsonToXml = jsonToXml;
|
|
1143
|
+
exports.minifyNdjson = minifyNdjson;
|
|
1083
1144
|
exports.minifyToml = minifyToml;
|
|
1084
1145
|
exports.minifyXml = minifyXml;
|
|
1146
|
+
exports.ndjsonToJsonArray = ndjsonToJsonArray;
|
|
1085
1147
|
exports.parseCsv = parseCsv;
|
|
1086
1148
|
exports.parseEnv = parseEnv;
|
|
1087
1149
|
exports.parseIni = parseIni;
|
|
@@ -1091,6 +1153,7 @@ exports.toCsvString = toCsvString;
|
|
|
1091
1153
|
exports.tomlToJson = tomlToJson;
|
|
1092
1154
|
exports.validateEnvKey = validateEnvKey;
|
|
1093
1155
|
exports.validateIni = validateIni;
|
|
1156
|
+
exports.validateNdjson = validateNdjson;
|
|
1094
1157
|
exports.validateToml = validateToml;
|
|
1095
1158
|
exports.validateXml = validateXml;
|
|
1096
1159
|
exports.validateYaml = validateYaml;
|
package/dist/tools/data.d.cts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { C as CsvParseResult, E as EnvEntry, a as EnvParseResult, I as IniSection, P as ParseOptions,
|
|
1
|
+
export { C as CsvParseResult, E as EnvEntry, a as EnvParseResult, I as IniSection, N as NdjsonLineResult, b as NdjsonValidateResult, P as ParseOptions, c as ParsedIni, T as TomlFormatResult, V as ValidationResult, X as XmlFormatResult, e as XmlToJsonOptions, f as csvToJson, g as detectDelimiter, h as envToExport, i as envToJson, j as formatNdjson, k as formatToml, l as formatXml, m as getSection, n as getSectionNames, o as getTomlStats, p as getXmlStats, q as getYamlStats, r as iniToJson, s as jsonArrayToNdjson, t as jsonToIni, u as jsonToToml, v as jsonToXml, w as minifyNdjson, x as minifyToml, y as minifyXml, z as ndjsonToJsonArray, A as parseCsv, B as parseEnv, D as parseIni, F as parseXmlToObject, G as stringifyIni, H as toCsvString, J as tomlToJson, K as validateEnvKey, L as validateIni, M as validateNdjson, O as validateToml, Q as validateXml, R as validateYaml, S as xmlToJson } from '../data-CakDxAcT.cjs';
|
package/dist/tools/data.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { C as CsvParseResult, E as EnvEntry, a as EnvParseResult, I as IniSection, P as ParseOptions,
|
|
1
|
+
export { C as CsvParseResult, E as EnvEntry, a as EnvParseResult, I as IniSection, N as NdjsonLineResult, b as NdjsonValidateResult, P as ParseOptions, c as ParsedIni, T as TomlFormatResult, V as ValidationResult, X as XmlFormatResult, e as XmlToJsonOptions, f as csvToJson, g as detectDelimiter, h as envToExport, i as envToJson, j as formatNdjson, k as formatToml, l as formatXml, m as getSection, n as getSectionNames, o as getTomlStats, p as getXmlStats, q as getYamlStats, r as iniToJson, s as jsonArrayToNdjson, t as jsonToIni, u as jsonToToml, v as jsonToXml, w as minifyNdjson, x as minifyToml, y as minifyXml, z as ndjsonToJsonArray, A as parseCsv, B as parseEnv, D as parseIni, F as parseXmlToObject, G as stringifyIni, H as toCsvString, J as tomlToJson, K as validateEnvKey, L as validateIni, M as validateNdjson, O as validateToml, Q as validateXml, R as validateYaml, S as xmlToJson } from '../data-CakDxAcT.js';
|
package/dist/tools/data.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { csvToJson, detectDelimiter, envToExport, envToJson, formatToml, formatXml, getSection, getSectionNames, getTomlStats, getXmlStats, getYamlStats, iniToJson, jsonToIni, jsonToToml, jsonToXml, minifyToml, minifyXml, parseCsv, parseEnv, parseIni, parseXmlToObject, stringifyIni, toCsvString, tomlToJson, validateEnvKey, validateIni, validateToml, validateXml, validateYaml, xmlToJson } from '../chunk-
|
|
1
|
+
export { csvToJson, detectDelimiter, envToExport, envToJson, formatNdjson, formatToml, formatXml, getSection, getSectionNames, getTomlStats, getXmlStats, getYamlStats, iniToJson, jsonArrayToNdjson, jsonToIni, jsonToToml, jsonToXml, minifyNdjson, minifyToml, minifyXml, ndjsonToJsonArray, parseCsv, parseEnv, parseIni, parseXmlToObject, stringifyIni, toCsvString, tomlToJson, validateEnvKey, validateIni, validateNdjson, validateToml, validateXml, validateYaml, xmlToJson } from '../chunk-DNCOIO5N.js';
|
|
2
2
|
import '../chunk-MLKGABMK.js';
|
package/dist/tools/media.cjs
CHANGED
|
@@ -126,5 +126,148 @@ function readImageInfo(bytes) {
|
|
|
126
126
|
}
|
|
127
127
|
return { error: "Unrecognized image format. Supported formats: PNG, JPEG, GIF, WebP, BMP" };
|
|
128
128
|
}
|
|
129
|
+
function bytesToLatin1(bytes) {
|
|
130
|
+
let out = "";
|
|
131
|
+
const CHUNK = 32768;
|
|
132
|
+
for (let i = 0; i < bytes.length; i += CHUNK) {
|
|
133
|
+
out += String.fromCharCode(...bytes.subarray(i, i + CHUNK));
|
|
134
|
+
}
|
|
135
|
+
return out;
|
|
136
|
+
}
|
|
137
|
+
function decodePdfString(raw, isHex) {
|
|
138
|
+
const bytes = [];
|
|
139
|
+
if (isHex) {
|
|
140
|
+
const hex = raw.replace(/\s+/g, "");
|
|
141
|
+
const padded = hex.length % 2 === 0 ? hex : hex + "0";
|
|
142
|
+
for (let i = 0; i < padded.length; i += 2) bytes.push(parseInt(padded.slice(i, i + 2), 16));
|
|
143
|
+
} else {
|
|
144
|
+
const s = raw.replace(/\\\r\n|\\\r|\\\n/g, "");
|
|
145
|
+
for (let i = 0; i < s.length; i++) {
|
|
146
|
+
const ch = s[i];
|
|
147
|
+
if (ch === "\\" && i + 1 < s.length) {
|
|
148
|
+
const next = s[i + 1];
|
|
149
|
+
if (next === "n") {
|
|
150
|
+
bytes.push(10);
|
|
151
|
+
i++;
|
|
152
|
+
} else if (next === "r") {
|
|
153
|
+
bytes.push(13);
|
|
154
|
+
i++;
|
|
155
|
+
} else if (next === "t") {
|
|
156
|
+
bytes.push(9);
|
|
157
|
+
i++;
|
|
158
|
+
} else if (next === "b") {
|
|
159
|
+
bytes.push(8);
|
|
160
|
+
i++;
|
|
161
|
+
} else if (next === "f") {
|
|
162
|
+
bytes.push(12);
|
|
163
|
+
i++;
|
|
164
|
+
} else if (next === "(" || next === ")" || next === "\\") {
|
|
165
|
+
bytes.push(next.charCodeAt(0));
|
|
166
|
+
i++;
|
|
167
|
+
} else if (/[0-7]/.test(next)) {
|
|
168
|
+
let oct = next;
|
|
169
|
+
i++;
|
|
170
|
+
for (let k = 0; k < 2 && i + 1 < s.length && /[0-7]/.test(s[i + 1]); k++) {
|
|
171
|
+
i++;
|
|
172
|
+
oct += s[i];
|
|
173
|
+
}
|
|
174
|
+
bytes.push(parseInt(oct, 8) & 255);
|
|
175
|
+
} else {
|
|
176
|
+
bytes.push(next.charCodeAt(0));
|
|
177
|
+
i++;
|
|
178
|
+
}
|
|
179
|
+
} else {
|
|
180
|
+
bytes.push(ch.charCodeAt(0) & 255);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
if (bytes.length >= 2 && bytes[0] === 254 && bytes[1] === 255) {
|
|
185
|
+
let out = "";
|
|
186
|
+
for (let i = 2; i + 1 < bytes.length; i += 2) out += String.fromCharCode(bytes[i] << 8 | bytes[i + 1]);
|
|
187
|
+
return out;
|
|
188
|
+
}
|
|
189
|
+
return bytes.map((b) => String.fromCharCode(b)).join("");
|
|
190
|
+
}
|
|
191
|
+
function extractDictField(dict, key) {
|
|
192
|
+
const litMatch = dict.match(new RegExp(`/${key}\\s*\\(((?:\\\\.|[^\\\\()])*)\\)`));
|
|
193
|
+
if (litMatch) return decodePdfString(litMatch[1], false);
|
|
194
|
+
const hexMatch = dict.match(new RegExp(`/${key}\\s*<([0-9A-Fa-f\\s]*)>`));
|
|
195
|
+
if (hexMatch) return decodePdfString(hexMatch[1], true);
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
198
|
+
function findObject(text, objNum, gen) {
|
|
199
|
+
const m = text.match(new RegExp(`(?:^|[^0-9])${objNum}\\s+${gen}\\s+obj([\\s\\S]*?)endobj`));
|
|
200
|
+
return m ? m[1] : null;
|
|
201
|
+
}
|
|
202
|
+
function parsePdfDate(raw) {
|
|
203
|
+
const m = raw.match(/^D:(\d{4})(\d{2})?(\d{2})?(\d{2})?(\d{2})?(\d{2})?([Z+-])?(\d{2})?'?(\d{2})?'?/);
|
|
204
|
+
if (!m) return null;
|
|
205
|
+
const [, y, mo = "01", d = "01", h = "00", mi = "00", s = "00", tz, tzh, tzm] = m;
|
|
206
|
+
let iso = `${y}-${mo}-${d}T${h}:${mi}:${s}`;
|
|
207
|
+
if (tz === "Z") iso += "Z";
|
|
208
|
+
else if (tz === "+" || tz === "-") iso += `${tz}${tzh ?? "00"}:${tzm ?? "00"}`;
|
|
209
|
+
return iso;
|
|
210
|
+
}
|
|
211
|
+
function readPdfMetadata(bytes) {
|
|
212
|
+
if (bytes.length < 8) return { error: "File too small to be a PDF" };
|
|
213
|
+
const header = bytesToLatin1(bytes.subarray(0, 16));
|
|
214
|
+
const versionMatch = header.match(/%PDF-(\d\.\d)/);
|
|
215
|
+
if (!versionMatch) return { error: "Not a valid PDF file (missing %PDF header)" };
|
|
216
|
+
const version = versionMatch[1];
|
|
217
|
+
const text = bytesToLatin1(bytes);
|
|
218
|
+
const trailerMatches = [...text.matchAll(/trailer\s*<<([\s\S]*?)>>/g)];
|
|
219
|
+
let infoDict = null;
|
|
220
|
+
let encrypted = false;
|
|
221
|
+
if (trailerMatches.length > 0) {
|
|
222
|
+
const trailer = trailerMatches[trailerMatches.length - 1][1];
|
|
223
|
+
encrypted = /\/Encrypt\s+\d+\s+\d+\s+R/.test(trailer);
|
|
224
|
+
const infoRef = trailer.match(/\/Info\s+(\d+)\s+(\d+)\s+R/);
|
|
225
|
+
if (infoRef) infoDict = findObject(text, Number(infoRef[1]), Number(infoRef[2]));
|
|
226
|
+
}
|
|
227
|
+
const objBlocks = [...text.matchAll(/(\d+)\s+(\d+)\s+obj([\s\S]*?)endobj/g)];
|
|
228
|
+
if (!infoDict) {
|
|
229
|
+
for (const b of objBlocks) {
|
|
230
|
+
if (/\/(Title|Author|Producer|Creator|CreationDate)\b/.test(b[3]) && !/\/Type\s*\/(Page|Pages|Catalog|Font)\b/.test(b[3])) {
|
|
231
|
+
infoDict = b[3];
|
|
232
|
+
break;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
const title = infoDict ? extractDictField(infoDict, "Title") : null;
|
|
237
|
+
const author = infoDict ? extractDictField(infoDict, "Author") : null;
|
|
238
|
+
const subject = infoDict ? extractDictField(infoDict, "Subject") : null;
|
|
239
|
+
const keywords = infoDict ? extractDictField(infoDict, "Keywords") : null;
|
|
240
|
+
const creator = infoDict ? extractDictField(infoDict, "Creator") : null;
|
|
241
|
+
const producer = infoDict ? extractDictField(infoDict, "Producer") : null;
|
|
242
|
+
const creationDateRaw = infoDict ? extractDictField(infoDict, "CreationDate") : null;
|
|
243
|
+
const modDateRaw = infoDict ? extractDictField(infoDict, "ModDate") : null;
|
|
244
|
+
let pageCount = null;
|
|
245
|
+
for (const b of objBlocks) {
|
|
246
|
+
if (!/\/Type\s*\/Pages\b/.test(b[3])) continue;
|
|
247
|
+
const countMatch = b[3].match(/\/Count\s+(\d+)/);
|
|
248
|
+
if (countMatch) {
|
|
249
|
+
const c = Number(countMatch[1]);
|
|
250
|
+
if (pageCount === null || c > pageCount) pageCount = c;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
if (pageCount === null) {
|
|
254
|
+
const pageMatches = text.match(/\/Type\s*\/Page(?!s)\b/g);
|
|
255
|
+
if (pageMatches) pageCount = pageMatches.length;
|
|
256
|
+
}
|
|
257
|
+
return {
|
|
258
|
+
version,
|
|
259
|
+
pageCount,
|
|
260
|
+
title,
|
|
261
|
+
author,
|
|
262
|
+
subject,
|
|
263
|
+
keywords,
|
|
264
|
+
creator,
|
|
265
|
+
producer,
|
|
266
|
+
creationDate: creationDateRaw ? parsePdfDate(creationDateRaw) ?? creationDateRaw : null,
|
|
267
|
+
modDate: modDateRaw ? parsePdfDate(modDateRaw) ?? modDateRaw : null,
|
|
268
|
+
encrypted
|
|
269
|
+
};
|
|
270
|
+
}
|
|
129
271
|
|
|
130
272
|
exports.readImageInfo = readImageInfo;
|
|
273
|
+
exports.readPdfMetadata = readPdfMetadata;
|
package/dist/tools/media.d.cts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { I as ImageFormat, a as ImageInfo, b as ImageInfoError, r as readImageInfo } from '../media-
|
|
1
|
+
export { I as ImageFormat, a as ImageInfo, b as ImageInfoError, P as PdfMetadata, c as PdfMetadataError, r as readImageInfo, d as readPdfMetadata } from '../media-D-K5aZnq.cjs';
|
package/dist/tools/media.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { I as ImageFormat, a as ImageInfo, b as ImageInfoError, r as readImageInfo } from '../media-
|
|
1
|
+
export { I as ImageFormat, a as ImageInfo, b as ImageInfoError, P as PdfMetadata, c as PdfMetadataError, r as readImageInfo, d as readPdfMetadata } from '../media-D-K5aZnq.js';
|
package/dist/tools/media.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { readImageInfo } from '../chunk-
|
|
1
|
+
export { readImageInfo, readPdfMetadata } from '../chunk-WWKPLYEP.js';
|
|
2
2
|
import '../chunk-MLKGABMK.js';
|
package/dist/tools/network.cjs
CHANGED
|
@@ -1349,6 +1349,64 @@ function validateHeaderValue(name, value) {
|
|
|
1349
1349
|
}
|
|
1350
1350
|
return { valid: true };
|
|
1351
1351
|
}
|
|
1352
|
+
function parseHar(input) {
|
|
1353
|
+
if (!input || !input.trim()) {
|
|
1354
|
+
return { error: "Input is empty" };
|
|
1355
|
+
}
|
|
1356
|
+
let data;
|
|
1357
|
+
try {
|
|
1358
|
+
data = JSON.parse(input);
|
|
1359
|
+
} catch (e) {
|
|
1360
|
+
return { error: `Invalid JSON: ${e instanceof Error ? e.message : String(e)}` };
|
|
1361
|
+
}
|
|
1362
|
+
if (typeof data !== "object" || data === null || !("log" in data)) {
|
|
1363
|
+
return { error: 'Not a valid HAR file: missing "log" property' };
|
|
1364
|
+
}
|
|
1365
|
+
const log = data.log;
|
|
1366
|
+
if (typeof log !== "object" || log === null || !Array.isArray(log.entries)) {
|
|
1367
|
+
return { error: 'Not a valid HAR file: "log.entries" must be an array' };
|
|
1368
|
+
}
|
|
1369
|
+
const logObj = log;
|
|
1370
|
+
const entries = [];
|
|
1371
|
+
const methods = {};
|
|
1372
|
+
const statusCodes = {};
|
|
1373
|
+
let totalSize = 0;
|
|
1374
|
+
let totalTime = 0;
|
|
1375
|
+
let failedRequests = 0;
|
|
1376
|
+
for (const raw of logObj.entries) {
|
|
1377
|
+
if (typeof raw !== "object" || raw === null) continue;
|
|
1378
|
+
const e = raw;
|
|
1379
|
+
const request = e.request ?? {};
|
|
1380
|
+
const response = e.response ?? {};
|
|
1381
|
+
const content = response.content ?? {};
|
|
1382
|
+
const method = typeof request.method === "string" ? request.method : "GET";
|
|
1383
|
+
const url = typeof request.url === "string" ? request.url : "";
|
|
1384
|
+
const status = typeof response.status === "number" ? response.status : 0;
|
|
1385
|
+
const statusText = typeof response.statusText === "string" ? response.statusText : "";
|
|
1386
|
+
const httpVersion = typeof response.httpVersion === "string" ? response.httpVersion : "";
|
|
1387
|
+
const mimeType = typeof content.mimeType === "string" ? content.mimeType : "";
|
|
1388
|
+
const size = typeof content.size === "number" && content.size > 0 ? content.size : 0;
|
|
1389
|
+
const time = typeof e.time === "number" ? e.time : 0;
|
|
1390
|
+
const startedDateTime = typeof e.startedDateTime === "string" ? e.startedDateTime : "";
|
|
1391
|
+
entries.push({ method, url, status, statusText, httpVersion, mimeType, size, time, startedDateTime });
|
|
1392
|
+
methods[method] = (methods[method] ?? 0) + 1;
|
|
1393
|
+
if (status > 0) statusCodes[String(status)] = (statusCodes[String(status)] ?? 0) + 1;
|
|
1394
|
+
totalSize += size;
|
|
1395
|
+
totalTime += time;
|
|
1396
|
+
if (status === 0 || status >= 400) failedRequests++;
|
|
1397
|
+
}
|
|
1398
|
+
const totalRequests = entries.length;
|
|
1399
|
+
const avgTime = totalRequests > 0 ? Math.round(totalTime / totalRequests * 100) / 100 : 0;
|
|
1400
|
+
return {
|
|
1401
|
+
version: typeof logObj.version === "string" ? logObj.version : "",
|
|
1402
|
+
creator: {
|
|
1403
|
+
name: typeof logObj.creator?.name === "string" ? logObj.creator.name : "",
|
|
1404
|
+
version: typeof logObj.creator?.version === "string" ? logObj.creator.version : ""
|
|
1405
|
+
},
|
|
1406
|
+
entries,
|
|
1407
|
+
summary: { totalRequests, totalSize, totalTime, avgTime, failedRequests, methods, statusCodes }
|
|
1408
|
+
};
|
|
1409
|
+
}
|
|
1352
1410
|
|
|
1353
1411
|
exports.DNS_RECORD_TYPES = DNS_RECORD_TYPES;
|
|
1354
1412
|
exports.HTTP_HEADERS = HTTP_HEADERS;
|
|
@@ -1372,6 +1430,7 @@ exports.isValidIpv4 = isValidIpv4;
|
|
|
1372
1430
|
exports.isValidIpv6 = isValidIpv6;
|
|
1373
1431
|
exports.parseDnsResponse = parseDnsResponse;
|
|
1374
1432
|
exports.parseGeoResponse = parseGeoResponse;
|
|
1433
|
+
exports.parseHar = parseHar;
|
|
1375
1434
|
exports.searchHeaders = searchHeaders;
|
|
1376
1435
|
exports.searchStatusCodes = searchStatusCodes;
|
|
1377
1436
|
exports.statusCodeToText = statusCodeToText;
|
package/dist/tools/network.d.cts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { D as DNS_RECORD_TYPES, a as DnsRecord, b as DnsRecordType, c as DnsResponse, G as GeoResult, H as HTTP_HEADERS, d as
|
|
1
|
+
export { D as DNS_RECORD_TYPES, a as DnsRecord, b as DnsRecordType, c as DnsResponse, G as GeoResult, H as HTTP_HEADERS, d as HarEntry, e as HarParseResult, f as HarSummary, g as HeaderCategory, h as HttpHeader, P as ParsedDnsResult, i as ParsedGeoResult, S as STATUS_CODES, j as StatusCode, k as buildDnsQueryUrl, l as buildGeoUrl, m as buildMapUrl, o as countryCodeToFlag, p as formatCoordinates, q as formatTtl, r as getByCategory, s as getHeader, t as getHeadersByCategory, u as getStatusByCategory, v as getStatusCode, w as isClientError, x as isServerError, y as isSuccess, z as isValidIp, A as isValidIpv4, B as isValidIpv6, C as parseDnsResponse, E as parseGeoResponse, F as parseHar, I as searchHeaders, J as searchStatusCodes, K as statusCodeToText, L as typeNumberToLabel, M as validateDomain, N as validateHeaderName, O as validateHeaderValue } from '../network-DwyAjwJS.cjs';
|
package/dist/tools/network.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { D as DNS_RECORD_TYPES, a as DnsRecord, b as DnsRecordType, c as DnsResponse, G as GeoResult, H as HTTP_HEADERS, d as
|
|
1
|
+
export { D as DNS_RECORD_TYPES, a as DnsRecord, b as DnsRecordType, c as DnsResponse, G as GeoResult, H as HTTP_HEADERS, d as HarEntry, e as HarParseResult, f as HarSummary, g as HeaderCategory, h as HttpHeader, P as ParsedDnsResult, i as ParsedGeoResult, S as STATUS_CODES, j as StatusCode, k as buildDnsQueryUrl, l as buildGeoUrl, m as buildMapUrl, o as countryCodeToFlag, p as formatCoordinates, q as formatTtl, r as getByCategory, s as getHeader, t as getHeadersByCategory, u as getStatusByCategory, v as getStatusCode, w as isClientError, x as isServerError, y as isSuccess, z as isValidIp, A as isValidIpv4, B as isValidIpv6, C as parseDnsResponse, E as parseGeoResponse, F as parseHar, I as searchHeaders, J as searchStatusCodes, K as statusCodeToText, L as typeNumberToLabel, M as validateDomain, N as validateHeaderName, O as validateHeaderValue } from '../network-DwyAjwJS.js';
|
package/dist/tools/network.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { DNS_RECORD_TYPES, HTTP_HEADERS, STATUS_CODES, buildDnsQueryUrl, buildGeoUrl, buildMapUrl, countryCodeToFlag, formatCoordinates, formatTtl, getByCategory, getHeader, getHeadersByCategory, getStatusByCategory, getStatusCode, isClientError, isServerError, isSuccess, isValidIp, isValidIpv4, isValidIpv6, parseDnsResponse, parseGeoResponse, searchHeaders, searchStatusCodes, statusCodeToText, typeNumberToLabel, validateDomain, validateHeaderName, validateHeaderValue } from '../chunk-
|
|
1
|
+
export { DNS_RECORD_TYPES, HTTP_HEADERS, STATUS_CODES, buildDnsQueryUrl, buildGeoUrl, buildMapUrl, countryCodeToFlag, formatCoordinates, formatTtl, getByCategory, getHeader, getHeadersByCategory, getStatusByCategory, getStatusCode, isClientError, isServerError, isSuccess, isValidIp, isValidIpv4, isValidIpv6, parseDnsResponse, parseGeoResponse, parseHar, searchHeaders, searchStatusCodes, statusCodeToText, typeNumberToLabel, validateDomain, validateHeaderName, validateHeaderValue } from '../chunk-V5JKVDBA.js';
|
|
2
2
|
import '../chunk-MLKGABMK.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@utilix-tech/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "140+ developer utility tools for Node.js: JSON, encoding, hashing, color, CSS, network and more. Runs locally, no API key required.",
|
|
5
5
|
"author": "Utilix <hello@utilix.tech>",
|
|
6
6
|
"license": "MIT",
|