@utilix-tech/sdk 0.87.0 → 0.89.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';
@@ -3196,6 +3196,68 @@ function checkDashUsage(text) {
3196
3196
  issues
3197
3197
  };
3198
3198
  }
3199
+ var ACRONYM_TOKEN_RE = /\b[A-Z][A-Z0-9]{1,9}\b/g;
3200
+ var ACRONYM_IN_PARENS_RE = /\(([A-Z][A-Z0-9]{1,9})\)/g;
3201
+ var ACRONYM_THEN_EXPANSION_RE = /\b([A-Z][A-Z0-9]{1,9})\b\s*\(([a-zA-Z][^()]{1,100})\)/g;
3202
+ function acronymContextSnippet(text, index, matchLen) {
3203
+ const start = Math.max(0, index - 25);
3204
+ const end = Math.min(text.length, index + matchLen + 25);
3205
+ const body = text.slice(start, end).replace(/\s+/g, " ").trim();
3206
+ return (start > 0 ? "\u2026" : "") + body + (end < text.length ? "\u2026" : "");
3207
+ }
3208
+ function checkAcronymExpansion(text) {
3209
+ const definedAt = /* @__PURE__ */ new Map();
3210
+ for (const m of text.matchAll(ACRONYM_IN_PARENS_RE)) {
3211
+ const acronym = m[1];
3212
+ const idx = (m.index ?? 0) + 1;
3213
+ const existing = definedAt.get(acronym);
3214
+ if (existing === void 0 || idx < existing) definedAt.set(acronym, idx);
3215
+ }
3216
+ for (const m of text.matchAll(ACRONYM_THEN_EXPANSION_RE)) {
3217
+ const acronym = m[1];
3218
+ const idx = m.index ?? 0;
3219
+ const existing = definedAt.get(acronym);
3220
+ if (existing === void 0 || idx < existing) definedAt.set(acronym, idx);
3221
+ }
3222
+ const occurrencesByAcronym = /* @__PURE__ */ new Map();
3223
+ for (const m of text.matchAll(ACRONYM_TOKEN_RE)) {
3224
+ const acronym = m[0];
3225
+ const idx = m.index ?? 0;
3226
+ const list = occurrencesByAcronym.get(acronym);
3227
+ if (list) list.push(idx);
3228
+ else occurrencesByAcronym.set(acronym, [idx]);
3229
+ }
3230
+ const acronyms = [];
3231
+ const issues = [];
3232
+ for (const [acronym, indicesUnsorted] of occurrencesByAcronym) {
3233
+ const indices = [...indicesUnsorted].sort((a, b) => a - b);
3234
+ const firstUsedAt = indices[0];
3235
+ const expandedAt = definedAt.has(acronym) ? definedAt.get(acronym) : null;
3236
+ const earlyUse = expandedAt !== null ? indices.find((i) => i < expandedAt) : void 0;
3237
+ const usedBeforeExpansion = earlyUse !== void 0;
3238
+ acronyms.push({ acronym, occurrences: indices.length, firstUsedAt, expandedAt, usedBeforeExpansion });
3239
+ if (usedBeforeExpansion) {
3240
+ issues.push({
3241
+ type: "used-before-expansion",
3242
+ acronym,
3243
+ index: earlyUse,
3244
+ context: acronymContextSnippet(text, earlyUse, acronym.length),
3245
+ message: `"${acronym}" is used here before it's expanded later in the document (at character ${expandedAt}).`
3246
+ });
3247
+ } else if (expandedAt === null) {
3248
+ issues.push({
3249
+ type: "never-expanded",
3250
+ acronym,
3251
+ index: firstUsedAt,
3252
+ context: acronymContextSnippet(text, firstUsedAt, acronym.length),
3253
+ message: `"${acronym}" is never expanded anywhere in this document.`
3254
+ });
3255
+ }
3256
+ }
3257
+ acronyms.sort((a, b) => a.firstUsedAt - b.firstUsedAt);
3258
+ issues.sort((a, b) => a.index - b.index);
3259
+ return { acronyms, issues };
3260
+ }
3199
3261
 
