@utilix-tech/sdk 0.89.0 → 0.90.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 CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  Full release notes for all Utilix surfaces (browser tools, REST API, SDKs, MCP server) live at [utilix.tech/changelog](https://utilix.tech/changelog). This file tracks just this package.
4
4
 
5
+ ## 0.90.0
6
+ - Add `intersectSemverRanges` (semver-range-intersection): determine whether two semver ranges overlap and, if so, the intersecting range, supporting the same caret/tilde/comparison-operator/exact-version syntax as the semver tool.
7
+ - Add `checkMarkdownInternalLinks` (markdown-internal-link-checker): scan a Markdown document's ATX headings, compute GitHub-style anchor slugs, and flag `[text](#slug)` links that point at a heading that doesn't exist.
8
+
5
9
  ## 0.89.0
6
10
  - Add `checkAcronymExpansion` (acronym-expansion-checker): scan text for acronyms and flag any used before being expanded on first mention, recognizing both the "full term (ACRONYM)" and "ACRONYM (full term)" conventions, with acronyms never expanded anywhere reported separately.
7
11
 
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @utilix-tech/sdk
2
2
 
3
- **728 developer utility functions for Node.js: runs locally, no API key required.**
3
+ **730 developer utility functions for Node.js: runs locally, no API key required.**
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/@utilix-tech/sdk?style=flat-square&color=cb3837)](https://www.npmjs.com/package/@utilix-tech/sdk)
6
6
  [![npm downloads](https://img.shields.io/npm/dm/@utilix-tech/sdk?style=flat-square)](https://www.npmjs.com/package/@utilix-tech/sdk)
@@ -1054,10 +1054,10 @@ readMidiInfo(new Uint8Array(midiBytes));
1054
1054
  | `@utilix-tech/sdk/encoding` | Base64, URL, HTML entities, Base32/Base58/Base62 encode/decode |
1055
1055
  | `@utilix-tech/sdk/hashing` | MD5, SHA-1/256/512, bcrypt, HMAC, .htpasswd, SRI hashes, content-hash ETag generation |
1056
1056
  | `@utilix-tech/sdk/text` | Case convert, slugify, word count, lorem ipsum, line ops, HTML→Markdown, Levenshtein/Damerau string distance, readability scoring, sentence length distribution, emoji lookup |
1057
- | `@utilix-tech/sdk/data` | CSV, YAML, TOML, XML, INI, NDJSON parse and convert, NDJSON record deduplicator, SRT/WebVTT subtitles, Markdown front matter parser, YAML anchor/alias resolver, CSV column type inferencer, Markdown table column aligner, Markdown heading hierarchy validator |
1057
+ | `@utilix-tech/sdk/data` | CSV, YAML, TOML, XML, INI, NDJSON parse and convert, NDJSON record deduplicator, SRT/WebVTT subtitles, Markdown front matter parser, YAML anchor/alias resolver, CSV column type inferencer, Markdown table column aligner, Markdown heading hierarchy validator, Markdown internal link checker |
1058
1058
  | `@utilix-tech/sdk/generators` | UUID v4/v7, ULID, passwords, strength check, entropy estimator, fake data, CSP nonce generator |
1059
1059
  | `@utilix-tech/sdk/time` | Date diff, timezone convert, cron parse, relative time |
1060
- | `@utilix-tech/sdk/units` | Bytes, CSS px/rem, number bases, currency format, credit card/IBAN/barcode/ISBN/VIN/ISIN validation, loan calculator, EMI calculator, compound/simple interest calculators, VAT/sales tax calculator, tip/bill split calculator, break-even point calculator, Rule of 72 calculator, savings goal calculator, ROI calculator, cash denomination/till calculator, payback period calculator, CD maturity calculator, debt-to-income ratio calculator, freelancer hourly rate calculator, debt snowball/avalanche payoff planner, tax-equivalent yield calculator, mortgage discount points break-even calculator, loan prepayment penalty calculator, data transfer time / required bandwidth estimator, real rate of return (Fisher equation) calculator, sales commission calculator (flat or tiered), annuity payout calculator |
1060
+ | `@utilix-tech/sdk/units` | Bytes, CSS px/rem, number bases, currency format, credit card/IBAN/barcode/ISBN/VIN/ISIN validation, loan calculator, EMI calculator, compound/simple interest calculators, VAT/sales tax calculator, tip/bill split calculator, break-even point calculator, Rule of 72 calculator, savings goal calculator, ROI calculator, cash denomination/till calculator, payback period calculator, CD maturity calculator, debt-to-income ratio calculator, freelancer hourly rate calculator, debt snowball/avalanche payoff planner, tax-equivalent yield calculator, mortgage discount points break-even calculator, loan prepayment penalty calculator, data transfer time / required bandwidth estimator, real rate of return (Fisher equation) calculator, sales commission calculator (flat or tiered), annuity payout calculator, semver range intersection checker |
1061
1061
  | `@utilix-tech/sdk/network` | HTTP status codes, IP validation, country flags, geolocation URLs, HAR file parsing, User-Agent parsing, IPv6 address compress/expand, Permissions-Policy header builder, Client Hints header builder/parser, Content-Disposition header builder/parser, X-Content-Type-Options header builder/risk assessor, sitemap.xml validator, sitemap index splitter, robots.txt validator, robots.txt generator, Prefer header builder/parser (RFC 7240), Retry-After header builder/parser (RFC 9110), Priority header builder/parser (RFC 9218), WebSocket close code reference/lookup, Strict-Transport-Security (HSTS) header builder/parser, X-Robots-Tag header builder/parser, WebSocket frame opcode reference/lookup, robots meta tag builder/parser, Cookie header byte-size budget calculator |
1062
1062
  | `@utilix-tech/sdk/api` | cURL build/parse, JWT decode/sign, JWKS parse, CORS headers, CSP header, TOTP/HOTP code generator, webhook HMAC signature verifier |
1063
1063
  | `@utilix-tech/sdk/code` | SQL format/minify, HTML format/minify, regex tester, GraphQL format, MIME type lookup, GitHub URL parsing, regex ReDoS detector, Conventional Commits linter, package.json exports field validator, package.json dependency range auditor, regex capture group/backreference visualizer, SVG sprite symbol extractor, ARIA role & attribute validator, database connection string parser, Markdown code fence language tag validator, SQL query parameter placeholder counter, Markdown link reference extractor, regex character class builder, Dockerfile linter, Mermaid diagram syntax validator |
@@ -8,6 +8,7 @@ __export(data_exports, {
8
8
  alignMarkdownTables: () => alignMarkdownTables,
9
9
  analyzeCaptionSpeed: () => analyzeCaptionSpeed,
10
10
  calculateMarkdownTaskListProgress: () => calculateMarkdownTaskListProgress,
11
+ checkMarkdownInternalLinks: () => checkMarkdownInternalLinks,
11
12
  convertSubtitles: () => convertSubtitles,
12
13
  csvToJson: () => csvToJson,
13
14
  csvToSqlInsert: () => csvToSqlInsert,
@@ -1659,6 +1660,63 @@ function validateMarkdownHeadingHierarchy(markdown) {
1659
1660
  });
1660
1661
  return { headings, issues, h1Count };
1661
1662
  }
1663
+ var ANCHOR_LINK_RE = /\[([^\]]*)\]\(#([^)\s]+)\)/g;
1664
+ function checkMarkdownInternalLinks(markdown) {
1665
+ if (typeof markdown !== "string" || markdown.trim() === "") {
1666
+ return { error: "markdown is required" };
1667
+ }
1668
+ const lines = markdown.replace(/\r\n/g, "\n").split("\n");
1669
+ const headings = [];
1670
+ const seen = /* @__PURE__ */ new Map();
1671
+ let inFence = false;
1672
+ let fenceMarker = "";
1673
+ for (let i = 0; i < lines.length; i++) {
1674
+ const line = lines[i];
1675
+ const fenceMatch = line.match(/^\s*(```+|~~~+)/);
1676
+ if (fenceMatch) {
1677
+ if (!inFence) {
1678
+ inFence = true;
1679
+ fenceMarker = fenceMatch[1][0];
1680
+ } else if (fenceMatch[1][0] === fenceMarker) {
1681
+ inFence = false;
1682
+ }
1683
+ continue;
1684
+ }
1685
+ if (inFence) continue;
1686
+ const headingMatch = line.match(/^(#{1,6})\s+(.+?)\s*#*\s*$/);
1687
+ if (!headingMatch) continue;
1688
+ const level = headingMatch[1].length;
1689
+ const text = stripInlineMarkdown(headingMatch[2]);
1690
+ if (text === "") continue;
1691
+ const slug = slugifyHeading(text, seen);
1692
+ headings.push({ level, text, slug, line: i + 1 });
1693
+ }
1694
+ const validSlugs = new Set(headings.map((h) => h.slug));
1695
+ const links = [];
1696
+ inFence = false;
1697
+ fenceMarker = "";
1698
+ for (let i = 0; i < lines.length; i++) {
1699
+ const line = lines[i];
1700
+ const fenceMatch = line.match(/^\s*(```+|~~~+)/);
1701
+ if (fenceMatch) {
1702
+ if (!inFence) {
1703
+ inFence = true;
1704
+ fenceMarker = fenceMatch[1][0];
1705
+ } else if (fenceMatch[1][0] === fenceMarker) {
1706
+ inFence = false;
1707
+ }
1708
+ continue;
1709
+ }
1710
+ if (inFence) continue;
1711
+ const re = new RegExp(ANCHOR_LINK_RE);
1712
+ let m;
1713
+ while ((m = re.exec(line)) !== null) {
1714
+ const target = m[2];
1715
+ links.push({ text: m[1], target, line: i + 1, valid: validSlugs.has(target) });
1716
+ }
1717
+ }
1718
+ return { headings, links, brokenLinks: links.filter((l) => !l.valid) };
1719
+ }
1662
1720
  function quoteSqlIdentifier(name, dialect) {
1663
1721
  if (dialect === "mysql") return "`" + name.replace(/`/g, "``") + "`";
1664
1722
  return '"' + name.replace(/"/g, '""') + '"';
@@ -2055,4 +2113,4 @@ function alignMarkdownTables(markdown) {
2055
2113
  return { output: outputLines.join("\n"), tables, warnings };
2056
2114
  }
2057
2115
 
2058
- export { alignMarkdownTables, analyzeCaptionSpeed, calculateMarkdownTaskListProgress, convertSubtitles, csvToJson, csvToSqlInsert, data_exports, dedupeNdjson, detectDelimiter, detectSubtitleFormat, diffEnvExample, envToExport, envToJson, findCsvDuplicateRows, 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 };
2116
+ export { alignMarkdownTables, analyzeCaptionSpeed, calculateMarkdownTaskListProgress, checkMarkdownInternalLinks, convertSubtitles, csvToJson, csvToSqlInsert, data_exports, dedupeNdjson, detectDelimiter, detectSubtitleFormat, diffEnvExample, envToExport, envToJson, findCsvDuplicateRows, 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 };
@@ -75,6 +75,7 @@ __export(units_exports, {
75
75
  formatVwValue: () => formatVwValue,
76
76
  formatWithSeparator: () => formatWithSeparator,
77
77
  gcd: () => gcd,
78
+ intersectSemverRanges: () => intersectSemverRanges,
78
79
  ipFromBinary: () => ipFromBinary,
79
80
  ipFromDecimal: () => ipFromDecimal,
80
81
  ipFromHex: () => ipFromHex,
@@ -946,6 +947,133 @@ function sortVersions(versions, order = "asc") {
946
947
  return order === "asc" ? cmp : -cmp;
947
948
  });
948
949
  }
950
+ function tightenLower(a, b) {
951
+ if (a.value === null) return b;
952
+ if (b.value === null) return a;
953
+ const cmp = compareVersionObjects(a.value, b.value);
954
+ if (cmp > 0) return a;
955
+ if (cmp < 0) return b;
956
+ return { value: a.value, inclusive: a.inclusive && b.inclusive };
957
+ }
958
+ function tightenUpper(a, b) {
959
+ if (a.value === null) return b;
960
+ if (b.value === null) return a;
961
+ const cmp = compareVersionObjects(a.value, b.value);
962
+ if (cmp < 0) return a;
963
+ if (cmp > 0) return b;
964
+ return { value: a.value, inclusive: a.inclusive && b.inclusive };
965
+ }
966
+ function isValidInterval(lower, upper) {
967
+ if (lower.value === null || upper.value === null) return true;
968
+ const cmp = compareVersionObjects(lower.value, upper.value);
969
+ if (cmp < 0) return true;
970
+ if (cmp > 0) return false;
971
+ return lower.inclusive && upper.inclusive;
972
+ }
973
+ function formatVersionBound(v) {
974
+ let s = `${v.major}.${v.minor}.${v.patch}`;
975
+ if (v.prerelease) s += `-${v.prerelease}`;
976
+ if (v.build) s += `+${v.build}`;
977
+ return s;
978
+ }
979
+ function intervalToRangeString(interval) {
980
+ const { lower, upper } = interval;
981
+ if (lower.value === null && upper.value === null) return "*";
982
+ if (lower.value !== null && upper.value !== null) {
983
+ const cmp = compareVersionObjects(lower.value, upper.value);
984
+ if (cmp === 0 && lower.inclusive && upper.inclusive) return formatVersionBound(lower.value);
985
+ }
986
+ const parts = [];
987
+ if (lower.value !== null) parts.push(`${lower.inclusive ? ">=" : ">"}${formatVersionBound(lower.value)}`);
988
+ if (upper.value !== null) parts.push(`${upper.inclusive ? "<=" : "<"}${formatVersionBound(upper.value)}`);
989
+ return parts.length ? parts.join(" ") : "*";
990
+ }
991
+ function parseSingleConstraintToInterval(range) {
992
+ if (range === "*" || range === "") {
993
+ return { lower: { value: null, inclusive: true }, upper: { value: null, inclusive: true } };
994
+ }
995
+ const caretMatch = range.match(/^\^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9._-]+))?$/);
996
+ if (caretMatch) {
997
+ const major = parseInt(caretMatch[1], 10);
998
+ const minor = parseInt(caretMatch[2], 10);
999
+ const patch = parseInt(caretMatch[3], 10);
1000
+ const pre = caretMatch[4];
1001
+ const lowerVal = { major, minor, patch, prerelease: pre, raw: range };
1002
+ let upperVal;
1003
+ if (major !== 0) upperVal = { major: major + 1, minor: 0, patch: 0, raw: "" };
1004
+ else if (minor !== 0) upperVal = { major: 0, minor: minor + 1, patch: 0, raw: "" };
1005
+ else upperVal = { major: 0, minor: 0, patch: patch + 1, raw: "" };
1006
+ return { lower: { value: lowerVal, inclusive: true }, upper: { value: upperVal, inclusive: false } };
1007
+ }
1008
+ const tildeMatch = range.match(/^~v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9._-]+))?$/);
1009
+ if (tildeMatch) {
1010
+ const major = parseInt(tildeMatch[1], 10);
1011
+ const minor = parseInt(tildeMatch[2], 10);
1012
+ const patch = parseInt(tildeMatch[3], 10);
1013
+ const pre = tildeMatch[4];
1014
+ const lowerVal = { major, minor, patch, prerelease: pre, raw: range };
1015
+ const upperVal = { major, minor: minor + 1, patch: 0, raw: "" };
1016
+ return { lower: { value: lowerVal, inclusive: true }, upper: { value: upperVal, inclusive: false } };
1017
+ }
1018
+ const opMatch = range.match(/^(>=|<=|>|<|=)v?(.+)$/);
1019
+ if (opMatch) {
1020
+ const op = opMatch[1];
1021
+ const parsed = parseSemver(opMatch[2]);
1022
+ if ("error" in parsed) return parsed;
1023
+ if (op === ">=") return { lower: { value: parsed, inclusive: true }, upper: { value: null, inclusive: true } };
1024
+ if (op === "<=") return { lower: { value: null, inclusive: true }, upper: { value: parsed, inclusive: true } };
1025
+ if (op === ">") return { lower: { value: parsed, inclusive: false }, upper: { value: null, inclusive: true } };
1026
+ if (op === "<") return { lower: { value: null, inclusive: true }, upper: { value: parsed, inclusive: false } };
1027
+ return { lower: { value: parsed, inclusive: true }, upper: { value: parsed, inclusive: true } };
1028
+ }
1029
+ const plain = parseSemver(range);
1030
+ if (!("error" in plain)) {
1031
+ return { lower: { value: plain, inclusive: true }, upper: { value: plain, inclusive: true } };
1032
+ }
1033
+ return { error: `Unsupported range: '${range}'` };
1034
+ }
1035
+ function rangeToIntervals(range) {
1036
+ const trimmed = range.trim();
1037
+ if (trimmed === "") {
1038
+ return [{ lower: { value: null, inclusive: true }, upper: { value: null, inclusive: true } }];
1039
+ }
1040
+ const orParts = trimmed.split("||").map((s) => s.trim());
1041
+ const intervals = [];
1042
+ for (const orPart of orParts) {
1043
+ const andTokens = orPart.split(/\s+/).filter(Boolean);
1044
+ let combined = {
1045
+ lower: { value: null, inclusive: true },
1046
+ upper: { value: null, inclusive: true }
1047
+ };
1048
+ for (const token of andTokens) {
1049
+ const parsed = parseSingleConstraintToInterval(token);
1050
+ if ("error" in parsed) return parsed;
1051
+ combined = {
1052
+ lower: tightenLower(combined.lower, parsed.lower),
1053
+ upper: tightenUpper(combined.upper, parsed.upper)
1054
+ };
1055
+ }
1056
+ intervals.push(combined);
1057
+ }
1058
+ return intervals;
1059
+ }
1060
+ function intersectSemverRanges(rangeA, rangeB) {
1061
+ const intervalsA = rangeToIntervals(rangeA);
1062
+ if (!Array.isArray(intervalsA)) return intervalsA;
1063
+ const intervalsB = rangeToIntervals(rangeB);
1064
+ if (!Array.isArray(intervalsB)) return intervalsB;
1065
+ const results = [];
1066
+ for (const a of intervalsA) {
1067
+ for (const b of intervalsB) {
1068
+ const lower = tightenLower(a.lower, b.lower);
1069
+ const upper = tightenUpper(a.upper, b.upper);
1070
+ if (isValidInterval(lower, upper)) results.push({ lower, upper });
1071
+ }
1072
+ }
1073
+ if (results.length === 0) return { overlaps: false, intersection: null };
1074
+ const formatted = Array.from(new Set(results.map(intervalToRangeString)));
1075
+ return { overlaps: true, intersection: formatted.join(" || ") };
1076
+ }
949
1077
  var CARD_NETWORK_RULES = [
950
1078
  { name: "American Express", lengths: [15], test: (d) => /^3[47]/.test(d) },
951
1079
  { name: "Diners Club", lengths: [14], test: (d) => /^3(?:0[0-5]|[68])/.test(d) },
@@ -2986,4 +3114,4 @@ function calculateSalesCommission(input) {
2986
3114
  };
2987
3115
  }
