@ducatjs/money 0.1.0 → 0.2.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.
Files changed (201) hide show
  1. package/README.md +479 -62
  2. package/data/cash-rounding.json +123 -2
  3. package/data/cldr-cash.json +101 -0
  4. package/data/historic.json +78 -0
  5. package/data/iso4217-list-three.xml +1185 -0
  6. package/dist/adyen-fx.d.ts.map +1 -1
  7. package/dist/adyen-fx.js +22 -4
  8. package/dist/adyen-fx.js.map +1 -1
  9. package/dist/boc.d.ts +31 -0
  10. package/dist/boc.d.ts.map +1 -0
  11. package/dist/boc.js +114 -0
  12. package/dist/boc.js.map +1 -0
  13. package/dist/boe.d.ts +33 -0
  14. package/dist/boe.d.ts.map +1 -0
  15. package/dist/boe.js +114 -0
  16. package/dist/boe.js.map +1 -0
  17. package/dist/cash.d.ts +30 -1
  18. package/dist/cash.d.ts.map +1 -1
  19. package/dist/cash.js +50 -2
  20. package/dist/cash.js.map +1 -1
  21. package/dist/convert.d.ts +10 -9
  22. package/dist/convert.d.ts.map +1 -1
  23. package/dist/convert.js +13 -3
  24. package/dist/convert.js.map +1 -1
  25. package/dist/drizzle/mysql.d.ts +105 -0
  26. package/dist/drizzle/mysql.d.ts.map +1 -0
  27. package/dist/drizzle/mysql.js +60 -0
  28. package/dist/drizzle/mysql.js.map +1 -0
  29. package/dist/drizzle/pg.d.ts +103 -0
  30. package/dist/drizzle/pg.d.ts.map +1 -0
  31. package/dist/drizzle/pg.js +60 -0
  32. package/dist/drizzle/pg.js.map +1 -0
  33. package/dist/drizzle/sqlite.d.ts +102 -0
  34. package/dist/drizzle/sqlite.d.ts.map +1 -0
  35. package/dist/drizzle/sqlite.js +59 -0
  36. package/dist/drizzle/sqlite.js.map +1 -0
  37. package/dist/ecb.d.ts +37 -2
  38. package/dist/ecb.d.ts.map +1 -1
  39. package/dist/ecb.js +148 -10
  40. package/dist/ecb.js.map +1 -1
  41. package/dist/fed.d.ts +35 -0
  42. package/dist/fed.d.ts.map +1 -0
  43. package/dist/fed.js +134 -0
  44. package/dist/fed.js.map +1 -0
  45. package/dist/fetch.d.ts +45 -0
  46. package/dist/fetch.d.ts.map +1 -1
  47. package/dist/fetch.js +167 -24
  48. package/dist/fetch.js.map +1 -1
  49. package/dist/fn.d.ts +8 -1
  50. package/dist/fn.d.ts.map +1 -1
  51. package/dist/fn.js +8 -1
  52. package/dist/fn.js.map +1 -1
  53. package/dist/generated/cash.d.ts +2 -0
  54. package/dist/generated/cash.d.ts.map +1 -1
  55. package/dist/generated/cash.js +101 -0
  56. package/dist/generated/cash.js.map +1 -1
  57. package/dist/generated/historic.d.ts +337 -0
  58. package/dist/generated/historic.d.ts.map +1 -0
  59. package/dist/generated/historic.js +66 -0
  60. package/dist/generated/historic.js.map +1 -0
  61. package/dist/historic.d.ts +40 -0
  62. package/dist/historic.d.ts.map +1 -0
  63. package/dist/historic.js +43 -0
  64. package/dist/historic.js.map +1 -0
  65. package/dist/history.d.ts +96 -0
  66. package/dist/history.d.ts.map +1 -0
  67. package/dist/history.js +213 -0
  68. package/dist/history.js.map +1 -0
  69. package/dist/hmrc.d.ts +28 -0
  70. package/dist/hmrc.d.ts.map +1 -0
  71. package/dist/hmrc.js +108 -0
  72. package/dist/hmrc.js.map +1 -0
  73. package/dist/index.d.ts +1 -1
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +1 -1
  76. package/dist/index.js.map +1 -1
  77. package/dist/kysely.d.ts +120 -0
  78. package/dist/kysely.d.ts.map +1 -0
  79. package/dist/kysely.js +309 -0
  80. package/dist/kysely.js.map +1 -0
  81. package/dist/money.d.ts +93 -9
  82. package/dist/money.d.ts.map +1 -1
  83. package/dist/money.js +135 -9
  84. package/dist/money.js.map +1 -1
  85. package/dist/parse.d.ts +45 -1
  86. package/dist/parse.d.ts.map +1 -1
  87. package/dist/parse.js +290 -3
  88. package/dist/parse.js.map +1 -1
  89. package/dist/pg.d.ts +100 -0
  90. package/dist/pg.d.ts.map +1 -0
  91. package/dist/pg.js +343 -0
  92. package/dist/pg.js.map +1 -0
  93. package/dist/plugins/all.d.ts +8 -1
  94. package/dist/plugins/all.d.ts.map +1 -1
  95. package/dist/plugins/all.js +8 -1
  96. package/dist/plugins/all.js.map +1 -1
  97. package/dist/plugins/convert.d.ts +3 -4
  98. package/dist/plugins/convert.d.ts.map +1 -1
  99. package/dist/plugins/convert.js.map +1 -1
  100. package/dist/plugins/tax.d.ts +4 -5
  101. package/dist/plugins/tax.d.ts.map +1 -1
  102. package/dist/plugins/tax.js.map +1 -1
  103. package/dist/policy.d.ts +34 -0
  104. package/dist/policy.d.ts.map +1 -0
  105. package/dist/policy.js +90 -0
  106. package/dist/policy.js.map +1 -0
  107. package/dist/prisma.d.ts +25 -14
  108. package/dist/prisma.d.ts.map +1 -1
  109. package/dist/prisma.js +29 -19
  110. package/dist/prisma.js.map +1 -1
  111. package/dist/provider.d.ts +21 -7
  112. package/dist/provider.d.ts.map +1 -1
  113. package/dist/provider.js +51 -11
  114. package/dist/provider.js.map +1 -1
  115. package/dist/rate-text.d.ts +38 -0
  116. package/dist/rate-text.d.ts.map +1 -0
  117. package/dist/rate-text.js +143 -0
  118. package/dist/rate-text.js.map +1 -0
  119. package/dist/rate.d.ts +61 -5
  120. package/dist/rate.d.ts.map +1 -1
  121. package/dist/rate.js +133 -33
  122. package/dist/rate.js.map +1 -1
  123. package/dist/rounding.js +1 -1
  124. package/dist/rounding.js.map +1 -1
  125. package/dist/schema.d.ts +43 -0
  126. package/dist/schema.d.ts.map +1 -0
  127. package/dist/schema.js +77 -0
  128. package/dist/schema.js.map +1 -0
  129. package/dist/sql.d.ts +54 -0
  130. package/dist/sql.d.ts.map +1 -0
  131. package/dist/sql.js +131 -0
  132. package/dist/sql.js.map +1 -0
  133. package/dist/tax.d.ts +13 -9
  134. package/dist/tax.d.ts.map +1 -1
  135. package/dist/tax.js +20 -4
  136. package/dist/tax.js.map +1 -1
  137. package/dist/testing/arbitraries.d.ts +43 -0
  138. package/dist/testing/arbitraries.d.ts.map +1 -0
  139. package/dist/testing/arbitraries.js +98 -0
  140. package/dist/testing/arbitraries.js.map +1 -0
  141. package/dist/testing/index.d.ts +67 -0
  142. package/dist/testing/index.d.ts.map +1 -0
  143. package/dist/testing/index.js +159 -0
  144. package/dist/testing/index.js.map +1 -0
  145. package/dist/testing/jest.d.ts +2 -0
  146. package/dist/testing/jest.d.ts.map +1 -0
  147. package/dist/testing/jest.js +15 -0
  148. package/dist/testing/jest.js.map +1 -0
  149. package/dist/testing/vitest.d.ts +7 -0
  150. package/dist/testing/vitest.d.ts.map +1 -0
  151. package/dist/testing/vitest.js +12 -0
  152. package/dist/testing/vitest.js.map +1 -0
  153. package/dist/valibot.d.ts +33 -0
  154. package/dist/valibot.d.ts.map +1 -0
  155. package/dist/valibot.js +61 -0
  156. package/dist/valibot.js.map +1 -0
  157. package/dist/zod.d.ts +36 -0
  158. package/dist/zod.d.ts.map +1 -0
  159. package/dist/zod.js +58 -0
  160. package/dist/zod.js.map +1 -0
  161. package/package.json +116 -5
  162. package/src/adyen-fx.ts +25 -4
  163. package/src/boc.ts +136 -0
  164. package/src/boe.ts +131 -0
  165. package/src/cash.ts +70 -2
  166. package/src/convert.ts +33 -15
  167. package/src/drizzle/mysql.ts +78 -0
  168. package/src/drizzle/pg.ts +78 -0
  169. package/src/drizzle/sqlite.ts +70 -0
  170. package/src/ecb.ts +179 -13
  171. package/src/fed.ts +146 -0
  172. package/src/fetch.ts +207 -28
  173. package/src/fn.ts +14 -0
  174. package/src/generated/cash.ts +103 -0
  175. package/src/generated/historic.ts +67 -0
  176. package/src/historic.ts +77 -0
  177. package/src/history.ts +333 -0
  178. package/src/hmrc.ts +125 -0
  179. package/src/index.ts +4 -0
  180. package/src/kysely.ts +588 -0
  181. package/src/money.ts +210 -12
  182. package/src/parse.ts +371 -4
  183. package/src/pg.ts +410 -0
  184. package/src/plugins/all.ts +10 -0
  185. package/src/plugins/convert.ts +4 -5
  186. package/src/plugins/tax.ts +9 -10
  187. package/src/policy.ts +124 -0
  188. package/src/prisma.ts +91 -10
  189. package/src/provider.ts +81 -16
  190. package/src/rate-text.ts +151 -0
  191. package/src/rate.ts +205 -36
  192. package/src/rounding.ts +1 -1
  193. package/src/schema.ts +119 -0
  194. package/src/sql.ts +178 -0
  195. package/src/tax.ts +40 -9
  196. package/src/testing/arbitraries.ts +134 -0
  197. package/src/testing/index.ts +247 -0
  198. package/src/testing/jest.ts +18 -0
  199. package/src/testing/vitest.ts +18 -0
  200. package/src/valibot.ts +87 -0
  201. package/src/zod.ts +78 -0
