@utilix-tech/sdk 0.86.0 → 0.88.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.
@@ -1906,6 +1906,123 @@ function lintDockerfile(content) {
1906
1906
  }
1907
1907
  return { findings, stages };
1908
1908
  }
1909
+ var MERMAID_DIAGRAM_TYPES = {
1910
+ flowchart: "flowchart",
1911
+ graph: "flowchart",
1912
+ sequencediagram: "sequenceDiagram",
1913
+ classdiagram: "classDiagram",
1914
+ statediagram: "stateDiagram",
1915
+ "statediagram-v2": "stateDiagram",
1916
+ erdiagram: "erDiagram",
1917
+ pie: "pie"
1918
+ };
1919
+ var _MERMAID_ARROW_RE = /(-\.->|==>|--x|--o|-\.-|-->|---|===)/i;
1920
+ function _checkMermaidFlowchart(lines, fromLine, issues) {
1921
+ const subgraphStack = [];
1922
+ for (let i = fromLine; i < lines.length; i++) {
1923
+ const lineNo = i + 1;
1924
+ const trimmed = lines[i].split("%%")[0].trim();
1925
+ if (trimmed === "") continue;
1926
+ const firstToken = trimmed.split(/\s+/)[0];
1927
+ if (firstToken === "subgraph") {
1928
+ subgraphStack.push(lineNo);
1929
+ continue;
1930
+ }
1931
+ if (trimmed === "end") {
1932
+ if (subgraphStack.length === 0) {
1933
+ issues.push({ rule: "unexpected-end", line: lineNo, message: "'end' with no matching 'subgraph' to close" });
1934
+ } else {
1935
+ subgraphStack.pop();
1936
+ }
1937
+ continue;
1938
+ }
1939
+ const opens = (trimmed.match(/[[({]/g) || []).length;
1940
+ const closes = (trimmed.match(/[\])}]/g) || []).length;
1941
+ if (opens !== closes) {
1942
+ issues.push({
1943
+ rule: "unbalanced-brackets",
1944
+ line: lineNo,
1945
+ message: `Unbalanced brackets in node/edge definition: ${opens} opening vs ${closes} closing`
1946
+ });
1947
+ }
1948
+ const segments = trimmed.split(_MERMAID_ARROW_RE);
1949
+ if (segments.length > 1) {
1950
+ let missingNode = false;
1951
+ for (let s = 0; s < segments.length; s += 2) {
1952
+ if (segments[s].trim() === "") missingNode = true;
1953
+ }
1954
+ if (missingNode) {
1955
+ issues.push({ rule: "malformed-edge", line: lineNo, message: "Edge arrow is missing a node on one side" });
1956
+ }
1957
+ }
1958
+ }
1959
+ for (const openLine of subgraphStack) {
1960
+ issues.push({
1961
+ rule: "unterminated-subgraph",
1962
+ line: openLine,
1963
+ message: "'subgraph' opened here is never closed with a matching 'end'"
1964
+ });
1965
+ }
1966
+ }
1967
+ var _MERMAID_SEQ_DECL_RE = /^(participant|actor)\s+(\S+)/i;
1968
+ var _MERMAID_SEQ_MSG_RE = /^([A-Za-z0-9_]+)\s*(-{1,2}>{1,2}|-{1,2}x|-{1,2}\))\s*([A-Za-z0-9_]+)\s*:/i;
1969
+ function _checkMermaidSequenceDiagram(lines, fromLine, issues) {
1970
+ const declaredAtLine = {};
1971
+ for (let i = fromLine; i < lines.length; i++) {
1972
+ const trimmed = lines[i].split("%%")[0].trim();
1973
+ if (trimmed === "") continue;
1974
+ const m = trimmed.match(_MERMAID_SEQ_DECL_RE);
1975
+ if (m && declaredAtLine[m[2]] === void 0) declaredAtLine[m[2]] = i + 1;
1976
+ }
1977
+ for (let i = fromLine; i < lines.length; i++) {
1978
+ const lineNo = i + 1;
1979
+ const trimmed = lines[i].split("%%")[0].trim();
1980
+ if (trimmed === "") continue;
1981
+ const m = trimmed.match(_MERMAID_SEQ_MSG_RE);
1982
+ if (!m) continue;
1983
+ for (const id of [m[1], m[3]]) {
1984
+ const declaredLine = declaredAtLine[id];
1985
+ if (declaredLine !== void 0 && declaredLine > lineNo) {
1986
+ issues.push({
1987
+ rule: "participant-before-declared",
1988
+ line: lineNo,
1989
+ message: `Participant '${id}' is referenced here but not explicitly declared (with 'participant' or 'actor') until line ${declaredLine}`
1990
+ });
1991
+ }
1992
+ }
1993
+ }
1994
+ }
1995
+ function validateMermaidSyntax(input) {
1996
+ if (!input || !input.trim()) return { error: "Diagram text is required" };
1997
+ const lines = input.replace(/\r\n/g, "\n").split("\n");
1998
+ const issues = [];
1999
+ let headerLine = -1;
2000
+ let headerText = "";
2001
+ for (let i = 0; i < lines.length; i++) {
2002
+ const trimmed = lines[i].trim();
2003
+ if (trimmed === "" || trimmed.startsWith("%%")) continue;
2004
+ headerLine = i + 1;
2005
+ headerText = trimmed;
2006
+ break;
2007
+ }
2008
+ if (headerLine === -1) return { error: "Diagram text is required" };
2009
+ const firstWord = headerText.split(/\s+/)[0];
2010
+ const diagramType = MERMAID_DIAGRAM_TYPES[firstWord.toLowerCase()] ?? null;
2011
+ if (!diagramType) {
2012
+ issues.push({
2013
+ rule: "unrecognized-diagram-type",
2014
+ line: headerLine,
2015
+ message: `"${firstWord}" is not a recognized Mermaid diagram type (expected one of: flowchart/graph, sequenceDiagram, classDiagram, stateDiagram, erDiagram, pie)`
2016
+ });
2017
+ return { diagramType: null, valid: false, issues };
2018
+ }
2019
+ if (diagramType === "flowchart") {
2020
+ _checkMermaidFlowchart(lines, headerLine, issues);
2021
+ } else if (diagramType === "sequenceDiagram") {
2022
+ _checkMermaidSequenceDiagram(lines, headerLine, issues);
2023
+ }
2024
+ return { diagramType, valid: issues.length === 0, issues };
2025
+ }
1909
2026
  function removeJsComments(code) {
1910
2027
  let result = "";
1911
2028
  let i = 0;
@@ -4496,5 +4613,6 @@ exports.validateAria = validateAria;
4496
4613
  exports.validateEditorConfig = validateEditorConfig;
4497
4614
  exports.validateEnvKey = validateEnvKey;
4498
4615
  exports.validateFenceLanguageTags = validateFenceLanguageTags;
4616
+ exports.validateMermaidSyntax = validateMermaidSyntax;
4499
4617
  exports.validatePackageExports = validatePackageExports;
4500
4618
  exports.validateTsconfig = validateTsconfig;
@@ -1 +1 @@
1
- export { A as ALL_FLAGS, a as ApiEndpoint, b as ApiInfo, d as AriaIssue, e as AriaValidationResult, C as CHEATSHEET, f as CharClassOptions, g as CharClassResult, h as CheatsheetEntry, i as CommitTrailer, j as CommitTrailerResult, k as ConnectionStringHost, l as ConnectionStringResult, m as ConventionalCommitFinding, n as ConventionalCommitFooter, o as ConventionalCommitOptions, p as ConventionalCommitParsed, q as ConventionalCommitResult, r as ConventionalCommitSeverity, s as CssResult, D as DEFAULT_COMMIT_TYPES, t as DependencyAuditDuplicate, u as DependencyAuditEntry, v as DependencyAuditIssue, w as DependencyAuditResult, x as DependencyRangeType, y as DependencySection, z as DockerImageRef, B as DockerfileLintFinding, E as DockerfileLintResult, F as DockerfileStage, G as EditorConfigIssue, H as EditorConfigProperty, I as EditorConfigSection, J as EditorConfigValidationResult, K as EnvEntry, L as EnvParseResult, M as ExportsIssue, N as ExportsShape, O as ExportsValidationResult, P as FenceTagIssue, Q as FenceTagIssueType, R as FenceValidationResult, S as GitCommandConfig, T as GitCommandResult, U as GitOperation, V as GithubUrlInfo, W as GithubUrlType, X as GitignoreTestResult, Y as GqlFormatResult, Z as HtmlFormatResult, _ as HtmlMinifyOptions, $ as HtmlMinifyResult, a0 as JsMinifyOptions, a1 as JsMinifyResult, a2 as KNOWN_LANGUAGE_TAGS, a3 as LinkReferenceDefinition, a4 as LinkReferenceUsage, a5 as MIME_TABLE, a6 as MarkdownFootnoteDefinition, a7 as MarkdownFootnoteReference, a8 as MarkdownFootnoteResult, a9 as MarkdownLinkReferenceResult, aa as MatchResult, ab as MimeEntry, ac as MimeLookupResult, ad as OPERATIONS, ae as ParsedSpec, af as PlaceholderStyle, ag as RedosFinding, ah as RedosResult, ai as RedosSeverity, aj as RegexBackreferenceInfo, ak as RegexError, al as RegexFlag, am as RegexGroupAnalysis, an as RegexGroupInfo, ao as RegexGroupIssue, ap as RegexMatch, aq as RegexResult, ar as RegexSuccess, as as ResolvedLinkReference, at as SQL_DEFAULT_OPTIONS, au as Segment, av as SpecVersion, aw as SqlDialect, ax as SqlFormatOptions, ay as SqlPlaceholder, az as SqlPlaceholderResult, aA as SvgSpriteResult, aB as SvgSpriteSymbol, aC as TestPatternResult, aD as TsconfigIssue, aE as TsconfigValidationResult, aF as analyzeRegexGroups, aG as auditDependencyRanges, aH as buildCharacterClass, aI as buildDockerPull, aJ as buildDockerRun, aK as buildGitCommand, aL as collapseHtmlWhitespace, aM as collapseJsWhitespace, aN as countProperties, aO as countRules, aP as countSqlPlaceholders, aQ as detectDialect, aR as detectOperationType, aS as detectRedos, aT as envToExport, aU as envToJson, aV as extractMarkdownFootnotes, aW as extractMarkdownLinkReferences, aX as extractSvgSpriteSymbols, aY as formatCss, aZ as formatGql, a_ as formatHtml, a$ as formatSql, b0 as getEndpointsByTag, b1 as getHtmlStats, b2 as getJsStats, b3 as getMethodColor, b4 as isValidTag, b5 as lintConventionalCommit, b6 as lintDockerfile, b7 as lookupMime, b8 as minifyCss, b9 as minifyGql, ba as minifyHtml, bb as minifyJs, bc as minifySql, bd as normalizeRef, be as parseCommitTrailers, bf as parseConnectionString, bg as parseDockerImage, bh as parseEnv, bi as parseGitCommand, bj as parseGithubUrl, bk as parseSpec, bl as removeConsoleCalls, bm as removeEmptyAttributes, bn as removeHtmlComments, bo as removeJsComments, bp as removeRedundantAttributes, bq as searchCheatsheet, br as searchEndpoints, bs as splitStatements, bt as testGitignorePatterns, bu as testPattern, bv as testRegex, bw as validateAria, bx as validateEditorConfig, by as validateEnvKey, bz as validateFenceLanguageTags, bA as validatePackageExports, bB as validateTsconfig } from '../code-B9LwFkB1.cjs';
1
+ export { A as ALL_FLAGS, a as ApiEndpoint, b as ApiInfo, d as AriaIssue, e as AriaValidationResult, C as CHEATSHEET, f as CharClassOptions, g as CharClassResult, h as CheatsheetEntry, i as CommitTrailer, j as CommitTrailerResult, k as ConnectionStringHost, l as ConnectionStringResult, m as ConventionalCommitFinding, n as ConventionalCommitFooter, o as ConventionalCommitOptions, p as ConventionalCommitParsed, q as ConventionalCommitResult, r as ConventionalCommitSeverity, s as CssResult, D as DEFAULT_COMMIT_TYPES, t as DependencyAuditDuplicate, u as DependencyAuditEntry, v as DependencyAuditIssue, w as DependencyAuditResult, x as DependencyRangeType, y as DependencySection, z as DockerImageRef, B as DockerfileLintFinding, E as DockerfileLintResult, F as DockerfileStage, G as EditorConfigIssue, H as EditorConfigProperty, I as EditorConfigSection, J as EditorConfigValidationResult, K as EnvEntry, L as EnvParseResult, M as ExportsIssue, N as ExportsShape, O as ExportsValidationResult, P as FenceTagIssue, Q as FenceTagIssueType, R as FenceValidationResult, S as GitCommandConfig, T as GitCommandResult, U as GitOperation, V as GithubUrlInfo, W as GithubUrlType, X as GitignoreTestResult, Y as GqlFormatResult, Z as HtmlFormatResult, _ as HtmlMinifyOptions, $ as HtmlMinifyResult, a0 as JsMinifyOptions, a1 as JsMinifyResult, a2 as KNOWN_LANGUAGE_TAGS, a3 as LinkReferenceDefinition, a4 as LinkReferenceUsage, a5 as MIME_TABLE, a6 as MarkdownFootnoteDefinition, a7 as MarkdownFootnoteReference, a8 as MarkdownFootnoteResult, a9 as MarkdownLinkReferenceResult, aa as MatchResult, ab as MermaidSyntaxIssue, ac as MermaidSyntaxResult, ad as MermaidSyntaxRule, ae as MimeEntry, af as MimeLookupResult, ag as OPERATIONS, ah as ParsedSpec, ai as PlaceholderStyle, aj as RedosFinding, ak as RedosResult, al as RedosSeverity, am as RegexBackreferenceInfo, an as RegexError, ao as RegexFlag, ap as RegexGroupAnalysis, aq as RegexGroupInfo, ar as RegexGroupIssue, as as RegexMatch, at as RegexResult, au as RegexSuccess, av as ResolvedLinkReference, aw as SQL_DEFAULT_OPTIONS, ax as Segment, ay as SpecVersion, az as SqlDialect, aA as SqlFormatOptions, aB as SqlPlaceholder, aC as SqlPlaceholderResult, aD as SvgSpriteResult, aE as SvgSpriteSymbol, aF as TestPatternResult, aG as TsconfigIssue, aH as TsconfigValidationResult, aI as analyzeRegexGroups, aJ as auditDependencyRanges, aK as buildCharacterClass, aL as buildDockerPull, aM as buildDockerRun, aN as buildGitCommand, aO as collapseHtmlWhitespace, aP as collapseJsWhitespace, aQ as countProperties, aR as countRules, aS as countSqlPlaceholders, aT as detectDialect, aU as detectOperationType, aV as detectRedos, aW as envToExport, aX as envToJson, aY as extractMarkdownFootnotes, aZ as extractMarkdownLinkReferences, a_ as extractSvgSpriteSymbols, a$ as formatCss, b0 as formatGql, b1 as formatHtml, b2 as formatSql, b3 as getEndpointsByTag, b4 as getHtmlStats, b5 as getJsStats, b6 as getMethodColor, b7 as isValidTag, b8 as lintConventionalCommit, b9 as lintDockerfile, ba as lookupMime, bb as minifyCss, bc as minifyGql, bd as minifyHtml, be as minifyJs, bf as minifySql, bg as normalizeRef, bh as parseCommitTrailers, bi as parseConnectionString, bj as parseDockerImage, bk as parseEnv, bl as parseGitCommand, bm as parseGithubUrl, bn as parseSpec, bo as removeConsoleCalls, bp as removeEmptyAttributes, bq as removeHtmlComments, br as removeJsComments, bs as removeRedundantAttributes, bt as searchCheatsheet, bu as searchEndpoints, bv as splitStatements, bw as testGitignorePatterns, bx as testPattern, by as testRegex, bz as validateAria, bA as validateEditorConfig, bB as validateEnvKey, bC as validateFenceLanguageTags, bD as validateMermaidSyntax, bE as validatePackageExports, bF as validateTsconfig } from '../code-DvJYYTea.cjs';
@@ -1 +1 @@
1
- export { A as ALL_FLAGS, a as ApiEndpoint, b as ApiInfo, d as AriaIssue, e as AriaValidationResult, C as CHEATSHEET, f as CharClassOptions, g as CharClassResult, h as CheatsheetEntry, i as CommitTrailer, j as CommitTrailerResult, k as ConnectionStringHost, l as ConnectionStringResult, m as ConventionalCommitFinding, n as ConventionalCommitFooter, o as ConventionalCommitOptions, p as ConventionalCommitParsed, q as ConventionalCommitResult, r as ConventionalCommitSeverity, s as CssResult, D as DEFAULT_COMMIT_TYPES, t as DependencyAuditDuplicate, u as DependencyAuditEntry, v as DependencyAuditIssue, w as DependencyAuditResult, x as DependencyRangeType, y as DependencySection, z as DockerImageRef, B as DockerfileLintFinding, E as DockerfileLintResult, F as DockerfileStage, G as EditorConfigIssue, H as EditorConfigProperty, I as EditorConfigSection, J as EditorConfigValidationResult, K as EnvEntry, L as EnvParseResult, M as ExportsIssue, N as ExportsShape, O as ExportsValidationResult, P as FenceTagIssue, Q as FenceTagIssueType, R as FenceValidationResult, S as GitCommandConfig, T as GitCommandResult, U as GitOperation, V as GithubUrlInfo, W as GithubUrlType, X as GitignoreTestResult, Y as GqlFormatResult, Z as HtmlFormatResult, _ as HtmlMinifyOptions, $ as HtmlMinifyResult, a0 as JsMinifyOptions, a1 as JsMinifyResult, a2 as KNOWN_LANGUAGE_TAGS, a3 as LinkReferenceDefinition, a4 as LinkReferenceUsage, a5 as MIME_TABLE, a6 as MarkdownFootnoteDefinition, a7 as MarkdownFootnoteReference, a8 as MarkdownFootnoteResult, a9 as MarkdownLinkReferenceResult, aa as MatchResult, ab as MimeEntry, ac as MimeLookupResult, ad as OPERATIONS, ae as ParsedSpec, af as PlaceholderStyle, ag as RedosFinding, ah as RedosResult, ai as RedosSeverity, aj as RegexBackreferenceInfo, ak as RegexError, al as RegexFlag, am as RegexGroupAnalysis, an as RegexGroupInfo, ao as RegexGroupIssue, ap as RegexMatch, aq as RegexResult, ar as RegexSuccess, as as ResolvedLinkReference, at as SQL_DEFAULT_OPTIONS, au as Segment, av as SpecVersion, aw as SqlDialect, ax as SqlFormatOptions, ay as SqlPlaceholder, az as SqlPlaceholderResult, aA as SvgSpriteResult, aB as SvgSpriteSymbol, aC as TestPatternResult, aD as TsconfigIssue, aE as TsconfigValidationResult, aF as analyzeRegexGroups, aG as auditDependencyRanges, aH as buildCharacterClass, aI as buildDockerPull, aJ as buildDockerRun, aK as buildGitCommand, aL as collapseHtmlWhitespace, aM as collapseJsWhitespace, aN as countProperties, aO as countRules, aP as countSqlPlaceholders, aQ as detectDialect, aR as detectOperationType, aS as detectRedos, aT as envToExport, aU as envToJson, aV as extractMarkdownFootnotes, aW as extractMarkdownLinkReferences, aX as extractSvgSpriteSymbols, aY as formatCss, aZ as formatGql, a_ as formatHtml, a$ as formatSql, b0 as getEndpointsByTag, b1 as getHtmlStats, b2 as getJsStats, b3 as getMethodColor, b4 as isValidTag, b5 as lintConventionalCommit, b6 as lintDockerfile, b7 as lookupMime, b8 as minifyCss, b9 as minifyGql, ba as minifyHtml, bb as minifyJs, bc as minifySql, bd as normalizeRef, be as parseCommitTrailers, bf as parseConnectionString, bg as parseDockerImage, bh as parseEnv, bi as parseGitCommand, bj as parseGithubUrl, bk as parseSpec, bl as removeConsoleCalls, bm as removeEmptyAttributes, bn as removeHtmlComments, bo as removeJsComments, bp as removeRedundantAttributes, bq as searchCheatsheet, br as searchEndpoints, bs as splitStatements, bt as testGitignorePatterns, bu as testPattern, bv as testRegex, bw as validateAria, bx as validateEditorConfig, by as validateEnvKey, bz as validateFenceLanguageTags, bA as validatePackageExports, bB as validateTsconfig } from '../code-B9LwFkB1.js';
1
+ export { A as ALL_FLAGS, a as ApiEndpoint, b as ApiInfo, d as AriaIssue, e as AriaValidationResult, C as CHEATSHEET, f as CharClassOptions, g as CharClassResult, h as CheatsheetEntry, i as CommitTrailer, j as CommitTrailerResult, k as ConnectionStringHost, l as ConnectionStringResult, m as ConventionalCommitFinding, n as ConventionalCommitFooter, o as ConventionalCommitOptions, p as ConventionalCommitParsed, q as ConventionalCommitResult, r as ConventionalCommitSeverity, s as CssResult, D as DEFAULT_COMMIT_TYPES, t as DependencyAuditDuplicate, u as DependencyAuditEntry, v as DependencyAuditIssue, w as DependencyAuditResult, x as DependencyRangeType, y as DependencySection, z as DockerImageRef, B as DockerfileLintFinding, E as DockerfileLintResult, F as DockerfileStage, G as EditorConfigIssue, H as EditorConfigProperty, I as EditorConfigSection, J as EditorConfigValidationResult, K as EnvEntry, L as EnvParseResult, M as ExportsIssue, N as ExportsShape, O as ExportsValidationResult, P as FenceTagIssue, Q as FenceTagIssueType, R as FenceValidationResult, S as GitCommandConfig, T as GitCommandResult, U as GitOperation, V as GithubUrlInfo, W as GithubUrlType, X as GitignoreTestResult, Y as GqlFormatResult, Z as HtmlFormatResult, _ as HtmlMinifyOptions, $ as HtmlMinifyResult, a0 as JsMinifyOptions, a1 as JsMinifyResult, a2 as KNOWN_LANGUAGE_TAGS, a3 as LinkReferenceDefinition, a4 as LinkReferenceUsage, a5 as MIME_TABLE, a6 as MarkdownFootnoteDefinition, a7 as MarkdownFootnoteReference, a8 as MarkdownFootnoteResult, a9 as MarkdownLinkReferenceResult, aa as MatchResult, ab as MermaidSyntaxIssue, ac as MermaidSyntaxResult, ad as MermaidSyntaxRule, ae as MimeEntry, af as MimeLookupResult, ag as OPERATIONS, ah as ParsedSpec, ai as PlaceholderStyle, aj as RedosFinding, ak as RedosResult, al as RedosSeverity, am as RegexBackreferenceInfo, an as RegexError, ao as RegexFlag, ap as RegexGroupAnalysis, aq as RegexGroupInfo, ar as RegexGroupIssue, as as RegexMatch, at as RegexResult, au as RegexSuccess, av as ResolvedLinkReference, aw as SQL_DEFAULT_OPTIONS, ax as Segment, ay as SpecVersion, az as SqlDialect, aA as SqlFormatOptions, aB as SqlPlaceholder, aC as SqlPlaceholderResult, aD as SvgSpriteResult, aE as SvgSpriteSymbol, aF as TestPatternResult, aG as TsconfigIssue, aH as TsconfigValidationResult, aI as analyzeRegexGroups, aJ as auditDependencyRanges, aK as buildCharacterClass, aL as buildDockerPull, aM as buildDockerRun, aN as buildGitCommand, aO as collapseHtmlWhitespace, aP as collapseJsWhitespace, aQ as countProperties, aR as countRules, aS as countSqlPlaceholders, aT as detectDialect, aU as detectOperationType, aV as detectRedos, aW as envToExport, aX as envToJson, aY as extractMarkdownFootnotes, aZ as extractMarkdownLinkReferences, a_ as extractSvgSpriteSymbols, a$ as formatCss, b0 as formatGql, b1 as formatHtml, b2 as formatSql, b3 as getEndpointsByTag, b4 as getHtmlStats, b5 as getJsStats, b6 as getMethodColor, b7 as isValidTag, b8 as lintConventionalCommit, b9 as lintDockerfile, ba as lookupMime, bb as minifyCss, bc as minifyGql, bd as minifyHtml, be as minifyJs, bf as minifySql, bg as normalizeRef, bh as parseCommitTrailers, bi as parseConnectionString, bj as parseDockerImage, bk as parseEnv, bl as parseGitCommand, bm as parseGithubUrl, bn as parseSpec, bo as removeConsoleCalls, bp as removeEmptyAttributes, bq as removeHtmlComments, br as removeJsComments, bs as removeRedundantAttributes, bt as searchCheatsheet, bu as searchEndpoints, bv as splitStatements, bw as testGitignorePatterns, bx as testPattern, by as testRegex, bz as validateAria, bA as validateEditorConfig, bB as validateEnvKey, bC as validateFenceLanguageTags, bD as validateMermaidSyntax, bE as validatePackageExports, bF as validateTsconfig } from '../code-DvJYYTea.js';
@@ -1,2 +1,2 @@
1
- export { ALL_FLAGS, CHEATSHEET, DEFAULT_COMMIT_TYPES, KNOWN_LANGUAGE_TAGS, MIME_TABLE, OPERATIONS, SQL_DEFAULT_OPTIONS, analyzeRegexGroups, auditDependencyRanges, buildCharacterClass, buildDockerPull, buildDockerRun, buildGitCommand, collapseHtmlWhitespace, collapseJsWhitespace, countProperties, countRules, countSqlPlaceholders, detectDialect, detectOperationType, detectRedos, envToExport, envToJson, extractMarkdownFootnotes, extractMarkdownLinkReferences, extractSvgSpriteSymbols, formatCss, formatGql, formatHtml, formatSql, getEndpointsByTag, getHtmlStats, getJsStats, getMethodColor, isValidTag, lintConventionalCommit, lintDockerfile, lookupMime, minifyCss, minifyGql, minifyHtml, minifyJs, minifySql, normalizeRef, parseCommitTrailers, parseConnectionString, parseDockerImage, parseEnv, parseGitCommand, parseGithubUrl, parseSpec, removeConsoleCalls, removeEmptyAttributes, removeHtmlComments, removeJsComments, removeRedundantAttributes, searchCheatsheet, searchEndpoints, splitStatements, testGitignorePatterns, testPattern, testRegex, validateAria, validateEditorConfig, validateEnvKey, validateFenceLanguageTags, validatePackageExports, validateTsconfig } from '../chunk-7XHM7HHU.js';
1
+ export { ALL_FLAGS, CHEATSHEET, DEFAULT_COMMIT_TYPES, KNOWN_LANGUAGE_TAGS, MIME_TABLE, OPERATIONS, SQL_DEFAULT_OPTIONS, analyzeRegexGroups, auditDependencyRanges, buildCharacterClass, buildDockerPull, buildDockerRun, buildGitCommand, collapseHtmlWhitespace, collapseJsWhitespace, countProperties, countRules, countSqlPlaceholders, detectDialect, detectOperationType, detectRedos, envToExport, envToJson, extractMarkdownFootnotes, extractMarkdownLinkReferences, extractSvgSpriteSymbols, formatCss, formatGql, formatHtml, formatSql, getEndpointsByTag, getHtmlStats, getJsStats, getMethodColor, isValidTag, lintConventionalCommit, lintDockerfile, lookupMime, minifyCss, minifyGql, minifyHtml, minifyJs, minifySql, normalizeRef, parseCommitTrailers, parseConnectionString, parseDockerImage, parseEnv, parseGitCommand, parseGithubUrl, parseSpec, removeConsoleCalls, removeEmptyAttributes, removeHtmlComments, removeJsComments, removeRedundantAttributes, searchCheatsheet, searchEndpoints, splitStatements, testGitignorePatterns, testPattern, testRegex, validateAria, validateEditorConfig, validateEnvKey, validateFenceLanguageTags, validateMermaidSyntax, validatePackageExports, validateTsconfig } from '../chunk-KYBI62YY.js';
2
2
  import '../chunk-MLKGABMK.js';
@@ -1544,6 +1544,84 @@ function generateMarkdownToc(markdown, options = {}) {
1544
1544
  });
