@voyant-travel/finance 0.119.5

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 (294) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +192 -0
  3. package/dist/action-ledger-drift.d.ts +29 -0
  4. package/dist/action-ledger-drift.d.ts.map +1 -0
  5. package/dist/action-ledger-drift.js +166 -0
  6. package/dist/booking-tax.d.ts +124 -0
  7. package/dist/booking-tax.d.ts.map +1 -0
  8. package/dist/booking-tax.js +264 -0
  9. package/dist/checkout-routes.d.ts +1154 -0
  10. package/dist/checkout-routes.d.ts.map +1 -0
  11. package/dist/checkout-routes.js +116 -0
  12. package/dist/checkout-service-plan.d.ts +137 -0
  13. package/dist/checkout-service-plan.d.ts.map +1 -0
  14. package/dist/checkout-service-plan.js +119 -0
  15. package/dist/checkout-service.d.ts +9 -0
  16. package/dist/checkout-service.d.ts.map +1 -0
  17. package/dist/checkout-service.js +324 -0
  18. package/dist/checkout-validation.d.ts +1682 -0
  19. package/dist/checkout-validation.d.ts.map +1 -0
  20. package/dist/checkout-validation.js +228 -0
  21. package/dist/document-download.d.ts +3 -0
  22. package/dist/document-download.d.ts.map +1 -0
  23. package/dist/document-download.js +1 -0
  24. package/dist/fx-money.d.ts +17 -0
  25. package/dist/fx-money.d.ts.map +1 -0
  26. package/dist/fx-money.js +194 -0
  27. package/dist/index.d.ts +65 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +108 -0
  30. package/dist/invoice-fx.d.ts +134 -0
  31. package/dist/invoice-fx.d.ts.map +1 -0
  32. package/dist/invoice-fx.js +240 -0
  33. package/dist/invoice-number-errors.d.ts +2 -0
  34. package/dist/invoice-number-errors.d.ts.map +1 -0
  35. package/dist/invoice-number-errors.js +58 -0
  36. package/dist/markets-ref.d.ts +149 -0
  37. package/dist/markets-ref.d.ts.map +1 -0
  38. package/dist/markets-ref.js +17 -0
  39. package/dist/payment-link.d.ts +23 -0
  40. package/dist/payment-link.d.ts.map +1 -0
  41. package/dist/payment-link.js +30 -0
  42. package/dist/payment-policy.d.ts +113 -0
  43. package/dist/payment-policy.d.ts.map +1 -0
  44. package/dist/payment-policy.js +193 -0
  45. package/dist/route-runtime.d.ts +22 -0
  46. package/dist/route-runtime.d.ts.map +1 -0
  47. package/dist/route-runtime.js +18 -0
  48. package/dist/routes-action-ledger.d.ts +181 -0
  49. package/dist/routes-action-ledger.d.ts.map +1 -0
  50. package/dist/routes-action-ledger.js +142 -0
  51. package/dist/routes-booking-billing.d.ts +852 -0
  52. package/dist/routes-booking-billing.d.ts.map +1 -0
  53. package/dist/routes-booking-billing.js +223 -0
  54. package/dist/routes-booking-create.d.ts +3 -0
  55. package/dist/routes-booking-create.d.ts.map +1 -0
  56. package/dist/routes-booking-create.js +194 -0
  57. package/dist/routes-booking-reads.d.ts +46 -0
  58. package/dist/routes-booking-reads.d.ts.map +1 -0
  59. package/dist/routes-booking-reads.js +20 -0
  60. package/dist/routes-documents.d.ts +195 -0
  61. package/dist/routes-documents.d.ts.map +1 -0
  62. package/dist/routes-documents.js +93 -0
  63. package/dist/routes-invoice-core.d.ts +794 -0
  64. package/dist/routes-invoice-core.d.ts.map +1 -0
  65. package/dist/routes-invoice-core.js +238 -0
  66. package/dist/routes-invoice-documents.d.ts +401 -0
  67. package/dist/routes-invoice-documents.d.ts.map +1 -0
  68. package/dist/routes-invoice-documents.js +91 -0
  69. package/dist/routes-invoice-issue.d.ts +384 -0
  70. package/dist/routes-invoice-issue.d.ts.map +1 -0
  71. package/dist/routes-invoice-issue.js +208 -0
  72. package/dist/routes-payment-processing.d.ts +1193 -0
  73. package/dist/routes-payment-processing.d.ts.map +1 -0
  74. package/dist/routes-payment-processing.js +238 -0
  75. package/dist/routes-payments.d.ts +309 -0
  76. package/dist/routes-payments.d.ts.map +1 -0
  77. package/dist/routes-payments.js +94 -0
  78. package/dist/routes-public.d.ts +1948 -0
  79. package/dist/routes-public.d.ts.map +1 -0
  80. package/dist/routes-public.js +275 -0
  81. package/dist/routes-reference-data.d.ts +977 -0
  82. package/dist/routes-reference-data.d.ts.map +1 -0
  83. package/dist/routes-reference-data.js +191 -0
  84. package/dist/routes-reports.d.ts +344 -0
  85. package/dist/routes-reports.d.ts.map +1 -0
  86. package/dist/routes-reports.js +93 -0
  87. package/dist/routes-runtime.d.ts +71 -0
  88. package/dist/routes-runtime.d.ts.map +1 -0
  89. package/dist/routes-runtime.js +59 -0
  90. package/dist/routes-settlement.d.ts +67 -0
  91. package/dist/routes-settlement.d.ts.map +1 -0
  92. package/dist/routes-settlement.js +23 -0
  93. package/dist/routes-shared.d.ts +35 -0
  94. package/dist/routes-shared.d.ts.map +1 -0
  95. package/dist/routes-shared.js +10 -0
  96. package/dist/routes-supplier-invoices.d.ts +778 -0
  97. package/dist/routes-supplier-invoices.d.ts.map +1 -0
  98. package/dist/routes-supplier-invoices.js +159 -0
  99. package/dist/routes-vouchers.d.ts +228 -0
  100. package/dist/routes-vouchers.d.ts.map +1 -0
  101. package/dist/routes-vouchers.js +54 -0
  102. package/dist/routes.d.ts +5577 -0
  103. package/dist/routes.d.ts.map +1 -0
  104. package/dist/routes.js +44 -0
  105. package/dist/schema/booking-billing.d.ts +1006 -0
  106. package/dist/schema/booking-billing.d.ts.map +1 -0
  107. package/dist/schema/booking-billing.js +106 -0
  108. package/dist/schema/enums.d.ts +48 -0
  109. package/dist/schema/enums.d.ts.map +1 -0
  110. package/dist/schema/enums.js +237 -0
  111. package/dist/schema/invoice-documents.d.ts +1245 -0
  112. package/dist/schema/invoice-documents.d.ts.map +1 -0
  113. package/dist/schema/invoice-documents.js +140 -0
  114. package/dist/schema/payment-instruments.d.ts +418 -0
  115. package/dist/schema/payment-instruments.d.ts.map +1 -0
  116. package/dist/schema/payment-instruments.js +45 -0
  117. package/dist/schema/payment-processing.d.ts +563 -0
  118. package/dist/schema/payment-processing.d.ts.map +1 -0
  119. package/dist/schema/payment-processing.js +65 -0
  120. package/dist/schema/payment-sessions.d.ts +728 -0
  121. package/dist/schema/payment-sessions.d.ts.map +1 -0
  122. package/dist/schema/payment-sessions.js +79 -0
  123. package/dist/schema/receivables.d.ts +1474 -0
  124. package/dist/schema/receivables.d.ts.map +1 -0
  125. package/dist/schema/receivables.js +179 -0
  126. package/dist/schema/relations.d.ts +82 -0
  127. package/dist/schema/relations.d.ts.map +1 -0
  128. package/dist/schema/relations.js +144 -0
  129. package/dist/schema/supplier-invoices.d.ts +1619 -0
  130. package/dist/schema/supplier-invoices.d.ts.map +1 -0
  131. package/dist/schema/supplier-invoices.js +228 -0
  132. package/dist/schema/tax.d.ts +712 -0
  133. package/dist/schema/tax.d.ts.map +1 -0
  134. package/dist/schema/tax.js +98 -0
  135. package/dist/schema/vouchers.d.ts +444 -0
  136. package/dist/schema/vouchers.d.ts.map +1 -0
  137. package/dist/schema/vouchers.js +64 -0
  138. package/dist/schema.d.ts +12 -0
  139. package/dist/schema.d.ts.map +1 -0
  140. package/dist/schema.js +11 -0
  141. package/dist/service-accountant-shares.d.ts +106 -0
  142. package/dist/service-accountant-shares.d.ts.map +1 -0
  143. package/dist/service-accountant-shares.js +331 -0
  144. package/dist/service-action-ledger-accounting.d.ts +104 -0
  145. package/dist/service-action-ledger-accounting.d.ts.map +1 -0
  146. package/dist/service-action-ledger-accounting.js +386 -0
  147. package/dist/service-action-ledger-booking-payments.d.ts +48 -0
  148. package/dist/service-action-ledger-booking-payments.d.ts.map +1 -0
  149. package/dist/service-action-ledger-booking-payments.js +178 -0
  150. package/dist/service-action-ledger-bookings.d.ts +44 -0
  151. package/dist/service-action-ledger-bookings.d.ts.map +1 -0
  152. package/dist/service-action-ledger-bookings.js +81 -0
  153. package/dist/service-action-ledger-payment-authorizations.d.ts +48 -0
  154. package/dist/service-action-ledger-payment-authorizations.d.ts.map +1 -0
  155. package/dist/service-action-ledger-payment-authorizations.js +209 -0
  156. package/dist/service-action-ledger-payment-sessions.d.ts +83 -0
  157. package/dist/service-action-ledger-payment-sessions.d.ts.map +1 -0
  158. package/dist/service-action-ledger-payment-sessions.js +294 -0
  159. package/dist/service-action-ledger-supplier-invoices.d.ts +27 -0
  160. package/dist/service-action-ledger-supplier-invoices.d.ts.map +1 -0
  161. package/dist/service-action-ledger-supplier-invoices.js +111 -0
  162. package/dist/service-action-ledger-supplier-payments.d.ts +21 -0
  163. package/dist/service-action-ledger-supplier-payments.d.ts.map +1 -0
  164. package/dist/service-action-ledger-supplier-payments.js +97 -0
  165. package/dist/service-action-ledger.d.ts +7 -0
  166. package/dist/service-action-ledger.d.ts.map +1 -0
  167. package/dist/service-action-ledger.js +6 -0
  168. package/dist/service-aggregates.d.ts +96 -0
  169. package/dist/service-aggregates.d.ts.map +1 -0
  170. package/dist/service-aggregates.js +294 -0
  171. package/dist/service-booking-billing.d.ts +2322 -0
  172. package/dist/service-booking-billing.d.ts.map +1 -0
  173. package/dist/service-booking-billing.js +8 -0
  174. package/dist/service-booking-create.d.ts +410 -0
  175. package/dist/service-booking-create.d.ts.map +1 -0
  176. package/dist/service-booking-create.js +1256 -0
  177. package/dist/service-booking-guarantees.d.ts +725 -0
  178. package/dist/service-booking-guarantees.d.ts.map +1 -0
  179. package/dist/service-booking-guarantees.js +153 -0
  180. package/dist/service-booking-item-billing.d.ts +1062 -0
  181. package/dist/service-booking-item-billing.d.ts.map +1 -0
  182. package/dist/service-booking-item-billing.js +77 -0
  183. package/dist/service-booking-payment-schedules.d.ts +557 -0
  184. package/dist/service-booking-payment-schedules.d.ts.map +1 -0
  185. package/dist/service-booking-payment-schedules.js +372 -0
  186. package/dist/service-bookings-dual-create.d.ts +308 -0
  187. package/dist/service-bookings-dual-create.d.ts.map +1 -0
  188. package/dist/service-bookings-dual-create.js +131 -0
  189. package/dist/service-boundary-sql.d.ts +6 -0
  190. package/dist/service-boundary-sql.d.ts.map +1 -0
  191. package/dist/service-boundary-sql.js +15 -0
  192. package/dist/service-cost-categories.d.ts +26 -0
  193. package/dist/service-cost-categories.d.ts.map +1 -0
  194. package/dist/service-cost-categories.js +76 -0
  195. package/dist/service-documents.d.ts +80 -0
  196. package/dist/service-documents.d.ts.map +1 -0
  197. package/dist/service-documents.js +228 -0
  198. package/dist/service-invoice-artifacts.d.ts +246 -0
  199. package/dist/service-invoice-artifacts.d.ts.map +1 -0
  200. package/dist/service-invoice-artifacts.js +277 -0
  201. package/dist/service-invoice-core.d.ts +405 -0
  202. package/dist/service-invoice-core.d.ts.map +1 -0
  203. package/dist/service-invoice-core.js +290 -0
  204. package/dist/service-invoice-credit-notes.d.ts +973 -0
  205. package/dist/service-invoice-credit-notes.d.ts.map +1 -0
  206. package/dist/service-invoice-credit-notes.js +142 -0
  207. package/dist/service-invoice-from-booking.d.ts +41 -0
  208. package/dist/service-invoice-from-booking.d.ts.map +1 -0
  209. package/dist/service-invoice-from-booking.js +267 -0
  210. package/dist/service-invoice-line-items.d.ts +432 -0
  211. package/dist/service-invoice-line-items.d.ts.map +1 -0
  212. package/dist/service-invoice-line-items.js +102 -0
  213. package/dist/service-invoice-numbering.d.ts +227 -0
  214. package/dist/service-invoice-numbering.d.ts.map +1 -0
  215. package/dist/service-invoice-numbering.js +260 -0
  216. package/dist/service-invoice-payments.d.ts +673 -0
  217. package/dist/service-invoice-payments.d.ts.map +1 -0
  218. package/dist/service-invoice-payments.js +398 -0
  219. package/dist/service-invoices.d.ts +2501 -0
  220. package/dist/service-invoices.d.ts.map +1 -0
  221. package/dist/service-invoices.js +12 -0
  222. package/dist/service-issue.d.ts +207 -0
  223. package/dist/service-issue.d.ts.map +1 -0
  224. package/dist/service-issue.js +431 -0
  225. package/dist/service-payment-authorizations.d.ts +164 -0
  226. package/dist/service-payment-authorizations.d.ts.map +1 -0
  227. package/dist/service-payment-authorizations.js +227 -0
  228. package/dist/service-payment-instruments.d.ts +116 -0
  229. package/dist/service-payment-instruments.d.ts.map +1 -0
  230. package/dist/service-payment-instruments.js +99 -0
  231. package/dist/service-payment-processing.d.ts +676 -0
  232. package/dist/service-payment-processing.d.ts.map +1 -0
  233. package/dist/service-payment-processing.js +10 -0
  234. package/dist/service-payment-session-completion.d.ts +48 -0
  235. package/dist/service-payment-session-completion.d.ts.map +1 -0
  236. package/dist/service-payment-session-completion.js +238 -0
  237. package/dist/service-payment-sessions.d.ts +361 -0
  238. package/dist/service-payment-sessions.d.ts.map +1 -0
  239. package/dist/service-payment-sessions.js +280 -0
  240. package/dist/service-profitability.d.ts +114 -0
  241. package/dist/service-profitability.d.ts.map +1 -0
  242. package/dist/service-profitability.js +794 -0
  243. package/dist/service-public.d.ts +553 -0
  244. package/dist/service-public.d.ts.map +1 -0
  245. package/dist/service-public.js +583 -0
  246. package/dist/service-reference-data.d.ts +272 -0
  247. package/dist/service-reference-data.d.ts.map +1 -0
  248. package/dist/service-reference-data.js +280 -0
  249. package/dist/service-rendition-wait.d.ts +38 -0
  250. package/dist/service-rendition-wait.d.ts.map +1 -0
  251. package/dist/service-rendition-wait.js +67 -0
  252. package/dist/service-reports.d.ts +37 -0
  253. package/dist/service-reports.d.ts.map +1 -0
  254. package/dist/service-reports.js +62 -0
  255. package/dist/service-settlement.d.ts +46 -0
  256. package/dist/service-settlement.d.ts.map +1 -0
  257. package/dist/service-settlement.js +185 -0
  258. package/dist/service-shared.d.ts +541 -0
  259. package/dist/service-shared.d.ts.map +1 -0
  260. package/dist/service-shared.js +764 -0
  261. package/dist/service-supplier-invoices.d.ts +871 -0
  262. package/dist/service-supplier-invoices.d.ts.map +1 -0
  263. package/dist/service-supplier-invoices.js +744 -0
  264. package/dist/service-supplier-payments.d.ts +69 -0
  265. package/dist/service-supplier-payments.d.ts.map +1 -0
  266. package/dist/service-supplier-payments.js +136 -0
  267. package/dist/service-vouchers-migration.d.ts +44 -0
  268. package/dist/service-vouchers-migration.d.ts.map +1 -0
  269. package/dist/service-vouchers-migration.js +148 -0
  270. package/dist/service-vouchers.d.ts +157 -0
  271. package/dist/service-vouchers.d.ts.map +1 -0
  272. package/dist/service-vouchers.js +191 -0
  273. package/dist/service.d.ts +6490 -0
  274. package/dist/service.d.ts.map +1 -0
  275. package/dist/service.js +29 -0
  276. package/dist/validation-billing.d.ts +2 -0
  277. package/dist/validation-billing.d.ts.map +1 -0
  278. package/dist/validation-billing.js +1 -0
  279. package/dist/validation-payments.d.ts +2 -0
  280. package/dist/validation-payments.d.ts.map +1 -0
  281. package/dist/validation-payments.js +1 -0
  282. package/dist/validation-public.d.ts +2 -0
  283. package/dist/validation-public.d.ts.map +1 -0
  284. package/dist/validation-public.js +1 -0
  285. package/dist/validation-shared.d.ts +2 -0
  286. package/dist/validation-shared.d.ts.map +1 -0
  287. package/dist/validation-shared.js +1 -0
  288. package/dist/validation-vouchers.d.ts +2 -0
  289. package/dist/validation-vouchers.d.ts.map +1 -0
  290. package/dist/validation-vouchers.js +1 -0
  291. package/dist/validation.d.ts +2 -0
  292. package/dist/validation.d.ts.map +1 -0
  293. package/dist/validation.js +1 -0
  294. package/package.json +121 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkout-routes.d.ts","sourceRoot":"","sources":["../src/checkout-routes.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAQ1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAGjE,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,8BAA8B,EACnC,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAG3B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAI/B,MAAM,0BAA0B,CAAA;AAEjC,KAAK,GAAG,GAAG;IACT,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,SAAS,EAAE;QACT,SAAS,EAAE,eAAe,CAAA;QAC1B,EAAE,EAAE,kBAAkB,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,sBAAsB,CAAC,EAAE,8BAA8B,GAAG,IAAI,CAAA;IAC9D,6BAA6B,CAAC,EAAE,CAC9B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,8BAA8B,GAAG,IAAI,CAAA;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAA;IACxD,sBAAsB,CAAC,EAAE,CACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAA;IAC3C,mBAAmB,CAAC,EAAE,2BAA2B,GAAG,IAAI,CAAA;IACxD,0BAA0B,CAAC,EAAE,CAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,2BAA2B,GAAG,IAAI,CAAA;IACvC,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,4BAA4B,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAC/F,uBAAuB,CAAC,EAAE,CACxB,EAAE,EAAE,kBAAkB,EACtB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,4BAA4B,KAChC,OAAO,CAAC,uBAAuB,CAAC,CAAA;CACtC,CAAA;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,yBAAyB,EAAE,CAAA;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,sBAAsB,EAAE,8BAA8B,GAAG,IAAI,CAAA;IAC7D,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAA;IACvD,mBAAmB,EAAE,2BAA2B,GAAG,IAAI,CAAA;IACvD,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,uBAAuB,CAAC,EAAE,qBAAqB,CAAC,yBAAyB,CAAC,CAAA;CAC3E,CAAA;AAED,eAAO,MAAM,oCAAoC,uCAAuC,CAAA;AAkHxF,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAKvE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,GAAE,qBAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAgB5E;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,GAAE,qBAA0B,GAClC,oBAAoB,CAYtB;AAED,eAAO,MAAM,2BAA2B,6BAAuB,CAAA;AAC/D,eAAO,MAAM,gCAAgC,kCAA4B,CAAA;AACzE,eAAO,MAAM,gCAAgC,kCAA4B,CAAA;AACzE,eAAO,MAAM,4CAA4C,uCAAuC,CAAA"}
