@sheetxl/formulas-extended 0.7.28-beta.3 → 0.8.0-beta.1

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.
Files changed (35) hide show
  1. package/browser/cjs/index.cjs +1 -1
  2. package/{node/esm/C1Of99Li1xuXVvHC.mjs → browser/esm/B1VmvhXuEn7zaTB9.mjs} +1 -1
  3. package/browser/esm/{Lw7SD9UV2xQaHBMY.mjs → BFnDPCjxJcoIItFa.mjs} +1 -1
  4. package/{node/esm/Cmx9jVLihcV7UU9j.mjs → browser/esm/BRwwvGaJ6HvkxjFC.mjs} +1 -1
  5. package/browser/esm/{CzzpVN7fGDVLTBAQ.mjs → Bma3CN4_Nec6_4n7.mjs} +1 -1
  6. package/{node/esm/C8ez6oBw4sdDzSct.mjs → browser/esm/BuGemmv84T8m0wqw.mjs} +1 -1
  7. package/{node/esm/DN1_rspUH-tOwmED.mjs → browser/esm/COqdI1LYTHd9oLA6.mjs} +1 -1
  8. package/browser/esm/{v_larpTXJns5MbG8.mjs → CnVJ8GAsshRjRGA-.mjs} +1 -1
  9. package/browser/esm/{CLQ1_t-YsFFTRbw1.mjs → CwoMEzOtRihuYUTr.mjs} +1 -1
  10. package/browser/esm/{CEzXDdvqDDZbH1WV.mjs → DY3kG36QGyDbrANO.mjs} +1 -1
  11. package/browser/esm/{BXjhl9UdRwdpTLAB.mjs → DodhOXkSzelSxHmB.mjs} +1 -1
  12. package/browser/esm/{D-wUpQDKX_k0SiSj.mjs → DpoZ7h1ScIJvbOY9.mjs} +1 -1
  13. package/browser/esm/{CYm12WYrfdzPk8cm.mjs → Dy6UD7hQRBsT0WNp.mjs} +1 -1
  14. package/browser/esm/index.mjs +524 -391
  15. package/browser/esm/{DEQPjlaWWG7gXPtm.mjs → srpVt74r2zbvm1N0.mjs} +1 -1
  16. package/{node/esm/CVd2CtlxuMv1IuIq.mjs → browser/esm/vu0NRDeeTbEHPMYS.mjs} +1 -1
  17. package/{browser/esm/C1Of99Li1xuXVvHC.mjs → node/esm/B1VmvhXuEn7zaTB9.mjs} +1 -1
  18. package/node/esm/{BfPVZqcuHtLRxqLI.mjs → BQyZVLTMNFLbjVap.mjs} +1 -1
  19. package/{browser/esm/Cmx9jVLihcV7UU9j.mjs → node/esm/BRwwvGaJ6HvkxjFC.mjs} +1 -1
  20. package/node/esm/{CzzpVN7fGDVLTBAQ.mjs → Bma3CN4_Nec6_4n7.mjs} +1 -1
  21. package/{browser/esm/C8ez6oBw4sdDzSct.mjs → node/esm/BuGemmv84T8m0wqw.mjs} +1 -1
  22. package/{browser/esm/DN1_rspUH-tOwmED.mjs → node/esm/COqdI1LYTHd9oLA6.mjs} +1 -1
  23. package/node/esm/{v_larpTXJns5MbG8.mjs → CnVJ8GAsshRjRGA-.mjs} +1 -1
  24. package/node/esm/{CLQ1_t-YsFFTRbw1.mjs → CwoMEzOtRihuYUTr.mjs} +1 -1
  25. package/node/esm/{BXjhl9UdRwdpTLAB.mjs → DodhOXkSzelSxHmB.mjs} +1 -1
  26. package/node/esm/{D-wUpQDKX_k0SiSj.mjs → DpoZ7h1ScIJvbOY9.mjs} +1 -1
  27. package/node/esm/{CYm12WYrfdzPk8cm.mjs → Dy6UD7hQRBsT0WNp.mjs} +1 -1
  28. package/node/esm/{CVifmXw-tD8LimNW.mjs → LAkTk93odAfpvx50.mjs} +1 -1
  29. package/node/esm/index.mjs +891 -755
  30. package/node/esm/{DEQPjlaWWG7gXPtm.mjs → srpVt74r2zbvm1N0.mjs} +1 -1
  31. package/{browser/esm/CVd2CtlxuMv1IuIq.mjs → node/esm/vu0NRDeeTbEHPMYS.mjs} +1 -1
  32. package/package.json +3 -3
  33. package/types/src/_utils/Consts.d.ts +2 -2
  34. package/types/src/_utils/FinanceUtils.d.ts +17 -0
  35. package/types/src/financial/Financial.d.ts +12 -11
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @sheetxl/formulas-extended - Formulas Enterprise - TypeScript formulas compatible with Excel built-ins. - v0.7.28-beta.3
2
+ * @license @sheetxl/formulas-extended - Formulas Enterprise - TypeScript formulas compatible with Excel built-ins. - v0.8.0-beta.1
3
3
  *
