@ducatjs/money 0.0.0 → 0.1.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/LICENSE +21 -0
- package/NOTICE +51 -0
- package/README.md +617 -3
- package/assets/CREDITS.md +12 -0
- package/data/adyen-fx.json +19 -0
- package/data/adyen.json +171 -0
- package/data/braintree.json +223 -0
- package/data/cash-rounding.json +399 -0
- package/data/checkout.json +230 -0
- package/data/iso4217-list-one.xml +1956 -0
- package/data/klarna.json +95 -0
- package/data/paypal.json +65 -0
- package/data/stripe-fx.json +17 -0
- package/data/stripe.json +285 -0
- package/dist/adyen-fx.d.ts +25 -0
- package/dist/adyen-fx.d.ts.map +1 -0
- package/dist/adyen-fx.js +122 -0
- package/dist/adyen-fx.js.map +1 -0
- package/dist/adyen.d.ts +25 -0
- package/dist/adyen.d.ts.map +1 -0
- package/dist/adyen.js +34 -0
- package/dist/adyen.js.map +1 -0
- package/dist/allocate.d.ts +72 -0
- package/dist/allocate.d.ts.map +1 -0
- package/dist/allocate.js +314 -0
- package/dist/allocate.js.map +1 -0
- package/dist/bag.d.ts +58 -0
- package/dist/bag.d.ts.map +1 -0
- package/dist/bag.js +122 -0
- package/dist/bag.js.map +1 -0
- package/dist/braintree.d.ts +34 -0
- package/dist/braintree.d.ts.map +1 -0
- package/dist/braintree.js +45 -0
- package/dist/braintree.js.map +1 -0
- package/dist/cash.d.ts +35 -0
- package/dist/cash.d.ts.map +1 -0
- package/dist/cash.js +86 -0
- package/dist/cash.js.map +1 -0
- package/dist/checkout.d.ts +42 -0
- package/dist/checkout.d.ts.map +1 -0
- package/dist/checkout.js +52 -0
- package/dist/checkout.js.map +1 -0
- package/dist/convert.d.ts +51 -0
- package/dist/convert.d.ts.map +1 -0
- package/dist/convert.js +55 -0
- package/dist/convert.js.map +1 -0
- package/dist/currency.d.ts +22 -0
- package/dist/currency.d.ts.map +1 -0
- package/dist/currency.js +38 -0
- package/dist/currency.js.map +1 -0
- package/dist/decimal.d.ts +52 -0
- package/dist/decimal.d.ts.map +1 -0
- package/dist/decimal.js +251 -0
- package/dist/decimal.js.map +1 -0
- package/dist/ecb.d.ts +17 -0
- package/dist/ecb.d.ts.map +1 -0
- package/dist/ecb.js +147 -0
- package/dist/ecb.js.map +1 -0
- package/dist/exact.d.ts +62 -0
- package/dist/exact.d.ts.map +1 -0
- package/dist/exact.js +147 -0
- package/dist/exact.js.map +1 -0
- package/dist/fetch.d.ts +58 -0
- package/dist/fetch.d.ts.map +1 -0
- package/dist/fetch.js +79 -0
- package/dist/fetch.js.map +1 -0
- package/dist/fixed.d.ts +121 -0
- package/dist/fixed.d.ts.map +1 -0
- package/dist/fixed.js +420 -0
- package/dist/fixed.js.map +1 -0
- package/dist/fn.d.ts +27 -0
- package/dist/fn.d.ts.map +1 -0
- package/dist/fn.js +30 -0
- package/dist/fn.js.map +1 -0
- package/dist/format.d.ts +13 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +90 -0
- package/dist/format.js.map +1 -0
- package/dist/generated/adyen.d.ts +3 -0
- package/dist/generated/adyen.d.ts.map +1 -0
- package/dist/generated/adyen.js +144 -0
- package/dist/generated/adyen.js.map +1 -0
- package/dist/generated/braintree.d.ts +3 -0
- package/dist/generated/braintree.d.ts.map +1 -0
- package/dist/generated/braintree.js +140 -0
- package/dist/generated/braintree.js.map +1 -0
- package/dist/generated/cash.d.ts +12 -0
- package/dist/generated/cash.d.ts.map +1 -0
- package/dist/generated/cash.js +364 -0
- package/dist/generated/cash.js.map +1 -0
- package/dist/generated/checkout.d.ts +3 -0
- package/dist/generated/checkout.d.ts.map +1 -0
- package/dist/generated/checkout.js +151 -0
- package/dist/generated/checkout.js.map +1 -0
- package/dist/generated/iso4217.d.ts +174 -0
- package/dist/generated/iso4217.d.ts.map +1 -0
- package/dist/generated/iso4217.js +175 -0
- package/dist/generated/iso4217.js.map +1 -0
- package/dist/generated/kernel.d.ts +17 -0
- package/dist/generated/kernel.d.ts.map +1 -0
- package/dist/generated/kernel.js +208 -0
- package/dist/generated/kernel.js.map +1 -0
- package/dist/generated/klarna.d.ts +3 -0
- package/dist/generated/klarna.d.ts.map +1 -0
- package/dist/generated/klarna.js +21 -0
- package/dist/generated/klarna.js.map +1 -0
- package/dist/generated/paypal.d.ts +3 -0
- package/dist/generated/paypal.d.ts.map +1 -0
- package/dist/generated/paypal.js +31 -0
- package/dist/generated/paypal.js.map +1 -0
- package/dist/generated/stripe.d.ts +8 -0
- package/dist/generated/stripe.d.ts.map +1 -0
- package/dist/generated/stripe.js +150 -0
- package/dist/generated/stripe.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/klarna.d.ts +31 -0
- package/dist/klarna.d.ts.map +1 -0
- package/dist/klarna.js +38 -0
- package/dist/klarna.js.map +1 -0
- package/dist/money.d.ts +218 -0
- package/dist/money.d.ts.map +1 -0
- package/dist/money.js +577 -0
- package/dist/money.js.map +1 -0
- package/dist/parse.d.ts +11 -0
- package/dist/parse.d.ts.map +1 -0
- package/dist/parse.js +132 -0
- package/dist/parse.js.map +1 -0
- package/dist/paypal.d.ts +41 -0
- package/dist/paypal.d.ts.map +1 -0
- package/dist/paypal.js +58 -0
- package/dist/paypal.js.map +1 -0
- package/dist/plugins/adyen.d.ts +15 -0
- package/dist/plugins/adyen.d.ts.map +1 -0
- package/dist/plugins/adyen.js +10 -0
- package/dist/plugins/adyen.js.map +1 -0
- package/dist/plugins/all.d.ts +22 -0
- package/dist/plugins/all.d.ts.map +1 -0
- package/dist/plugins/all.js +23 -0
- package/dist/plugins/all.js.map +1 -0
- package/dist/plugins/allocate.d.ts +20 -0
- package/dist/plugins/allocate.d.ts.map +1 -0
- package/dist/plugins/allocate.js +26 -0
- package/dist/plugins/allocate.js.map +1 -0
- package/dist/plugins/braintree.d.ts +12 -0
- package/dist/plugins/braintree.d.ts.map +1 -0
- package/dist/plugins/braintree.js +12 -0
- package/dist/plugins/braintree.js.map +1 -0
- package/dist/plugins/cash.d.ts +19 -0
- package/dist/plugins/cash.d.ts.map +1 -0
- package/dist/plugins/cash.js +16 -0
- package/dist/plugins/cash.js.map +1 -0
- package/dist/plugins/checkout.d.ts +21 -0
- package/dist/plugins/checkout.d.ts.map +1 -0
- package/dist/plugins/checkout.js +16 -0
- package/dist/plugins/checkout.js.map +1 -0
- package/dist/plugins/convert.d.ts +20 -0
- package/dist/plugins/convert.d.ts.map +1 -0
- package/dist/plugins/convert.js +13 -0
- package/dist/plugins/convert.js.map +1 -0
- package/dist/plugins/exact.d.ts +15 -0
- package/dist/plugins/exact.d.ts.map +1 -0
- package/dist/plugins/exact.js +13 -0
- package/dist/plugins/exact.js.map +1 -0
- package/dist/plugins/fixed.d.ts +17 -0
- package/dist/plugins/fixed.d.ts.map +1 -0
- package/dist/plugins/fixed.js +13 -0
- package/dist/plugins/fixed.js.map +1 -0
- package/dist/plugins/format.d.ts +9 -0
- package/dist/plugins/format.d.ts.map +1 -0
- package/dist/plugins/format.js +16 -0
- package/dist/plugins/format.js.map +1 -0
- package/dist/plugins/klarna.d.ts +10 -0
- package/dist/plugins/klarna.d.ts.map +1 -0
- package/dist/plugins/klarna.js +10 -0
- package/dist/plugins/klarna.js.map +1 -0
- package/dist/plugins/paypal.d.ts +14 -0
- package/dist/plugins/paypal.d.ts.map +1 -0
- package/dist/plugins/paypal.js +16 -0
- package/dist/plugins/paypal.js.map +1 -0
- package/dist/plugins/prisma.d.ts +8 -0
- package/dist/plugins/prisma.d.ts.map +1 -0
- package/dist/plugins/prisma.js +13 -0
- package/dist/plugins/prisma.js.map +1 -0
- package/dist/plugins/stripe.d.ts +14 -0
- package/dist/plugins/stripe.d.ts.map +1 -0
- package/dist/plugins/stripe.js +16 -0
- package/dist/plugins/stripe.js.map +1 -0
- package/dist/plugins/tax.d.ts +21 -0
- package/dist/plugins/tax.d.ts.map +1 -0
- package/dist/plugins/tax.js +18 -0
- package/dist/plugins/tax.js.map +1 -0
- package/dist/prisma.d.ts +66 -0
- package/dist/prisma.d.ts.map +1 -0
- package/dist/prisma.js +66 -0
- package/dist/prisma.js.map +1 -0
- package/dist/processor.d.ts +28 -0
- package/dist/processor.d.ts.map +1 -0
- package/dist/processor.js +118 -0
- package/dist/processor.js.map +1 -0
- package/dist/provider.d.ts +89 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +240 -0
- package/dist/provider.js.map +1 -0
- package/dist/rate.d.ts +119 -0
- package/dist/rate.d.ts.map +1 -0
- package/dist/rate.js +271 -0
- package/dist/rate.js.map +1 -0
- package/dist/rounding-error.d.ts +9 -0
- package/dist/rounding-error.d.ts.map +1 -0
- package/dist/rounding-error.js +9 -0
- package/dist/rounding-error.js.map +1 -0
- package/dist/rounding.d.ts +50 -0
- package/dist/rounding.d.ts.map +1 -0
- package/dist/rounding.js +87 -0
- package/dist/rounding.js.map +1 -0
- package/dist/stripe-fx.d.ts +22 -0
- package/dist/stripe-fx.d.ts.map +1 -0
- package/dist/stripe-fx.js +30 -0
- package/dist/stripe-fx.js.map +1 -0
- package/dist/stripe.d.ts +36 -0
- package/dist/stripe.d.ts.map +1 -0
- package/dist/stripe.js +39 -0
- package/dist/stripe.js.map +1 -0
- package/dist/tax.d.ts +29 -0
- package/dist/tax.d.ts.map +1 -0
- package/dist/tax.js +39 -0
- package/dist/tax.js.map +1 -0
- package/package.json +169 -5
- package/src/adyen-fx.ts +154 -0
- package/src/adyen.ts +46 -0
- package/src/allocate.ts +393 -0
- package/src/bag.ts +170 -0
- package/src/braintree.ts +71 -0
- package/src/cash.ts +115 -0
- package/src/checkout.ts +77 -0
- package/src/convert.ts +159 -0
- package/src/currency.ts +61 -0
- package/src/decimal.ts +283 -0
- package/src/ecb.ts +162 -0
- package/src/exact.ts +182 -0
- package/src/fetch.ts +127 -0
- package/src/fixed.ts +558 -0
- package/src/fn.ts +80 -0
- package/src/format.ts +106 -0
- package/src/generated/adyen.ts +144 -0
- package/src/generated/braintree.ts +140 -0
- package/src/generated/cash.ts +375 -0
- package/src/generated/checkout.ts +151 -0
- package/src/generated/iso4217.ts +179 -0
- package/src/generated/kernel.ts +230 -0
- package/src/generated/klarna.ts +21 -0
- package/src/generated/paypal.ts +31 -0
- package/src/generated/stripe.ts +150 -0
- package/src/index.ts +37 -0
- package/src/klarna.ts +54 -0
- package/src/money.ts +781 -0
- package/src/parse.ts +144 -0
- package/src/paypal.ts +93 -0
- package/src/plugins/adyen.ts +25 -0
- package/src/plugins/all.ts +47 -0
- package/src/plugins/allocate.ts +53 -0
- package/src/plugins/braintree.ts +23 -0
- package/src/plugins/cash.ts +33 -0
- package/src/plugins/checkout.ts +32 -0
- package/src/plugins/convert.ts +50 -0
- package/src/plugins/exact.ts +23 -0
- package/src/plugins/fixed.ts +28 -0
- package/src/plugins/format.ts +28 -0
- package/src/plugins/klarna.ts +21 -0
- package/src/plugins/paypal.ts +29 -0
- package/src/plugins/prisma.ts +24 -0
- package/src/plugins/stripe.ts +29 -0
- package/src/plugins/tax.ts +41 -0
- package/src/prisma.ts +118 -0
- package/src/processor.ts +181 -0
- package/src/provider.ts +324 -0
- package/src/rate.ts +377 -0
- package/src/rounding-error.ts +8 -0
- package/src/rounding.ts +122 -0
- package/src/stripe-fx.ts +49 -0
- package/src/stripe.ts +69 -0
- package/src/tax.ts +71 -0
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
// lean-sources sha256:69cb179d69b98bf06518e6abae249369e163ca9ac7c318064680c59920517601 content sha256:dc3d761f86eb9b865b2cfa6a6dba6e6b3853afdab3ec5c8811415f9942c6231c
|
|
2
|
+
// GENERATED from proofs/Ducat/Rounding.lean by `pnpm gen:kernel`. Do not edit.
|
|
3
|
+
import { RoundingError } from '../rounding-error.js';
|
|
4
|
+
const ROUNDING_NECESSARY = 'Rounding necessary: the result is not exact; pass a rounding mode';
|
|
5
|
+
/**
|
|
6
|
+
* `dividend / divisor` rounded with `mode`; `divisor` must be positive.
|
|
7
|
+
*
|
|
8
|
+
* Each `case` is printed from the Lean kernel for that mode, which is proved correct in
|
|
9
|
+
* proofs/Ducat/Rounding.lean: `kernel_sound` (the result satisfies the specification `Rounds`),
|
|
10
|
+
* `rounds_unique` (only one value does) and `kernel_fails_iff` (it throws only for 'unnecessary' on an
|
|
11
|
+
* inexact division), hence `kernel_correct`. Unknown modes throw a RangeError.
|
|
12
|
+
*/
|
|
13
|
+
export function divideAndRoundBigint(dividend, divisor, mode) {
|
|
14
|
+
const quotient = dividend / divisor;
|
|
15
|
+
const remainder = dividend - quotient * divisor;
|
|
16
|
+
return roundTruncatedQuotientBigint(dividend, divisor, quotient, remainder, mode);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Rounds the truncated `quotient` of `dividend / divisor` (with `remainder = dividend - quotient * divisor`)
|
|
20
|
+
* with `mode`; `divisor` must be positive.
|
|
21
|
+
*
|
|
22
|
+
* Each `case` is printed from the Lean kernel for that mode, which is proved correct in
|
|
23
|
+
* proofs/Ducat/Rounding.lean: `kernel_sound` (the result satisfies the specification `Rounds`),
|
|
24
|
+
* `rounds_unique` (only one value does) and `kernel_fails_iff` (it throws only for 'unnecessary' on an
|
|
25
|
+
* inexact division), hence `kernel_correct`. Unknown modes throw a RangeError.
|
|
26
|
+
*/
|
|
27
|
+
function roundTruncatedQuotientBigint(dividend, divisor, quotient, remainder, mode) {
|
|
28
|
+
if (remainder === 0n) {
|
|
29
|
+
return quotient;
|
|
30
|
+
}
|
|
31
|
+
const twiceRemainder = remainder < 0n ? -2n * remainder : 2n * remainder;
|
|
32
|
+
switch (mode) {
|
|
33
|
+
// rounds to the nearest integer, ties away from zero
|
|
34
|
+
case 'halfExpand': {
|
|
35
|
+
if (divisor <= twiceRemainder) {
|
|
36
|
+
if (dividend < 0n) {
|
|
37
|
+
return quotient - 1n;
|
|
38
|
+
}
|
|
39
|
+
return quotient + 1n;
|
|
40
|
+
}
|
|
41
|
+
return quotient;
|
|
42
|
+
}
|
|
43
|
+
// rounds to the nearest integer, ties to the even neighbour
|
|
44
|
+
case 'halfEven': {
|
|
45
|
+
if (divisor < twiceRemainder || (twiceRemainder === divisor && quotient % 2n !== 0n)) {
|
|
46
|
+
if (dividend < 0n) {
|
|
47
|
+
return quotient - 1n;
|
|
48
|
+
}
|
|
49
|
+
return quotient + 1n;
|
|
50
|
+
}
|
|
51
|
+
return quotient;
|
|
52
|
+
}
|
|
53
|
+
// rounds to the nearest integer, ties towards zero
|
|
54
|
+
case 'halfTrunc': {
|
|
55
|
+
if (divisor < twiceRemainder) {
|
|
56
|
+
if (dividend < 0n) {
|
|
57
|
+
return quotient - 1n;
|
|
58
|
+
}
|
|
59
|
+
return quotient + 1n;
|
|
60
|
+
}
|
|
61
|
+
return quotient;
|
|
62
|
+
}
|
|
63
|
+
// rounds to the nearest integer, ties towards +infinity
|
|
64
|
+
case 'halfCeil': {
|
|
65
|
+
if (divisor < twiceRemainder || (twiceRemainder === divisor && !(dividend < 0n))) {
|
|
66
|
+
if (dividend < 0n) {
|
|
67
|
+
return quotient - 1n;
|
|
68
|
+
}
|
|
69
|
+
return quotient + 1n;
|
|
70
|
+
}
|
|
71
|
+
return quotient;
|
|
72
|
+
}
|
|
73
|
+
// rounds to the nearest integer, ties towards -infinity
|
|
74
|
+
case 'halfFloor': {
|
|
75
|
+
if (divisor < twiceRemainder || (twiceRemainder === divisor && dividend < 0n)) {
|
|
76
|
+
if (dividend < 0n) {
|
|
77
|
+
return quotient - 1n;
|
|
78
|
+
}
|
|
79
|
+
return quotient + 1n;
|
|
80
|
+
}
|
|
81
|
+
return quotient;
|
|
82
|
+
}
|
|
83
|
+
// rounds towards zero
|
|
84
|
+
case 'trunc': {
|
|
85
|
+
return quotient;
|
|
86
|
+
}
|
|
87
|
+
// rounds away from zero
|
|
88
|
+
case 'expand': {
|
|
89
|
+
if (dividend < 0n) {
|
|
90
|
+
return quotient - 1n;
|
|
91
|
+
}
|
|
92
|
+
return quotient + 1n;
|
|
93
|
+
}
|
|
94
|
+
// rounds towards +infinity
|
|
95
|
+
case 'ceil': {
|
|
96
|
+
if (dividend < 0n) {
|
|
97
|
+
return quotient;
|
|
98
|
+
}
|
|
99
|
+
return quotient + 1n;
|
|
100
|
+
}
|
|
101
|
+
// rounds towards -infinity
|
|
102
|
+
case 'floor': {
|
|
103
|
+
if (!(dividend < 0n)) {
|
|
104
|
+
return quotient;
|
|
105
|
+
}
|
|
106
|
+
return quotient - 1n;
|
|
107
|
+
}
|
|
108
|
+
// rounds not at all: throws RoundingError unless the division is exact
|
|
109
|
+
case 'unnecessary': {
|
|
110
|
+
throw new RoundingError(ROUNDING_NECESSARY);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
throw new RangeError(`Unknown rounding mode "${String(mode)}"`);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* The same switch over `number`: rounds the truncated `quotient` of `dividend / divisor`, where
|
|
117
|
+
* `remainder = dividend - quotient * divisor` exactly and `divisor` is positive. Every input must be a safe
|
|
118
|
+
* integer. This copy is not proved; test/kernel.test.ts compares it with the `bigint` one.
|
|
119
|
+
*/
|
|
120
|
+
export function roundTruncatedQuotient(dividend, divisor, quotient, remainder, mode) {
|
|
121
|
+
if (remainder === 0) {
|
|
122
|
+
return quotient;
|
|
123
|
+
}
|
|
124
|
+
const twiceRemainder = remainder < 0 ? -2 * remainder : 2 * remainder;
|
|
125
|
+
switch (mode) {
|
|
126
|
+
// rounds to the nearest integer, ties away from zero
|
|
127
|
+
case 'halfExpand': {
|
|
128
|
+
if (divisor <= twiceRemainder) {
|
|
129
|
+
if (dividend < 0) {
|
|
130
|
+
return quotient - 1;
|
|
131
|
+
}
|
|
132
|
+
return quotient + 1;
|
|
133
|
+
}
|
|
134
|
+
return quotient;
|
|
135
|
+
}
|
|
136
|
+
// rounds to the nearest integer, ties to the even neighbour
|
|
137
|
+
case 'halfEven': {
|
|
138
|
+
if (divisor < twiceRemainder || (twiceRemainder === divisor && quotient % 2 !== 0)) {
|
|
139
|
+
if (dividend < 0) {
|
|
140
|
+
return quotient - 1;
|
|
141
|
+
}
|
|
142
|
+
return quotient + 1;
|
|
143
|
+
}
|
|
144
|
+
return quotient;
|
|
145
|
+
}
|
|
146
|
+
// rounds to the nearest integer, ties towards zero
|
|
147
|
+
case 'halfTrunc': {
|
|
148
|
+
if (divisor < twiceRemainder) {
|
|
149
|
+
if (dividend < 0) {
|
|
150
|
+
return quotient - 1;
|
|
151
|
+
}
|
|
152
|
+
return quotient + 1;
|
|
153
|
+
}
|
|
154
|
+
return quotient;
|
|
155
|
+
}
|
|
156
|
+
// rounds to the nearest integer, ties towards +infinity
|
|
157
|
+
case 'halfCeil': {
|
|
158
|
+
if (divisor < twiceRemainder || (twiceRemainder === divisor && !(dividend < 0))) {
|
|
159
|
+
if (dividend < 0) {
|
|
160
|
+
return quotient - 1;
|
|
161
|
+
}
|
|
162
|
+
return quotient + 1;
|
|
163
|
+
}
|
|
164
|
+
return quotient;
|
|
165
|
+
}
|
|
166
|
+
// rounds to the nearest integer, ties towards -infinity
|
|
167
|
+
case 'halfFloor': {
|
|
168
|
+
if (divisor < twiceRemainder || (twiceRemainder === divisor && dividend < 0)) {
|
|
169
|
+
if (dividend < 0) {
|
|
170
|
+
return quotient - 1;
|
|
171
|
+
}
|
|
172
|
+
return quotient + 1;
|
|
173
|
+
}
|
|
174
|
+
return quotient;
|
|
175
|
+
}
|
|
176
|
+
// rounds towards zero
|
|
177
|
+
case 'trunc': {
|
|
178
|
+
return quotient;
|
|
179
|
+
}
|
|
180
|
+
// rounds away from zero
|
|
181
|
+
case 'expand': {
|
|
182
|
+
if (dividend < 0) {
|
|
183
|
+
return quotient - 1;
|
|
184
|
+
}
|
|
185
|
+
return quotient + 1;
|
|
186
|
+
}
|
|
187
|
+
// rounds towards +infinity
|
|
188
|
+
case 'ceil': {
|
|
189
|
+
if (dividend < 0) {
|
|
190
|
+
return quotient;
|
|
191
|
+
}
|
|
192
|
+
return quotient + 1;
|
|
193
|
+
}
|
|
194
|
+
// rounds towards -infinity
|
|
195
|
+
case 'floor': {
|
|
196
|
+
if (!(dividend < 0)) {
|
|
197
|
+
return quotient;
|
|
198
|
+
}
|
|
199
|
+
return quotient - 1;
|
|
200
|
+
}
|
|
201
|
+
// rounds not at all: throws RoundingError unless the division is exact
|
|
202
|
+
case 'unnecessary': {
|
|
203
|
+
throw new RoundingError(ROUNDING_NECESSARY);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
throw new RangeError(`Unknown rounding mode "${String(mode)}"`);
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=kernel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../src/generated/kernel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"klarna.d.ts","sourceRoot":"","sources":["../../src/generated/klarna.ts"],"names":[],"mappings":"AAGA,iGAAiG;AACjG,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgB7D,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// GENERATED by scripts/gen-currencies.mjs from data/klarna.json (https://docs.klarna.com/acquirer/klarna/get-started/integration-resilience/data-types/, retrieved 2026-11-07). Do not edit by hand.
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/** Klarna purchase currencies and their ISO 4217 exponents (amounts are integer minor units). */
|
|
4
|
+
export const KLARNA_EXPONENTS = {
|
|
5
|
+
AUD: 2,
|
|
6
|
+
CAD: 2,
|
|
7
|
+
CHF: 2,
|
|
8
|
+
CZK: 2,
|
|
9
|
+
DKK: 2,
|
|
10
|
+
EUR: 2,
|
|
11
|
+
GBP: 2,
|
|
12
|
+
HUF: 2,
|
|
13
|
+
MXN: 2,
|
|
14
|
+
NOK: 2,
|
|
15
|
+
NZD: 2,
|
|
16
|
+
PLN: 2,
|
|
17
|
+
RON: 2,
|
|
18
|
+
SEK: 2,
|
|
19
|
+
USD: 2,
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=klarna.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"klarna.js","sourceRoot":"","sources":["../../src/generated/klarna.ts"],"names":[],"mappings":"AAAA,qMAAqM;AACrM,oBAAoB;AAEpB,iGAAiG;AACjG,MAAM,CAAC,MAAM,gBAAgB,GAAqC;IAChE,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;CACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paypal.d.ts","sourceRoot":"","sources":["../../src/generated/paypal.ts"],"names":[],"mappings":"AAGA,8FAA8F;AAC9F,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA0B7D,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// GENERATED by scripts/gen-currencies.mjs from data/paypal.json (https://developer.paypal.com/api/rest/reference/currency-codes/, retrieved 2026-11-07). Do not edit by hand.
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/** PayPal decimals per currency (`value` is a decimal string). HUF, JPY and TWD take none. */
|
|
4
|
+
export const PAYPAL_EXPONENTS = {
|
|
5
|
+
AUD: 2,
|
|
6
|
+
BRL: 2,
|
|
7
|
+
CAD: 2,
|
|
8
|
+
CHF: 2,
|
|
9
|
+
CNY: 2,
|
|
10
|
+
CZK: 2,
|
|
11
|
+
DKK: 2,
|
|
12
|
+
EUR: 2,
|
|
13
|
+
GBP: 2,
|
|
14
|
+
HKD: 2,
|
|
15
|
+
HUF: 0,
|
|
16
|
+
ILS: 2,
|
|
17
|
+
JPY: 0,
|
|
18
|
+
MXN: 2,
|
|
19
|
+
MYR: 2,
|
|
20
|
+
NOK: 2,
|
|
21
|
+
NZD: 2,
|
|
22
|
+
PHP: 2,
|
|
23
|
+
PLN: 2,
|
|
24
|
+
RUB: 2,
|
|
25
|
+
SEK: 2,
|
|
26
|
+
SGD: 2,
|
|
27
|
+
THB: 2,
|
|
28
|
+
TWD: 0,
|
|
29
|
+
USD: 2,
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=paypal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paypal.js","sourceRoot":"","sources":["../../src/generated/paypal.ts"],"names":[],"mappings":"AAAA,8KAA8K;AAC9K,oBAAoB;AAEpB,8FAA8F;AAC9F,MAAM,CAAC,MAAM,gBAAgB,GAAqC;IAChE,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;CACP,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stripe presentment currencies: [API exponent, charge amount multiple, payout amount multiple].
|
|
3
|
+
* A multiple of 100 means "send a two-decimal value whose decimal part is always 00" (ISK, UGX)
|
|
4
|
+
* or, for payouts only, whole units (HUF, TWD). A multiple of 10 is the three-decimal rule
|
|
5
|
+
* (last digit must be 0).
|
|
6
|
+
*/
|
|
7
|
+
export declare const STRIPE_RULES: Readonly<Record<string, readonly [exponent: number, chargeMultiple: number, payoutMultiple: number]>>;
|
|
8
|
+
//# sourceMappingURL=stripe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stripe.d.ts","sourceRoot":"","sources":["../../src/generated/stripe.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CA4I9H,CAAC"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
// GENERATED by scripts/gen-currencies.mjs from data/stripe.json (https://docs.stripe.com/currencies, retrieved 2026-11-07). Do not edit by hand.
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* Stripe presentment currencies: [API exponent, charge amount multiple, payout amount multiple].
|
|
5
|
+
* A multiple of 100 means "send a two-decimal value whose decimal part is always 00" (ISK, UGX)
|
|
6
|
+
* or, for payouts only, whole units (HUF, TWD). A multiple of 10 is the three-decimal rule
|
|
7
|
+
* (last digit must be 0).
|
|
8
|
+
*/
|
|
9
|
+
export const STRIPE_RULES = {
|
|
10
|
+
AED: [2, 1, 1],
|
|
11
|
+
AFN: [2, 1, 1],
|
|
12
|
+
ALL: [2, 1, 1],
|
|
13
|
+
AMD: [2, 1, 1],
|
|
14
|
+
ANG: [2, 1, 1],
|
|
15
|
+
AOA: [2, 1, 1],
|
|
16
|
+
ARS: [2, 1, 1],
|
|
17
|
+
AUD: [2, 1, 1],
|
|
18
|
+
AWG: [2, 1, 1],
|
|
19
|
+
AZN: [2, 1, 1],
|
|
20
|
+
BAM: [2, 1, 1],
|
|
21
|
+
BBD: [2, 1, 1],
|
|
22
|
+
BDT: [2, 1, 1],
|
|
23
|
+
BHD: [3, 10, 10],
|
|
24
|
+
BIF: [0, 1, 1],
|
|
25
|
+
BMD: [2, 1, 1],
|
|
26
|
+
BND: [2, 1, 1],
|
|
27
|
+
BOB: [2, 1, 1],
|
|
28
|
+
BRL: [2, 1, 1],
|
|
29
|
+
BSD: [2, 1, 1],
|
|
30
|
+
BWP: [2, 1, 1],
|
|
31
|
+
BYN: [2, 1, 1],
|
|
32
|
+
BZD: [2, 1, 1],
|
|
33
|
+
CAD: [2, 1, 1],
|
|
34
|
+
CDF: [2, 1, 1],
|
|
35
|
+
CHF: [2, 1, 1],
|
|
36
|
+
CLP: [0, 1, 1],
|
|
37
|
+
CNY: [2, 1, 1],
|
|
38
|
+
COP: [2, 1, 1],
|
|
39
|
+
CRC: [2, 1, 1],
|
|
40
|
+
CVE: [2, 1, 1],
|
|
41
|
+
CZK: [2, 1, 1],
|
|
42
|
+
DJF: [0, 1, 1],
|
|
43
|
+
DKK: [2, 1, 1],
|
|
44
|
+
DOP: [2, 1, 1],
|
|
45
|
+
DZD: [2, 1, 1],
|
|
46
|
+
EGP: [2, 1, 1],
|
|
47
|
+
ETB: [2, 1, 1],
|
|
48
|
+
EUR: [2, 1, 1],
|
|
49
|
+
FJD: [2, 1, 1],
|
|
50
|
+
FKP: [2, 1, 1],
|
|
51
|
+
GBP: [2, 1, 1],
|
|
52
|
+
GEL: [2, 1, 1],
|
|
53
|
+
GIP: [2, 1, 1],
|
|
54
|
+
GMD: [2, 1, 1],
|
|
55
|
+
GNF: [0, 1, 1],
|
|
56
|
+
GTQ: [2, 1, 1],
|
|
57
|
+
GYD: [2, 1, 1],
|
|
58
|
+
HKD: [2, 1, 1],
|
|
59
|
+
HNL: [2, 1, 1],
|
|
60
|
+
HTG: [2, 1, 1],
|
|
61
|
+
HUF: [2, 1, 100],
|
|
62
|
+
IDR: [2, 1, 1],
|
|
63
|
+
ILS: [2, 1, 1],
|
|
64
|
+
INR: [2, 1, 1],
|
|
65
|
+
ISK: [2, 100, 100],
|
|
66
|
+
JMD: [2, 1, 1],
|
|
67
|
+
JOD: [3, 10, 10],
|
|
68
|
+
JPY: [0, 1, 1],
|
|
69
|
+
KES: [2, 1, 1],
|
|
70
|
+
KGS: [2, 1, 1],
|
|
71
|
+
KHR: [2, 1, 1],
|
|
72
|
+
KMF: [0, 1, 1],
|
|
73
|
+
KRW: [0, 1, 1],
|
|
74
|
+
KWD: [3, 10, 10],
|
|
75
|
+
KYD: [2, 1, 1],
|
|
76
|
+
KZT: [2, 1, 1],
|
|
77
|
+
LAK: [2, 1, 1],
|
|
78
|
+
LBP: [2, 1, 1],
|
|
79
|
+
LKR: [2, 1, 1],
|
|
80
|
+
LRD: [2, 1, 1],
|
|
81
|
+
LSL: [2, 1, 1],
|
|
82
|
+
MAD: [2, 1, 1],
|
|
83
|
+
MDL: [2, 1, 1],
|
|
84
|
+
MGA: [0, 1, 1],
|
|
85
|
+
MKD: [2, 1, 1],
|
|
86
|
+
MMK: [2, 1, 1],
|
|
87
|
+
MNT: [2, 1, 1],
|
|
88
|
+
MOP: [2, 1, 1],
|
|
89
|
+
MUR: [2, 1, 1],
|
|
90
|
+
MVR: [2, 1, 1],
|
|
91
|
+
MWK: [2, 1, 1],
|
|
92
|
+
MXN: [2, 1, 1],
|
|
93
|
+
MYR: [2, 1, 1],
|
|
94
|
+
MZN: [2, 1, 1],
|
|
95
|
+
NAD: [2, 1, 1],
|
|
96
|
+
NGN: [2, 1, 1],
|
|
97
|
+
NIO: [2, 1, 1],
|
|
98
|
+
NOK: [2, 1, 1],
|
|
99
|
+
NPR: [2, 1, 1],
|
|
100
|
+
NZD: [2, 1, 1],
|
|
101
|
+
OMR: [3, 10, 10],
|
|
102
|
+
PAB: [2, 1, 1],
|
|
103
|
+
PEN: [2, 1, 1],
|
|
104
|
+
PGK: [2, 1, 1],
|
|
105
|
+
PHP: [2, 1, 1],
|
|
106
|
+
PKR: [2, 1, 1],
|
|
107
|
+
PLN: [2, 1, 1],
|
|
108
|
+
PYG: [0, 1, 1],
|
|
109
|
+
QAR: [2, 1, 1],
|
|
110
|
+
RON: [2, 1, 1],
|
|
111
|
+
RSD: [2, 1, 1],
|
|
112
|
+
RUB: [2, 1, 1],
|
|
113
|
+
RWF: [0, 1, 1],
|
|
114
|
+
SAR: [2, 1, 1],
|
|
115
|
+
SBD: [2, 1, 1],
|
|
116
|
+
SCR: [2, 1, 1],
|
|
117
|
+
SEK: [2, 1, 1],
|
|
118
|
+
SGD: [2, 1, 1],
|
|
119
|
+
SHP: [2, 1, 1],
|
|
120
|
+
SLE: [2, 1, 1],
|
|
121
|
+
SOS: [2, 1, 1],
|
|
122
|
+
SRD: [2, 1, 1],
|
|
123
|
+
STD: [2, 1, 1],
|
|
124
|
+
SZL: [2, 1, 1],
|
|
125
|
+
THB: [2, 1, 1],
|
|
126
|
+
TJS: [2, 1, 1],
|
|
127
|
+
TND: [3, 10, 10],
|
|
128
|
+
TOP: [2, 1, 1],
|
|
129
|
+
TRY: [2, 1, 1],
|
|
130
|
+
TTD: [2, 1, 1],
|
|
131
|
+
TWD: [2, 1, 100],
|
|
132
|
+
TZS: [2, 1, 1],
|
|
133
|
+
UAH: [2, 1, 1],
|
|
134
|
+
UGX: [2, 100, 100],
|
|
135
|
+
USD: [2, 1, 1],
|
|
136
|
+
UYU: [2, 1, 1],
|
|
137
|
+
UZS: [2, 1, 1],
|
|
138
|
+
VND: [0, 1, 1],
|
|
139
|
+
VUV: [0, 1, 1],
|
|
140
|
+
WST: [2, 1, 1],
|
|
141
|
+
XAF: [0, 1, 1],
|
|
142
|
+
XCD: [2, 1, 1],
|
|
143
|
+
XCG: [2, 1, 1],
|
|
144
|
+
XOF: [0, 1, 1],
|
|
145
|
+
XPF: [0, 1, 1],
|
|
146
|
+
YER: [2, 1, 1],
|
|
147
|
+
ZAR: [2, 1, 1],
|
|
148
|
+
ZMW: [2, 1, 1],
|
|
149
|
+
};
|
|
150
|
+
//# sourceMappingURL=stripe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stripe.js","sourceRoot":"","sources":["../../src/generated/stripe.ts"],"names":[],"mappings":"AAAA,iJAAiJ;AACjJ,oBAAoB;AAEpB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAA0G;IACjI,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC;IACd,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,GAAG,CAAC;IACd,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC;IAChB,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC;IACd,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC;IACd,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC;IACd,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,CAAC;IACd,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,GAAG,CAAC;IACd,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC;IAChB,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;CACb,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@ducatjs/money`: the core. Money with construction, arithmetic, rounding, comparison and
|
|
3
|
+
* serialisation as methods (`price.add(fee).multiply('1.075')`), plus the ISO 4217 exponents.
|
|
4
|
+
* The same operations as plain functions (`add(price, fee)`) are in `@ducatjs/money/fn`. Allocation, tax, conversion, cash rounding,
|
|
5
|
+
* formatting, parsing and the processor and database views are opt-in modules
|
|
6
|
+
* (`@ducatjs/money/allocate`, `@ducatjs/money/tax`, ...; `@ducatjs/money/all` for everything).
|
|
7
|
+
*/
|
|
8
|
+
export { money, fromMinor, zero, fromJSON, isMoney, extendMoney, type ExtendMoneyOptions, sum, ratio, CurrencyMismatchError, type Money, type MoneyJSON, type MoneyOptions, type CurrencyInput, type Factor, type Ratio, } from './money.js';
|
|
9
|
+
export { DEFAULT_ROUNDING, Rounding, RoundingError, type RoundingMode } from './rounding.js';
|
|
10
|
+
export { currencyExponent, defineCurrency, isCurrency, ISO_EXPONENTS, ISO_4217_PUBLISHED, ISO_NON_MONETARY, type CurrencyCode, type IsoCurrencyCode, type CustomCurrencies, } from './currency.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,KAAK,EACL,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,WAAW,EACX,KAAK,kBAAkB,EACvB,GAAG,EACH,KAAK,EACL,qBAAqB,EACrB,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,KAAK,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7F,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@ducatjs/money`: the core. Money with construction, arithmetic, rounding, comparison and
|
|
3
|
+
* serialisation as methods (`price.add(fee).multiply('1.075')`), plus the ISO 4217 exponents.
|
|
4
|
+
* The same operations as plain functions (`add(price, fee)`) are in `@ducatjs/money/fn`. Allocation, tax, conversion, cash rounding,
|
|
5
|
+
* formatting, parsing and the processor and database views are opt-in modules
|
|
6
|
+
* (`@ducatjs/money/allocate`, `@ducatjs/money/tax`, ...; `@ducatjs/money/all` for everything).
|
|
7
|
+
*/
|
|
8
|
+
export { money, fromMinor, zero, fromJSON, isMoney, extendMoney, sum, ratio, CurrencyMismatchError, } from './money.js';
|
|
9
|
+
export { DEFAULT_ROUNDING, Rounding, RoundingError } from './rounding.js';
|
|
10
|
+
export { currencyExponent, defineCurrency, isCurrency, ISO_EXPONENTS, ISO_4217_PUBLISHED, ISO_NON_MONETARY, } from './currency.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,KAAK,EACL,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,WAAW,EAEX,GAAG,EACH,KAAK,EACL,qBAAqB,GAOtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAqB,MAAM,eAAe,CAAC;AAC7F,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GAIjB,MAAM,eAAe,CAAC"}
|
package/dist/klarna.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Klarna's amount view (Klarna Payments and Order Management; https://docs.klarna.com/acquirer/klarna/get-started/integration-resilience/data-types/,
|
|
3
|
+
* encoded in data/klarna.json). Amounts (`order_amount`, `unit_price`, `total_amount`, ...) are
|
|
4
|
+
* integers "in minor units according to the ISO 4217 standard", in the one local currency of each
|
|
5
|
+
* purchase country: 25 EUR -> 2500, 1000 HUF -> 100000 (fillér; PayPal sends HUF without decimals).
|
|
6
|
+
*/
|
|
7
|
+
import { KLARNA_EXPONENTS } from './generated/klarna.js';
|
|
8
|
+
import { type CurrencyInput, type Money } from './money.js';
|
|
9
|
+
import type { RoundingMode } from './rounding.js';
|
|
10
|
+
export { KLARNA_EXPONENTS };
|
|
11
|
+
/** The ISO 4217 exponent of a Klarna purchase currency; throws for any other currency. */
|
|
12
|
+
export declare function klarnaExponent(currency: string): number;
|
|
13
|
+
/** Whether the currency is one of Klarna's purchase currencies (case-insensitive). */
|
|
14
|
+
export declare function isKlarnaCurrency(currency: string): boolean;
|
|
15
|
+
/** Options for the Klarna amount: how to round when Klarna needs a coarser amount. */
|
|
16
|
+
export interface KlarnaAmountOptions {
|
|
17
|
+
/**
|
|
18
|
+
* How to round when the value has more decimals than the currency (default 'unnecessary': throw).
|
|
19
|
+
*/
|
|
20
|
+
readonly rounding?: RoundingMode;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The integer to send in any Klarna amount field: toKlarna(money('25', 'EUR')) === 2500.
|
|
24
|
+
* A bare number, because Klarna gives the currency once per order (`purchase_currency`).
|
|
25
|
+
* Negative amounts pass through: discount order lines are negative ("Negative when type is
|
|
26
|
+
* discount"), though `order_amount` itself must be non-negative.
|
|
27
|
+
*/
|
|
28
|
+
export declare function toKlarna(money: Money, options?: KlarnaAmountOptions): number;
|
|
29
|
+
/** Reads a Klarna amount field: fromKlarna(2500, 'EUR') is 25.00 EUR. */
|
|
30
|
+
export declare function fromKlarna<C extends CurrencyInput>(amount: number | bigint, currency: C): Money<Uppercase<C>>;
|
|
31
|
+
//# sourceMappingURL=klarna.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"klarna.d.ts","sourceRoot":"","sources":["../src/klarna.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMvD;AAED,sFAAsF;AACtF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,sFAAsF;AACtF,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;CAClC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAG5E;AAED,yEAAyE;AACzE,wBAAgB,UAAU,CAAC,CAAC,SAAS,aAAa,EAChD,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,QAAQ,EAAE,CAAC,GACV,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAGrB"}
|
package/dist/klarna.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Klarna's amount view (Klarna Payments and Order Management; https://docs.klarna.com/acquirer/klarna/get-started/integration-resilience/data-types/,
|
|
3
|
+
* encoded in data/klarna.json). Amounts (`order_amount`, `unit_price`, `total_amount`, ...) are
|
|
4
|
+
* integers "in minor units according to the ISO 4217 standard", in the one local currency of each
|
|
5
|
+
* purchase country: 25 EUR -> 2500, 1000 HUF -> 100000 (fillér; PayPal sends HUF without decimals).
|
|
6
|
+
*/
|
|
7
|
+
import { KLARNA_EXPONENTS } from './generated/klarna.js';
|
|
8
|
+
import {} from './money.js';
|
|
9
|
+
import { fromProcessorAmount, toProcessorAmount } from './processor.js';
|
|
10
|
+
export { KLARNA_EXPONENTS };
|
|
11
|
+
/** The ISO 4217 exponent of a Klarna purchase currency; throws for any other currency. */
|
|
12
|
+
export function klarnaExponent(currency) {
|
|
13
|
+
const exponent = KLARNA_EXPONENTS[currency.toUpperCase()];
|
|
14
|
+
if (exponent === undefined) {
|
|
15
|
+
throw new RangeError(`${currency} is not a Klarna purchase currency`);
|
|
16
|
+
}
|
|
17
|
+
return exponent;
|
|
18
|
+
}
|
|
19
|
+
/** Whether the currency is one of Klarna's purchase currencies (case-insensitive). */
|
|
20
|
+
export function isKlarnaCurrency(currency) {
|
|
21
|
+
return KLARNA_EXPONENTS[currency.toUpperCase()] !== undefined;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The integer to send in any Klarna amount field: toKlarna(money('25', 'EUR')) === 2500.
|
|
25
|
+
* A bare number, because Klarna gives the currency once per order (`purchase_currency`).
|
|
26
|
+
* Negative amounts pass through: discount order lines are negative ("Negative when type is
|
|
27
|
+
* discount"), though `order_amount` itself must be non-negative.
|
|
28
|
+
*/
|
|
29
|
+
export function toKlarna(money, options) {
|
|
30
|
+
const rounding = options?.rounding ?? 'unnecessary';
|
|
31
|
+
return toProcessorAmount('Klarna', money, klarnaExponent(money.currency), 1, rounding);
|
|
32
|
+
}
|
|
33
|
+
/** Reads a Klarna amount field: fromKlarna(2500, 'EUR') is 25.00 EUR. */
|
|
34
|
+
export function fromKlarna(amount, currency) {
|
|
35
|
+
const code = currency.toUpperCase();
|
|
36
|
+
return fromProcessorAmount('Klarna', amount, code, klarnaExponent(code));
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=klarna.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"klarna.js","sourceRoot":"","sources":["../src/klarna.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAkC,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGxE,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,0FAA0F;AAC1F,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,UAAU,CAAC,GAAG,QAAQ,oCAAoC,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,OAAO,gBAAgB,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,SAAS,CAAC;AAChE,CAAC;AAUD;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAY,EAAE,OAA6B;IAClE,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,aAAa,CAAC;IACpD,OAAO,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AACzF,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,UAAU,CACxB,MAAuB,EACvB,QAAW;IAEX,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAkB,CAAC;IACpD,OAAO,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3E,CAAC"}
|