@@ -0,0 +1,116 @@
1
+ import { requireCheckoutCapability, requireGuestBookingAccess, } from "@voyant-travel/bookings/checkout-capability";
2
+ import { idempotencyKey, parseJsonBody, parseOptionalJsonBody, parseQuery, UnauthorizedApiError, } from "@voyant-travel/hono";
3
+ import { Hono } from "hono";
4
+ import { bootstrapCheckoutCollection, initiateCheckoutCollection, previewCheckoutCollection, } from "./checkout-service.js";
5
+ import { bootstrapCheckoutCollectionSchema, checkoutReminderRunListQuerySchema, initiateCheckoutCollectionSchema, previewCheckoutCollectionSchema, } from "./checkout-validation.js";
6
+ export const CHECKOUT_ROUTE_RUNTIME_CONTAINER_KEY = "providers.finance.checkout.runtime";
7
+ function runtimeEnv(c) {
8
+ return c.env;
9
+ }
10
+ function collectionCapability(action) {
11
+ return async (c, next) => {
12
+ const bookingId = c.req.param("bookingId");
13
+ try {
14
+ await requireCheckoutCapability(c, bookingId, action, runtimeEnv(c));
15
+ }
16
+ catch (error) {
17
+ if (!(error instanceof UnauthorizedApiError)) {
18
+ throw error;
19
+ }
20
+ await requireGuestBookingAccess(c, bookingId, action, runtimeEnv(c));
21
+ }
22
+ await next();
23
+ };
24
+ }
25
+ function attachCollectionRoutes(app, options) {
26
+ // Pin the middleware to this module's Env so Hono doesn't intersect the
27
+ // middleware's default VoyantBindings into the handlers' `c.env` type.
28
+ const collectionIdempotency = () => idempotencyKey();
29
+ function getRuntime(bindings, resolveFromContainer) {
30
+ return (resolveFromContainer?.(CHECKOUT_ROUTE_RUNTIME_CONTAINER_KEY) ??
31
+ buildCheckoutRouteRuntime(bindings, options));
32
+ }
33
+ return (app
34
+ // Mostly a read, but `ensureDefaultPaymentPlan` can materialize a
35
+ // default payment plan — so it gets the same opt-in idempotency as
36
+ // the other collection mutations.
37
+ .post("/bookings/:bookingId/collection-plan", collectionIdempotency(), async (c) => {
38
+ try {
39
+ const plan = await previewCheckoutCollection(c.get("db"), c.req.param("bookingId"), await parseOptionalJsonBody(c, previewCheckoutCollectionSchema), options.policy);
40
+ if (!plan) {
41
+ return c.json({ error: "Booking not found" }, 404);
42
+ }
43
+ return c.json({ data: plan });
44
+ }
45
+ catch (error) {
46
+ const message = error instanceof Error ? error.message : "Failed to preview checkout collection";
47
+ return c.json({ error: message }, 400);
48
+ }
49
+ })
50
+ .post("/bookings/:bookingId/initiate-collection", collectionIdempotency(), async (c) => {
51
+ try {
52
+ const runtime = getRuntime(c.env, (key) => c.var.container?.resolve(key));
53
+ const result = await initiateCheckoutCollection(c.get("db"), c.req.param("bookingId"), await parseJsonBody(c, initiateCheckoutCollectionSchema), options.policy, runtime);
54
+ if (!result) {
55
+ return c.json({ error: "Booking not found" }, 404);
56
+ }
57
+ return c.json({ data: result }, 201);
58
+ }
59
+ catch (error) {
60
+ const message = error instanceof Error ? error.message : "Failed to initiate checkout collection";
61
+ if (message.includes("Booking not found")) {
62
+ return c.json({ error: message }, 404);
63
+ }
64
+ return c.json({ error: message }, 409);
65
+ }
66
+ })
67
+ .post("/collections/bootstrap", collectionIdempotency(), async (c) => {
68
+ try {
69
+ const runtime = getRuntime(c.env, (key) => c.var.container?.resolve(key));
70
+ const result = await bootstrapCheckoutCollection(c.get("db"), await parseJsonBody(c, bootstrapCheckoutCollectionSchema), options.policy, runtime);
71
+ if (!result) {
72
+ return c.json({ error: "Booking session not found" }, 404);
73
+ }
74
+ return c.json({ data: result }, 201);
75
+ }
76
+ catch (error) {
77
+ const message = error instanceof Error ? error.message : "Failed to bootstrap checkout collection";
78
+ if (message.includes("Booking not found")) {
79
+ return c.json({ error: message }, 404);
80
+ }
81
+ return c.json({ error: message }, 409);
82
+ }
83
+ }));
84
+ }
85
+ export function createCheckoutRoutes(options = {}) {
86
+ const app = new Hono();
87
+ app.use("/bookings/:bookingId/collection-plan", collectionCapability("payment:read"));
88
+ app.use("/bookings/:bookingId/initiate-collection", collectionCapability("payment:start"));
89
+ return attachCollectionRoutes(app, options);
90
+ }
91
+ export function createCheckoutAdminRoutes(options = {}) {
92
+ const app = new Hono().get("/bookings/:bookingId/reminder-runs", async (c) => {
93
+ const query = parseQuery(c, checkoutReminderRunListQuerySchema);
94
+ const runtime = c.var.container?.resolve(CHECKOUT_ROUTE_RUNTIME_CONTAINER_KEY) ??
95
+ buildCheckoutRouteRuntime(c.env, options);
96
+ if (!runtime.listBookingReminderRuns) {
97
+ return c.json({ data: [], total: 0, limit: query.limit, offset: query.offset });
98
+ }
99
+ return c.json(await runtime.listBookingReminderRuns(c.get("db"), c.req.param("bookingId"), query));
100
+ });
101
+ return attachCollectionRoutes(app, options);
102
+ }
103
+ export function buildCheckoutRouteRuntime(bindings, options = {}) {
104
+ return {
105
+ bindings,
106
+ notificationDispatcher: options.resolveNotificationDispatcher?.(bindings) ?? options.notificationDispatcher ?? null,
107
+ paymentStarters: options.resolvePaymentStarters?.(bindings) ?? options.paymentStarters ?? {},
108
+ bankTransferDetails: options.resolveBankTransferDetails?.(bindings) ?? options.bankTransferDetails ?? null,
109
+ publicCheckoutBaseUrl: options.resolvePublicCheckoutBaseUrl?.(bindings) ?? options.publicCheckoutBaseUrl ?? null,
110
+ listBookingReminderRuns: options.listBookingReminderRuns,
111
+ };
112
+ }
113
+ export const createFinanceCheckoutRoutes = createCheckoutRoutes;
114
+ export const createFinanceCheckoutAdminRoutes = createCheckoutAdminRoutes;
115
+ export const buildFinanceCheckoutRouteRuntime = buildCheckoutRouteRuntime;
116
+ export const FINANCE_CHECKOUT_ROUTE_RUNTIME_CONTAINER_KEY = CHECKOUT_ROUTE_RUNTIME_CONTAINER_KEY;
@@ -0,0 +1,137 @@
1
+ import type { bookingItems, bookings, bookingTravelers } from "@voyant-travel/bookings";
2
+ import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
3
+ import type { BootstrapCheckoutCollectionInput, CheckoutBankTransferInstructionsRecord, CheckoutInvoiceNotificationInput, CheckoutPaymentSessionNotificationInput, CheckoutProviderStartInput, InitiateCheckoutCollectionInput } from "./checkout-validation.js";
4
+ import type { bookingPaymentSchedules, invoices, PaymentSession } from "./schema.js";
5
+ export interface CheckoutPolicyOptions {
6
+ defaultCardCollectionTarget?: "schedule" | "invoice";
7
+ defaultReminderCardCollectionTarget?: "schedule" | "invoice";
8
+ defaultBankTransferDocumentType?: "proforma" | "invoice";
9
+ defaultPaymentPlan?: {
10
+ depositMode: "none" | "percentage" | "fixed_amount";
11
+ depositValue: number;
12
+ balanceDueDaysBeforeStart: number;
13
+ clearExistingPending: boolean;
14
+ createGuarantee: boolean;
15
+ guaranteeType: "deposit" | "credit_card" | "preauth" | "card_on_file" | "bank_transfer" | "voucher" | "agency_letter";
16
+ notes?: string | null;
17
+ };
18
+ }
19
+ export type LoadedBookingContext = {
20
+ booking: typeof bookings.$inferSelect;
21
+ items: Array<typeof bookingItems.$inferSelect>;
22
+ participants: Array<typeof bookingTravelers.$inferSelect>;
23
+ schedules: Array<typeof bookingPaymentSchedules.$inferSelect>;
24
+ outstandingInvoices: Array<typeof invoices.$inferSelect>;
25
+ };
26
+ export interface CheckoutCollectionPlan {
27
+ bookingId: string;
28
+ method: "card" | "bank_transfer";
29
+ stage: "initial" | "reminder" | "manual";
30
+ paymentSessionTarget: "schedule" | "invoice" | null;
31
+ documentType: "proforma" | "invoice" | null;
32
+ willCreateDefaultPaymentPlan: boolean;
33
+ selectedSchedule: typeof bookingPaymentSchedules.$inferSelect | null;
34
+ selectedInvoice: typeof invoices.$inferSelect | null;
35
+ amountCents: number;
36
+ currency: string;
37
+ recommendedAction: "create_bank_transfer_document" | "create_payment_session" | "create_invoice_then_payment_session" | "none";
38
+ }
39
+ export interface CheckoutBankTransferDetails {
40
+ provider?: string | null;
41
+ beneficiary: string;
42
+ iban: string;
43
+ bankName?: string | null;
44
+ /**
45
+ * Deploy-wide instructions appended to every bank-transfer block (e.g.
46
+ * "Please reference your invoice number in the wire memo"). Per-call
47
+ * notes from `initiateCheckoutCollection({ notes })` take precedence -
48
+ * use this slot for boilerplate, not booking-specific content.
49
+ */
50
+ notes?: string | null;
51
+ }
52
+ export interface CheckoutProviderStartResult {
53
+ provider: string;
54
+ paymentSessionId: string;
55
+ redirectUrl: string | null;
56
+ externalReference: string | null;
57
+ providerSessionId: string | null;
58
+ providerPaymentId: string | null;
59
+ response: Record<string, unknown> | null;
60
+ }
61
+ export interface CheckoutPaymentStarterContext {
62
+ db: PostgresJsDatabase;
63
+ bookingId: string;
64
+ plan: CheckoutCollectionPlan;
65
+ invoice: typeof invoices.$inferSelect | null;
66
+ paymentSession: PaymentSession;
67
+ input: InitiateCheckoutCollectionInput;
68
+ startProvider: CheckoutProviderStartInput;
69
+ bindings: Record<string, unknown>;
70
+ }
71
+ export type CheckoutPaymentStarter = (context: CheckoutPaymentStarterContext) => Promise<CheckoutProviderStartResult>;
72
+ export interface CheckoutNotificationDelivery {
73
+ id: string;
74
+ templateSlug: string | null;
75
+ channel: "email" | "sms";
76
+ provider: string;
77
+ status: "pending" | "sent" | "failed" | "cancelled";
78
+ toAddress: string;
79
+ subject: string | null;
80
+ sentAt: string | null;
81
+ failedAt: string | null;
82
+ errorMessage: string | null;
83
+ }
84
+ export interface CheckoutNotificationDispatcher {
85
+ sendInvoiceNotification?: (db: PostgresJsDatabase, invoiceId: string, input: CheckoutInvoiceNotificationInput) => Promise<CheckoutNotificationDelivery | null>;
86
+ sendPaymentSessionNotification?: (db: PostgresJsDatabase, paymentSessionId: string, input: CheckoutPaymentSessionNotificationInput) => Promise<CheckoutNotificationDelivery | null>;
87
+ }
88
+ export interface InitiatedCheckoutCollection {
89
+ plan: CheckoutCollectionPlan;
90
+ invoice: typeof invoices.$inferSelect | null;
91
+ paymentSession: PaymentSession | null;
92
+ invoiceNotification: CheckoutNotificationDelivery | null;
93
+ paymentSessionNotification: CheckoutNotificationDelivery | null;
94
+ bankTransferInstructions: CheckoutBankTransferInstructionsRecord | null;
95
+ providerStart: CheckoutProviderStartResult | null;
96
+ }
97
+ export interface BootstrappedCheckoutCollection extends InitiatedCheckoutCollection {
98
+ bookingId: string;
99
+ sessionId: string;
100
+ sourceType: "booking" | "session";
101
+ intent: "deposit" | "balance" | "custom";
102
+ }
103
+ export interface CheckoutRuntimeOptions {
104
+ bindings?: Record<string, unknown>;
105
+ bankTransferDetails?: CheckoutBankTransferDetails | null;
106
+ notificationDispatcher?: CheckoutNotificationDispatcher | null;
107
+ paymentStarters?: Record<string, CheckoutPaymentStarter>;
108
+ publicCheckoutBaseUrl?: string | null;
109
+ }
110
+ export declare const OUTSTANDING_SCHEDULE_STATUSES: Array<(typeof bookingPaymentSchedules.$inferSelect)["status"]>;
111
+ export declare const OUTSTANDING_INVOICE_STATUSES: Array<(typeof invoices.$inferSelect)["status"]>;
112
+ export declare function defaultPaymentPlan(options: CheckoutPolicyOptions): {
113
+ readonly depositMode: "none" | "percentage" | "fixed_amount";
114
+ readonly depositValue: number;
115
+ readonly balanceDueDaysBeforeStart: number;
116
+ readonly clearExistingPending: boolean;
117
+ readonly createGuarantee: boolean;
118
+ readonly guaranteeType: "bank_transfer" | "deposit" | "credit_card" | "preauth" | "card_on_file" | "voucher" | "agency_letter";
119
+ readonly notes: string | null;
120
+ };
121
+ export declare function resolvePaymentSessionTarget(method: "card" | "bank_transfer", stage: "initial" | "reminder" | "manual", override: "schedule" | "invoice" | undefined, options: CheckoutPolicyOptions): "invoice" | "schedule";
122
+ export declare function resolveDocumentType(method: "card" | "bank_transfer", target: "schedule" | "invoice" | null, options: CheckoutPolicyOptions): "invoice" | "proforma" | null;
123
+ export declare function fallbackInvoiceNumber(bookingNumber: string, documentType: "proforma" | "invoice", amountCents: number): string;
124
+ export declare function lineDescription(booking: typeof bookings.$inferSelect, schedule: typeof bookingPaymentSchedules.$inferSelect | null, stage: "initial" | "reminder" | "manual"): string;
125
+ export declare function normalizeExactAmountCents(amountCents: number | undefined): number | null;
126
+ export declare function resolveCheckoutIntent(input: Pick<BootstrapCheckoutCollectionInput, "intent" | "stage" | "amountCents"> | Pick<InitiateCheckoutCollectionInput, "stage" | "amountCents">): "custom" | "deposit" | "balance";
127
+ export declare function resolveCheckoutSubject(input: BootstrapCheckoutCollectionInput): {
128
+ bookingId: string;
129
+ sessionId: string;
130
+ sourceType: "booking";
131
+ } | {
132
+ bookingId: string;
133
+ sessionId: string;
134
+ sourceType: "session";
135
+ };
136
+ export declare function buildBankTransferInstructions(invoice: typeof invoices.$inferSelect, details: CheckoutBankTransferDetails | null | undefined, callNotes?: string | null): CheckoutBankTransferInstructionsRecord | null;
137
+ //# sourceMappingURL=checkout-service-plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkout-service-plan.d.ts","sourceRoot":"","sources":["../src/checkout-service-plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ export const OUTSTANDING_SCHEDULE_STATUSES = ["pending", "due"];
2
+ export const OUTSTANDING_INVOICE_STATUSES = [
3
+ "draft",
4
+ "issued",
5
+ "partially_paid",
6
+ "overdue",
7
+ ];
8
+ export function defaultPaymentPlan(options) {
9
+ return {
10
+ depositMode: options.defaultPaymentPlan?.depositMode ?? "percentage",
11
+ depositValue: options.defaultPaymentPlan?.depositValue ?? 30,
12
+ balanceDueDaysBeforeStart: options.defaultPaymentPlan?.balanceDueDaysBeforeStart ?? 30,
13
+ clearExistingPending: options.defaultPaymentPlan?.clearExistingPending ?? true,
14
+ createGuarantee: options.defaultPaymentPlan?.createGuarantee ?? false,
15
+ guaranteeType: options.defaultPaymentPlan?.guaranteeType ?? "deposit",
16
+ notes: options.defaultPaymentPlan?.notes ?? null,
17
+ };
18
+ }
19
+ export function resolvePaymentSessionTarget(method, stage, override, options) {
20
+ if (method === "bank_transfer")
21
+ return "invoice";
22
+ if (override)
23
+ return override;
24
+ if (stage === "reminder")
25
+ return options.defaultReminderCardCollectionTarget ?? "schedule";
26
+ return options.defaultCardCollectionTarget ?? "schedule";
27
+ }
28
+ export function resolveDocumentType(method, target, options) {
29
+ if (method === "bank_transfer") {
30
+ return options.defaultBankTransferDocumentType ?? "proforma";
31
+ }
32
+ if (target === "invoice") {
33
+ return "invoice";
34
+ }
35
+ return null;
36
+ }
37
+ export function fallbackInvoiceNumber(bookingNumber, documentType, amountCents) {
38
+ const stamp = Date.now().toString(36).toUpperCase();
39
+ const suffix = documentType === "proforma" ? "PF" : "INV";
40
+ return `${bookingNumber}-${suffix}-${amountCents}-${stamp}`;
41
+ }
42
+ export function lineDescription(booking, schedule, stage) {
43
+ if (!schedule) {
44
+ return `Booking ${booking.bookingNumber}`;
45
+ }
46
+ const kind = schedule.scheduleType === "deposit" ? "deposit" : schedule.scheduleType;
47
+ if (stage === "reminder") {
48
+ return `Booking ${booking.bookingNumber} ${kind} reminder`;
49
+ }
50
+ return `Booking ${booking.bookingNumber} ${kind}`;
51
+ }
52
+ export function normalizeExactAmountCents(amountCents) {
53
+ return typeof amountCents === "number" && Number.isFinite(amountCents) && amountCents > 0
54
+ ? Math.round(amountCents)
55
+ : null;
56
+ }
57
+ export function resolveCheckoutIntent(input) {
58
+ if ("intent" in input && input.intent) {
59
+ return input.intent;
60
+ }
61
+ if (typeof input.amountCents === "number" &&
62
+ Number.isFinite(input.amountCents) &&
63
+ input.amountCents > 0) {
64
+ return "custom";
65
+ }
66
+ if (input.stage === "initial") {
67
+ return "deposit";
68
+ }
69
+ if (input.stage === "reminder") {
70
+ return "balance";
71
+ }
72
+ return "custom";
73
+ }
74
+ export function resolveCheckoutSubject(input) {
75
+ if (input.bookingId && input.sessionId && input.bookingId !== input.sessionId) {
76
+ throw new Error("bookingId and sessionId must refer to the same booking session");
77
+ }
78
+ if (input.bookingId) {
79
+ return {
80
+ bookingId: input.bookingId,
81
+ sessionId: input.sessionId ?? input.bookingId,
82
+ sourceType: "booking",
83
+ };
84
+ }
85
+ if (input.sessionId) {
86
+ return {
87
+ bookingId: input.sessionId,
88
+ sessionId: input.sessionId,
89
+ sourceType: "session",
90
+ };
91
+ }
92
+ throw new Error("Provide a bookingId or sessionId");
93
+ }
94
+ function toInvoiceDueDateTime(value) {
95
+ return value ? `${value}T00:00:00.000Z` : null;
96
+ }
97
+ export function buildBankTransferInstructions(invoice, details, callNotes) {
98
+ if (!details) {
99
+ return null;
100
+ }
101
+ return {
102
+ provider: details.provider ?? null,
103
+ invoiceId: invoice.id,
104
+ invoiceNumber: invoice.invoiceNumber,
105
+ documentType: invoice.invoiceType === "proforma" ? "proforma" : "invoice",
106
+ amountCents: invoice.balanceDueCents,
107
+ // Currency always tracks the invoice - the deploy-wide bank-transfer
108
+ // block can't predict what the customer is buying. EUR booking +
109
+ // RON-default env would have shown the wrong currency to the customer.
110
+ currency: invoice.currency,
111
+ dueDate: toInvoiceDueDateTime(invoice.dueDate),
112
+ beneficiary: details.beneficiary,
113
+ iban: details.iban,
114
+ bankName: details.bankName ?? null,
115
+ // Per-call notes win over deploy-wide boilerplate - the caller knows
116
+ // booking context (invoice number, due date, etc.) the env can't.
117
+ notes: callNotes ?? details.notes ?? null,
118
+ };
119
+ }
@@ -0,0 +1,9 @@
1
+ import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
2
+ import { type BootstrappedCheckoutCollection, type CheckoutCollectionPlan, type CheckoutPolicyOptions, type CheckoutRuntimeOptions, type InitiatedCheckoutCollection } from "./checkout-service-plan.js";
3
+ import type { BootstrapCheckoutCollectionInput, InitiateCheckoutCollectionInput, PreviewCheckoutCollectionInput } from "./checkout-validation.js";
4
+ export { type BootstrappedCheckoutCollection, type CheckoutBankTransferDetails, type CheckoutCollectionPlan, type CheckoutNotificationDelivery, type CheckoutNotificationDispatcher, type CheckoutPaymentStarter, type CheckoutPaymentStarterContext, type CheckoutPolicyOptions, type CheckoutProviderStartResult, type CheckoutRuntimeOptions, type InitiatedCheckoutCollection, resolvePaymentSessionTarget, } from "./checkout-service-plan.js";
5
+ export type { BootstrapCheckoutCollectionInput, BootstrappedCheckoutCollectionRecord, CheckoutCollectionPlanRecord, InitiateCheckoutCollectionInput, InitiatedCheckoutCollectionRecord, PreviewCheckoutCollectionInput, } from "./checkout-validation.js";
6
+ export declare function previewCheckoutCollection(db: PostgresJsDatabase, bookingId: string, input: PreviewCheckoutCollectionInput, options?: CheckoutPolicyOptions): Promise<CheckoutCollectionPlan | null>;
7
+ export declare function initiateCheckoutCollection(db: PostgresJsDatabase, bookingId: string, input: InitiateCheckoutCollectionInput, options?: CheckoutPolicyOptions, runtime?: CheckoutRuntimeOptions): Promise<InitiatedCheckoutCollection | null>;
8
+ export declare function bootstrapCheckoutCollection(db: PostgresJsDatabase, input: BootstrapCheckoutCollectionInput, options?: CheckoutPolicyOptions, runtime?: CheckoutRuntimeOptions): Promise<BootstrappedCheckoutCollection | null>;
9
+ //# sourceMappingURL=checkout-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkout-service.d.ts","sourceRoot":"","sources":["../src/checkout-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EACL,KAAK,8BAA8B,EAEnC,KAAK,sBAAsB,EAE3B,KAAK,qBAAqB,EAE1B,KAAK,sBAAsB,EAG3B,KAAK,2BAA2B,EAUjC,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EACV,gCAAgC,EAEhC,+BAA+B,EAC/B,8BAA8B,EAC/B,MAAM,0BAA0B,CAAA;AAUjC,OAAO,EACL,KAAK,8BAA8B,EACnC,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EACjC,KAAK,8BAA8B,EACnC,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EAClC,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,2BAA2B,GAC5B,MAAM,4BAA4B,CAAA;AACnC,YAAY,EACV,gCAAgC,EAChC,oCAAoC,EACpC,4BAA4B,EAC5B,+BAA+B,EAC/B,iCAAiC,EACjC,8BAA8B,GAC/B,MAAM,0BAA0B,CAAA;AAiHjC,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,kBAAkB,EACtB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,8BAA8B,EACrC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CA4ExC;AAkED,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,kBAAkB,EACtB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,+BAA+B,EACtC,OAAO,GAAE,qBAA0B,EACnC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAkJ7C;AAUD,wBAAsB,2BAA2B,CAC/C,EAAE,EAAE,kBAAkB,EACtB,KAAK,EAAE,gCAAgC,EACvC,OAAO,GAAE,qBAA0B,EACnC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,8BAA8B,GAAG,IAAI,CAAC,CAmChD"}