4
4
  * (C) 2026-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @sheetxl/formulas-extended - Formulas Enterprise - TypeScript formulas compatible with Excel built-ins. - v0.7.28-beta.3
2
+ * @license @sheetxl/formulas-extended - Formulas Enterprise - TypeScript formulas compatible with Excel built-ins. - v0.8.0-beta.1
3
3
  *
4
4
  * (C) 2026-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sheetxl/formulas-extended",
3
3
  "description": "Formulas Enterprise - TypeScript formulas compatible with Excel built-ins.",
4
- "version": "0.7.28-beta.3",
4
+ "version": "0.8.0-beta.1",
5
5
  "license": "SEE LICENSE IN <LICENSE>",
6
6
  "type": "module",
7
7
  "exports": {
@@ -37,7 +37,7 @@
37
37
  "formulas"
38
38
  ],
39
39
  "dependencies": {
40
- "@sheetxl/primitives": "^0.7.28-beta.3",
41
- "@sheetxl/scripting": "^0.7.28-beta.3"
40
+ "@sheetxl/primitives": "^0.8.0-beta.1",
41
+ "@sheetxl/scripting": "^0.8.0-beta.1"
42
42
  }
43
43
  }
@@ -7,8 +7,8 @@ export declare const ColumnOriented: Readonly<{
7
7
  export declare const RowOriented: Readonly<{
8
8
  axis: "row";
9
9
  }>;
10
- export declare const ColumnOrientedNumbers: Readonly<{
10
+ export declare const RowOrientedNumbers: Readonly<{
11
11
  type: "number";
12
- axis: "column";
12
+ axis: "row";
13
13
  }>;
14
14
  //# sourceMappingURL=Consts.d.ts.map
@@ -1,3 +1,20 @@
1
1
  import { IRuntime } from '@sheetxl/primitives';
2
2
  export declare const defaultCurrencyFormat: (runtime: IRuntime) => string;
3
+ /**
4
+ * `base ^ exponent` as Excel evaluates it (the `^` operator, POWER, and the powers inside the
5
+ * time-value-of-money functions all agree — measured 2026-08-26, Excel 16.0 build 20326).
6
+ *
7
+ * For an INTEGER exponent of magnitude up to 4294967294 (2^32 − 2) Excel does not call a
8
+ * correctly rounded pow: it multiplies — right-to-left binary exponentiation, a negative exponent
9
+ * as the reciprocal of the positive power — and the rounding of every intermediate product is
10
+ * carried into the result. That is invisible at the 15th digit of `(1+r)^n` itself, but a caller
11
+ * that divides `(1+r)^n − 1` by a small `r` amplifies the last bits: `FV(1E-9,360,-100,-1000)`
12
+ * agrees with Excel to 8 digits on `Math.pow` and is bit-exact on this form. From 2^32 − 1 up, and
13
+ * for every non-integer exponent, Excel is `exp(y · ln x)` in double — closer to it than libm pow
14
+ * on the sensitive rows (`FV(1E-15,12.5,…)` is 2 digits on `Math.pow`, exact here), and equal to
15
+ * it everywhere else measured.
16
+ *
17
+ * A zero base follows the `^` operator: `0^0` is #NUM! and `0^negative` is #DIV/0!.
18
+ */
19
+ export declare const excelPow: (base: number, exponent: number) => number;
3
20
  //# sourceMappingURL=FinanceUtils.d.ts.map
@@ -1,4 +1,4 @@
1
- import { Scalar, IRange, Flatten } from '@sheetxl/primitives';
1
+ import { Scalar, Omittable, AcceptError, IRange, Flatten } from '@sheetxl/primitives';
2
2
  /**
3
3
  * @summary Returns the number of days from the beginning of the coupon period to the settlement date.
4
4
  * @param settlement is the security's settlement date, expressed as a serial date number.
@@ -17,10 +17,9 @@ frequency: number, basis?: number): number;
17
17
  * @param startPeriod is the first period in the calculation.
18
18
  * @param endPeriod is the last period in the calculation.
19
19
  * @param type is the timing of the payment.
20
+ * @compat atp
20
21
  */
21
- export declare function CUMIPMT(rate: number, nper: number, pv: number, startPeriod: number, // date
22
- endPeriod: number, // date
23
- type: number): number;
22
+ export declare function CUMIPMT(rate: Omittable<Scalar>, nper: Omittable<Scalar>, pv: Omittable<Scalar>, startPeriod: Omittable<Scalar>, endPeriod: Omittable<Scalar>, type: Omittable<Scalar>): number;
24
23
  /**
25
24
  * @summary Returns the cumulative principal paid on a loan between two periods.
26
25
  * @param rate is the interest rate.
@@ -29,10 +28,9 @@ type: number): number;
29
28
  * @param startPeriod is the first period in the calculation.
30
29
  * @param endPeriod is the last period in the calculation.
31
30
  * @param type is the timing of the payment.
31
+ * @compat atp
32
32
  */
33
- export declare function CUMPRINC(rate: number, nper: number, pv: number, startPeriod: number, // date
34
- endPeriod: number, // date
35
- type: number): number;
33
+ export declare function CUMPRINC(rate: Omittable<Scalar>, nper: Omittable<Scalar>, pv: Omittable<Scalar>, startPeriod: Omittable<Scalar>, endPeriod: Omittable<Scalar>, type: Omittable<Scalar>): number;
36
34
  /**
37
35
  * @summary Returns the depreciation of an asset for a specified period using the fixed-declining balance method.
38
36
  * @param cost is the initial cost of the asset.
@@ -81,8 +79,9 @@ export declare function DOLLARFR(decimalDollar: number, fraction: number): numbe
81
79
  * @summary Returns the effective annual interest rate.
82
80
  * @param nominalRate is the nominal interest rate.
83
81
  * @param npery is the number of compounding periods per year.
82
+ * @compat atp
84
83
  */
85
- export declare function EFFECT(nominalRate: number, npery: number): number;
84
+ export declare function EFFECT(nominalRate: Omittable<Scalar>, npery: Omittable<Scalar>): number;
86
85
  /**
87
86
  * @summary Returns the future value of an investment based on periodic, constant payments and a constant interest rate.
88
87
  * @param rate is the interest rate.
@@ -96,8 +95,9 @@ export declare function FV(rate: number, nper: number, pmt: number, pv?: number,
96
95
  * @summary Returns the future value of an initial principal after applying a series of compound interest rates.
97
96
  * @param principal is the present value.
98
97
  * @param schedule is an array of interest rates to apply.
98
+ * @compat atp
99
99
  */
100
- export declare function FVSCHEDULE(principal: number, schedule: IRange): number;
100
+ export declare function FVSCHEDULE(principal: Omittable<Scalar>, schedule: Omittable<AcceptError<IRange>>): number;
101
101
  /**
102
102
  * @summary Returns the interest payment for a given period for an investment, based on periodic, constant payments and a constant interest rate.
103
103
  * @param rate is the interest rate.
@@ -133,8 +133,9 @@ export declare function MIRR(values: Flatten<number>, financeRate: number, reinv
133
133
  * @summary Returns the annual nominal interest rate.
134
134
  * @param effectiveRate is the effective interest rate.
135
135
  * @param npery is the number of compounding periods per year.
136
+ * @compat atp
136
137
  */
137
- export declare function NOMINAL(effectiveRate: number, npery: number): number;
138
+ export declare function NOMINAL(effectiveRate: Omittable<Scalar>, npery: Omittable<Scalar>): number;
138
139
  /**
139
140
  * @summary Returns the number of periods for an investment based on periodic, constant payments and a constant interest rate.
140
141
  * @param rate is the interest rate per period. For example, use 6%/4 for quarterly payments at 6% APR.
@@ -149,7 +150,7 @@ export declare function NPER(rate: number, pmt: number, pv: number, fv?: number,
149
150
  * @param rate is the rate of discount over the length of one period.
150
151
  * @param value are 1 to 254 payments and income, equally spaced in time and occurring at the end of each period.
151
152
  */
152
- export declare function NPV(rate: number, value: number[]): number;
153
+ export declare function NPV(rate: number, value: IRange<number>[]): number;
153
154
  /**
154
155
  * @summary Returns the number of periods required by an investment to reach a specified value.
155
156
  * @param rate is the interest rate.