@utilix-tech/sdk 0.67.0 → 0.69.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 +8 -0
- package/README.md +23 -3
- package/dist/{chunk-TTQ2FNUG.js → chunk-ACGCCOCK.js} +74 -1
- package/dist/{chunk-XCJJOWTK.js → chunk-DAD2ZOTJ.js} +121 -1
- package/dist/{code-Cg9mE6b0.d.cts → code-CoeD4Fmq.d.cts} +87 -2
- package/dist/{code-Cg9mE6b0.d.ts → code-CoeD4Fmq.d.ts} +87 -2
- package/dist/index.cjs +193 -0
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/{network-EHkPJFoe.d.cts → network-BmqYmfqY.d.cts} +46 -2
- package/dist/{network-EHkPJFoe.d.ts → network-BmqYmfqY.d.ts} +46 -2
- package/dist/tools/code.cjs +120 -0
- package/dist/tools/code.d.cts +1 -1
- package/dist/tools/code.d.ts +1 -1
- package/dist/tools/code.js +1 -1
- package/dist/tools/network.cjs +73 -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/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
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.69.0
|
|
6
|
+
- Add `parseCommitTrailers` (git-commit-trailer-parser): parse a commit message's trailer block (Co-authored-by, Signed-off-by, Fixes, Reviewed-by, etc.) per git's RFC 822-style trailer convention, returning each trailer's key and value plus the body with the trailer block removed.
|
|
7
|
+
- Add `extractMarkdownFootnotes` (markdown-footnote-extractor): extract every Markdown-Extra-style footnote reference and definition from a document, flagging references with no matching definition and definitions that are never referenced.
|
|
8
|
+
|
|
9
|
+
## 0.68.0
|
|
10
|
+
- Add `buildRobotsMetaTag`, `parseRobotsMetaTag` (robots-meta-tag-builder): build a `<meta name="robots" content="...">` tag from the same directive vocabulary as X-Robots-Tag, optionally scoped to a crawler via the name attribute, or parse an existing tag into the same shape.
|
|
11
|
+
- Add `extractSvgSpriteSymbols` (svg-sprite-symbol-extractor): parse an SVG sprite sheet's `<symbol>` definitions and list each one's id, viewBox, width, and height, alongside a ready-to-paste `<use href="#id"></use>` usage snippet.
|
|
12
|
+
|
|
5
13
|
## 0.67.0
|
|
6
14
|
- Add `analyzeRegexGroups` (regex-groups): parse a regex pattern's capture groups (numbered and named) and backreferences, flagging any backreference pointing at a group that doesn't exist or hasn't finished being defined yet at that point in the pattern.
|
|
7
15
|
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @utilix-tech/sdk
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**688 developer utility functions for Node.js: runs locally, no API key required.**
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/@utilix-tech/sdk)
|
|
6
6
|
[](https://www.npmjs.com/package/@utilix-tech/sdk)
|
|
@@ -676,6 +676,11 @@ parseMultipartFormData('--X\r\nContent-Disposition: form-data; name="a"\r\n\r\nh
|
|
|
676
676
|
// Extract the boundary parameter from a Content-Type header value
|
|
677
677
|
extractMultipartBoundary("multipart/form-data; boundary=----WebKitFormBoundaryABC123");
|
|
678
678
|
// "----WebKitFormBoundaryABC123"
|
|
679
|
+
|
|
680
|
+
// Build a <meta name="robots" content="..."> tag, the same directive vocabulary as X-Robots-Tag
|
|
681
|
+
import { buildRobotsMetaTag, parseRobotsMetaTag } from "@utilix-tech/sdk/network";
|
|
682
|
+
buildRobotsMetaTag({ flags: ["noindex", "nofollow"], name: "googlebot" });
|
|
683
|
+
// { content: "noindex, nofollow", name: "googlebot", tag: '<meta name="googlebot" content="noindex, nofollow">', directives: [...], notes: [...], warnings: [] }
|
|
679
684
|
```
|
|
680
685
|
|
|
681
686
|
---
|
|
@@ -786,6 +791,21 @@ validatePackageExports(JSON.stringify({ exports: { import: "./index.mjs", requir
|
|
|
786
791
|
// Classify each package.json dependency's version range and flag wildcards, "latest", git/URL/file deps, and conflicting duplicates
|
|
787
792
|
auditDependencyRanges(JSON.stringify({ dependencies: { lodash: "^4.17.21", "left-pad": "*" } }));
|
|
788
793
|
// { totalDependencies: 2, dependencies: [{ name: "lodash", rangeType: "caret", issues: [] }, { name: "left-pad", rangeType: "wildcard", issues: [...] }], duplicates: [], issues: [...] }
|
|
794
|
+
|
|
795
|
+
// List an SVG sprite sheet's <symbol> definitions with id, viewBox, and a ready-to-paste <use> snippet
|
|
796
|
+
import { extractSvgSpriteSymbols } from "@utilix-tech/sdk/code";
|
|
797
|
+
extractSvgSpriteSymbols('<svg><symbol id="icon-home" viewBox="0 0 24 24"></symbol></svg>');
|
|
798
|
+
// { symbolCount: 1, symbols: [{ id: "icon-home", viewBox: "0 0 24 24", width: null, height: null, usageSnippet: '<svg><use href="#icon-home"></use></svg>' }], skippedCount: 0 }
|
|
799
|
+
|
|
800
|
+
// Parse a commit message's trailer block (Co-authored-by, Signed-off-by, Fixes, etc.) into key/value pairs plus the remaining body
|
|
801
|
+
import { parseCommitTrailers } from "@utilix-tech/sdk/code";
|
|
802
|
+
parseCommitTrailers("Fix bug\n\nSigned-off-by: A <a@example.com>");
|
|
803
|
+
// { trailers: [{ key: "Signed-off-by", value: "A <a@example.com>" }], body: "Fix bug", hasTrailers: true }
|
|
804
|
+
|
|
805
|
+
// Extract Markdown footnote references and definitions, flagging unresolved references and unused definitions
|
|
806
|
+
import { extractMarkdownFootnotes } from "@utilix-tech/sdk/code";
|
|
807
|
+
extractMarkdownFootnotes("A claim[^1].\n\n[^1]: The source.");
|
|
808
|
+
// { definitionCount: 1, referenceCount: 1, definitions: [{ label: "1", text: "The source." }], unresolvedReferences: [], unusedDefinitions: [] }
|
|
789
809
|
```
|
|
790
810
|
|
|
791
811
|
---
|
|
@@ -943,9 +963,9 @@ inspectGifFrames(new Uint8Array(gifBytes));
|
|
|
943
963
|
| `@utilix-tech/sdk/generators` | UUID v4/v7, ULID, passwords, strength check, entropy estimator, fake data, CSP nonce generator |
|
|
944
964
|
| `@utilix-tech/sdk/time` | Date diff, timezone convert, cron parse, relative time |
|
|
945
965
|
| `@utilix-tech/sdk/units` | Bytes, CSS px/rem, number bases, currency format, credit card/IBAN/barcode/ISBN 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 |
|
|
946
|
-
| `@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, 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 |
|
|
966
|
+
| `@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, 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 |
|
|
947
967
|
| `@utilix-tech/sdk/api` | cURL build/parse, JWT decode/sign, JWKS parse, CORS headers, CSP header |
|
|
948
|
-
| `@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 |
|
|
968
|
+
| `@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 |
|
|
949
969
|
| `@utilix-tech/sdk/color` | Hex/RGB/HSL/HSV/CMYK convert, palette generation, contrast check |
|
|
950
970
|
| `@utilix-tech/sdk/css` | CSS gradient, box-shadow, border-radius, keyframe animation generators |
|
|
951
971
|
| `@utilix-tech/sdk/misc` | SVG optimize/sanitize, file size format, Unicode inspector |
|
|
@@ -28,6 +28,7 @@ __export(network_exports, {
|
|
|
28
28
|
buildRangeHeader: () => buildRangeHeader,
|
|
29
29
|
buildReferrerPolicy: () => buildReferrerPolicy,
|
|
30
30
|
buildRetryAfterHeader: () => buildRetryAfterHeader,
|
|
31
|
+
buildRobotsMetaTag: () => buildRobotsMetaTag,
|
|
31
32
|
buildVaryHeader: () => buildVaryHeader,
|
|
32
33
|
buildXContentTypeOptionsHeader: () => buildXContentTypeOptionsHeader,
|
|
33
34
|
buildXRobotsTag: () => buildXRobotsTag,
|
|
@@ -65,6 +66,7 @@ __export(network_exports, {
|
|
|
65
66
|
parsePreferHeader: () => parsePreferHeader,
|
|
66
67
|
parsePriorityHeader: () => parsePriorityHeader,
|
|
67
68
|
parseRetryAfterHeader: () => parseRetryAfterHeader,
|
|
69
|
+
parseRobotsMetaTag: () => parseRobotsMetaTag,
|
|
68
70
|
parseUserAgent: () => parseUserAgent,
|
|
69
71
|
parseVaryHeader: () => parseVaryHeader,
|
|
70
72
|
parseXContentTypeOptionsHeader: () => parseXContentTypeOptionsHeader,
|
|
@@ -3407,5 +3409,76 @@ function lookupOpcode(opcode) {
|
|
|
3407
3409
|
}
|
|
3408
3410
|
return _describeOpcode(opcode);
|
|
3409
3411
|
}
|
|
3412
|
+
function buildRobotsMetaTag(options) {
|
|
3413
|
+
const built = buildXRobotsTag({
|
|
3414
|
+
flags: options?.flags,
|
|
3415
|
+
maxSnippet: options?.maxSnippet,
|
|
3416
|
+
maxImagePreview: options?.maxImagePreview,
|
|
3417
|
+
maxVideoPreview: options?.maxVideoPreview,
|
|
3418
|
+
unavailableAfter: options?.unavailableAfter
|
|
3419
|
+
});
|
|
3420
|
+
if ("error" in built) return built;
|
|
3421
|
+
const name = options?.name?.trim() || "robots";
|
|
3422
|
+
return {
|
|
3423
|
+
content: built.header,
|
|
3424
|
+
name,
|
|
3425
|
+
tag: `<meta name="${name}" content="${built.header}">`,
|
|
3426
|
+
directives: built.directives,
|
|
3427
|
+
notes: built.notes,
|
|
3428
|
+
warnings: built.warnings
|
|
3429
|
+
};
|
|
3430
|
+
}
|
|
3431
|
+
var _ROBOTS_META_TAG_REGEX = /<meta\b[^>]*>/i;
|
|
3432
|
+
var _ROBOTS_META_NAME_ATTR_REGEX = /\bname\s*=\s*["']([^"']*)["']/i;
|
|
3433
|
+
var _ROBOTS_META_CONTENT_ATTR_REGEX = /\bcontent\s*=\s*["']([^"']*)["']/i;
|
|
3434
|
+
function parseRobotsMetaTag(raw) {
|
|
3435
|
+
if (!raw || raw.trim() === "") return { error: "Input is empty" };
|
|
3436
|
+
const trimmed = raw.trim();
|
|
3437
|
+
let name = "robots";
|
|
3438
|
+
let content = trimmed;
|
|
3439
|
+
const tagMatch = trimmed.match(_ROBOTS_META_TAG_REGEX);
|
|
3440
|
+
if (tagMatch) {
|
|
3441
|
+
const nameMatch = tagMatch[0].match(_ROBOTS_META_NAME_ATTR_REGEX);
|
|
3442
|
+
const contentMatch = tagMatch[0].match(_ROBOTS_META_CONTENT_ATTR_REGEX);
|
|
3443
|
+
if (!contentMatch) return { error: "Meta tag is missing a content attribute" };
|
|
3444
|
+
if (nameMatch) name = nameMatch[1].trim() || "robots";
|
|
3445
|
+
content = contentMatch[1];
|
|
3446
|
+
}
|
|
3447
|
+
const tokens = content.split(",").map((t) => t.trim()).filter((t) => t !== "");
|
|
3448
|
+
if (tokens.length === 0) return { error: "No directives found" };
|
|
3449
|
+
const flags = [];
|
|
3450
|
+
let maxSnippet;
|
|
3451
|
+
let maxImagePreview;
|
|
3452
|
+
let maxVideoPreview;
|
|
3453
|
+
let unavailableAfter;
|
|
3454
|
+
for (const token of tokens) {
|
|
3455
|
+
const eq = token.indexOf(":");
|
|
3456
|
+
const directiveName = (eq === -1 ? token : token.slice(0, eq)).trim().toLowerCase();
|
|
3457
|
+
const value = eq === -1 ? "" : token.slice(eq + 1).trim();
|
|
3458
|
+
if (eq === -1) {
|
|
3459
|
+
if (!_isXRobotsTagFlag(directiveName)) return { error: `Unrecognized directive "${token}"` };
|
|
3460
|
+
flags.push(directiveName);
|
|
3461
|
+
continue;
|
|
3462
|
+
}
|
|
3463
|
+
if (directiveName === "max-snippet") {
|
|
3464
|
+
const n = Number(value);
|
|
3465
|
+
if (value === "" || !Number.isInteger(n) || n < -1) return { error: `max-snippet value "${value}" is not a valid integer >= -1` };
|
|
3466
|
+
maxSnippet = n;
|
|
3467
|
+
} else if (directiveName === "max-image-preview") {
|
|
3468
|
+
if (!["none", "standard", "large"].includes(value)) return { error: `max-image-preview value "${value}" must be one of "none", "standard", "large"` };
|
|
3469
|
+
maxImagePreview = value;
|
|
3470
|
+
} else if (directiveName === "max-video-preview") {
|
|
3471
|
+
const n = Number(value);
|
|
3472
|
+
if (value === "" || !Number.isInteger(n) || n < -1) return { error: `max-video-preview value "${value}" is not a valid integer >= -1` };
|
|
3473
|
+
maxVideoPreview = n;
|
|
3474
|
+
} else if (directiveName === "unavailable_after") {
|
|
3475
|
+
if (value === "" || Number.isNaN(Date.parse(value))) return { error: `unavailable_after value "${value}" is not a valid, parseable date` };
|
|
3476
|
+
unavailableAfter = value;
|
|
3477
|
+
} else {
|
|
3478
|
+
return { error: `Unrecognized directive "${token}"` };
|
|
3479
|
+
}
|
|
3480
|
+
}
|
|
3481
|
+
return buildRobotsMetaTag({ flags, maxSnippet, maxImagePreview, maxVideoPreview, unavailableAfter, name });
|
|
3482
|
+
}
|
|
3410
3483
|
|
|
3411
|
-
export { CLIENT_HINTS, DNS_RECORD_TYPES, HTTP_HEADERS, LINK_REL_VALUES, PERMISSIONS_POLICY_FEATURES, REFERRER_POLICY_VALUES, STATUS_CODES, X_CONTENT_TYPE_OPTIONS_HEADER, analyzeEmailHeaders, assessContentTypeRisk, buildAcceptLanguage, buildCacheControl, buildClientHints, buildContentDisposition, buildDnsQueryUrl, buildGeoUrl, buildHsts, buildLinkHeader, buildMapUrl, buildPermissionsPolicy, buildPreferHeader, buildPriorityHeader, buildRangeHeader, buildReferrerPolicy, buildRetryAfterHeader, buildVaryHeader, buildXContentTypeOptionsHeader, buildXRobotsTag, checkSetCookieHeader, countryCodeToFlag, extractMultipartBoundary, formatCoordinates, formatTtl, getByCategory, getHeader, getHeadersByCategory, getStatusByCategory, getStatusCode, isClientError, isServerError, isSuccess, isValidIp, isValidIpv4, isValidIpv6, listCloseCodes, listOpcodes, lookupCloseCode, lookupOpcode, network_exports, parseAcceptLanguage, parseClientHintHeaders, parseContentDisposition, parseContentRangeHeader, parseDnsResponse, parseGeoResponse, parseHar, parseHsts, parseIpv6Address, parseMultipartFormData, parsePermissionsPolicy, parsePreferHeader, parsePriorityHeader, parseRetryAfterHeader, parseUserAgent, parseVaryHeader, parseXContentTypeOptionsHeader, parseXRobotsTag, searchHeaders, searchStatusCodes, splitSitemap, statusCodeToText, typeNumberToLabel, validateDomain, validateHeaderName, validateHeaderValue, validateManifest, validateRobotsTxt, validateSitemap };
|
|
3484
|
+
export { CLIENT_HINTS, DNS_RECORD_TYPES, HTTP_HEADERS, LINK_REL_VALUES, PERMISSIONS_POLICY_FEATURES, REFERRER_POLICY_VALUES, STATUS_CODES, X_CONTENT_TYPE_OPTIONS_HEADER, analyzeEmailHeaders, assessContentTypeRisk, buildAcceptLanguage, buildCacheControl, buildClientHints, buildContentDisposition, buildDnsQueryUrl, buildGeoUrl, buildHsts, buildLinkHeader, buildMapUrl, buildPermissionsPolicy, buildPreferHeader, buildPriorityHeader, buildRangeHeader, buildReferrerPolicy, buildRetryAfterHeader, buildRobotsMetaTag, buildVaryHeader, buildXContentTypeOptionsHeader, buildXRobotsTag, checkSetCookieHeader, countryCodeToFlag, extractMultipartBoundary, formatCoordinates, formatTtl, getByCategory, getHeader, getHeadersByCategory, getStatusByCategory, getStatusCode, isClientError, isServerError, isSuccess, isValidIp, isValidIpv4, isValidIpv6, listCloseCodes, listOpcodes, lookupCloseCode, lookupOpcode, network_exports, parseAcceptLanguage, parseClientHintHeaders, parseContentDisposition, parseContentRangeHeader, parseDnsResponse, parseGeoResponse, parseHar, parseHsts, parseIpv6Address, parseMultipartFormData, parsePermissionsPolicy, parsePreferHeader, parsePriorityHeader, parseRetryAfterHeader, parseRobotsMetaTag, parseUserAgent, parseVaryHeader, parseXContentTypeOptionsHeader, parseXRobotsTag, searchHeaders, searchStatusCodes, splitSitemap, statusCodeToText, typeNumberToLabel, validateDomain, validateHeaderName, validateHeaderValue, validateManifest, validateRobotsTxt, validateSitemap };
|
|
@@ -24,6 +24,8 @@ __export(code_exports, {
|
|
|
24
24
|
detectRedos: () => detectRedos,
|
|
25
25
|
envToExport: () => envToExport,
|
|
26
26
|
envToJson: () => envToJson,
|
|
27
|
+
extractMarkdownFootnotes: () => extractMarkdownFootnotes,
|
|
28
|
+
extractSvgSpriteSymbols: () => extractSvgSpriteSymbols,
|
|
27
29
|
formatCss: () => formatCss,
|
|
28
30
|
formatGql: () => formatGql,
|
|
29
31
|
formatHtml: () => formatHtml,
|
|
@@ -41,6 +43,7 @@ __export(code_exports, {
|
|
|
41
43
|
minifyJs: () => minifyJs,
|
|
42
44
|
minifySql: () => minifySql,
|
|
43
45
|
normalizeRef: () => normalizeRef,
|
|
46
|
+
parseCommitTrailers: () => parseCommitTrailers,
|
|
44
47
|
parseDockerImage: () => parseDockerImage,
|
|
45
48
|
parseEnv: () => parseEnv,
|
|
46
49
|
parseGitCommand: () => parseGitCommand,
|
|
@@ -3594,5 +3597,122 @@ function analyzeRegexGroups(pattern) {
|
|
|
3594
3597
|
}
|
|
3595
3598
|
return { pattern, valid, ...compileError ? { compileError } : {}, groups, backreferences, issues };
|
|
3596
3599
|
}
|
|
3600
|
+
var SVG_SYMBOL_TAG_REGEX = /<symbol\b([^>]*)>/gi;
|
|
3601
|
+
function extractSvgAttr(attrs, name) {
|
|
3602
|
+
const match = attrs.match(new RegExp(`\\s${name}\\s*=\\s*["']([^"']*)["']`, "i"));
|
|
3603
|
+
return match ? match[1] : null;
|
|
3604
|
+
}
|
|
3605
|
+
function extractSvgSpriteSymbols(svg) {
|
|
3606
|
+
const trimmed = svg.trim();
|
|
3607
|
+
if (!trimmed) return { error: "Empty input" };
|
|
3608
|
+
const symbols = [];
|
|
3609
|
+
let skippedCount = 0;
|
|
3610
|
+
for (const match of trimmed.matchAll(SVG_SYMBOL_TAG_REGEX)) {
|
|
3611
|
+
const attrs = match[1];
|
|
3612
|
+
const id = extractSvgAttr(attrs, "id");
|
|
3613
|
+
if (!id) {
|
|
3614
|
+
skippedCount++;
|
|
3615
|
+
continue;
|
|
3616
|
+
}
|
|
3617
|
+
symbols.push({
|
|
3618
|
+
id,
|
|
3619
|
+
viewBox: extractSvgAttr(attrs, "viewBox"),
|
|
3620
|
+
width: extractSvgAttr(attrs, "width"),
|
|
3621
|
+
height: extractSvgAttr(attrs, "height"),
|
|
3622
|
+
usageSnippet: `<svg><use href="#${id}"></use></svg>`
|
|
3623
|
+
});
|
|
3624
|
+
}
|
|
3625
|
+
if (symbols.length === 0 && skippedCount === 0) {
|
|
3626
|
+
return { error: "No <symbol> elements found" };
|
|
3627
|
+
}
|
|
3628
|
+
return { symbolCount: symbols.length, symbols, skippedCount };
|
|
3629
|
+
}
|
|
3630
|
+
var TRAILER_LINE_REGEX = /^([A-Za-z][A-Za-z0-9-]*): (.+)$/;
|
|
3631
|
+
var TRAILER_CONTINUATION_REGEX = /^[ \t]+\S/;
|
|
3632
|
+
function parseCommitTrailers(message) {
|
|
3633
|
+
const lines = message.replace(/\r\n/g, "\n").split("\n");
|
|
3634
|
+
while (lines.length > 0 && lines[lines.length - 1].trim() === "") lines.pop();
|
|
3635
|
+
if (lines.length === 0) return { error: "Empty input" };
|
|
3636
|
+
let start = 0;
|
|
3637
|
+
for (let i = lines.length - 1; i >= 0; i--) {
|
|
3638
|
+
if (lines[i].trim() === "") {
|
|
3639
|
+
start = i + 1;
|
|
3640
|
+
break;
|
|
3641
|
+
}
|
|
3642
|
+
}
|
|
3643
|
+
const paragraph = lines.slice(start);
|
|
3644
|
+
const trailers = [];
|
|
3645
|
+
let valid = true;
|
|
3646
|
+
for (const line of paragraph) {
|
|
3647
|
+
const m = line.match(TRAILER_LINE_REGEX);
|
|
3648
|
+
if (m) {
|
|
3649
|
+
trailers.push({ key: m[1], value: m[2].trim() });
|
|
3650
|
+
} else if (TRAILER_CONTINUATION_REGEX.test(line) && trailers.length > 0) {
|
|
3651
|
+
trailers[trailers.length - 1].value += " " + line.trim();
|
|
3652
|
+
} else {
|
|
3653
|
+
valid = false;
|
|
3654
|
+
break;
|
|
3655
|
+
}
|
|
3656
|
+
}
|
|
3657
|
+
if (!valid || trailers.length === 0) {
|
|
3658
|
+
return { trailers: [], body: lines.join("\n").trim(), hasTrailers: false };
|
|
3659
|
+
}
|
|
3660
|
+
const body = lines.slice(0, start).join("\n").trim();
|
|
3661
|
+
return { trailers, body, hasTrailers: true };
|
|
3662
|
+
}
|
|
3663
|
+
var FOOTNOTE_DEFINITION_LINE_REGEX = /^\[\^([^\]]+)\]:\s?(.*)$/;
|
|
3664
|
+
var FOOTNOTE_CONTINUATION_REGEX = /^(?: {4}|\t)/;
|
|
3665
|
+
var FOOTNOTE_REFERENCE_REGEX = /\[\^([^\]]+)\]/g;
|
|
3666
|
+
function extractMarkdownFootnotes(markdown) {
|
|
3667
|
+
const trimmed = markdown.trim();
|
|
3668
|
+
if (!trimmed) return { error: "Empty input" };
|
|
3669
|
+
if (!trimmed.includes("[^")) return { error: "No footnote references or definitions found" };
|
|
3670
|
+
const lines = markdown.replace(/\r\n/g, "\n").split("\n");
|
|
3671
|
+
const definitions = [];
|
|
3672
|
+
const definedLabels = /* @__PURE__ */ new Set();
|
|
3673
|
+
const consumed = new Array(lines.length).fill(false);
|
|
3674
|
+
let i = 0;
|
|
3675
|
+
while (i < lines.length) {
|
|
3676
|
+
const match = lines[i].match(FOOTNOTE_DEFINITION_LINE_REGEX);
|
|
3677
|
+
if (!match) {
|
|
3678
|
+
i++;
|
|
3679
|
+
continue;
|
|
3680
|
+
}
|
|
3681
|
+
const label = match[1];
|
|
3682
|
+
const textLines = [match[2]];
|
|
3683
|
+
consumed[i] = true;
|
|
3684
|
+
let j = i + 1;
|
|
3685
|
+
while (j < lines.length && (FOOTNOTE_CONTINUATION_REGEX.test(lines[j]) || lines[j].trim() === "" && j + 1 < lines.length && FOOTNOTE_CONTINUATION_REGEX.test(lines[j + 1]))) {
|
|
3686
|
+
textLines.push(lines[j].trim() === "" ? "" : lines[j].replace(FOOTNOTE_CONTINUATION_REGEX, ""));
|
|
3687
|
+
consumed[j] = true;
|
|
3688
|
+
j++;
|
|
3689
|
+
}
|
|
3690
|
+
if (!definedLabels.has(label)) {
|
|
3691
|
+
definedLabels.add(label);
|
|
3692
|
+
definitions.push({ label, text: textLines.join("\n").trim() });
|
|
3693
|
+
}
|
|
3694
|
+
i = j;
|
|
3695
|
+
}
|
|
3696
|
+
const referenceScanText = lines.filter((_, idx) => !consumed[idx]).join("\n");
|
|
3697
|
+
const refOrder = [];
|
|
3698
|
+
const refCounts = /* @__PURE__ */ new Map();
|
|
3699
|
+
for (const m of referenceScanText.matchAll(FOOTNOTE_REFERENCE_REGEX)) {
|
|
3700
|
+
const label = m[1];
|
|
3701
|
+
if (!refCounts.has(label)) {
|
|
3702
|
+
refCounts.set(label, 0);
|
|
3703
|
+
refOrder.push(label);
|
|
3704
|
+
}
|
|
3705
|
+
refCounts.set(label, (refCounts.get(label) ?? 0) + 1);
|
|
3706
|
+
}
|
|
3707
|
+
const references = refOrder.map((label) => ({ label, count: refCounts.get(label) ?? 0 }));
|
|
3708
|
+
const referencedSet = new Set(refOrder);
|
|
3709
|
+
const unresolvedReferences = refOrder.filter((label) => !definedLabels.has(label));
|
|
3710
|
+
const unusedDefinitions = definitions.filter((d) => !referencedSet.has(d.label)).map((d) => d.label);
|
|
3711
|
+
const referenceCount = refOrder.reduce((sum, label) => sum + (refCounts.get(label) ?? 0), 0);
|
|
3712
|
+
if (definitions.length === 0 && references.length === 0) {
|
|
3713
|
+
return { error: "No footnote references or definitions found" };
|
|
3714
|
+
}
|
|
3715
|
+
return { definitionCount: definitions.length, referenceCount, definitions, references, unresolvedReferences, unusedDefinitions };
|
|
3716
|
+
}
|
|
3597
3717
|
|
|
3598
|
-
export { ALL_FLAGS, CHEATSHEET, DEFAULT_COMMIT_TYPES, MIME_TABLE, OPERATIONS, SQL_DEFAULT_OPTIONS, analyzeRegexGroups, auditDependencyRanges, buildDockerPull, buildDockerRun, buildGitCommand, code_exports, collapseHtmlWhitespace, collapseJsWhitespace, countProperties, countRules, detectDialect, detectOperationType, detectRedos, envToExport, envToJson, formatCss, formatGql, formatHtml, formatSql, getEndpointsByTag, getHtmlStats, getJsStats, getMethodColor, isValidTag, lintConventionalCommit, lookupMime, minifyCss, minifyGql, minifyHtml, minifyJs, minifySql, normalizeRef, parseDockerImage, parseEnv, parseGitCommand, parseGithubUrl, parseSpec, removeConsoleCalls, removeEmptyAttributes, removeHtmlComments, removeJsComments, removeRedundantAttributes, searchCheatsheet, searchEndpoints, splitStatements, testGitignorePatterns, testPattern, testRegex, validateEditorConfig, validateEnvKey, validatePackageExports, validateTsconfig };
|
|
3718
|
+
export { ALL_FLAGS, CHEATSHEET, DEFAULT_COMMIT_TYPES, MIME_TABLE, OPERATIONS, SQL_DEFAULT_OPTIONS, analyzeRegexGroups, auditDependencyRanges, buildDockerPull, buildDockerRun, buildGitCommand, code_exports, collapseHtmlWhitespace, collapseJsWhitespace, countProperties, countRules, detectDialect, detectOperationType, detectRedos, envToExport, envToJson, extractMarkdownFootnotes, extractSvgSpriteSymbols, formatCss, formatGql, formatHtml, formatSql, getEndpointsByTag, getHtmlStats, getJsStats, getMethodColor, isValidTag, lintConventionalCommit, lookupMime, minifyCss, minifyGql, minifyHtml, minifyJs, minifySql, normalizeRef, parseCommitTrailers, parseDockerImage, parseEnv, parseGitCommand, parseGithubUrl, parseSpec, removeConsoleCalls, removeEmptyAttributes, removeHtmlComments, removeJsComments, removeRedundantAttributes, searchCheatsheet, searchEndpoints, splitStatements, testGitignorePatterns, testPattern, testRegex, validateEditorConfig, validateEnvKey, validatePackageExports, validateTsconfig };
|
|
@@ -27,6 +27,9 @@
|
|
|
27
27
|
* - package-json-exports-validator (validatePackageExports)
|
|
28
28
|
* - package-json-dependency-auditor (auditDependencyRanges)
|
|
29
29
|
* - regex-groups (analyzeRegexGroups)
|
|
30
|
+
* - svg-sprite-symbol-extractor (extractSvgSpriteSymbols)
|
|
31
|
+
* - git-commit-trailer-parser (parseCommitTrailers)
|
|
32
|
+
* - markdown-footnote-extractor (extractMarkdownFootnotes)
|
|
30
33
|
*/
|
|
31
34
|
type RegexFlag = 'g' | 'i' | 'm' | 's' | 'u';
|
|
32
35
|
declare const ALL_FLAGS: RegexFlag[];
|
|
@@ -547,12 +550,86 @@ interface RegexGroupAnalysis {
|
|
|
547
550
|
* (plain-English breakdown).
|
|
548
551
|
*/
|
|
549
552
|
declare function analyzeRegexGroups(pattern: string): RegexGroupAnalysis;
|
|
553
|
+
interface SvgSpriteSymbol {
|
|
554
|
+
id: string;
|
|
555
|
+
viewBox: string | null;
|
|
556
|
+
width: string | null;
|
|
557
|
+
height: string | null;
|
|
558
|
+
usageSnippet: string;
|
|
559
|
+
}
|
|
560
|
+
interface SvgSpriteResult {
|
|
561
|
+
symbolCount: number;
|
|
562
|
+
symbols: SvgSpriteSymbol[];
|
|
563
|
+
skippedCount: number;
|
|
564
|
+
}
|
|
565
|
+
/**
|
|
566
|
+
* Parse an SVG sprite sheet's <symbol> definitions and list each one's id,
|
|
567
|
+
* viewBox, width, and height, alongside a ready-to-paste
|
|
568
|
+
* `<use href="#id"></use>` usage snippet. A symbol with no id is skipped
|
|
569
|
+
* (counted in skippedCount) since it can't be referenced by a `<use>`
|
|
570
|
+
* element at all. Pure regex-based parsing over the raw markup, no DOM/XML
|
|
571
|
+
* parser dependency, matching the SVG Viewer tool's parsing style.
|
|
572
|
+
*/
|
|
573
|
+
declare function extractSvgSpriteSymbols(svg: string): SvgSpriteResult | {
|
|
574
|
+
error: string;
|
|
575
|
+
};
|
|
576
|
+
interface CommitTrailer {
|
|
577
|
+
key: string;
|
|
578
|
+
value: string;
|
|
579
|
+
}
|
|
580
|
+
interface CommitTrailerResult {
|
|
581
|
+
trailers: CommitTrailer[];
|
|
582
|
+
body: string;
|
|
583
|
+
hasTrailers: boolean;
|
|
584
|
+
}
|
|
585
|
+
/**
|
|
586
|
+
* Parse a commit message's trailer block (Co-authored-by, Signed-off-by,
|
|
587
|
+
* Fixes, Reviewed-by, etc.) per git's RFC 822-style trailer convention
|
|
588
|
+
* (see `git-interpret-trailers`): the last paragraph of the message, where
|
|
589
|
+
* every line is either a `Key: value` pair or an indented continuation of
|
|
590
|
+
* the previous trailer's value. If the last paragraph doesn't consist
|
|
591
|
+
* entirely of trailer-shaped lines, no trailers are returned and the whole
|
|
592
|
+
* message is treated as body. This does not implement git's 25%-of-lines
|
|
593
|
+
* heuristic for a mixed last paragraph; it requires every line to match.
|
|
594
|
+
*/
|
|
595
|
+
declare function parseCommitTrailers(message: string): CommitTrailerResult | {
|
|
596
|
+
error: string;
|
|
597
|
+
};
|
|
598
|
+
interface MarkdownFootnoteDefinition {
|
|
599
|
+
label: string;
|
|
600
|
+
text: string;
|
|
601
|
+
}
|
|
602
|
+
interface MarkdownFootnoteReference {
|
|
603
|
+
label: string;
|
|
604
|
+
count: number;
|
|
605
|
+
}
|
|
606
|
+
interface MarkdownFootnoteResult {
|
|
607
|
+
definitionCount: number;
|
|
608
|
+
referenceCount: number;
|
|
609
|
+
definitions: MarkdownFootnoteDefinition[];
|
|
610
|
+
references: MarkdownFootnoteReference[];
|
|
611
|
+
unresolvedReferences: string[];
|
|
612
|
+
unusedDefinitions: string[];
|
|
613
|
+
}
|
|
614
|
+
/**
|
|
615
|
+
* Extract every Markdown-Extra-style footnote reference (`[^label]`) and
|
|
616
|
+
* definition (`[^label]: text`, with 4-space/tab-indented continuation
|
|
617
|
+
* lines) from a document, then flag references with no matching definition
|
|
618
|
+
* and definitions that are never referenced. A `[^label]` occurring inside
|
|
619
|
+
* a definition's own continuation lines is not counted as a separate
|
|
620
|
+
* reference, since that text is part of the definition itself.
|
|
621
|
+
*/
|
|
622
|
+
declare function extractMarkdownFootnotes(markdown: string): MarkdownFootnoteResult | {
|
|
623
|
+
error: string;
|
|
624
|
+
};
|
|
550
625
|
|
|
551
626
|
declare const code_ALL_FLAGS: typeof ALL_FLAGS;
|
|
552
627
|
type code_ApiEndpoint = ApiEndpoint;
|
|
553
628
|
type code_ApiInfo = ApiInfo;
|
|
554
629
|
declare const code_CHEATSHEET: typeof CHEATSHEET;
|
|
555
630
|
type code_CheatsheetEntry = CheatsheetEntry;
|
|
631
|
+
type code_CommitTrailer = CommitTrailer;
|
|
632
|
+
type code_CommitTrailerResult = CommitTrailerResult;
|
|
556
633
|
type code_ConventionalCommitFinding = ConventionalCommitFinding;
|
|
557
634
|
type code_ConventionalCommitFooter = ConventionalCommitFooter;
|
|
558
635
|
type code_ConventionalCommitOptions = ConventionalCommitOptions;
|
|
@@ -590,6 +667,9 @@ type code_HtmlMinifyResult = HtmlMinifyResult;
|
|
|
590
667
|
type code_JsMinifyOptions = JsMinifyOptions;
|
|
591
668
|
type code_JsMinifyResult = JsMinifyResult;
|
|
592
669
|
declare const code_MIME_TABLE: typeof MIME_TABLE;
|
|
670
|
+
type code_MarkdownFootnoteDefinition = MarkdownFootnoteDefinition;
|
|
671
|
+
type code_MarkdownFootnoteReference = MarkdownFootnoteReference;
|
|
672
|
+
type code_MarkdownFootnoteResult = MarkdownFootnoteResult;
|
|
593
673
|
type code_MatchResult = MatchResult;
|
|
594
674
|
type code_MimeEntry = MimeEntry;
|
|
595
675
|
type code_MimeLookupResult = MimeLookupResult;
|
|
@@ -612,6 +692,8 @@ type code_Segment = Segment;
|
|
|
612
692
|
type code_SpecVersion = SpecVersion;
|
|
613
693
|
type code_SqlDialect = SqlDialect;
|
|
614
694
|
type code_SqlFormatOptions = SqlFormatOptions;
|
|
695
|
+
type code_SvgSpriteResult = SvgSpriteResult;
|
|
696
|
+
type code_SvgSpriteSymbol = SvgSpriteSymbol;
|
|
615
697
|
type code_TestPatternResult = TestPatternResult;
|
|
616
698
|
type code_TsconfigIssue = TsconfigIssue;
|
|
617
699
|
type code_TsconfigValidationResult = TsconfigValidationResult;
|
|
@@ -629,6 +711,8 @@ declare const code_detectOperationType: typeof detectOperationType;
|
|
|
629
711
|
declare const code_detectRedos: typeof detectRedos;
|
|
630
712
|
declare const code_envToExport: typeof envToExport;
|
|
631
713
|
declare const code_envToJson: typeof envToJson;
|
|
714
|
+
declare const code_extractMarkdownFootnotes: typeof extractMarkdownFootnotes;
|
|
715
|
+
declare const code_extractSvgSpriteSymbols: typeof extractSvgSpriteSymbols;
|
|
632
716
|
declare const code_formatCss: typeof formatCss;
|
|
633
717
|
declare const code_formatGql: typeof formatGql;
|
|
634
718
|
declare const code_formatHtml: typeof formatHtml;
|
|
@@ -646,6 +730,7 @@ declare const code_minifyHtml: typeof minifyHtml;
|
|
|
646
730
|
declare const code_minifyJs: typeof minifyJs;
|
|
647
731
|
declare const code_minifySql: typeof minifySql;
|
|
648
732
|
declare const code_normalizeRef: typeof normalizeRef;
|
|
733
|
+
declare const code_parseCommitTrailers: typeof parseCommitTrailers;
|
|
649
734
|
declare const code_parseDockerImage: typeof parseDockerImage;
|
|
650
735
|
declare const code_parseEnv: typeof parseEnv;
|
|
651
736
|
declare const code_parseGitCommand: typeof parseGitCommand;
|
|
@@ -667,7 +752,7 @@ declare const code_validateEnvKey: typeof validateEnvKey;
|
|
|
667
752
|
declare const code_validatePackageExports: typeof validatePackageExports;
|
|
668
753
|
declare const code_validateTsconfig: typeof validateTsconfig;
|
|
669
754
|
declare namespace code {
|
|
670
|
-
export { code_ALL_FLAGS as ALL_FLAGS, type code_ApiEndpoint as ApiEndpoint, type code_ApiInfo as ApiInfo, code_CHEATSHEET as CHEATSHEET, type code_CheatsheetEntry as CheatsheetEntry, type code_ConventionalCommitFinding as ConventionalCommitFinding, type code_ConventionalCommitFooter as ConventionalCommitFooter, type code_ConventionalCommitOptions as ConventionalCommitOptions, type code_ConventionalCommitParsed as ConventionalCommitParsed, type code_ConventionalCommitResult as ConventionalCommitResult, type code_ConventionalCommitSeverity as ConventionalCommitSeverity, type code_CssResult as CssResult, code_DEFAULT_COMMIT_TYPES as DEFAULT_COMMIT_TYPES, type code_DependencyAuditDuplicate as DependencyAuditDuplicate, type code_DependencyAuditEntry as DependencyAuditEntry, type code_DependencyAuditIssue as DependencyAuditIssue, type code_DependencyAuditResult as DependencyAuditResult, type code_DependencyRangeType as DependencyRangeType, type code_DependencySection as DependencySection, type code_DockerImageRef as DockerImageRef, type code_EditorConfigIssue as EditorConfigIssue, type code_EditorConfigProperty as EditorConfigProperty, type code_EditorConfigSection as EditorConfigSection, type code_EditorConfigValidationResult as EditorConfigValidationResult, type code_EnvEntry as EnvEntry, type code_EnvParseResult as EnvParseResult, type code_ExportsIssue as ExportsIssue, type code_ExportsShape as ExportsShape, type code_ExportsValidationResult as ExportsValidationResult, type code_GitCommandConfig as GitCommandConfig, type code_GitCommandResult as GitCommandResult, type code_GitOperation as GitOperation, type code_GithubUrlInfo as GithubUrlInfo, type code_GithubUrlType as GithubUrlType, type code_GitignoreTestResult as GitignoreTestResult, type code_GqlFormatResult as GqlFormatResult, type code_HtmlFormatResult as HtmlFormatResult, type code_HtmlMinifyOptions as HtmlMinifyOptions, type code_HtmlMinifyResult as HtmlMinifyResult, type code_JsMinifyOptions as JsMinifyOptions, type code_JsMinifyResult as JsMinifyResult, code_MIME_TABLE as MIME_TABLE, type code_MatchResult as MatchResult, type code_MimeEntry as MimeEntry, type code_MimeLookupResult as MimeLookupResult, code_OPERATIONS as OPERATIONS, type code_ParsedSpec as ParsedSpec, type code_RedosFinding as RedosFinding, type code_RedosResult as RedosResult, type code_RedosSeverity as RedosSeverity, type code_RegexBackreferenceInfo as RegexBackreferenceInfo, type code_RegexError as RegexError, type code_RegexFlag as RegexFlag, type code_RegexGroupAnalysis as RegexGroupAnalysis, type code_RegexGroupInfo as RegexGroupInfo, type code_RegexGroupIssue as RegexGroupIssue, type code_RegexMatch as RegexMatch, type code_RegexResult as RegexResult, type code_RegexSuccess as RegexSuccess, code_SQL_DEFAULT_OPTIONS as SQL_DEFAULT_OPTIONS, type code_Segment as Segment, type code_SpecVersion as SpecVersion, type code_SqlDialect as SqlDialect, type code_SqlFormatOptions as SqlFormatOptions, type code_TestPatternResult as TestPatternResult, type code_TsconfigIssue as TsconfigIssue, type code_TsconfigValidationResult as TsconfigValidationResult, code_analyzeRegexGroups as analyzeRegexGroups, code_auditDependencyRanges as auditDependencyRanges, code_buildDockerPull as buildDockerPull, code_buildDockerRun as buildDockerRun, code_buildGitCommand as buildGitCommand, code_collapseHtmlWhitespace as collapseHtmlWhitespace, code_collapseJsWhitespace as collapseJsWhitespace, code_countProperties as countProperties, code_countRules as countRules, code_detectDialect as detectDialect, code_detectOperationType as detectOperationType, code_detectRedos as detectRedos, code_envToExport as envToExport, code_envToJson as envToJson, code_formatCss as formatCss, code_formatGql as formatGql, code_formatHtml as formatHtml, code_formatSql as formatSql, code_getEndpointsByTag as getEndpointsByTag, code_getHtmlStats as getHtmlStats, code_getJsStats as getJsStats, code_getMethodColor as getMethodColor, code_isValidTag as isValidTag, code_lintConventionalCommit as lintConventionalCommit, code_lookupMime as lookupMime, code_minifyCss as minifyCss, code_minifyGql as minifyGql, code_minifyHtml as minifyHtml, code_minifyJs as minifyJs, code_minifySql as minifySql, code_normalizeRef as normalizeRef, code_parseDockerImage as parseDockerImage, code_parseEnv as parseEnv, code_parseGitCommand as parseGitCommand, code_parseGithubUrl as parseGithubUrl, code_parseSpec as parseSpec, code_removeConsoleCalls as removeConsoleCalls, code_removeEmptyAttributes as removeEmptyAttributes, code_removeHtmlComments as removeHtmlComments, code_removeJsComments as removeJsComments, code_removeRedundantAttributes as removeRedundantAttributes, code_searchCheatsheet as searchCheatsheet, code_searchEndpoints as searchEndpoints, code_splitStatements as splitStatements, code_testGitignorePatterns as testGitignorePatterns, code_testPattern as testPattern, code_testRegex as testRegex, code_validateEditorConfig as validateEditorConfig, code_validateEnvKey as validateEnvKey, code_validatePackageExports as validatePackageExports, code_validateTsconfig as validateTsconfig };
|
|
755
|
+
export { code_ALL_FLAGS as ALL_FLAGS, type code_ApiEndpoint as ApiEndpoint, type code_ApiInfo as ApiInfo, code_CHEATSHEET as CHEATSHEET, type code_CheatsheetEntry as CheatsheetEntry, type code_CommitTrailer as CommitTrailer, type code_CommitTrailerResult as CommitTrailerResult, type code_ConventionalCommitFinding as ConventionalCommitFinding, type code_ConventionalCommitFooter as ConventionalCommitFooter, type code_ConventionalCommitOptions as ConventionalCommitOptions, type code_ConventionalCommitParsed as ConventionalCommitParsed, type code_ConventionalCommitResult as ConventionalCommitResult, type code_ConventionalCommitSeverity as ConventionalCommitSeverity, type code_CssResult as CssResult, code_DEFAULT_COMMIT_TYPES as DEFAULT_COMMIT_TYPES, type code_DependencyAuditDuplicate as DependencyAuditDuplicate, type code_DependencyAuditEntry as DependencyAuditEntry, type code_DependencyAuditIssue as DependencyAuditIssue, type code_DependencyAuditResult as DependencyAuditResult, type code_DependencyRangeType as DependencyRangeType, type code_DependencySection as DependencySection, type code_DockerImageRef as DockerImageRef, type code_EditorConfigIssue as EditorConfigIssue, type code_EditorConfigProperty as EditorConfigProperty, type code_EditorConfigSection as EditorConfigSection, type code_EditorConfigValidationResult as EditorConfigValidationResult, type code_EnvEntry as EnvEntry, type code_EnvParseResult as EnvParseResult, type code_ExportsIssue as ExportsIssue, type code_ExportsShape as ExportsShape, type code_ExportsValidationResult as ExportsValidationResult, type code_GitCommandConfig as GitCommandConfig, type code_GitCommandResult as GitCommandResult, type code_GitOperation as GitOperation, type code_GithubUrlInfo as GithubUrlInfo, type code_GithubUrlType as GithubUrlType, type code_GitignoreTestResult as GitignoreTestResult, type code_GqlFormatResult as GqlFormatResult, type code_HtmlFormatResult as HtmlFormatResult, type code_HtmlMinifyOptions as HtmlMinifyOptions, type code_HtmlMinifyResult as HtmlMinifyResult, type code_JsMinifyOptions as JsMinifyOptions, type code_JsMinifyResult as JsMinifyResult, code_MIME_TABLE as MIME_TABLE, type code_MarkdownFootnoteDefinition as MarkdownFootnoteDefinition, type code_MarkdownFootnoteReference as MarkdownFootnoteReference, type code_MarkdownFootnoteResult as MarkdownFootnoteResult, type code_MatchResult as MatchResult, type code_MimeEntry as MimeEntry, type code_MimeLookupResult as MimeLookupResult, code_OPERATIONS as OPERATIONS, type code_ParsedSpec as ParsedSpec, type code_RedosFinding as RedosFinding, type code_RedosResult as RedosResult, type code_RedosSeverity as RedosSeverity, type code_RegexBackreferenceInfo as RegexBackreferenceInfo, type code_RegexError as RegexError, type code_RegexFlag as RegexFlag, type code_RegexGroupAnalysis as RegexGroupAnalysis, type code_RegexGroupInfo as RegexGroupInfo, type code_RegexGroupIssue as RegexGroupIssue, type code_RegexMatch as RegexMatch, type code_RegexResult as RegexResult, type code_RegexSuccess as RegexSuccess, code_SQL_DEFAULT_OPTIONS as SQL_DEFAULT_OPTIONS, type code_Segment as Segment, type code_SpecVersion as SpecVersion, type code_SqlDialect as SqlDialect, type code_SqlFormatOptions as SqlFormatOptions, type code_SvgSpriteResult as SvgSpriteResult, type code_SvgSpriteSymbol as SvgSpriteSymbol, type code_TestPatternResult as TestPatternResult, type code_TsconfigIssue as TsconfigIssue, type code_TsconfigValidationResult as TsconfigValidationResult, code_analyzeRegexGroups as analyzeRegexGroups, code_auditDependencyRanges as auditDependencyRanges, code_buildDockerPull as buildDockerPull, code_buildDockerRun as buildDockerRun, code_buildGitCommand as buildGitCommand, code_collapseHtmlWhitespace as collapseHtmlWhitespace, code_collapseJsWhitespace as collapseJsWhitespace, code_countProperties as countProperties, code_countRules as countRules, code_detectDialect as detectDialect, code_detectOperationType as detectOperationType, code_detectRedos as detectRedos, code_envToExport as envToExport, code_envToJson as envToJson, code_extractMarkdownFootnotes as extractMarkdownFootnotes, code_extractSvgSpriteSymbols as extractSvgSpriteSymbols, code_formatCss as formatCss, code_formatGql as formatGql, code_formatHtml as formatHtml, code_formatSql as formatSql, code_getEndpointsByTag as getEndpointsByTag, code_getHtmlStats as getHtmlStats, code_getJsStats as getJsStats, code_getMethodColor as getMethodColor, code_isValidTag as isValidTag, code_lintConventionalCommit as lintConventionalCommit, code_lookupMime as lookupMime, code_minifyCss as minifyCss, code_minifyGql as minifyGql, code_minifyHtml as minifyHtml, code_minifyJs as minifyJs, code_minifySql as minifySql, code_normalizeRef as normalizeRef, code_parseCommitTrailers as parseCommitTrailers, code_parseDockerImage as parseDockerImage, code_parseEnv as parseEnv, code_parseGitCommand as parseGitCommand, code_parseGithubUrl as parseGithubUrl, code_parseSpec as parseSpec, code_removeConsoleCalls as removeConsoleCalls, code_removeEmptyAttributes as removeEmptyAttributes, code_removeHtmlComments as removeHtmlComments, code_removeJsComments as removeJsComments, code_removeRedundantAttributes as removeRedundantAttributes, code_searchCheatsheet as searchCheatsheet, code_searchEndpoints as searchEndpoints, code_splitStatements as splitStatements, code_testGitignorePatterns as testGitignorePatterns, code_testPattern as testPattern, code_testRegex as testRegex, code_validateEditorConfig as validateEditorConfig, code_validateEnvKey as validateEnvKey, code_validatePackageExports as validatePackageExports, code_validateTsconfig as validateTsconfig };
|
|
671
756
|
}
|
|
672
757
|
|
|
673
|
-
export { type
|
|
758
|
+
export { type RedosFinding as $, ALL_FLAGS as A, type ExportsShape as B, CHEATSHEET as C, DEFAULT_COMMIT_TYPES as D, type EditorConfigIssue as E, type ExportsValidationResult as F, type GitCommandConfig as G, type GitCommandResult as H, type GitOperation as I, type GithubUrlInfo as J, type GithubUrlType as K, type GitignoreTestResult as L, type GqlFormatResult as M, type HtmlFormatResult as N, type HtmlMinifyOptions as O, type HtmlMinifyResult as P, type JsMinifyOptions as Q, type JsMinifyResult as R, MIME_TABLE as S, type MarkdownFootnoteDefinition as T, type MarkdownFootnoteReference as U, type MarkdownFootnoteResult as V, type MatchResult as W, type MimeEntry as X, type MimeLookupResult as Y, OPERATIONS as Z, type ParsedSpec as _, type ApiEndpoint as a, removeJsComments as a$, type RedosResult as a0, type RedosSeverity as a1, type RegexBackreferenceInfo as a2, type RegexError as a3, type RegexFlag as a4, type RegexGroupAnalysis as a5, type RegexGroupInfo as a6, type RegexGroupIssue as a7, type RegexMatch as a8, type RegexResult as a9, extractSvgSpriteSymbols as aA, formatCss as aB, formatGql as aC, formatHtml as aD, formatSql as aE, getEndpointsByTag as aF, getHtmlStats as aG, getJsStats as aH, getMethodColor as aI, isValidTag as aJ, lintConventionalCommit as aK, lookupMime as aL, minifyCss as aM, minifyGql as aN, minifyHtml as aO, minifyJs as aP, minifySql as aQ, normalizeRef as aR, parseCommitTrailers as aS, parseDockerImage as aT, parseEnv as aU, parseGitCommand as aV, parseGithubUrl as aW, parseSpec as aX, removeConsoleCalls as aY, removeEmptyAttributes as aZ, removeHtmlComments as a_, type RegexSuccess as aa, SQL_DEFAULT_OPTIONS as ab, type Segment as ac, type SpecVersion as ad, type SqlDialect as ae, type SqlFormatOptions as af, type SvgSpriteResult as ag, type SvgSpriteSymbol as ah, type TestPatternResult as ai, type TsconfigIssue as aj, type TsconfigValidationResult as ak, analyzeRegexGroups as al, auditDependencyRanges as am, buildDockerPull as an, buildDockerRun as ao, buildGitCommand as ap, collapseHtmlWhitespace as aq, collapseJsWhitespace as ar, countProperties as as, countRules as at, detectDialect as au, detectOperationType as av, detectRedos as aw, envToExport as ax, envToJson as ay, extractMarkdownFootnotes as az, type ApiInfo as b, removeRedundantAttributes as b0, searchCheatsheet as b1, searchEndpoints as b2, splitStatements as b3, testGitignorePatterns as b4, testPattern as b5, testRegex as b6, validateEditorConfig as b7, validateEnvKey as b8, validatePackageExports as b9, validateTsconfig as ba, code as c, type CheatsheetEntry as d, type CommitTrailer as e, type CommitTrailerResult as f, type ConventionalCommitFinding as g, type ConventionalCommitFooter as h, type ConventionalCommitOptions as i, type ConventionalCommitParsed as j, type ConventionalCommitResult as k, type ConventionalCommitSeverity as l, type CssResult as m, type DependencyAuditDuplicate as n, type DependencyAuditEntry as o, type DependencyAuditIssue as p, type DependencyAuditResult as q, type DependencyRangeType as r, type DependencySection as s, type DockerImageRef as t, type EditorConfigProperty as u, type EditorConfigSection as v, type EditorConfigValidationResult as w, type EnvEntry as x, type EnvParseResult as y, type ExportsIssue as z };
|