2988
3116
 
2989
- export { BASE_LABELS, BASE_PREFIXES, BYTE_UNITS, COMMON_CURRENCIES, COMMON_LOCALES, COMMON_PERMISSIONS, COMMON_RATIOS, COMMON_SIZES, COMMON_TAX_RATES, COMMON_TIP_PERCENTAGES, COMMON_VIEWPORTS, GPA_GRADE_POINTS, USD_DENOMINATIONS, applySuccessiveDiscounts, autoFormat, bumpVersion, calcAspectRatio, calcSubnet, calculateAnnuityPayout, calculateBlendedLoanRate, calculateBreakEven, calculateCashBreakdown, calculateCashRounding, calculateCdMaturity, calculateChange, calculateCompoundInterest, calculateCreditCardMinimumPayment, calculateCreditUtilization, calculateDebtToIncomeRatio, calculateDepreciationSchedule, calculateDiscount, calculateEmi, calculateExtraPaymentPayoff, calculateFreelancerRate, calculateGpa, calculateLoan, calculateLoanPrepaymentPenalty, calculateLoanRefinance, calculateMarginMarkup, calculateMortgagePoints, calculateMovingAverages, calculatePaybackPeriod, calculatePercentageChange, calculateRealRateOfReturn, calculateRequiredBandwidth, calculateRoi, calculateRuleOf72, calculateSalesCommission, calculateSavingsGoal, calculateSimpleInterest, calculateTax, calculateTaxEquivalentYield, calculateTimeValue, calculateTipSplit, calculateTransferTime, calculateVideoBitrate, compareSemver, compareUnitPrices, convert, convertAprApy, convertBytes, convertIp, coverBox, decimalToIp, decimalToIpCidr, describePermissions, fitIntoBox, formatNumber, formatValue, formatVwValue, formatWithSeparator, gcd, ipFromBinary, ipFromDecimal, ipFromHex, ipToBinary, ipToDecimal, ipToDecimalCidr, ipToHex, ipToOctal, isValid, isValidCidr, isValidIp, isValidIpv4, marginToMarkup, markupToMargin, octalToPermissions, parseFileSize, parseInput, parseNumberString, parseSemver, permissionsToChmod, permissionsToOctal, permissionsToSymbolic, planDebtPayoff, ptToPx, pxToAll, pxToViewport, remToPx, satisfiesRange, scaleByHeight, scaleByWidth, sortVersions, splitSubnet, symbolicToPermissions, units_exports, validateBarcode, validateCardNumber, validateIban, validateIsbn, validateIsin, validateVin, viewportToPx };
3117
+ export { BASE_LABELS, BASE_PREFIXES, BYTE_UNITS, COMMON_CURRENCIES, COMMON_LOCALES, COMMON_PERMISSIONS, COMMON_RATIOS, COMMON_SIZES, COMMON_TAX_RATES, COMMON_TIP_PERCENTAGES, COMMON_VIEWPORTS, GPA_GRADE_POINTS, USD_DENOMINATIONS, applySuccessiveDiscounts, autoFormat, bumpVersion, calcAspectRatio, calcSubnet, calculateAnnuityPayout, calculateBlendedLoanRate, calculateBreakEven, calculateCashBreakdown, calculateCashRounding, calculateCdMaturity, calculateChange, calculateCompoundInterest, calculateCreditCardMinimumPayment, calculateCreditUtilization, calculateDebtToIncomeRatio, calculateDepreciationSchedule, calculateDiscount, calculateEmi, calculateExtraPaymentPayoff, calculateFreelancerRate, calculateGpa, calculateLoan, calculateLoanPrepaymentPenalty, calculateLoanRefinance, calculateMarginMarkup, calculateMortgagePoints, calculateMovingAverages, calculatePaybackPeriod, calculatePercentageChange, calculateRealRateOfReturn, calculateRequiredBandwidth, calculateRoi, calculateRuleOf72, calculateSalesCommission, calculateSavingsGoal, calculateSimpleInterest, calculateTax, calculateTaxEquivalentYield, calculateTimeValue, calculateTipSplit, calculateTransferTime, calculateVideoBitrate, compareSemver, compareUnitPrices, convert, convertAprApy, convertBytes, convertIp, coverBox, decimalToIp, decimalToIpCidr, describePermissions, fitIntoBox, formatNumber, formatValue, formatVwValue, formatWithSeparator, gcd, intersectSemverRanges, ipFromBinary, ipFromDecimal, ipFromHex, ipToBinary, ipToDecimal, ipToDecimalCidr, ipToHex, ipToOctal, isValid, isValidCidr, isValidIp, isValidIpv4, marginToMarkup, markupToMargin, octalToPermissions, parseFileSize, parseInput, parseNumberString, parseSemver, permissionsToChmod, permissionsToOctal, permissionsToSymbolic, planDebtPayoff, ptToPx, pxToAll, pxToViewport, remToPx, satisfiesRange, scaleByHeight, scaleByWidth, sortVersions, splitSubnet, symbolicToPermissions, units_exports, validateBarcode, validateCardNumber, validateIban, validateIsbn, validateIsin, validateVin, viewportToPx };
@@ -22,6 +22,7 @@
22
22
  * - yaml-anchor-resolver: resolveYamlAnchors