1545
1545
  return { toc: tocLines.join("\n"), entries };
1546
1546
  }
1547
+ var HEADING_HIERARCHY_RE = /^(#{1,6})(?!#)(?:[ \t]+(.*?))?[ \t]*#*[ \t]*$/;
1548
+ function validateMarkdownHeadingHierarchy(markdown) {
1549
+ const lines = markdown.replace(/\r\n/g, "\n").split("\n");
1550
+ const headings = [];
1551
+ let inFence = false;
1552
+ let fenceMarker = "";
1553
+ for (let i = 0; i < lines.length; i++) {
1554
+ const line = lines[i];
1555
+ const fenceMatch = line.match(/^\s*(```+|~~~+)/);
1556
+ if (fenceMatch) {
1557
+ if (!inFence) {
1558
+ inFence = true;
1559
+ fenceMarker = fenceMatch[1][0];
1560
+ } else if (fenceMatch[1][0] === fenceMarker) {
1561
+ inFence = false;
1562
+ }
1563
+ continue;
1564
+ }
1565
+ if (inFence) continue;
1566
+ const match = line.match(HEADING_HIERARCHY_RE);
1567
+ if (!match) continue;
1568
+ const level = match[1].length;
1569
+ const text = stripInlineMarkdown(match[2] ?? "");
1570
+ headings.push({ line: i + 1, level, text });
1571
+ }
1572
+ const issues = [];
1573
+ const seen = /* @__PURE__ */ new Map();
1574
+ let h1Count = 0;
1575
+ let firstH1Line = null;
1576
+ let prevLevel = null;
1577
+ headings.forEach((h, idx) => {
1578
+ if (h.text === "") {
1579
+ issues.push({ line: h.line, type: "empty-heading", message: `Heading at line ${h.line} has no text` });
1580
+ }
1581
+ if (idx === 0 && h.level !== 1) {
1582
+ issues.push({
1583
+ line: h.line,
1584
+ type: "starts-below-h1",
1585
+ message: `Document starts with an H${h.level} heading instead of H1`
1586
+ });
1587
+ }
1588
+ if (h.level === 1) {
1589
+ h1Count++;
1590
+ if (h1Count === 1) {
1591
+ firstH1Line = h.line;
1592
+ } else {
1593
+ issues.push({
1594
+ line: h.line,
1595
+ type: "multiple-h1",
1596
+ message: `Multiple H1 headings found: another H1 at line ${h.line} (first was at line ${firstH1Line})`
1597
+ });
1598
+ }
1599
+ }
1600
+ if (prevLevel !== null && h.level > prevLevel + 1) {
1601
+ const skipped = h.level - prevLevel > 2 ? `H${prevLevel + 1}-H${h.level - 1}` : `H${prevLevel + 1}`;
1602
+ issues.push({
1603
+ line: h.line,
1604
+ type: "skipped-level",
1605
+ message: `Heading level jumps from H${prevLevel} to H${h.level} at line ${h.line}, skipping ${skipped}`
1606
+ });
1607
+ }
1608
+ prevLevel = h.level;
1609
+ if (h.text !== "") {
1610
+ const key = `${h.level}:${h.text.toLowerCase()}`;
1611
+ const earlierLine = seen.get(key);
1612
+ if (earlierLine !== void 0) {
1613
+ issues.push({
1614
+ line: h.line,
1615
+ type: "duplicate-heading",
1616
+ message: `Heading "${h.text}" at line ${h.line} duplicates an H${h.level} heading at line ${earlierLine}`
1617
+ });
1618
+ } else {
1619
+ seen.set(key, h.line);
1620
+ }
1621
+ }
1622
+ });
1623
+ return { headings, issues, h1Count };
1624
+ }
1547
1625
  function quoteSqlIdentifier(name, dialect) {
1548
1626
  if (dialect === "mysql") return "`" + name.replace(/`/g, "``") + "`";
1549
1627
  return '"' + name.replace(/"/g, '""') + '"';
@@ -1989,6 +2067,7 @@ exports.toCsvString = toCsvString;
1989
2067
  exports.tomlToJson = tomlToJson;
1990
2068
  exports.validateEnvKey = validateEnvKey;
1991
2069
  exports.validateIni = validateIni;
2070
+ exports.validateMarkdownHeadingHierarchy = validateMarkdownHeadingHierarchy;
1992
2071
  exports.validateNdjson = validateNdjson;
1993
2072
  exports.validateToml = validateToml;
1994
2073
  exports.validateXml = validateXml;
@@ -1 +1 @@
1
- export { C as CaptionSpeedCue, a as CaptionSpeedResult, b as ConvertedSubtitles, c as CsvColumnType, e as CsvColumnTypeInfo, f as CsvColumnTypeOptions, g as CsvColumnTypeResult, h as CsvDuplicateGroup, i as CsvDuplicateOptions, j as CsvDuplicateResult, k as CsvParseResult, l as CsvToSqlOptions, m as CsvToSqlResult, E as EnvDiffError, n as EnvDiffResult, o as EnvEntry, p as EnvParseResult, F as FrontMatterError, q as FrontMatterResult, I as IniSection, M as MarkdownTableAlignResult, r as MarkdownTableColumnAlignment, s as MarkdownTableInfo, t as MarkdownTaskListItem, u as MarkdownTaskListProgressResult, v as MarkdownTaskListSectionSummary, w as MarkdownTocEntry, x as MarkdownTocOptions, y as MarkdownTocResult, N as NdjsonDedupeResult, z as NdjsonLineResult, A as NdjsonValidateResult, P as ParseOptions, B as ParsedIni, D as ParsedSubtitles, S as SubtitleCue, G as SubtitleFormat, T as TomlFormatResult, V as ValidationResult, X as XmlFormatResult, H as XmlToJsonOptions, Y as YamlAnchorInfo, J as YamlAnchorResolveError, K as YamlAnchorResolveResult, L as alignMarkdownTables, O as analyzeCaptionSpeed, Q as calculateMarkdownTaskListProgress, R as convertSubtitles, U as csvToJson, W as csvToSqlInsert, Z as dedupeNdjson, _ as detectDelimiter, $ as detectSubtitleFormat, a0 as diffEnvExample, a1 as envToExport, a2 as envToJson, a3 as findCsvDuplicateRows, a4 as formatNdjson, a5 as formatSubtitleTimestamp, a6 as formatToml, a7 as formatXml, a8 as generateMarkdownToc, a9 as getSection, aa as getSectionNames, ab as getTomlStats, ac as getXmlStats, ad as getYamlStats, ae as inferCsvColumnTypes, af as iniToJson, ag as jsonArrayToNdjson, ah as jsonToIni, ai as jsonToToml, aj as jsonToXml, ak as minifyNdjson, al as minifyToml, am as minifyXml, an as ndjsonToCsv, ao as ndjsonToJsonArray, ap as parseCsv, aq as parseEnv, ar as parseFrontMatter, as as parseIni, at as parseSubtitleTimestamp, au as parseSubtitles, av as parseXmlToObject, aw as resolveYamlAnchors, ax as serializeSubtitles, ay as shiftSubtitles, az as stringifyIni, aA as toCsvString, aB as tomlToJson, aC as validateEnvKey, aD as validateIni, aE as validateNdjson, aF as validateToml, aG as validateXml, aH as validateYaml, aI as xmlToJson } from '../data-DIyBrJ6l.cjs';
1
+ export { C as CaptionSpeedCue, a as CaptionSpeedResult, b as ConvertedSubtitles, c as CsvColumnType, e as CsvColumnTypeInfo, f as CsvColumnTypeOptions, g as CsvColumnTypeResult, h as CsvDuplicateGroup, i as CsvDuplicateOptions, j as CsvDuplicateResult, k as CsvParseResult, l as CsvToSqlOptions, m as CsvToSqlResult, E as EnvDiffError, n as EnvDiffResult, o as EnvEntry, p as EnvParseResult, F as FrontMatterError, q as FrontMatterResult, H as HeadingEntry, r as HeadingHierarchyResult, s as HeadingIssue, t as HeadingIssueType, I as IniSection, M as MarkdownTableAlignResult, u as MarkdownTableColumnAlignment, v as MarkdownTableInfo, w as MarkdownTaskListItem, x as MarkdownTaskListProgressResult, y as MarkdownTaskListSectionSummary, z as MarkdownTocEntry, A as MarkdownTocOptions, B as MarkdownTocResult, N as NdjsonDedupeResult, D as NdjsonLineResult, G as NdjsonValidateResult, P as ParseOptions, J as ParsedIni, K as ParsedSubtitles, S as SubtitleCue, L as SubtitleFormat, T as TomlFormatResult, V as ValidationResult, X as XmlFormatResult, O as XmlToJsonOptions, Y as YamlAnchorInfo, Q as YamlAnchorResolveError, R as YamlAnchorResolveResult, U as alignMarkdownTables, W as analyzeCaptionSpeed, Z as calculateMarkdownTaskListProgress, _ as convertSubtitles, $ as csvToJson, a0 as csvToSqlInsert, a1 as dedupeNdjson, a2 as detectDelimiter, a3 as detectSubtitleFormat, a4 as diffEnvExample, a5 as envToExport, a6 as envToJson, a7 as findCsvDuplicateRows, a8 as formatNdjson, a9 as formatSubtitleTimestamp, aa as formatToml, ab as formatXml, ac as generateMarkdownToc, ad as getSection, ae as getSectionNames, af as getTomlStats, ag as getXmlStats, ah as getYamlStats, ai as inferCsvColumnTypes, aj as iniToJson, ak as jsonArrayToNdjson, al as jsonToIni, am as jsonToToml, an as jsonToXml, ao as minifyNdjson, ap as minifyToml, aq as minifyXml, ar as ndjsonToCsv, as as ndjsonToJsonArray, at as parseCsv, au as parseEnv, av as parseFrontMatter, aw as parseIni, ax as parseSubtitleTimestamp, ay as parseSubtitles, az as parseXmlToObject, aA as resolveYamlAnchors, aB as serializeSubtitles, aC as shiftSubtitles, aD as stringifyIni, aE as toCsvString, aF as tomlToJson, aG as validateEnvKey, aH as validateIni, aI as validateMarkdownHeadingHierarchy, aJ as validateNdjson, aK as validateToml, aL as validateXml, aM as validateYaml, aN as xmlToJson } from '../data-Cz1Q0sg0.cjs';
@@ -1 +1 @@
1
- export { C as CaptionSpeedCue, a as CaptionSpeedResult, b as ConvertedSubtitles, c as CsvColumnType, e as CsvColumnTypeInfo, f as CsvColumnTypeOptions, g as CsvColumnTypeResult, h as CsvDuplicateGroup, i as CsvDuplicateOptions, j as CsvDuplicateResult, k as CsvParseResult, l as CsvToSqlOptions, m as CsvToSqlResult, E as EnvDiffError, n as EnvDiffResult, o as EnvEntry, p as EnvParseResult, F as FrontMatterError, q as FrontMatterResult, I as IniSection, M as MarkdownTableAlignResult, r as MarkdownTableColumnAlignment, s as MarkdownTableInfo, t as MarkdownTaskListItem, u as MarkdownTaskListProgressResult, v as MarkdownTaskListSectionSummary, w as MarkdownTocEntry, x as MarkdownTocOptions, y as MarkdownTocResult, N as NdjsonDedupeResult, z as NdjsonLineResult, A as NdjsonValidateResult, P as ParseOptions, B as ParsedIni, D as ParsedSubtitles, S as SubtitleCue, G as SubtitleFormat, T as TomlFormatResult, V as ValidationResult, X as XmlFormatResult, H as XmlToJsonOptions, Y as YamlAnchorInfo, J as YamlAnchorResolveError, K as YamlAnchorResolveResult, L as alignMarkdownTables, O as analyzeCaptionSpeed, Q as calculateMarkdownTaskListProgress, R as convertSubtitles, U as csvToJson, W as csvToSqlInsert, Z as dedupeNdjson, _ as detectDelimiter, $ as detectSubtitleFormat, a0 as diffEnvExample, a1 as envToExport, a2 as envToJson, a3 as findCsvDuplicateRows, a4 as formatNdjson, a5 as formatSubtitleTimestamp, a6 as formatToml, a7 as formatXml, a8 as generateMarkdownToc, a9 as getSection, aa as getSectionNames, ab as getTomlStats, ac as getXmlStats, ad as getYamlStats, ae as inferCsvColumnTypes, af as iniToJson, ag as jsonArrayToNdjson, ah as jsonToIni, ai as jsonToToml, aj as jsonToXml, ak as minifyNdjson, al as minifyToml, am as minifyXml, an as ndjsonToCsv, ao as ndjsonToJsonArray, ap as parseCsv, aq as parseEnv, ar as parseFrontMatter, as as parseIni, at as parseSubtitleTimestamp, au as parseSubtitles, av as parseXmlToObject, aw as resolveYamlAnchors, ax as serializeSubtitles, ay as shiftSubtitles, az as stringifyIni, aA as toCsvString, aB as tomlToJson, aC as validateEnvKey, aD as validateIni, aE as validateNdjson, aF as validateToml, aG as validateXml, aH as validateYaml, aI as xmlToJson } from '../data-DIyBrJ6l.js';
1
+ export { C as CaptionSpeedCue, a as CaptionSpeedResult, b as ConvertedSubtitles, c as CsvColumnType, e as CsvColumnTypeInfo, f as CsvColumnTypeOptions, g as CsvColumnTypeResult, h as CsvDuplicateGroup, i as CsvDuplicateOptions, j as CsvDuplicateResult, k as CsvParseResult, l as CsvToSqlOptions, m as CsvToSqlResult, E as EnvDiffError, n as EnvDiffResult, o as EnvEntry, p as EnvParseResult, F as FrontMatterError, q as FrontMatterResult, H as HeadingEntry, r as HeadingHierarchyResult, s as HeadingIssue, t as HeadingIssueType, I as IniSection, M as MarkdownTableAlignResult, u as MarkdownTableColumnAlignment, v as MarkdownTableInfo, w as MarkdownTaskListItem, x as MarkdownTaskListProgressResult, y as MarkdownTaskListSectionSummary, z as MarkdownTocEntry, A as MarkdownTocOptions, B as MarkdownTocResult, N as NdjsonDedupeResult, D as NdjsonLineResult, G as NdjsonValidateResult, P as ParseOptions, J as ParsedIni, K as ParsedSubtitles, S as SubtitleCue, L as SubtitleFormat, T as TomlFormatResult, V as ValidationResult, X as XmlFormatResult, O as XmlToJsonOptions, Y as YamlAnchorInfo, Q as YamlAnchorResolveError, R as YamlAnchorResolveResult, U as alignMarkdownTables, W as analyzeCaptionSpeed, Z as calculateMarkdownTaskListProgress, _ as convertSubtitles, $ as csvToJson, a0 as csvToSqlInsert, a1 as dedupeNdjson, a2 as detectDelimiter, a3 as detectSubtitleFormat, a4 as diffEnvExample, a5 as envToExport, a6 as envToJson, a7 as findCsvDuplicateRows, a8 as formatNdjson, a9 as formatSubtitleTimestamp, aa as formatToml, ab as formatXml, ac as generateMarkdownToc, ad as getSection, ae as getSectionNames, af as getTomlStats, ag as getXmlStats, ah as getYamlStats, ai as inferCsvColumnTypes, aj as iniToJson, ak as jsonArrayToNdjson, al as jsonToIni, am as jsonToToml, an as jsonToXml, ao as minifyNdjson, ap as minifyToml, aq as minifyXml, ar as ndjsonToCsv, as as ndjsonToJsonArray, at as parseCsv, au as parseEnv, av as parseFrontMatter, aw as parseIni, ax as parseSubtitleTimestamp, ay as parseSubtitles, az as parseXmlToObject, aA as resolveYamlAnchors, aB as serializeSubtitles, aC as shiftSubtitles, aD as stringifyIni, aE as toCsvString, aF as tomlToJson, aG as validateEnvKey, aH as validateIni, aI as validateMarkdownHeadingHierarchy, aJ as validateNdjson, aK as validateToml, aL as validateXml, aM as validateYaml, aN as xmlToJson } from '../data-Cz1Q0sg0.js';
@@ -1,2 +1,2 @@
1
- export { alignMarkdownTables, analyzeCaptionSpeed, calculateMarkdownTaskListProgress, convertSubtitles, csvToJson, csvToSqlInsert, 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, validateNdjson, validateToml, validateXml, validateYaml, xmlToJson } from '../chunk-XOUS3M5Z.js';
1
+ export { alignMarkdownTables, analyzeCaptionSpeed, calculateMarkdownTaskListProgress, convertSubtitles, csvToJson, csvToSqlInsert, 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 } from '../chunk-CUQDHXUX.js';
2
2
  import '../chunk-MLKGABMK.js';
@@ -1757,6 +1757,56 @@ function calculateSavingsGoal(input) {
1757
1757
  finalBalance: round4(goalAmount)
1758
1758
  };
1759
1759
  }
1760
+ function calculateAnnuityPayout(input) {
1761
+ const { mode, structure, years, paymentsPerYear, annualRatePercent, principal, periodicPayout } = input;
1762
+ if (mode !== "payout-from-principal" && mode !== "principal-from-payout") {
1763
+ return { error: "mode must be 'payout-from-principal' or 'principal-from-payout'" };
1764
+ }
1765
+ if (structure !== "ordinary" && structure !== "due") {
1766
+ return { error: "structure must be 'ordinary' or 'due'" };
1767
+ }
1768
+ if (!Number.isInteger(years) || years <= 0) return { error: "years must be a positive whole number" };
1769
+ if (!Number.isInteger(paymentsPerYear) || paymentsPerYear <= 0) {
1770
+ return { error: "paymentsPerYear must be a positive whole number" };
1771
+ }
1772
+ if (!Number.isFinite(annualRatePercent) || annualRatePercent < 0) {
1773
+ return { error: "annualRatePercent must be a finite, non-negative number" };
1774
+ }
1775
+ const periods = years * paymentsPerYear;
1776
+ const r = annualRatePercent / 100 / paymentsPerYear;
1777
+ const round22 = (n) => Math.round(n * 100) / 100;
1778
+ let factor = r === 0 ? periods : (1 - Math.pow(1 + r, -periods)) / r;
1779
+ if (structure === "due") factor *= 1 + r;
1780
+ let resolvedPrincipal;
1781
+ let resolvedPayout;
1782
+ if (mode === "payout-from-principal") {
1783
+ if (typeof principal !== "number" || !Number.isFinite(principal) || principal <= 0) {
1784
+ return { error: 'principal must be a finite number greater than zero for mode "payout-from-principal"' };
1785
+ }
1786
+ resolvedPrincipal = principal;
1787
+ resolvedPayout = principal / factor;
1788
+ } else {
1789
+ if (typeof periodicPayout !== "number" || !Number.isFinite(periodicPayout) || periodicPayout <= 0) {
1790
+ return { error: 'periodicPayout must be a finite number greater than zero for mode "principal-from-payout"' };
1791
+ }
1792
+ resolvedPayout = periodicPayout;
1793
+ resolvedPrincipal = periodicPayout * factor;
1794
+ }
1795
+ const totalPaid = resolvedPayout * periods;
1796
+ const totalInterest = totalPaid - resolvedPrincipal;
1797
+ return {
1798
+ mode,
1799
+ structure,
1800
+ years,
1801
+ paymentsPerYear,
1802
+ periods,
1803
+ annualRatePercent,
1804
+ principal: round22(resolvedPrincipal),
1805
+ periodicPayout: round22(resolvedPayout),
1806
+ totalPaid: round22(totalPaid),
1807
+ totalInterest: round22(totalInterest)
1808
+ };
1809
+ }
1760
1810
  function calculateRoi(input) {
1761
1811
  const { initialValue, finalValue, years } = input;
1762
1812
  if (!Number.isFinite(initialValue) || initialValue <= 0) {
@@ -2839,6 +2889,7 @@ exports.autoFormat = autoFormat;
2839
2889
  exports.bumpVersion = bumpVersion;
2840
2890
  exports.calcAspectRatio = calcAspectRatio;
2841
2891
  exports.calcSubnet = calcSubnet;
2892
+ exports.calculateAnnuityPayout = calculateAnnuityPayout;
2842
2893
  exports.calculateBlendedLoanRate = calculateBlendedLoanRate;
2843
2894
  exports.calculateBreakEven = calculateBreakEven;
2844
2895
  exports.calculateCashBreakdown = calculateCashBreakdown;
@@ -1 +1 @@
1
- export { A as AmortizationRow, a as AprApyDirection, b as AprApyResult, c as AspectRatioResult, B as BASE_LABELS, d as BASE_PREFIXES, e as BYTE_UNITS, f as BarcodeFormat, g as BarcodeValidationResult, h as BaseConvertResult, i as BlendedLoanRateResult, j as BreakEvenInput, k as BreakEvenResult, l as ByteConvertResult, m as ByteUnit, C as COMMON_CURRENCIES, n as COMMON_LOCALES, o as COMMON_PERMISSIONS, p as COMMON_RATIOS, q as COMMON_SIZES, r as COMMON_TAX_RATES, s as COMMON_TIP_PERCENTAGES, t as COMMON_VIEWPORTS, v as CardValidationResult, w as CashBreakdownResult, x as CashChangeResult, y as CashDenominationItem, z as CashRoundingMode, D as CashRoundingResult, E as CdMaturityResult, F as CommissionBreakdownEntry, G as CommissionInput, H as CommissionResult, I as CommissionTier, J as CompareUnitPricesResult, K as CompoundInterestResult, L as CompoundYearRow, M as CreditAccountInput, N as CreditAccountResult, O as CreditCardMinimumPaymentResult, P as CreditUtilizationResult, Q as DebtItemInput, R as DebtItemResult, S as DebtPayoffComparison, T as DebtPayoffInput, U as DebtPayoffPlanResult, V as DebtPayoffScheduleEntry, W as DebtPayoffStrategy, X as DebtPayoffStrategyResult, Y as DebtToIncomeRatioResult, Z as DepreciationMethod, _ as DepreciationResult, $ as DepreciationYear, a0 as Dimensions, a1 as DiscountField, a2 as DiscountInput, a3 as DiscountResult, a4 as DtiTier, a5 as EmiResult, a6 as EmiTenureUnit, a7 as EmiYearlyBreakdownRow, a8 as ExtraPaymentPayoffResult, a9 as FilePermissions, aa as FileSizeUnit, ab as FormatOptions, ac as FreelancerRateInput, ad as FreelancerRateResult, ae as GPA_GRADE_POINTS, af as GpaCourse, ag as GpaCourseResult, ah as GpaResult, ai as IbanValidationResult, aj as IpConversion, ak as IsbnFormat, al as IsbnResult, am as IsinValidationResult, an as LoanBalanceInput, ao as LoanBalanceResult, ap as LoanPrepaymentPenaltyResult, aq as LoanRefinanceResult, ar as LoanResult, as as MarginMarkupField, at as MarginMarkupInput, au as MarginMarkupResult, av as MortgagePointsResult, aw as MovingAveragePoint, ax as MovingAverageResult, ay as NotationStyle, az as NumberBase, aA as PaybackPeriodInput, aB as PaybackPeriodResult, aC as PercentChangeDirection, aD as PercentageChangeResult, aE as Permission, aF as PrepaymentPenaltyType, aG as PxConvertResult, aH as RealRateField, aI as RealRateOfReturnInput, aJ as RealRateOfReturnResult, aK as RequiredBandwidthResult, aL as RoiInput, aM as RoiResult, aN as RuleOf72Direction, aO as RuleOf72Result, aP as SavingsGoalInput, aQ as SavingsGoalMode, aR as SavingsGoalResult, aS as SemverVersion, aT as SimpleInterestResult, aU as SubnetInfo, aV as SuccessiveDiscountResult, aW as SuccessiveDiscountStep, aX as TaxDirection, aY as TaxEquivalentYieldDirection, aZ as TaxEquivalentYieldResult, a_ as TaxResult, a$ as TimeValueDirection, b0 as TimeValueResult, b1 as TipSplitResult, b2 as TransferSpeedUnit, b3 as TransferTimeResult, b4 as USD_DENOMINATIONS, b5 as UnitPriceItem, b6 as UnitPriceResult, b7 as UtilizationTier, b8 as VideoBitrateInput, b9 as VideoBitrateMode, ba as VideoBitrateResult, bb as ViewportConvertResult, bc as VinValidationResult, bd as applySuccessiveDiscounts, be as autoFormat, bf as bumpVersion, bg as calcAspectRatio, bh as calcSubnet, bi as calculateBlendedLoanRate, bj as calculateBreakEven, bk as calculateCashBreakdown, bl as calculateCashRounding, bm as calculateCdMaturity, bn as calculateChange, bo as calculateCompoundInterest, bp as calculateCreditCardMinimumPayment, bq as calculateCreditUtilization, br as calculateDebtToIncomeRatio, bs as calculateDepreciationSchedule, bt as calculateDiscount, bu as calculateEmi, bv as calculateExtraPaymentPayoff, bw as calculateFreelancerRate, bx as calculateGpa, by as calculateLoan, bz as calculateLoanPrepaymentPenalty, bA as calculateLoanRefinance, bB as calculateMarginMarkup, bC as calculateMortgagePoints, bD as calculateMovingAverages, bE as calculatePaybackPeriod, bF as calculatePercentageChange, bG as calculateRealRateOfReturn, bH as calculateRequiredBandwidth, bI as calculateRoi, bJ as calculateRuleOf72, bK as calculateSalesCommission, bL as calculateSavingsGoal, bM as calculateSimpleInterest, bN as calculateTax, bO as calculateTaxEquivalentYield, bP as calculateTimeValue, bQ as calculateTipSplit, bR as calculateTransferTime, bS as calculateVideoBitrate, bT as compareSemver, bU as compareUnitPrices, bV as convert, bW as convertAprApy, bX as convertBytes, bY as convertIp, bZ as coverBox, b_ as decimalToIp, b$ as decimalToIpCidr, c0 as describePermissions, c1 as fitIntoBox, c2 as formatNumber, c3 as formatValue, c4 as formatVwValue, c5 as formatWithSeparator, c6 as gcd, c7 as ipFromBinary, c8 as ipFromDecimal, c9 as ipFromHex, ca as ipToBinary, cb as ipToDecimal, cc as ipToDecimalCidr, cd as ipToHex, ce as ipToOctal, cf as isValid, cg as isValidCidr, ch as isValidIp, ci as isValidIpv4, cj as marginToMarkup, ck as markupToMargin, cl as octalToPermissions, cm as parseFileSize, cn as parseInput, co as parseNumberString, cp as parseSemver, cq as permissionsToChmod, cr as permissionsToOctal, cs as permissionsToSymbolic, ct as planDebtPayoff, cu as ptToPx, cv as pxToAll, cw as pxToViewport, cx as remToPx, cy as satisfiesRange, cz as scaleByHeight, cA as scaleByWidth, cB as sortVersions, cC as splitSubnet, cD as symbolicToPermissions, cE as validateBarcode, cF as validateCardNumber, cG as validateIban, cH as validateIsbn, cI as validateIsin, cJ as validateVin, cK as viewportToPx } from '../units-gLm_pq6U.cjs';
1
+ export { A as AmortizationRow, a as AnnuityPayoutInput, b as AnnuityPayoutMode, c as AnnuityPayoutResult, d as AnnuityStructure, e as AprApyDirection, f as AprApyResult, g as AspectRatioResult, B as BASE_LABELS, h as BASE_PREFIXES, i as BYTE_UNITS, j as BarcodeFormat, k as BarcodeValidationResult, l as BaseConvertResult, m as BlendedLoanRateResult, n as BreakEvenInput, o as BreakEvenResult, p as ByteConvertResult, q as ByteUnit, C as COMMON_CURRENCIES, r as COMMON_LOCALES, s as COMMON_PERMISSIONS, t as COMMON_RATIOS, v as COMMON_SIZES, w as COMMON_TAX_RATES, x as COMMON_TIP_PERCENTAGES, y as COMMON_VIEWPORTS, z as CardValidationResult, D as CashBreakdownResult, E as CashChangeResult, F as CashDenominationItem, G as CashRoundingMode, H as CashRoundingResult, I as CdMaturityResult, J as CommissionBreakdownEntry, K as CommissionInput, L as CommissionResult, M as CommissionTier, N as CompareUnitPricesResult, O as CompoundInterestResult, P as CompoundYearRow, Q as CreditAccountInput, R as CreditAccountResult, S as CreditCardMinimumPaymentResult, T as CreditUtilizationResult, U as DebtItemInput, V as DebtItemResult, W as DebtPayoffComparison, X as DebtPayoffInput, Y as DebtPayoffPlanResult, Z as DebtPayoffScheduleEntry, _ as DebtPayoffStrategy, $ as DebtPayoffStrategyResult, a0 as DebtToIncomeRatioResult, a1 as DepreciationMethod, a2 as DepreciationResult, a3 as DepreciationYear, a4 as Dimensions, a5 as DiscountField, a6 as DiscountInput, a7 as DiscountResult, a8 as DtiTier, a9 as EmiResult, aa as EmiTenureUnit, ab as EmiYearlyBreakdownRow, ac as ExtraPaymentPayoffResult, ad as FilePermissions, ae as FileSizeUnit, af as FormatOptions, ag as FreelancerRateInput, ah as FreelancerRateResult, ai as GPA_GRADE_POINTS, aj as GpaCourse, ak as GpaCourseResult, al as GpaResult, am as IbanValidationResult, an as IpConversion, ao as IsbnFormat, ap as IsbnResult, aq as IsinValidationResult, ar as LoanBalanceInput, as as LoanBalanceResult, at as LoanPrepaymentPenaltyResult, au as LoanRefinanceResult, av as LoanResult, aw as MarginMarkupField, ax as MarginMarkupInput, ay as MarginMarkupResult, az as MortgagePointsResult, aA as MovingAveragePoint, aB as MovingAverageResult, aC as NotationStyle, aD as NumberBase, aE as PaybackPeriodInput, aF as PaybackPeriodResult, aG as PercentChangeDirection, aH as PercentageChangeResult, aI as Permission, aJ as PrepaymentPenaltyType, aK as PxConvertResult, aL as RealRateField, aM as RealRateOfReturnInput, aN as RealRateOfReturnResult, aO as RequiredBandwidthResult, aP as RoiInput, aQ as RoiResult, aR as RuleOf72Direction, aS as RuleOf72Result, aT as SavingsGoalInput, aU as SavingsGoalMode, aV as SavingsGoalResult, aW as SemverVersion, aX as SimpleInterestResult, aY as SubnetInfo, aZ as SuccessiveDiscountResult, a_ as SuccessiveDiscountStep, a$ as TaxDirection, b0 as TaxEquivalentYieldDirection, b1 as TaxEquivalentYieldResult, b2 as TaxResult, b3 as TimeValueDirection, b4 as TimeValueResult, b5 as TipSplitResult, b6 as TransferSpeedUnit, b7 as TransferTimeResult, b8 as USD_DENOMINATIONS, b9 as UnitPriceItem, ba as UnitPriceResult, bb as UtilizationTier, bc as VideoBitrateInput, bd as VideoBitrateMode, be as VideoBitrateResult, bf as ViewportConvertResult, bg as VinValidationResult, bh as applySuccessiveDiscounts, bi as autoFormat, bj as bumpVersion, bk as calcAspectRatio, bl as calcSubnet, bm as calculateAnnuityPayout, bn as calculateBlendedLoanRate, bo as calculateBreakEven, bp as calculateCashBreakdown, bq as calculateCashRounding, br as calculateCdMaturity, bs as calculateChange, bt as calculateCompoundInterest, bu as calculateCreditCardMinimumPayment, bv as calculateCreditUtilization, bw as calculateDebtToIncomeRatio, bx as calculateDepreciationSchedule, by as calculateDiscount, bz as calculateEmi, bA as calculateExtraPaymentPayoff, bB as calculateFreelancerRate, bC as calculateGpa, bD as calculateLoan, bE as calculateLoanPrepaymentPenalty, bF as calculateLoanRefinance, bG as calculateMarginMarkup, bH as calculateMortgagePoints, bI as calculateMovingAverages, bJ as calculatePaybackPeriod, bK as calculatePercentageChange, bL as calculateRealRateOfReturn, bM as calculateRequiredBandwidth, bN as calculateRoi, bO as calculateRuleOf72, bP as calculateSalesCommission, bQ as calculateSavingsGoal, bR as calculateSimpleInterest, bS as calculateTax, bT as calculateTaxEquivalentYield, bU as calculateTimeValue, bV as calculateTipSplit, bW as calculateTransferTime, bX as calculateVideoBitrate, bY as compareSemver, bZ as compareUnitPrices, b_ as convert, b$ as convertAprApy, c0 as convertBytes, c1 as convertIp, c2 as coverBox, c3 as decimalToIp, c4 as decimalToIpCidr, c5 as describePermissions, c6 as fitIntoBox, c7 as formatNumber, c8 as formatValue, c9 as formatVwValue, ca as formatWithSeparator, cb as gcd, cc as ipFromBinary, cd as ipFromDecimal, ce as ipFromHex, cf as ipToBinary, cg as ipToDecimal, ch as ipToDecimalCidr, ci as ipToHex, cj as ipToOctal, ck as isValid, cl as isValidCidr, cm as isValidIp, cn as isValidIpv4, co as marginToMarkup, cp as markupToMargin, cq as octalToPermissions, cr as parseFileSize, cs as parseInput, ct as parseNumberString, cu as parseSemver, cv as permissionsToChmod, cw as permissionsToOctal, cx as permissionsToSymbolic, cy as planDebtPayoff, cz as ptToPx, cA as pxToAll, cB as pxToViewport, cC as remToPx, cD as satisfiesRange, cE as scaleByHeight, cF as scaleByWidth, cG as sortVersions, cH as splitSubnet, cI as symbolicToPermissions, cJ as validateBarcode, cK as validateCardNumber, cL as validateIban, cM as validateIsbn, cN as validateIsin, cO as validateVin, cP as viewportToPx } from '../units-B6aXeGr6.cjs';
@@ -1 +1 @@
1
- export { A as AmortizationRow, a as AprApyDirection, b as AprApyResult, c as AspectRatioResult, B as BASE_LABELS, d as BASE_PREFIXES, e as BYTE_UNITS, f as BarcodeFormat, g as BarcodeValidationResult, h as BaseConvertResult, i as BlendedLoanRateResult, j as BreakEvenInput, k as BreakEvenResult, l as ByteConvertResult, m as ByteUnit, C as COMMON_CURRENCIES, n as COMMON_LOCALES, o as COMMON_PERMISSIONS, p as COMMON_RATIOS, q as COMMON_SIZES, r as COMMON_TAX_RATES, s as COMMON_TIP_PERCENTAGES, t as COMMON_VIEWPORTS, v as CardValidationResult, w as CashBreakdownResult, x as CashChangeResult, y as CashDenominationItem, z as CashRoundingMode, D as CashRoundingResult, E as CdMaturityResult, F as CommissionBreakdownEntry, G as CommissionInput, H as CommissionResult, I as CommissionTier, J as CompareUnitPricesResult, K as CompoundInterestResult, L as CompoundYearRow, M as CreditAccountInput, N as CreditAccountResult, O as CreditCardMinimumPaymentResult, P as CreditUtilizationResult, Q as DebtItemInput, R as DebtItemResult, S as DebtPayoffComparison, T as DebtPayoffInput, U as DebtPayoffPlanResult, V as DebtPayoffScheduleEntry, W as DebtPayoffStrategy, X as DebtPayoffStrategyResult, Y as DebtToIncomeRatioResult, Z as DepreciationMethod, _ as DepreciationResult, $ as DepreciationYear, a0 as Dimensions, a1 as DiscountField, a2 as DiscountInput, a3 as DiscountResult, a4 as DtiTier, a5 as EmiResult, a6 as EmiTenureUnit, a7 as EmiYearlyBreakdownRow, a8 as ExtraPaymentPayoffResult, a9 as FilePermissions, aa as FileSizeUnit, ab as FormatOptions, ac as FreelancerRateInput, ad as FreelancerRateResult, ae as GPA_GRADE_POINTS, af as GpaCourse, ag as GpaCourseResult, ah as GpaResult, ai as IbanValidationResult, aj as IpConversion, ak as IsbnFormat, al as IsbnResult, am as IsinValidationResult, an as LoanBalanceInput, ao as LoanBalanceResult, ap as LoanPrepaymentPenaltyResult, aq as LoanRefinanceResult, ar as LoanResult, as as MarginMarkupField, at as MarginMarkupInput, au as MarginMarkupResult, av as MortgagePointsResult, aw as MovingAveragePoint, ax as MovingAverageResult, ay as NotationStyle, az as NumberBase, aA as PaybackPeriodInput, aB as PaybackPeriodResult, aC as PercentChangeDirection, aD as PercentageChangeResult, aE as Permission, aF as PrepaymentPenaltyType, aG as PxConvertResult, aH as RealRateField, aI as RealRateOfReturnInput, aJ as RealRateOfReturnResult, aK as RequiredBandwidthResult, aL as RoiInput, aM as RoiResult, aN as RuleOf72Direction, aO as RuleOf72Result, aP as SavingsGoalInput, aQ as SavingsGoalMode, aR as SavingsGoalResult, aS as SemverVersion, aT as SimpleInterestResult, aU as SubnetInfo, aV as SuccessiveDiscountResult, aW as SuccessiveDiscountStep, aX as TaxDirection, aY as TaxEquivalentYieldDirection, aZ as TaxEquivalentYieldResult, a_ as TaxResult, a$ as TimeValueDirection, b0 as TimeValueResult, b1 as TipSplitResult, b2 as TransferSpeedUnit, b3 as TransferTimeResult, b4 as USD_DENOMINATIONS, b5 as UnitPriceItem, b6 as UnitPriceResult, b7 as UtilizationTier, b8 as VideoBitrateInput, b9 as VideoBitrateMode, ba as VideoBitrateResult, bb as ViewportConvertResult, bc as VinValidationResult, bd as applySuccessiveDiscounts, be as autoFormat, bf as bumpVersion, bg as calcAspectRatio, bh as calcSubnet, bi as calculateBlendedLoanRate, bj as calculateBreakEven, bk as calculateCashBreakdown, bl as calculateCashRounding, bm as calculateCdMaturity, bn as calculateChange, bo as calculateCompoundInterest, bp as calculateCreditCardMinimumPayment, bq as calculateCreditUtilization, br as calculateDebtToIncomeRatio, bs as calculateDepreciationSchedule, bt as calculateDiscount, bu as calculateEmi, bv as calculateExtraPaymentPayoff, bw as calculateFreelancerRate, bx as calculateGpa, by as calculateLoan, bz as calculateLoanPrepaymentPenalty, bA as calculateLoanRefinance, bB as calculateMarginMarkup, bC as calculateMortgagePoints, bD as calculateMovingAverages, bE as calculatePaybackPeriod, bF as calculatePercentageChange, bG as calculateRealRateOfReturn, bH as calculateRequiredBandwidth, bI as calculateRoi, bJ as calculateRuleOf72, bK as calculateSalesCommission, bL as calculateSavingsGoal, bM as calculateSimpleInterest, bN as calculateTax, bO as calculateTaxEquivalentYield, bP as calculateTimeValue, bQ as calculateTipSplit, bR as calculateTransferTime, bS as calculateVideoBitrate, bT as compareSemver, bU as compareUnitPrices, bV as convert, bW as convertAprApy, bX as convertBytes, bY as convertIp, bZ as coverBox, b_ as decimalToIp, b$ as decimalToIpCidr, c0 as describePermissions, c1 as fitIntoBox, c2 as formatNumber, c3 as formatValue, c4 as formatVwValue, c5 as formatWithSeparator, c6 as gcd, c7 as ipFromBinary, c8 as ipFromDecimal, c9 as ipFromHex, ca as ipToBinary, cb as ipToDecimal, cc as ipToDecimalCidr, cd as ipToHex, ce as ipToOctal, cf as isValid, cg as isValidCidr, ch as isValidIp, ci as isValidIpv4, cj as marginToMarkup, ck as markupToMargin, cl as octalToPermissions, cm as parseFileSize, cn as parseInput, co as parseNumberString, cp as parseSemver, cq as permissionsToChmod, cr as permissionsToOctal, cs as permissionsToSymbolic, ct as planDebtPayoff, cu as ptToPx, cv as pxToAll, cw as pxToViewport, cx as remToPx, cy as satisfiesRange, cz as scaleByHeight, cA as scaleByWidth, cB as sortVersions, cC as splitSubnet, cD as symbolicToPermissions, cE as validateBarcode, cF as validateCardNumber, cG as validateIban, cH as validateIsbn, cI as validateIsin, cJ as validateVin, cK as viewportToPx } from '../units-gLm_pq6U.js';
1
+ export { A as AmortizationRow, a as AnnuityPayoutInput, b as AnnuityPayoutMode, c as AnnuityPayoutResult, d as AnnuityStructure, e as AprApyDirection, f as AprApyResult, g as AspectRatioResult, B as BASE_LABELS, h as BASE_PREFIXES, i as BYTE_UNITS, j as BarcodeFormat, k as BarcodeValidationResult, l as BaseConvertResult, m as BlendedLoanRateResult, n as BreakEvenInput, o as BreakEvenResult, p as ByteConvertResult, q as ByteUnit, C as COMMON_CURRENCIES, r as COMMON_LOCALES, s as COMMON_PERMISSIONS, t as COMMON_RATIOS, v as COMMON_SIZES, w as COMMON_TAX_RATES, x as COMMON_TIP_PERCENTAGES, y as COMMON_VIEWPORTS, z as CardValidationResult, D as CashBreakdownResult, E as CashChangeResult, F as CashDenominationItem, G as CashRoundingMode, H as CashRoundingResult, I as CdMaturityResult, J as CommissionBreakdownEntry, K as CommissionInput, L as CommissionResult, M as CommissionTier, N as CompareUnitPricesResult, O as CompoundInterestResult, P as CompoundYearRow, Q as CreditAccountInput, R as CreditAccountResult, S as CreditCardMinimumPaymentResult, T as CreditUtilizationResult, U as DebtItemInput, V as DebtItemResult, W as DebtPayoffComparison, X as DebtPayoffInput, Y as DebtPayoffPlanResult, Z as DebtPayoffScheduleEntry, _ as DebtPayoffStrategy, $ as DebtPayoffStrategyResult, a0 as DebtToIncomeRatioResult, a1 as DepreciationMethod, a2 as DepreciationResult, a3 as DepreciationYear, a4 as Dimensions, a5 as DiscountField, a6 as DiscountInput, a7 as DiscountResult, a8 as DtiTier, a9 as EmiResult, aa as EmiTenureUnit, ab as EmiYearlyBreakdownRow, ac as ExtraPaymentPayoffResult, ad as FilePermissions, ae as FileSizeUnit, af as FormatOptions, ag as FreelancerRateInput, ah as FreelancerRateResult, ai as GPA_GRADE_POINTS, aj as GpaCourse, ak as GpaCourseResult, al as GpaResult, am as IbanValidationResult, an as IpConversion, ao as IsbnFormat, ap as IsbnResult, aq as IsinValidationResult, ar as LoanBalanceInput, as as LoanBalanceResult, at as LoanPrepaymentPenaltyResult, au as LoanRefinanceResult, av as LoanResult, aw as MarginMarkupField, ax as MarginMarkupInput, ay as MarginMarkupResult, az as MortgagePointsResult, aA as MovingAveragePoint, aB as MovingAverageResult, aC as NotationStyle, aD as NumberBase, aE as PaybackPeriodInput, aF as PaybackPeriodResult, aG as PercentChangeDirection, aH as PercentageChangeResult, aI as Permission, aJ as PrepaymentPenaltyType, aK as PxConvertResult, aL as RealRateField, aM as RealRateOfReturnInput, aN as RealRateOfReturnResult, aO as RequiredBandwidthResult, aP as RoiInput, aQ as RoiResult, aR as RuleOf72Direction, aS as RuleOf72Result, aT as SavingsGoalInput, aU as SavingsGoalMode, aV as SavingsGoalResult, aW as SemverVersion, aX as SimpleInterestResult, aY as SubnetInfo, aZ as SuccessiveDiscountResult, a_ as SuccessiveDiscountStep, a$ as TaxDirection, b0 as TaxEquivalentYieldDirection, b1 as TaxEquivalentYieldResult, b2 as TaxResult, b3 as TimeValueDirection, b4 as TimeValueResult, b5 as TipSplitResult, b6 as TransferSpeedUnit, b7 as TransferTimeResult, b8 as USD_DENOMINATIONS, b9 as UnitPriceItem, ba as UnitPriceResult, bb as UtilizationTier, bc as VideoBitrateInput, bd as VideoBitrateMode, be as VideoBitrateResult, bf as ViewportConvertResult, bg as VinValidationResult, bh as applySuccessiveDiscounts, bi as autoFormat, bj as bumpVersion, bk as calcAspectRatio, bl as calcSubnet, bm as calculateAnnuityPayout, bn as calculateBlendedLoanRate, bo as calculateBreakEven, bp as calculateCashBreakdown, bq as calculateCashRounding, br as calculateCdMaturity, bs as calculateChange, bt as calculateCompoundInterest, bu as calculateCreditCardMinimumPayment, bv as calculateCreditUtilization, bw as calculateDebtToIncomeRatio, bx as calculateDepreciationSchedule, by as calculateDiscount, bz as calculateEmi, bA as calculateExtraPaymentPayoff, bB as calculateFreelancerRate, bC as calculateGpa, bD as calculateLoan, bE as calculateLoanPrepaymentPenalty, bF as calculateLoanRefinance, bG as calculateMarginMarkup, bH as calculateMortgagePoints, bI as calculateMovingAverages, bJ as calculatePaybackPeriod, bK as calculatePercentageChange, bL as calculateRealRateOfReturn, bM as calculateRequiredBandwidth, bN as calculateRoi, bO as calculateRuleOf72, bP as calculateSalesCommission, bQ as calculateSavingsGoal, bR as calculateSimpleInterest, bS as calculateTax, bT as calculateTaxEquivalentYield, bU as calculateTimeValue, bV as calculateTipSplit, bW as calculateTransferTime, bX as calculateVideoBitrate, bY as compareSemver, bZ as compareUnitPrices, b_ as convert, b$ as convertAprApy, c0 as convertBytes, c1 as convertIp, c2 as coverBox, c3 as decimalToIp, c4 as decimalToIpCidr, c5 as describePermissions, c6 as fitIntoBox, c7 as formatNumber, c8 as formatValue, c9 as formatVwValue, ca as formatWithSeparator, cb as gcd, cc as ipFromBinary, cd as ipFromDecimal, ce as ipFromHex, cf as ipToBinary, cg as ipToDecimal, ch as ipToDecimalCidr, ci as ipToHex, cj as ipToOctal, ck as isValid, cl as isValidCidr, cm as isValidIp, cn as isValidIpv4, co as marginToMarkup, cp as markupToMargin, cq as octalToPermissions, cr as parseFileSize, cs as parseInput, ct as parseNumberString, cu as parseSemver, cv as permissionsToChmod, cw as permissionsToOctal, cx as permissionsToSymbolic, cy as planDebtPayoff, cz as ptToPx, cA as pxToAll, cB as pxToViewport, cC as remToPx, cD as satisfiesRange, cE as scaleByHeight, cF as scaleByWidth, cG as sortVersions, cH as splitSubnet, cI as symbolicToPermissions, cJ as validateBarcode, cK as validateCardNumber, cL as validateIban, cM as validateIsbn, cN as validateIsin, cO as validateVin, cP as viewportToPx } from '../units-B6aXeGr6.js';
@@ -1,2 +1,2 @@
1
- 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, 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, validateBarcode, validateCardNumber, validateIban, validateIsbn, validateIsin, validateVin, viewportToPx } from '../chunk-YM6UC4SM.js';
1
+ 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, validateBarcode, validateCardNumber, validateIban, validateIsbn, validateIsin, validateVin, viewportToPx } from '../chunk-LKFMBUJZ.js';
2
2
  import '../chunk-MLKGABMK.js';