package/dist/money.js CHANGED
@@ -4,6 +4,19 @@ import { DEFAULT_ROUNDING, divideAndRound, divideAndRoundBigint, RoundingError,
4
4
  // A module-local constant, not an import: the hot loops (sum, add) read it on every iteration, and
5
5
  // V8 reads an imported binding through an extra indirection.
6
6
  const MAX_SAFE_MINOR = Number.MAX_SAFE_INTEGER;
7
+ /**
8
+ * @internal The key a policy's rounding function is stored under. Module-private, so only
9
+ * `roundingPolicy` from this copy of the package makes values the core accepts as policies: a
10
+ * lookalike function, or a policy from a second installed copy (whose results would be that copy's
11
+ * Money), is rejected with a TypeError, as `isMoney` rejects the other copy's Money.
12
+ */
13
+ export const ROUND_PRODUCT = Symbol();
14
+ /**
15
+ * @internal money × factor rounded by a policy. Anything not built by `roundingPolicy` lacks the
16
+ * private key, so calling it throws a TypeError; that is the whole check, kept this small because
17
+ * it is in every bundle.
18
+ */
19
+ export const roundWithPolicy = (money, factor, policy) => policy[ROUND_PRODUCT](money, factor);
7
20
  /** Thrown when two amounts in different currencies are combined. */
8
21
  export class CurrencyMismatchError extends TypeError {
9
22
  name = 'CurrencyMismatchError';
@@ -68,7 +81,7 @@ class Money {
68
81
  multiply(factor, rounding) {
69
82
  return multiply(this, factor, rounding);
70
83
  }
71
- /** this / divisor, rounded to this scale */
84
+ /** this / divisor, rounded to this scale (or to a policy's scale and increment) */
72
85
  divide(divisor, rounding) {
73
86
  return divide(this, divisor, rounding);
74
87
  }
@@ -78,8 +91,8 @@ class Money {
78
91
  abs() {
79
92
  return abs(this);
80
93
  }
81
- /** Rounds to the currency's exponent (or `scale`). */
82
94
  round(rounding, scale) {
95
+ // the free function handles both; the cast only picks its implementation signature
83
96
  return round(this, rounding, scale);
84
97
  }
85
98
  /** Changes the scale; decreasing it rounds (default 'halfExpand'). */
@@ -128,7 +141,26 @@ class Money {
128
141
  clamp(lo, hi) {
129
142
  return clamp(this, lo, hi);
130
143
  }
144
+ /** Same currency, value and scale: 1.0 EUR is not identical to 1.00 EUR. */
145
+ identical(other) {
146
+ return identical(this, other);
147
+ }
148
+ /**
149
+ * Applies `operation` to this amount and returns its result, so a rounding policy or a
150
+ * conversion reads as one step in a chain: `price.multiply('1.075').with(toCash)`.
151
+ */
152
+ with(operation) {
153
+ return operation(this);
154
+ }
131
155
  // output
156
+ /** The whole major units, truncated toward zero: 12 for 12.34 EUR, -12 for -12.34 EUR. */
157
+ majorPart() {
158
+ return majorPart(this);
159
+ }
160
+ /** The rest in 10^-scale units, with the amount's sign: 34 for 12.34 EUR, -34 for -12.34. */
161
+ minorPart() {
162
+ return minorPart(this);
163
+ }
132
164
  /** Exact decimal string in major units: "12.34" */
133
165
  toDecimal() {
134
166
  return formatScaled(this.minor, this.scale);
@@ -146,6 +178,28 @@ class Money {
146
178
  export function isMoney(value) {
147
179
  return value instanceof Money;
148
180
  }
181
+ /**
182
+ * Whether a value is a Money in `currency`. It narrows a currency known only at run time
183
+ * (`Money<string>`, or `unknown`) to the literal type:
184
+ *
185
+ * if (isMoneyIn(price, 'EUR')) { price.add(money('1', 'EUR')) }
186
+ */
187
+ export function isMoneyIn(value, currency) {
188
+ return value instanceof Money && value.currency === currency;
189
+ }
190
+ /**
191
+ * Narrows `money` to `Money<C>`, or throws a `CurrencyMismatchError` if it is in another
192
+ * currency. Use it where a different currency is a bug rather than a branch.
193
+ */
194
+ export function assertCurrency(money, currency) {
195
+ // A non-Money would otherwise pass when it happens to have a matching `currency` field.
196
+ if (!(money instanceof Money)) {
197
+ throw new TypeError(`Expected Money, got ${typeof money}`);
198
+ }
199
+ if (money.currency !== currency) {
200
+ throw new CurrencyMismatchError(currency, money.currency);
201
+ }
202
+ }
149
203
  /**
150
204
  * Which module installed each added method, so a second copy of the same module can replace its
151
205
  * own.
@@ -396,7 +450,11 @@ export function abs(money) {
396
450
  */
397
451
  export function multiply(money, factor, rounding = DEFAULT_ROUNDING) {
398
452
  const minor = money.minor;
399
- if (typeof factor === 'number' && Number.isSafeInteger(factor) && typeof minor === 'number') {
453
+ // An integer product is exact at this scale, but a policy may ask for another scale or increment.
454
+ if (typeof factor === 'number' &&
455
+ Number.isSafeInteger(factor) &&
456
+ typeof minor === 'number' &&
457
+ typeof rounding === 'string') {
400
458
  const product = minor * factor;
401
459
  if (product <= MAX_SAFE_MINOR && product >= -MAX_SAFE_MINOR) {
402
460
  return new Money(money.currency, product + 0, money.scale);
@@ -404,8 +462,11 @@ export function multiply(money, factor, rounding = DEFAULT_ROUNDING) {
404
462
  }
405
463
  return multiplyByRatio(money, ratio(factor), rounding);
406
464
  }
407
- /** @internal m * r, rounded */
465
+ /** @internal m * r, rounded with a mode (at `scale`) or with a policy (at the policy's scale) */
408
466
  export function multiplyByRatio(money, factor, rounding, scale = money.scale) {
467
+ if (typeof rounding === 'function') {
468
+ return roundWithPolicy(money, factor, rounding);
469
+ }
409
470
  const minor = money.minor;
410
471
  if (typeof minor === 'number' &&
411
472
  scale === money.scale &&
@@ -427,19 +488,49 @@ export function multiplyByRatio(money, factor, rounding, scale = money.scale) {
427
488
  }
428
489
  return make(money.currency, divideAndRoundBigint(numerator, denominator, rounding), scale);
429
490
  }
430
- /** m / divisor, rounded to m's scale (default 'halfExpand'). */
491
+ /** m / divisor, rounded to m's scale (default 'halfExpand'), or with a rounding policy. */
431
492
  export function divide(money, divisor, rounding = DEFAULT_ROUNDING) {
432
493
  const divisorRatio = ratio(divisor);
433
494
  if (divisorRatio.num === 0n) {
434
495
  throw new RangeError('Division by zero');
435
496
  }
497
+ // Fast path: m / (n/d) = m·d / n, rounded once by the same kernel the ratio path uses. Building
498
+ // the inverse ratio d/n would cost bigint arithmetic and a gcd on every call; the divisor's own
499
+ // ratio is cached for small integers and strings. Why it is exact:
500
+ // - makeRatio guarantees d > 0 and n/d in lowest terms, so m·d / n is the same fraction the
501
+ // inverse ratio d/n would give, and only n's sign needs handling;
502
+ // - `x === x` is false only for NaN, which is how a Ratio marks a part that is not a safe
503
+ // integer, so both parts are safe integers here;
504
+ // - m and d are safe integers, so a float product beyond 2^53 - 1 cannot round back down into
505
+ // the safe range: the bound check below rejects every inexact product;
506
+ // - divideAndRound corrects its float quotient exactly (and takes the bigint kernel itself when
507
+ // dividend + divisor exceeds the safe range).
508
+ // A rounding policy (a function, not a mode string) must not take this path: it rounds to its own
509
+ // scale and increment.
510
+ const minor = money.minor;
511
+ const numerator = divisorRatio.n;
512
+ const denominator = divisorRatio.d;
513
+ if (typeof minor === 'number' &&
514
+ typeof rounding === 'string' &&
515
+ numerator === numerator &&
516
+ denominator === denominator) {
517
+ let dividend = minor * denominator;
518
+ if (dividend <= MAX_SAFE_MINOR && dividend >= -MAX_SAFE_MINOR) {
519
+ // divideAndRound needs a positive divisor: (−p)/(−n) is the same quotient
520
+ let positiveDivisor = numerator;
521
+ if (numerator < 0) {
522
+ dividend = 0 - dividend;
523
+ positiveDivisor = 0 - numerator;
524
+ }
525
+ return new Money(money.currency, divideAndRound(dividend, positiveDivisor, rounding), money.scale);
526
+ }
527
+ }
436
528
  return multiplyByRatio(money, ratio(divisorRatio.den, divisorRatio.num), rounding);
437
529
  }
438
- /**
439
- * Rounds to the currency's exponent (or `scale`): `round(money('1.005', 'EUR', {scale: 3}),
440
- * 'halfEven')`.
441
- */
442
530
  export function round(money, rounding, scale) {
531
+ if (typeof rounding === 'function') {
532
+ return roundWithPolicy(money, ratio(1), rounding);
533
+ }
443
534
  return toScale(money, scale ?? currencyExponent(money.currency), rounding);
444
535
  }
445
536
  /**
@@ -491,6 +582,14 @@ export function equals(money, other) {
491
582
  }
492
583
  return compare(money, other) === 0;
493
584
  }
585
+ /**
586
+ * Same currency, same value *and* same scale, with number and bigint minor units counted as equal.
587
+ * `equals` treats 1.0 EUR (scale 1) and 1.00 EUR as equal; `identical` does not. For round-trip
588
+ * tests, where the scale must survive too.
589
+ */
590
+ export function identical(money, other) {
591
+ return (money.currency === other.currency && money.scale === other.scale && money.minor == other.minor);
592
+ }
494
593
  /** money < other (same currency; any scale). */
495
594
  export const lessThan = (money, other) => compare(money, other) < 0;
496
595
  /** money <= other */
@@ -551,6 +650,33 @@ export function clamp(money, lo, hi) {
551
650
  export function toDecimal(money) {
552
651
  return formatScaled(money.minor, money.scale);
553
652
  }
653
+ /**
654
+ * The whole major units, truncated toward zero: 12 for 12.34 EUR and -12 for -12.34 EUR. A number
655
+ * while it is a safe integer, a bigint beyond, like `minor`.
656
+ */
657
+ export function majorPart(money) {
658
+ const minor = money.minor;
659
+ if (typeof minor === 'number' && money.scale <= 15) {
660
+ // Taking the remainder out first leaves an exact multiple, so the division is exact. `+ 0`
661
+ // turns -0 into 0.
662
+ const unit = POW10[money.scale];
663
+ return (minor - (minor % unit)) / unit + 0;
664
+ }
665
+ // bigint division truncates toward zero, like the fast path
666
+ return normalizeMinor(toBigInt(minor) / pow10n(money.scale));
667
+ }
668
+ /**
669
+ * What is left after `majorPart`, in 10^-scale units and with the amount's sign: 34 for 12.34
670
+ * EUR, -34 for -12.34 EUR, 5 for 1.005 EUR at scale 3.
671
+ */
672
+ export function minorPart(money) {
673
+ const minor = money.minor;
674
+ if (typeof minor === 'number' && money.scale <= 15) {
675
+ // % on safe integers is exact and keeps the dividend's sign; `+ 0` turns -0 into 0.
676
+ return (minor % POW10[money.scale]) + 0;
677
+ }
678
+ return normalizeMinor(toBigInt(minor) % pow10n(money.scale));
679
+ }
554
680
  /** Minor units as a bigint (always safe; use for BIGINT columns). */
555
681
  export function toMinor(money) {
556
682
  return toBigInt(money.minor);
package/dist/money.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"money.js","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"money.js","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"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"}
package/dist/parse.d.ts CHANGED
@@ -6,6 +6,50 @@ import { type CurrencyInput, type Money, type MoneyOptions } from './money.js';
6
6
  * the text). A minus sign (ASCII or U+2212) or accounting parentheses anywhere in the affixes make
7
7
  * it negative. Inside the number only digits, the locale's group separator (before the decimal
8
8
  * separator) and one decimal separator are allowed.
9
+ *
10
+ * Group separators must be where the locale puts them (`1.234,50` in de-DE, `1,23,456.78` in
11
+ * en-IN), because a misplaced one is usually a decimal separator from another locale: `78.00` in
12
+ * de-DE throws instead of becoming 7800.00. Pass `{ lenient: true }` to accept them anywhere.
9
13
  */
10
- export declare function parse<C extends CurrencyInput>(input: string, currency: C, locale?: string, options?: MoneyOptions): Money<C>;
14
+ export declare function parse<C extends CurrencyInput>(input: string, currency: C, locale?: string, options?: ParseOptions): Money<C>;
15
+ /** Options for `parse`. */
16
+ export interface ParseOptions extends MoneyOptions {
17
+ /** Accept group separators in any position, as before 0.2 (`1.5` in de-DE is then 15.00). */
18
+ readonly lenient?: boolean;
19
+ }
20
+ /** Options for `parseMoney`. */
21
+ export interface ParseMoneyOptions<C extends string = string> extends MoneyOptions {
22
+ /**
23
+ * The expected currency. It settles a symbol several currencies share (`$`, `kr`, `£`, `¥`), and
24
+ * a text naming another currency is an error. With `lenient`, a bare number is read in it.
25
+ */
26
+ readonly hint?: C;
27
+ /**
28
+ * Your own meanings for symbols, which win over the locale's: `{ $: 'CAD' }` for a shop that only
29
+ * prices in Canadian dollars.
30
+ */
31
+ readonly symbols?: Readonly<Record<string, C>>;
32
+ /** The currencies to detect (default: every ISO 4217 currency). Others are not recognised. */
33
+ readonly currencies?: readonly C[];
34
+ /**
35
+ * Accept group separators in any positions (as `parse` does with `lenient`), and a bare number when a `hint`
36
+ * is given. It never makes the currency a guess.
37
+ */
38
+ readonly lenient?: boolean;
39
+ }
40
+ /**
41
+ * Parses a formatted amount and detects its currency from the text: `parseMoney('CHF 1’234.50',
42
+ * 'de-CH')`, `parseMoney('1.234,50 €', 'de-DE')`. Like the rest of ducat it never guesses:
43
+ *
44
+ * - it reads ISO codes (uppercase, among `currencies`) and symbols that mean one currency in the
45
+ * locale (or in English: US$, CA$, A$);
46
+ * - a symbol several currencies share (`$`, `kr`, `£`, `¥`) needs a `hint` or a `symbols` entry;
47
+ * - a currency other than the `hint`, two different currencies, or text that isn't a currency
48
+ * throws;
49
+ * - so does a locale this runtime has no Intl data for, and group separators in the wrong places
50
+ * (`lenient: true` accepts those, and a bare number when a `hint` is given).
51
+ *
52
+ * The number is read as `parse` reads it, with the detected currency's separators.
53
+ */
54
+ export declare function parseMoney<C extends string = string>(input: string, locale: string, options?: ParseMoneyOptions<C>): Money<C>;
11
55
  //# sourceMappingURL=parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,aAAa,EAAE,KAAK,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AA8EtF;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,aAAa,EAC3C,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,EACX,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY,GACrB,KAAK,CAAC,CAAC,CAAC,CAoDV"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,aAAa,EAAE,KAAK,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAqFtF;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,aAAa,EAC3C,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,EACX,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY,GACrB,KAAK,CAAC,CAAC,CAAC,CAqFV;AAED,2BAA2B;AAC3B,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,6FAA6F;IAC7F,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,gCAAgC;AAChC,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,YAAY;IAChF;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,8FAA8F;IAC9F,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAyMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAClD,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC7B,KAAK,CAAC,CAAC,CAAC,CA4EV"}