@vendasta/billing 8.2.0 → 9.0.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 (583) hide show
  1. package/esm2020/lib/_generated/host.service.mjs +25 -0
  2. package/esm2020/lib/_generated/index.mjs +2 -0
  3. package/esm2020/lib/_internal/bank-reconciliation.api.service.mjs +46 -0
  4. package/esm2020/lib/_internal/billing.api.service.mjs +216 -0
  5. package/esm2020/lib/_internal/bundle.api.service.mjs +50 -0
  6. package/esm2020/lib/_internal/contract-document.api.service.mjs +45 -0
  7. package/esm2020/lib/_internal/contract.api.service.mjs +55 -0
  8. package/esm2020/lib/_internal/credit.api.service.mjs +45 -0
  9. package/esm2020/lib/_internal/discount.api.service.mjs +53 -0
  10. package/esm2020/lib/_internal/enums/applied-discount.enum.mjs +14 -0
  11. package/esm2020/lib/_internal/enums/card.enum.mjs +17 -0
  12. package/esm2020/lib/_internal/enums/contract.enum.mjs +14 -0
  13. package/esm2020/lib/_internal/enums/currency.enum.mjs +35 -0
  14. package/esm2020/lib/_internal/enums/frequency.enum.mjs +14 -0
  15. package/esm2020/lib/_internal/enums/index.mjs +31 -0
  16. package/esm2020/lib/_internal/enums/invoice.enum.mjs +18 -0
  17. package/esm2020/lib/_internal/enums/merchant-report.enum.mjs +13 -0
  18. package/{esm2015/lib/_internal/enums/merchant.enum.js → esm2020/lib/_internal/enums/merchant.enum.mjs} +1 -1
  19. package/esm2020/lib/_internal/enums/month.enum.mjs +23 -0
  20. package/esm2020/lib/_internal/enums/payment-card.enum.mjs +24 -0
  21. package/esm2020/lib/_internal/enums/payment-processor.enum.mjs +13 -0
  22. package/{esm2015/lib/_internal/enums/payment.enum.js → esm2020/lib/_internal/enums/payment.enum.mjs} +1 -1
  23. package/esm2020/lib/_internal/enums/payout.enum.mjs +22 -0
  24. package/esm2020/lib/_internal/enums/pricing-plan.enum.mjs +22 -0
  25. package/{esm2015/lib/_internal/enums/product-summary.enum.js → esm2020/lib/_internal/enums/product-summary.enum.mjs} +1 -1
  26. package/esm2020/lib/_internal/enums/product.enum.mjs +17 -0
  27. package/esm2020/lib/_internal/enums/purchase.enum.mjs +27 -0
  28. package/esm2020/lib/_internal/enums/recurring-invoice.enum.mjs +29 -0
  29. package/esm2020/lib/_internal/enums/refund.enum.mjs +25 -0
  30. package/esm2020/lib/_internal/enums/sales-credit-note.enum.mjs +14 -0
  31. package/{esm2015/lib/_internal/enums/sales-invoice.enum.js → esm2020/lib/_internal/enums/sales-invoice.enum.mjs} +1 -1
  32. package/esm2020/lib/_internal/enums/sort-direction.enum.mjs +12 -0
  33. package/{esm2015/lib/_internal/enums/subscribe-validation.enum.js → esm2020/lib/_internal/enums/subscribe-validation.enum.mjs} +1 -1
  34. package/esm2020/lib/_internal/enums/subscription.enum.mjs +12 -0
  35. package/esm2020/lib/_internal/index.mjs +33 -0
  36. package/esm2020/lib/_internal/interfaces/api.interface.mjs +2 -0
  37. package/esm2020/lib/_internal/interfaces/applied-bundle.interface.mjs +8 -0
  38. package/esm2020/lib/_internal/interfaces/applied-discount.interface.mjs +8 -0
  39. package/esm2020/lib/_internal/interfaces/applied-tax-rate.interface.mjs +8 -0
  40. package/esm2020/lib/_internal/interfaces/balance.interface.mjs +8 -0
  41. package/esm2020/lib/_internal/interfaces/billable-item.interface.mjs +2 -0
  42. package/esm2020/lib/_internal/interfaces/bundle.interface.mjs +2 -0
  43. package/esm2020/lib/_internal/interfaces/card.interface.mjs +8 -0
  44. package/esm2020/lib/_internal/interfaces/commitment.interface.mjs +8 -0
  45. package/esm2020/lib/_internal/interfaces/common.interface.mjs +8 -0
  46. package/esm2020/lib/_internal/interfaces/contract-document.interface.mjs +2 -0
  47. package/esm2020/lib/_internal/interfaces/contract.interface.mjs +2 -0
  48. package/esm2020/lib/_internal/interfaces/credit.interface.mjs +8 -0
  49. package/esm2020/lib/_internal/interfaces/currency.interface.mjs +8 -0
  50. package/esm2020/lib/_internal/interfaces/customer-summary.interface.mjs +8 -0
  51. package/esm2020/lib/_internal/interfaces/date-range.interface.mjs +8 -0
  52. package/esm2020/lib/_internal/interfaces/discount.interface.mjs +2 -0
  53. package/esm2020/lib/_internal/interfaces/external-account.interface.mjs +8 -0
  54. package/esm2020/lib/_internal/interfaces/field-mask.interface.mjs +8 -0
  55. package/esm2020/lib/_internal/interfaces/frequency.interface.mjs +8 -0
  56. package/esm2020/lib/_internal/interfaces/index.mjs +2 -0
  57. package/esm2020/lib/_internal/interfaces/invoice-template.interface.mjs +2 -0
  58. package/esm2020/lib/_internal/interfaces/invoice.interface.mjs +2 -0
  59. package/esm2020/lib/_internal/interfaces/merchant-report.interface.mjs +2 -0
  60. package/esm2020/lib/_internal/interfaces/merchant.interface.mjs +2 -0
  61. package/esm2020/lib/_internal/interfaces/metered-component.interface.mjs +8 -0
  62. package/esm2020/lib/_internal/interfaces/month.interface.mjs +8 -0
  63. package/esm2020/lib/_internal/interfaces/payment-card.interface.mjs +8 -0
  64. package/esm2020/lib/_internal/interfaces/payment-processor.interface.mjs +8 -0
  65. package/esm2020/lib/_internal/interfaces/payment.interface.mjs +2 -0
  66. package/esm2020/lib/_internal/interfaces/payout.interface.mjs +2 -0
  67. package/esm2020/lib/_internal/interfaces/pricing-plan-product.interface.mjs +2 -0
  68. package/esm2020/lib/_internal/interfaces/pricing-plan.interface.mjs +2 -0
  69. package/esm2020/lib/_internal/interfaces/product-pricing.interface.mjs +2 -0
  70. package/esm2020/lib/_internal/interfaces/product-summary.interface.mjs +2 -0
  71. package/esm2020/lib/_internal/interfaces/product.interface.mjs +2 -0
  72. package/esm2020/lib/_internal/interfaces/purchase.interface.mjs +2 -0
  73. package/esm2020/lib/_internal/interfaces/recurring-invoice.interface.mjs +2 -0
  74. package/esm2020/lib/_internal/interfaces/refund.interface.mjs +8 -0
  75. package/esm2020/lib/_internal/interfaces/retail-customer-configuration.interface.mjs +8 -0
  76. package/esm2020/lib/_internal/interfaces/sales-credit-note.interface.mjs +2 -0
  77. package/esm2020/lib/_internal/interfaces/sales-invoice.interface.mjs +2 -0
  78. package/esm2020/lib/_internal/interfaces/sort-direction.interface.mjs +8 -0
  79. package/esm2020/lib/_internal/interfaces/subscribe-validation.interface.mjs +8 -0
  80. package/esm2020/lib/_internal/interfaces/subscription.interface.mjs +2 -0
  81. package/esm2020/lib/_internal/interfaces/tax-rate.interface.mjs +2 -0
  82. package/esm2020/lib/_internal/invoice-template.api.service.mjs +85 -0
  83. package/esm2020/lib/_internal/invoice.api.service.mjs +116 -0
  84. package/esm2020/lib/_internal/merchant.api.service.mjs +159 -0
  85. package/esm2020/lib/_internal/objects/api.mjs +841 -0
  86. package/esm2020/lib/_internal/objects/applied-bundle.mjs +77 -0
  87. package/esm2020/lib/_internal/objects/applied-discount.mjs +46 -0
  88. package/esm2020/lib/_internal/objects/applied-tax-rate.mjs +39 -0
  89. package/esm2020/lib/_internal/objects/balance.mjs +45 -0
  90. package/esm2020/lib/_internal/objects/billable-item.mjs +562 -0
  91. package/esm2020/lib/_internal/objects/bundle.mjs +390 -0
  92. package/esm2020/lib/_internal/objects/card.mjs +7 -0
  93. package/esm2020/lib/_internal/objects/commitment.mjs +36 -0
  94. package/esm2020/lib/_internal/objects/common.mjs +56 -0
  95. package/esm2020/lib/_internal/objects/contract-document.mjs +141 -0
  96. package/esm2020/lib/_internal/objects/contract.mjs +474 -0
  97. package/esm2020/lib/_internal/objects/credit.mjs +114 -0
  98. package/esm2020/lib/_internal/objects/currency.mjs +7 -0
  99. package/esm2020/lib/_internal/objects/customer-summary.mjs +104 -0
  100. package/esm2020/lib/_internal/objects/date-range.mjs +36 -0
  101. package/esm2020/lib/_internal/objects/discount.mjs +299 -0
  102. package/esm2020/lib/_internal/objects/external-account.mjs +160 -0
  103. package/esm2020/lib/_internal/objects/field-mask.mjs +27 -0
  104. package/esm2020/lib/_internal/objects/frequency.mjs +7 -0
  105. package/esm2020/lib/_internal/objects/index.mjs +46 -0
  106. package/esm2020/lib/_internal/objects/invoice-template.mjs +707 -0
  107. package/esm2020/lib/_internal/objects/invoice.mjs +1117 -0
  108. package/esm2020/lib/_internal/objects/merchant-report.mjs +108 -0
  109. package/esm2020/lib/_internal/objects/merchant.mjs +991 -0
  110. package/esm2020/lib/_internal/objects/metered-component.mjs +97 -0
  111. package/esm2020/lib/_internal/objects/month.mjs +7 -0
  112. package/esm2020/lib/_internal/objects/payment-card.mjs +211 -0
  113. package/esm2020/lib/_internal/objects/payment-processor.mjs +7 -0
  114. package/esm2020/lib/_internal/objects/payment.mjs +1219 -0
  115. package/esm2020/lib/_internal/objects/payout.mjs +258 -0
  116. package/esm2020/lib/_internal/objects/pricing-plan-product.mjs +565 -0
  117. package/esm2020/lib/_internal/objects/pricing-plan.mjs +290 -0
  118. package/esm2020/lib/_internal/objects/product-pricing.mjs +107 -0
  119. package/esm2020/lib/_internal/objects/product-summary.mjs +538 -0
  120. package/esm2020/lib/_internal/objects/product.mjs +302 -0
  121. package/esm2020/lib/_internal/objects/purchase.mjs +524 -0
  122. package/esm2020/lib/_internal/objects/recurring-invoice.mjs +324 -0
  123. package/esm2020/lib/_internal/objects/refund.mjs +181 -0
  124. package/esm2020/lib/_internal/objects/retail-customer-configuration.mjs +159 -0
  125. package/esm2020/lib/_internal/objects/sales-credit-note.mjs +211 -0
  126. package/esm2020/lib/_internal/objects/sales-invoice.mjs +300 -0
  127. package/esm2020/lib/_internal/objects/sort-direction.mjs +7 -0
  128. package/esm2020/lib/_internal/objects/subscribe-validation.mjs +31 -0
  129. package/esm2020/lib/_internal/objects/subscription.mjs +555 -0
  130. package/esm2020/lib/_internal/objects/tax-rate.mjs +342 -0
  131. package/esm2020/lib/_internal/payment-method.api.service.mjs +49 -0
  132. package/esm2020/lib/_internal/payment.api.service.mjs +102 -0
  133. package/esm2020/lib/_internal/pricing.api.service.mjs +76 -0
  134. package/esm2020/lib/_internal/product-summary.api.service.mjs +46 -0
  135. package/esm2020/lib/_internal/product.api.service.mjs +47 -0
  136. package/esm2020/lib/_internal/purchase.api.service.mjs +59 -0
  137. package/esm2020/lib/_internal/recurring-invoice.api.service.mjs +60 -0
  138. package/esm2020/lib/_internal/refund.api.service.mjs +45 -0
  139. package/esm2020/lib/_internal/retail-customer-configuration.api.service.mjs +45 -0
  140. package/esm2020/lib/_internal/sales-credit-note.api.service.mjs +45 -0
  141. package/esm2020/lib/_internal/sales-invoice.api.service.mjs +50 -0
  142. package/esm2020/lib/_internal/tax.api.service.mjs +63 -0
  143. package/esm2020/lib/_internal/vendor.api.service.mjs +46 -0
  144. package/esm2020/lib/index.mjs +3 -0
  145. package/esm2020/public_api.mjs +2 -0
  146. package/esm2020/vendasta-billing.mjs +5 -0
  147. package/fesm2015/{vendasta-billing.js → vendasta-billing.mjs} +622 -5227
  148. package/fesm2015/vendasta-billing.mjs.map +1 -0
  149. package/fesm2020/vendasta-billing.mjs +14368 -0
  150. package/fesm2020/vendasta-billing.mjs.map +1 -0
  151. package/lib/_generated/host.service.d.ts +5 -9
  152. package/lib/_internal/bank-reconciliation.api.service.d.ts +4 -0
  153. package/lib/_internal/billing.api.service.d.ts +4 -0
  154. package/lib/_internal/bundle.api.service.d.ts +4 -0
  155. package/lib/_internal/contract-document.api.service.d.ts +4 -0
  156. package/lib/_internal/contract.api.service.d.ts +4 -0
  157. package/lib/_internal/credit.api.service.d.ts +4 -0
  158. package/lib/_internal/discount.api.service.d.ts +4 -0
  159. package/lib/_internal/invoice-template.api.service.d.ts +4 -0
  160. package/lib/_internal/invoice.api.service.d.ts +4 -0
  161. package/lib/_internal/merchant.api.service.d.ts +4 -0
  162. package/lib/_internal/payment-method.api.service.d.ts +4 -0
  163. package/lib/_internal/payment.api.service.d.ts +4 -0
  164. package/lib/_internal/pricing.api.service.d.ts +4 -0
  165. package/lib/_internal/product-summary.api.service.d.ts +4 -0
  166. package/lib/_internal/product.api.service.d.ts +4 -0
  167. package/lib/_internal/purchase.api.service.d.ts +4 -0
  168. package/lib/_internal/recurring-invoice.api.service.d.ts +4 -0
  169. package/lib/_internal/refund.api.service.d.ts +4 -0
  170. package/lib/_internal/retail-customer-configuration.api.service.d.ts +4 -0
  171. package/lib/_internal/sales-credit-note.api.service.d.ts +4 -0
  172. package/lib/_internal/sales-invoice.api.service.d.ts +4 -0
  173. package/lib/_internal/tax.api.service.d.ts +4 -0
  174. package/lib/_internal/vendor.api.service.d.ts +4 -0
  175. package/lib/index.d.ts +2 -37
  176. package/package.json +26 -15
  177. package/src/README.md +1 -0
  178. package/vendasta-billing.d.ts +1 -0
  179. package/bundles/vendasta-billing.umd.js +0 -19912
  180. package/bundles/vendasta-billing.umd.js.map +0 -1
  181. package/bundles/vendasta-billing.umd.min.js +0 -16
  182. package/bundles/vendasta-billing.umd.min.js.map +0 -1
  183. package/esm2015/lib/_generated/host.service.js +0 -65
  184. package/esm2015/lib/_generated/index.js +0 -2
  185. package/esm2015/lib/_internal/bank-reconciliation.api.service.js +0 -47
  186. package/esm2015/lib/_internal/billing.api.service.js +0 -217
  187. package/esm2015/lib/_internal/bundle.api.service.js +0 -51
  188. package/esm2015/lib/_internal/contract-document.api.service.js +0 -46
  189. package/esm2015/lib/_internal/contract.api.service.js +0 -56
  190. package/esm2015/lib/_internal/credit.api.service.js +0 -46
  191. package/esm2015/lib/_internal/discount.api.service.js +0 -54
  192. package/esm2015/lib/_internal/enums/applied-discount.enum.js +0 -14
  193. package/esm2015/lib/_internal/enums/card.enum.js +0 -17
  194. package/esm2015/lib/_internal/enums/contract.enum.js +0 -14
  195. package/esm2015/lib/_internal/enums/currency.enum.js +0 -35
  196. package/esm2015/lib/_internal/enums/frequency.enum.js +0 -14
  197. package/esm2015/lib/_internal/enums/index.js +0 -31
  198. package/esm2015/lib/_internal/enums/invoice.enum.js +0 -18
  199. package/esm2015/lib/_internal/enums/merchant-report.enum.js +0 -13
  200. package/esm2015/lib/_internal/enums/month.enum.js +0 -23
  201. package/esm2015/lib/_internal/enums/payment-card.enum.js +0 -24
  202. package/esm2015/lib/_internal/enums/payment-processor.enum.js +0 -13
  203. package/esm2015/lib/_internal/enums/payout.enum.js +0 -22
  204. package/esm2015/lib/_internal/enums/pricing-plan.enum.js +0 -22
  205. package/esm2015/lib/_internal/enums/product.enum.js +0 -17
  206. package/esm2015/lib/_internal/enums/purchase.enum.js +0 -27
  207. package/esm2015/lib/_internal/enums/recurring-invoice.enum.js +0 -29
  208. package/esm2015/lib/_internal/enums/refund.enum.js +0 -25
  209. package/esm2015/lib/_internal/enums/sales-credit-note.enum.js +0 -14
  210. package/esm2015/lib/_internal/enums/sort-direction.enum.js +0 -12
  211. package/esm2015/lib/_internal/enums/subscription.enum.js +0 -12
  212. package/esm2015/lib/_internal/index.js +0 -33
  213. package/esm2015/lib/_internal/interfaces/api.interface.js +0 -2
  214. package/esm2015/lib/_internal/interfaces/applied-bundle.interface.js +0 -8
  215. package/esm2015/lib/_internal/interfaces/applied-discount.interface.js +0 -8
  216. package/esm2015/lib/_internal/interfaces/applied-tax-rate.interface.js +0 -8
  217. package/esm2015/lib/_internal/interfaces/balance.interface.js +0 -8
  218. package/esm2015/lib/_internal/interfaces/billable-item.interface.js +0 -2
  219. package/esm2015/lib/_internal/interfaces/bundle.interface.js +0 -2
  220. package/esm2015/lib/_internal/interfaces/card.interface.js +0 -8
  221. package/esm2015/lib/_internal/interfaces/commitment.interface.js +0 -8
  222. package/esm2015/lib/_internal/interfaces/common.interface.js +0 -8
  223. package/esm2015/lib/_internal/interfaces/contract-document.interface.js +0 -2
  224. package/esm2015/lib/_internal/interfaces/contract.interface.js +0 -2
  225. package/esm2015/lib/_internal/interfaces/credit.interface.js +0 -8
  226. package/esm2015/lib/_internal/interfaces/currency.interface.js +0 -8
  227. package/esm2015/lib/_internal/interfaces/customer-summary.interface.js +0 -8
  228. package/esm2015/lib/_internal/interfaces/date-range.interface.js +0 -8
  229. package/esm2015/lib/_internal/interfaces/discount.interface.js +0 -2
  230. package/esm2015/lib/_internal/interfaces/external-account.interface.js +0 -8
  231. package/esm2015/lib/_internal/interfaces/field-mask.interface.js +0 -8
  232. package/esm2015/lib/_internal/interfaces/frequency.interface.js +0 -8
  233. package/esm2015/lib/_internal/interfaces/index.js +0 -2
  234. package/esm2015/lib/_internal/interfaces/invoice-template.interface.js +0 -2
  235. package/esm2015/lib/_internal/interfaces/invoice.interface.js +0 -2
  236. package/esm2015/lib/_internal/interfaces/merchant-report.interface.js +0 -2
  237. package/esm2015/lib/_internal/interfaces/merchant.interface.js +0 -2
  238. package/esm2015/lib/_internal/interfaces/metered-component.interface.js +0 -8
  239. package/esm2015/lib/_internal/interfaces/month.interface.js +0 -8
  240. package/esm2015/lib/_internal/interfaces/payment-card.interface.js +0 -8
  241. package/esm2015/lib/_internal/interfaces/payment-processor.interface.js +0 -8
  242. package/esm2015/lib/_internal/interfaces/payment.interface.js +0 -2
  243. package/esm2015/lib/_internal/interfaces/payout.interface.js +0 -2
  244. package/esm2015/lib/_internal/interfaces/pricing-plan-product.interface.js +0 -2
  245. package/esm2015/lib/_internal/interfaces/pricing-plan.interface.js +0 -2
  246. package/esm2015/lib/_internal/interfaces/product-pricing.interface.js +0 -2
  247. package/esm2015/lib/_internal/interfaces/product-summary.interface.js +0 -2
  248. package/esm2015/lib/_internal/interfaces/product.interface.js +0 -2
  249. package/esm2015/lib/_internal/interfaces/purchase.interface.js +0 -2
  250. package/esm2015/lib/_internal/interfaces/recurring-invoice.interface.js +0 -2
  251. package/esm2015/lib/_internal/interfaces/refund.interface.js +0 -8
  252. package/esm2015/lib/_internal/interfaces/retail-customer-configuration.interface.js +0 -8
  253. package/esm2015/lib/_internal/interfaces/sales-credit-note.interface.js +0 -2
  254. package/esm2015/lib/_internal/interfaces/sales-invoice.interface.js +0 -2
  255. package/esm2015/lib/_internal/interfaces/sort-direction.interface.js +0 -8
  256. package/esm2015/lib/_internal/interfaces/subscribe-validation.interface.js +0 -8
  257. package/esm2015/lib/_internal/interfaces/subscription.interface.js +0 -2
  258. package/esm2015/lib/_internal/interfaces/tax-rate.interface.js +0 -2
  259. package/esm2015/lib/_internal/invoice-template.api.service.js +0 -86
  260. package/esm2015/lib/_internal/invoice.api.service.js +0 -117
  261. package/esm2015/lib/_internal/merchant.api.service.js +0 -160
  262. package/esm2015/lib/_internal/objects/api.js +0 -841
  263. package/esm2015/lib/_internal/objects/applied-bundle.js +0 -77
  264. package/esm2015/lib/_internal/objects/applied-discount.js +0 -46
  265. package/esm2015/lib/_internal/objects/applied-tax-rate.js +0 -39
  266. package/esm2015/lib/_internal/objects/balance.js +0 -45
  267. package/esm2015/lib/_internal/objects/billable-item.js +0 -562
  268. package/esm2015/lib/_internal/objects/bundle.js +0 -390
  269. package/esm2015/lib/_internal/objects/card.js +0 -7
  270. package/esm2015/lib/_internal/objects/commitment.js +0 -36
  271. package/esm2015/lib/_internal/objects/common.js +0 -56
  272. package/esm2015/lib/_internal/objects/contract-document.js +0 -141
  273. package/esm2015/lib/_internal/objects/contract.js +0 -474
  274. package/esm2015/lib/_internal/objects/credit.js +0 -114
  275. package/esm2015/lib/_internal/objects/currency.js +0 -7
  276. package/esm2015/lib/_internal/objects/customer-summary.js +0 -104
  277. package/esm2015/lib/_internal/objects/date-range.js +0 -36
  278. package/esm2015/lib/_internal/objects/discount.js +0 -299
  279. package/esm2015/lib/_internal/objects/external-account.js +0 -160
  280. package/esm2015/lib/_internal/objects/field-mask.js +0 -27
  281. package/esm2015/lib/_internal/objects/frequency.js +0 -7
  282. package/esm2015/lib/_internal/objects/index.js +0 -46
  283. package/esm2015/lib/_internal/objects/invoice-template.js +0 -707
  284. package/esm2015/lib/_internal/objects/invoice.js +0 -1117
  285. package/esm2015/lib/_internal/objects/merchant-report.js +0 -108
  286. package/esm2015/lib/_internal/objects/merchant.js +0 -991
  287. package/esm2015/lib/_internal/objects/metered-component.js +0 -97
  288. package/esm2015/lib/_internal/objects/month.js +0 -7
  289. package/esm2015/lib/_internal/objects/payment-card.js +0 -211
  290. package/esm2015/lib/_internal/objects/payment-processor.js +0 -7
  291. package/esm2015/lib/_internal/objects/payment.js +0 -1219
  292. package/esm2015/lib/_internal/objects/payout.js +0 -258
  293. package/esm2015/lib/_internal/objects/pricing-plan-product.js +0 -565
  294. package/esm2015/lib/_internal/objects/pricing-plan.js +0 -290
  295. package/esm2015/lib/_internal/objects/product-pricing.js +0 -107
  296. package/esm2015/lib/_internal/objects/product-summary.js +0 -538
  297. package/esm2015/lib/_internal/objects/product.js +0 -302
  298. package/esm2015/lib/_internal/objects/purchase.js +0 -524
  299. package/esm2015/lib/_internal/objects/recurring-invoice.js +0 -324
  300. package/esm2015/lib/_internal/objects/refund.js +0 -181
  301. package/esm2015/lib/_internal/objects/retail-customer-configuration.js +0 -159
  302. package/esm2015/lib/_internal/objects/sales-credit-note.js +0 -211
  303. package/esm2015/lib/_internal/objects/sales-invoice.js +0 -300
  304. package/esm2015/lib/_internal/objects/sort-direction.js +0 -7
  305. package/esm2015/lib/_internal/objects/subscribe-validation.js +0 -31
  306. package/esm2015/lib/_internal/objects/subscription.js +0 -555
  307. package/esm2015/lib/_internal/objects/tax-rate.js +0 -342
  308. package/esm2015/lib/_internal/payment-method.api.service.js +0 -50
  309. package/esm2015/lib/_internal/payment.api.service.js +0 -103
  310. package/esm2015/lib/_internal/pricing.api.service.js +0 -77
  311. package/esm2015/lib/_internal/product-summary.api.service.js +0 -47
  312. package/esm2015/lib/_internal/product.api.service.js +0 -48
  313. package/esm2015/lib/_internal/purchase.api.service.js +0 -60
  314. package/esm2015/lib/_internal/recurring-invoice.api.service.js +0 -61
  315. package/esm2015/lib/_internal/refund.api.service.js +0 -46
  316. package/esm2015/lib/_internal/retail-customer-configuration.api.service.js +0 -46
  317. package/esm2015/lib/_internal/sales-credit-note.api.service.js +0 -46
  318. package/esm2015/lib/_internal/sales-invoice.api.service.js +0 -51
  319. package/esm2015/lib/_internal/tax.api.service.js +0 -64
  320. package/esm2015/lib/_internal/vendor.api.service.js +0 -47
  321. package/esm2015/lib/applied_bundle/applied_bundle.js +0 -12
  322. package/esm2015/lib/applied_bundle/index.js +0 -2
  323. package/esm2015/lib/applied_discount/applied_discount.js +0 -48
  324. package/esm2015/lib/applied_discount/index.js +0 -2
  325. package/esm2015/lib/bank_account/bank-account.service.js +0 -38
  326. package/esm2015/lib/bank_account/bank_account.js +0 -13
  327. package/esm2015/lib/bank_account/index.js +0 -3
  328. package/esm2015/lib/bank_reconciliation/bank-reconciliation.service.js +0 -54
  329. package/esm2015/lib/bank_reconciliation/index.js +0 -3
  330. package/esm2015/lib/bank_reconciliation/payout.js +0 -53
  331. package/esm2015/lib/billable-item/billable-item.js +0 -40
  332. package/esm2015/lib/billable-item/billable-item.service.js +0 -31
  333. package/esm2015/lib/billable-item/index.js +0 -2
  334. package/esm2015/lib/billing-host.service.js +0 -41
  335. package/esm2015/lib/billing.service.js +0 -376
  336. package/esm2015/lib/bundle/bundle.js +0 -37
  337. package/esm2015/lib/bundle/bundle.service.js +0 -56
  338. package/esm2015/lib/bundle/index.js +0 -2
  339. package/esm2015/lib/contract/contract.js +0 -21
  340. package/esm2015/lib/contract/contract.service.js +0 -39
  341. package/esm2015/lib/contract/dimension.js +0 -21
  342. package/esm2015/lib/contract/index.js +0 -5
  343. package/esm2015/lib/contract/mutations.js +0 -11
  344. package/esm2015/lib/contract-document/contract-document.js +0 -9
  345. package/esm2015/lib/contract-document/contract-document.service.js +0 -68
  346. package/esm2015/lib/contract-document/index.js +0 -2
  347. package/esm2015/lib/contract-document/list-contract-document.js +0 -2
  348. package/esm2015/lib/core/index.js +0 -3
  349. package/esm2015/lib/core/paged-response.js +0 -8
  350. package/esm2015/lib/core/sort-direction.js +0 -6
  351. package/esm2015/lib/credit/credit.js +0 -8
  352. package/esm2015/lib/credit/credit.service.js +0 -33
  353. package/esm2015/lib/credit/index.js +0 -2
  354. package/esm2015/lib/customer_summary/customer-summary.js +0 -15
  355. package/esm2015/lib/discount/discount.js +0 -18
  356. package/esm2015/lib/discount/discount.service.js +0 -73
  357. package/esm2015/lib/discount/discount_type.js +0 -32
  358. package/esm2015/lib/discount/index.js +0 -3
  359. package/esm2015/lib/discount/list-discount.js +0 -2
  360. package/esm2015/lib/http-shared/error-handlers.js +0 -20
  361. package/esm2015/lib/index.js +0 -38
  362. package/esm2015/lib/invoice/index.js +0 -3
  363. package/esm2015/lib/invoice/invoice.js +0 -198
  364. package/esm2015/lib/invoice/invoice.service.js +0 -254
  365. package/esm2015/lib/invoice/list-invoice.js +0 -2
  366. package/esm2015/lib/invoice-template/index.js +0 -2
  367. package/esm2015/lib/invoice-template/invoice-template.js +0 -38
  368. package/esm2015/lib/invoice-template/invoice-template.service.js +0 -78
  369. package/esm2015/lib/merchant/balance.js +0 -2
  370. package/esm2015/lib/merchant/index.js +0 -5
  371. package/esm2015/lib/merchant/merchant.interface.js +0 -2
  372. package/esm2015/lib/merchant/merchant.js +0 -20
  373. package/esm2015/lib/merchant/merchant.service.js +0 -212
  374. package/esm2015/lib/merchant/payout-summary.js +0 -32
  375. package/esm2015/lib/merchant/retail-configuration.js +0 -57
  376. package/esm2015/lib/merchant-report/index.js +0 -2
  377. package/esm2015/lib/merchant-report/merchant-report-status.js +0 -2
  378. package/esm2015/lib/merchant-report/merchant-report.interfaces.js +0 -2
  379. package/esm2015/lib/merchant-report/merchant-report.js +0 -2
  380. package/esm2015/lib/merchant-report/merchant-report.service.js +0 -38
  381. package/esm2015/lib/payment/dispute.js +0 -92
  382. package/esm2015/lib/payment/index.js +0 -10
  383. package/esm2015/lib/payment/payment-allocation-type.js +0 -18
  384. package/esm2015/lib/payment/payment-source.js +0 -18
  385. package/esm2015/lib/payment/payment-status.js +0 -17
  386. package/esm2015/lib/payment/payment.js +0 -292
  387. package/esm2015/lib/payment/payment.service.js +0 -138
  388. package/esm2015/lib/payment/retail-payment.js +0 -70
  389. package/esm2015/lib/payment/retail-status.js +0 -50
  390. package/esm2015/lib/payment-card/index.js +0 -3
  391. package/esm2015/lib/payment-card/payment-card.js +0 -60
  392. package/esm2015/lib/payment-card/payment-card.service.js +0 -45
  393. package/esm2015/lib/payment-method/index.js +0 -2
  394. package/esm2015/lib/payment-method/payment-method.service.js +0 -43
  395. package/esm2015/lib/pricing/billing-strategy.js +0 -39
  396. package/esm2015/lib/pricing/commitment.js +0 -7
  397. package/esm2015/lib/pricing/currency.js +0 -86
  398. package/esm2015/lib/pricing/frequency.js +0 -42
  399. package/esm2015/lib/pricing/index.js +0 -12
  400. package/esm2015/lib/pricing/list-pricing-plan-product-filter.js +0 -2
  401. package/esm2015/lib/pricing/pricing-plan-product.js +0 -53
  402. package/esm2015/lib/pricing/pricing-plan.js +0 -14
  403. package/esm2015/lib/pricing/pricing-plan.service.js +0 -287
  404. package/esm2015/lib/pricing/product-pricing-rules.js +0 -10
  405. package/esm2015/lib/pricing/product-pricing-type.js +0 -31
  406. package/esm2015/lib/pricing/product-pricing.js +0 -44
  407. package/esm2015/lib/pricing/wholesale-pricing.service.js +0 -61
  408. package/esm2015/lib/product/index.js +0 -3
  409. package/esm2015/lib/product/list-products.js +0 -30
  410. package/esm2015/lib/product/product.js +0 -10
  411. package/esm2015/lib/product-summary/index.js +0 -3
  412. package/esm2015/lib/product-summary/product-summary.service.js +0 -42
  413. package/esm2015/lib/product-summary/subscription-retention.js +0 -19
  414. package/esm2015/lib/purchase/index.js +0 -4
  415. package/esm2015/lib/purchase/list-purchases.js +0 -17
  416. package/esm2015/lib/purchase/purchase.js +0 -79
  417. package/esm2015/lib/purchase/purchase.service.js +0 -31
  418. package/esm2015/lib/purchase/purchase_status.js +0 -26
  419. package/esm2015/lib/recurring_invoice/collection-method.js +0 -31
  420. package/esm2015/lib/recurring_invoice/index.js +0 -6
  421. package/esm2015/lib/recurring_invoice/interval.js +0 -42
  422. package/esm2015/lib/recurring_invoice/payment-processor.js +0 -32
  423. package/esm2015/lib/recurring_invoice/recurring-invoice.js +0 -123
  424. package/esm2015/lib/recurring_invoice/recurring-invoice.service.js +0 -64
  425. package/esm2015/lib/recurring_invoice/status.js +0 -37
  426. package/esm2015/lib/refund/index.js +0 -3
  427. package/esm2015/lib/refund/refund.js +0 -81
  428. package/esm2015/lib/refund/refund.service.js +0 -53
  429. package/esm2015/lib/retail-customer-configuration/index.js +0 -3
  430. package/esm2015/lib/retail-customer-configuration/retail-customer-configuration.js +0 -44
  431. package/esm2015/lib/retail-customer-configuration/retail-customer-configuration.service.js +0 -39
  432. package/esm2015/lib/revenue/index.js +0 -2
  433. package/esm2015/lib/revenue/revenue.interfaces.js +0 -2
  434. package/esm2015/lib/revenue/revenue.service.js +0 -34
  435. package/esm2015/lib/sales-credit-note/index.js +0 -3
  436. package/esm2015/lib/sales-credit-note/sales-credit-note.js +0 -53
  437. package/esm2015/lib/sales-credit-note/sales-credit-note.service.js +0 -72
  438. package/esm2015/lib/sales-invoice/index.js +0 -3
  439. package/esm2015/lib/sales-invoice/sales-invoice.js +0 -87
  440. package/esm2015/lib/sales-invoice/sales-invoice.service.js +0 -77
  441. package/esm2015/lib/sku.js +0 -4
  442. package/esm2015/lib/stripe-file/file.js +0 -2
  443. package/esm2015/lib/stripe-file/index.js +0 -3
  444. package/esm2015/lib/stripe-file/purpose.js +0 -13
  445. package/esm2015/lib/stripe-file/stripe-file.service.js +0 -35
  446. package/esm2015/lib/subscription/can-create-subscriptions-item.js +0 -2
  447. package/esm2015/lib/subscription/index.js +0 -2
  448. package/esm2015/lib/tax-rate/index.js +0 -2
  449. package/esm2015/lib/tax-rate/tax-rate.js +0 -13
  450. package/esm2015/lib/tax-rate/tax-rate.service.js +0 -86
  451. package/esm2015/public_api.js +0 -2
  452. package/esm2015/vendasta-billing.js +0 -5
  453. package/fesm2015/vendasta-billing.js.map +0 -1
  454. package/lib/applied_bundle/applied_bundle.d.ts +0 -15
  455. package/lib/applied_bundle/index.d.ts +0 -1
  456. package/lib/applied_discount/applied_discount.d.ts +0 -26
  457. package/lib/applied_discount/index.d.ts +0 -1
  458. package/lib/bank_account/bank-account.service.d.ts +0 -11
  459. package/lib/bank_account/bank_account.d.ts +0 -12
  460. package/lib/bank_account/index.d.ts +0 -3
  461. package/lib/bank_reconciliation/bank-reconciliation.service.d.ts +0 -10
  462. package/lib/bank_reconciliation/index.d.ts +0 -2
  463. package/lib/bank_reconciliation/payout.d.ts +0 -37
  464. package/lib/billable-item/billable-item.d.ts +0 -40
  465. package/lib/billable-item/billable-item.service.d.ts +0 -10
  466. package/lib/billable-item/index.d.ts +0 -2
  467. package/lib/billing-host.service.d.ts +0 -11
  468. package/lib/billing.service.d.ts +0 -88
  469. package/lib/bundle/bundle.d.ts +0 -26
  470. package/lib/bundle/bundle.service.d.ts +0 -14
  471. package/lib/bundle/index.d.ts +0 -2
  472. package/lib/contract/contract.d.ts +0 -20
  473. package/lib/contract/contract.service.d.ts +0 -23
  474. package/lib/contract/dimension.d.ts +0 -11
  475. package/lib/contract/index.d.ts +0 -5
  476. package/lib/contract/mutations.d.ts +0 -11
  477. package/lib/contract-document/contract-document.d.ts +0 -8
  478. package/lib/contract-document/contract-document.service.d.ts +0 -17
  479. package/lib/contract-document/index.d.ts +0 -3
  480. package/lib/contract-document/list-contract-document.d.ts +0 -3
  481. package/lib/core/index.d.ts +0 -2
  482. package/lib/core/paged-response.d.ts +0 -6
  483. package/lib/core/sort-direction.d.ts +0 -4
  484. package/lib/credit/credit.d.ts +0 -7
  485. package/lib/credit/credit.service.d.ts +0 -9
  486. package/lib/credit/index.d.ts +0 -2
  487. package/lib/customer_summary/customer-summary.d.ts +0 -9
  488. package/lib/discount/discount.d.ts +0 -17
  489. package/lib/discount/discount.service.d.ts +0 -15
  490. package/lib/discount/discount_type.d.ts +0 -9
  491. package/lib/discount/index.d.ts +0 -4
  492. package/lib/discount/list-discount.d.ts +0 -5
  493. package/lib/http-shared/error-handlers.d.ts +0 -4
  494. package/lib/invoice/index.d.ts +0 -3
  495. package/lib/invoice/invoice.d.ts +0 -86
  496. package/lib/invoice/invoice.service.d.ts +0 -40
  497. package/lib/invoice/list-invoice.d.ts +0 -15
  498. package/lib/invoice-template/index.d.ts +0 -2
  499. package/lib/invoice-template/invoice-template.d.ts +0 -35
  500. package/lib/invoice-template/invoice-template.service.d.ts +0 -14
  501. package/lib/merchant/balance.d.ts +0 -5
  502. package/lib/merchant/index.d.ts +0 -7
  503. package/lib/merchant/merchant.d.ts +0 -19
  504. package/lib/merchant/merchant.interface.d.ts +0 -3
  505. package/lib/merchant/merchant.service.d.ts +0 -59
  506. package/lib/merchant/payout-summary.d.ts +0 -19
  507. package/lib/merchant/retail-configuration.d.ts +0 -24
  508. package/lib/merchant-report/index.d.ts +0 -4
  509. package/lib/merchant-report/merchant-report-status.d.ts +0 -1
  510. package/lib/merchant-report/merchant-report.d.ts +0 -8
  511. package/lib/merchant-report/merchant-report.interfaces.d.ts +0 -5
  512. package/lib/merchant-report/merchant-report.service.d.ts +0 -12
  513. package/lib/payment/dispute.d.ts +0 -61
  514. package/lib/payment/index.d.ts +0 -9
  515. package/lib/payment/payment-allocation-type.d.ts +0 -7
  516. package/lib/payment/payment-source.d.ts +0 -7
  517. package/lib/payment/payment-status.d.ts +0 -7
  518. package/lib/payment/payment.d.ts +0 -42
  519. package/lib/payment/payment.service.d.ts +0 -24
  520. package/lib/payment/retail-payment.d.ts +0 -33
  521. package/lib/payment/retail-status.d.ts +0 -24
  522. package/lib/payment-card/index.d.ts +0 -2
  523. package/lib/payment-card/payment-card.d.ts +0 -41
  524. package/lib/payment-card/payment-card.service.d.ts +0 -13
  525. package/lib/payment-method/index.d.ts +0 -1
  526. package/lib/payment-method/payment-method.service.d.ts +0 -10
  527. package/lib/pricing/billing-strategy.d.ts +0 -11
  528. package/lib/pricing/commitment.d.ts +0 -6
  529. package/lib/pricing/currency.d.ts +0 -29
  530. package/lib/pricing/frequency.d.ts +0 -10
  531. package/lib/pricing/index.d.ts +0 -11
  532. package/lib/pricing/list-pricing-plan-product-filter.d.ts +0 -4
  533. package/lib/pricing/pricing-plan-product.d.ts +0 -34
  534. package/lib/pricing/pricing-plan.d.ts +0 -13
  535. package/lib/pricing/pricing-plan.service.d.ts +0 -17
  536. package/lib/pricing/product-pricing-rules.d.ts +0 -7
  537. package/lib/pricing/product-pricing-type.d.ts +0 -9
  538. package/lib/pricing/product-pricing.d.ts +0 -37
  539. package/lib/pricing/wholesale-pricing.service.d.ts +0 -19
  540. package/lib/product/index.d.ts +0 -2
  541. package/lib/product/list-products.d.ts +0 -16
  542. package/lib/product/product.d.ts +0 -9
  543. package/lib/product-summary/index.d.ts +0 -2
  544. package/lib/product-summary/product-summary.service.d.ts +0 -10
  545. package/lib/product-summary/subscription-retention.d.ts +0 -20
  546. package/lib/purchase/index.d.ts +0 -4
  547. package/lib/purchase/list-purchases.d.ts +0 -27
  548. package/lib/purchase/purchase.d.ts +0 -56
  549. package/lib/purchase/purchase.service.d.ts +0 -10
  550. package/lib/purchase/purchase_status.d.ts +0 -10
  551. package/lib/recurring_invoice/collection-method.d.ts +0 -4
  552. package/lib/recurring_invoice/index.d.ts +0 -5
  553. package/lib/recurring_invoice/interval.d.ts +0 -10
  554. package/lib/recurring_invoice/payment-processor.d.ts +0 -8
  555. package/lib/recurring_invoice/recurring-invoice.d.ts +0 -62
  556. package/lib/recurring_invoice/recurring-invoice.service.d.ts +0 -14
  557. package/lib/recurring_invoice/status.d.ts +0 -9
  558. package/lib/refund/index.d.ts +0 -2
  559. package/lib/refund/refund.d.ts +0 -36
  560. package/lib/refund/refund.service.d.ts +0 -11
  561. package/lib/retail-customer-configuration/index.d.ts +0 -2
  562. package/lib/retail-customer-configuration/retail-customer-configuration.d.ts +0 -20
  563. package/lib/retail-customer-configuration/retail-customer-configuration.service.d.ts +0 -9
  564. package/lib/revenue/index.d.ts +0 -2
  565. package/lib/revenue/revenue.interfaces.d.ts +0 -3
  566. package/lib/revenue/revenue.service.d.ts +0 -11
  567. package/lib/sales-credit-note/index.d.ts +0 -2
  568. package/lib/sales-credit-note/sales-credit-note.d.ts +0 -30
  569. package/lib/sales-credit-note/sales-credit-note.service.d.ts +0 -16
  570. package/lib/sales-invoice/index.d.ts +0 -2
  571. package/lib/sales-invoice/sales-invoice.d.ts +0 -42
  572. package/lib/sales-invoice/sales-invoice.service.d.ts +0 -16
  573. package/lib/sku.d.ts +0 -3
  574. package/lib/stripe-file/file.d.ts +0 -6
  575. package/lib/stripe-file/index.d.ts +0 -3
  576. package/lib/stripe-file/purpose.d.ts +0 -11
  577. package/lib/stripe-file/stripe-file.service.d.ts +0 -12
  578. package/lib/subscription/can-create-subscriptions-item.d.ts +0 -6
  579. package/lib/subscription/index.d.ts +0 -1
  580. package/lib/tax-rate/index.d.ts +0 -2
  581. package/lib/tax-rate/tax-rate.d.ts +0 -20
  582. package/lib/tax-rate/tax-rate.service.d.ts +0 -15
  583. package/vendasta-billing.metadata.json +0 -1
