@utilix-tech/sdk 0.73.0 → 0.74.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -8571,6 +8571,7 @@ __export(units_exports, {
8571
8571
  calculateFreelancerRate: () => calculateFreelancerRate,
8572
8572
  calculateGpa: () => calculateGpa,
8573
8573
  calculateLoan: () => calculateLoan,
8574
+ calculateLoanPrepaymentPenalty: () => calculateLoanPrepaymentPenalty,
8574
8575
  calculateLoanRefinance: () => calculateLoanRefinance,
8575
8576
  calculateMarginMarkup: () => calculateMarginMarkup,
8576
8577
  calculateMortgagePoints: () => calculateMortgagePoints,
@@ -11196,6 +11197,40 @@ function calculateMortgagePoints(loanAmount, baseRatePercent, termMonths, points
11196
11197
  totalInterestSavings: round2(withoutPoints.totalInterest - withPoints.totalInterest)
11197
11198
  };
11198
11199
  }
11200
+ function calculateLoanPrepaymentPenalty(payoffBalance, penaltyType, params) {
11201
+ if (!Number.isFinite(payoffBalance) || payoffBalance <= 0) {
11202
+ return { error: "Payoff balance must be a positive number" };
11203
+ }
11204
+ if (penaltyType !== "percent-of-balance" && penaltyType !== "months-of-interest") {
11205
+ return { error: 'penaltyType must be "percent-of-balance" or "months-of-interest"' };
11206
+ }
11207
+ let penaltyAmount;
11208
+ if (penaltyType === "percent-of-balance") {
11209
+ const penaltyPercent = params.penaltyPercent;
11210
+ if (!Number.isFinite(penaltyPercent) || penaltyPercent < 0) {
11211
+ return { error: "penaltyPercent must be zero or a positive number" };
11212
+ }
11213
+ penaltyAmount = round2(payoffBalance * (penaltyPercent / 100));
11214
+ } else {
11215
+ const monthsOfInterest = params.monthsOfInterest;
11216
+ const annualRatePercent = params.annualRatePercent;
11217
+ if (!Number.isFinite(monthsOfInterest) || monthsOfInterest < 0) {
11218
+ return { error: "monthsOfInterest must be zero or a positive number" };
11219
+ }
11220
+ if (!Number.isFinite(annualRatePercent) || annualRatePercent < 0) {
11221
+ return { error: "annualRatePercent must be zero or a positive number" };
11222
+ }
11223
+ const monthlyInterest = payoffBalance * (annualRatePercent / 100 / 12);
11224
+ penaltyAmount = round2(monthlyInterest * monthsOfInterest);
11225
+ }
11226
+ return {
11227
+ payoffBalance: round2(payoffBalance),
11228
+ penaltyType,
11229
+ penaltyAmount,
11230
+ effectivePenaltyPercent: round2(penaltyAmount / payoffBalance * 100),
11231
+ totalPayoffCost: round2(payoffBalance + penaltyAmount)
11232
+ };
11233
+ }
11199
11234
 
11200
11235
  // src/tools/network.ts
11201
11236
  var network_exports = {};
@@ -16147,6 +16182,7 @@ __export(code_exports, {
16147
16182
  testGitignorePatterns: () => testGitignorePatterns,
16148
16183
  testPattern: () => testPattern,
16149
16184
  testRegex: () => testRegex,
16185
+ validateAria: () => validateAria,
16150
16186
  validateEditorConfig: () => validateEditorConfig,
16151
16187
  validateEnvKey: () => validateEnvKey2,
16152
16188
  validatePackageExports: () => validatePackageExports,
@@ -19801,6 +19837,167 @@ function extractMarkdownFootnotes(markdown) {
19801
19837
  }
19802
19838
  return { definitionCount: definitions.length, referenceCount, definitions, references, unresolvedReferences, unusedDefinitions };
19803
19839
  }
19840
+ var ARIA_GLOBAL_ATTRS = /* @__PURE__ */ new Set([
19841
+ "aria-atomic",
19842
+ "aria-busy",
19843
+ "aria-controls",
19844
+ "aria-current",
19845
+ "aria-describedby",
19846
+ "aria-details",
19847
+ "aria-disabled",
19848
+ "aria-dropeffect",
19849
+ "aria-errormessage",
19850
+ "aria-flowto",
19851
+ "aria-grabbed",
19852
+ "aria-haspopup",
19853
+ "aria-hidden",
19854
+ "aria-invalid",
19855
+ "aria-keyshortcuts",
19856
+ "aria-label",
19857
+ "aria-labelledby",
19858
+ "aria-live",
19859
+ "aria-owns",
19860
+ "aria-relevant",
19861
+ "aria-roledescription"
19862
+ ]);
19863
+ var ARIA_ROLE_TABLE = {
19864
+ alert: { supported: ["aria-live", "aria-atomic"] },
19865
+ alertdialog: { supported: ["aria-modal"] },
19866
+ article: {},
19867
+ banner: {},
19868
+ button: { supported: ["aria-pressed", "aria-expanded", "aria-disabled"] },
19869
+ checkbox: { required: ["aria-checked"], supported: ["aria-readonly"] },
19870
+ columnheader: { supported: ["aria-sort", "aria-selected", "aria-readonly"] },
19871
+ combobox: { required: ["aria-expanded"], supported: ["aria-controls", "aria-autocomplete", "aria-activedescendant"] },
19872
+ complementary: {},
19873
+ contentinfo: {},
19874
+ dialog: { supported: ["aria-modal"] },
19875
+ form: {},
19876
+ grid: { supported: ["aria-multiselectable", "aria-activedescendant", "aria-level", "aria-readonly"] },
19877
+ gridcell: { supported: ["aria-selected", "aria-readonly", "aria-expanded"] },
19878
+ group: { supported: ["aria-activedescendant", "aria-disabled"] },
19879
+ heading: { required: ["aria-level"] },
19880
+ img: {},
19881
+ link: { supported: ["aria-disabled", "aria-expanded"] },
19882
+ list: {},
19883
+ listbox: { supported: ["aria-multiselectable", "aria-activedescendant", "aria-orientation"] },
19884
+ listitem: { supported: ["aria-level", "aria-posinset", "aria-setsize"] },
19885
+ log: { supported: ["aria-live", "aria-atomic"] },
19886
+ main: {},
19887
+ marquee: {},
19888
+ menu: { supported: ["aria-orientation", "aria-activedescendant"] },
19889
+ menubar: { supported: ["aria-orientation", "aria-activedescendant"] },
19890
+ menuitem: { supported: ["aria-disabled"] },
19891
+ menuitemcheckbox: { required: ["aria-checked"] },
19892
+ menuitemradio: { required: ["aria-checked"] },
19893
+ meter: { required: ["aria-valuenow"], supported: ["aria-valuemin", "aria-valuemax", "aria-valuetext"] },
19894
+ navigation: {},
19895
+ none: {},
19896
+ option: { supported: ["aria-selected", "aria-checked", "aria-posinset", "aria-setsize"] },
19897
+ presentation: {},
19898
+ progressbar: { supported: ["aria-valuenow", "aria-valuemin", "aria-valuemax", "aria-valuetext"] },
19899
+ radio: { required: ["aria-checked"] },
19900
+ radiogroup: { supported: ["aria-activedescendant"] },
19901
+ region: {},
19902
+ row: { supported: ["aria-selected", "aria-level", "aria-expanded"] },
19903
+ rowheader: { supported: ["aria-sort", "aria-selected", "aria-readonly"] },
19904
+ scrollbar: { required: ["aria-valuenow", "aria-controls"], supported: ["aria-valuemin", "aria-valuemax", "aria-orientation"] },
19905
+ search: {},
19906
+ searchbox: { supported: ["aria-multiline", "aria-placeholder", "aria-readonly", "aria-required", "aria-activedescendant", "aria-autocomplete"] },
19907
+ separator: { supported: ["aria-orientation", "aria-valuenow", "aria-valuemin", "aria-valuemax"] },
19908
+ slider: { required: ["aria-valuenow"], supported: ["aria-valuemin", "aria-valuemax", "aria-valuetext", "aria-orientation"] },
19909
+ spinbutton: { supported: ["aria-valuenow", "aria-valuemin", "aria-valuemax", "aria-valuetext", "aria-required"] },
19910
+ status: { supported: ["aria-live", "aria-atomic"] },
19911
+ switch: { required: ["aria-checked"] },
19912
+ tab: { supported: ["aria-selected", "aria-controls", "aria-disabled"] },
19913
+ table: { supported: ["aria-colcount", "aria-rowcount"] },
19914
+ tablist: { supported: ["aria-orientation", "aria-activedescendant", "aria-level"] },
19915
+ tabpanel: {},
19916
+ textbox: { supported: ["aria-multiline", "aria-placeholder", "aria-readonly", "aria-required", "aria-activedescendant", "aria-autocomplete"] },
19917
+ timer: {},
19918
+ toolbar: { supported: ["aria-orientation"] },
19919
+ tooltip: {},
19920
+ tree: { supported: ["aria-multiselectable", "aria-activedescendant", "aria-orientation"] },
19921
+ treegrid: { supported: ["aria-multiselectable", "aria-activedescendant", "aria-orientation", "aria-level", "aria-readonly"] },
19922
+ treeitem: { supported: ["aria-expanded", "aria-selected", "aria-checked", "aria-level"] }
19923
+ };
19924
+ var ARIA_ALL_KNOWN_ATTRS = new Set(ARIA_GLOBAL_ATTRS);
19925
+ for (const entry of Object.values(ARIA_ROLE_TABLE)) {
19926
+ for (const a of entry.required ?? []) ARIA_ALL_KNOWN_ATTRS.add(a);
19927
+ for (const a of entry.supported ?? []) ARIA_ALL_KNOWN_ATTRS.add(a);
19928
+ }
19929
+ var TAG_REGEX = /<([a-zA-Z][a-zA-Z0-9]*)\b((?:[^>"'/]|"[^"]*"|'[^']*')*)\/?>/g;
19930
+ var ATTR_REGEX = /([a-zA-Z][a-zA-Z0-9-]*)\s*=\s*(?:"([^"]*)"|'([^']*)')/g;
19931
+ function parseElements(html) {
19932
+ const elements = [];
19933
+ let match;
19934
+ TAG_REGEX.lastIndex = 0;
19935
+ while ((match = TAG_REGEX.exec(html)) !== null) {
19936
+ const tag = match[1].toLowerCase();
19937
+ if (tag === "script" || tag === "style" || tag === "!--") continue;
19938
+ const attrsStr = match[2] ?? "";
19939
+ const attrs = {};
19940
+ let attrMatch;
19941
+ ATTR_REGEX.lastIndex = 0;
19942
+ while ((attrMatch = ATTR_REGEX.exec(attrsStr)) !== null) {
19943
+ const name = attrMatch[1].toLowerCase();
19944
+ const value = attrMatch[2] ?? attrMatch[3] ?? "";
19945
+ attrs[name] = value;
19946
+ }
19947
+ elements.push({ tag, attrs, raw: match[0].length > 80 ? match[0].slice(0, 77) + "..." : match[0] });
19948
+ }
19949
+ return elements;
19950
+ }
19951
+ function validateAria(html) {
19952
+ if (!html || !html.trim()) return { error: "Input is empty" };
19953
+ const elements = parseElements(html);
19954
+ if (elements.length === 0) return { error: "No HTML elements found" };
19955
+ const issues = [];
19956
+ let elementsWithRoleOrAria = 0;
19957
+ for (const el of elements) {
19958
+ const roleAttr = el.attrs["role"];
19959
+ const ariaAttrNames = Object.keys(el.attrs).filter((a) => a.startsWith("aria-"));
19960
+ if (roleAttr === void 0 && ariaAttrNames.length === 0) continue;
19961
+ elementsWithRoleOrAria++;
19962
+ const roles = roleAttr !== void 0 ? roleAttr.trim().split(/\s+/).filter(Boolean) : [];
19963
+ const knownRoles = roles.filter((r) => Object.prototype.hasOwnProperty.call(ARIA_ROLE_TABLE, r));
19964
+ const unknownRoles = roles.filter((r) => !Object.prototype.hasOwnProperty.call(ARIA_ROLE_TABLE, r));
19965
+ for (const r of unknownRoles) {
19966
+ issues.push({ element: el.raw, role: r, severity: "error", message: `Unknown ARIA role "${r}"` });
19967
+ }
19968
+ const primaryRole = knownRoles[0];
19969
+ const roleDef = primaryRole ? ARIA_ROLE_TABLE[primaryRole] : void 0;
19970
+ if (roleDef?.required) {
19971
+ for (const req of roleDef.required) {
19972
+ if (el.attrs[req] === void 0) {
19973
+ issues.push({ element: el.raw, role: primaryRole, severity: "error", message: `role="${primaryRole}" is missing required attribute ${req}` });
19974
+ }
19975
+ }
19976
+ }
19977
+ for (const attrName of ariaAttrNames) {
19978
+ if (ARIA_GLOBAL_ATTRS.has(attrName)) continue;
19979
+ if (roleDef) {
19980
+ const allowed = /* @__PURE__ */ new Set([...roleDef.required ?? [], ...roleDef.supported ?? []]);
19981
+ if (!allowed.has(attrName)) {
19982
+ issues.push({
19983
+ element: el.raw,
19984
+ role: primaryRole ?? null,
19985
+ severity: "error",
19986
+ message: primaryRole ? `${attrName} is not permitted on role="${primaryRole}"` : `${attrName} is not a global aria-* attribute`
19987
+ });
19988
+ }
19989
+ } else if (!ARIA_ALL_KNOWN_ATTRS.has(attrName)) {
19990
+ issues.push({ element: el.raw, role: null, severity: "warning", message: `${attrName} is not a recognized aria-* attribute (possible typo)` });
19991
+ }
19992
+ }
19993
+ }
19994
+ return {
19995
+ elementCount: elements.length,
19996
+ elementsWithRoleOrAria,
19997
+ issues,
19998
+ valid: issues.every((i) => i.severity !== "error")
19999
+ };
20000
+ }
19804
20001
 
19805
20002
  // src/tools/color.ts
19806
20003
  var color_exports = {};
package/dist/index.d.cts CHANGED
@@ -5,10 +5,10 @@ export { t as text } from './text-DWUcY8H1.cjs';
5
5
  export { d as data } from './data-26TALa9U.cjs';
6
6
  export { g as generators } from './generators-DAXXrMvG.cjs';
7
7
  export { t as time } from './time-KqJjdqII.cjs';
8
- export { u as units } from './units-BgaUAUG5.cjs';
8
+ export { u as units } from './units-BAwyBk4x.cjs';
9
9
  export { n as network } from './network-Da3meCWM.cjs';
10
10
  export { a as api } from './api-C8rImfka.cjs';
11
- export { c as code } from './code-CoeD4Fmq.cjs';
11
+ export { c as code } from './code-46xO9xFf.cjs';
12
12
  export { c as color } from './color-tPwZCr9H.cjs';
13
13
  export { c as css } from './css-Cf7AMGM-.cjs';
14
14
  export { m as misc } from './misc-CA3N198T.cjs';
package/dist/index.d.ts CHANGED
@@ -5,10 +5,10 @@ export { t as text } from './text-DWUcY8H1.js';
5
5
  export { d as data } from './data-26TALa9U.js';
6
6
  export { g as generators } from './generators-DAXXrMvG.js';
7
7
  export { t as time } from './time-KqJjdqII.js';
8
- export { u as units } from './units-BgaUAUG5.js';
8
+ export { u as units } from './units-BAwyBk4x.js';
9
9
  export { n as network } from './network-Da3meCWM.js';
10
10
  export { a as api } from './api-C8rImfka.js';
11
- export { c as code } from './code-CoeD4Fmq.js';
11
+ export { c as code } from './code-46xO9xFf.js';
12
12
  export { c as color } from './color-tPwZCr9H.js';
13
13
  export { c as css } from './css-Cf7AMGM-.js';
14
14
  export { m as misc } from './misc-CA3N198T.js';
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  export { media_exports as media } from './chunk-PT4N4UBL.js';
2
- export { units_exports as units } from './chunk-XOUKIGJ4.js';
2
+ export { units_exports as units } from './chunk-AKVWWLNJ.js';
3
3
  export { network_exports as network } from './chunk-CXUOV672.js';
4
4
  export { api_exports as api } from './chunk-4S63T7Y4.js';
5
- export { code_exports as code } from './chunk-DAD2ZOTJ.js';
5
+ export { code_exports as code } from './chunk-XT2BQWXT.js';
6
6
  export { color_exports as color } from './chunk-BPVAB4P2.js';
7
7
  export { css_exports as css } from './chunk-6YPV2AB5.js';
8
8
  export { misc_exports as misc } from './chunk-GX7H6TAX.js';
@@ -3652,6 +3652,167 @@ function extractMarkdownFootnotes(markdown) {
3652
3652
  }
3653
3653
  return { definitionCount: definitions.length, referenceCount, definitions, references, unresolvedReferences, unusedDefinitions };
3654
3654
  }
3655
+ var ARIA_GLOBAL_ATTRS = /* @__PURE__ */ new Set([
3656
+ "aria-atomic",
3657
+ "aria-busy",
3658
+ "aria-controls",
3659
+ "aria-current",
3660
+ "aria-describedby",
3661
+ "aria-details",
3662
+ "aria-disabled",
3663
+ "aria-dropeffect",
3664
+ "aria-errormessage",
3665
+ "aria-flowto",
3666
+ "aria-grabbed",
3667
+ "aria-haspopup",
3668
+ "aria-hidden",
3669
+ "aria-invalid",
3670
+ "aria-keyshortcuts",
3671
+ "aria-label",
3672
+ "aria-labelledby",
3673
+ "aria-live",
3674
+ "aria-owns",
3675
+ "aria-relevant",
3676
+ "aria-roledescription"
3677
+ ]);
3678
+ var ARIA_ROLE_TABLE = {
3679
+ alert: { supported: ["aria-live", "aria-atomic"] },
3680
+ alertdialog: { supported: ["aria-modal"] },
3681
+ article: {},
3682
+ banner: {},
3683
+ button: { supported: ["aria-pressed", "aria-expanded", "aria-disabled"] },
3684
+ checkbox: { required: ["aria-checked"], supported: ["aria-readonly"] },
3685
+ columnheader: { supported: ["aria-sort", "aria-selected", "aria-readonly"] },
3686
+ combobox: { required: ["aria-expanded"], supported: ["aria-controls", "aria-autocomplete", "aria-activedescendant"] },
3687
+ complementary: {},
3688
+ contentinfo: {},
3689
+ dialog: { supported: ["aria-modal"] },
3690
+ form: {},
3691
+ grid: { supported: ["aria-multiselectable", "aria-activedescendant", "aria-level", "aria-readonly"] },
3692
+ gridcell: { supported: ["aria-selected", "aria-readonly", "aria-expanded"] },
3693
+ group: { supported: ["aria-activedescendant", "aria-disabled"] },
3694
+ heading: { required: ["aria-level"] },
3695
+ img: {},
3696
+ link: { supported: ["aria-disabled", "aria-expanded"] },
3697
+ list: {},
3698
+ listbox: { supported: ["aria-multiselectable", "aria-activedescendant", "aria-orientation"] },
3699
+ listitem: { supported: ["aria-level", "aria-posinset", "aria-setsize"] },
3700
+ log: { supported: ["aria-live", "aria-atomic"] },
3701
+ main: {},
3702
+ marquee: {},
3703
+ menu: { supported: ["aria-orientation", "aria-activedescendant"] },
3704
+ menubar: { supported: ["aria-orientation", "aria-activedescendant"] },
3705
+ menuitem: { supported: ["aria-disabled"] },
3706
+ menuitemcheckbox: { required: ["aria-checked"] },
3707
+ menuitemradio: { required: ["aria-checked"] },
3708
+ meter: { required: ["aria-valuenow"], supported: ["aria-valuemin", "aria-valuemax", "aria-valuetext"] },
3709
+ navigation: {},
3710
+ none: {},
3711
+ option: { supported: ["aria-selected", "aria-checked", "aria-posinset", "aria-setsize"] },
3712
+ presentation: {},
3713
+ progressbar: { supported: ["aria-valuenow", "aria-valuemin", "aria-valuemax", "aria-valuetext"] },
3714
+ radio: { required: ["aria-checked"] },
3715
+ radiogroup: { supported: ["aria-activedescendant"] },
3716
+ region: {},
3717
+ row: { supported: ["aria-selected", "aria-level", "aria-expanded"] },
3718
+ rowheader: { supported: ["aria-sort", "aria-selected", "aria-readonly"] },
3719
+ scrollbar: { required: ["aria-valuenow", "aria-controls"], supported: ["aria-valuemin", "aria-valuemax", "aria-orientation"] },
3720
+ search: {},
3721
+ searchbox: { supported: ["aria-multiline", "aria-placeholder", "aria-readonly", "aria-required", "aria-activedescendant", "aria-autocomplete"] },
3722
+ separator: { supported: ["aria-orientation", "aria-valuenow", "aria-valuemin", "aria-valuemax"] },
3723
+ slider: { required: ["aria-valuenow"], supported: ["aria-valuemin", "aria-valuemax", "aria-valuetext", "aria-orientation"] },
3724
+ spinbutton: { supported: ["aria-valuenow", "aria-valuemin", "aria-valuemax", "aria-valuetext", "aria-required"] },
3725
+ status: { supported: ["aria-live", "aria-atomic"] },
3726
+ switch: { required: ["aria-checked"] },
3727
+ tab: { supported: ["aria-selected", "aria-controls", "aria-disabled"] },
3728
+ table: { supported: ["aria-colcount", "aria-rowcount"] },
3729
+ tablist: { supported: ["aria-orientation", "aria-activedescendant", "aria-level"] },
3730
+ tabpanel: {},
3731
+ textbox: { supported: ["aria-multiline", "aria-placeholder", "aria-readonly", "aria-required", "aria-activedescendant", "aria-autocomplete"] },
3732
+ timer: {},
3733
+ toolbar: { supported: ["aria-orientation"] },
3734
+ tooltip: {},
3735
+ tree: { supported: ["aria-multiselectable", "aria-activedescendant", "aria-orientation"] },
3736
+ treegrid: { supported: ["aria-multiselectable", "aria-activedescendant", "aria-orientation", "aria-level", "aria-readonly"] },
3737
+ treeitem: { supported: ["aria-expanded", "aria-selected", "aria-checked", "aria-level"] }
3738
+ };
3739
+ var ARIA_ALL_KNOWN_ATTRS = new Set(ARIA_GLOBAL_ATTRS);
3740
+ for (const entry of Object.values(ARIA_ROLE_TABLE)) {
3741
+ for (const a of entry.required ?? []) ARIA_ALL_KNOWN_ATTRS.add(a);
3742
+ for (const a of entry.supported ?? []) ARIA_ALL_KNOWN_ATTRS.add(a);
3743
+ }
3744
+ var TAG_REGEX = /<([a-zA-Z][a-zA-Z0-9]*)\b((?:[^>"'/]|"[^"]*"|'[^']*')*)\/?>/g;
3745
+ var ATTR_REGEX = /([a-zA-Z][a-zA-Z0-9-]*)\s*=\s*(?:"([^"]*)"|'([^']*)')/g;
3746
+ function parseElements(html) {
3747
+ const elements = [];
3748
+ let match;
3749
+ TAG_REGEX.lastIndex = 0;
3750
+ while ((match = TAG_REGEX.exec(html)) !== null) {
3751
+ const tag = match[1].toLowerCase();
3752
+ if (tag === "script" || tag === "style" || tag === "!--") continue;
3753
+ const attrsStr = match[2] ?? "";
3754
+ const attrs = {};
3755
+ let attrMatch;
3756
+ ATTR_REGEX.lastIndex = 0;
3757
+ while ((attrMatch = ATTR_REGEX.exec(attrsStr)) !== null) {
3758
+ const name = attrMatch[1].toLowerCase();
3759
+ const value = attrMatch[2] ?? attrMatch[3] ?? "";
3760
+ attrs[name] = value;
3761
+ }
3762
+ elements.push({ tag, attrs, raw: match[0].length > 80 ? match[0].slice(0, 77) + "..." : match[0] });
3763
+ }
3764
+ return elements;
3765
+ }
3766
+ function validateAria(html) {
3767
+ if (!html || !html.trim()) return { error: "Input is empty" };
3768
+ const elements = parseElements(html);
3769
+ if (elements.length === 0) return { error: "No HTML elements found" };
3770
+ const issues = [];
3771
+ let elementsWithRoleOrAria = 0;
3772
+ for (const el of elements) {
3773
+ const roleAttr = el.attrs["role"];
3774
+ const ariaAttrNames = Object.keys(el.attrs).filter((a) => a.startsWith("aria-"));
3775
+ if (roleAttr === void 0 && ariaAttrNames.length === 0) continue;
3776
+ elementsWithRoleOrAria++;
3777
+ const roles = roleAttr !== void 0 ? roleAttr.trim().split(/\s+/).filter(Boolean) : [];
3778
+ const knownRoles = roles.filter((r) => Object.prototype.hasOwnProperty.call(ARIA_ROLE_TABLE, r));
3779
+ const unknownRoles = roles.filter((r) => !Object.prototype.hasOwnProperty.call(ARIA_ROLE_TABLE, r));
3780
+ for (const r of unknownRoles) {
3781
+ issues.push({ element: el.raw, role: r, severity: "error", message: `Unknown ARIA role "${r}"` });
3782
+ }
3783
+ const primaryRole = knownRoles[0];
3784
+ const roleDef = primaryRole ? ARIA_ROLE_TABLE[primaryRole] : void 0;
3785
+ if (roleDef?.required) {
3786
+ for (const req of roleDef.required) {
3787
+ if (el.attrs[req] === void 0) {
3788
+ issues.push({ element: el.raw, role: primaryRole, severity: "error", message: `role="${primaryRole}" is missing required attribute ${req}` });
3789
+ }
3790
+ }
3791
+ }
3792
+ for (const attrName of ariaAttrNames) {
3793
+ if (ARIA_GLOBAL_ATTRS.has(attrName)) continue;
3794
+ if (roleDef) {
3795
+ const allowed = /* @__PURE__ */ new Set([...roleDef.required ?? [], ...roleDef.supported ?? []]);
3796
+ if (!allowed.has(attrName)) {
3797
+ issues.push({
3798
+ element: el.raw,
3799
+ role: primaryRole ?? null,
3800
+ severity: "error",
3801
+ message: primaryRole ? `${attrName} is not permitted on role="${primaryRole}"` : `${attrName} is not a global aria-* attribute`
3802
+ });
3803
+ }
3804
+ } else if (!ARIA_ALL_KNOWN_ATTRS.has(attrName)) {
3805
+ issues.push({ element: el.raw, role: null, severity: "warning", message: `${attrName} is not a recognized aria-* attribute (possible typo)` });
3806
+ }
3807
+ }
3808
+ }
3809
+ return {
3810
+ elementCount: elements.length,
3811
+ elementsWithRoleOrAria,
3812
+ issues,
3813
+ valid: issues.every((i) => i.severity !== "error")
3814
+ };
3815
+ }
3655
3816
 
3656
3817
  exports.ALL_FLAGS = ALL_FLAGS;
3657
3818
  exports.CHEATSHEET = CHEATSHEET;
@@ -3709,6 +3870,7 @@ exports.splitStatements = splitStatements;
3709
3870
  exports.testGitignorePatterns = testGitignorePatterns;
3710
3871
  exports.testPattern = testPattern;
3711
3872
  exports.testRegex = testRegex;
3873
+ exports.validateAria = validateAria;
3712
3874
  exports.validateEditorConfig = validateEditorConfig;
3713
3875
  exports.validateEnvKey = validateEnvKey;
3714
3876
  exports.validatePackageExports = validatePackageExports;
@@ -1 +1 @@
1
- export { A as ALL_FLAGS, a as ApiEndpoint, b as ApiInfo, C as CHEATSHEET, d as CheatsheetEntry, e as CommitTrailer, f as CommitTrailerResult, g as ConventionalCommitFinding, h as ConventionalCommitFooter, i as ConventionalCommitOptions, j as ConventionalCommitParsed, k as ConventionalCommitResult, l as ConventionalCommitSeverity, m as CssResult, D as DEFAULT_COMMIT_TYPES, n as DependencyAuditDuplicate, o as DependencyAuditEntry, p as DependencyAuditIssue, q as DependencyAuditResult, r as DependencyRangeType, s as DependencySection, t as DockerImageRef, E as EditorConfigIssue, u as EditorConfigProperty, v as EditorConfigSection, w as EditorConfigValidationResult, x as EnvEntry, y as EnvParseResult, z as ExportsIssue, B as ExportsShape, F as ExportsValidationResult, G as GitCommandConfig, H as GitCommandResult, I as GitOperation, J as GithubUrlInfo, K as GithubUrlType, L as GitignoreTestResult, M as GqlFormatResult, N as HtmlFormatResult, O as HtmlMinifyOptions, P as HtmlMinifyResult, Q as JsMinifyOptions, R as JsMinifyResult, S as MIME_TABLE, T as MarkdownFootnoteDefinition, U as MarkdownFootnoteReference, V as MarkdownFootnoteResult, W as MatchResult, X as MimeEntry, Y as MimeLookupResult, Z as OPERATIONS, _ as ParsedSpec, $ as RedosFinding, a0 as RedosResult, a1 as RedosSeverity, a2 as RegexBackreferenceInfo, a3 as RegexError, a4 as RegexFlag, a5 as RegexGroupAnalysis, a6 as RegexGroupInfo, a7 as RegexGroupIssue, a8 as RegexMatch, a9 as RegexResult, aa as RegexSuccess, ab as SQL_DEFAULT_OPTIONS, ac as Segment, ad as SpecVersion, ae as SqlDialect, af as SqlFormatOptions, ag as SvgSpriteResult, ah as SvgSpriteSymbol, ai as TestPatternResult, aj as TsconfigIssue, ak as TsconfigValidationResult, al as analyzeRegexGroups, am as auditDependencyRanges, an as buildDockerPull, ao as buildDockerRun, ap as buildGitCommand, aq as collapseHtmlWhitespace, ar as collapseJsWhitespace, as as countProperties, at as countRules, au as detectDialect, av as detectOperationType, aw as detectRedos, ax as envToExport, ay as envToJson, az as extractMarkdownFootnotes, aA as extractSvgSpriteSymbols, aB as formatCss, aC as formatGql, aD as formatHtml, aE as formatSql, aF as getEndpointsByTag, aG as getHtmlStats, aH as getJsStats, aI as getMethodColor, aJ as isValidTag, aK as lintConventionalCommit, aL as lookupMime, aM as minifyCss, aN as minifyGql, aO as minifyHtml, aP as minifyJs, aQ as minifySql, aR as normalizeRef, aS as parseCommitTrailers, aT as parseDockerImage, aU as parseEnv, aV as parseGitCommand, aW as parseGithubUrl, aX as parseSpec, aY as removeConsoleCalls, aZ as removeEmptyAttributes, a_ as removeHtmlComments, a$ as removeJsComments, b0 as removeRedundantAttributes, b1 as searchCheatsheet, b2 as searchEndpoints, b3 as splitStatements, b4 as testGitignorePatterns, b5 as testPattern, b6 as testRegex, b7 as validateEditorConfig, b8 as validateEnvKey, b9 as validatePackageExports, ba as validateTsconfig } from '../code-CoeD4Fmq.cjs';
1
+ export { A as ALL_FLAGS, a as ApiEndpoint, b as ApiInfo, d as AriaIssue, e as AriaValidationResult, C as CHEATSHEET, f as CheatsheetEntry, g as CommitTrailer, h as CommitTrailerResult, i as ConventionalCommitFinding, j as ConventionalCommitFooter, k as ConventionalCommitOptions, l as ConventionalCommitParsed, m as ConventionalCommitResult, n as ConventionalCommitSeverity, o as CssResult, D as DEFAULT_COMMIT_TYPES, p as DependencyAuditDuplicate, q as DependencyAuditEntry, r as DependencyAuditIssue, s as DependencyAuditResult, t as DependencyRangeType, u as DependencySection, v as DockerImageRef, E as EditorConfigIssue, w as EditorConfigProperty, x as EditorConfigSection, y as EditorConfigValidationResult, z as EnvEntry, B as EnvParseResult, F as ExportsIssue, G as ExportsShape, H as ExportsValidationResult, I as GitCommandConfig, J as GitCommandResult, K as GitOperation, L as GithubUrlInfo, M as GithubUrlType, N as GitignoreTestResult, O as GqlFormatResult, P as HtmlFormatResult, Q as HtmlMinifyOptions, R as HtmlMinifyResult, S as JsMinifyOptions, T as JsMinifyResult, U as MIME_TABLE, V as MarkdownFootnoteDefinition, W as MarkdownFootnoteReference, X as MarkdownFootnoteResult, Y as MatchResult, Z as MimeEntry, _ as MimeLookupResult, $ as OPERATIONS, a0 as ParsedSpec, a1 as RedosFinding, a2 as RedosResult, a3 as RedosSeverity, a4 as RegexBackreferenceInfo, a5 as RegexError, a6 as RegexFlag, a7 as RegexGroupAnalysis, a8 as RegexGroupInfo, a9 as RegexGroupIssue, aa as RegexMatch, ab as RegexResult, ac as RegexSuccess, ad as SQL_DEFAULT_OPTIONS, ae as Segment, af as SpecVersion, ag as SqlDialect, ah as SqlFormatOptions, ai as SvgSpriteResult, aj as SvgSpriteSymbol, ak as TestPatternResult, al as TsconfigIssue, am as TsconfigValidationResult, an as analyzeRegexGroups, ao as auditDependencyRanges, ap as buildDockerPull, aq as buildDockerRun, ar as buildGitCommand, as as collapseHtmlWhitespace, at as collapseJsWhitespace, au as countProperties, av as countRules, aw as detectDialect, ax as detectOperationType, ay as detectRedos, az as envToExport, aA as envToJson, aB as extractMarkdownFootnotes, aC as extractSvgSpriteSymbols, aD as formatCss, aE as formatGql, aF as formatHtml, aG as formatSql, aH as getEndpointsByTag, aI as getHtmlStats, aJ as getJsStats, aK as getMethodColor, aL as isValidTag, aM as lintConventionalCommit, aN as lookupMime, aO as minifyCss, aP as minifyGql, aQ as minifyHtml, aR as minifyJs, aS as minifySql, aT as normalizeRef, aU as parseCommitTrailers, aV as parseDockerImage, aW as parseEnv, aX as parseGitCommand, aY as parseGithubUrl, aZ as parseSpec, a_ as removeConsoleCalls, a$ as removeEmptyAttributes, b0 as removeHtmlComments, b1 as removeJsComments, b2 as removeRedundantAttributes, b3 as searchCheatsheet, b4 as searchEndpoints, b5 as splitStatements, b6 as testGitignorePatterns, b7 as testPattern, b8 as testRegex, b9 as validateAria, ba as validateEditorConfig, bb as validateEnvKey, bc as validatePackageExports, bd as validateTsconfig } from '../code-46xO9xFf.cjs';
@@ -1 +1 @@
1
- export { A as ALL_FLAGS, a as ApiEndpoint, b as ApiInfo, C as CHEATSHEET, d as CheatsheetEntry, e as CommitTrailer, f as CommitTrailerResult, g as ConventionalCommitFinding, h as ConventionalCommitFooter, i as ConventionalCommitOptions, j as ConventionalCommitParsed, k as ConventionalCommitResult, l as ConventionalCommitSeverity, m as CssResult, D as DEFAULT_COMMIT_TYPES, n as DependencyAuditDuplicate, o as DependencyAuditEntry, p as DependencyAuditIssue, q as DependencyAuditResult, r as DependencyRangeType, s as DependencySection, t as DockerImageRef, E as EditorConfigIssue, u as EditorConfigProperty, v as EditorConfigSection, w as EditorConfigValidationResult, x as EnvEntry, y as EnvParseResult, z as ExportsIssue, B as ExportsShape, F as ExportsValidationResult, G as GitCommandConfig, H as GitCommandResult, I as GitOperation, J as GithubUrlInfo, K as GithubUrlType, L as GitignoreTestResult, M as GqlFormatResult, N as HtmlFormatResult, O as HtmlMinifyOptions, P as HtmlMinifyResult, Q as JsMinifyOptions, R as JsMinifyResult, S as MIME_TABLE, T as MarkdownFootnoteDefinition, U as MarkdownFootnoteReference, V as MarkdownFootnoteResult, W as MatchResult, X as MimeEntry, Y as MimeLookupResult, Z as OPERATIONS, _ as ParsedSpec, $ as RedosFinding, a0 as RedosResult, a1 as RedosSeverity, a2 as RegexBackreferenceInfo, a3 as RegexError, a4 as RegexFlag, a5 as RegexGroupAnalysis, a6 as RegexGroupInfo, a7 as RegexGroupIssue, a8 as RegexMatch, a9 as RegexResult, aa as RegexSuccess, ab as SQL_DEFAULT_OPTIONS, ac as Segment, ad as SpecVersion, ae as SqlDialect, af as SqlFormatOptions, ag as SvgSpriteResult, ah as SvgSpriteSymbol, ai as TestPatternResult, aj as TsconfigIssue, ak as TsconfigValidationResult, al as analyzeRegexGroups, am as auditDependencyRanges, an as buildDockerPull, ao as buildDockerRun, ap as buildGitCommand, aq as collapseHtmlWhitespace, ar as collapseJsWhitespace, as as countProperties, at as countRules, au as detectDialect, av as detectOperationType, aw as detectRedos, ax as envToExport, ay as envToJson, az as extractMarkdownFootnotes, aA as extractSvgSpriteSymbols, aB as formatCss, aC as formatGql, aD as formatHtml, aE as formatSql, aF as getEndpointsByTag, aG as getHtmlStats, aH as getJsStats, aI as getMethodColor, aJ as isValidTag, aK as lintConventionalCommit, aL as lookupMime, aM as minifyCss, aN as minifyGql, aO as minifyHtml, aP as minifyJs, aQ as minifySql, aR as normalizeRef, aS as parseCommitTrailers, aT as parseDockerImage, aU as parseEnv, aV as parseGitCommand, aW as parseGithubUrl, aX as parseSpec, aY as removeConsoleCalls, aZ as removeEmptyAttributes, a_ as removeHtmlComments, a$ as removeJsComments, b0 as removeRedundantAttributes, b1 as searchCheatsheet, b2 as searchEndpoints, b3 as splitStatements, b4 as testGitignorePatterns, b5 as testPattern, b6 as testRegex, b7 as validateEditorConfig, b8 as validateEnvKey, b9 as validatePackageExports, ba as validateTsconfig } from '../code-CoeD4Fmq.js';
1
+ export { A as ALL_FLAGS, a as ApiEndpoint, b as ApiInfo, d as AriaIssue, e as AriaValidationResult, C as CHEATSHEET, f as CheatsheetEntry, g as CommitTrailer, h as CommitTrailerResult, i as ConventionalCommitFinding, j as ConventionalCommitFooter, k as ConventionalCommitOptions, l as ConventionalCommitParsed, m as ConventionalCommitResult, n as ConventionalCommitSeverity, o as CssResult, D as DEFAULT_COMMIT_TYPES, p as DependencyAuditDuplicate, q as DependencyAuditEntry, r as DependencyAuditIssue, s as DependencyAuditResult, t as DependencyRangeType, u as DependencySection, v as DockerImageRef, E as EditorConfigIssue, w as EditorConfigProperty, x as EditorConfigSection, y as EditorConfigValidationResult, z as EnvEntry, B as EnvParseResult, F as ExportsIssue, G as ExportsShape, H as ExportsValidationResult, I as GitCommandConfig, J as GitCommandResult, K as GitOperation, L as GithubUrlInfo, M as GithubUrlType, N as GitignoreTestResult, O as GqlFormatResult, P as HtmlFormatResult, Q as HtmlMinifyOptions, R as HtmlMinifyResult, S as JsMinifyOptions, T as JsMinifyResult, U as MIME_TABLE, V as MarkdownFootnoteDefinition, W as MarkdownFootnoteReference, X as MarkdownFootnoteResult, Y as MatchResult, Z as MimeEntry, _ as MimeLookupResult, $ as OPERATIONS, a0 as ParsedSpec, a1 as RedosFinding, a2 as RedosResult, a3 as RedosSeverity, a4 as RegexBackreferenceInfo, a5 as RegexError, a6 as RegexFlag, a7 as RegexGroupAnalysis, a8 as RegexGroupInfo, a9 as RegexGroupIssue, aa as RegexMatch, ab as RegexResult, ac as RegexSuccess, ad as SQL_DEFAULT_OPTIONS, ae as Segment, af as SpecVersion, ag as SqlDialect, ah as SqlFormatOptions, ai as SvgSpriteResult, aj as SvgSpriteSymbol, ak as TestPatternResult, al as TsconfigIssue, am as TsconfigValidationResult, an as analyzeRegexGroups, ao as auditDependencyRanges, ap as buildDockerPull, aq as buildDockerRun, ar as buildGitCommand, as as collapseHtmlWhitespace, at as collapseJsWhitespace, au as countProperties, av as countRules, aw as detectDialect, ax as detectOperationType, ay as detectRedos, az as envToExport, aA as envToJson, aB as extractMarkdownFootnotes, aC as extractSvgSpriteSymbols, aD as formatCss, aE as formatGql, aF as formatHtml, aG as formatSql, aH as getEndpointsByTag, aI as getHtmlStats, aJ as getJsStats, aK as getMethodColor, aL as isValidTag, aM as lintConventionalCommit, aN as lookupMime, aO as minifyCss, aP as minifyGql, aQ as minifyHtml, aR as minifyJs, aS as minifySql, aT as normalizeRef, aU as parseCommitTrailers, aV as parseDockerImage, aW as parseEnv, aX as parseGitCommand, aY as parseGithubUrl, aZ as parseSpec, a_ as removeConsoleCalls, a$ as removeEmptyAttributes, b0 as removeHtmlComments, b1 as removeJsComments, b2 as removeRedundantAttributes, b3 as searchCheatsheet, b4 as searchEndpoints, b5 as splitStatements, b6 as testGitignorePatterns, b7 as testPattern, b8 as testRegex, b9 as validateAria, ba as validateEditorConfig, bb as validateEnvKey, bc as validatePackageExports, bd as validateTsconfig } from '../code-46xO9xFf.js';
@@ -1,2 +1,2 @@
1
- export { ALL_FLAGS, CHEATSHEET, DEFAULT_COMMIT_TYPES, MIME_TABLE, OPERATIONS, SQL_DEFAULT_OPTIONS, analyzeRegexGroups, auditDependencyRanges, buildDockerPull, buildDockerRun, buildGitCommand, collapseHtmlWhitespace, collapseJsWhitespace, countProperties, countRules, detectDialect, detectOperationType, detectRedos, envToExport, envToJson, extractMarkdownFootnotes, extractSvgSpriteSymbols, formatCss, formatGql, formatHtml, formatSql, getEndpointsByTag, getHtmlStats, getJsStats, getMethodColor, isValidTag, lintConventionalCommit, lookupMime, minifyCss, minifyGql, minifyHtml, minifyJs, minifySql, normalizeRef, parseCommitTrailers, parseDockerImage, parseEnv, parseGitCommand, parseGithubUrl, parseSpec, removeConsoleCalls, removeEmptyAttributes, removeHtmlComments, removeJsComments, removeRedundantAttributes, searchCheatsheet, searchEndpoints, splitStatements, testGitignorePatterns, testPattern, testRegex, validateEditorConfig, validateEnvKey, validatePackageExports, validateTsconfig } from '../chunk-DAD2ZOTJ.js';
1
+ export { ALL_FLAGS, CHEATSHEET, DEFAULT_COMMIT_TYPES, MIME_TABLE, OPERATIONS, SQL_DEFAULT_OPTIONS, analyzeRegexGroups, auditDependencyRanges, buildDockerPull, buildDockerRun, buildGitCommand, collapseHtmlWhitespace, collapseJsWhitespace, countProperties, countRules, detectDialect, detectOperationType, detectRedos, envToExport, envToJson, extractMarkdownFootnotes, extractSvgSpriteSymbols, formatCss, formatGql, formatHtml, formatSql, getEndpointsByTag, getHtmlStats, getJsStats, getMethodColor, isValidTag, lintConventionalCommit, lookupMime, minifyCss, minifyGql, minifyHtml, minifyJs, minifySql, normalizeRef, parseCommitTrailers, parseDockerImage, parseEnv, parseGitCommand, parseGithubUrl, parseSpec, removeConsoleCalls, removeEmptyAttributes, removeHtmlComments, removeJsComments, removeRedundantAttributes, searchCheatsheet, searchEndpoints, splitStatements, testGitignorePatterns, testPattern, testRegex, validateAria, validateEditorConfig, validateEnvKey, validatePackageExports, validateTsconfig } from '../chunk-XT2BQWXT.js';
2
2
  import '../chunk-MLKGABMK.js';
@@ -2554,6 +2554,40 @@ function calculateMortgagePoints(loanAmount, baseRatePercent, termMonths, points
2554
2554
  totalInterestSavings: round2(withoutPoints.totalInterest - withPoints.totalInterest)
2555
2555
  };
2556
2556
  }
2557
+ function calculateLoanPrepaymentPenalty(payoffBalance, penaltyType, params) {
2558
+ if (!Number.isFinite(payoffBalance) || payoffBalance <= 0) {
2559
+ return { error: "Payoff balance must be a positive number" };
2560
+ }
2561
+ if (penaltyType !== "percent-of-balance" && penaltyType !== "months-of-interest") {
2562
+ return { error: 'penaltyType must be "percent-of-balance" or "months-of-interest"' };
2563
+ }
2564
+ let penaltyAmount;
2565
+ if (penaltyType === "percent-of-balance") {
2566
+ const penaltyPercent = params.penaltyPercent;
2567
+ if (!Number.isFinite(penaltyPercent) || penaltyPercent < 0) {
2568
+ return { error: "penaltyPercent must be zero or a positive number" };
2569
+ }
2570
+ penaltyAmount = round2(payoffBalance * (penaltyPercent / 100));
2571
+ } else {
2572
+ const monthsOfInterest = params.monthsOfInterest;
2573
+ const annualRatePercent = params.annualRatePercent;
2574
+ if (!Number.isFinite(monthsOfInterest) || monthsOfInterest < 0) {
2575
+ return { error: "monthsOfInterest must be zero or a positive number" };
2576
+ }
2577
+ if (!Number.isFinite(annualRatePercent) || annualRatePercent < 0) {
2578
+ return { error: "annualRatePercent must be zero or a positive number" };
2579
+ }
2580
+ const monthlyInterest = payoffBalance * (annualRatePercent / 100 / 12);
2581
+ penaltyAmount = round2(monthlyInterest * monthsOfInterest);
2582
+ }
2583
+ return {
2584
+ payoffBalance: round2(payoffBalance),
2585
+ penaltyType,
2586
+ penaltyAmount,
2587
+ effectivePenaltyPercent: round2(penaltyAmount / payoffBalance * 100),
2588
+ totalPayoffCost: round2(payoffBalance + penaltyAmount)
2589
+ };
2590
+ }
2557
2591
 
2558
2592
  exports.BASE_LABELS = BASE_LABELS;
2559
2593
  exports.BASE_PREFIXES = BASE_PREFIXES;
@@ -2589,6 +2623,7 @@ exports.calculateExtraPaymentPayoff = calculateExtraPaymentPayoff;
2589
2623
  exports.calculateFreelancerRate = calculateFreelancerRate;
2590
2624
  exports.calculateGpa = calculateGpa;
2591
2625
  exports.calculateLoan = calculateLoan;
2626
+ exports.calculateLoanPrepaymentPenalty = calculateLoanPrepaymentPenalty;
2592
2627
  exports.calculateLoanRefinance = calculateLoanRefinance;
2593
2628
  exports.calculateMarginMarkup = calculateMarginMarkup;
2594
2629
  exports.calculateMortgagePoints = calculateMortgagePoints;
@@ -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 CompareUnitPricesResult, G as CompoundInterestResult, H as CompoundYearRow, I as CreditAccountInput, J as CreditAccountResult, K as CreditUtilizationResult, L as DebtItemInput, M as DebtItemResult, N as DebtPayoffComparison, O as DebtPayoffInput, P as DebtPayoffPlanResult, Q as DebtPayoffScheduleEntry, R as DebtPayoffStrategy, S as DebtPayoffStrategyResult, T as DebtToIncomeRatioResult, U as DepreciationMethod, V as DepreciationResult, W as DepreciationYear, X as Dimensions, Y as DiscountField, Z as DiscountInput, _ as DiscountResult, $ as DtiTier, a0 as EmiResult, a1 as EmiTenureUnit, a2 as EmiYearlyBreakdownRow, a3 as ExtraPaymentPayoffResult, a4 as FilePermissions, a5 as FormatOptions, a6 as FreelancerRateInput, a7 as FreelancerRateResult, a8 as GPA_GRADE_POINTS, a9 as GpaCourse, aa as GpaCourseResult, ab as GpaResult, ac as IbanValidationResult, ad as IpConversion, ae as IsbnFormat, af as IsbnResult, ag as IsinValidationResult, ah as LoanBalanceInput, ai as LoanBalanceResult, aj as LoanRefinanceResult, ak as LoanResult, al as MarginMarkupField, am as MarginMarkupInput, an as MarginMarkupResult, ao as MortgagePointsResult, ap as MovingAveragePoint, aq as MovingAverageResult, ar as NotationStyle, as as NumberBase, at as PaybackPeriodInput, au as PaybackPeriodResult, av as PercentChangeDirection, aw as PercentageChangeResult, ax as Permission, ay as PxConvertResult, az as RoiInput, aA as RoiResult, aB as RuleOf72Direction, aC as RuleOf72Result, aD as SavingsGoalInput, aE as SavingsGoalMode, aF as SavingsGoalResult, aG as SemverVersion, aH as SimpleInterestResult, aI as SubnetInfo, aJ as SuccessiveDiscountResult, aK as SuccessiveDiscountStep, aL as TaxDirection, aM as TaxEquivalentYieldDirection, aN as TaxEquivalentYieldResult, aO as TaxResult, aP as TimeValueDirection, aQ as TimeValueResult, aR as TipSplitResult, aS as USD_DENOMINATIONS, aT as UnitPriceItem, aU as UnitPriceResult, aV as UtilizationTier, aW as VideoBitrateInput, aX as VideoBitrateMode, aY as VideoBitrateResult, aZ as ViewportConvertResult, a_ as VinValidationResult, a$ as applySuccessiveDiscounts, b0 as autoFormat, b1 as bumpVersion, b2 as calcAspectRatio, b3 as calcSubnet, b4 as calculateBlendedLoanRate, b5 as calculateBreakEven, b6 as calculateCashBreakdown, b7 as calculateCashRounding, b8 as calculateCdMaturity, b9 as calculateChange, ba as calculateCompoundInterest, bb as calculateCreditUtilization, bc as calculateDebtToIncomeRatio, bd as calculateDepreciationSchedule, be as calculateDiscount, bf as calculateEmi, bg as calculateExtraPaymentPayoff, bh as calculateFreelancerRate, bi as calculateGpa, bj as calculateLoan, bk as calculateLoanRefinance, bl as calculateMarginMarkup, bm as calculateMortgagePoints, bn as calculateMovingAverages, bo as calculatePaybackPeriod, bp as calculatePercentageChange, bq as calculateRoi, br as calculateRuleOf72, bs as calculateSavingsGoal, bt as calculateSimpleInterest, bu as calculateTax, bv as calculateTaxEquivalentYield, bw as calculateTimeValue, bx as calculateTipSplit, by as calculateVideoBitrate, bz as compareSemver, bA as compareUnitPrices, bB as convert, bC as convertAprApy, bD as convertBytes, bE as convertIp, bF as coverBox, bG as decimalToIp, bH as decimalToIpCidr, bI as describePermissions, bJ as fitIntoBox, bK as formatNumber, bL as formatValue, bM as formatVwValue, bN as formatWithSeparator, bO as gcd, bP as ipFromBinary, bQ as ipFromDecimal, bR as ipFromHex, bS as ipToBinary, bT as ipToDecimal, bU as ipToDecimalCidr, bV as ipToHex, bW as ipToOctal, bX as isValid, bY as isValidCidr, bZ as isValidIp, b_ as isValidIpv4, b$ as marginToMarkup, c0 as markupToMargin, c1 as octalToPermissions, c2 as parseFileSize, c3 as parseInput, c4 as parseNumberString, c5 as parseSemver, c6 as permissionsToChmod, c7 as permissionsToOctal, c8 as permissionsToSymbolic, c9 as planDebtPayoff, ca as ptToPx, cb as pxToAll, cc as pxToViewport, cd as remToPx, ce as satisfiesRange, cf as scaleByHeight, cg as scaleByWidth, ch as sortVersions, ci as splitSubnet, cj as symbolicToPermissions, ck as validateBarcode, cl as validateCardNumber, cm as validateIban, cn as validateIsbn, co as validateIsin, cp as validateVin, cq as viewportToPx } from '../units-BgaUAUG5.cjs';
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 CompareUnitPricesResult, G as CompoundInterestResult, H as CompoundYearRow, I as CreditAccountInput, J as CreditAccountResult, K as CreditUtilizationResult, L as DebtItemInput, M as DebtItemResult, N as DebtPayoffComparison, O as DebtPayoffInput, P as DebtPayoffPlanResult, Q as DebtPayoffScheduleEntry, R as DebtPayoffStrategy, S as DebtPayoffStrategyResult, T as DebtToIncomeRatioResult, U as DepreciationMethod, V as DepreciationResult, W as DepreciationYear, X as Dimensions, Y as DiscountField, Z as DiscountInput, _ as DiscountResult, $ as DtiTier, a0 as EmiResult, a1 as EmiTenureUnit, a2 as EmiYearlyBreakdownRow, a3 as ExtraPaymentPayoffResult, a4 as FilePermissions, a5 as FormatOptions, a6 as FreelancerRateInput, a7 as FreelancerRateResult, a8 as GPA_GRADE_POINTS, a9 as GpaCourse, aa as GpaCourseResult, ab as GpaResult, ac as IbanValidationResult, ad as IpConversion, ae as IsbnFormat, af as IsbnResult, ag as IsinValidationResult, ah as LoanBalanceInput, ai as LoanBalanceResult, aj as LoanPrepaymentPenaltyResult, ak as LoanRefinanceResult, al as LoanResult, am as MarginMarkupField, an as MarginMarkupInput, ao as MarginMarkupResult, ap as MortgagePointsResult, aq as MovingAveragePoint, ar as MovingAverageResult, as as NotationStyle, at as NumberBase, au as PaybackPeriodInput, av as PaybackPeriodResult, aw as PercentChangeDirection, ax as PercentageChangeResult, ay as Permission, az as PrepaymentPenaltyType, aA as PxConvertResult, aB as RoiInput, aC as RoiResult, aD as RuleOf72Direction, aE as RuleOf72Result, aF as SavingsGoalInput, aG as SavingsGoalMode, aH as SavingsGoalResult, aI as SemverVersion, aJ as SimpleInterestResult, aK as SubnetInfo, aL as SuccessiveDiscountResult, aM as SuccessiveDiscountStep, aN as TaxDirection, aO as TaxEquivalentYieldDirection, aP as TaxEquivalentYieldResult, aQ as TaxResult, aR as TimeValueDirection, aS as TimeValueResult, aT as TipSplitResult, aU as USD_DENOMINATIONS, aV as UnitPriceItem, aW as UnitPriceResult, aX as UtilizationTier, aY as VideoBitrateInput, aZ as VideoBitrateMode, a_ as VideoBitrateResult, a$ as ViewportConvertResult, b0 as VinValidationResult, b1 as applySuccessiveDiscounts, b2 as autoFormat, b3 as bumpVersion, b4 as calcAspectRatio, b5 as calcSubnet, b6 as calculateBlendedLoanRate, b7 as calculateBreakEven, b8 as calculateCashBreakdown, b9 as calculateCashRounding, ba as calculateCdMaturity, bb as calculateChange, bc as calculateCompoundInterest, bd as calculateCreditUtilization, be as calculateDebtToIncomeRatio, bf as calculateDepreciationSchedule, bg as calculateDiscount, bh as calculateEmi, bi as calculateExtraPaymentPayoff, bj as calculateFreelancerRate, bk as calculateGpa, bl as calculateLoan, bm as calculateLoanPrepaymentPenalty, bn as calculateLoanRefinance, bo as calculateMarginMarkup, bp as calculateMortgagePoints, bq as calculateMovingAverages, br as calculatePaybackPeriod, bs as calculatePercentageChange, bt as calculateRoi, bu as calculateRuleOf72, bv as calculateSavingsGoal, bw as calculateSimpleInterest, bx as calculateTax, by as calculateTaxEquivalentYield, bz as calculateTimeValue, bA as calculateTipSplit, bB as calculateVideoBitrate, bC as compareSemver, bD as compareUnitPrices, bE as convert, bF as convertAprApy, bG as convertBytes, bH as convertIp, bI as coverBox, bJ as decimalToIp, bK as decimalToIpCidr, bL as describePermissions, bM as fitIntoBox, bN as formatNumber, bO as formatValue, bP as formatVwValue, bQ as formatWithSeparator, bR as gcd, bS as ipFromBinary, bT as ipFromDecimal, bU as ipFromHex, bV as ipToBinary, bW as ipToDecimal, bX as ipToDecimalCidr, bY as ipToHex, bZ as ipToOctal, b_ as isValid, b$ as isValidCidr, c0 as isValidIp, c1 as isValidIpv4, c2 as marginToMarkup, c3 as markupToMargin, c4 as octalToPermissions, c5 as parseFileSize, c6 as parseInput, c7 as parseNumberString, c8 as parseSemver, c9 as permissionsToChmod, ca as permissionsToOctal, cb as permissionsToSymbolic, cc as planDebtPayoff, cd as ptToPx, ce as pxToAll, cf as pxToViewport, cg as remToPx, ch as satisfiesRange, ci as scaleByHeight, cj as scaleByWidth, ck as sortVersions, cl as splitSubnet, cm as symbolicToPermissions, cn as validateBarcode, co as validateCardNumber, cp as validateIban, cq as validateIsbn, cr as validateIsin, cs as validateVin, ct as viewportToPx } from '../units-BAwyBk4x.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 CompareUnitPricesResult, G as CompoundInterestResult, H as CompoundYearRow, I as CreditAccountInput, J as CreditAccountResult, K as CreditUtilizationResult, L as DebtItemInput, M as DebtItemResult, N as DebtPayoffComparison, O as DebtPayoffInput, P as DebtPayoffPlanResult, Q as DebtPayoffScheduleEntry, R as DebtPayoffStrategy, S as DebtPayoffStrategyResult, T as DebtToIncomeRatioResult, U as DepreciationMethod, V as DepreciationResult, W as DepreciationYear, X as Dimensions, Y as DiscountField, Z as DiscountInput, _ as DiscountResult, $ as DtiTier, a0 as EmiResult, a1 as EmiTenureUnit, a2 as EmiYearlyBreakdownRow, a3 as ExtraPaymentPayoffResult, a4 as FilePermissions, a5 as FormatOptions, a6 as FreelancerRateInput, a7 as FreelancerRateResult, a8 as GPA_GRADE_POINTS, a9 as GpaCourse, aa as GpaCourseResult, ab as GpaResult, ac as IbanValidationResult, ad as IpConversion, ae as IsbnFormat, af as IsbnResult, ag as IsinValidationResult, ah as LoanBalanceInput, ai as LoanBalanceResult, aj as LoanRefinanceResult, ak as LoanResult, al as MarginMarkupField, am as MarginMarkupInput, an as MarginMarkupResult, ao as MortgagePointsResult, ap as MovingAveragePoint, aq as MovingAverageResult, ar as NotationStyle, as as NumberBase, at as PaybackPeriodInput, au as PaybackPeriodResult, av as PercentChangeDirection, aw as PercentageChangeResult, ax as Permission, ay as PxConvertResult, az as RoiInput, aA as RoiResult, aB as RuleOf72Direction, aC as RuleOf72Result, aD as SavingsGoalInput, aE as SavingsGoalMode, aF as SavingsGoalResult, aG as SemverVersion, aH as SimpleInterestResult, aI as SubnetInfo, aJ as SuccessiveDiscountResult, aK as SuccessiveDiscountStep, aL as TaxDirection, aM as TaxEquivalentYieldDirection, aN as TaxEquivalentYieldResult, aO as TaxResult, aP as TimeValueDirection, aQ as TimeValueResult, aR as TipSplitResult, aS as USD_DENOMINATIONS, aT as UnitPriceItem, aU as UnitPriceResult, aV as UtilizationTier, aW as VideoBitrateInput, aX as VideoBitrateMode, aY as VideoBitrateResult, aZ as ViewportConvertResult, a_ as VinValidationResult, a$ as applySuccessiveDiscounts, b0 as autoFormat, b1 as bumpVersion, b2 as calcAspectRatio, b3 as calcSubnet, b4 as calculateBlendedLoanRate, b5 as calculateBreakEven, b6 as calculateCashBreakdown, b7 as calculateCashRounding, b8 as calculateCdMaturity, b9 as calculateChange, ba as calculateCompoundInterest, bb as calculateCreditUtilization, bc as calculateDebtToIncomeRatio, bd as calculateDepreciationSchedule, be as calculateDiscount, bf as calculateEmi, bg as calculateExtraPaymentPayoff, bh as calculateFreelancerRate, bi as calculateGpa, bj as calculateLoan, bk as calculateLoanRefinance, bl as calculateMarginMarkup, bm as calculateMortgagePoints, bn as calculateMovingAverages, bo as calculatePaybackPeriod, bp as calculatePercentageChange, bq as calculateRoi, br as calculateRuleOf72, bs as calculateSavingsGoal, bt as calculateSimpleInterest, bu as calculateTax, bv as calculateTaxEquivalentYield, bw as calculateTimeValue, bx as calculateTipSplit, by as calculateVideoBitrate, bz as compareSemver, bA as compareUnitPrices, bB as convert, bC as convertAprApy, bD as convertBytes, bE as convertIp, bF as coverBox, bG as decimalToIp, bH as decimalToIpCidr, bI as describePermissions, bJ as fitIntoBox, bK as formatNumber, bL as formatValue, bM as formatVwValue, bN as formatWithSeparator, bO as gcd, bP as ipFromBinary, bQ as ipFromDecimal, bR as ipFromHex, bS as ipToBinary, bT as ipToDecimal, bU as ipToDecimalCidr, bV as ipToHex, bW as ipToOctal, bX as isValid, bY as isValidCidr, bZ as isValidIp, b_ as isValidIpv4, b$ as marginToMarkup, c0 as markupToMargin, c1 as octalToPermissions, c2 as parseFileSize, c3 as parseInput, c4 as parseNumberString, c5 as parseSemver, c6 as permissionsToChmod, c7 as permissionsToOctal, c8 as permissionsToSymbolic, c9 as planDebtPayoff, ca as ptToPx, cb as pxToAll, cc as pxToViewport, cd as remToPx, ce as satisfiesRange, cf as scaleByHeight, cg as scaleByWidth, ch as sortVersions, ci as splitSubnet, cj as symbolicToPermissions, ck as validateBarcode, cl as validateCardNumber, cm as validateIban, cn as validateIsbn, co as validateIsin, cp as validateVin, cq as viewportToPx } from '../units-BgaUAUG5.js';
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 CompareUnitPricesResult, G as CompoundInterestResult, H as CompoundYearRow, I as CreditAccountInput, J as CreditAccountResult, K as CreditUtilizationResult, L as DebtItemInput, M as DebtItemResult, N as DebtPayoffComparison, O as DebtPayoffInput, P as DebtPayoffPlanResult, Q as DebtPayoffScheduleEntry, R as DebtPayoffStrategy, S as DebtPayoffStrategyResult, T as DebtToIncomeRatioResult, U as DepreciationMethod, V as DepreciationResult, W as DepreciationYear, X as Dimensions, Y as DiscountField, Z as DiscountInput, _ as DiscountResult, $ as DtiTier, a0 as EmiResult, a1 as EmiTenureUnit, a2 as EmiYearlyBreakdownRow, a3 as ExtraPaymentPayoffResult, a4 as FilePermissions, a5 as FormatOptions, a6 as FreelancerRateInput, a7 as FreelancerRateResult, a8 as GPA_GRADE_POINTS, a9 as GpaCourse, aa as GpaCourseResult, ab as GpaResult, ac as IbanValidationResult, ad as IpConversion, ae as IsbnFormat, af as IsbnResult, ag as IsinValidationResult, ah as LoanBalanceInput, ai as LoanBalanceResult, aj as LoanPrepaymentPenaltyResult, ak as LoanRefinanceResult, al as LoanResult, am as MarginMarkupField, an as MarginMarkupInput, ao as MarginMarkupResult, ap as MortgagePointsResult, aq as MovingAveragePoint, ar as MovingAverageResult, as as NotationStyle, at as NumberBase, au as PaybackPeriodInput, av as PaybackPeriodResult, aw as PercentChangeDirection, ax as PercentageChangeResult, ay as Permission, az as PrepaymentPenaltyType, aA as PxConvertResult, aB as RoiInput, aC as RoiResult, aD as RuleOf72Direction, aE as RuleOf72Result, aF as SavingsGoalInput, aG as SavingsGoalMode, aH as SavingsGoalResult, aI as SemverVersion, aJ as SimpleInterestResult, aK as SubnetInfo, aL as SuccessiveDiscountResult, aM as SuccessiveDiscountStep, aN as TaxDirection, aO as TaxEquivalentYieldDirection, aP as TaxEquivalentYieldResult, aQ as TaxResult, aR as TimeValueDirection, aS as TimeValueResult, aT as TipSplitResult, aU as USD_DENOMINATIONS, aV as UnitPriceItem, aW as UnitPriceResult, aX as UtilizationTier, aY as VideoBitrateInput, aZ as VideoBitrateMode, a_ as VideoBitrateResult, a$ as ViewportConvertResult, b0 as VinValidationResult, b1 as applySuccessiveDiscounts, b2 as autoFormat, b3 as bumpVersion, b4 as calcAspectRatio, b5 as calcSubnet, b6 as calculateBlendedLoanRate, b7 as calculateBreakEven, b8 as calculateCashBreakdown, b9 as calculateCashRounding, ba as calculateCdMaturity, bb as calculateChange, bc as calculateCompoundInterest, bd as calculateCreditUtilization, be as calculateDebtToIncomeRatio, bf as calculateDepreciationSchedule, bg as calculateDiscount, bh as calculateEmi, bi as calculateExtraPaymentPayoff, bj as calculateFreelancerRate, bk as calculateGpa, bl as calculateLoan, bm as calculateLoanPrepaymentPenalty, bn as calculateLoanRefinance, bo as calculateMarginMarkup, bp as calculateMortgagePoints, bq as calculateMovingAverages, br as calculatePaybackPeriod, bs as calculatePercentageChange, bt as calculateRoi, bu as calculateRuleOf72, bv as calculateSavingsGoal, bw as calculateSimpleInterest, bx as calculateTax, by as calculateTaxEquivalentYield, bz as calculateTimeValue, bA as calculateTipSplit, bB as calculateVideoBitrate, bC as compareSemver, bD as compareUnitPrices, bE as convert, bF as convertAprApy, bG as convertBytes, bH as convertIp, bI as coverBox, bJ as decimalToIp, bK as decimalToIpCidr, bL as describePermissions, bM as fitIntoBox, bN as formatNumber, bO as formatValue, bP as formatVwValue, bQ as formatWithSeparator, bR as gcd, bS as ipFromBinary, bT as ipFromDecimal, bU as ipFromHex, bV as ipToBinary, bW as ipToDecimal, bX as ipToDecimalCidr, bY as ipToHex, bZ as ipToOctal, b_ as isValid, b$ as isValidCidr, c0 as isValidIp, c1 as isValidIpv4, c2 as marginToMarkup, c3 as markupToMargin, c4 as octalToPermissions, c5 as parseFileSize, c6 as parseInput, c7 as parseNumberString, c8 as parseSemver, c9 as permissionsToChmod, ca as permissionsToOctal, cb as permissionsToSymbolic, cc as planDebtPayoff, cd as ptToPx, ce as pxToAll, cf as pxToViewport, cg as remToPx, ch as satisfiesRange, ci as scaleByHeight, cj as scaleByWidth, ck as sortVersions, cl as splitSubnet, cm as symbolicToPermissions, cn as validateBarcode, co as validateCardNumber, cp as validateIban, cq as validateIsbn, cr as validateIsin, cs as validateVin, ct as viewportToPx } from '../units-BAwyBk4x.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, calculateCreditUtilization, calculateDebtToIncomeRatio, calculateDepreciationSchedule, calculateDiscount, calculateEmi, calculateExtraPaymentPayoff, calculateFreelancerRate, calculateGpa, calculateLoan, calculateLoanRefinance, calculateMarginMarkup, calculateMortgagePoints, calculateMovingAverages, calculatePaybackPeriod, calculatePercentageChange, calculateRoi, calculateRuleOf72, calculateSavingsGoal, calculateSimpleInterest, calculateTax, calculateTaxEquivalentYield, calculateTimeValue, calculateTipSplit, 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-XOUKIGJ4.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, calculateBlendedLoanRate, calculateBreakEven, calculateCashBreakdown, calculateCashRounding, calculateCdMaturity, calculateChange, calculateCompoundInterest, calculateCreditUtilization, calculateDebtToIncomeRatio, calculateDepreciationSchedule, calculateDiscount, calculateEmi, calculateExtraPaymentPayoff, calculateFreelancerRate, calculateGpa, calculateLoan, calculateLoanPrepaymentPenalty, calculateLoanRefinance, calculateMarginMarkup, calculateMortgagePoints, calculateMovingAverages, calculatePaybackPeriod, calculatePercentageChange, calculateRoi, calculateRuleOf72, calculateSavingsGoal, calculateSimpleInterest, calculateTax, calculateTaxEquivalentYield, calculateTimeValue, calculateTipSplit, 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-AKVWWLNJ.js';
2
2
  import '../chunk-MLKGABMK.js';