@utilix-tech/sdk 0.40.0 → 0.42.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/CHANGELOG.md +7 -0
- package/README.md +24 -3
- package/dist/{chunk-RZUNTYEH.js → chunk-JR354NH4.js} +61 -1
- package/dist/{chunk-Y4BVU76A.js → chunk-UD45LBG7.js} +156 -1
- package/dist/{data-BCf3dm-E.d.cts → data-BKpEOcOX.d.cts} +35 -2
- package/dist/{data-BCf3dm-E.d.ts → data-BKpEOcOX.d.ts} +35 -2
- package/dist/index.cjs +215 -0
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/{network-CKPoesdD.d.ts → network-oAs83Ztn.d.cts} +91 -2
- package/dist/{network-CKPoesdD.d.cts → network-oAs83Ztn.d.ts} +91 -2
- package/dist/tools/data.cjs +60 -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/network.cjs +155 -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/tools/data.cjs
CHANGED
|
@@ -1472,6 +1472,65 @@ function csvToSqlInsert(input, options) {
|
|
|
1472
1472
|
columns
|
|
1473
1473
|
};
|
|
1474
1474
|
}
|
|
1475
|
+
function _normalizeDuplicateValue(value, caseSensitive, trimWhitespace) {
|
|
1476
|
+
let v = value;
|
|
1477
|
+
if (trimWhitespace) v = v.trim();
|
|
1478
|
+
if (!caseSensitive) v = v.toLowerCase();
|
|
1479
|
+
return v;
|
|
1480
|
+
}
|
|
1481
|
+
function findCsvDuplicateRows(input, options) {
|
|
1482
|
+
const parsed = parseCsv(input, {
|
|
1483
|
+
delimiter: options?.delimiter ?? ",",
|
|
1484
|
+
hasHeader: options?.hasHeader !== false,
|
|
1485
|
+
trimWhitespace: false
|
|
1486
|
+
});
|
|
1487
|
+
if ("error" in parsed) return parsed;
|
|
1488
|
+
if (parsed.rows.length === 0) return { error: "No data rows found" };
|
|
1489
|
+
const caseSensitive = options?.caseSensitive !== false;
|
|
1490
|
+
const trimWhitespace = options?.trimWhitespace !== false;
|
|
1491
|
+
let keyIndexes;
|
|
1492
|
+
if (options?.keyColumns && options.keyColumns.length > 0) {
|
|
1493
|
+
keyIndexes = [];
|
|
1494
|
+
for (const col of options.keyColumns) {
|
|
1495
|
+
const idx = parsed.headers.indexOf(col);
|
|
1496
|
+
if (idx === -1) {
|
|
1497
|
+
return { error: `Column "${col}" not found. Available columns: ${parsed.headers.join(", ")}` };
|
|
1498
|
+
}
|
|
1499
|
+
keyIndexes.push(idx);
|
|
1500
|
+
}
|
|
1501
|
+
} else {
|
|
1502
|
+
keyIndexes = parsed.headers.map((_, idx) => idx);
|
|
1503
|
+
}
|
|
1504
|
+
const groups = /* @__PURE__ */ new Map();
|
|
1505
|
+
parsed.rows.forEach((row, i) => {
|
|
1506
|
+
const key = keyIndexes.map((idx) => row[idx] ?? "");
|
|
1507
|
+
const normalizedKey = keyIndexes.map((idx) => _normalizeDuplicateValue(row[idx] ?? "", caseSensitive, trimWhitespace));
|
|
1508
|
+
const mapKey = JSON.stringify(normalizedKey);
|
|
1509
|
+
const rowNumber = i + 1;
|
|
1510
|
+
const existing = groups.get(mapKey);
|
|
1511
|
+
if (existing) {
|
|
1512
|
+
existing.rowNumbers.push(rowNumber);
|
|
1513
|
+
} else {
|
|
1514
|
+
groups.set(mapKey, { key, rowNumbers: [rowNumber] });
|
|
1515
|
+
}
|
|
1516
|
+
});
|
|
1517
|
+
const duplicateGroups = [];
|
|
1518
|
+
let duplicateRowCount = 0;
|
|
1519
|
+
for (const group of groups.values()) {
|
|
1520
|
+
if (group.rowNumbers.length > 1) {
|
|
1521
|
+
duplicateGroups.push({ key: group.key, rowNumbers: group.rowNumbers, count: group.rowNumbers.length });
|
|
1522
|
+
duplicateRowCount += group.rowNumbers.length;
|
|
1523
|
+
}
|
|
1524
|
+
}
|
|
1525
|
+
duplicateGroups.sort((a, b) => b.count - a.count);
|
|
1526
|
+
return {
|
|
1527
|
+
headers: parsed.headers,
|
|
1528
|
+
totalRows: parsed.rows.length,
|
|
1529
|
+
duplicateGroups,
|
|
1530
|
+
duplicateRowCount,
|
|
1531
|
+
uniqueRowCount: parsed.rows.length - duplicateRowCount + duplicateGroups.length
|
|
1532
|
+
};
|
|
1533
|
+
}
|
|
1475
1534
|
|
|
1476
1535
|
exports.convertSubtitles = convertSubtitles;
|
|
1477
1536
|
exports.csvToJson = csvToJson;
|
|
@@ -1481,6 +1540,7 @@ exports.detectSubtitleFormat = detectSubtitleFormat;
|
|
|
1481
1540
|
exports.diffEnvExample = diffEnvExample;
|
|
1482
1541
|
exports.envToExport = envToExport;
|
|
1483
1542
|
exports.envToJson = envToJson;
|
|
1543
|
+
exports.findCsvDuplicateRows = findCsvDuplicateRows;
|
|
1484
1544
|
exports.formatNdjson = formatNdjson;
|
|
1485
1545
|
exports.formatSubtitleTimestamp = formatSubtitleTimestamp;
|
|
1486
1546
|
exports.formatToml = formatToml;
|
package/dist/tools/data.d.cts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { C as ConvertedSubtitles, a as
|
|
1
|
+
export { C as ConvertedSubtitles, a as CsvDuplicateGroup, b as CsvDuplicateOptions, c as CsvDuplicateResult, e as CsvParseResult, f as CsvToSqlOptions, g as CsvToSqlResult, E as EnvDiffError, h as EnvDiffResult, i as EnvEntry, j as EnvParseResult, F as FrontMatterError, k as FrontMatterResult, I as IniSection, M as MarkdownTocEntry, l as MarkdownTocOptions, m as MarkdownTocResult, N as NdjsonLineResult, n as NdjsonValidateResult, P as ParseOptions, o as ParsedIni, p as ParsedSubtitles, S as SubtitleCue, q as SubtitleFormat, T as TomlFormatResult, V as ValidationResult, X as XmlFormatResult, r as XmlToJsonOptions, s as convertSubtitles, t as csvToJson, u as csvToSqlInsert, v as detectDelimiter, w as detectSubtitleFormat, x as diffEnvExample, y as envToExport, z as envToJson, A as findCsvDuplicateRows, B as formatNdjson, D as formatSubtitleTimestamp, G as formatToml, H as formatXml, J as generateMarkdownToc, K as getSection, L as getSectionNames, O as getTomlStats, Q as getXmlStats, R as getYamlStats, U as iniToJson, W as jsonArrayToNdjson, Y as jsonToIni, Z as jsonToToml, _ as jsonToXml, $ as minifyNdjson, a0 as minifyToml, a1 as minifyXml, a2 as ndjsonToJsonArray, a3 as parseCsv, a4 as parseEnv, a5 as parseFrontMatter, a6 as parseIni, a7 as parseSubtitleTimestamp, a8 as parseSubtitles, a9 as parseXmlToObject, aa as serializeSubtitles, ab as shiftSubtitles, ac as stringifyIni, ad as toCsvString, ae as tomlToJson, af as validateEnvKey, ag as validateIni, ah as validateNdjson, ai as validateToml, aj as validateXml, ak as validateYaml, al as xmlToJson } from '../data-BKpEOcOX.cjs';
|
package/dist/tools/data.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { C as ConvertedSubtitles, a as
|
|
1
|
+
export { C as ConvertedSubtitles, a as CsvDuplicateGroup, b as CsvDuplicateOptions, c as CsvDuplicateResult, e as CsvParseResult, f as CsvToSqlOptions, g as CsvToSqlResult, E as EnvDiffError, h as EnvDiffResult, i as EnvEntry, j as EnvParseResult, F as FrontMatterError, k as FrontMatterResult, I as IniSection, M as MarkdownTocEntry, l as MarkdownTocOptions, m as MarkdownTocResult, N as NdjsonLineResult, n as NdjsonValidateResult, P as ParseOptions, o as ParsedIni, p as ParsedSubtitles, S as SubtitleCue, q as SubtitleFormat, T as TomlFormatResult, V as ValidationResult, X as XmlFormatResult, r as XmlToJsonOptions, s as convertSubtitles, t as csvToJson, u as csvToSqlInsert, v as detectDelimiter, w as detectSubtitleFormat, x as diffEnvExample, y as envToExport, z as envToJson, A as findCsvDuplicateRows, B as formatNdjson, D as formatSubtitleTimestamp, G as formatToml, H as formatXml, J as generateMarkdownToc, K as getSection, L as getSectionNames, O as getTomlStats, Q as getXmlStats, R as getYamlStats, U as iniToJson, W as jsonArrayToNdjson, Y as jsonToIni, Z as jsonToToml, _ as jsonToXml, $ as minifyNdjson, a0 as minifyToml, a1 as minifyXml, a2 as ndjsonToJsonArray, a3 as parseCsv, a4 as parseEnv, a5 as parseFrontMatter, a6 as parseIni, a7 as parseSubtitleTimestamp, a8 as parseSubtitles, a9 as parseXmlToObject, aa as serializeSubtitles, ab as shiftSubtitles, ac as stringifyIni, ad as toCsvString, ae as tomlToJson, af as validateEnvKey, ag as validateIni, ah as validateNdjson, ai as validateToml, aj as validateXml, ak as validateYaml, al as xmlToJson } from '../data-BKpEOcOX.js';
|
package/dist/tools/data.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { convertSubtitles, csvToJson, csvToSqlInsert, detectDelimiter, detectSubtitleFormat, diffEnvExample, envToExport, envToJson, formatNdjson, formatSubtitleTimestamp, formatToml, formatXml, generateMarkdownToc, getSection, getSectionNames, getTomlStats, getXmlStats, getYamlStats, iniToJson, jsonArrayToNdjson, jsonToIni, jsonToToml, jsonToXml, minifyNdjson, minifyToml, minifyXml, ndjsonToJsonArray, parseCsv, parseEnv, parseFrontMatter, parseIni, parseSubtitleTimestamp, parseSubtitles, parseXmlToObject, serializeSubtitles, shiftSubtitles, stringifyIni, toCsvString, tomlToJson, validateEnvKey, validateIni, validateNdjson, validateToml, validateXml, validateYaml, xmlToJson } from '../chunk-
|
|
1
|
+
export { convertSubtitles, csvToJson, csvToSqlInsert, detectDelimiter, detectSubtitleFormat, diffEnvExample, envToExport, envToJson, findCsvDuplicateRows, formatNdjson, formatSubtitleTimestamp, formatToml, formatXml, generateMarkdownToc, getSection, getSectionNames, getTomlStats, getXmlStats, getYamlStats, iniToJson, jsonArrayToNdjson, jsonToIni, jsonToToml, jsonToXml, minifyNdjson, minifyToml, minifyXml, ndjsonToJsonArray, parseCsv, parseEnv, parseFrontMatter, parseIni, parseSubtitleTimestamp, parseSubtitles, parseXmlToObject, serializeSubtitles, shiftSubtitles, stringifyIni, toCsvString, tomlToJson, validateEnvKey, validateIni, validateNdjson, validateToml, validateXml, validateYaml, xmlToJson } from '../chunk-JR354NH4.js';
|
|
2
2
|
import '../chunk-MLKGABMK.js';
|
package/dist/tools/network.cjs
CHANGED
|
@@ -2165,6 +2165,157 @@ function analyzeEmailHeaders(raw) {
|
|
|
2165
2165
|
warnings
|
|
2166
2166
|
};
|
|
2167
2167
|
}
|
|
2168
|
+
function _round2(n) {
|
|
2169
|
+
return Math.round(n * 100) / 100;
|
|
2170
|
+
}
|
|
2171
|
+
function buildRangeHeader(entries, options) {
|
|
2172
|
+
if (!Array.isArray(entries) || entries.length === 0) {
|
|
2173
|
+
return { error: "At least one range is required" };
|
|
2174
|
+
}
|
|
2175
|
+
const unit = options?.unit?.trim() || "bytes";
|
|
2176
|
+
const totalSize = typeof options?.totalSize === "number" && Number.isFinite(options.totalSize) ? options.totalSize : void 0;
|
|
2177
|
+
if (totalSize !== void 0 && totalSize <= 0) {
|
|
2178
|
+
return { error: "totalSize must be a positive number when provided" };
|
|
2179
|
+
}
|
|
2180
|
+
const parsed = [];
|
|
2181
|
+
for (const entry of entries) {
|
|
2182
|
+
if (entry.suffixLength !== void 0) {
|
|
2183
|
+
if (!Number.isFinite(entry.suffixLength) || entry.suffixLength <= 0) {
|
|
2184
|
+
return { error: "suffixLength must be a positive number" };
|
|
2185
|
+
}
|
|
2186
|
+
const suffixLength = Math.floor(entry.suffixLength);
|
|
2187
|
+
const byteLength = totalSize !== void 0 ? Math.min(suffixLength, totalSize) : suffixLength;
|
|
2188
|
+
parsed.push({
|
|
2189
|
+
spec: `-${suffixLength}`,
|
|
2190
|
+
start: null,
|
|
2191
|
+
end: null,
|
|
2192
|
+
suffixLength,
|
|
2193
|
+
byteLength,
|
|
2194
|
+
percentOfTotal: totalSize !== void 0 ? _round2(byteLength / totalSize * 100) : null
|
|
2195
|
+
});
|
|
2196
|
+
continue;
|
|
2197
|
+
}
|
|
2198
|
+
if (entry.start === void 0) {
|
|
2199
|
+
return { error: "Each range requires either a start byte or a suffixLength" };
|
|
2200
|
+
}
|
|
2201
|
+
if (!Number.isFinite(entry.start) || entry.start < 0) {
|
|
2202
|
+
return { error: "start must be a non-negative number" };
|
|
2203
|
+
}
|
|
2204
|
+
const start = Math.floor(entry.start);
|
|
2205
|
+
if (totalSize !== void 0 && start >= totalSize) {
|
|
2206
|
+
return { error: `start byte ${start} is beyond totalSize (${totalSize})` };
|
|
2207
|
+
}
|
|
2208
|
+
if (entry.end !== void 0) {
|
|
2209
|
+
if (!Number.isFinite(entry.end) || entry.end < 0) {
|
|
2210
|
+
return { error: "end must be a non-negative number" };
|
|
2211
|
+
}
|
|
2212
|
+
const end = Math.floor(entry.end);
|
|
2213
|
+
if (end < start) {
|
|
2214
|
+
return { error: `range end (${end}) must be >= start (${start})` };
|
|
2215
|
+
}
|
|
2216
|
+
if (totalSize !== void 0 && end >= totalSize) {
|
|
2217
|
+
return { error: `end byte ${end} is beyond totalSize (${totalSize})` };
|
|
2218
|
+
}
|
|
2219
|
+
const byteLength = end - start + 1;
|
|
2220
|
+
parsed.push({
|
|
2221
|
+
spec: `${start}-${end}`,
|
|
2222
|
+
start,
|
|
2223
|
+
end,
|
|
2224
|
+
suffixLength: null,
|
|
2225
|
+
byteLength,
|
|
2226
|
+
percentOfTotal: totalSize !== void 0 ? _round2(byteLength / totalSize * 100) : null
|
|
2227
|
+
});
|
|
2228
|
+
} else {
|
|
2229
|
+
const byteLength = totalSize !== void 0 ? totalSize - start : null;
|
|
2230
|
+
parsed.push({
|
|
2231
|
+
spec: `${start}-`,
|
|
2232
|
+
start,
|
|
2233
|
+
end: null,
|
|
2234
|
+
suffixLength: null,
|
|
2235
|
+
byteLength,
|
|
2236
|
+
percentOfTotal: byteLength !== null && totalSize !== void 0 ? _round2(byteLength / totalSize * 100) : null
|
|
2237
|
+
});
|
|
2238
|
+
}
|
|
2239
|
+
}
|
|
2240
|
+
const warnings = [];
|
|
2241
|
+
const resolvable = parsed.map((r, i) => ({ i, start: r.start ?? (totalSize !== void 0 && r.suffixLength !== null ? totalSize - Math.min(r.suffixLength, totalSize) : null), end: r.end ?? (totalSize !== void 0 ? totalSize - 1 : null) })).filter((r) => r.start !== null && r.end !== null).sort((a, b) => a.start - b.start);
|
|
2242
|
+
for (let i = 1; i < resolvable.length; i++) {
|
|
2243
|
+
if (resolvable[i].start <= resolvable[i - 1].end) {
|
|
2244
|
+
warnings.push(`ranges "${parsed[resolvable[i - 1].i].spec}" and "${parsed[resolvable[i].i].spec}" overlap - servers may reject overlapping multi-range requests`);
|
|
2245
|
+
}
|
|
2246
|
+
}
|
|
2247
|
+
if (parsed.length > 1 && parsed.some((r) => r.byteLength === null)) {
|
|
2248
|
+
warnings.push("totalSize was not provided, so open-ended ranges cannot be checked for overlap or total byte count");
|
|
2249
|
+
}
|
|
2250
|
+
const totalBytesRequested = parsed.every((r) => r.byteLength !== null) ? parsed.reduce((sum, r) => sum + (r.byteLength ?? 0), 0) : null;
|
|
2251
|
+
const headerValue = `${unit}=${parsed.map((r) => r.spec).join(",")}`;
|
|
2252
|
+
return {
|
|
2253
|
+
header: `Range: ${headerValue}`,
|
|
2254
|
+
headerValue,
|
|
2255
|
+
ranges: parsed,
|
|
2256
|
+
totalBytesRequested,
|
|
2257
|
+
warnings
|
|
2258
|
+
};
|
|
2259
|
+
}
|
|
2260
|
+
function parseContentRangeHeader(header) {
|
|
2261
|
+
if (!header || header.trim() === "") return { error: "Input is empty" };
|
|
2262
|
+
const match = header.trim().match(/^(\S+)\s+(\*|\d+-\d+)\/(\*|\d+)$/);
|
|
2263
|
+
if (!match) {
|
|
2264
|
+
return { error: 'Could not parse Content-Range header. Expected a format like "bytes 200-1000/67589" or "bytes */67589"' };
|
|
2265
|
+
}
|
|
2266
|
+
const [, unit, range, totalRaw] = match;
|
|
2267
|
+
const isUnsatisfiable = range === "*";
|
|
2268
|
+
const isTotalUnknown = totalRaw === "*";
|
|
2269
|
+
const total = isTotalUnknown ? null : Number(totalRaw);
|
|
2270
|
+
if (isUnsatisfiable) {
|
|
2271
|
+
return { unit, start: null, end: null, total, isUnsatisfiable, isTotalUnknown, byteLength: null };
|
|
2272
|
+
}
|
|
2273
|
+
const [startRaw, endRaw] = range.split("-");
|
|
2274
|
+
const start = Number(startRaw);
|
|
2275
|
+
const end = Number(endRaw);
|
|
2276
|
+
if (end < start) {
|
|
2277
|
+
return { error: `Invalid range: end (${end}) is before start (${start})` };
|
|
2278
|
+
}
|
|
2279
|
+
return { unit, start, end, total, isUnsatisfiable, isTotalUnknown, byteLength: end - start + 1 };
|
|
2280
|
+
}
|
|
2281
|
+
var VARY_HEADER_NOTES = {
|
|
2282
|
+
"accept-encoding": "Caches must store a separate response per compression scheme (gzip, br, etc.) the client accepts.",
|
|
2283
|
+
"accept-language": "Caches must store a separate response per requested language, which can fragment a shared cache badly if Accept-Language values are highly varied.",
|
|
2284
|
+
"accept": "Caches must store a separate response per requested content type (e.g. JSON vs HTML).",
|
|
2285
|
+
"user-agent": "Caches must store a separate response per distinct User-Agent string, which is often unique enough to make caching nearly ineffective.",
|
|
2286
|
+
"authorization": "Signals the response is user-specific; most shared caches will refuse to cache it at all rather than key on this header.",
|
|
2287
|
+
"cookie": "Same effect as Authorization: shared caches typically treat the response as private and skip caching rather than key on cookie values.",
|
|
2288
|
+
"origin": "Caches must store a separate response per requesting Origin, needed whenever a response includes CORS headers that differ by origin.",
|
|
2289
|
+
"x-requested-with": "Caches must store a separate response depending on whether the request was made via an XHR/fetch client hint.",
|
|
2290
|
+
"x-forwarded-proto": "Caches must store a separate response for HTTP vs HTTPS requests, relevant behind a proxy or load balancer that terminates TLS."
|
|
2291
|
+
};
|
|
2292
|
+
function buildVaryHeader(headers) {
|
|
2293
|
+
if (!Array.isArray(headers) || headers.length === 0) return { error: "At least one header is required" };
|
|
2294
|
+
const trimmed = headers.map((h) => typeof h === "string" ? h.trim() : "").filter((h) => h.length > 0);
|
|
2295
|
+
if (trimmed.length === 0) return { error: "At least one header is required" };
|
|
2296
|
+
const warnings = [];
|
|
2297
|
+
if (trimmed.some((h) => h === "*") && trimmed.length > 1) {
|
|
2298
|
+
warnings.push('"*" makes every request effectively uncacheable; combining it with other header names is redundant, most caches will just skip caching entirely');
|
|
2299
|
+
}
|
|
2300
|
+
const seen = /* @__PURE__ */ new Map();
|
|
2301
|
+
for (const h of trimmed) {
|
|
2302
|
+
const key = h.toLowerCase();
|
|
2303
|
+
if (!seen.has(key)) seen.set(key, h);
|
|
2304
|
+
}
|
|
2305
|
+
if (seen.size < trimmed.length) warnings.push("duplicate header names were removed");
|
|
2306
|
+
const entries = Array.from(seen.values()).map((h) => ({
|
|
2307
|
+
header: h,
|
|
2308
|
+
note: h === "*" ? "Every response is considered unique; most caches will not store it at all." : VARY_HEADER_NOTES[h.toLowerCase()] ?? `Caches must store a separate response per distinct ${h} value.`
|
|
2309
|
+
}));
|
|
2310
|
+
const headerValue = entries.map((e) => e.header).join(", ");
|
|
2311
|
+
return { header: `Vary: ${headerValue}`, headerValue, entries, warnings };
|
|
2312
|
+
}
|
|
2313
|
+
function parseVaryHeader(raw) {
|
|
2314
|
+
if (!raw || raw.trim() === "") return { error: "Input is empty" };
|
|
2315
|
+
const withoutLabel = raw.trim().replace(/^vary:\s*/i, "");
|
|
2316
|
+
const headers = withoutLabel.split(",").map((h) => h.trim()).filter((h) => h.length > 0);
|
|
2317
|
+
return buildVaryHeader(headers);
|
|
2318
|
+
}
|
|
2168
2319
|
|
|
2169
2320
|
exports.DNS_RECORD_TYPES = DNS_RECORD_TYPES;
|
|
2170
2321
|
exports.HTTP_HEADERS = HTTP_HEADERS;
|
|
@@ -2177,7 +2328,9 @@ exports.buildDnsQueryUrl = buildDnsQueryUrl;
|
|
|
2177
2328
|
exports.buildGeoUrl = buildGeoUrl;
|
|
2178
2329
|
exports.buildLinkHeader = buildLinkHeader;
|
|
2179
2330
|
exports.buildMapUrl = buildMapUrl;
|
|
2331
|
+
exports.buildRangeHeader = buildRangeHeader;
|
|
2180
2332
|
exports.buildReferrerPolicy = buildReferrerPolicy;
|
|
2333
|
+
exports.buildVaryHeader = buildVaryHeader;
|
|
2181
2334
|
exports.checkSetCookieHeader = checkSetCookieHeader;
|
|
2182
2335
|
exports.countryCodeToFlag = countryCodeToFlag;
|
|
2183
2336
|
exports.formatCoordinates = formatCoordinates;
|
|
@@ -2193,11 +2346,13 @@ exports.isSuccess = isSuccess;
|
|
|
2193
2346
|
exports.isValidIp = isValidIp;
|
|
2194
2347
|
exports.isValidIpv4 = isValidIpv4;
|
|
2195
2348
|
exports.isValidIpv6 = isValidIpv6;
|
|
2349
|
+
exports.parseContentRangeHeader = parseContentRangeHeader;
|
|
2196
2350
|
exports.parseDnsResponse = parseDnsResponse;
|
|
2197
2351
|
exports.parseGeoResponse = parseGeoResponse;
|
|
2198
2352
|
exports.parseHar = parseHar;
|
|
2199
2353
|
exports.parseIpv6Address = parseIpv6Address;
|
|
2200
2354
|
exports.parseUserAgent = parseUserAgent;
|
|
2355
|
+
exports.parseVaryHeader = parseVaryHeader;
|
|
2201
2356
|
exports.searchHeaders = searchHeaders;
|
|
2202
2357
|
exports.searchStatusCodes = searchStatusCodes;
|
|
2203
2358
|
exports.statusCodeToText = statusCodeToText;
|
package/dist/tools/network.d.cts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { A as AuthResultEntry, C as CacheControlDirective, a as CacheControlOptions, b as CacheControlResult, c as
|
|
1
|
+
export { A as AuthResultEntry, B as BuildRangeHeaderOptions, C as CacheControlDirective, a as CacheControlOptions, b as CacheControlResult, c as ContentRangeResult, d as CookieAttributes, e as CookieCheckResult, D as DNS_RECORD_TYPES, f as DnsRecord, g as DnsRecordType, h as DnsResponse, E as EmailHeaderAnalysis, i as EmailHeaderField, G as GeoResult, H as HTTP_HEADERS, j as HarEntry, k as HarParseResult, l as HarSummary, m as HeaderCategory, o as HttpHeader, I as Ipv6AddressType, p as Ipv6ParseResult, L as LINK_REL_VALUES, q as LinkHeaderEntry, r as LinkHeaderEntryInput, s as LinkHeaderResult, t as LinkRel, P as ParsedDnsResult, u as ParsedGeoResult, R as REFERRER_POLICY_VALUES, v as RangeEntry, w as RangeEntryInput, x as RangeHeaderResult, y as ReceivedHop, z as ReferrerPolicyEntry, F as ReferrerPolicyResult, J as ReferrerPolicyValue, K as RobotsGroup, M as RobotsIssue, N as RobotsRule, O as RobotsValidationResult, S as STATUS_CODES, Q as SameSiteValue, T as SitemapIndexEntry, U as SitemapIssue, V as SitemapUrlEntry, W as SitemapValidationResult, X as StatusCode, Y as UaDeviceType, Z as UserAgentInfo, _ as VaryHeaderEntry, $ as VaryHeaderResult, a0 as analyzeEmailHeaders, a1 as buildCacheControl, a2 as buildDnsQueryUrl, a3 as buildGeoUrl, a4 as buildLinkHeader, a5 as buildMapUrl, a6 as buildRangeHeader, a7 as buildReferrerPolicy, a8 as buildVaryHeader, a9 as checkSetCookieHeader, aa as countryCodeToFlag, ab as formatCoordinates, ac as formatTtl, ad as getByCategory, ae as getHeader, af as getHeadersByCategory, ag as getStatusByCategory, ah as getStatusCode, ai as isClientError, aj as isServerError, ak as isSuccess, al as isValidIp, am as isValidIpv4, an as isValidIpv6, ao as parseContentRangeHeader, ap as parseDnsResponse, aq as parseGeoResponse, ar as parseHar, as as parseIpv6Address, at as parseUserAgent, au as parseVaryHeader, av as searchHeaders, aw as searchStatusCodes, ax as statusCodeToText, ay as typeNumberToLabel, az as validateDomain, aA as validateHeaderName, aB as validateHeaderValue, aC as validateRobotsTxt, aD as validateSitemap } from '../network-oAs83Ztn.cjs';
|
package/dist/tools/network.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { A as AuthResultEntry, C as CacheControlDirective, a as CacheControlOptions, b as CacheControlResult, c as
|
|
1
|
+
export { A as AuthResultEntry, B as BuildRangeHeaderOptions, C as CacheControlDirective, a as CacheControlOptions, b as CacheControlResult, c as ContentRangeResult, d as CookieAttributes, e as CookieCheckResult, D as DNS_RECORD_TYPES, f as DnsRecord, g as DnsRecordType, h as DnsResponse, E as EmailHeaderAnalysis, i as EmailHeaderField, G as GeoResult, H as HTTP_HEADERS, j as HarEntry, k as HarParseResult, l as HarSummary, m as HeaderCategory, o as HttpHeader, I as Ipv6AddressType, p as Ipv6ParseResult, L as LINK_REL_VALUES, q as LinkHeaderEntry, r as LinkHeaderEntryInput, s as LinkHeaderResult, t as LinkRel, P as ParsedDnsResult, u as ParsedGeoResult, R as REFERRER_POLICY_VALUES, v as RangeEntry, w as RangeEntryInput, x as RangeHeaderResult, y as ReceivedHop, z as ReferrerPolicyEntry, F as ReferrerPolicyResult, J as ReferrerPolicyValue, K as RobotsGroup, M as RobotsIssue, N as RobotsRule, O as RobotsValidationResult, S as STATUS_CODES, Q as SameSiteValue, T as SitemapIndexEntry, U as SitemapIssue, V as SitemapUrlEntry, W as SitemapValidationResult, X as StatusCode, Y as UaDeviceType, Z as UserAgentInfo, _ as VaryHeaderEntry, $ as VaryHeaderResult, a0 as analyzeEmailHeaders, a1 as buildCacheControl, a2 as buildDnsQueryUrl, a3 as buildGeoUrl, a4 as buildLinkHeader, a5 as buildMapUrl, a6 as buildRangeHeader, a7 as buildReferrerPolicy, a8 as buildVaryHeader, a9 as checkSetCookieHeader, aa as countryCodeToFlag, ab as formatCoordinates, ac as formatTtl, ad as getByCategory, ae as getHeader, af as getHeadersByCategory, ag as getStatusByCategory, ah as getStatusCode, ai as isClientError, aj as isServerError, ak as isSuccess, al as isValidIp, am as isValidIpv4, an as isValidIpv6, ao as parseContentRangeHeader, ap as parseDnsResponse, aq as parseGeoResponse, ar as parseHar, as as parseIpv6Address, at as parseUserAgent, au as parseVaryHeader, av as searchHeaders, aw as searchStatusCodes, ax as statusCodeToText, ay as typeNumberToLabel, az as validateDomain, aA as validateHeaderName, aB as validateHeaderValue, aC as validateRobotsTxt, aD as validateSitemap } from '../network-oAs83Ztn.js';
|
package/dist/tools/network.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { DNS_RECORD_TYPES, HTTP_HEADERS, LINK_REL_VALUES, REFERRER_POLICY_VALUES, STATUS_CODES, analyzeEmailHeaders, buildCacheControl, buildDnsQueryUrl, buildGeoUrl, buildLinkHeader, buildMapUrl, buildReferrerPolicy, checkSetCookieHeader, countryCodeToFlag, formatCoordinates, formatTtl, getByCategory, getHeader, getHeadersByCategory, getStatusByCategory, getStatusCode, isClientError, isServerError, isSuccess, isValidIp, isValidIpv4, isValidIpv6, parseDnsResponse, parseGeoResponse, parseHar, parseIpv6Address, parseUserAgent, searchHeaders, searchStatusCodes, statusCodeToText, typeNumberToLabel, validateDomain, validateHeaderName, validateHeaderValue, validateRobotsTxt, validateSitemap } from '../chunk-
|
|
1
|
+
export { DNS_RECORD_TYPES, HTTP_HEADERS, LINK_REL_VALUES, REFERRER_POLICY_VALUES, STATUS_CODES, analyzeEmailHeaders, buildCacheControl, buildDnsQueryUrl, buildGeoUrl, buildLinkHeader, buildMapUrl, buildRangeHeader, buildReferrerPolicy, buildVaryHeader, checkSetCookieHeader, countryCodeToFlag, formatCoordinates, formatTtl, getByCategory, getHeader, getHeadersByCategory, getStatusByCategory, getStatusCode, isClientError, isServerError, isSuccess, isValidIp, isValidIpv4, isValidIpv6, parseContentRangeHeader, parseDnsResponse, parseGeoResponse, parseHar, parseIpv6Address, parseUserAgent, parseVaryHeader, searchHeaders, searchStatusCodes, statusCodeToText, typeNumberToLabel, validateDomain, validateHeaderName, validateHeaderValue, validateRobotsTxt, validateSitemap } from '../chunk-UD45LBG7.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.42.0",
|
|
4
4
|
"description": "154+ 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",
|