@@ -1,41 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { EnvironmentService, Environment } from '@vendasta/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@vendasta/core";
5
- export class BillingHostService {
6
- constructor(environment) {
7
- this.environment = environment;
8
- this.billingHosts = new Map([
9
- [Environment.LOCAL, 'http://localhost:8088'],
10
- [Environment.DEMO, 'https://vbilling-demo.appspot.com'],
11
- [Environment.PROD, 'https://vbilling-prod.appspot.com']
12
- ]);
13
- this.microserviceHosts = new Map([
14
- [Environment.DEMO, 'https://billing-api-demo.vendasta-internal.com'],
15
- [Environment.PROD, 'https://billing-api-prod.vendasta-internal.com']
16
- ]);
17
- }
18
- get billingHost() {
19
- if (!this.env) {
20
- this.env = this.environment.getEnvironment();
21
- }
22
- return this.billingHosts.get(this.env);
23
- }
24
- get microserviceHost() {
25
- if (!this.env) {
26
- this.env = this.environment.getEnvironment();
27
- }
28
- return this.microserviceHosts.get(this.env);
29
- }
30
- get constructInvoiceRoute() {
31
- return `${this.billingHost}/internalApi/v1/invoice/construct/`;
32
- }
33
- }
34
- BillingHostService.ɵprov = i0.ɵɵdefineInjectable({ factory: function BillingHostService_Factory() { return new BillingHostService(i0.ɵɵinject(i1.EnvironmentService)); }, token: BillingHostService, providedIn: "root" });
35
- BillingHostService.decorators = [
36
- { type: Injectable, args: [{ providedIn: 'root' },] }
37
- ];
38
- BillingHostService.ctorParameters = () => [
39
- { type: EnvironmentService }
40
- ];
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlsbGluZy1ob3N0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL3dvcmtzcGFjZS9zZGtzL3R5cGVzY3JpcHQvc3JjL2JpbGxpbmdfc2RrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9iaWxsaW5nLWhvc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBR2pFLE1BQU0sT0FBTyxrQkFBa0I7SUFjN0IsWUFBb0IsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBWjNDLGlCQUFZLEdBQTZCLElBQUksR0FBRyxDQUFDO1lBQ3ZELENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSx1QkFBdUIsQ0FBQztZQUM1QyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsbUNBQW1DLENBQUM7WUFDdkQsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLG1DQUFtQyxDQUFDO1NBQ3hELENBQUMsQ0FBQztRQUNLLHNCQUFpQixHQUE2QixJQUFJLEdBQUcsQ0FBQztZQUM1RCxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsZ0RBQWdELENBQUM7WUFDcEUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLGdEQUFnRCxDQUFDO1NBQ3JFLENBQUMsQ0FBQztJQUtILENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUM5QztRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUM5QztRQUVELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxvQ0FBb0MsQ0FBQztJQUNqRSxDQUFDOzs7O1lBcENGLFVBQVUsU0FBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUM7OztZQUZ2QixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UsIEVudmlyb25tZW50IH0gZnJvbSAnQHZlbmRhc3RhL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBCaWxsaW5nSG9zdFNlcnZpY2Uge1xuXG4gIHByaXZhdGUgYmlsbGluZ0hvc3RzOiBNYXA8RW52aXJvbm1lbnQsIHN0cmluZz4gPSBuZXcgTWFwKFtcbiAgICBbRW52aXJvbm1lbnQuTE9DQUwsICdodHRwOi8vbG9jYWxob3N0OjgwODgnXSxcbiAgICBbRW52aXJvbm1lbnQuREVNTywgJ2h0dHBzOi8vdmJpbGxpbmctZGVtby5hcHBzcG90LmNvbSddLFxuICAgIFtFbnZpcm9ubWVudC5QUk9ELCAnaHR0cHM6Ly92YmlsbGluZy1wcm9kLmFwcHNwb3QuY29tJ11cbiAgXSk7XG4gIHByaXZhdGUgbWljcm9zZXJ2aWNlSG9zdHM6IE1hcDxFbnZpcm9ubWVudCwgc3RyaW5nPiA9IG5ldyBNYXAoW1xuICAgIFtFbnZpcm9ubWVudC5ERU1PLCAnaHR0cHM6Ly9iaWxsaW5nLWFwaS1kZW1vLnZlbmRhc3RhLWludGVybmFsLmNvbSddLFxuICAgIFtFbnZpcm9ubWVudC5QUk9ELCAnaHR0cHM6Ly9iaWxsaW5nLWFwaS1wcm9kLnZlbmRhc3RhLWludGVybmFsLmNvbSddXG4gIF0pO1xuXG4gIHByaXZhdGUgZW52OiBFbnZpcm9ubWVudDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVudmlyb25tZW50OiBFbnZpcm9ubWVudFNlcnZpY2UpIHtcbiAgfVxuXG4gIGdldCBiaWxsaW5nSG9zdCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5lbnYpIHtcbiAgICAgIHRoaXMuZW52ID0gdGhpcy5lbnZpcm9ubWVudC5nZXRFbnZpcm9ubWVudCgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmJpbGxpbmdIb3N0cy5nZXQodGhpcy5lbnYpO1xuICB9XG5cbiAgZ2V0IG1pY3Jvc2VydmljZUhvc3QoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuZW52KSB7XG4gICAgICB0aGlzLmVudiA9IHRoaXMuZW52aXJvbm1lbnQuZ2V0RW52aXJvbm1lbnQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5taWNyb3NlcnZpY2VIb3N0cy5nZXQodGhpcy5lbnYpO1xuICB9XG5cbiAgZ2V0IGNvbnN0cnVjdEludm9pY2VSb3V0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmJpbGxpbmdIb3N0fS9pbnRlcm5hbEFwaS92MS9pbnZvaWNlL2NvbnN0cnVjdC9gO1xuICB9XG59XG4iXX0=
@@ -1,376 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BillingApiService } from './_internal/billing.api.service';
3
- import { GenerateVendorReportRequest, GetPurchaseCostRequest, GetRevenueStatsRequest, } from './_internal/objects/api';
4
- import { GetBillableItemRequest, ListBillableItemsRequest, } from './_internal/objects/billable-item';
5
- import { PagedRequestOptions, } from './_internal/objects/common';
6
- import { ListMerchantBillingReportsRequest, } from './_internal/objects/merchant-report';
7
- import { ListContractsRequest, } from './_internal/objects/contract';
8
- import { GetMultiCustomerSummariesRequest, } from './_internal/objects/customer-summary';
9
- import { billingStrategyFromAPI, billingStrategyToAPI, pricingPlanProductFromApi, } from './pricing';
10
- import { CreatePricingPlanProductRequest, DeletePricingPlanProductRequest, GetPricingPlanProductRequest, ListPricingPlanProductsRequest, UpdatePricingPlanProductRequest, } from './_internal/objects/pricing-plan-product';
11
- import { GetMultiProductRequest, ListProductsRequest } from './_internal/objects/product';
12
- import { ListPurchaseRequest, RetryPurchaseRequest, VoidPurchaseRequest, } from './_internal/objects/purchase';
13
- import { CanCreateSubscriptionsRequest, ChangeFrequencyRequest, ChangeRenewalDateRequest, ChangeCustomUnitPriceRequest, } from './_internal/objects/subscription';
14
- import { MerchantReportStatus } from './_internal/enums/merchant-report.enum';
15
- import { map, mapTo } from 'rxjs/operators';
16
- import { Currency } from './_internal/enums/currency.enum';
17
- import { RevenueApiService } from './revenue/revenue.service';
18
- import { MerchantReportApiService } from './merchant-report/merchant-report.service';
19
- import { productPricingFromApi } from './pricing/product-pricing';
20
- import { PagedResponse } from './core/paged-response';
21
- import { frequencyToApi } from './pricing/frequency';
22
- import { Commitment as CommitmentApi } from './_internal/objects/commitment';
23
- import { currencyPricingMapToApi } from './pricing/pricing-plan-product';
24
- import { FieldMask } from './_internal/objects/field-mask';
25
- import { PurchaseApiService } from './_internal/purchase.api.service';
26
- import { purchaseFromApi, purchaseItemFromApi } from './purchase/purchase';
27
- import { VendorApiService } from './_internal/vendor.api.service';
28
- import { customerSummaryFromApi } from './customer_summary/customer-summary';
29
- import { contractFromApi } from './contract';
30
- import { productFromApi } from './product/product';
31
- import { listProductsFilterToApi } from './product/list-products';
32
- import { billableItemFromApi } from './billable-item/billable-item';
33
- import { PricingApiService } from './_internal/pricing.api.service';
34
- import * as i0 from "@angular/core";
35
- import * as i1 from "./_internal/billing.api.service";
36
- import * as i2 from "./revenue/revenue.service";
37
- import * as i3 from "./merchant-report/merchant-report.service";
38
- import * as i4 from "./_internal/pricing.api.service";
39
- import * as i5 from "./_internal/purchase.api.service";
40
- import * as i6 from "./_internal/vendor.api.service";
41
- export class BillingService {
42
- constructor(billingApi, revenueApi, merchantReportApi, pricingApi, purchaseApi, vendorApi) {
43
- this.billingApi = billingApi;
44
- this.revenueApi = revenueApi;
45
- this.merchantReportApi = merchantReportApi;
46
- this.pricingApi = pricingApi;
47
- this.purchaseApi = purchaseApi;
48
- this.vendorApi = vendorApi;
49
- }
50
- /** deprecated */
51
- getPurchaseCost(merchantId, sku, quantity) {
52
- const req = new GetPurchaseCostRequest({
53
- merchantId: merchantId,
54
- sku: sku,
55
- quantity: quantity,
56
- });
57
- return this.billingApi.getPurchaseCost(req).pipe(map(response => {
58
- if (!response.currency) {
59
- response.currency = Currency.USD;
60
- }
61
- return response;
62
- }));
63
- }
64
- /** deprecated: Use canCreateSubscriptionsWithFrequencies instead. */
65
- canCreateSubscriptions(merchantId, skus) {
66
- const req = new CanCreateSubscriptionsRequest({
67
- merchantId: merchantId,
68
- skus: skus,
69
- });
70
- return this.billingApi.canCreateSubscriptions(req);
71
- }
72
- canCreateSubscriptionsWithFrequencies(merchantId, items) {
73
- const req = new CanCreateSubscriptionsRequest({
74
- merchantId: merchantId,
75
- items: items && items.map(item => {
76
- if (!item) {
77
- return null;
78
- }
79
- return {
80
- sku: item.sku,
81
- frequency: frequencyToApi(item.frequency),
82
- quantity: item.quantity || 0,
83
- };
84
- }),
85
- });
86
- return this.billingApi.canCreateSubscriptions(req);
87
- }
88
- downloadRevenueCsv(filename) {
89
- return this.revenueApi.downloadCsv({ filename });
90
- }
91
- downloadBillingReportCsv(merchantId, year, month) {
92
- return this.merchantReportApi.downloadCsv({ merchantId, year, month });
93
- }
94
- generateBillingReportCsv(merchantId, year, month) {
95
- return this.merchantReportApi.generateCsv({ merchantId, year, month });
96
- }
97
- listMerchantBillingReports(merchantId, cursor, pageSize) {
98
- const req = new ListMerchantBillingReportsRequest({
99
- merchantId: merchantId,
100
- pagingOptions: new PagedRequestOptions({ cursor, pageSize }),
101
- });
102
- return this.billingApi.listMerchantBillingReports(req).pipe(map(resp => {
103
- const reports = (resp.reports || []).map(r => {
104
- return {
105
- merchantId: r.merchantId,
106
- year: r.year,
107
- month: r.month,
108
- created: r.created,
109
- status: MerchantReportStatus[r.status || 0],
110
- };
111
- });
112
- return new PagedResponse(reports, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore);
113
- }));
114
- }
115
- canBillCreateSnapshot(merchantId) {
116
- return this.billingApi.canBillItem({ merchantId: merchantId, sku: 'ST' });
117
- }
118
- canBillRefreshSnapshot(merchantId) {
119
- return this.billingApi.canBillItem({ merchantId: merchantId, sku: 'snapshotreportrefresh' });
120
- }
121
- canBillItem(merchantId, sku) {
122
- return this.billingApi.canBillItem({ merchantId: merchantId, sku: sku }).pipe(map(response => response.ok));
123
- }
124
- createPricingPlanProduct(pricingPlanId, sku, frequency, pricing, commitment, strategy, volumeCommitment) {
125
- const request = new CreatePricingPlanProductRequest({ pricingPlanId, sku, volumeCommitment });
126
- request.frequency = frequencyToApi(frequency);
127
- request.pricing = currencyPricingMapToApi(pricing);
128
- request.commitment = new CommitmentApi(commitment);
129
- request.strategy = billingStrategyToAPI(strategy);
130
- return this.billingApi.createPricingPlanProduct(request).pipe(mapTo(true));
131
- }
132
- updatePricingPlanProduct(pricingPlanId, sku, { frequency, pricing, commitment, strategy, volumeCommitment }) {
133
- const fieldMask = new FieldMask({ paths: [] });
134
- const request = new UpdatePricingPlanProductRequest({ pricingPlanId, sku });
135
- if (frequency !== null) {
136
- request.frequency = frequencyToApi(frequency);
137
- fieldMask.paths.push('frequency');
138
- }
139
- if (pricing !== null) {
140
- request.pricing = currencyPricingMapToApi(pricing);
141
- fieldMask.paths.push('pricing');
142
- }
143
- if (commitment !== null) {
144
- request.commitment = new CommitmentApi(commitment);
145
- fieldMask.paths.push('commitment');
146
- }
147
- if (strategy !== null) {
148
- request.strategy = billingStrategyToAPI(strategy);
149
- fieldMask.paths.push('strategy');
150
- }
151
- if (volumeCommitment !== null) {
152
- request.volumeCommitment = volumeCommitment;
153
- fieldMask.paths.push('volumeCommitment');
154
- }
155
- return this.billingApi.updatePricingPlanProduct(request).pipe(mapTo(true));
156
- }
157
- deletePricingPlanProduct(pricingPlanId, sku) {
158
- const request = new DeletePricingPlanProductRequest({ pricingPlanId, sku });
159
- return this.billingApi.deletePricingPlanProduct(request).pipe(mapTo(true));
160
- }
161
- /** deprecated - Use getMultiWholesalePrices from the WholesalePricingService */
162
- getMultiProductPricing(merchantId, skus, pricingPlanId) {
163
- return this.billingApi.getMultiProductPricing({ merchantId, skus, pricingPlanId }).pipe(map(r => {
164
- const productPricesApi = r.productPrices || {};
165
- const productPricings = {};
166
- for (const k of Object.keys(productPricesApi)) {
167
- const productPricingResponse = productPricesApi[k];
168
- productPricings[k] = productPricingFromApi(productPricingResponse);
169
- }
170
- return productPricings;
171
- }));
172
- }
173
- /** deprecated - Use getMultiRetailPrices from the RetailPricingService */
174
- getMultiRetailPricing(merchantId, currency, skus, groupId) {
175
- const requestGroupId = groupId === undefined ? '' : groupId;
176
- return this.pricingApi.getMultiRetail({ merchantId, currency, skus, groupId: requestGroupId }).pipe(map(r => {
177
- const retailPricesApi = r.productPrices || {};
178
- const retailPricings = {};
179
- for (const k of Object.keys(retailPricesApi)) {
180
- const retailPricingResponse = retailPricesApi[k];
181
- retailPricings[k] = productPricingFromApi(retailPricingResponse);
182
- }
183
- return retailPricings;
184
- }));
185
- }
186
- listPricingPlanProducts(filters, cursor, pageSize) {
187
- const req = new ListPricingPlanProductsRequest({
188
- filters: filters,
189
- pagingOptions: new PagedRequestOptions({ cursor, pageSize }),
190
- });
191
- return this.billingApi.listPricingPlanProducts(req).pipe(map(response => {
192
- const products = (response.products || []).map(p => pricingPlanProductFromApi(p));
193
- return new PagedResponse(products, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore);
194
- }));
195
- }
196
- getPricingPlanProduct(pricingPlanId, sku) {
197
- const req = new GetPricingPlanProductRequest({ pricingPlanId, sku });
198
- return this.billingApi.getPricingPlanProduct(req).pipe(map(resp => {
199
- const ppp = pricingPlanProductFromApi(resp.pricingPlanProduct);
200
- ppp.defaultStrategy = billingStrategyFromAPI(resp.pricingPlanDefaultStrategy);
201
- return ppp;
202
- }));
203
- }
204
- listPurchases(filters, cursor, pageSize) {
205
- const req = new ListPurchaseRequest({
206
- filters: filters,
207
- pagingOptions: new PagedRequestOptions({ cursor, pageSize }),
208
- });
209
- return this.purchaseApi.list(req).pipe(map(response => {
210
- const purchases = (response.purchases || []).map(purchase => purchaseFromApi(purchase));
211
- return new PagedResponse(purchases, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore);
212
- }));
213
- }
214
- voidPurchase(merchantId, purchaseId, day) {
215
- const req = new VoidPurchaseRequest({ purchaseId, merchantId, day });
216
- return this.purchaseApi.void(req).pipe(mapTo(true));
217
- }
218
- listPurchaseItems(filters, cursor, pageSize) {
219
- const req = new ListPurchaseRequest({
220
- filters: filters,
221
- pagingOptions: new PagedRequestOptions({ cursor, pageSize }),
222
- });
223
- return this.purchaseApi.listPurchaseItems(req).pipe(map(response => {
224
- const purchaseItems = (response.purchaseItems || []).map(purchaseItem => purchaseItemFromApi(purchaseItem, response.currency));
225
- return new PagedResponse(purchaseItems, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore);
226
- }));
227
- }
228
- retryPurchase(merchantId, day, purchaseId) {
229
- const req = new RetryPurchaseRequest({
230
- merchantId: merchantId,
231
- day: day,
232
- purchaseId: purchaseId,
233
- });
234
- return this.purchaseApi.retry(req).pipe(map(() => true));
235
- }
236
- getMultiCustomerSummaries(merchantId, customerIds, periodStart, periodEnd) {
237
- const req = new GetMultiCustomerSummariesRequest({
238
- customerIds: customerIds,
239
- merchantId: merchantId,
240
- periodStart: periodStart,
241
- periodEnd: periodEnd,
242
- });
243
- return this.purchaseApi.getMultiCustomerSummaries(req).pipe(map(response => {
244
- return (response.customerSummaries || []).map(customerSummary => customerSummaryFromApi(customerSummary));
245
- }));
246
- }
247
- getMultiContract(merchantIds) {
248
- return this.billingApi.getMultiContract({ merchantIds: merchantIds }).pipe(map(resp => {
249
- const contractsAPI = resp.contracts || {};
250
- const contracts = {};
251
- for (const k of Object.keys(contractsAPI)) {
252
- const contractResponse = contractsAPI[k];
253
- contracts[k] = contractFromApi(contractResponse);
254
- }
255
- return contracts;
256
- }));
257
- }
258
- generateVendorReport(skus, periodStart, periodEnd, vendorName, markAsApproved) {
259
- const req = new GenerateVendorReportRequest({
260
- skus: skus,
261
- periodStart: periodStart,
262
- periodEnd: periodEnd,
263
- vendorName: vendorName,
264
- markAsApproved: markAsApproved,
265
- });
266
- return this.vendorApi.generateReport(req).pipe(map(response => response.url));
267
- }
268
- getVendorStats(skus, periodStart, periodEnd) {
269
- const req = new GetRevenueStatsRequest({
270
- skus: skus,
271
- periodStart: periodStart,
272
- periodEnd: periodEnd,
273
- });
274
- return this.vendorApi.getRevenueStats(req).pipe(map(response => response.totalRevenue || 0));
275
- }
276
- listContracts(cursor, pageSize) {
277
- const req = new ListContractsRequest({
278
- pagingOptions: new PagedRequestOptions({ cursor, pageSize }),
279
- });
280
- return this.billingApi.listContracts(req).pipe(map(response => {
281
- const contracts = (response.contracts || []).map(c => contractFromApi(c));
282
- return new PagedResponse(contracts, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore);
283
- }));
284
- }
285
- listProducts(merchantId, searchTerm, filters, cursor, pageSize) {
286
- const apiFilters = listProductsFilterToApi(filters);
287
- const req = new ListProductsRequest({
288
- merchantId,
289
- searchTerm,
290
- filters: apiFilters,
291
- pagingOptions: new PagedRequestOptions({ cursor, pageSize }),
292
- });
293
- return this.billingApi.listProducts(req).pipe(map(response => {
294
- const products = (response.products || []).map(p => productFromApi(p));
295
- return new PagedResponse(products, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore);
296
- }));
297
- }
298
- getMultiProduct(skus) {
299
- const req = new GetMultiProductRequest({
300
- skus: skus
301
- });
302
- return this.billingApi.getMultiProduct(req).pipe(map((response) => {
303
- const productsMap = new Map();
304
- skus.forEach(sku => {
305
- productsMap[sku] = productFromApi(response.products[sku]);
306
- });
307
- return productsMap;
308
- }));
309
- }
310
- getBillableItem(merchantId, sku, customerId, orderId) {
311
- const req = new GetBillableItemRequest({
312
- merchantId: merchantId,
313
- sku: sku,
314
- customerId: customerId,
315
- orderId: orderId,
316
- });
317
- return this.billingApi.getBillableItem(req).pipe(map(response => billableItemFromApi(response.item)));
318
- }
319
- changeBillableItemFrequency(merchantId, sku, customerId, orderId, freq) {
320
- const req = new ChangeFrequencyRequest({
321
- merchantId: merchantId,
322
- sku: sku,
323
- customerId: customerId,
324
- orderId: orderId,
325
- frequency: frequencyToApi(freq),
326
- });
327
- return this.billingApi.changeFrequency(req);
328
- }
329
- changeBillableItemNextRenewalDate(merchantId, sku, customerId, orderId, next) {
330
- const req = new ChangeRenewalDateRequest({
331
- merchantId: merchantId,
332
- sku: sku,
333
- customerId: customerId,
334
- orderId: orderId,
335
- nextRenewalDate: next,
336
- });
337
- return this.billingApi.changeRenewalDate(req);
338
- }
339
- changeBillableItemCustomUnitPrice(merchantId, sku, customerId, orderId, amount) {
340
- const req = new ChangeCustomUnitPriceRequest({
341
- merchantId: merchantId,
342
- sku: sku,
343
- customerId: customerId,
344
- orderId: orderId,
345
- customUnitPrice: amount,
346
- });
347
- return this.billingApi.changeCustomUnitPrice(req);
348
- }
349
- listBillableItems(searchTerm, filters, cursor, pageSize) {
350
- const req = new ListBillableItemsRequest({
351
- searchTerm: searchTerm,
352
- filters: filters,
353
- pagingOptions: new PagedRequestOptions({ cursor, pageSize }),
354
- });
355
- return this.billingApi.listBillableItems(req).pipe(map(response => {
356
- const items = (response.items || []).map(item => billableItemFromApi(item));
357
- return new PagedResponse(items, response.pagingMetadata.nextCursor, response.pagingMetadata.hasMore);
358
- }));
359
- }
360
- startRevRecBackfillWorkflow() {
361
- return this.billingApi.startRevRecTemplateBackfill({});
362
- }
363
- }
364
- BillingService.ɵprov = i0.ɵɵdefineInjectable({ factory: function BillingService_Factory() { return new BillingService(i0.ɵɵinject(i1.BillingApiService), i0.ɵɵinject(i2.RevenueApiService), i0.ɵɵinject(i3.MerchantReportApiService), i0.ɵɵinject(i4.PricingApiService), i0.ɵɵinject(i5.PurchaseApiService), i0.ɵɵinject(i6.VendorApiService)); }, token: BillingService, providedIn: "root" });
365
- BillingService.decorators = [
366
- { type: Injectable, args: [{ providedIn: 'root' },] }
367
- ];
368
- BillingService.ctorParameters = () => [
369
- { type: BillingApiService },
370
- { type: RevenueApiService },
371
- { type: MerchantReportApiService },
372
- { type: PricingApiService },
373
- { type: PurchaseApiService },
374
- { type: VendorApiService }
375
- ];
376
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlsbGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii93b3Jrc3BhY2Uvc2Rrcy90eXBlc2NyaXB0L3NyYy9iaWxsaW5nX3Nkay9zcmMvIiwic291cmNlcyI6WyJsaWIvYmlsbGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixzQkFBc0IsRUFFdEIsc0JBQXNCLEdBQ3ZCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qix3QkFBd0IsR0FDekIsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsbUJBQW1CLEdBQ3BCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUNMLGlDQUFpQyxHQUNsQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFDTCxvQkFBb0IsR0FDckIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQ0wsZ0NBQWdDLEdBQ2pDLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUVMLHNCQUFzQixFQUN0QixvQkFBb0IsRUFHcEIseUJBQXlCLEdBQzFCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLDRCQUE0QixFQUM1Qiw4QkFBOEIsRUFDOUIsK0JBQStCLEdBQ2hDLE1BQU0sMENBQTBDLENBQUM7QUFDbEQsT0FBTyxFQUNMLHNCQUFzQixFQUV0QixtQkFBbUIsRUFDcEIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixtQkFBbUIsR0FDcEIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBRUwsNkJBQTZCLEVBQzdCLHNCQUFzQixF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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCaWxsaW5nQXBpU2VydmljZSB9IGZyb20gJy4vX2ludGVybmFsL2JpbGxpbmcuYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgR2VuZXJhdGVWZW5kb3JSZXBvcnRSZXF1ZXN0LFxuICBHZXRQdXJjaGFzZUNvc3RSZXF1ZXN0LFxuICBHZXRQdXJjaGFzZUNvc3RSZXNwb25zZSxcbiAgR2V0UmV2ZW51ZVN0YXRzUmVxdWVzdCxcbn0gZnJvbSAnLi9faW50ZXJuYWwvb2JqZWN0cy9hcGknO1xuaW1wb3J0IHtcbiAgR2V0QmlsbGFibGVJdGVtUmVxdWVzdCxcbiAgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0LFxufSBmcm9tICcuL19pbnRlcm5hbC9vYmplY3RzL2JpbGxhYmxlLWl0ZW0nO1xuaW1wb3J0IHtcbiAgUGFnZWRSZXF1ZXN0T3B0aW9ucyxcbn0gZnJvbSAnLi9faW50ZXJuYWwvb2JqZWN0cy9jb21tb24nO1xuaW1wb3J0IHtcbiAgTGlzdE1lcmNoYW50QmlsbGluZ1JlcG9ydHNSZXF1ZXN0LFxufSBmcm9tICcuL19pbnRlcm5hbC9vYmplY3RzL21lcmNoYW50LXJlcG9ydCc7XG5pbXBvcnQge1xuICBMaXN0Q29udHJhY3RzUmVxdWVzdCxcbn0gZnJvbSAnLi9faW50ZXJuYWwvb2JqZWN0cy9jb250cmFjdCc7XG5pbXBvcnQge1xuICBHZXRNdWx0aUN1c3RvbWVyU3VtbWFyaWVzUmVxdWVzdCxcbn0gZnJvbSAnLi9faW50ZXJuYWwvb2JqZWN0cy9jdXN0b21lci1zdW1tYXJ5JztcbmltcG9ydCB7XG4gIEJpbGxpbmdTdHJhdGVneSxcbiAgYmlsbGluZ1N0cmF0ZWd5RnJvbUFQSSxcbiAgYmlsbGluZ1N0cmF0ZWd5VG9BUEksXG4gIExpc3RQcmljaW5nUGxhblByb2R1Y3RGaWx0ZXIsXG4gIFByaWNpbmdQbGFuUHJvZHVjdCxcbiAgcHJpY2luZ1BsYW5Qcm9kdWN0RnJvbUFwaSxcbn0gZnJvbSAnLi9wcmljaW5nJztcbmltcG9ydCB7XG4gIENyZWF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gIERlbGV0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gIEdldFByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gIExpc3RQcmljaW5nUGxhblByb2R1Y3RzUmVxdWVzdCxcbiAgVXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbn0gZnJvbSAnLi9faW50ZXJuYWwvb2JqZWN0cy9wcmljaW5nLXBsYW4tcHJvZHVjdCc7XG5pbXBvcnQge1xuICBHZXRNdWx0aVByb2R1Y3RSZXF1ZXN0LFxuICBHZXRNdWx0aVByb2R1Y3RSZXNwb25zZSxcbiAgTGlzdFByb2R1Y3RzUmVxdWVzdFxufSBmcm9tICcuL19pbnRlcm5hbC9vYmplY3RzL3Byb2R1Y3QnO1xuaW1wb3J0IHtcbiAgTGlzdFB1cmNoYXNlSXRlbXNSZXF1ZXN0TGlzdFB1cmNoYXNlSXRlbXNGaWx0ZXJzLFxuICBMaXN0UHVyY2hhc2VSZXF1ZXN0LFxuICBSZXRyeVB1cmNoYXNlUmVxdWVzdCxcbiAgVm9pZFB1cmNoYXNlUmVxdWVzdCxcbn0gZnJvbSAnLi9faW50ZXJuYWwvb2JqZWN0cy9wdXJjaGFzZSc7XG5pbXBvcnQge1xuICBDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVzcG9uc2UsXG4gIENhbkNyZWF0ZVN1YnNjcmlwdGlvbnNSZXF1ZXN0LFxuICBDaGFuZ2VGcmVxdWVuY3lSZXF1ZXN0LFxuICBDaGFuZ2VSZW5ld2FsRGF0ZVJlcXVlc3QsXG4gIENoYW5nZUN1c3RvbVVuaXRQcmljZVJlcXVlc3QsXG59IGZyb20gJy4vX2ludGVybmFsL29iamVjdHMvc3Vic2NyaXB0aW9uJ1xuaW1wb3J0IHsgTWVyY2hhbnRSZXBvcnRTdGF0dXMgfSBmcm9tICcuL19pbnRlcm5hbC9lbnVtcy9tZXJjaGFudC1yZXBvcnQuZW51bSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIG1hcFRvIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ3VycmVuY3kgfSBmcm9tICcuL19pbnRlcm5hbC9lbnVtcy9jdXJyZW5jeS5lbnVtJztcbmltcG9ydCB7IFJldmVudWVBcGlTZXJ2aWNlIH0gZnJvbSAnLi9yZXZlbnVlL3JldmVudWUuc2VydmljZSc7XG5pbXBvcnQgeyBNZXJjaGFudFJlcG9ydEFwaVNlcnZpY2UgfSBmcm9tICcuL21lcmNoYW50LXJlcG9ydC9tZXJjaGFudC1yZXBvcnQuc2VydmljZSc7XG5pbXBvcnQgeyBNZXJjaGFudFJlcG9ydCB9IGZyb20gJy4vbWVyY2hhbnQtcmVwb3J0L21lcmNoYW50LXJlcG9ydCc7XG5pbXBvcnQge0h0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtQcm9kdWN0UHJpY2luZywgcHJvZHVjdFByaWNpbmdGcm9tQXBpfSBmcm9tICcuL3ByaWNpbmcvcHJvZHVjdC1wcmljaW5nJztcbmltcG9ydCB7UGFnZWRSZXNwb25zZX0gZnJvbSAnLi9jb3JlL3BhZ2VkLXJlc3BvbnNlJztcbmltcG9ydCB7IEZyZXF1ZW5jeSwgZnJlcXVlbmN5VG9BcGkgfSBmcm9tICcuL3ByaWNpbmcvZnJlcXVlbmN5JztcbmltcG9ydCB7IENvbW1pdG1lbnQgYXMgQ29tbWl0bWVudEFwaSB9IGZyb20gJy4vX2ludGVybmFsL29iamVjdHMvY29tbWl0bWVudCc7XG5pbXBvcnQgeyBDb21taXRtZW50IH0gZnJvbSAnLi9wcmljaW5nL2NvbW1pdG1lbnQnO1xuaW1wb3J0IHsgQ3VycmVuY3lQcmljaW5nTWFwLCBjdXJyZW5jeVByaWNpbmdNYXBUb0FwaSB9IGZyb20gJy4vcHJpY2luZy9wcmljaW5nLXBsYW4tcHJvZHVjdCc7XG5pbXBvcnQgeyBGaWVsZE1hc2sgfSBmcm9tICcuL19pbnRlcm5hbC9vYmplY3RzL2ZpZWxkLW1hc2snO1xuaW1wb3J0IHsgUHVyY2hhc2VBcGlTZXJ2aWNlIH0gZnJvbSAnLi9faW50ZXJuYWwvcHVyY2hhc2UuYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHVyY2hhc2UsIHB1cmNoYXNlRnJvbUFwaSwgUHVyY2hhc2VJdGVtLCBwdXJjaGFzZUl0ZW1Gcm9tQXBpIH0gZnJvbSAnLi9wdXJjaGFzZS9wdXJjaGFzZSc7XG5pbXBvcnQgeyBMaXN0UHVyY2hhc2VGaWx0ZXIgfSBmcm9tICcuL3B1cmNoYXNlL2xpc3QtcHVyY2hhc2VzJztcbmltcG9ydCB7IFZlbmRvckFwaVNlcnZpY2UgfSBmcm9tICcuL19pbnRlcm5hbC92ZW5kb3IuYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VzdG9tZXJTdW1tYXJ5LCBjdXN0b21lclN1bW1hcnlGcm9tQXBpIH0gZnJvbSAnLi9jdXN0b21lcl9zdW1tYXJ5L2N1c3RvbWVyLXN1bW1hcnknO1xuaW1wb3J0IHsgQ29udHJhY3QsIGNvbnRyYWN0RnJvbUFwaSB9IGZyb20gJy4vY29udHJhY3QnO1xuaW1wb3J0IHsgUHJvZHVjdCwgcHJvZHVjdEZyb21BcGkgfSBmcm9tICcuL3Byb2R1Y3QvcHJvZHVjdCc7XG5pbXBvcnQgeyBMaXN0UHJvZHVjdHNGaWx0ZXIsIGxpc3RQcm9kdWN0c0ZpbHRlclRvQXBpIH0gZnJvbSAnLi9wcm9kdWN0L2xpc3QtcHJvZHVjdHMnO1xuaW1wb3J0IHsgQmlsbGFibGVJdGVtLCBiaWxsYWJsZUl0ZW1Gcm9tQXBpLCBMaXN0QmlsbGFibGVJdGVtc0ZpbHRlciB9IGZyb20gJy4vYmlsbGFibGUtaXRlbS9iaWxsYWJsZS1pdGVtJztcbmltcG9ydCB7IFByaWNpbmdBcGlTZXJ2aWNlIH0gZnJvbSAnLi9faW50ZXJuYWwvcHJpY2luZy5hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBDYW5DcmVhdGVTdWJzY3JpcHRpb25zSXRlbSB9IGZyb20gJy4vc3Vic2NyaXB0aW9uJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgQmlsbGluZ1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJpbGxpbmdBcGk6IEJpbGxpbmdBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmV2ZW51ZUFwaTogUmV2ZW51ZUFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXJjaGFudFJlcG9ydEFwaTogTWVyY2hhbnRSZXBvcnRBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHJpY2luZ0FwaTogUHJpY2luZ0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwdXJjaGFzZUFwaTogUHVyY2hhc2VBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgdmVuZG9yQXBpOiBWZW5kb3JBcGlTZXJ2aWNlLFxuICApIHsgfVxuXG4gIC8qKiBkZXByZWNhdGVkICovXG4gIGdldFB1cmNoYXNlQ29zdChtZXJjaGFudElkOiBzdHJpbmcsIHNrdTogc3RyaW5nLCBxdWFudGl0eTogbnVtYmVyKTogT2JzZXJ2YWJsZTxHZXRQdXJjaGFzZUNvc3RSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcSA9IG5ldyBHZXRQdXJjaGFzZUNvc3RSZXF1ZXN0KHtcbiAgICAgIG1lcmNoYW50SWQ6IG1lcmNoYW50SWQsXG4gICAgICBza3U6IHNrdSxcbiAgICAgIHF1YW50aXR5OiBxdWFudGl0eSxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5iaWxsaW5nQXBpLmdldFB1cmNoYXNlQ29zdChyZXEpLnBpcGUoXG4gICAgICBtYXAocmVzcG9uc2UgPT4ge1xuICAgICAgICBpZiAoIXJlc3BvbnNlLmN1cnJlbmN5KSB7XG4gICAgICAgICAgcmVzcG9uc2UuY3VycmVuY3kgPSBDdXJyZW5jeS5VU0Q7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBkZXByZWNhdGVkOiBVc2UgY2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1dpdGhGcmVxdWVuY2llcyBpbnN0ZWFkLiAqL1xuICBjYW5DcmVhdGVTdWJzY3JpcHRpb25zKFxuICAgICAgbWVyY2hhbnRJZDogc3RyaW5nLFxuICAgICAgc2t1czogeyBbc2t1OiBzdHJpbmddOiBudW1iZXIgfVxuICAgICk6IE9ic2VydmFibGU8Q2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxID0gbmV3IENhbkNyZWF0ZVN1YnNjcmlwdGlvbnNSZXF1ZXN0KHtcbiAgICAgIG1lcmNoYW50SWQ6IG1lcmNoYW50SWQsXG4gICAgICBza3VzOiBza3VzLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmJpbGxpbmdBcGkuY2FuQ3JlYXRlU3Vic2NyaXB0aW9ucyhyZXEpO1xuICB9XG5cbiAgY2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1dpdGhGcmVxdWVuY2llcyhcbiAgICBtZXJjaGFudElkOiBzdHJpbmcsXG4gICAgaXRlbXM6IENhbkNyZWF0ZVN1YnNjcmlwdGlvbnNJdGVtW11cbiAgKTogT2JzZXJ2YWJsZTxDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXEgPSBuZXcgQ2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3Qoe1xuICAgICAgbWVyY2hhbnRJZDogbWVyY2hhbnRJZCxcbiAgICAgIGl0ZW1zOiBpdGVtcyAmJiBpdGVtcy5tYXAoaXRlbSA9PiB7XG4gICAgICAgIGlmICghaXRlbSkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc2t1OiBpdGVtLnNrdSxcbiAgICAgICAgICBmcmVxdWVuY3k6IGZyZXF1ZW5jeVRvQXBpKGl0ZW0uZnJlcXVlbmN5KSxcbiAgICAgICAgICBxdWFudGl0eTogaXRlbS5xdWFudGl0eSB8fCAwLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuYmlsbGluZ0FwaS5jYW5DcmVhdGVTdWJzY3JpcHRpb25zKHJlcSk7XG4gIH1cblxuICBkb3dubG9hZFJldmVudWVDc3YoZmlsZW5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLnJldmVudWVBcGkuZG93bmxvYWRDc3YoeyBmaWxlbmFtZSB9KTtcbiAgfVxuXG4gIGRvd25sb2FkQmlsbGluZ1JlcG9ydENzdihtZXJjaGFudElkOiBzdHJpbmcsIHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcik6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLm1lcmNoYW50UmVwb3J0QXBpLmRvd25sb2FkQ3N2KHsgbWVyY2hhbnRJZCwgeWVhciwgbW9udGggfSk7XG4gIH1cblxuICBnZW5lcmF0ZUJpbGxpbmdSZXBvcnRDc3YobWVyY2hhbnRJZDogc3RyaW5nLCB5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIpOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5tZXJjaGFudFJlcG9ydEFwaS5nZW5lcmF0ZUNzdih7IG1lcmNoYW50SWQsIHllYXIsIG1vbnRoIH0pO1xuICB9XG5cbiAgbGlzdE1lcmNoYW50QmlsbGluZ1JlcG9ydHMoXG4gICAgbWVyY2hhbnRJZDogc3RyaW5nLFxuICAgIGN1cnNvcjogc3RyaW5nLFxuICAgIHBhZ2VTaXplOiBudW1iZXIsXG4gICk6IE9ic2VydmFibGU8UGFnZWRSZXNwb25zZTxNZXJjaGFudFJlcG9ydD4+IHtcbiAgICBjb25zdCByZXEgPSBuZXcgTGlzdE1lcmNoYW50QmlsbGluZ1JlcG9ydHNSZXF1ZXN0KHtcbiAgICAgIG1lcmNoYW50SWQ6IG1lcmNoYW50SWQsXG4gICAgICBwYWdpbmdPcHRpb25zOiBuZXcgUGFnZWRSZXF1ZXN0T3B0aW9ucyh7IGN1cnNvciwgcGFnZVNpemUgfSksXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuYmlsbGluZ0FwaS5saXN0TWVyY2hhbnRCaWxsaW5nUmVwb3J0cyhyZXEpLnBpcGUoXG4gICAgICBtYXAocmVzcCA9PiB7XG4gICAgICAgIGNvbnN0IHJlcG9ydHMgPSAocmVzcC5yZXBvcnRzIHx8IFtdKS5tYXAociA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1lcmNoYW50SWQ6IHIubWVyY2hhbnRJZCxcbiAgICAgICAgICAgIHllYXI6IHIueWVhcixcbiAgICAgICAgICAgIG1vbnRoOiByLm1vbnRoLFxuICAgICAgICAgICAgY3JlYXRlZDogci5jcmVhdGVkLFxuICAgICAgICAgICAgc3RhdHVzOiBNZXJjaGFudFJlcG9ydFN0YXR1c1tyLnN0YXR1cyB8fCAwXSxcbiAgICAgICAgICB9IGFzIE1lcmNoYW50UmVwb3J0O1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ldyBQYWdlZFJlc3BvbnNlPE1lcmNoYW50UmVwb3J0PihyZXBvcnRzLCByZXNwLnBhZ2luZ01ldGFkYXRhLm5leHRDdXJzb3IsIHJlc3AucGFnaW5nTWV0YWRhdGEuaGFzTW9yZSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgY2FuQmlsbENyZWF0ZVNuYXBzaG90KG1lcmNoYW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgcmV0dXJuIHRoaXMuYmlsbGluZ0FwaS5jYW5CaWxsSXRlbSh7IG1lcmNoYW50SWQ6IG1lcmNoYW50SWQsIHNrdTogJ1NUJyB9KTtcbiAgfVxuXG4gIGNhbkJpbGxSZWZyZXNoU25hcHNob3QobWVyY2hhbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICByZXR1cm4gdGhpcy5iaWxsaW5nQXBpLmNhbkJpbGxJdGVtKHsgbWVyY2hhbnRJZDogbWVyY2hhbnRJZCwgc2t1OiAnc25hcHNob3RyZXBvcnRyZWZyZXNoJyB9KTtcbiAgfVxuXG4gIGNhbkJpbGxJdGVtKG1lcmNoYW50SWQ6IHN0cmluZywgc2t1OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5iaWxsaW5nQXBpLmNhbkJpbGxJdGVtKHsgbWVyY2hhbnRJZDogbWVyY2hhbnRJZCwgc2t1OiBza3UgfSkucGlwZShtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2Uub2spKTtcbiAgfVxuXG4gIGNyZWF0ZVByaWNpbmdQbGFuUHJvZHVjdChcbiAgICBwcmljaW5nUGxhbklkOiBzdHJpbmcsXG4gICAgc2t1OiBzdHJpbmcsXG4gICAgZnJlcXVlbmN5OiBGcmVxdWVuY3ksXG4gICAgcHJpY2luZzogQ3VycmVuY3lQcmljaW5nTWFwLFxuICAgIGNvbW1pdG1lbnQ6IENvbW1pdG1lbnQsXG4gICAgc3RyYXRlZ3k6IEJpbGxpbmdTdHJhdGVneSxcbiAgICB2b2x1bWVDb21taXRtZW50OiBudW1iZXJcbiAgKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0KHsgcHJpY2luZ1BsYW5JZCwgc2t1LCB2b2x1bWVDb21taXRtZW50IH0pO1xuICAgIHJlcXVlc3QuZnJlcXVlbmN5ID0gZnJlcXVlbmN5VG9BcGkoZnJlcXVlbmN5KTtcbiAgICByZXF1ZXN0LnByaWNpbmcgPSBjdXJyZW5jeVByaWNpbmdNYXBUb0FwaShwcmljaW5nKTtcbiAgICByZXF1ZXN0LmNvbW1pdG1lbnQgPSBuZXcgQ29tbWl0bWVudEFwaShjb21taXRtZW50KTtcbiAgICByZXF1ZXN0LnN0cmF0ZWd5ID0gYmlsbGluZ1N0cmF0ZWd5VG9BUEkoc3RyYXRlZ3kpO1xuICAgIHJldHVybiB0aGlzLmJpbGxpbmdBcGkuY3JlYXRlUHJpY2luZ1BsYW5Qcm9kdWN0KHJlcXVlc3QpLnBpcGUobWFwVG8odHJ1ZSkpO1xuICB9XG5cbiAgdXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0KFxuICAgIHByaWNpbmdQbGFuSWQ6IHN0cmluZyxcbiAgICBza3U6IHN0cmluZyxcbiAgICB7XG4gICAgICBmcmVxdWVuY3ksXG4gICAgICBwcmljaW5nLFxuICAgICAgY29tbWl0bWVudCxcbiAgICAgIHN0cmF0ZWd5LFxuICAgICAgdm9sdW1lQ29tbWl0bWVudFxuICAgIH06IHtcbiAgICAgIGZyZXF1ZW5jeT86IEZyZXF1ZW5jeTtcbiAgICAgIHByaWNpbmc/OiBDdXJyZW5jeVByaWNpbmdNYXA7XG4gICAgICBjb21taXRtZW50PzogQ29tbWl0bWVudDtcbiAgICAgIHN0cmF0ZWd5PzogQmlsbGluZ1N0cmF0ZWd5O1xuICAgICAgdm9sdW1lQ29tbWl0bWVudD86IG51bWJlcjtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBmaWVsZE1hc2sgPSBuZXcgRmllbGRNYXNrKHsgcGF0aHM6IFtdIH0pO1xuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgVXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCh7IHByaWNpbmdQbGFuSWQsIHNrdSB9KTtcblxuICAgIGlmIChmcmVxdWVuY3kgIT09IG51bGwpIHtcbiAgICAgIHJlcXVlc3QuZnJlcXVlbmN5ID0gZnJlcXVlbmN5VG9BcGkoZnJlcXVlbmN5KTtcbiAgICAgIGZpZWxkTWFzay5wYXRocy5wdXNoKCdmcmVxdWVuY3knKTtcbiAgICB9XG4gICAgaWYgKHByaWNpbmcgIT09IG51bGwpIHtcbiAgICAgIHJlcXVlc3QucHJpY2luZyA9IGN1cnJlbmN5UHJpY2luZ01hcFRvQXBpKHByaWNpbmcpO1xuICAgICAgZmllbGRNYXNrLnBhdGhzLnB1c2goJ3ByaWNpbmcnKTtcbiAgICB9XG4gICAgaWYgKGNvbW1pdG1lbnQgIT09IG51bGwpIHtcbiAgICAgIHJlcXVlc3QuY29tbWl0bWVudCA9IG5ldyBDb21taXRtZW50QXBpKGNvbW1pdG1lbnQpO1xuICAgICAgZmllbGRNYXNrLnBhdGhzLnB1c2goJ2NvbW1pdG1lbnQnKTtcbiAgICB9XG4gICAgaWYgKHN0cmF0ZWd5ICE9PSBudWxsKSB7XG4gICAgICByZXF1ZXN0LnN0cmF0ZWd5ID0gYmlsbGluZ1N0cmF0ZWd5VG9BUEkoc3RyYXRlZ3kpO1xuICAgICAgZmllbGRNYXNrLnBhdGhzLnB1c2goJ3N0cmF0ZWd5Jyk7XG4gICAgfVxuICAgIGlmICh2b2x1bWVDb21taXRtZW50ICE9PSBudWxsKSB7XG4gICAgICByZXF1ZXN0LnZvbHVtZUNvbW1pdG1lbnQgPSB2b2x1bWVDb21taXRtZW50O1xuICAgICAgZmllbGRNYXNrLnBhdGhzLnB1c2goJ3ZvbHVtZUNvbW1pdG1lbnQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYmlsbGluZ0FwaS51cGRhdGVQcmljaW5nUGxhblByb2R1Y3QocmVxdWVzdCkucGlwZShtYXBUbyh0cnVlKSk7XG4gIH1cblxuICBkZWxldGVQcmljaW5nUGxhblByb2R1Y3QocHJpY2luZ1BsYW5JZDogc3RyaW5nLCBza3U6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgRGVsZXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCh7IHByaWNpbmdQbGFuSWQsIHNrdSB9KTtcbiAgICByZXR1cm4gdGhpcy5iaWxsaW5nQXBpLmRlbGV0ZVByaWNpbmdQbGFuUHJvZHVjdChyZXF1ZXN0KS5waXBlKG1hcFRvKHRydWUpKTtcbiAgfVxuXG4gIC8qKiBkZXByZWNhdGVkIC0gVXNlIGdldE11bHRpV2hvbGVzYWxlUHJpY2VzIGZyb20gdGhlIFdob2xlc2FsZVByaWNpbmdTZXJ2aWNlICovXG4gIGdldE11bHRpUHJvZHVjdFByaWNpbmcoXG4gICAgbWVyY2hhbnRJZDogc3RyaW5nLFxuICAgIHNrdXM6IHN0cmluZ1tdLFxuICAgIHByaWNpbmdQbGFuSWQ/OiBzdHJpbmcsXG4gICk6IE9ic2VydmFibGU8eyBbc2t1OiBzdHJpbmddOiBQcm9kdWN0UHJpY2luZyB9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmlsbGluZ0FwaS5nZXRNdWx0aVByb2R1Y3RQcmljaW5nKHsgbWVyY2hhbnRJZCwgc2t1cywgcHJpY2luZ1BsYW5JZCB9KS5waXBlKFxuICAgICAgbWFwKHIgPT4ge1xuICAgICAgICBjb25zdCBwcm9kdWN0UHJpY2VzQXBpID0gci5wcm9kdWN0UHJpY2VzIHx8IHt9O1xuICAgICAgICBjb25zdCBwcm9kdWN0UHJpY2luZ3MgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBrIG9mIE9iamVjdC5rZXlzKHByb2R1Y3RQcmljZXNBcGkpKSB7XG4gICAgICAgICAgY29uc3QgcHJvZHVjdFByaWNpbmdSZXNwb25zZSA9IHByb2R1Y3RQcmljZXNBcGlba107XG4gICAgICAgICAgcHJvZHVjdFByaWNpbmdzW2tdID0gcHJvZHVjdFByaWNpbmdGcm9tQXBpKHByb2R1Y3RQcmljaW5nUmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcm9kdWN0UHJpY2luZ3M7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqIGRlcHJlY2F0ZWQgLSBVc2UgZ2V0TXVsdGlSZXRhaWxQcmljZXMgZnJvbSB0aGUgUmV0YWlsUHJpY2luZ1NlcnZpY2UgKi9cbiAgZ2V0TXVsdGlSZXRhaWxQcmljaW5nKFxuICAgIG1lcmNoYW50SWQ6IHN0cmluZyxcbiAgICBjdXJyZW5jeTogQ3VycmVuY3ksXG4gICAgc2t1czogc3RyaW5nW10sXG4gICAgZ3JvdXBJZD86IHN0cmluZyxcbiAgKTogT2JzZXJ2YWJsZTx7IFtza3U6IHN0cmluZ106IFByb2R1Y3RQcmljaW5nIH0+IHtcbiAgICBjb25zdCByZXF1ZXN0R3JvdXBJZDogc3RyaW5nID0gZ3JvdXBJZCA9PT0gdW5kZWZpbmVkID8gJycgOiBncm91cElkO1xuICAgIHJldHVybiB0aGlzLnByaWNpbmdBcGkuZ2V0TXVsdGlSZXRhaWwoeyBtZXJjaGFudElkLCBjdXJyZW5jeSwgc2t1cywgZ3JvdXBJZDogcmVxdWVzdEdyb3VwSWQgfSkucGlwZShcbiAgICAgIG1hcChyID0+IHtcbiAgICAgICAgY29uc3QgcmV0YWlsUHJpY2VzQXBpID0gci5wcm9kdWN0UHJpY2VzIHx8IHt9O1xuICAgICAgICBjb25zdCByZXRhaWxQcmljaW5ncyA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXMocmV0YWlsUHJpY2VzQXBpKSkge1xuICAgICAgICAgIGNvbnN0IHJldGFpbFByaWNpbmdSZXNwb25zZSA9IHJldGFpbFByaWNlc0FwaVtrXVxuICAgICAgICAgIHJldGFpbFByaWNpbmdzW2tdID0gcHJvZHVjdFByaWNpbmdGcm9tQXBpKHJldGFpbFByaWNpbmdSZXNwb25zZSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV0YWlsUHJpY2luZ3M7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgbGlzdFByaWNpbmdQbGFuUHJvZHVjdHMoXG4gICAgZmlsdGVyczogTGlzdFByaWNpbmdQbGFuUHJvZHVjdEZpbHRlcixcbiAgICBjdXJzb3I6IHN0cmluZyxcbiAgICBwYWdlU2l6ZTogbnVtYmVyLFxuICApOiBPYnNlcnZhYmxlPFBhZ2VkUmVzcG9uc2U8UHJpY2luZ1BsYW5Qcm9kdWN0Pj4ge1xuICAgIGNvbnN0IHJlcSA9IG5ldyBMaXN0UHJpY2luZ1BsYW5Qcm9kdWN0c1JlcXVlc3Qoe1xuICAgICAgZmlsdGVyczogZmlsdGVycyxcbiAgICAgIHBhZ2luZ09wdGlvbnM6IG5ldyBQYWdlZFJlcXVlc3RPcHRpb25zKHsgY3Vyc29yLCBwYWdlU2l6ZSB9KSxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5iaWxsaW5nQXBpLmxpc3RQcmljaW5nUGxhblByb2R1Y3RzKHJlcSkucGlwZShcbiAgICAgIG1hcChyZXNwb25zZSA9PiB7XG4gICAgICAgIGNvbnN0IHByb2R1Y3RzID0gKHJlc3BvbnNlLnByb2R1Y3RzIHx8IFtdKS5tYXAocCA9PiBwcmljaW5nUGxhblByb2R1Y3RGcm9tQXBpKHApKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQYWdlZFJlc3BvbnNlKHByb2R1Y3RzLCByZXNwb25zZS5wYWdpbmdNZXRhZGF0YS5uZXh0Q3Vyc29yLCByZXNwb25zZS5wYWdpbmdNZXRhZGF0YS5oYXNNb3JlKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBnZXRQcmljaW5nUGxhblByb2R1Y3QocHJpY2luZ1BsYW5JZDogc3RyaW5nLCBza3U6IHN0cmluZyk6IE9ic2VydmFibGU8UHJpY2luZ1BsYW5Qcm9kdWN0PiB7XG4gICAgY29uc3QgcmVxID0gbmV3IEdldFByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QoeyBwcmljaW5nUGxhbklkLCBza3UgfSk7XG4gICAgcmV0dXJuIHRoaXMuYmlsbGluZ0FwaS5nZXRQcmljaW5nUGxhblByb2R1Y3QocmVxKS5waXBlKFxuICAgICAgbWFwKHJlc3AgPT4ge1xuICAgICAgICBjb25zdCBwcHA6IFByaWNpbmdQbGFuUHJvZHVjdCA9IHByaWNpbmdQbGFuUHJvZHVjdEZyb21BcGkocmVzcC5wcmljaW5nUGxhblByb2R1Y3QpO1xuICAgICAgICBwcHAuZGVmYXVsdFN0cmF0ZWd5ID0gYmlsbGluZ1N0cmF0ZWd5RnJvbUFQSShyZXNwLnByaWNpbmdQbGFuRGVmYXVsdFN0cmF0ZWd5KTtcbiAgICAgICAgcmV0dXJuIHBwcDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGxpc3RQdXJjaGFzZXMoZmlsdGVyczogTGlzdFB1cmNoYXNlRmlsdGVyLCBjdXJzb3I6IHN0cmluZywgcGFnZVNpemU6IG51bWJlcik6IE9ic2VydmFibGU8UGFnZWRSZXNwb25zZTxQdXJjaGFzZT4+IHtcbiAgICBjb25zdCByZXEgPSBuZXcgTGlzdFB1cmNoYXNlUmVxdWVzdCh7XG4gICAgICBmaWx0ZXJzOiBmaWx0ZXJzLFxuICAgICAgcGFnaW5nT3B0aW9uczogbmV3IFBhZ2VkUmVxdWVzdE9wdGlvbnMoeyBjdXJzb3IsIHBhZ2VTaXplIH0pLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLnB1cmNoYXNlQXBpLmxpc3QocmVxKS5waXBlKFxuICAgICAgbWFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgY29uc3QgcHVyY2hhc2VzID0gKHJlc3BvbnNlLnB1cmNoYXNlcyB8fCBbXSkubWFwKHB1cmNoYXNlID0+IHB1cmNoYXNlRnJvbUFwaShwdXJjaGFzZSkpO1xuICAgICAgICByZXR1cm4gbmV3IFBhZ2VkUmVzcG9uc2UocHVyY2hhc2VzLCByZXNwb25zZS5wYWdpbmdNZXRhZGF0YS5uZXh0Q3Vyc29yLCByZXNwb25zZS5wYWdpbmdNZXRhZGF0YS5oYXNNb3JlKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICB2b2lkUHVyY2hhc2UobWVyY2hhbnRJZDogc3RyaW5nLCBwdXJjaGFzZUlkOiBzdHJpbmcsIGRheTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3QgcmVxID0gbmV3IFZvaWRQdXJjaGFzZVJlcXVlc3QoeyBwdXJjaGFzZUlkLCBtZXJjaGFudElkLCBkYXkgfSk7XG4gICAgcmV0dXJuIHRoaXMucHVyY2hhc2VBcGkudm9pZChyZXEpLnBpcGUobWFwVG8odHJ1ZSkpXG4gIH1cblxuICBsaXN0UHVyY2hhc2VJdGVtcyhcbiAgICBmaWx0ZXJzOiBMaXN0UHVyY2hhc2VJdGVtc1JlcXVlc3RMaXN0UHVyY2hhc2VJdGVtc0ZpbHRlcnMsXG4gICAgY3Vyc29yOiBzdHJpbmcsXG4gICAgcGFnZVNpemU6IG51bWJlcixcbiAgKTogT2JzZXJ2YWJsZTxQYWdlZFJlc3BvbnNlPFB1cmNoYXNlSXRlbT4+IHtcbiAgICBjb25zdCByZXEgPSBuZXcgTGlzdFB1cmNoYXNlUmVxdWVzdCh7XG4gICAgICBmaWx0ZXJzOiBmaWx0ZXJzLFxuICAgICAgcGFnaW5nT3B0aW9uczogbmV3IFBhZ2VkUmVxdWVzdE9wdGlvbnMoeyBjdXJzb3IsIHBhZ2VTaXplIH0pLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLnB1cmNoYXNlQXBpLmxpc3RQdXJjaGFzZUl0ZW1zKHJlcSkucGlwZShcbiAgICAgIG1hcChyZXNwb25zZSA9PiB7XG4gICAgICAgIGNvbnN0IHB1cmNoYXNlSXRlbXMgPSAocmVzcG9uc2UucHVyY2hhc2VJdGVtcyB8fCBbXSkubWFwKHB1cmNoYXNlSXRlbSA9PlxuICAgICAgICAgIHB1cmNoYXNlSXRlbUZyb21BcGkocHVyY2hhc2VJdGVtLCByZXNwb25zZS5jdXJyZW5jeSksXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBuZXcgUGFnZWRSZXNwb25zZShwdXJjaGFzZUl0ZW1zLCByZXNwb25zZS5wYWdpbmdNZXRhZGF0YS5uZXh0Q3Vyc29yLCByZXNwb25zZS5wYWdpbmdNZXRhZGF0YS5oYXNNb3JlKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICByZXRyeVB1cmNoYXNlKG1lcmNoYW50SWQ6IHN0cmluZywgZGF5OiBzdHJpbmcsIHB1cmNoYXNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHJlcSA9IG5ldyBSZXRyeVB1cmNoYXNlUmVxdWVzdCh7XG4gICAgICBtZXJjaGFudElkOiBtZXJjaGFudElkLFxuICAgICAgZGF5OiBkYXksXG4gICAgICBwdXJjaGFzZUlkOiBwdXJjaGFzZUlkLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLnB1cmNoYXNlQXBpLnJldHJ5KHJlcSkucGlwZShtYXAoKCkgPT4gdHJ1ZSkpO1xuICB9XG5cbiAgZ2V0TXVsdGlDdXN0b21lclN1bW1hcmllcyhcbiAgICBtZXJjaGFudElkOiBzdHJpbmcsXG4gICAgY3VzdG9tZXJJZHM6IHN0cmluZ1tdLFxuICAgIHBlcmlvZFN0YXJ0OiBEYXRlLFxuICAgIHBlcmlvZEVuZDogRGF0ZSxcbiAgKTogT2JzZXJ2YWJsZTxDdXN0b21lclN1bW1hcnlbXT4ge1xuICAgIGNvbnN0IHJlcSA9IG5ldyBHZXRNdWx0aUN1c3RvbWVyU3VtbWFyaWVzUmVxdWVzdCh7XG4gICAgICBjdXN0b21lcklkczogY3VzdG9tZXJJZHMsXG4gICAgICBtZXJjaGFudElkOiBtZXJjaGFudElkLFxuICAgICAgcGVyaW9kU3RhcnQ6IHBlcmlvZFN0YXJ0LFxuICAgICAgcGVyaW9kRW5kOiBwZXJpb2RFbmQsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMucHVyY2hhc2VBcGkuZ2V0TXVsdGlDdXN0b21lclN1bW1hcmllcyhyZXEpLnBpcGUoXG4gICAgICBtYXAocmVzcG9uc2UgPT4ge1xuICAgICAgICByZXR1cm4gKHJlc3BvbnNlLmN1c3RvbWVyU3VtbWFyaWVzIHx8IFtdKS5tYXAoY3VzdG9tZXJTdW1tYXJ5ID0+IGN1c3RvbWVyU3VtbWFyeUZyb21BcGkoY3VzdG9tZXJTdW1tYXJ5KSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgZ2V0TXVsdGlDb250cmFjdChtZXJjaGFudElkczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPHsgW3NrdTogc3RyaW5nXTogQ29udHJhY3QgfT4ge1xuICAgIHJldHVybiB0aGlzLmJpbGxpbmdBcGkuZ2V0TXVsdGlDb250cmFjdCh7IG1lcmNoYW50SWRzOiBtZXJjaGFudElkcyB9KS5waXBlKFxuICAgICAgbWFwKHJlc3AgPT4ge1xuICAgICAgICBjb25zdCBjb250cmFjdHNBUEkgPSByZXNwLmNvbnRyYWN0cyB8fCB7fTtcbiAgICAgICAgY29uc3QgY29udHJhY3RzID0ge307XG4gICAgICAgIGZvciAoY29uc3QgayBvZiBPYmplY3Qua2V5cyhjb250cmFjdHNBUEkpKSB7XG4gICAgICAgICAgY29uc3QgY29udHJhY3RSZXNwb25zZSA9IGNvbnRyYWN0c0FQSVtrXTtcbiAgICAgICAgICBjb250cmFjdHNba10gPSBjb250cmFjdEZyb21BcGkoY29udHJhY3RSZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbnRyYWN0cztcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBnZW5lcmF0ZVZlbmRvclJlcG9ydChcbiAgICAgIHNrdXM6IHN0cmluZ1tdLFxuICAgICAgcGVyaW9kU3RhcnQ6IERhdGUsXG4gICAgICBwZXJpb2RFbmQ6IERhdGUsXG4gICAgICB2ZW5kb3JOYW1lOiBzdHJpbmcsXG4gICAgICBtYXJrQXNBcHByb3ZlZDogYm9vbGVhblxuICApOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGNvbnN0IHJlcSA9IG5ldyBHZW5lcmF0ZVZlbmRvclJlcG9ydFJlcXVlc3Qoe1xuICAgICAgc2t1czogc2t1cyxcbiAgICAgIHBlcmlvZFN0YXJ0OiBwZXJpb2RTdGFydCxcbiAgICAgIHBlcmlvZEVuZDogcGVyaW9kRW5kLFxuICAgICAgdmVuZG9yTmFtZTogdmVuZG9yTmFtZSxcbiAgICAgIG1hcmtBc0FwcHJvdmVkOiBtYXJrQXNBcHByb3ZlZCxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy52ZW5kb3JBcGkuZ2VuZXJhdGVSZXBvcnQocmVxKS5waXBlKG1hcChyZXNwb25zZSA9PiByZXNwb25zZS51cmwpKTtcbiAgfVxuXG4gIGdldFZlbmRvclN0YXRzKHNrdXM6IHN0cmluZ1tdLCBwZXJpb2RTdGFydDogRGF0ZSwgcGVyaW9kRW5kOiBEYXRlKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICBjb25zdCByZXEgPSBuZXcgR2V0UmV2ZW51ZVN0YXRzUmVxdWVzdCh7XG4gICAgICBza3VzOiBza3VzLFxuICAgICAgcGVyaW9kU3RhcnQ6IHBlcmlvZFN0YXJ0LFxuICAgICAgcGVyaW9kRW5kOiBwZXJpb2RFbmQsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMudmVuZG9yQXBpLmdldFJldmVudWVTdGF0cyhyZXEpLnBpcGUobWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRvdGFsUmV2ZW51ZSB8fCAwKSk7XG4gIH1cblxuICBsaXN0Q29udHJhY3RzKGN1cnNvcjogc3RyaW5nLCBwYWdlU2l6ZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxQYWdlZFJlc3BvbnNlPENvbnRyYWN0Pj4ge1xuICAgIGNvbnN0IHJlcSA9IG5ldyBMaXN0Q29udHJhY3RzUmVxdWVzdCh7XG4gICAgICBwYWdpbmdPcHRpb25zOiBuZXcgUGFnZWRSZXF1ZXN0T3B0aW9ucyh7IGN1cnNvciwgcGFnZVNpemUgfSksXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuYmlsbGluZ0FwaS5saXN0Q29udHJhY3RzKHJlcSkucGlwZShcbiAgICAgIG1hcChyZXNwb25zZSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRyYWN0cyA9IChyZXNwb25zZS5jb250cmFjdHMgfHwgW10pLm1hcChjID0+IGNvbnRyYWN0RnJvbUFwaShjKSk7XG4gICAgICAgIHJldHVybiBuZXcgUGFnZWRSZXNwb25zZShjb250cmFjdHMsIHJlc3BvbnNlLnBhZ2luZ01ldGFkYXRhLm5leHRDdXJzb3IsIHJlc3BvbnNlLnBhZ2luZ01ldGFkYXRhLmhhc01vcmUpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGxpc3RQcm9kdWN0cyhcbiAgICBtZXJjaGFudElkOiBzdHJpbmcsXG4gICAgc2VhcmNoVGVybTogc3RyaW5nLFxuICAgIGZpbHRlcnM6IExpc3RQcm9kdWN0c0ZpbHRlcixcbiAgICBjdXJzb3I6IHN0cmluZyxcbiAgICBwYWdlU2l6ZTogbnVtYmVyLFxuICApOiBPYnNlcnZhYmxlPFBhZ2VkUmVzcG9uc2U8UHJvZHVjdD4+IHtcbiAgICBjb25zdCBhcGlGaWx0ZXJzID0gbGlzdFByb2R1Y3RzRmlsdGVyVG9BcGkoZmlsdGVycyk7XG4gICAgY29uc3QgcmVxID0gbmV3IExpc3RQcm9kdWN0c1JlcXVlc3Qoe1xuICAgICAgbWVyY2hhbnRJZCxcbiAgICAgIHNlYXJjaFRlcm0sXG4gICAgICBmaWx0ZXJzOiBhcGlGaWx0ZXJzLFxuICAgICAgcGFnaW5nT3B0aW9uczogbmV3IFBhZ2VkUmVxdWVzdE9wdGlvbnMoeyBjdXJzb3IsIHBhZ2VTaXplIH0pLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmJpbGxpbmdBcGkubGlzdFByb2R1Y3RzKHJlcSkucGlwZShcbiAgICAgIG1hcChyZXNwb25zZSA9PiB7XG4gICAgICAgIGNvbnN0IHByb2R1Y3RzID0gKHJlc3BvbnNlLnByb2R1Y3RzIHx8IFtdKS5tYXAocCA9PiBwcm9kdWN0RnJvbUFwaShwKSk7XG4gICAgICAgIHJldHVybiBuZXcgUGFnZWRSZXNwb25zZShwcm9kdWN0cywgcmVzcG9uc2UucGFnaW5nTWV0YWRhdGEubmV4dEN1cnNvciwgcmVzcG9uc2UucGFnaW5nTWV0YWRhdGEuaGFzTW9yZSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgZ2V0TXVsdGlQcm9kdWN0KFxuICAgIHNrdXM6IHN0cmluZ1tdXG4gICk6IE9ic2VydmFibGU8TWFwPHN0cmluZywgUHJvZHVjdD4+IHtcbiAgICBjb25zdCByZXEgPSBuZXcgR2V0TXVsdGlQcm9kdWN0UmVxdWVzdCh7XG4gICAgICBza3VzOiBza3VzXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuYmlsbGluZ0FwaS5nZXRNdWx0aVByb2R1Y3QocmVxKS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogR2V0TXVsdGlQcm9kdWN0UmVzcG9uc2UpID0+IHtcbiAgICAgICAgY29uc3QgcHJvZHVjdHNNYXAgPSBuZXcgTWFwPHN0cmluZywgUHJvZHVjdD4oKTtcbiAgICAgICAgc2t1cy5mb3JFYWNoKHNrdSA9PiB7XG4gICAgICAgICAgcHJvZHVjdHNNYXBbc2t1XSA9IHByb2R1Y3RGcm9tQXBpKHJlc3BvbnNlLnByb2R1Y3RzW3NrdV0pXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcHJvZHVjdHNNYXBcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBnZXRCaWxsYWJsZUl0ZW0obWVyY2hhbnRJZDogc3RyaW5nLCBza3U6IHN0cmluZywgY3VzdG9tZXJJZDogc3RyaW5nLCBvcmRlcklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEJpbGxhYmxlSXRlbT4ge1xuICAgIGNvbnN0IHJlcSA9IG5ldyBHZXRCaWxsYWJsZUl0ZW1SZXF1ZXN0KHtcbiAgICAgIG1lcmNoYW50SWQ6IG1lcmNoYW50SWQsXG4gICAgICBza3U6IHNrdSxcbiAgICAgIGN1c3RvbWVySWQ6IGN1c3RvbWVySWQsXG4gICAgICBvcmRlcklkOiBvcmRlcklkLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuYmlsbGluZ0FwaS5nZXRCaWxsYWJsZUl0ZW0ocmVxKS5waXBlKG1hcChyZXNwb25zZSA9PiBiaWxsYWJsZUl0ZW1Gcm9tQXBpKHJlc3BvbnNlLml0ZW0pKSk7XG4gIH1cblxuICBjaGFuZ2VCaWxsYWJsZUl0ZW1GcmVxdWVuY3koXG4gICAgbWVyY2hhbnRJZDogc3RyaW5nLFxuICAgIHNrdTogc3RyaW5nLFxuICAgIGN1c3RvbWVySWQ6IHN0cmluZyxcbiAgICBvcmRlcklkOiBzdHJpbmcsXG4gICAgZnJlcTogRnJlcXVlbmN5KTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICBjb25zdCByZXEgPSBuZXcgQ2hhbmdlRnJlcXVlbmN5UmVxdWVzdCh7XG4gICAgICBtZXJjaGFudElkOiBtZXJjaGFudElkLFxuICAgICAgc2t1OiBza3UsXG4gICAgICBjdXN0b21lcklkOiBjdXN0b21lcklkLFxuICAgICAgb3JkZXJJZDogb3JkZXJJZCxcbiAgICAgIGZyZXF1ZW5jeTogZnJlcXVlbmN5VG9BcGkoZnJlcSksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5iaWxsaW5nQXBpLmNoYW5nZUZyZXF1ZW5jeShyZXEpO1xuICB9XG5cbiAgY2hhbmdlQmlsbGFibGVJdGVtTmV4dFJlbmV3YWxEYXRlKFxuICAgIG1lcmNoYW50SWQ6IHN0cmluZyxcbiAgICBza3U6IHN0cmluZyxcbiAgICBjdXN0b21lcklkOiBzdHJpbmcsXG4gICAgb3JkZXJJZDogc3RyaW5nLFxuICAgIG5leHQ6IERhdGUpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgIGNvbnN0IHJlcSA9IG5ldyBDaGFuZ2VSZW5ld2FsRGF0ZVJlcXVlc3Qoe1xuICAgICAgbWVyY2hhbnRJZDogbWVyY2hhbnRJZCxcbiAgICAgIHNrdTogc2t1LFxuICAgICAgY3VzdG9tZXJJZDogY3VzdG9tZXJJZCxcbiAgICAgIG9yZGVySWQ6IG9yZGVySWQsXG4gICAgICBuZXh0UmVuZXdhbERhdGU6IG5leHQsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5iaWxsaW5nQXBpLmNoYW5nZVJlbmV3YWxEYXRlKHJlcSk7XG4gIH1cblxuICBjaGFuZ2VCaWxsYWJsZUl0ZW1DdXN0b21Vbml0UHJpY2UoXG4gICAgICBtZXJjaGFudElkOiBzdHJpbmcsXG4gICAgICBza3U6IHN0cmluZyxcbiAgICAgIGN1c3RvbWVySWQ6IHN0cmluZyxcbiAgICAgIG9yZGVySWQ6IHN0cmluZyxcbiAgICAgIGFtb3VudDogbnVtYmVyKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICBjb25zdCByZXEgPSBuZXcgQ2hhbmdlQ3VzdG9tVW5pdFByaWNlUmVxdWVzdCh7XG4gICAgICBtZXJjaGFudElkOiBtZXJjaGFudElkLFxuICAgICAgc2t1OiBza3UsXG4gICAgICBjdXN0b21lcklkOiBjdXN0b21lcklkLFxuICAgICAgb3JkZXJJZDogb3JkZXJJZCxcbiAgICAgIGN1c3RvbVVuaXRQcmljZTogYW1vdW50LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuYmlsbGluZ0FwaS5jaGFuZ2VDdXN0b21Vbml0UHJpY2UocmVxKTtcbiAgfVxuXG4gIGxpc3RCaWxsYWJsZUl0ZW1zKFxuICAgIHNlYXJjaFRlcm06IHN0cmluZyxcbiAgICBmaWx0ZXJzOiBMaXN0QmlsbGFibGVJdGVtc0ZpbHRlcixcbiAgICBjdXJzb3I6IHN0cmluZyxcbiAgICBwYWdlU2l6ZTogbnVtYmVyXG4gICk6IE9ic2VydmFibGU8UGFnZWRSZXNwb25zZTxCaWxsYWJsZUl0ZW0+PiB7XG4gICAgY29uc3QgcmVxID0gbmV3IExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdCh7XG4gICAgICBzZWFyY2hUZXJtOiBzZWFyY2hUZXJtLFxuICAgICAgZmlsdGVyczogZmlsdGVycyxcbiAgICAgIHBhZ2luZ09wdGlvbnM6IG5ldyBQYWdlZFJlcXVlc3RPcHRpb25zKHtjdXJzb3IsIHBhZ2VTaXplfSksXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuYmlsbGluZ0FwaS5saXN0QmlsbGFibGVJdGVtcyhyZXEpLnBpcGUoXG4gICAgICBtYXAocmVzcG9uc2UgPT4ge1xuICAgICAgICBjb25zdCBpdGVtcyA9IChyZXNwb25zZS5pdGVtcyB8fCBbXSkubWFwKGl0ZW0gPT4gYmlsbGFibGVJdGVtRnJvbUFwaShpdGVtKSk7XG4gICAgICAgIHJldHVybiBuZXcgUGFnZWRSZXNwb25zZShpdGVtcywgcmVzcG9uc2UucGFnaW5nTWV0YWRhdGEubmV4dEN1cnNvciwgcmVzcG9uc2UucGFnaW5nTWV0YWRhdGEuaGFzTW9yZSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgc3RhcnRSZXZSZWNCYWNrZmlsbFdvcmtmbG93KCk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgcmV0dXJuIHRoaXMuYmlsbGluZ0FwaS5zdGFydFJldlJlY1RlbXBsYXRlQmFja2ZpbGwoe30pXG4gIH1cbn1cbiJdfQ==
@@ -1,37 +0,0 @@
1
- import { discountTypeFromApi, discountTypeToApi } from '../discount/discount_type';
2
- export function bundleFromApi(apiBundle) {
3
- if (!apiBundle) {
4
- return null;
5
- }
6
- const items = (apiBundle.items || []).map(item => bundleItemFromApi(item));
7
- return {
8
- merchantId: apiBundle.merchantId,
9
- bundleId: apiBundle.bundleId,
10
- name: apiBundle.name,
11
- hideBundleDetails: apiBundle.hideBundleDetails,
12
- items: items,
13
- created: apiBundle.created,
14
- updated: apiBundle.updated,
15
- };
16
- }
17
- export function bundleItemFromApi(apiBundleItem) {
18
- return {
19
- productId: apiBundleItem.productId,
20
- discountType: discountTypeFromApi(apiBundleItem.discountType),
21
- discountAmount: apiBundleItem.discountAmount,
22
- quantity: apiBundleItem.quantity,
23
- defaultSku: apiBundleItem.defaultSku,
24
- price: apiBundleItem.price,
25
- };
26
- }
27
- export function bundleItemToApi(bundleItem) {
28
- return {
29
- productId: bundleItem.productId,
30
- discountType: discountTypeToApi(bundleItem.discountType),
31
- discountAmount: bundleItem.discountAmount,
32
- quantity: bundleItem.quantity,
33
- defaultSku: bundleItem.defaultSku,
34
- price: bundleItem.price,
35
- };
36
- }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLmpzIiwic291cmNlUm9vdCI6Ii93b3Jrc3BhY2Uvc2Rrcy90eXBlc2NyaXB0L3NyYy9iaWxsaW5nX3Nkay9zcmMvIiwic291cmNlcyI6WyJsaWIvYnVuZGxlL2J1bmRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQTJCbkYsTUFBTSxVQUFVLGFBQWEsQ0FBQyxTQUFvQjtJQUM5QyxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ1osT0FBTyxJQUFJLENBQUM7S0FDZjtJQUNELE1BQU0sS0FBSyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzNFLE9BQU87UUFDSCxVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVU7UUFDaEMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRO1FBQzVCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtRQUNwQixpQkFBaUIsRUFBRSxTQUFTLENBQUMsaUJBQWlCO1FBQzlDLEtBQUssRUFBRSxLQUFLO1FBQ1osT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO1FBQzFCLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTztLQUNuQixDQUFBO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxhQUE0QjtJQUMxRCxPQUFPO1FBQ0gsU0FBUyxFQUFFLGFBQWEsQ0FBQyxTQUFTO1FBQ2xDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1FBQzdELGNBQWMsRUFBRSxhQUFhLENBQUMsY0FBYztRQUM1QyxRQUFRLEVBQUUsYUFBYSxDQUFDLFFBQVE7UUFDaEMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxVQUFVO1FBQ3BDLEtBQUssRUFBRSxhQUFhLENBQUMsS0FBSztLQUNmLENBQUE7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsVUFBc0I7SUFDbEQsT0FBTztRQUNILFNBQVMsRUFBRSxVQUFVLENBQUMsU0FBUztRQUMvQixZQUFZLEVBQUUsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztRQUN4RCxjQUFjLEVBQUUsVUFBVSxDQUFDLGNBQWM7UUFDekMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRO1FBQzdCLFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVTtRQUNqQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUs7S0FDVCxDQUFBO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXNjb3VudFR5cGUgfSBmcm9tICcuLi9kaXNjb3VudCc7XG5pbXBvcnQgeyBkaXNjb3VudFR5cGVGcm9tQXBpLCBkaXNjb3VudFR5cGVUb0FwaSB9IGZyb20gJy4uL2Rpc2NvdW50L2Rpc2NvdW50X3R5cGUnO1xuaW1wb3J0IHsgQnVuZGxlIGFzIEFQSUJ1bmRsZSwgQnVuZGxlSXRlbSBhcyBBUElCdW5kbGVJdGVtIH0gZnJvbSAnLi4vX2ludGVybmFsJztcblxuZXhwb3J0IGludGVyZmFjZSBCdW5kbGUge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBidW5kbGVJZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBoaWRlQnVuZGxlRGV0YWlsczogYm9vbGVhbjtcbiAgICBpdGVtczogQnVuZGxlSXRlbVtdO1xuICAgIGNyZWF0ZWQ6IERhdGU7XG4gICAgdXBkYXRlZDogRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdW5kbGVJdGVtIHtcbiAgICBwcm9kdWN0SWQ6IHN0cmluZztcbiAgICBkaXNjb3VudFR5cGU6IERpc2NvdW50VHlwZTtcbiAgICBkaXNjb3VudEFtb3VudDogbnVtYmVyO1xuICAgIHF1YW50aXR5OiBudW1iZXI7XG4gICAgZGVmYXVsdFNrdTogc3RyaW5nO1xuICAgIHByaWNlOiBQcmljZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmljZSB7XG4gICAgYW1vdW50OiBudW1iZXJcbiAgICBzZXR1cEZlZTogbnVtYmVyXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidW5kbGVGcm9tQXBpKGFwaUJ1bmRsZTogQVBJQnVuZGxlKTogQnVuZGxlIHtcbiAgICBpZiAoIWFwaUJ1bmRsZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgaXRlbXMgPSAoYXBpQnVuZGxlLml0ZW1zIHx8IFtdKS5tYXAoaXRlbSA9PiBidW5kbGVJdGVtRnJvbUFwaShpdGVtKSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWVyY2hhbnRJZDogYXBpQnVuZGxlLm1lcmNoYW50SWQsXG4gICAgICAgIGJ1bmRsZUlkOiBhcGlCdW5kbGUuYnVuZGxlSWQsXG4gICAgICAgIG5hbWU6IGFwaUJ1bmRsZS5uYW1lLFxuICAgICAgICBoaWRlQnVuZGxlRGV0YWlsczogYXBpQnVuZGxlLmhpZGVCdW5kbGVEZXRhaWxzLFxuICAgICAgICBpdGVtczogaXRlbXMsXG4gICAgICAgIGNyZWF0ZWQ6IGFwaUJ1bmRsZS5jcmVhdGVkLFxuICAgICAgICB1cGRhdGVkOiBhcGlCdW5kbGUudXBkYXRlZCxcbiAgICB9IGFzIEJ1bmRsZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVuZGxlSXRlbUZyb21BcGkoYXBpQnVuZGxlSXRlbTogQVBJQnVuZGxlSXRlbSk6IEJ1bmRsZUl0ZW0ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHByb2R1Y3RJZDogYXBpQnVuZGxlSXRlbS5wcm9kdWN0SWQsXG4gICAgICAgIGRpc2NvdW50VHlwZTogZGlzY291bnRUeXBlRnJvbUFwaShhcGlCdW5kbGVJdGVtLmRpc2NvdW50VHlwZSksXG4gICAgICAgIGRpc2NvdW50QW1vdW50OiBhcGlCdW5kbGVJdGVtLmRpc2NvdW50QW1vdW50LFxuICAgICAgICBxdWFudGl0eTogYXBpQnVuZGxlSXRlbS5xdWFudGl0eSxcbiAgICAgICAgZGVmYXVsdFNrdTogYXBpQnVuZGxlSXRlbS5kZWZhdWx0U2t1LFxuICAgICAgICBwcmljZTogYXBpQnVuZGxlSXRlbS5wcmljZSxcbiAgICB9IGFzIEJ1bmRsZUl0ZW1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1bmRsZUl0ZW1Ub0FwaShidW5kbGVJdGVtOiBCdW5kbGVJdGVtKTogQVBJQnVuZGxlSXRlbSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJvZHVjdElkOiBidW5kbGVJdGVtLnByb2R1Y3RJZCxcbiAgICAgICAgZGlzY291bnRUeXBlOiBkaXNjb3VudFR5cGVUb0FwaShidW5kbGVJdGVtLmRpc2NvdW50VHlwZSksXG4gICAgICAgIGRpc2NvdW50QW1vdW50OiBidW5kbGVJdGVtLmRpc2NvdW50QW1vdW50LFxuICAgICAgICBxdWFudGl0eTogYnVuZGxlSXRlbS5xdWFudGl0eSxcbiAgICAgICAgZGVmYXVsdFNrdTogYnVuZGxlSXRlbS5kZWZhdWx0U2t1LFxuICAgICAgICBwcmljZTogYnVuZGxlSXRlbS5wcmljZSxcbiAgICB9IGFzIEFQSUJ1bmRsZUl0ZW1cbn1cbiJdfQ==
@@ -1,56 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { map, mapTo } from 'rxjs/operators';
3
- import { PagedResponse } from '../core';
4
- import { BundleApiService, GetMultiBundleRequest, ListBundlesRequest, PagedRequestOptions, UpsertBundleRequest, } from '../_internal';
5
- import { bundleFromApi, bundleItemToApi } from './bundle';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../_internal/bundle.api.service";
8
- export class BundleService {
9
- constructor(bundleApiService) {
10
- this.bundleApiService = bundleApiService;
11
- }
12
- upsert(merchantId, bundleId, name, hideBundleDetails, items) {
13
- const request = new UpsertBundleRequest({
14
- merchantId: merchantId,
15
- bundleId: bundleId,
16
- name: name,
17
- hideBundleDetails: hideBundleDetails,
18
- items: (items || []).map(item => bundleItemToApi(item))
19
- });
20
- return this.bundleApiService.upsert(request).pipe(mapTo(true));
21
- }
22
- getMulti(merchantId, bundleIds) {
23
- const request = new GetMultiBundleRequest({
24
- merchantId: merchantId,
25
- bundleIds: bundleIds
26
- });
27
- return this.bundleApiService.getMulti(request).pipe(map((resp) => {
28
- const bundlesMap = new Map();
29
- if (resp && resp.bundles) {
30
- bundleIds.forEach(bundleId => {
31
- bundlesMap.set(bundleId, bundleFromApi(resp.bundles[bundleId]));
32
- });
33
- }
34
- return bundlesMap;
35
- }));
36
- }
37
- list(filters, searchTerm, cursor, pageSize) {
38
- const request = new ListBundlesRequest({
39
- filters: filters,
40
- searchTerm: searchTerm,
41
- pagingOptions: new PagedRequestOptions({ cursor, pageSize }),
42
- });
43
- return this.bundleApiService.list(request).pipe(map((resp) => {
44
- const bundles = (resp.bundles || []).map(bundle => bundleFromApi(bundle));
45
- return new PagedResponse(bundles, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore);
46
- }));
47
- }
48
- }
49
- BundleService.ɵprov = i0.ɵɵdefineInjectable({ factory: function BundleService_Factory() { return new BundleService(i0.ɵɵinject(i1.BundleApiService)); }, token: BundleService, providedIn: "root" });
50
- BundleService.decorators = [
51
- { type: Injectable, args: [{ providedIn: 'root' },] }
52
- ];
53
- BundleService.ctorParameters = () => [
54
- { type: BundleApiService }
55
- ];
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL3dvcmtzcGFjZS9zZGtzL3R5cGVzY3JpcHQvc3JjL2JpbGxpbmdfc2RrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9idW5kbGUvYnVuZGxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDeEMsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixxQkFBcUIsRUFFckIsa0JBQWtCLEVBRWxCLG1CQUFtQixFQUNuQixtQkFBbUIsR0FDcEIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFVLGFBQWEsRUFBYyxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQU85RSxNQUFNLE9BQU8sYUFBYTtJQUN0QixZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUN0RCxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQWtCLEVBQUUsUUFBZ0IsRUFBRSxJQUFZLEVBQUUsaUJBQTBCLEVBQUUsS0FBb0I7UUFDdkcsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQztZQUNwQyxVQUFVLEVBQUUsVUFBVTtZQUN0QixRQUFRLEVBQUUsUUFBUTtZQUNsQixJQUFJLEVBQUUsSUFBSTtZQUNWLGlCQUFpQixFQUFFLGlCQUFpQjtZQUNwQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFELENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELFFBQVEsQ0FBQyxVQUFrQixFQUFFLFNBQW1CO1FBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUkscUJBQXFCLENBQ3JDO1lBQ0ksVUFBVSxFQUFFLFVBQVU7WUFDdEIsU0FBUyxFQUFFLFNBQVM7U0FDdkIsQ0FDSixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDL0MsR0FBRyxDQUFDLENBQUMsSUFBNEIsRUFBRSxFQUFFO1lBQ2pDLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1lBQzdDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ3RCLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ3pCLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEUsQ0FBQyxDQUFDLENBQUM7YUFDTjtZQUNELE9BQU8sVUFBVSxDQUFBO1FBQ3JCLENBQUMsQ0FBQyxDQUNMLENBQUE7SUFDTCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQXlCLEVBQUUsVUFBa0IsRUFBRSxNQUFjLEVBQUUsUUFBZ0I7UUFDaEYsTUFBTSxPQUFPLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQztZQUNuQyxPQUFPLEVBQUUsT0FBTztZQUNoQixVQUFVLEVBQUUsVUFBVTtZQUN0QixhQUFhLEVBQUUsSUFBSSxtQkFBbUIsQ0FBQyxFQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUMsQ0FBQztTQUM3RCxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUMzQyxHQUFHLENBQUMsQ0FBQyxJQUF5QixFQUFFLEVBQUU7WUFDOUIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzFFLE9BQU8sSUFBSSxhQUFhLENBQVMsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDMUcsQ0FBQyxDQUFDLENBQ0wsQ0FBQTtJQUNMLENBQUM7Ozs7WUFoREosVUFBVSxTQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7O1lBZDlCLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgbWFwVG8gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBQYWdlZFJlc3BvbnNlIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQge1xuICBCdW5kbGVBcGlTZXJ2aWNlLFxuICBHZXRNdWx0aUJ1bmRsZVJlcXVlc3QsXG4gIEdldE11bHRpQnVuZGxlUmVzcG9uc2UsXG4gIExpc3RCdW5kbGVzUmVxdWVzdCxcbiAgTGlzdEJ1bmRsZXNSZXNwb25zZSxcbiAgUGFnZWRSZXF1ZXN0T3B0aW9ucyxcbiAgVXBzZXJ0QnVuZGxlUmVxdWVzdCxcbn0gZnJvbSAnLi4vX2ludGVybmFsJztcbmltcG9ydCB7IEJ1bmRsZSwgYnVuZGxlRnJvbUFwaSwgQnVuZGxlSXRlbSwgYnVuZGxlSXRlbVRvQXBpIH0gZnJvbSAnLi9idW5kbGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RCdW5kbGVGaWx0ZXIge1xuICAgIG1lcmNoYW50SWQ/OiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEJ1bmRsZVNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYnVuZGxlQXBpU2VydmljZTogQnVuZGxlQXBpU2VydmljZSkge1xuICAgIH1cblxuICAgIHVwc2VydChtZXJjaGFudElkOiBzdHJpbmcsIGJ1bmRsZUlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgaGlkZUJ1bmRsZURldGFpbHM6IGJvb2xlYW4sIGl0ZW1zOiBCdW5kbGVJdGVtIFtdKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgVXBzZXJ0QnVuZGxlUmVxdWVzdCh7XG4gICAgICAgICAgICBtZXJjaGFudElkOiBtZXJjaGFudElkLFxuICAgICAgICAgICAgYnVuZGxlSWQ6IGJ1bmRsZUlkLFxuICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgIGhpZGVCdW5kbGVEZXRhaWxzOiBoaWRlQnVuZGxlRGV0YWlscyxcbiAgICAgICAgICAgIGl0ZW1zOiAoaXRlbXMgfHwgW10pLm1hcChpdGVtID0+IGJ1bmRsZUl0ZW1Ub0FwaShpdGVtKSlcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1bmRsZUFwaVNlcnZpY2UudXBzZXJ0KHJlcXVlc3QpLnBpcGUobWFwVG8odHJ1ZSkpO1xuICAgIH1cblxuICAgIGdldE11bHRpKG1lcmNoYW50SWQ6IHN0cmluZywgYnVuZGxlSWRzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8TWFwPHN0cmluZywgQnVuZGxlPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEdldE11bHRpQnVuZGxlUmVxdWVzdChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBtZXJjaGFudElkOiBtZXJjaGFudElkLFxuICAgICAgICAgICAgICAgIGJ1bmRsZUlkczogYnVuZGxlSWRzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1bmRsZUFwaVNlcnZpY2UuZ2V0TXVsdGkocmVxdWVzdCkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcDogR2V0TXVsdGlCdW5kbGVSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1bmRsZXNNYXAgPSBuZXcgTWFwPHN0cmluZywgQnVuZGxlPigpO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwICYmIHJlc3AuYnVuZGxlcykge1xuICAgICAgICAgICAgICAgICAgICBidW5kbGVJZHMuZm9yRWFjaChidW5kbGVJZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidW5kbGVzTWFwLnNldChidW5kbGVJZCwgYnVuZGxlRnJvbUFwaShyZXNwLmJ1bmRsZXNbYnVuZGxlSWRdKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYnVuZGxlc01hcFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgIGxpc3QoZmlsdGVyczogTGlzdEJ1bmRsZUZpbHRlciwgc2VhcmNoVGVybTogc3RyaW5nLCBjdXJzb3I6IHN0cmluZywgcGFnZVNpemU6IG51bWJlcik6IE9ic2VydmFibGU8UGFnZWRSZXNwb25zZTxCdW5kbGU+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgTGlzdEJ1bmRsZXNSZXF1ZXN0KHtcbiAgICAgICAgICAgIGZpbHRlcnM6IGZpbHRlcnMsXG4gICAgICAgICAgICBzZWFyY2hUZXJtOiBzZWFyY2hUZXJtLFxuICAgICAgICAgICAgcGFnaW5nT3B0aW9uczogbmV3IFBhZ2VkUmVxdWVzdE9wdGlvbnMoe2N1cnNvciwgcGFnZVNpemV9KSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1bmRsZUFwaVNlcnZpY2UubGlzdChyZXF1ZXN0KS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXNwOiBMaXN0QnVuZGxlc1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYnVuZGxlcyA9IChyZXNwLmJ1bmRsZXMgfHwgW10pLm1hcChidW5kbGUgPT4gYnVuZGxlRnJvbUFwaShidW5kbGUpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFBhZ2VkUmVzcG9uc2U8QnVuZGxlPihidW5kbGVzLCByZXNwLnBhZ2luZ01ldGFkYXRhLm5leHRDdXJzb3IsIHJlc3AucGFnaW5nTWV0YWRhdGEuaGFzTW9yZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICB9XG59XG5cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export { BundleService } from './bundle.service';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL3dvcmtzcGFjZS9zZGtzL3R5cGVzY3JpcHQvc3JjL2JpbGxpbmdfc2RrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9idW5kbGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGFBQWEsRUFBbUIsTUFBTSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7QnVuZGxlSXRlbSwgQnVuZGxlfSBmcm9tICcuL2J1bmRsZSc7XG5leHBvcnQge0J1bmRsZVNlcnZpY2UsIExpc3RCdW5kbGVGaWx0ZXJ9IGZyb20gJy4vYnVuZGxlLnNlcnZpY2UnO1xuIl19