@ducatjs/money 0.0.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 (398) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +51 -0
  3. package/README.md +1034 -3
  4. package/assets/CREDITS.md +12 -0
  5. package/data/adyen-fx.json +19 -0
  6. package/data/adyen.json +171 -0
  7. package/data/braintree.json +223 -0
  8. package/data/cash-rounding.json +520 -0
  9. package/data/checkout.json +230 -0
  10. package/data/cldr-cash.json +101 -0
  11. package/data/historic.json +78 -0
  12. package/data/iso4217-list-one.xml +1956 -0
  13. package/data/iso4217-list-three.xml +1185 -0
  14. package/data/klarna.json +95 -0
  15. package/data/paypal.json +65 -0
  16. package/data/stripe-fx.json +17 -0
  17. package/data/stripe.json +285 -0
  18. package/dist/adyen-fx.d.ts +25 -0
  19. package/dist/adyen-fx.d.ts.map +1 -0
  20. package/dist/adyen-fx.js +140 -0
  21. package/dist/adyen-fx.js.map +1 -0
  22. package/dist/adyen.d.ts +25 -0
  23. package/dist/adyen.d.ts.map +1 -0
  24. package/dist/adyen.js +34 -0
  25. package/dist/adyen.js.map +1 -0
  26. package/dist/allocate.d.ts +72 -0
  27. package/dist/allocate.d.ts.map +1 -0
  28. package/dist/allocate.js +314 -0
  29. package/dist/allocate.js.map +1 -0
  30. package/dist/bag.d.ts +58 -0
  31. package/dist/bag.d.ts.map +1 -0
  32. package/dist/bag.js +122 -0
  33. package/dist/bag.js.map +1 -0
  34. package/dist/boc.d.ts +31 -0
  35. package/dist/boc.d.ts.map +1 -0
  36. package/dist/boc.js +114 -0
  37. package/dist/boc.js.map +1 -0
  38. package/dist/boe.d.ts +33 -0
  39. package/dist/boe.d.ts.map +1 -0
  40. package/dist/boe.js +114 -0
  41. package/dist/boe.js.map +1 -0
  42. package/dist/braintree.d.ts +34 -0
  43. package/dist/braintree.d.ts.map +1 -0
  44. package/dist/braintree.js +45 -0
  45. package/dist/braintree.js.map +1 -0
  46. package/dist/cash.d.ts +64 -0
  47. package/dist/cash.d.ts.map +1 -0
  48. package/dist/cash.js +134 -0
  49. package/dist/cash.js.map +1 -0
  50. package/dist/checkout.d.ts +42 -0
  51. package/dist/checkout.d.ts.map +1 -0
  52. package/dist/checkout.js +52 -0
  53. package/dist/checkout.js.map +1 -0
  54. package/dist/convert.d.ts +52 -0
  55. package/dist/convert.d.ts.map +1 -0
  56. package/dist/convert.js +65 -0
  57. package/dist/convert.js.map +1 -0
  58. package/dist/currency.d.ts +22 -0
  59. package/dist/currency.d.ts.map +1 -0
  60. package/dist/currency.js +38 -0
  61. package/dist/currency.js.map +1 -0
  62. package/dist/decimal.d.ts +52 -0
  63. package/dist/decimal.d.ts.map +1 -0
  64. package/dist/decimal.js +251 -0
  65. package/dist/decimal.js.map +1 -0
  66. package/dist/drizzle/mysql.d.ts +105 -0
  67. package/dist/drizzle/mysql.d.ts.map +1 -0
  68. package/dist/drizzle/mysql.js +60 -0
  69. package/dist/drizzle/mysql.js.map +1 -0
  70. package/dist/drizzle/pg.d.ts +103 -0
  71. package/dist/drizzle/pg.d.ts.map +1 -0
  72. package/dist/drizzle/pg.js +60 -0
  73. package/dist/drizzle/pg.js.map +1 -0
  74. package/dist/drizzle/sqlite.d.ts +102 -0
  75. package/dist/drizzle/sqlite.d.ts.map +1 -0
  76. package/dist/drizzle/sqlite.js +59 -0
  77. package/dist/drizzle/sqlite.js.map +1 -0
  78. package/dist/ecb.d.ts +52 -0
  79. package/dist/ecb.d.ts.map +1 -0
  80. package/dist/ecb.js +285 -0
  81. package/dist/ecb.js.map +1 -0
  82. package/dist/exact.d.ts +62 -0
  83. package/dist/exact.d.ts.map +1 -0
  84. package/dist/exact.js +147 -0
  85. package/dist/exact.js.map +1 -0
  86. package/dist/fed.d.ts +35 -0
  87. package/dist/fed.d.ts.map +1 -0
  88. package/dist/fed.js +134 -0
  89. package/dist/fed.js.map +1 -0
  90. package/dist/fetch.d.ts +103 -0
  91. package/dist/fetch.d.ts.map +1 -0
  92. package/dist/fetch.js +222 -0
  93. package/dist/fetch.js.map +1 -0
  94. package/dist/fixed.d.ts +121 -0
  95. package/dist/fixed.d.ts.map +1 -0
  96. package/dist/fixed.js +420 -0
  97. package/dist/fixed.js.map +1 -0
  98. package/dist/fn.d.ts +34 -0
  99. package/dist/fn.d.ts.map +1 -0
  100. package/dist/fn.js +37 -0
  101. package/dist/fn.js.map +1 -0
  102. package/dist/format.d.ts +13 -0
  103. package/dist/format.d.ts.map +1 -0
  104. package/dist/format.js +90 -0
  105. package/dist/format.js.map +1 -0
  106. package/dist/generated/adyen.d.ts +3 -0
  107. package/dist/generated/adyen.d.ts.map +1 -0
  108. package/dist/generated/adyen.js +144 -0
  109. package/dist/generated/adyen.js.map +1 -0
  110. package/dist/generated/braintree.d.ts +3 -0
  111. package/dist/generated/braintree.d.ts.map +1 -0
  112. package/dist/generated/braintree.js +140 -0
  113. package/dist/generated/braintree.js.map +1 -0
  114. package/dist/generated/cash.d.ts +14 -0
  115. package/dist/generated/cash.d.ts.map +1 -0
  116. package/dist/generated/cash.js +465 -0
  117. package/dist/generated/cash.js.map +1 -0
  118. package/dist/generated/checkout.d.ts +3 -0
  119. package/dist/generated/checkout.d.ts.map +1 -0
  120. package/dist/generated/checkout.js +151 -0
  121. package/dist/generated/checkout.js.map +1 -0
  122. package/dist/generated/historic.d.ts +337 -0
  123. package/dist/generated/historic.d.ts.map +1 -0
  124. package/dist/generated/historic.js +66 -0
  125. package/dist/generated/historic.js.map +1 -0
  126. package/dist/generated/iso4217.d.ts +174 -0
  127. package/dist/generated/iso4217.d.ts.map +1 -0
  128. package/dist/generated/iso4217.js +175 -0
  129. package/dist/generated/iso4217.js.map +1 -0
  130. package/dist/generated/kernel.d.ts +17 -0
  131. package/dist/generated/kernel.d.ts.map +1 -0
  132. package/dist/generated/kernel.js +208 -0
  133. package/dist/generated/kernel.js.map +1 -0
  134. package/dist/generated/klarna.d.ts +3 -0
  135. package/dist/generated/klarna.d.ts.map +1 -0
  136. package/dist/generated/klarna.js +21 -0
  137. package/dist/generated/klarna.js.map +1 -0
  138. package/dist/generated/paypal.d.ts +3 -0
  139. package/dist/generated/paypal.d.ts.map +1 -0
  140. package/dist/generated/paypal.js +31 -0
  141. package/dist/generated/paypal.js.map +1 -0
  142. package/dist/generated/stripe.d.ts +8 -0
  143. package/dist/generated/stripe.d.ts.map +1 -0
  144. package/dist/generated/stripe.js +150 -0
  145. package/dist/generated/stripe.js.map +1 -0
  146. package/dist/historic.d.ts +40 -0
  147. package/dist/historic.d.ts.map +1 -0
  148. package/dist/historic.js +43 -0
  149. package/dist/historic.js.map +1 -0
  150. package/dist/history.d.ts +96 -0
  151. package/dist/history.d.ts.map +1 -0
  152. package/dist/history.js +213 -0
  153. package/dist/history.js.map +1 -0
  154. package/dist/hmrc.d.ts +28 -0
  155. package/dist/hmrc.d.ts.map +1 -0
  156. package/dist/hmrc.js +108 -0
  157. package/dist/hmrc.js.map +1 -0
  158. package/dist/index.d.ts +11 -0
  159. package/dist/index.d.ts.map +1 -0
  160. package/dist/index.js +11 -0
  161. package/dist/index.js.map +1 -0
  162. package/dist/klarna.d.ts +31 -0
  163. package/dist/klarna.d.ts.map +1 -0
  164. package/dist/klarna.js +38 -0
  165. package/dist/klarna.js.map +1 -0
  166. package/dist/kysely.d.ts +120 -0
  167. package/dist/kysely.d.ts.map +1 -0
  168. package/dist/kysely.js +309 -0
  169. package/dist/kysely.js.map +1 -0
  170. package/dist/money.d.ts +302 -0
  171. package/dist/money.d.ts.map +1 -0
  172. package/dist/money.js +703 -0
  173. package/dist/money.js.map +1 -0
  174. package/dist/parse.d.ts +55 -0
  175. package/dist/parse.d.ts.map +1 -0
  176. package/dist/parse.js +419 -0
  177. package/dist/parse.js.map +1 -0
  178. package/dist/paypal.d.ts +41 -0
  179. package/dist/paypal.d.ts.map +1 -0
  180. package/dist/paypal.js +58 -0
  181. package/dist/paypal.js.map +1 -0
  182. package/dist/pg.d.ts +100 -0
  183. package/dist/pg.d.ts.map +1 -0
  184. package/dist/pg.js +343 -0
  185. package/dist/pg.js.map +1 -0
  186. package/dist/plugins/adyen.d.ts +15 -0
  187. package/dist/plugins/adyen.d.ts.map +1 -0
  188. package/dist/plugins/adyen.js +10 -0
  189. package/dist/plugins/adyen.js.map +1 -0
  190. package/dist/plugins/all.d.ts +29 -0
  191. package/dist/plugins/all.d.ts.map +1 -0
  192. package/dist/plugins/all.js +30 -0
  193. package/dist/plugins/all.js.map +1 -0
  194. package/dist/plugins/allocate.d.ts +20 -0
  195. package/dist/plugins/allocate.d.ts.map +1 -0
  196. package/dist/plugins/allocate.js +26 -0
  197. package/dist/plugins/allocate.js.map +1 -0
  198. package/dist/plugins/braintree.d.ts +12 -0
  199. package/dist/plugins/braintree.d.ts.map +1 -0
  200. package/dist/plugins/braintree.js +12 -0
  201. package/dist/plugins/braintree.js.map +1 -0
  202. package/dist/plugins/cash.d.ts +19 -0
  203. package/dist/plugins/cash.d.ts.map +1 -0
  204. package/dist/plugins/cash.js +16 -0
  205. package/dist/plugins/cash.js.map +1 -0
  206. package/dist/plugins/checkout.d.ts +21 -0
  207. package/dist/plugins/checkout.d.ts.map +1 -0
  208. package/dist/plugins/checkout.js +16 -0
  209. package/dist/plugins/checkout.js.map +1 -0
  210. package/dist/plugins/convert.d.ts +19 -0
  211. package/dist/plugins/convert.d.ts.map +1 -0
  212. package/dist/plugins/convert.js +13 -0
  213. package/dist/plugins/convert.js.map +1 -0
  214. package/dist/plugins/exact.d.ts +15 -0
  215. package/dist/plugins/exact.d.ts.map +1 -0
  216. package/dist/plugins/exact.js +13 -0
  217. package/dist/plugins/exact.js.map +1 -0
  218. package/dist/plugins/fixed.d.ts +17 -0
  219. package/dist/plugins/fixed.d.ts.map +1 -0
  220. package/dist/plugins/fixed.js +13 -0
  221. package/dist/plugins/fixed.js.map +1 -0
  222. package/dist/plugins/format.d.ts +9 -0
  223. package/dist/plugins/format.d.ts.map +1 -0
  224. package/dist/plugins/format.js +16 -0
  225. package/dist/plugins/format.js.map +1 -0
  226. package/dist/plugins/klarna.d.ts +10 -0
  227. package/dist/plugins/klarna.d.ts.map +1 -0
  228. package/dist/plugins/klarna.js +10 -0
  229. package/dist/plugins/klarna.js.map +1 -0
  230. package/dist/plugins/paypal.d.ts +14 -0
  231. package/dist/plugins/paypal.d.ts.map +1 -0
  232. package/dist/plugins/paypal.js +16 -0
  233. package/dist/plugins/paypal.js.map +1 -0
  234. package/dist/plugins/prisma.d.ts +8 -0
  235. package/dist/plugins/prisma.d.ts.map +1 -0
  236. package/dist/plugins/prisma.js +13 -0
  237. package/dist/plugins/prisma.js.map +1 -0
  238. package/dist/plugins/stripe.d.ts +14 -0
  239. package/dist/plugins/stripe.d.ts.map +1 -0
  240. package/dist/plugins/stripe.js +16 -0
  241. package/dist/plugins/stripe.js.map +1 -0
  242. package/dist/plugins/tax.d.ts +20 -0
  243. package/dist/plugins/tax.d.ts.map +1 -0
  244. package/dist/plugins/tax.js +18 -0
  245. package/dist/plugins/tax.js.map +1 -0
  246. package/dist/policy.d.ts +34 -0
  247. package/dist/policy.d.ts.map +1 -0
  248. package/dist/policy.js +90 -0
  249. package/dist/policy.js.map +1 -0
  250. package/dist/prisma.d.ts +77 -0
  251. package/dist/prisma.d.ts.map +1 -0
  252. package/dist/prisma.js +76 -0
  253. package/dist/prisma.js.map +1 -0
  254. package/dist/processor.d.ts +28 -0
  255. package/dist/processor.d.ts.map +1 -0
  256. package/dist/processor.js +118 -0
  257. package/dist/processor.js.map +1 -0
  258. package/dist/provider.d.ts +103 -0
  259. package/dist/provider.d.ts.map +1 -0
  260. package/dist/provider.js +280 -0
  261. package/dist/provider.js.map +1 -0
  262. package/dist/rate-text.d.ts +38 -0
  263. package/dist/rate-text.d.ts.map +1 -0
  264. package/dist/rate-text.js +143 -0
  265. package/dist/rate-text.js.map +1 -0
  266. package/dist/rate.d.ts +175 -0
  267. package/dist/rate.d.ts.map +1 -0
  268. package/dist/rate.js +371 -0
  269. package/dist/rate.js.map +1 -0
  270. package/dist/rounding-error.d.ts +9 -0
  271. package/dist/rounding-error.d.ts.map +1 -0
  272. package/dist/rounding-error.js +9 -0
  273. package/dist/rounding-error.js.map +1 -0
  274. package/dist/rounding.d.ts +50 -0
  275. package/dist/rounding.d.ts.map +1 -0
  276. package/dist/rounding.js +87 -0
  277. package/dist/rounding.js.map +1 -0
  278. package/dist/schema.d.ts +43 -0
  279. package/dist/schema.d.ts.map +1 -0
  280. package/dist/schema.js +77 -0
  281. package/dist/schema.js.map +1 -0
  282. package/dist/sql.d.ts +54 -0
  283. package/dist/sql.d.ts.map +1 -0
  284. package/dist/sql.js +131 -0
  285. package/dist/sql.js.map +1 -0
  286. package/dist/stripe-fx.d.ts +22 -0
  287. package/dist/stripe-fx.d.ts.map +1 -0
  288. package/dist/stripe-fx.js +30 -0
  289. package/dist/stripe-fx.js.map +1 -0
  290. package/dist/stripe.d.ts +36 -0
  291. package/dist/stripe.d.ts.map +1 -0
  292. package/dist/stripe.js +39 -0
  293. package/dist/stripe.js.map +1 -0
  294. package/dist/tax.d.ts +33 -0
  295. package/dist/tax.d.ts.map +1 -0
  296. package/dist/tax.js +55 -0
  297. package/dist/tax.js.map +1 -0
  298. package/dist/testing/arbitraries.d.ts +43 -0
  299. package/dist/testing/arbitraries.d.ts.map +1 -0
  300. package/dist/testing/arbitraries.js +98 -0
  301. package/dist/testing/arbitraries.js.map +1 -0
  302. package/dist/testing/index.d.ts +67 -0
  303. package/dist/testing/index.d.ts.map +1 -0
  304. package/dist/testing/index.js +159 -0
  305. package/dist/testing/index.js.map +1 -0
  306. package/dist/testing/jest.d.ts +2 -0
  307. package/dist/testing/jest.d.ts.map +1 -0
  308. package/dist/testing/jest.js +15 -0
  309. package/dist/testing/jest.js.map +1 -0
  310. package/dist/testing/vitest.d.ts +7 -0
  311. package/dist/testing/vitest.d.ts.map +1 -0
  312. package/dist/testing/vitest.js +12 -0
  313. package/dist/testing/vitest.js.map +1 -0
  314. package/dist/valibot.d.ts +33 -0
  315. package/dist/valibot.d.ts.map +1 -0
  316. package/dist/valibot.js +61 -0
  317. package/dist/valibot.js.map +1 -0
  318. package/dist/zod.d.ts +36 -0
  319. package/dist/zod.d.ts.map +1 -0
  320. package/dist/zod.js +58 -0
  321. package/dist/zod.js.map +1 -0
  322. package/package.json +280 -5
  323. package/src/adyen-fx.ts +175 -0
  324. package/src/adyen.ts +46 -0
  325. package/src/allocate.ts +393 -0
  326. package/src/bag.ts +170 -0
  327. package/src/boc.ts +136 -0
  328. package/src/boe.ts +131 -0
  329. package/src/braintree.ts +71 -0
  330. package/src/cash.ts +183 -0
  331. package/src/checkout.ts +77 -0
  332. package/src/convert.ts +177 -0
  333. package/src/currency.ts +61 -0
  334. package/src/decimal.ts +283 -0
  335. package/src/drizzle/mysql.ts +78 -0
  336. package/src/drizzle/pg.ts +78 -0
  337. package/src/drizzle/sqlite.ts +70 -0
  338. package/src/ecb.ts +328 -0
  339. package/src/exact.ts +182 -0
  340. package/src/fed.ts +146 -0
  341. package/src/fetch.ts +306 -0
  342. package/src/fixed.ts +558 -0
  343. package/src/fn.ts +94 -0
  344. package/src/format.ts +106 -0
  345. package/src/generated/adyen.ts +144 -0
  346. package/src/generated/braintree.ts +140 -0
  347. package/src/generated/cash.ts +478 -0
  348. package/src/generated/checkout.ts +151 -0
  349. package/src/generated/historic.ts +67 -0
  350. package/src/generated/iso4217.ts +179 -0
  351. package/src/generated/kernel.ts +230 -0
  352. package/src/generated/klarna.ts +21 -0
  353. package/src/generated/paypal.ts +31 -0
  354. package/src/generated/stripe.ts +150 -0
  355. package/src/historic.ts +77 -0
  356. package/src/history.ts +333 -0
  357. package/src/hmrc.ts +125 -0
  358. package/src/index.ts +41 -0
  359. package/src/klarna.ts +54 -0
  360. package/src/kysely.ts +588 -0
  361. package/src/money.ts +979 -0
  362. package/src/parse.ts +511 -0
  363. package/src/paypal.ts +93 -0
  364. package/src/pg.ts +410 -0
  365. package/src/plugins/adyen.ts +25 -0
  366. package/src/plugins/all.ts +57 -0
  367. package/src/plugins/allocate.ts +53 -0
  368. package/src/plugins/braintree.ts +23 -0
  369. package/src/plugins/cash.ts +33 -0
  370. package/src/plugins/checkout.ts +32 -0
  371. package/src/plugins/convert.ts +49 -0
  372. package/src/plugins/exact.ts +23 -0
  373. package/src/plugins/fixed.ts +28 -0
  374. package/src/plugins/format.ts +28 -0
  375. package/src/plugins/klarna.ts +21 -0
  376. package/src/plugins/paypal.ts +29 -0
  377. package/src/plugins/prisma.ts +24 -0
  378. package/src/plugins/stripe.ts +29 -0
  379. package/src/plugins/tax.ts +40 -0
  380. package/src/policy.ts +124 -0
  381. package/src/prisma.ts +199 -0
  382. package/src/processor.ts +181 -0
  383. package/src/provider.ts +389 -0
  384. package/src/rate-text.ts +151 -0
  385. package/src/rate.ts +546 -0
  386. package/src/rounding-error.ts +8 -0
  387. package/src/rounding.ts +122 -0
  388. package/src/schema.ts +119 -0
  389. package/src/sql.ts +178 -0
  390. package/src/stripe-fx.ts +49 -0
  391. package/src/stripe.ts +69 -0
  392. package/src/tax.ts +102 -0
  393. package/src/testing/arbitraries.ts +134 -0
  394. package/src/testing/index.ts +247 -0
  395. package/src/testing/jest.ts +18 -0
  396. package/src/testing/vitest.ts +18 -0
  397. package/src/valibot.ts +87 -0
  398. package/src/zod.ts +78 -0