23
23
  * - markdown-table-aligner: alignMarkdownTables
24
24
  * - markdown-heading-hierarchy-validator: validateMarkdownHeadingHierarchy
25
+ * - markdown-internal-link-checker: checkMarkdownInternalLinks
25
26
  */
26
27
  interface ValidationResult {
27
28
  valid: boolean;
@@ -409,6 +410,32 @@ interface HeadingHierarchyResult {
409
410
  * not recognized, and headings inside fenced code blocks are ignored.
410
411
  */
411
412
  declare function validateMarkdownHeadingHierarchy(markdown: string): HeadingHierarchyResult;
413
+ interface MarkdownAnchorHeading {
414
+ level: number;
415
+ text: string;
416
+ slug: string;
417
+ line: number;
418
+ }
419
+ interface MarkdownAnchorLink {
420
+ text: string;
421
+ target: string;
422
+ line: number;
423
+ valid: boolean;
424
+ }
425
+ interface MarkdownInternalLinkCheckResult {
426
+ headings: MarkdownAnchorHeading[];
427
+ links: MarkdownAnchorLink[];
428
+ brokenLinks: MarkdownAnchorLink[];
429
+ }
430
+ /**
431
+ * Scan a Markdown document's ATX headings, compute the GitHub-style anchor
432
+ * slug for each, and check every `[text](#slug)` internal link against
433
+ * them, flagging links that point at a heading that doesn't exist (or was
434
+ * renamed).
435
+ */
436
+ declare function checkMarkdownInternalLinks(markdown: string): MarkdownInternalLinkCheckResult | {
437
+ error: string;
438
+ };
412
439
  interface CsvToSqlOptions {
413
440
  tableName?: string;
414
441
  dialect?: 'ansi' | 'mysql';
@@ -593,6 +620,9 @@ type data_HeadingHierarchyResult = HeadingHierarchyResult;
593
620
  type data_HeadingIssue = HeadingIssue;
594
621
  type data_HeadingIssueType = HeadingIssueType;
595
622
  type data_IniSection = IniSection;
623
+ type data_MarkdownAnchorHeading = MarkdownAnchorHeading;
624
+ type data_MarkdownAnchorLink = MarkdownAnchorLink;
625
+ type data_MarkdownInternalLinkCheckResult = MarkdownInternalLinkCheckResult;
596
626
  type data_MarkdownTableAlignResult = MarkdownTableAlignResult;
597
627
  type data_MarkdownTableColumnAlignment = MarkdownTableColumnAlignment;
598
628
  type data_MarkdownTableInfo = MarkdownTableInfo;
@@ -620,6 +650,7 @@ type data_YamlAnchorResolveResult = YamlAnchorResolveResult;
620
650
  declare const data_alignMarkdownTables: typeof alignMarkdownTables;
621
651
  declare const data_analyzeCaptionSpeed: typeof analyzeCaptionSpeed;
622
652
  declare const data_calculateMarkdownTaskListProgress: typeof calculateMarkdownTaskListProgress;
653
+ declare const data_checkMarkdownInternalLinks: typeof checkMarkdownInternalLinks;
623
654
  declare const data_convertSubtitles: typeof convertSubtitles;
624
655
  declare const data_csvToJson: typeof csvToJson;
625
656
  declare const data_csvToSqlInsert: typeof csvToSqlInsert;
@@ -673,7 +704,7 @@ declare const data_validateXml: typeof validateXml;
673
704
  declare const data_validateYaml: typeof validateYaml;
674
705
  declare const data_xmlToJson: typeof xmlToJson;
675
706
  declare namespace data {
676
- export { type data_CaptionSpeedCue as CaptionSpeedCue, type data_CaptionSpeedResult as CaptionSpeedResult, type data_ConvertedSubtitles as ConvertedSubtitles, type data_CsvColumnType as CsvColumnType, type data_CsvColumnTypeInfo as CsvColumnTypeInfo, type data_CsvColumnTypeOptions as CsvColumnTypeOptions, type data_CsvColumnTypeResult as CsvColumnTypeResult, type data_CsvDuplicateGroup as CsvDuplicateGroup, type data_CsvDuplicateOptions as CsvDuplicateOptions, type data_CsvDuplicateResult as CsvDuplicateResult, type data_CsvParseResult as CsvParseResult, type data_CsvToSqlOptions as CsvToSqlOptions, type data_CsvToSqlResult as CsvToSqlResult, type data_EnvDiffError as EnvDiffError, type data_EnvDiffResult as EnvDiffResult, type data_EnvEntry as EnvEntry, type data_EnvParseResult as EnvParseResult, type data_FrontMatterError as FrontMatterError, type data_FrontMatterResult as FrontMatterResult, type data_HeadingEntry as HeadingEntry, type data_HeadingHierarchyResult as HeadingHierarchyResult, type data_HeadingIssue as HeadingIssue, type data_HeadingIssueType as HeadingIssueType, type data_IniSection as IniSection, type data_MarkdownTableAlignResult as MarkdownTableAlignResult, type data_MarkdownTableColumnAlignment as MarkdownTableColumnAlignment, type data_MarkdownTableInfo as MarkdownTableInfo, type data_MarkdownTaskListItem as MarkdownTaskListItem, type data_MarkdownTaskListProgressResult as MarkdownTaskListProgressResult, type data_MarkdownTaskListSectionSummary as MarkdownTaskListSectionSummary, type data_MarkdownTocEntry as MarkdownTocEntry, type data_MarkdownTocOptions as MarkdownTocOptions, type data_MarkdownTocResult as MarkdownTocResult, type data_NdjsonDedupeResult as NdjsonDedupeResult, type data_NdjsonLineResult as NdjsonLineResult, type data_NdjsonValidateResult as NdjsonValidateResult, type data_ParseOptions as ParseOptions, type data_ParsedIni as ParsedIni, type data_ParsedSubtitles as ParsedSubtitles, type data_SubtitleCue as SubtitleCue, type data_SubtitleFormat as SubtitleFormat, type data_TomlFormatResult as TomlFormatResult, type data_ValidationResult as ValidationResult, type data_XmlFormatResult as XmlFormatResult, type data_XmlToJsonOptions as XmlToJsonOptions, type data_YamlAnchorInfo as YamlAnchorInfo, type data_YamlAnchorResolveError as YamlAnchorResolveError, type data_YamlAnchorResolveResult as YamlAnchorResolveResult, data_alignMarkdownTables as alignMarkdownTables, data_analyzeCaptionSpeed as analyzeCaptionSpeed, data_calculateMarkdownTaskListProgress as calculateMarkdownTaskListProgress, data_convertSubtitles as convertSubtitles, data_csvToJson as csvToJson, data_csvToSqlInsert as csvToSqlInsert, data_dedupeNdjson as dedupeNdjson, data_detectDelimiter as detectDelimiter, data_detectSubtitleFormat as detectSubtitleFormat, data_diffEnvExample as diffEnvExample, data_envToExport as envToExport, data_envToJson as envToJson, data_findCsvDuplicateRows as findCsvDuplicateRows, data_formatNdjson as formatNdjson, data_formatSubtitleTimestamp as formatSubtitleTimestamp, data_formatToml as formatToml, data_formatXml as formatXml, data_generateMarkdownToc as generateMarkdownToc, data_getSection as getSection, data_getSectionNames as getSectionNames, data_getTomlStats as getTomlStats, data_getXmlStats as getXmlStats, data_getYamlStats as getYamlStats, data_inferCsvColumnTypes as inferCsvColumnTypes, data_iniToJson as iniToJson, data_jsonArrayToNdjson as jsonArrayToNdjson, data_jsonToIni as jsonToIni, data_jsonToToml as jsonToToml, data_jsonToXml as jsonToXml, data_minifyNdjson as minifyNdjson, data_minifyToml as minifyToml, data_minifyXml as minifyXml, data_ndjsonToCsv as ndjsonToCsv, data_ndjsonToJsonArray as ndjsonToJsonArray, data_parseCsv as parseCsv, data_parseEnv as parseEnv, data_parseFrontMatter as parseFrontMatter, data_parseIni as parseIni, data_parseSubtitleTimestamp as parseSubtitleTimestamp, data_parseSubtitles as parseSubtitles, data_parseXmlToObject as parseXmlToObject, data_resolveYamlAnchors as resolveYamlAnchors, data_serializeSubtitles as serializeSubtitles, data_shiftSubtitles as shiftSubtitles, data_stringifyIni as stringifyIni, data_toCsvString as toCsvString, data_tomlToJson as tomlToJson, data_validateEnvKey as validateEnvKey, data_validateIni as validateIni, data_validateMarkdownHeadingHierarchy as validateMarkdownHeadingHierarchy, data_validateNdjson as validateNdjson, data_validateToml as validateToml, data_validateXml as validateXml, data_validateYaml as validateYaml, data_xmlToJson as xmlToJson };
707
+ export { type data_CaptionSpeedCue as CaptionSpeedCue, type data_CaptionSpeedResult as CaptionSpeedResult, type data_ConvertedSubtitles as ConvertedSubtitles, type data_CsvColumnType as CsvColumnType, type data_CsvColumnTypeInfo as CsvColumnTypeInfo, type data_CsvColumnTypeOptions as CsvColumnTypeOptions, type data_CsvColumnTypeResult as CsvColumnTypeResult, type data_CsvDuplicateGroup as CsvDuplicateGroup, type data_CsvDuplicateOptions as CsvDuplicateOptions, type data_CsvDuplicateResult as CsvDuplicateResult, type data_CsvParseResult as CsvParseResult, type data_CsvToSqlOptions as CsvToSqlOptions, type data_CsvToSqlResult as CsvToSqlResult, type data_EnvDiffError as EnvDiffError, type data_EnvDiffResult as EnvDiffResult, type data_EnvEntry as EnvEntry, type data_EnvParseResult as EnvParseResult, type data_FrontMatterError as FrontMatterError, type data_FrontMatterResult as FrontMatterResult, type data_HeadingEntry as HeadingEntry, type data_HeadingHierarchyResult as HeadingHierarchyResult, type data_HeadingIssue as HeadingIssue, type data_HeadingIssueType as HeadingIssueType, type data_IniSection as IniSection, type data_MarkdownAnchorHeading as MarkdownAnchorHeading, type data_MarkdownAnchorLink as MarkdownAnchorLink, type data_MarkdownInternalLinkCheckResult as MarkdownInternalLinkCheckResult, type data_MarkdownTableAlignResult as MarkdownTableAlignResult, type data_MarkdownTableColumnAlignment as MarkdownTableColumnAlignment, type data_MarkdownTableInfo as MarkdownTableInfo, type data_MarkdownTaskListItem as MarkdownTaskListItem, type data_MarkdownTaskListProgressResult as MarkdownTaskListProgressResult, type data_MarkdownTaskListSectionSummary as MarkdownTaskListSectionSummary, type data_MarkdownTocEntry as MarkdownTocEntry, type data_MarkdownTocOptions as MarkdownTocOptions, type data_MarkdownTocResult as MarkdownTocResult, type data_NdjsonDedupeResult as NdjsonDedupeResult, type data_NdjsonLineResult as NdjsonLineResult, type data_NdjsonValidateResult as NdjsonValidateResult, type data_ParseOptions as ParseOptions, type data_ParsedIni as ParsedIni, type data_ParsedSubtitles as ParsedSubtitles, type data_SubtitleCue as SubtitleCue, type data_SubtitleFormat as SubtitleFormat, type data_TomlFormatResult as TomlFormatResult, type data_ValidationResult as ValidationResult, type data_XmlFormatResult as XmlFormatResult, type data_XmlToJsonOptions as XmlToJsonOptions, type data_YamlAnchorInfo as YamlAnchorInfo, type data_YamlAnchorResolveError as YamlAnchorResolveError, type data_YamlAnchorResolveResult as YamlAnchorResolveResult, data_alignMarkdownTables as alignMarkdownTables, data_analyzeCaptionSpeed as analyzeCaptionSpeed, data_calculateMarkdownTaskListProgress as calculateMarkdownTaskListProgress, data_checkMarkdownInternalLinks as checkMarkdownInternalLinks, data_convertSubtitles as convertSubtitles, data_csvToJson as csvToJson, data_csvToSqlInsert as csvToSqlInsert, data_dedupeNdjson as dedupeNdjson, data_detectDelimiter as detectDelimiter, data_detectSubtitleFormat as detectSubtitleFormat, data_diffEnvExample as diffEnvExample, data_envToExport as envToExport, data_envToJson as envToJson, data_findCsvDuplicateRows as findCsvDuplicateRows, data_formatNdjson as formatNdjson, data_formatSubtitleTimestamp as formatSubtitleTimestamp, data_formatToml as formatToml, data_formatXml as formatXml, data_generateMarkdownToc as generateMarkdownToc, data_getSection as getSection, data_getSectionNames as getSectionNames, data_getTomlStats as getTomlStats, data_getXmlStats as getXmlStats, data_getYamlStats as getYamlStats, data_inferCsvColumnTypes as inferCsvColumnTypes, data_iniToJson as iniToJson, data_jsonArrayToNdjson as jsonArrayToNdjson, data_jsonToIni as jsonToIni, data_jsonToToml as jsonToToml, data_jsonToXml as jsonToXml, data_minifyNdjson as minifyNdjson, data_minifyToml as minifyToml, data_minifyXml as minifyXml, data_ndjsonToCsv as ndjsonToCsv, data_ndjsonToJsonArray as ndjsonToJsonArray, data_parseCsv as parseCsv, data_parseEnv as parseEnv, data_parseFrontMatter as parseFrontMatter, data_parseIni as parseIni, data_parseSubtitleTimestamp as parseSubtitleTimestamp, data_parseSubtitles as parseSubtitles, data_parseXmlToObject as parseXmlToObject, data_resolveYamlAnchors as resolveYamlAnchors, data_serializeSubtitles as serializeSubtitles, data_shiftSubtitles as shiftSubtitles, data_stringifyIni as stringifyIni, data_toCsvString as toCsvString, data_tomlToJson as tomlToJson, data_validateEnvKey as validateEnvKey, data_validateIni as validateIni, data_validateMarkdownHeadingHierarchy as validateMarkdownHeadingHierarchy, data_validateNdjson as validateNdjson, data_validateToml as validateToml, data_validateXml as validateXml, data_validateYaml as validateYaml, data_xmlToJson as xmlToJson };
677
708
  }
678
709
 
679
- export { csvToJson as $, type MarkdownTocOptions as A, type MarkdownTocResult as B, type CaptionSpeedCue as C, type NdjsonLineResult as D, type EnvDiffError as E, type FrontMatterError as F, type NdjsonValidateResult as G, type HeadingEntry as H, type IniSection as I, type ParsedIni as J, type ParsedSubtitles as K, type SubtitleFormat as L, type MarkdownTableAlignResult as M, type NdjsonDedupeResult as N, type XmlToJsonOptions as O, type ParseOptions as P, type YamlAnchorResolveError as Q, type YamlAnchorResolveResult as R, type SubtitleCue as S, type TomlFormatResult as T, alignMarkdownTables as U, type ValidationResult as V, analyzeCaptionSpeed as W, type XmlFormatResult as X, type YamlAnchorInfo as Y, calculateMarkdownTaskListProgress as Z, convertSubtitles as _, type CaptionSpeedResult as a, csvToSqlInsert as a0, dedupeNdjson as a1, detectDelimiter as a2, detectSubtitleFormat as a3, diffEnvExample as a4, envToExport as a5, envToJson as a6, findCsvDuplicateRows as a7, formatNdjson as a8, formatSubtitleTimestamp as a9, resolveYamlAnchors as aA, serializeSubtitles as aB, shiftSubtitles as aC, stringifyIni as aD, toCsvString as aE, tomlToJson as aF, validateEnvKey as aG, validateIni as aH, validateMarkdownHeadingHierarchy as aI, validateNdjson as aJ, validateToml as aK, validateXml as aL, validateYaml as aM, xmlToJson as aN, formatToml as aa, formatXml as ab, generateMarkdownToc as ac, getSection as ad, getSectionNames as ae, getTomlStats as af, getXmlStats as ag, getYamlStats as ah, inferCsvColumnTypes as ai, iniToJson as aj, jsonArrayToNdjson as ak, jsonToIni as al, jsonToToml as am, jsonToXml as an, minifyNdjson as ao, minifyToml as ap, minifyXml as aq, ndjsonToCsv as ar, ndjsonToJsonArray as as, parseCsv as at, parseEnv as au, parseFrontMatter as av, parseIni as aw, parseSubtitleTimestamp as ax, parseSubtitles as ay, parseXmlToObject as az, type ConvertedSubtitles as b, type CsvColumnType as c, data as d, type CsvColumnTypeInfo as e, type CsvColumnTypeOptions as f, type CsvColumnTypeResult as g, type CsvDuplicateGroup as h, type CsvDuplicateOptions as i, type CsvDuplicateResult as j, type CsvParseResult as k, type CsvToSqlOptions as l, type CsvToSqlResult as m, type EnvDiffResult as n, type EnvEntry as o, type EnvParseResult as p, type FrontMatterResult as q, type HeadingHierarchyResult as r, type HeadingIssue as s, type HeadingIssueType as t, type MarkdownTableColumnAlignment as u, type MarkdownTableInfo as v, type MarkdownTaskListItem as w, type MarkdownTaskListProgressResult as x, type MarkdownTaskListSectionSummary as y, type MarkdownTocEntry as z };
710
+ export { analyzeCaptionSpeed as $, type MarkdownTaskListProgressResult as A, type MarkdownTaskListSectionSummary as B, type CaptionSpeedCue as C, type MarkdownTocEntry as D, type EnvDiffError as E, type FrontMatterError as F, type MarkdownTocOptions as G, type HeadingEntry as H, type IniSection as I, type MarkdownTocResult as J, type NdjsonLineResult as K, type NdjsonValidateResult as L, type MarkdownAnchorHeading as M, type NdjsonDedupeResult as N, type ParsedIni as O, type ParseOptions as P, type ParsedSubtitles as Q, type SubtitleFormat as R, type SubtitleCue as S, type TomlFormatResult as T, type XmlToJsonOptions as U, type ValidationResult as V, type YamlAnchorResolveError as W, type XmlFormatResult as X, type YamlAnchorInfo as Y, type YamlAnchorResolveResult as Z, alignMarkdownTables as _, type CaptionSpeedResult as a, calculateMarkdownTaskListProgress as a0, checkMarkdownInternalLinks as a1, convertSubtitles as a2, csvToJson as a3, csvToSqlInsert as a4, dedupeNdjson as a5, detectDelimiter as a6, detectSubtitleFormat as a7, diffEnvExample as a8, envToExport as a9, parseIni as aA, parseSubtitleTimestamp as aB, parseSubtitles as aC, parseXmlToObject as aD, resolveYamlAnchors as aE, serializeSubtitles as aF, shiftSubtitles as aG, stringifyIni as aH, toCsvString as aI, tomlToJson as aJ, validateEnvKey as aK, validateIni as aL, validateMarkdownHeadingHierarchy as aM, validateNdjson as aN, validateToml as aO, validateXml as aP, validateYaml as aQ, xmlToJson as aR, envToJson as aa, findCsvDuplicateRows as ab, formatNdjson as ac, formatSubtitleTimestamp as ad, formatToml as ae, formatXml as af, generateMarkdownToc as ag, getSection as ah, getSectionNames as ai, getTomlStats as aj, getXmlStats as ak, getYamlStats as al, inferCsvColumnTypes as am, iniToJson as an, jsonArrayToNdjson as ao, jsonToIni as ap, jsonToToml as aq, jsonToXml as ar, minifyNdjson as as, minifyToml as at, minifyXml as au, ndjsonToCsv as av, ndjsonToJsonArray as aw, parseCsv as ax, parseEnv as ay, parseFrontMatter as az, type ConvertedSubtitles as b, type CsvColumnType as c, data as d, type CsvColumnTypeInfo as e, type CsvColumnTypeOptions as f, type CsvColumnTypeResult as g, type CsvDuplicateGroup as h, type CsvDuplicateOptions as i, type CsvDuplicateResult as j, type CsvParseResult as k, type CsvToSqlOptions as l, type CsvToSqlResult as m, type EnvDiffResult as n, type EnvEntry as o, type EnvParseResult as p, type FrontMatterResult as q, type HeadingHierarchyResult as r, type HeadingIssue as s, type HeadingIssueType as t, type MarkdownAnchorLink as u, type MarkdownInternalLinkCheckResult as v, type MarkdownTableAlignResult as w, type MarkdownTableColumnAlignment as x, type MarkdownTableInfo as y, type MarkdownTaskListItem as z };
@@ -22,6 +22,7 @@
22
22
  * - yaml-anchor-resolver: resolveYamlAnchors
23
23
  * - markdown-table-aligner: alignMarkdownTables
24
24
  * - markdown-heading-hierarchy-validator: validateMarkdownHeadingHierarchy
25
+ * - markdown-internal-link-checker: checkMarkdownInternalLinks
25
26
  */
26
27
  interface ValidationResult {
27
28
  valid: boolean;
@@ -409,6 +410,32 @@ interface HeadingHierarchyResult {
409
410
  * not recognized, and headings inside fenced code blocks are ignored.
410
411
  */
411
412
  declare function validateMarkdownHeadingHierarchy(markdown: string): HeadingHierarchyResult;
413
+ interface MarkdownAnchorHeading {
414
+ level: number;
415
+ text: string;
416
+ slug: string;
417
+ line: number;
418
+ }
419
+ interface MarkdownAnchorLink {
420
+ text: string;
421
+ target: string;
422
+ line: number;
423
+ valid: boolean;
424
+ }
425
+ interface MarkdownInternalLinkCheckResult {
426
+ headings: MarkdownAnchorHeading[];
427
+ links: MarkdownAnchorLink[];
428
+ brokenLinks: MarkdownAnchorLink[];
429
+ }
430
+ /**
431
+ * Scan a Markdown document's ATX headings, compute the GitHub-style anchor
432
+ * slug for each, and check every `[text](#slug)` internal link against
433
+ * them, flagging links that point at a heading that doesn't exist (or was
434
+ * renamed).
435
+ */
436
+ declare function checkMarkdownInternalLinks(markdown: string): MarkdownInternalLinkCheckResult | {
437
+ error: string;
438
+ };
412
439
  interface CsvToSqlOptions {
413
440
  tableName?: string;
414
441
  dialect?: 'ansi' | 'mysql';
@@ -593,6 +620,9 @@ type data_HeadingHierarchyResult = HeadingHierarchyResult;
593
620
  type data_HeadingIssue = HeadingIssue;
594
621
  type data_HeadingIssueType = HeadingIssueType;
595
622
  type data_IniSection = IniSection;
623
+ type data_MarkdownAnchorHeading = MarkdownAnchorHeading;
624
+ type data_MarkdownAnchorLink = MarkdownAnchorLink;
625
+ type data_MarkdownInternalLinkCheckResult = MarkdownInternalLinkCheckResult;
596
626
  type data_MarkdownTableAlignResult = MarkdownTableAlignResult;
597
627
  type data_MarkdownTableColumnAlignment = MarkdownTableColumnAlignment;
598
628
  type data_MarkdownTableInfo = MarkdownTableInfo;
@@ -620,6 +650,7 @@ type data_YamlAnchorResolveResult = YamlAnchorResolveResult;
620
650
  declare const data_alignMarkdownTables: typeof alignMarkdownTables;
621
651
  declare const data_analyzeCaptionSpeed: typeof analyzeCaptionSpeed;
622
652
  declare const data_calculateMarkdownTaskListProgress: typeof calculateMarkdownTaskListProgress;
653
+ declare const data_checkMarkdownInternalLinks: typeof checkMarkdownInternalLinks;
623
654
  declare const data_convertSubtitles: typeof convertSubtitles;
624
655
  declare const data_csvToJson: typeof csvToJson;
625
656
  declare const data_csvToSqlInsert: typeof csvToSqlInsert;
@@ -673,7 +704,7 @@ declare const data_validateXml: typeof validateXml;
673
704
  declare const data_validateYaml: typeof validateYaml;
674
705
  declare const data_xmlToJson: typeof xmlToJson;
675
706
  declare namespace data {
676
- export { type data_CaptionSpeedCue as CaptionSpeedCue, type data_CaptionSpeedResult as CaptionSpeedResult, type data_ConvertedSubtitles as ConvertedSubtitles, type data_CsvColumnType as CsvColumnType, type data_CsvColumnTypeInfo as CsvColumnTypeInfo, type data_CsvColumnTypeOptions as CsvColumnTypeOptions, type data_CsvColumnTypeResult as CsvColumnTypeResult, type data_CsvDuplicateGroup as CsvDuplicateGroup, type data_CsvDuplicateOptions as CsvDuplicateOptions, type data_CsvDuplicateResult as CsvDuplicateResult, type data_CsvParseResult as CsvParseResult, type data_CsvToSqlOptions as CsvToSqlOptions, type data_CsvToSqlResult as CsvToSqlResult, type data_EnvDiffError as EnvDiffError, type data_EnvDiffResult as EnvDiffResult, type data_EnvEntry as EnvEntry, type data_EnvParseResult as EnvParseResult, type data_FrontMatterError as FrontMatterError, type data_FrontMatterResult as FrontMatterResult, type data_HeadingEntry as HeadingEntry, type data_HeadingHierarchyResult as HeadingHierarchyResult, type data_HeadingIssue as HeadingIssue, type data_HeadingIssueType as HeadingIssueType, type data_IniSection as IniSection, type data_MarkdownTableAlignResult as MarkdownTableAlignResult, type data_MarkdownTableColumnAlignment as MarkdownTableColumnAlignment, type data_MarkdownTableInfo as MarkdownTableInfo, type data_MarkdownTaskListItem as MarkdownTaskListItem, type data_MarkdownTaskListProgressResult as MarkdownTaskListProgressResult, type data_MarkdownTaskListSectionSummary as MarkdownTaskListSectionSummary, type data_MarkdownTocEntry as MarkdownTocEntry, type data_MarkdownTocOptions as MarkdownTocOptions, type data_MarkdownTocResult as MarkdownTocResult, type data_NdjsonDedupeResult as NdjsonDedupeResult, type data_NdjsonLineResult as NdjsonLineResult, type data_NdjsonValidateResult as NdjsonValidateResult, type data_ParseOptions as ParseOptions, type data_ParsedIni as ParsedIni, type data_ParsedSubtitles as ParsedSubtitles, type data_SubtitleCue as SubtitleCue, type data_SubtitleFormat as SubtitleFormat, type data_TomlFormatResult as TomlFormatResult, type data_ValidationResult as ValidationResult, type data_XmlFormatResult as XmlFormatResult, type data_XmlToJsonOptions as XmlToJsonOptions, type data_YamlAnchorInfo as YamlAnchorInfo, type data_YamlAnchorResolveError as YamlAnchorResolveError, type data_YamlAnchorResolveResult as YamlAnchorResolveResult, data_alignMarkdownTables as alignMarkdownTables, data_analyzeCaptionSpeed as analyzeCaptionSpeed, data_calculateMarkdownTaskListProgress as calculateMarkdownTaskListProgress, data_convertSubtitles as convertSubtitles, data_csvToJson as csvToJson, data_csvToSqlInsert as csvToSqlInsert, data_dedupeNdjson as dedupeNdjson, data_detectDelimiter as detectDelimiter, data_detectSubtitleFormat as detectSubtitleFormat, data_diffEnvExample as diffEnvExample, data_envToExport as envToExport, data_envToJson as envToJson, data_findCsvDuplicateRows as findCsvDuplicateRows, data_formatNdjson as formatNdjson, data_formatSubtitleTimestamp as formatSubtitleTimestamp, data_formatToml as formatToml, data_formatXml as formatXml, data_generateMarkdownToc as generateMarkdownToc, data_getSection as getSection, data_getSectionNames as getSectionNames, data_getTomlStats as getTomlStats, data_getXmlStats as getXmlStats, data_getYamlStats as getYamlStats, data_inferCsvColumnTypes as inferCsvColumnTypes, data_iniToJson as iniToJson, data_jsonArrayToNdjson as jsonArrayToNdjson, data_jsonToIni as jsonToIni, data_jsonToToml as jsonToToml, data_jsonToXml as jsonToXml, data_minifyNdjson as minifyNdjson, data_minifyToml as minifyToml, data_minifyXml as minifyXml, data_ndjsonToCsv as ndjsonToCsv, data_ndjsonToJsonArray as ndjsonToJsonArray, data_parseCsv as parseCsv, data_parseEnv as parseEnv, data_parseFrontMatter as parseFrontMatter, data_parseIni as parseIni, data_parseSubtitleTimestamp as parseSubtitleTimestamp, data_parseSubtitles as parseSubtitles, data_parseXmlToObject as parseXmlToObject, data_resolveYamlAnchors as resolveYamlAnchors, data_serializeSubtitles as serializeSubtitles, data_shiftSubtitles as shiftSubtitles, data_stringifyIni as stringifyIni, data_toCsvString as toCsvString, data_tomlToJson as tomlToJson, data_validateEnvKey as validateEnvKey, data_validateIni as validateIni, data_validateMarkdownHeadingHierarchy as validateMarkdownHeadingHierarchy, data_validateNdjson as validateNdjson, data_validateToml as validateToml, data_validateXml as validateXml, data_validateYaml as validateYaml, data_xmlToJson as xmlToJson };
707
+ export { type data_CaptionSpeedCue as CaptionSpeedCue, type data_CaptionSpeedResult as CaptionSpeedResult, type data_ConvertedSubtitles as ConvertedSubtitles, type data_CsvColumnType as CsvColumnType, type data_CsvColumnTypeInfo as CsvColumnTypeInfo, type data_CsvColumnTypeOptions as CsvColumnTypeOptions, type data_CsvColumnTypeResult as CsvColumnTypeResult, type data_CsvDuplicateGroup as CsvDuplicateGroup, type data_CsvDuplicateOptions as CsvDuplicateOptions, type data_CsvDuplicateResult as CsvDuplicateResult, type data_CsvParseResult as CsvParseResult, type data_CsvToSqlOptions as CsvToSqlOptions, type data_CsvToSqlResult as CsvToSqlResult, type data_EnvDiffError as EnvDiffError, type data_EnvDiffResult as EnvDiffResult, type data_EnvEntry as EnvEntry, type data_EnvParseResult as EnvParseResult, type data_FrontMatterError as FrontMatterError, type data_FrontMatterResult as FrontMatterResult, type data_HeadingEntry as HeadingEntry, type data_HeadingHierarchyResult as HeadingHierarchyResult, type data_HeadingIssue as HeadingIssue, type data_HeadingIssueType as HeadingIssueType, type data_IniSection as IniSection, type data_MarkdownAnchorHeading as MarkdownAnchorHeading, type data_MarkdownAnchorLink as MarkdownAnchorLink, type data_MarkdownInternalLinkCheckResult as MarkdownInternalLinkCheckResult, type data_MarkdownTableAlignResult as MarkdownTableAlignResult, type data_MarkdownTableColumnAlignment as MarkdownTableColumnAlignment, type data_MarkdownTableInfo as MarkdownTableInfo, type data_MarkdownTaskListItem as MarkdownTaskListItem, type data_MarkdownTaskListProgressResult as MarkdownTaskListProgressResult, type data_MarkdownTaskListSectionSummary as MarkdownTaskListSectionSummary, type data_MarkdownTocEntry as MarkdownTocEntry, type data_MarkdownTocOptions as MarkdownTocOptions, type data_MarkdownTocResult as MarkdownTocResult, type data_NdjsonDedupeResult as NdjsonDedupeResult, type data_NdjsonLineResult as NdjsonLineResult, type data_NdjsonValidateResult as NdjsonValidateResult, type data_ParseOptions as ParseOptions, type data_ParsedIni as ParsedIni, type data_ParsedSubtitles as ParsedSubtitles, type data_SubtitleCue as SubtitleCue, type data_SubtitleFormat as SubtitleFormat, type data_TomlFormatResult as TomlFormatResult, type data_ValidationResult as ValidationResult, type data_XmlFormatResult as XmlFormatResult, type data_XmlToJsonOptions as XmlToJsonOptions, type data_YamlAnchorInfo as YamlAnchorInfo, type data_YamlAnchorResolveError as YamlAnchorResolveError, type data_YamlAnchorResolveResult as YamlAnchorResolveResult, data_alignMarkdownTables as alignMarkdownTables, data_analyzeCaptionSpeed as analyzeCaptionSpeed, data_calculateMarkdownTaskListProgress as calculateMarkdownTaskListProgress, data_checkMarkdownInternalLinks as checkMarkdownInternalLinks, data_convertSubtitles as convertSubtitles, data_csvToJson as csvToJson, data_csvToSqlInsert as csvToSqlInsert, data_dedupeNdjson as dedupeNdjson, data_detectDelimiter as detectDelimiter, data_detectSubtitleFormat as detectSubtitleFormat, data_diffEnvExample as diffEnvExample, data_envToExport as envToExport, data_envToJson as envToJson, data_findCsvDuplicateRows as findCsvDuplicateRows, data_formatNdjson as formatNdjson, data_formatSubtitleTimestamp as formatSubtitleTimestamp, data_formatToml as formatToml, data_formatXml as formatXml, data_generateMarkdownToc as generateMarkdownToc, data_getSection as getSection, data_getSectionNames as getSectionNames, data_getTomlStats as getTomlStats, data_getXmlStats as getXmlStats, data_getYamlStats as getYamlStats, data_inferCsvColumnTypes as inferCsvColumnTypes, data_iniToJson as iniToJson, data_jsonArrayToNdjson as jsonArrayToNdjson, data_jsonToIni as jsonToIni, data_jsonToToml as jsonToToml, data_jsonToXml as jsonToXml, data_minifyNdjson as minifyNdjson, data_minifyToml as minifyToml, data_minifyXml as minifyXml, data_ndjsonToCsv as ndjsonToCsv, data_ndjsonToJsonArray as ndjsonToJsonArray, data_parseCsv as parseCsv, data_parseEnv as parseEnv, data_parseFrontMatter as parseFrontMatter, data_parseIni as parseIni, data_parseSubtitleTimestamp as parseSubtitleTimestamp, data_parseSubtitles as parseSubtitles, data_parseXmlToObject as parseXmlToObject, data_resolveYamlAnchors as resolveYamlAnchors, data_serializeSubtitles as serializeSubtitles, data_shiftSubtitles as shiftSubtitles, data_stringifyIni as stringifyIni, data_toCsvString as toCsvString, data_tomlToJson as tomlToJson, data_validateEnvKey as validateEnvKey, data_validateIni as validateIni, data_validateMarkdownHeadingHierarchy as validateMarkdownHeadingHierarchy, data_validateNdjson as validateNdjson, data_validateToml as validateToml, data_validateXml as validateXml, data_validateYaml as validateYaml, data_xmlToJson as xmlToJson };
677
708
  }
678
709
 
679
- export { csvToJson as $, type MarkdownTocOptions as A, type MarkdownTocResult as B, type CaptionSpeedCue as C, type NdjsonLineResult as D, type EnvDiffError as E, type FrontMatterError as F, type NdjsonValidateResult as G, type HeadingEntry as H, type IniSection as I, type ParsedIni as J, type ParsedSubtitles as K, type SubtitleFormat as L, type MarkdownTableAlignResult as M, type NdjsonDedupeResult as N, type XmlToJsonOptions as O, type ParseOptions as P, type YamlAnchorResolveError as Q, type YamlAnchorResolveResult as R, type SubtitleCue as S, type TomlFormatResult as T, alignMarkdownTables as U, type ValidationResult as V, analyzeCaptionSpeed as W, type XmlFormatResult as X, type YamlAnchorInfo as Y, calculateMarkdownTaskListProgress as Z, convertSubtitles as _, type CaptionSpeedResult as a, csvToSqlInsert as a0, dedupeNdjson as a1, detectDelimiter as a2, detectSubtitleFormat as a3, diffEnvExample as a4, envToExport as a5, envToJson as a6, findCsvDuplicateRows as a7, formatNdjson as a8, formatSubtitleTimestamp as a9, resolveYamlAnchors as aA, serializeSubtitles as aB, shiftSubtitles as aC, stringifyIni as aD, toCsvString as aE, tomlToJson as aF, validateEnvKey as aG, validateIni as aH, validateMarkdownHeadingHierarchy as aI, validateNdjson as aJ, validateToml as aK, validateXml as aL, validateYaml as aM, xmlToJson as aN, formatToml as aa, formatXml as ab, generateMarkdownToc as ac, getSection as ad, getSectionNames as ae, getTomlStats as af, getXmlStats as ag, getYamlStats as ah, inferCsvColumnTypes as ai, iniToJson as aj, jsonArrayToNdjson as ak, jsonToIni as al, jsonToToml as am, jsonToXml as an, minifyNdjson as ao, minifyToml as ap, minifyXml as aq, ndjsonToCsv as ar, ndjsonToJsonArray as as, parseCsv as at, parseEnv as au, parseFrontMatter as av, parseIni as aw, parseSubtitleTimestamp as ax, parseSubtitles as ay, parseXmlToObject as az, type ConvertedSubtitles as b, type CsvColumnType as c, data as d, type CsvColumnTypeInfo as e, type CsvColumnTypeOptions as f, type CsvColumnTypeResult as g, type CsvDuplicateGroup as h, type CsvDuplicateOptions as i, type CsvDuplicateResult as j, type CsvParseResult as k, type CsvToSqlOptions as l, type CsvToSqlResult as m, type EnvDiffResult as n, type EnvEntry as o, type EnvParseResult as p, type FrontMatterResult as q, type HeadingHierarchyResult as r, type HeadingIssue as s, type HeadingIssueType as t, type MarkdownTableColumnAlignment as u, type MarkdownTableInfo as v, type MarkdownTaskListItem as w, type MarkdownTaskListProgressResult as x, type MarkdownTaskListSectionSummary as y, type MarkdownTocEntry as z };
710
+ export { analyzeCaptionSpeed as $, type MarkdownTaskListProgressResult as A, type MarkdownTaskListSectionSummary as B, type CaptionSpeedCue as C, type MarkdownTocEntry as D, type EnvDiffError as E, type FrontMatterError as F, type MarkdownTocOptions as G, type HeadingEntry as H, type IniSection as I, type MarkdownTocResult as J, type NdjsonLineResult as K, type NdjsonValidateResult as L, type MarkdownAnchorHeading as M, type NdjsonDedupeResult as N, type ParsedIni as O, type ParseOptions as P, type ParsedSubtitles as Q, type SubtitleFormat as R, type SubtitleCue as S, type TomlFormatResult as T, type XmlToJsonOptions as U, type ValidationResult as V, type YamlAnchorResolveError as W, type XmlFormatResult as X, type YamlAnchorInfo as Y, type YamlAnchorResolveResult as Z, alignMarkdownTables as _, type CaptionSpeedResult as a, calculateMarkdownTaskListProgress as a0, checkMarkdownInternalLinks as a1, convertSubtitles as a2, csvToJson as a3, csvToSqlInsert as a4, dedupeNdjson as a5, detectDelimiter as a6, detectSubtitleFormat as a7, diffEnvExample as a8, envToExport as a9, parseIni as aA, parseSubtitleTimestamp as aB, parseSubtitles as aC, parseXmlToObject as aD, resolveYamlAnchors as aE, serializeSubtitles as aF, shiftSubtitles as aG, stringifyIni as aH, toCsvString as aI, tomlToJson as aJ, validateEnvKey as aK, validateIni as aL, validateMarkdownHeadingHierarchy as aM, validateNdjson as aN, validateToml as aO, validateXml as aP, validateYaml as aQ, xmlToJson as aR, envToJson as aa, findCsvDuplicateRows as ab, formatNdjson as ac, formatSubtitleTimestamp as ad, formatToml as ae, formatXml as af, generateMarkdownToc as ag, getSection as ah, getSectionNames as ai, getTomlStats as aj, getXmlStats as ak, getYamlStats as al, inferCsvColumnTypes as am, iniToJson as an, jsonArrayToNdjson as ao, jsonToIni as ap, jsonToToml as aq, jsonToXml as ar, minifyNdjson as as, minifyToml as at, minifyXml as au, ndjsonToCsv as av, ndjsonToJsonArray as aw, parseCsv as ax, parseEnv as ay, parseFrontMatter as az, type ConvertedSubtitles as b, type CsvColumnType as c, data as d, type CsvColumnTypeInfo as e, type CsvColumnTypeOptions as f, type CsvColumnTypeResult as g, type CsvDuplicateGroup as h, type CsvDuplicateOptions as i, type CsvDuplicateResult as j, type CsvParseResult as k, type CsvToSqlOptions as l, type CsvToSqlResult as m, type EnvDiffResult as n, type EnvEntry as o, type EnvParseResult as p, type FrontMatterResult as q, type HeadingHierarchyResult as r, type HeadingIssue as s, type HeadingIssueType as t, type MarkdownAnchorLink as u, type MarkdownInternalLinkCheckResult as v, type MarkdownTableAlignResult as w, type MarkdownTableColumnAlignment as x, type MarkdownTableInfo as y, type MarkdownTaskListItem as z };