3200
3262
  exports.CASE_FORMATS = CASE_FORMATS;
3201
3263
  exports.DEFAULT_CONVERT_OPTIONS = DEFAULT_CONVERT_OPTIONS;
@@ -3211,6 +3273,7 @@ exports.applyOp = applyOp;
3211
3273
  exports.applyOps = applyOps;
3212
3274
  exports.calculateStringDistance = calculateStringDistance;
3213
3275
  exports.centerText = centerText;
3276
+ exports.checkAcronymExpansion = checkAcronymExpansion;
3214
3277
  exports.checkDashUsage = checkDashUsage;
3215
3278
  exports.checkOxfordCommaConsistency = checkOxfordCommaConsistency;
3216
3279
  exports.convertAll = convertAll;
@@ -1 +1 @@
1
- export { A as AsciiFont, a as AsciiOptions, C as CASE_FORMATS, b as CaseFormat, c as ConvertOptions, D as DEFAULT_CONVERT_OPTIONS, d as DashIssue, e as DashIssueType, f as DashUsageResult, g as DiffFile, h as DiffHunk, i as DiffLine, j as DiffResult, k as DiffType, l as DiffViewerLine, E as EMOJI_TABLE, m as ESCAPE_MODES, n as EmojiEntry, o as EscapeMode, F as FillerCategory, p as FillerMatch, q as FillerWordResult, K as KeywordDensityEntry, r as KeywordDensityOptions, s as KeywordDensityResult, L as LINE_OPS, u as LineOp, v as LineType, w as LoremUnit, M as MORSE_CODE, x as MarkdownResult, y as MorseOptions, O as OxfordCommaInstance, z as OxfordCommaResult, P as ParsedDiff, B as ParsedTable, G as PassiveVoiceMatch, H as PassiveVoiceResult, I as PassiveVoiceSentence, R as ReadabilityResult, J as ReadabilityScore, S as SentenceLengthBucket, N as SentenceLengthDistribution, Q as SlugSeparator, T as StringDistanceMode, U as StringDistanceResult, V as TableOptions, W as TextAnalysis, X as WordCountResult, Y as WordyPhraseMatch, Z as WordyPhraseResult, _ as addBorder, $ as analyzeKeywordDensity, a0 as analyzeSentenceLengths, a1 as analyzeText, a2 as applyOp, a3 as applyOps, a4 as calculateStringDistance, a5 as centerText, a6 as checkDashUsage, a7 as checkOxfordCommaConsistency, a8 as convertAll, a9 as convertCase, aa as countWords, ab as csvToHtml, ac as csvToMarkdown, ad as detectDelimiter, ae as detectFillerWords, af as detectPassiveVoice, ag as detectWordyPhrases, ah as diffLines, ai as diffLinesSimple, aj as diffStats, ak as escapeAll, al as escapeString, am as extractHeadings, an as formatReadingTime, ao as generate, ap as generateDiff, aq as generateHtmlTable, ar as generateMarkdownTable, as as generateParagraphs, at as generateSentences, au as generateWords, av as getAvailableFonts, aw as getEmojiByCategory, ax as getEmojiByChar, ay as getEmojiByShortcode, az as getEmojiCategories, aA as getMorseForChar, aB as getMorseTiming, aC as htmlToMarkdown, aD as isValidMorse, aE as markdownToHtml, aF as morseToText, aG as numberToOrdinal, aH as numberToRoman, aI as numberToWords, aJ as ordinalWords, aK as parseDiff, aL as parseTableData, aM as readabilityScore, aN as renderMarkdown, aO as romanToNumber, aP as scoreReadability, aQ as searchEmoji, aR as sentenceCount, aS as slugify, aT as slugifyAll, aU as syllableCount, aV as textToAscii, aW as textToMorse, aX as unescapeString, aY as wordFrequency } from '../text-xY5MJwr0.cjs';
1
+ export { A as AcronymCheckResult, a as AcronymIssue, b as AcronymIssueType, c as AcronymUsage, d as AsciiFont, e as AsciiOptions, C as CASE_FORMATS, f as CaseFormat, g as ConvertOptions, D as DEFAULT_CONVERT_OPTIONS, h as DashIssue, i as DashIssueType, j as DashUsageResult, k as DiffFile, l as DiffHunk, m as DiffLine, n as DiffResult, o as DiffType, p as DiffViewerLine, E as EMOJI_TABLE, q as ESCAPE_MODES, r as EmojiEntry, s as EscapeMode, F as FillerCategory, u as FillerMatch, v as FillerWordResult, K as KeywordDensityEntry, w as KeywordDensityOptions, x as KeywordDensityResult, L as LINE_OPS, y as LineOp, z as LineType, B as LoremUnit, M as MORSE_CODE, G as MarkdownResult, H as MorseOptions, O as OxfordCommaInstance, I as OxfordCommaResult, P as ParsedDiff, J as ParsedTable, N as PassiveVoiceMatch, Q as PassiveVoiceResult, R as PassiveVoiceSentence, S as ReadabilityResult, T as ReadabilityScore, U as SentenceLengthBucket, V as SentenceLengthDistribution, W as SlugSeparator, X as StringDistanceMode, Y as StringDistanceResult, Z as TableOptions, _ as TextAnalysis, $ as WordCountResult, a0 as WordyPhraseMatch, a1 as WordyPhraseResult, a2 as addBorder, a3 as analyzeKeywordDensity, a4 as analyzeSentenceLengths, a5 as analyzeText, a6 as applyOp, a7 as applyOps, a8 as calculateStringDistance, a9 as centerText, aa as checkAcronymExpansion, ab as checkDashUsage, ac as checkOxfordCommaConsistency, ad as convertAll, ae as convertCase, af as countWords, ag as csvToHtml, ah as csvToMarkdown, ai as detectDelimiter, aj as detectFillerWords, ak as detectPassiveVoice, al as detectWordyPhrases, am as diffLines, an as diffLinesSimple, ao as diffStats, ap as escapeAll, aq as escapeString, ar as extractHeadings, as as formatReadingTime, at as generate, au as generateDiff, av as generateHtmlTable, aw as generateMarkdownTable, ax as generateParagraphs, ay as generateSentences, az as generateWords, aA as getAvailableFonts, aB as getEmojiByCategory, aC as getEmojiByChar, aD as getEmojiByShortcode, aE as getEmojiCategories, aF as getMorseForChar, aG as getMorseTiming, aH as htmlToMarkdown, aI as isValidMorse, aJ as markdownToHtml, aK as morseToText, aL as numberToOrdinal, aM as numberToRoman, aN as numberToWords, aO as ordinalWords, aP as parseDiff, aQ as parseTableData, aR as readabilityScore, aS as renderMarkdown, aT as romanToNumber, aU as scoreReadability, aV as searchEmoji, aW as sentenceCount, aX as slugify, aY as slugifyAll, aZ as syllableCount, a_ as textToAscii, a$ as textToMorse, b0 as unescapeString, b1 as wordFrequency } from '../text-DOopHoK3.cjs';
@@ -1 +1 @@
1
- export { A as AsciiFont, a as AsciiOptions, C as CASE_FORMATS, b as CaseFormat, c as ConvertOptions, D as DEFAULT_CONVERT_OPTIONS, d as DashIssue, e as DashIssueType, f as DashUsageResult, g as DiffFile, h as DiffHunk, i as DiffLine, j as DiffResult, k as DiffType, l as DiffViewerLine, E as EMOJI_TABLE, m as ESCAPE_MODES, n as EmojiEntry, o as EscapeMode, F as FillerCategory, p as FillerMatch, q as FillerWordResult, K as KeywordDensityEntry, r as KeywordDensityOptions, s as KeywordDensityResult, L as LINE_OPS, u as LineOp, v as LineType, w as LoremUnit, M as MORSE_CODE, x as MarkdownResult, y as MorseOptions, O as OxfordCommaInstance, z as OxfordCommaResult, P as ParsedDiff, B as ParsedTable, G as PassiveVoiceMatch, H as PassiveVoiceResult, I as PassiveVoiceSentence, R as ReadabilityResult, J as ReadabilityScore, S as SentenceLengthBucket, N as SentenceLengthDistribution, Q as SlugSeparator, T as StringDistanceMode, U as StringDistanceResult, V as TableOptions, W as TextAnalysis, X as WordCountResult, Y as WordyPhraseMatch, Z as WordyPhraseResult, _ as addBorder, $ as analyzeKeywordDensity, a0 as analyzeSentenceLengths, a1 as analyzeText, a2 as applyOp, a3 as applyOps, a4 as calculateStringDistance, a5 as centerText, a6 as checkDashUsage, a7 as checkOxfordCommaConsistency, a8 as convertAll, a9 as convertCase, aa as countWords, ab as csvToHtml, ac as csvToMarkdown, ad as detectDelimiter, ae as detectFillerWords, af as detectPassiveVoice, ag as detectWordyPhrases, ah as diffLines, ai as diffLinesSimple, aj as diffStats, ak as escapeAll, al as escapeString, am as extractHeadings, an as formatReadingTime, ao as generate, ap as generateDiff, aq as generateHtmlTable, ar as generateMarkdownTable, as as generateParagraphs, at as generateSentences, au as generateWords, av as getAvailableFonts, aw as getEmojiByCategory, ax as getEmojiByChar, ay as getEmojiByShortcode, az as getEmojiCategories, aA as getMorseForChar, aB as getMorseTiming, aC as htmlToMarkdown, aD as isValidMorse, aE as markdownToHtml, aF as morseToText, aG as numberToOrdinal, aH as numberToRoman, aI as numberToWords, aJ as ordinalWords, aK as parseDiff, aL as parseTableData, aM as readabilityScore, aN as renderMarkdown, aO as romanToNumber, aP as scoreReadability, aQ as searchEmoji, aR as sentenceCount, aS as slugify, aT as slugifyAll, aU as syllableCount, aV as textToAscii, aW as textToMorse, aX as unescapeString, aY as wordFrequency } from '../text-xY5MJwr0.js';
1
+ export { A as AcronymCheckResult, a as AcronymIssue, b as AcronymIssueType, c as AcronymUsage, d as AsciiFont, e as AsciiOptions, C as CASE_FORMATS, f as CaseFormat, g as ConvertOptions, D as DEFAULT_CONVERT_OPTIONS, h as DashIssue, i as DashIssueType, j as DashUsageResult, k as DiffFile, l as DiffHunk, m as DiffLine, n as DiffResult, o as DiffType, p as DiffViewerLine, E as EMOJI_TABLE, q as ESCAPE_MODES, r as EmojiEntry, s as EscapeMode, F as FillerCategory, u as FillerMatch, v as FillerWordResult, K as KeywordDensityEntry, w as KeywordDensityOptions, x as KeywordDensityResult, L as LINE_OPS, y as LineOp, z as LineType, B as LoremUnit, M as MORSE_CODE, G as MarkdownResult, H as MorseOptions, O as OxfordCommaInstance, I as OxfordCommaResult, P as ParsedDiff, J as ParsedTable, N as PassiveVoiceMatch, Q as PassiveVoiceResult, R as PassiveVoiceSentence, S as ReadabilityResult, T as ReadabilityScore, U as SentenceLengthBucket, V as SentenceLengthDistribution, W as SlugSeparator, X as StringDistanceMode, Y as StringDistanceResult, Z as TableOptions, _ as TextAnalysis, $ as WordCountResult, a0 as WordyPhraseMatch, a1 as WordyPhraseResult, a2 as addBorder, a3 as analyzeKeywordDensity, a4 as analyzeSentenceLengths, a5 as analyzeText, a6 as applyOp, a7 as applyOps, a8 as calculateStringDistance, a9 as centerText, aa as checkAcronymExpansion, ab as checkDashUsage, ac as checkOxfordCommaConsistency, ad as convertAll, ae as convertCase, af as countWords, ag as csvToHtml, ah as csvToMarkdown, ai as detectDelimiter, aj as detectFillerWords, ak as detectPassiveVoice, al as detectWordyPhrases, am as diffLines, an as diffLinesSimple, ao as diffStats, ap as escapeAll, aq as escapeString, ar as extractHeadings, as as formatReadingTime, at as generate, au as generateDiff, av as generateHtmlTable, aw as generateMarkdownTable, ax as generateParagraphs, ay as generateSentences, az as generateWords, aA as getAvailableFonts, aB as getEmojiByCategory, aC as getEmojiByChar, aD as getEmojiByShortcode, aE as getEmojiCategories, aF as getMorseForChar, aG as getMorseTiming, aH as htmlToMarkdown, aI as isValidMorse, aJ as markdownToHtml, aK as morseToText, aL as numberToOrdinal, aM as numberToRoman, aN as numberToWords, aO as ordinalWords, aP as parseDiff, aQ as parseTableData, aR as readabilityScore, aS as renderMarkdown, aT as romanToNumber, aU as scoreReadability, aV as searchEmoji, aW as sentenceCount, aX as slugify, aY as slugifyAll, aZ as syllableCount, a_ as textToAscii, a$ as textToMorse, b0 as unescapeString, b1 as wordFrequency } from '../text-DOopHoK3.js';
@@ -1,2 +1,2 @@
1
- export { CASE_FORMATS, DEFAULT_CONVERT_OPTIONS, EMOJI_TABLE, ESCAPE_MODES, LINE_OPS, MORSE_CODE, addBorder, analyzeKeywordDensity, analyzeSentenceLengths, analyzeText, applyOp, applyOps, calculateStringDistance, centerText, checkDashUsage, checkOxfordCommaConsistency, convertAll, convertCase, countWords, csvToHtml, csvToMarkdown, detectDelimiter, detectFillerWords, detectPassiveVoice, detectWordyPhrases, diffLines, diffLinesSimple, diffStats, escapeAll, escapeString, extractHeadings, formatReadingTime, generate, generateDiff, generateHtmlTable, generateMarkdownTable, generateParagraphs, generateSentences, generateWords, getAvailableFonts, getEmojiByCategory, getEmojiByChar, getEmojiByShortcode, getEmojiCategories, getMorseForChar, getMorseTiming, htmlToMarkdown, isValidMorse, markdownToHtml, morseToText, numberToOrdinal, numberToRoman, numberToWords, ordinalWords, parseDiff, parseTableData, readabilityScore, renderMarkdown, romanToNumber, scoreReadability, searchEmoji, sentenceCount, slugify, slugifyAll, syllableCount, textToAscii, textToMorse, unescapeString, wordFrequency } from '../chunk-FB6CCFR5.js';
1
+ export { CASE_FORMATS, DEFAULT_CONVERT_OPTIONS, EMOJI_TABLE, ESCAPE_MODES, LINE_OPS, MORSE_CODE, addBorder, analyzeKeywordDensity, analyzeSentenceLengths, analyzeText, applyOp, applyOps, calculateStringDistance, centerText, checkAcronymExpansion, checkDashUsage, checkOxfordCommaConsistency, convertAll, convertCase, countWords, csvToHtml, csvToMarkdown, detectDelimiter, detectFillerWords, detectPassiveVoice, detectWordyPhrases, diffLines, diffLinesSimple, diffStats, escapeAll, escapeString, extractHeadings, formatReadingTime, generate, generateDiff, generateHtmlTable, generateMarkdownTable, generateParagraphs, generateSentences, generateWords, getAvailableFonts, getEmojiByCategory, getEmojiByChar, getEmojiByShortcode, getEmojiCategories, getMorseForChar, getMorseTiming, htmlToMarkdown, isValidMorse, markdownToHtml, morseToText, numberToOrdinal, numberToRoman, numberToWords, ordinalWords, parseDiff, parseTableData, readabilityScore, renderMarkdown, romanToNumber, scoreReadability, searchEmoji, sentenceCount, slugify, slugifyAll, syllableCount, textToAscii, textToMorse, unescapeString, wordFrequency } from '../chunk-YQJ7CEUL.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';