@@ -0,0 +1,20 @@
1
+ /**
2
+ * `@ducatjs/money/allocate`: allocation, splitting and tranches. Importing this module adds the
3
+ * methods below to every Money; the free functions are exported too (and from `@ducatjs/money/fn`,
4
+ * which changes no prototypes).
5
+ */
6
+ import { type AllocateOptions, type InstalmentOptions, type Tranche, type Weight } from '../allocate.js';
7
+ export * from '../allocate.js';
8
+ declare module '../money.js' {
9
+ interface Money<C extends string> {
10
+ /** Splits by weights; the parts always sum to this. */
11
+ allocate(weights: readonly Weight[], options?: AllocateOptions): Money<C>[];
12
+ /** Splits into `count` near-equal parts that sum to this. */
13
+ split(count: number, options?: AllocateOptions): Money<C>[];
14
+ instalments(count: number, options?: InstalmentOptions<C>): Money<C>[];
15
+ schedule(tranches: readonly Tranche<C>[]): Money<C>[];
16
+ /** Tranches of at most `max`: 1000 by 300 gives 300, 300, 300, 100. */
17
+ chunk(max: Money<C>): Money<C>[];
18
+ }
19
+ }
20
+ //# sourceMappingURL=allocate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allocate.d.ts","sourceRoot":"","sources":["../../src/plugins/allocate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAML,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,MAAM,EACZ,MAAM,gBAAgB,CAAC;AAGxB,cAAc,gBAAgB,CAAC;AAE/B,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM;QAC9B,uDAAuD;QACvD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,6DAA6D;QAC7D,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,uEAAuE;QACvE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;KAClC;CACF"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * `@ducatjs/money/allocate`: allocation, splitting and tranches. Importing this module adds the
3
+ * methods below to every Money; the free functions are exported too (and from `@ducatjs/money/fn`,
4
+ * which changes no prototypes).
5
+ */
6
+ import { allocate, chunk, instalments, schedule, split, } from '../allocate.js';
7
+ import { extendMoney } from '../money.js';
8
+ export * from '../allocate.js';
9
+ extendMoney({
10
+ allocate(weights, options) {
11
+ return allocate(this, weights, options);
12
+ },
13
+ split(count, options) {
14
+ return split(this, count, options);
15
+ },
16
+ instalments(count, options) {
17
+ return instalments(this, count, options);
18
+ },
19
+ schedule(tranches) {
20
+ return schedule(this, tranches);
21
+ },
22
+ chunk(max) {
23
+ return chunk(this, max);
24
+ },
25
+ }, { owner: '@ducatjs/money/allocate' });
26
+ //# sourceMappingURL=allocate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allocate.js","sourceRoot":"","sources":["../../src/plugins/allocate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,QAAQ,EACR,KAAK,EACL,WAAW,EACX,QAAQ,EACR,KAAK,GAKN,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AAEtD,cAAc,gBAAgB,CAAC;AAe/B,WAAW,CACT;IACE,QAAQ,CAAc,OAA0B,EAAE,OAAyB;QACzE,OAAO,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,KAAK,CAAc,KAAa,EAAE,OAAyB;QACzD,OAAO,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,WAAW,CAAc,KAAa,EAAE,OAAmC;QACzE,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,QAAQ,CAAc,QAAoC;QACxD,OAAO,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IACD,KAAK,CAAc,GAAU;QAC3B,OAAO,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;CACF,EACD,EAAE,KAAK,EAAE,yBAAyB,EAAE,CACrC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * `@ducatjs/money/braintree`: Braintree's amount view. Importing this module adds `toBraintree`.
3
+ */
4
+ import { type BraintreeAmountOptions } from '../braintree.js';
5
+ export * from '../braintree.js';
6
+ declare module '../money.js' {
7
+ interface Money<C extends string> {
8
+ /** The exact `amount` string for Braintree: `money('10', 'USD').toBraintree()` is '10.00'. */
9
+ toBraintree(options?: BraintreeAmountOptions): string;
10
+ }
11
+ }
12
+ //# sourceMappingURL=braintree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"braintree.d.ts","sourceRoot":"","sources":["../../src/plugins/braintree.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAe,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAG3E,cAAc,iBAAiB,CAAC;AAEhC,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM;QAC9B,8FAA8F;QAC9F,WAAW,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,MAAM,CAAC;KACvD;CACF"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * `@ducatjs/money/braintree`: Braintree's amount view. Importing this module adds `toBraintree`.
3
+ */
4
+ import { toBraintree } from '../braintree.js';
5
+ import { extendMoney } from '../money.js';
6
+ export * from '../braintree.js';
7
+ extendMoney({
8
+ toBraintree(options) {
9
+ return toBraintree(this, options);
10
+ },
11
+ }, { owner: '@ducatjs/money/braintree' });
12
+ //# sourceMappingURL=braintree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"braintree.js","sourceRoot":"","sources":["../../src/plugins/braintree.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAA+B,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AAEtD,cAAc,iBAAiB,CAAC;AAShC,WAAW,CACT;IACE,WAAW,CAAc,OAAgC;QACvD,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;CACF,EACD,EAAE,KAAK,EAAE,0BAA0B,EAAE,CACtC,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * `@ducatjs/money/cash`: cash rounding (cash tenders only; card payments are never rounded) and
3
+ * rounding to an increment. Importing this module adds the methods below.
4
+ */
5
+ import { type CashRoundOptions } from '../cash.js';
6
+ import type { RoundingMode } from '../rounding.js';
7
+ export * from '../cash.js';
8
+ declare module '../money.js' {
9
+ interface Money<C extends string> {
10
+ /**
11
+ * Rounds a cash total to the local cash step (CHF 0.05, SEK 1, ...); unchanged when no rule
12
+ * applies.
13
+ */
14
+ cashRound(options?: CashRoundOptions): Money<C>;
15
+ /** Rounds to a multiple of `increment`, e.g. CHF 10.03 to CHF 0.05 gives CHF 10.05. */
16
+ roundToIncrement(increment: Money<C>, rounding?: RoundingMode): Money<C>;
17
+ }
18
+ }
19
+ //# sourceMappingURL=cash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cash.d.ts","sourceRoot":"","sources":["../../src/plugins/cash.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAA+B,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,cAAc,YAAY,CAAC;AAE3B,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM;QAC9B;;;WAGG;QACH,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAChD,uFAAuF;QACvF,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;KAC1E;CACF"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * `@ducatjs/money/cash`: cash rounding (cash tenders only; card payments are never rounded) and
3
+ * rounding to an increment. Importing this module adds the methods below.
4
+ */
5
+ import { cashRound, roundToIncrement } from '../cash.js';
6
+ import { extendMoney } from '../money.js';
7
+ export * from '../cash.js';
8
+ extendMoney({
9
+ cashRound(options) {
10
+ return cashRound(this, options);
11
+ },
12
+ roundToIncrement(increment, rounding) {
13
+ return roundToIncrement(this, increment, rounding);
14
+ },
15
+ }, { owner: '@ducatjs/money/cash' });
16
+ //# sourceMappingURL=cash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cash.js","sourceRoot":"","sources":["../../src/plugins/cash.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAyB,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AAGtD,cAAc,YAAY,CAAC;AAc3B,WAAW,CACT;IACE,SAAS,CAAc,OAA0B;QAC/C,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,gBAAgB,CAAc,SAAgB,EAAE,QAAuB;QACrE,OAAO,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;CACF,EACD,EAAE,KAAK,EAAE,qBAAqB,EAAE,CACjC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * `@ducatjs/money/checkout`: Checkout.com's amount view. Importing this module adds `toCheckout`
3
+ * and `toCheckoutAmount`.
4
+ */
5
+ import { type CheckoutAmountOptions } from '../checkout.js';
6
+ export * from '../checkout.js';
7
+ declare module '../money.js' {
8
+ interface Money<C extends string> {
9
+ /**
10
+ * The integer `amount` to send to Checkout.com: `money('5000', 'CLP').toCheckoutAmount()` is
11
+ * 500000.
12
+ */
13
+ toCheckoutAmount(options?: CheckoutAmountOptions): number;
14
+ /** `{ amount, currency }` for a Checkout.com payment request. */
15
+ toCheckout(options?: CheckoutAmountOptions): {
16
+ amount: number;
17
+ currency: string;
18
+ };
19
+ }
20
+ }
21
+ //# sourceMappingURL=checkout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/plugins/checkout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAgC,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAG1F,cAAc,gBAAgB,CAAC;AAE/B,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM;QAC9B;;;WAGG;QACH,gBAAgB,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAAC;QAC1D,iEAAiE;QACjE,UAAU,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC;KACnF;CACF"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * `@ducatjs/money/checkout`: Checkout.com's amount view. Importing this module adds `toCheckout`
3
+ * and `toCheckoutAmount`.
4
+ */
5
+ import { toCheckout, toCheckoutAmount } from '../checkout.js';
6
+ import { extendMoney } from '../money.js';
7
+ export * from '../checkout.js';
8
+ extendMoney({
9
+ toCheckoutAmount(options) {
10
+ return toCheckoutAmount(this, options);
11
+ },
12
+ toCheckout(options) {
13
+ return toCheckout(this, options);
14
+ },
15
+ }, { owner: '@ducatjs/money/checkout' });
16
+ //# sourceMappingURL=checkout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../src/plugins/checkout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAA8B,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AAEtD,cAAc,gBAAgB,CAAC;AAc/B,WAAW,CACT;IACE,gBAAgB,CAAc,OAA+B;QAC3D,OAAO,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IACD,UAAU,CAAc,OAA+B;QACrD,OAAO,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;CACF,EACD,EAAE,KAAK,EAAE,yBAAyB,EAAE,CACrC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { Factor } from '../decimal.js';
2
+ import type { ProviderConvertOptions } from '../convert.js';
3
+ import type { RateProvider } from '../provider.js';
4
+ import type { ConvertOptions, Rate } from '../rate.js';
5
+ export * from '../convert.js';
6
+ declare module '../money.js' {
7
+ interface Money<C extends string> {
8
+ /** Converts at a Rate, rounding once: `eur.convert(eurUsd, 'halfEven')`. */
9
+ convert<To extends string>(rate: Rate<NoInfer<C>, To>, rounding?: RoundingInput, options?: ConvertOptions): Money<To>;
10
+ /** Converts at an exact decimal-string rate: `eur.convert('USD', '1.0832', 'halfEven')`. */
11
+ convert<To extends CurrencyInput>(to: To, rate: Factor, rounding?: RoundingInput, options?: ConvertOptions): Money<To>;
12
+ /**
13
+ * Converts through a provider, rounding once: `usd.convert('JPY', via('EUR', ecb),
14
+ * 'halfEven')`.
15
+ */
16
+ convert<To extends CurrencyInput>(to: To, provider: RateProvider, rounding?: RoundingInput, options?: ProviderConvertOptions): Money<To>;
17
+ }
18
+ }
19
+ //# sourceMappingURL=convert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/plugins/convert.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvD,cAAc,eAAe,CAAC;AAE9B,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM;QAC9B,4EAA4E;QAC5E,OAAO,CAAC,EAAE,SAAS,MAAM,EACvB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAC1B,QAAQ,CAAC,EAAE,aAAa,EACxB,OAAO,CAAC,EAAE,cAAc,GACvB,KAAK,CAAC,EAAE,CAAC,CAAC;QACb,4FAA4F;QAC5F,OAAO,CAAC,EAAE,SAAS,aAAa,EAC9B,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,aAAa,EACxB,OAAO,CAAC,EAAE,cAAc,GACvB,KAAK,CAAC,EAAE,CAAC,CAAC;QACb;;;WAGG;QACH,OAAO,CAAC,EAAE,SAAS,aAAa,EAC9B,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,YAAY,EACtB,QAAQ,CAAC,EAAE,aAAa,EACxB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,KAAK,CAAC,EAAE,CAAC,CAAC;KACd;CACF"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * `@ducatjs/money/convert`: currency conversion at exact rates. Importing this module adds
3
+ * `Money#convert`.
4
+ */
5
+ import { convert } from '../convert.js';
6
+ import { extendMoney } from '../money.js';
7
+ export * from '../convert.js';
8
+ extendMoney({
9
+ convert(...args) {
10
+ return convert(this, ...args);
11
+ },
12
+ }, { owner: '@ducatjs/money/convert' });
13
+ //# sourceMappingURL=convert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/plugins/convert.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,WAAW,EAAsD,MAAM,aAAa,CAAC;AAK9F,cAAc,eAAe,CAAC;AA8B9B,WAAW,CACT;IACE,OAAO,CAAc,GAAG,IAAqC;QAC3D,OAAQ,OAAuD,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IACjF,CAAC;CACF,EACD,EAAE,KAAK,EAAE,wBAAwB,EAAE,CACpC,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `@ducatjs/money/exact`: exact rational amounts that round once. Importing this module adds
3
+ * `Money#exact`.
4
+ */
5
+ import { type ExactMoney } from '../exact.js';
6
+ export * from '../exact.js';
7
+ declare module '../money.js' {
8
+ interface Money<C extends string> {
9
+ /**
10
+ * The exact value, for chained arithmetic that rounds once: `price.exact().divide(3).round()`.
11
+ */
12
+ exact(): ExactMoney<C>;
13
+ }
14
+ }
15
+ //# sourceMappingURL=exact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exact.d.ts","sourceRoot":"","sources":["../../src/plugins/exact.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAGrD,cAAc,aAAa,CAAC;AAE5B,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM;QAC9B;;WAEG;QACH,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;KACxB;CACF"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * `@ducatjs/money/exact`: exact rational amounts that round once. Importing this module adds
3
+ * `Money#exact`.
4
+ */
5
+ import { exact } from '../exact.js';
6
+ import { extendMoney } from '../money.js';
7
+ export * from '../exact.js';
8
+ extendMoney({
9
+ exact() {
10
+ return exact(this);
11
+ },
12
+ });
13
+ //# sourceMappingURL=exact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exact.js","sourceRoot":"","sources":["../../src/plugins/exact.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,EAAmB,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AAEtD,cAAc,aAAa,CAAC;AAW5B,WAAW,CAAC;IACV,KAAK;QACH,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * `@ducatjs/money/fixed`: exact fixed-point decimals without a currency, on the same engine as
3
+ * Money. Importing this module adds `Money#toFixedPoint()`.
4
+ */
5
+ import { type Fixed } from '../fixed.js';
6
+ export * from '../fixed.js';
7
+ declare module '../money.js' {
8
+ interface Money<C extends string> {
9
+ /**
10
+ * The exact Fixed of this amount, at its scale: `money('12.34', 'EUR').toFixedPoint()` is
11
+ * 12.34. Not `toFixed`, which Number, decimal.js and big.js all use for `toFixed(places):
12
+ * string`.
13
+ */
14
+ toFixedPoint(): Fixed;
15
+ }
16
+ }
17
+ //# sourceMappingURL=fixed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixed.d.ts","sourceRoot":"","sources":["../../src/plugins/fixed.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAgB,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAGvD,cAAc,aAAa,CAAC;AAE5B,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM;QAC9B;;;;WAIG;QACH,YAAY,IAAI,KAAK,CAAC;KACvB;CACF"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * `@ducatjs/money/fixed`: exact fixed-point decimals without a currency, on the same engine as
3
+ * Money. Importing this module adds `Money#toFixedPoint()`.
4
+ */
5
+ import { moneyToFixed } from '../fixed.js';
6
+ import { extendMoney } from '../money.js';
7
+ export * from '../fixed.js';
8
+ extendMoney({
9
+ toFixedPoint() {
10
+ return moneyToFixed(this);
11
+ },
12
+ }, { owner: '@ducatjs/money/fixed' });
13
+ //# sourceMappingURL=fixed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixed.js","sourceRoot":"","sources":["../../src/plugins/fixed.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAc,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AAEtD,cAAc,aAAa,CAAC;AAa5B,WAAW,CACT;IACE,YAAY;QACV,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,EACD,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAClC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from '../format.js';
2
+ declare module '../money.js' {
3
+ interface Money<C extends string> {
4
+ /** Locale formatting via Intl: `price.format('de-DE')` gives "19,99 €" */
5
+ format(locale?: string, options?: Intl.NumberFormatOptions): string;
6
+ formatToParts(locale?: string, options?: Intl.NumberFormatOptions): Intl.NumberFormatPart[];
7
+ }
8
+ }
9
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/plugins/format.ts"],"names":[],"mappings":"AAOA,cAAc,cAAc,CAAC;AAE7B,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM;QAC9B,0EAA0E;QAC1E,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC;QACpE,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC7F;CACF"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * `@ducatjs/money/format`: locale formatting through Intl. Importing this module adds the methods
3
+ * below.
4
+ */
5
+ import { format, formatToParts } from '../format.js';
6
+ import { extendMoney } from '../money.js';
7
+ export * from '../format.js';
8
+ extendMoney({
9
+ format(locale, options) {
10
+ return format(this, locale, options);
11
+ },
12
+ formatToParts(locale, options) {
13
+ return formatToParts(this, locale, options);
14
+ },
15
+ }, { owner: '@ducatjs/money/format' });
16
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/plugins/format.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AAEtD,cAAc,cAAc,CAAC;AAU7B,WAAW,CACT;IACE,MAAM,CAAc,MAAe,EAAE,OAAkC;QACrE,OAAO,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IACD,aAAa,CAAc,MAAe,EAAE,OAAkC;QAC5E,OAAO,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;CACF,EACD,EAAE,KAAK,EAAE,uBAAuB,EAAE,CACnC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /** `@ducatjs/money/klarna`: Klarna's amount view. Importing this module adds `toKlarna`. */
2
+ import { type KlarnaAmountOptions } from '../klarna.js';
3
+ export * from '../klarna.js';
4
+ declare module '../money.js' {
5
+ interface Money<C extends string> {
6
+ /** The integer for any Klarna amount field: `money('25', 'EUR').toKlarna()` is 2500. */
7
+ toKlarna(options?: KlarnaAmountOptions): number;
8
+ }
9
+ }
10
+ //# sourceMappingURL=klarna.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"klarna.d.ts","sourceRoot":"","sources":["../../src/plugins/klarna.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,EAAY,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGlE,cAAc,cAAc,CAAC;AAE7B,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM;QAC9B,wFAAwF;QACxF,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAC;KACjD;CACF"}
@@ -0,0 +1,10 @@
1
+ /** `@ducatjs/money/klarna`: Klarna's amount view. Importing this module adds `toKlarna`. */
2
+ import { toKlarna } from '../klarna.js';
3
+ import { extendMoney } from '../money.js';
4
+ export * from '../klarna.js';
5
+ extendMoney({
6
+ toKlarna(options) {
7
+ return toKlarna(this, options);
8
+ },
9
+ }, { owner: '@ducatjs/money/klarna' });
10
+ //# sourceMappingURL=klarna.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"klarna.js","sourceRoot":"","sources":["../../src/plugins/klarna.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,EAAE,QAAQ,EAA4B,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AAEtD,cAAc,cAAc,CAAC;AAS7B,WAAW,CACT;IACE,QAAQ,CAAc,OAA6B;QACjD,OAAO,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;CACF,EACD,EAAE,KAAK,EAAE,uBAAuB,EAAE,CACnC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type PayPalAmountOptions } from '../paypal.js';
2
+ export * from '../paypal.js';
3
+ declare module '../money.js' {
4
+ interface Money<C extends string> {
5
+ /** The exact `value` string for PayPal: `money('1000', 'HUF').toPayPalValue()` is '1000'. */
6
+ toPayPalValue(options?: PayPalAmountOptions): string;
7
+ /** A PayPal `money` object: `{ currency_code, value }`. */
8
+ toPayPal(options?: PayPalAmountOptions): {
9
+ currency_code: string;
10
+ value: string;
11
+ };
12
+ }
13
+ }
14
+ //# sourceMappingURL=paypal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paypal.d.ts","sourceRoot":"","sources":["../../src/plugins/paypal.ts"],"names":[],"mappings":"AAKA,OAAO,EAA2B,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEjF,cAAc,cAAc,CAAC;AAE7B,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM;QAC9B,6FAA6F;QAC7F,aAAa,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAC;QACrD,2DAA2D;QAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG;YAAE,aAAa,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;KACnF;CACF"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * `@ducatjs/money/paypal`: PayPal's amount view. Importing this module adds `toPayPal` and
3
+ * `toPayPalValue`.
4
+ */
5
+ import { extendMoney } from '../money.js';
6
+ import { toPayPal, toPayPalValue } from '../paypal.js';
7
+ export * from '../paypal.js';
8
+ extendMoney({
9
+ toPayPalValue(options) {
10
+ return toPayPalValue(this, options);
11
+ },
12
+ toPayPal(options) {
13
+ return toPayPal(this, options);
14
+ },
15
+ }, { owner: '@ducatjs/money/paypal' });
16
+ //# sourceMappingURL=paypal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paypal.js","sourceRoot":"","sources":["../../src/plugins/paypal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAA4B,MAAM,cAAc,CAAC;AAEjF,cAAc,cAAc,CAAC;AAW7B,WAAW,CACT;IACE,aAAa,CAAc,OAA6B;QACtD,OAAO,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IACD,QAAQ,CAAc,OAA6B;QACjD,OAAO,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;CACF,EACD,EAAE,KAAK,EAAE,uBAAuB,EAAE,CACnC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export * from '../prisma.js';
2
+ declare module '../money.js' {
3
+ interface Money<C extends string> {
4
+ /** A Decimal for a NUMERIC column: `m.toDecimalValue(Prisma.Decimal)`. */
5
+ toDecimalValue<D>(Decimal: new (value: string) => D): D;
6
+ }
7
+ }
8
+ //# sourceMappingURL=prisma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../src/plugins/prisma.ts"],"names":[],"mappings":"AAOA,cAAc,cAAc,CAAC;AAE7B,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM;QAC9B,0EAA0E;QAC1E,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;KACzD;CACF"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * `@ducatjs/money/prisma`: Prisma and SQL column helpers. Importing this module adds
3
+ * `toDecimalValue`.
4
+ */
5
+ import { extendMoney } from '../money.js';
6
+ import { toDecimalValue } from '../prisma.js';
7
+ export * from '../prisma.js';
8
+ extendMoney({
9
+ toDecimalValue(Decimal) {
10
+ return toDecimalValue(this, Decimal);
11
+ },
12
+ }, { owner: '@ducatjs/money/prisma' });
13
+ //# sourceMappingURL=prisma.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../src/plugins/prisma.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,cAAc,cAAc,CAAC;AAS7B,WAAW,CACT;IACE,cAAc,CAAc,OAAuC;QACjE,OAAO,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;CACF,EACD,EAAE,KAAK,EAAE,uBAAuB,EAAE,CACnC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type StripeAmountOptions } from '../stripe.js';
2
+ export * from '../stripe.js';
3
+ declare module '../money.js' {
4
+ interface Money<C extends string> {
5
+ /** The integer `amount` to send to Stripe: `money('5', 'ISK').toStripeAmount()` is 500. */
6
+ toStripeAmount(options?: StripeAmountOptions): number;
7
+ /** `{ amount, currency }` with Stripe's lowercase currency code, ready for a PaymentIntent. */
8
+ toStripe(options?: StripeAmountOptions): {
9
+ amount: number;
10
+ currency: string;
11
+ };
12
+ }
13
+ }
14
+ //# sourceMappingURL=stripe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe.d.ts","sourceRoot":"","sources":["../../src/plugins/stripe.ts"],"names":[],"mappings":"AAKA,OAAO,EAA4B,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAElF,cAAc,cAAc,CAAC;AAE7B,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM;QAC9B,2FAA2F;QAC3F,cAAc,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAC;QACtD,+FAA+F;QAC/F,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/E;CACF"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * `@ducatjs/money/stripe`: Stripe's minor-unit view. Importing this module adds `toStripe` and
3
+ * `toStripeAmount`.
4
+ */
5
+ import { extendMoney } from '../money.js';
6
+ import { toStripe, toStripeAmount } from '../stripe.js';
7
+ export * from '../stripe.js';
8
+ extendMoney({
9
+ toStripeAmount(options) {
10
+ return toStripeAmount(this, options);
11
+ },
12
+ toStripe(options) {
13
+ return toStripe(this, options);
14
+ },
15
+ }, { owner: '@ducatjs/money/stripe' });
16
+ //# sourceMappingURL=stripe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe.js","sourceRoot":"","sources":["../../src/plugins/stripe.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAA4B,MAAM,cAAc,CAAC;AAElF,cAAc,cAAc,CAAC;AAW7B,WAAW,CACT;IACE,cAAc,CAAc,OAA6B;QACvD,OAAO,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IACD,QAAQ,CAAc,OAA6B;QACjD,OAAO,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;CACF,EACD,EAAE,KAAK,EAAE,uBAAuB,EAAE,CACnC,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * `@ducatjs/money/tax`: percentages, discounts and tax breakdowns. Importing this module adds the
3
+ * methods below.
4
+ */
5
+ import type { Factor } from '../decimal.js';
6
+ import { type TaxBreakdown } from '../tax.js';
7
+ export * from '../tax.js';
8
+ declare module '../money.js' {
9
+ interface Money<C extends string> {
10
+ /** `percent`% of this, e.g. `price.percentage(15, 'halfEven')` */
11
+ percentage(percent: Factor, rounding?: RoundingInput): Money<C>;
12
+ /** this minus `percent`% */
13
+ discount(percent: Factor, rounding?: RoundingInput): Money<C>;
14
+ /** Treats this as net: `{ net, tax, gross }`, net + tax = gross exactly. */
15
+ addTax(percent: Factor, rounding?: RoundingInput): TaxBreakdown<C>;
16
+ /** Treats this as gross: `{ net, tax, gross }`, net + tax = gross exactly. */
17
+ extractTax(percent: Factor, rounding?: RoundingInput): TaxBreakdown<C>;
18
+ }
19
+ }
20
+ //# sourceMappingURL=tax.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tax.d.ts","sourceRoot":"","sources":["../../src/plugins/tax.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAA4C,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAExF,cAAc,WAAW,CAAC;AAE1B,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM;QAC9B,kEAAkE;QAClE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAChE,4BAA4B;QAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9D,4EAA4E;QAC5E,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACnE,8EAA8E;QAC9E,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;KACxE;CACF"}
@@ -0,0 +1,18 @@
1
+ import { extendMoney } from '../money.js';
2
+ import { addTax, discount, extractTax, percentage } from '../tax.js';
3
+ export * from '../tax.js';
4
+ extendMoney({
5
+ percentage(percent, rounding) {
6
+ return percentage(this, percent, rounding);
7
+ },
8
+ discount(percent, rounding) {
9
+ return discount(this, percent, rounding);
10
+ },
11
+ addTax(percent, rounding) {
12
+ return addTax(this, percent, rounding);
13
+ },
14
+ extractTax(percent, rounding) {
15
+ return extractTax(this, percent, rounding);
16
+ },
17
+ }, { owner: '@ducatjs/money/tax' });
18
+ //# sourceMappingURL=tax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tax.js","sourceRoot":"","sources":["../../src/plugins/tax.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAqB,MAAM,WAAW,CAAC;AAExF,cAAc,WAAW,CAAC;AAe1B,WAAW,CACT;IACE,UAAU,CAAc,OAAe,EAAE,QAAwB;QAC/D,OAAO,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IACD,QAAQ,CAAc,OAAe,EAAE,QAAwB;QAC7D,OAAO,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,CAAc,OAAe,EAAE,QAAwB;QAC3D,OAAO,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IACD,UAAU,CAAc,OAAe,EAAE,QAAwB;QAC/D,OAAO,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;CACF,EACD,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAChC,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { type Money, type RoundingPolicy } from './money.js';
2
+ import { type RoundingMode } from './rounding.js';
3
+ export type { RoundingInput, RoundingPolicy } from './money.js';
4
+ /** Options for `roundingPolicy`. Every field is optional. */
5
+ export interface RoundingPolicyOptions {
6
+ /** Decimal places of the result (default: the currency's ISO exponent). */
7
+ readonly scale?: number;
8
+ /** A positive safe integer count of 10^-scale units to round to (default 1). */
9
+ readonly increment?: number;
10
+ /** The rounding mode (default 'halfExpand'). */
11
+ readonly rounding?: RoundingMode;
12
+ /** Restrict the policy to one currency. */
13
+ readonly currency?: string;
14
+ }
15
+ /**
16
+ * Builds a reusable rounding policy (see `RoundingPolicy`). The options are checked here, once, so
17
+ * applying the policy needs no checks.
18
+ *
19
+ * const unitPrice = roundingPolicy({ scale: 4, rounding: 'halfEven' })
20
+ * const fiveCents = roundingPolicy({ increment: 5 }) // 0.05 in a 2-decimal currency
21
+ */
22
+ export declare function roundingPolicy(options?: RoundingPolicyOptions): RoundingPolicy;
23
+ /**
24
+ * Rounding to the currency's ISO exponent, half up: the policy most amounts should end with.
25
+ * `assertScale(m, isoPolicy)` checks that an amount is already there.
26
+ */
27
+ export declare const isoPolicy: RoundingPolicy;
28
+ /**
29
+ * Throws a RangeError unless `money` is exactly what `policy` produces: at the policy's scale and a
30
+ * multiple of its increment (and in its currency, if it has one). Use it where an amount must
31
+ * already be rounded, such as before booking it or sending it to a processor.
32
+ */
33
+ export declare function assertScale(money: Money, policy: RoundingPolicy): void;
34
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAQA,OAAO,EAML,KAAK,KAAK,EACV,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAE9E,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE,6DAA6D;AAC7D,MAAM,WAAW,qBAAqB;IACpC,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC,2CAA2C;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAKD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,qBAA0B,GAAG,cAAc,CAoDlF;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,cAAiD,CAAC;AAE1E;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAetE"}