@vendasta/billing 8.1.0 → 9.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (572) 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 +327 -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} +1091 -4973
  148. package/fesm2015/vendasta-billing.mjs.map +1 -0
  149. package/fesm2020/vendasta-billing.mjs +14371 -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/enums/index.d.ts +2 -0
  160. package/lib/_internal/enums/payment-processor.enum.d.ts +5 -0
  161. package/lib/_internal/enums/recurring-invoice.enum.d.ts +19 -0
  162. package/lib/_internal/index.d.ts +1 -0
  163. package/lib/_internal/interfaces/index.d.ts +2 -0
  164. package/lib/_internal/interfaces/payment-processor.interface.d.ts +1 -0
  165. package/lib/_internal/interfaces/recurring-invoice.interface.d.ts +55 -0
  166. package/lib/_internal/invoice-template.api.service.d.ts +4 -0
  167. package/lib/_internal/invoice.api.service.d.ts +4 -0
  168. package/lib/_internal/merchant.api.service.d.ts +4 -0
  169. package/lib/_internal/objects/index.d.ts +2 -0
  170. package/lib/_internal/objects/payment-processor.d.ts +1 -0
  171. package/lib/_internal/objects/recurring-invoice.d.ts +84 -0
  172. package/lib/_internal/payment-method.api.service.d.ts +4 -0
  173. package/lib/_internal/payment.api.service.d.ts +4 -0
  174. package/lib/_internal/pricing.api.service.d.ts +4 -0
  175. package/lib/_internal/product-summary.api.service.d.ts +4 -0
  176. package/lib/_internal/product.api.service.d.ts +4 -0
  177. package/lib/_internal/purchase.api.service.d.ts +4 -0
  178. package/lib/_internal/recurring-invoice.api.service.d.ts +20 -0
  179. package/lib/_internal/refund.api.service.d.ts +4 -0
  180. package/lib/_internal/retail-customer-configuration.api.service.d.ts +4 -0
  181. package/lib/_internal/sales-credit-note.api.service.d.ts +4 -0
  182. package/lib/_internal/sales-invoice.api.service.d.ts +4 -0
  183. package/lib/_internal/tax.api.service.d.ts +4 -0
  184. package/lib/_internal/vendor.api.service.d.ts +4 -0
  185. package/lib/index.d.ts +2 -36
  186. package/package.json +26 -15
  187. package/src/README.md +1 -0
  188. package/vendasta-billing.d.ts +1 -0
  189. package/bundles/vendasta-billing.umd.js +0 -19170
  190. package/bundles/vendasta-billing.umd.js.map +0 -1
  191. package/bundles/vendasta-billing.umd.min.js +0 -16
  192. package/bundles/vendasta-billing.umd.min.js.map +0 -1
  193. package/esm2015/lib/_generated/host.service.js +0 -65
  194. package/esm2015/lib/_generated/index.js +0 -2
  195. package/esm2015/lib/_internal/bank-reconciliation.api.service.js +0 -47
  196. package/esm2015/lib/_internal/billing.api.service.js +0 -217
  197. package/esm2015/lib/_internal/bundle.api.service.js +0 -51
  198. package/esm2015/lib/_internal/contract-document.api.service.js +0 -46
  199. package/esm2015/lib/_internal/contract.api.service.js +0 -56
  200. package/esm2015/lib/_internal/credit.api.service.js +0 -46
  201. package/esm2015/lib/_internal/discount.api.service.js +0 -54
  202. package/esm2015/lib/_internal/enums/applied-discount.enum.js +0 -14
  203. package/esm2015/lib/_internal/enums/card.enum.js +0 -17
  204. package/esm2015/lib/_internal/enums/contract.enum.js +0 -14
  205. package/esm2015/lib/_internal/enums/currency.enum.js +0 -35
  206. package/esm2015/lib/_internal/enums/frequency.enum.js +0 -14
  207. package/esm2015/lib/_internal/enums/index.js +0 -29
  208. package/esm2015/lib/_internal/enums/invoice.enum.js +0 -18
  209. package/esm2015/lib/_internal/enums/merchant-report.enum.js +0 -13
  210. package/esm2015/lib/_internal/enums/month.enum.js +0 -23
  211. package/esm2015/lib/_internal/enums/payment-card.enum.js +0 -24
  212. package/esm2015/lib/_internal/enums/payout.enum.js +0 -22
  213. package/esm2015/lib/_internal/enums/pricing-plan.enum.js +0 -22
  214. package/esm2015/lib/_internal/enums/product.enum.js +0 -17
  215. package/esm2015/lib/_internal/enums/purchase.enum.js +0 -27
  216. package/esm2015/lib/_internal/enums/refund.enum.js +0 -25
  217. package/esm2015/lib/_internal/enums/sales-credit-note.enum.js +0 -14
  218. package/esm2015/lib/_internal/enums/sort-direction.enum.js +0 -12
  219. package/esm2015/lib/_internal/enums/subscription.enum.js +0 -12
  220. package/esm2015/lib/_internal/index.js +0 -32
  221. package/esm2015/lib/_internal/interfaces/api.interface.js +0 -2
  222. package/esm2015/lib/_internal/interfaces/applied-bundle.interface.js +0 -8
  223. package/esm2015/lib/_internal/interfaces/applied-discount.interface.js +0 -8
  224. package/esm2015/lib/_internal/interfaces/applied-tax-rate.interface.js +0 -8
  225. package/esm2015/lib/_internal/interfaces/balance.interface.js +0 -8
  226. package/esm2015/lib/_internal/interfaces/billable-item.interface.js +0 -2
  227. package/esm2015/lib/_internal/interfaces/bundle.interface.js +0 -2
  228. package/esm2015/lib/_internal/interfaces/card.interface.js +0 -8
  229. package/esm2015/lib/_internal/interfaces/commitment.interface.js +0 -8
  230. package/esm2015/lib/_internal/interfaces/common.interface.js +0 -8
  231. package/esm2015/lib/_internal/interfaces/contract-document.interface.js +0 -2
  232. package/esm2015/lib/_internal/interfaces/contract.interface.js +0 -2
  233. package/esm2015/lib/_internal/interfaces/credit.interface.js +0 -8
  234. package/esm2015/lib/_internal/interfaces/currency.interface.js +0 -8
  235. package/esm2015/lib/_internal/interfaces/customer-summary.interface.js +0 -8
  236. package/esm2015/lib/_internal/interfaces/date-range.interface.js +0 -8
  237. package/esm2015/lib/_internal/interfaces/discount.interface.js +0 -2
  238. package/esm2015/lib/_internal/interfaces/external-account.interface.js +0 -8
  239. package/esm2015/lib/_internal/interfaces/field-mask.interface.js +0 -8
  240. package/esm2015/lib/_internal/interfaces/frequency.interface.js +0 -8
  241. package/esm2015/lib/_internal/interfaces/index.js +0 -2
  242. package/esm2015/lib/_internal/interfaces/invoice-template.interface.js +0 -2
  243. package/esm2015/lib/_internal/interfaces/invoice.interface.js +0 -2
  244. package/esm2015/lib/_internal/interfaces/merchant-report.interface.js +0 -2
  245. package/esm2015/lib/_internal/interfaces/merchant.interface.js +0 -2
  246. package/esm2015/lib/_internal/interfaces/metered-component.interface.js +0 -8
  247. package/esm2015/lib/_internal/interfaces/month.interface.js +0 -8
  248. package/esm2015/lib/_internal/interfaces/payment-card.interface.js +0 -8
  249. package/esm2015/lib/_internal/interfaces/payment.interface.js +0 -2
  250. package/esm2015/lib/_internal/interfaces/payout.interface.js +0 -2
  251. package/esm2015/lib/_internal/interfaces/pricing-plan-product.interface.js +0 -2
  252. package/esm2015/lib/_internal/interfaces/pricing-plan.interface.js +0 -2
  253. package/esm2015/lib/_internal/interfaces/product-pricing.interface.js +0 -2
  254. package/esm2015/lib/_internal/interfaces/product-summary.interface.js +0 -2
  255. package/esm2015/lib/_internal/interfaces/product.interface.js +0 -2
  256. package/esm2015/lib/_internal/interfaces/purchase.interface.js +0 -2
  257. package/esm2015/lib/_internal/interfaces/refund.interface.js +0 -8
  258. package/esm2015/lib/_internal/interfaces/retail-customer-configuration.interface.js +0 -8
  259. package/esm2015/lib/_internal/interfaces/sales-credit-note.interface.js +0 -2
  260. package/esm2015/lib/_internal/interfaces/sales-invoice.interface.js +0 -2
  261. package/esm2015/lib/_internal/interfaces/sort-direction.interface.js +0 -8
  262. package/esm2015/lib/_internal/interfaces/subscribe-validation.interface.js +0 -8
  263. package/esm2015/lib/_internal/interfaces/subscription.interface.js +0 -2
  264. package/esm2015/lib/_internal/interfaces/tax-rate.interface.js +0 -2
  265. package/esm2015/lib/_internal/invoice-template.api.service.js +0 -86
  266. package/esm2015/lib/_internal/invoice.api.service.js +0 -117
  267. package/esm2015/lib/_internal/merchant.api.service.js +0 -160
  268. package/esm2015/lib/_internal/objects/api.js +0 -841
  269. package/esm2015/lib/_internal/objects/applied-bundle.js +0 -77
  270. package/esm2015/lib/_internal/objects/applied-discount.js +0 -46
  271. package/esm2015/lib/_internal/objects/applied-tax-rate.js +0 -39
  272. package/esm2015/lib/_internal/objects/balance.js +0 -45
  273. package/esm2015/lib/_internal/objects/billable-item.js +0 -562
  274. package/esm2015/lib/_internal/objects/bundle.js +0 -390
  275. package/esm2015/lib/_internal/objects/card.js +0 -7
  276. package/esm2015/lib/_internal/objects/commitment.js +0 -36
  277. package/esm2015/lib/_internal/objects/common.js +0 -56
  278. package/esm2015/lib/_internal/objects/contract-document.js +0 -141
  279. package/esm2015/lib/_internal/objects/contract.js +0 -474
  280. package/esm2015/lib/_internal/objects/credit.js +0 -114
  281. package/esm2015/lib/_internal/objects/currency.js +0 -7
  282. package/esm2015/lib/_internal/objects/customer-summary.js +0 -104
  283. package/esm2015/lib/_internal/objects/date-range.js +0 -36
  284. package/esm2015/lib/_internal/objects/discount.js +0 -299
  285. package/esm2015/lib/_internal/objects/external-account.js +0 -160
  286. package/esm2015/lib/_internal/objects/field-mask.js +0 -27
  287. package/esm2015/lib/_internal/objects/frequency.js +0 -7
  288. package/esm2015/lib/_internal/objects/index.js +0 -45
  289. package/esm2015/lib/_internal/objects/invoice-template.js +0 -707
  290. package/esm2015/lib/_internal/objects/invoice.js +0 -1117
  291. package/esm2015/lib/_internal/objects/merchant-report.js +0 -108
  292. package/esm2015/lib/_internal/objects/merchant.js +0 -991
  293. package/esm2015/lib/_internal/objects/metered-component.js +0 -97
  294. package/esm2015/lib/_internal/objects/month.js +0 -7
  295. package/esm2015/lib/_internal/objects/payment-card.js +0 -211
  296. package/esm2015/lib/_internal/objects/payment.js +0 -1219
  297. package/esm2015/lib/_internal/objects/payout.js +0 -258
  298. package/esm2015/lib/_internal/objects/pricing-plan-product.js +0 -565
  299. package/esm2015/lib/_internal/objects/pricing-plan.js +0 -290
  300. package/esm2015/lib/_internal/objects/product-pricing.js +0 -107
  301. package/esm2015/lib/_internal/objects/product-summary.js +0 -538
  302. package/esm2015/lib/_internal/objects/product.js +0 -302
  303. package/esm2015/lib/_internal/objects/purchase.js +0 -524
  304. package/esm2015/lib/_internal/objects/refund.js +0 -181
  305. package/esm2015/lib/_internal/objects/retail-customer-configuration.js +0 -159
  306. package/esm2015/lib/_internal/objects/sales-credit-note.js +0 -211
  307. package/esm2015/lib/_internal/objects/sales-invoice.js +0 -300
  308. package/esm2015/lib/_internal/objects/sort-direction.js +0 -7
  309. package/esm2015/lib/_internal/objects/subscribe-validation.js +0 -31
  310. package/esm2015/lib/_internal/objects/subscription.js +0 -555
  311. package/esm2015/lib/_internal/objects/tax-rate.js +0 -342
  312. package/esm2015/lib/_internal/payment-method.api.service.js +0 -50
  313. package/esm2015/lib/_internal/payment.api.service.js +0 -103
  314. package/esm2015/lib/_internal/pricing.api.service.js +0 -77
  315. package/esm2015/lib/_internal/product-summary.api.service.js +0 -47
  316. package/esm2015/lib/_internal/product.api.service.js +0 -48
  317. package/esm2015/lib/_internal/purchase.api.service.js +0 -60
  318. package/esm2015/lib/_internal/refund.api.service.js +0 -46
  319. package/esm2015/lib/_internal/retail-customer-configuration.api.service.js +0 -46
  320. package/esm2015/lib/_internal/sales-credit-note.api.service.js +0 -46
  321. package/esm2015/lib/_internal/sales-invoice.api.service.js +0 -51
  322. package/esm2015/lib/_internal/tax.api.service.js +0 -64
  323. package/esm2015/lib/_internal/vendor.api.service.js +0 -47
  324. package/esm2015/lib/applied_bundle/applied_bundle.js +0 -12
  325. package/esm2015/lib/applied_bundle/index.js +0 -2
  326. package/esm2015/lib/applied_discount/applied_discount.js +0 -48
  327. package/esm2015/lib/applied_discount/index.js +0 -2
  328. package/esm2015/lib/bank_account/bank-account.service.js +0 -38
  329. package/esm2015/lib/bank_account/bank_account.js +0 -13
  330. package/esm2015/lib/bank_account/index.js +0 -3
  331. package/esm2015/lib/bank_reconciliation/bank-reconciliation.service.js +0 -54
  332. package/esm2015/lib/bank_reconciliation/index.js +0 -3
  333. package/esm2015/lib/bank_reconciliation/payout.js +0 -53
  334. package/esm2015/lib/billable-item/billable-item.js +0 -40
  335. package/esm2015/lib/billable-item/billable-item.service.js +0 -31
  336. package/esm2015/lib/billable-item/index.js +0 -2
  337. package/esm2015/lib/billing-host.service.js +0 -41
  338. package/esm2015/lib/billing.service.js +0 -376
  339. package/esm2015/lib/bundle/bundle.js +0 -37
  340. package/esm2015/lib/bundle/bundle.service.js +0 -56
  341. package/esm2015/lib/bundle/index.js +0 -2
  342. package/esm2015/lib/contract/contract.js +0 -21
  343. package/esm2015/lib/contract/contract.service.js +0 -39
  344. package/esm2015/lib/contract/dimension.js +0 -21
  345. package/esm2015/lib/contract/index.js +0 -5
  346. package/esm2015/lib/contract/mutations.js +0 -11
  347. package/esm2015/lib/contract-document/contract-document.js +0 -9
  348. package/esm2015/lib/contract-document/contract-document.service.js +0 -68
  349. package/esm2015/lib/contract-document/index.js +0 -2
  350. package/esm2015/lib/contract-document/list-contract-document.js +0 -2
  351. package/esm2015/lib/core/index.js +0 -3
  352. package/esm2015/lib/core/paged-response.js +0 -8
  353. package/esm2015/lib/core/sort-direction.js +0 -6
  354. package/esm2015/lib/credit/credit.js +0 -8
  355. package/esm2015/lib/credit/credit.service.js +0 -33
  356. package/esm2015/lib/credit/index.js +0 -2
  357. package/esm2015/lib/customer_summary/customer-summary.js +0 -15
  358. package/esm2015/lib/discount/discount.js +0 -18
  359. package/esm2015/lib/discount/discount.service.js +0 -73
  360. package/esm2015/lib/discount/discount_type.js +0 -32
  361. package/esm2015/lib/discount/index.js +0 -3
  362. package/esm2015/lib/discount/list-discount.js +0 -2
  363. package/esm2015/lib/http-shared/error-handlers.js +0 -20
  364. package/esm2015/lib/index.js +0 -37
  365. package/esm2015/lib/invoice/index.js +0 -3
  366. package/esm2015/lib/invoice/invoice.js +0 -198
  367. package/esm2015/lib/invoice/invoice.service.js +0 -254
  368. package/esm2015/lib/invoice/list-invoice.js +0 -2
  369. package/esm2015/lib/invoice-template/index.js +0 -2
  370. package/esm2015/lib/invoice-template/invoice-template.js +0 -38
  371. package/esm2015/lib/invoice-template/invoice-template.service.js +0 -78
  372. package/esm2015/lib/merchant/balance.js +0 -2
  373. package/esm2015/lib/merchant/index.js +0 -5
  374. package/esm2015/lib/merchant/merchant.interface.js +0 -2
  375. package/esm2015/lib/merchant/merchant.js +0 -20
  376. package/esm2015/lib/merchant/merchant.service.js +0 -212
  377. package/esm2015/lib/merchant/payout-summary.js +0 -32
  378. package/esm2015/lib/merchant/retail-configuration.js +0 -57
  379. package/esm2015/lib/merchant-report/index.js +0 -2
  380. package/esm2015/lib/merchant-report/merchant-report-status.js +0 -2
  381. package/esm2015/lib/merchant-report/merchant-report.interfaces.js +0 -2
  382. package/esm2015/lib/merchant-report/merchant-report.js +0 -2
  383. package/esm2015/lib/merchant-report/merchant-report.service.js +0 -38
  384. package/esm2015/lib/payment/dispute.js +0 -92
  385. package/esm2015/lib/payment/index.js +0 -10
  386. package/esm2015/lib/payment/payment-allocation-type.js +0 -18
  387. package/esm2015/lib/payment/payment-source.js +0 -18
  388. package/esm2015/lib/payment/payment-status.js +0 -17
  389. package/esm2015/lib/payment/payment.js +0 -292
  390. package/esm2015/lib/payment/payment.service.js +0 -138
  391. package/esm2015/lib/payment/retail-payment.js +0 -70
  392. package/esm2015/lib/payment/retail-status.js +0 -50
  393. package/esm2015/lib/payment-card/index.js +0 -3
  394. package/esm2015/lib/payment-card/payment-card.js +0 -60
  395. package/esm2015/lib/payment-card/payment-card.service.js +0 -45
  396. package/esm2015/lib/payment-method/index.js +0 -2
  397. package/esm2015/lib/payment-method/payment-method.service.js +0 -43
  398. package/esm2015/lib/pricing/billing-strategy.js +0 -39
  399. package/esm2015/lib/pricing/commitment.js +0 -7
  400. package/esm2015/lib/pricing/currency.js +0 -86
  401. package/esm2015/lib/pricing/frequency.js +0 -42
  402. package/esm2015/lib/pricing/index.js +0 -12
  403. package/esm2015/lib/pricing/list-pricing-plan-product-filter.js +0 -2
  404. package/esm2015/lib/pricing/pricing-plan-product.js +0 -53
  405. package/esm2015/lib/pricing/pricing-plan.js +0 -14
  406. package/esm2015/lib/pricing/pricing-plan.service.js +0 -287
  407. package/esm2015/lib/pricing/product-pricing-rules.js +0 -10
  408. package/esm2015/lib/pricing/product-pricing-type.js +0 -31
  409. package/esm2015/lib/pricing/product-pricing.js +0 -44
  410. package/esm2015/lib/pricing/wholesale-pricing.service.js +0 -61
  411. package/esm2015/lib/product/index.js +0 -3
  412. package/esm2015/lib/product/list-products.js +0 -30
  413. package/esm2015/lib/product/product.js +0 -10
  414. package/esm2015/lib/product-summary/index.js +0 -3
  415. package/esm2015/lib/product-summary/product-summary.service.js +0 -42
  416. package/esm2015/lib/product-summary/subscription-retention.js +0 -19
  417. package/esm2015/lib/purchase/index.js +0 -4
  418. package/esm2015/lib/purchase/list-purchases.js +0 -17
  419. package/esm2015/lib/purchase/purchase.js +0 -79
  420. package/esm2015/lib/purchase/purchase.service.js +0 -31
  421. package/esm2015/lib/purchase/purchase_status.js +0 -26
  422. package/esm2015/lib/refund/index.js +0 -3
  423. package/esm2015/lib/refund/refund.js +0 -81
  424. package/esm2015/lib/refund/refund.service.js +0 -53
  425. package/esm2015/lib/retail-customer-configuration/index.js +0 -3
  426. package/esm2015/lib/retail-customer-configuration/retail-customer-configuration.js +0 -44
  427. package/esm2015/lib/retail-customer-configuration/retail-customer-configuration.service.js +0 -39
  428. package/esm2015/lib/revenue/index.js +0 -2
  429. package/esm2015/lib/revenue/revenue.interfaces.js +0 -2
  430. package/esm2015/lib/revenue/revenue.service.js +0 -34
  431. package/esm2015/lib/sales-credit-note/index.js +0 -3
  432. package/esm2015/lib/sales-credit-note/sales-credit-note.js +0 -53
  433. package/esm2015/lib/sales-credit-note/sales-credit-note.service.js +0 -72
  434. package/esm2015/lib/sales-invoice/index.js +0 -3
  435. package/esm2015/lib/sales-invoice/sales-invoice.js +0 -87
  436. package/esm2015/lib/sales-invoice/sales-invoice.service.js +0 -77
  437. package/esm2015/lib/sku.js +0 -4
  438. package/esm2015/lib/stripe-file/file.js +0 -2
  439. package/esm2015/lib/stripe-file/index.js +0 -3
  440. package/esm2015/lib/stripe-file/purpose.js +0 -13
  441. package/esm2015/lib/stripe-file/stripe-file.service.js +0 -35
  442. package/esm2015/lib/subscription/can-create-subscriptions-item.js +0 -2
  443. package/esm2015/lib/subscription/index.js +0 -2
  444. package/esm2015/lib/tax-rate/index.js +0 -2
  445. package/esm2015/lib/tax-rate/tax-rate.js +0 -13
  446. package/esm2015/lib/tax-rate/tax-rate.service.js +0 -86
  447. package/esm2015/public_api.js +0 -2
  448. package/esm2015/vendasta-billing.js +0 -5
  449. package/fesm2015/vendasta-billing.js.map +0 -1
  450. package/lib/applied_bundle/applied_bundle.d.ts +0 -15
  451. package/lib/applied_bundle/index.d.ts +0 -1
  452. package/lib/applied_discount/applied_discount.d.ts +0 -26
  453. package/lib/applied_discount/index.d.ts +0 -1
  454. package/lib/bank_account/bank-account.service.d.ts +0 -11
  455. package/lib/bank_account/bank_account.d.ts +0 -12
  456. package/lib/bank_account/index.d.ts +0 -3
  457. package/lib/bank_reconciliation/bank-reconciliation.service.d.ts +0 -10
  458. package/lib/bank_reconciliation/index.d.ts +0 -2
  459. package/lib/bank_reconciliation/payout.d.ts +0 -37
  460. package/lib/billable-item/billable-item.d.ts +0 -40
  461. package/lib/billable-item/billable-item.service.d.ts +0 -10
  462. package/lib/billable-item/index.d.ts +0 -2
  463. package/lib/billing-host.service.d.ts +0 -11
  464. package/lib/billing.service.d.ts +0 -88
  465. package/lib/bundle/bundle.d.ts +0 -26
  466. package/lib/bundle/bundle.service.d.ts +0 -14
  467. package/lib/bundle/index.d.ts +0 -2
  468. package/lib/contract/contract.d.ts +0 -20
  469. package/lib/contract/contract.service.d.ts +0 -23
  470. package/lib/contract/dimension.d.ts +0 -11
  471. package/lib/contract/index.d.ts +0 -5
  472. package/lib/contract/mutations.d.ts +0 -11
  473. package/lib/contract-document/contract-document.d.ts +0 -8
  474. package/lib/contract-document/contract-document.service.d.ts +0 -17
  475. package/lib/contract-document/index.d.ts +0 -3
  476. package/lib/contract-document/list-contract-document.d.ts +0 -3
  477. package/lib/core/index.d.ts +0 -2
  478. package/lib/core/paged-response.d.ts +0 -6
  479. package/lib/core/sort-direction.d.ts +0 -4
  480. package/lib/credit/credit.d.ts +0 -7
  481. package/lib/credit/credit.service.d.ts +0 -9
  482. package/lib/credit/index.d.ts +0 -2
  483. package/lib/customer_summary/customer-summary.d.ts +0 -9
  484. package/lib/discount/discount.d.ts +0 -17
  485. package/lib/discount/discount.service.d.ts +0 -15
  486. package/lib/discount/discount_type.d.ts +0 -9
  487. package/lib/discount/index.d.ts +0 -4
  488. package/lib/discount/list-discount.d.ts +0 -5
  489. package/lib/http-shared/error-handlers.d.ts +0 -4
  490. package/lib/invoice/index.d.ts +0 -3
  491. package/lib/invoice/invoice.d.ts +0 -86
  492. package/lib/invoice/invoice.service.d.ts +0 -40
  493. package/lib/invoice/list-invoice.d.ts +0 -15
  494. package/lib/invoice-template/index.d.ts +0 -2
  495. package/lib/invoice-template/invoice-template.d.ts +0 -35
  496. package/lib/invoice-template/invoice-template.service.d.ts +0 -14
  497. package/lib/merchant/balance.d.ts +0 -5
  498. package/lib/merchant/index.d.ts +0 -7
  499. package/lib/merchant/merchant.d.ts +0 -19
  500. package/lib/merchant/merchant.interface.d.ts +0 -3
  501. package/lib/merchant/merchant.service.d.ts +0 -59
  502. package/lib/merchant/payout-summary.d.ts +0 -19
  503. package/lib/merchant/retail-configuration.d.ts +0 -24
  504. package/lib/merchant-report/index.d.ts +0 -4
  505. package/lib/merchant-report/merchant-report-status.d.ts +0 -1
  506. package/lib/merchant-report/merchant-report.d.ts +0 -8
  507. package/lib/merchant-report/merchant-report.interfaces.d.ts +0 -5
  508. package/lib/merchant-report/merchant-report.service.d.ts +0 -12
  509. package/lib/payment/dispute.d.ts +0 -61
  510. package/lib/payment/index.d.ts +0 -9
  511. package/lib/payment/payment-allocation-type.d.ts +0 -7
  512. package/lib/payment/payment-source.d.ts +0 -7
  513. package/lib/payment/payment-status.d.ts +0 -7
  514. package/lib/payment/payment.d.ts +0 -42
  515. package/lib/payment/payment.service.d.ts +0 -24
  516. package/lib/payment/retail-payment.d.ts +0 -33
  517. package/lib/payment/retail-status.d.ts +0 -24
  518. package/lib/payment-card/index.d.ts +0 -2
  519. package/lib/payment-card/payment-card.d.ts +0 -41
  520. package/lib/payment-card/payment-card.service.d.ts +0 -13
  521. package/lib/payment-method/index.d.ts +0 -1
  522. package/lib/payment-method/payment-method.service.d.ts +0 -10
  523. package/lib/pricing/billing-strategy.d.ts +0 -11
  524. package/lib/pricing/commitment.d.ts +0 -6
  525. package/lib/pricing/currency.d.ts +0 -29
  526. package/lib/pricing/frequency.d.ts +0 -10
  527. package/lib/pricing/index.d.ts +0 -11
  528. package/lib/pricing/list-pricing-plan-product-filter.d.ts +0 -4
  529. package/lib/pricing/pricing-plan-product.d.ts +0 -34
  530. package/lib/pricing/pricing-plan.d.ts +0 -13
  531. package/lib/pricing/pricing-plan.service.d.ts +0 -17
  532. package/lib/pricing/product-pricing-rules.d.ts +0 -7
  533. package/lib/pricing/product-pricing-type.d.ts +0 -9
  534. package/lib/pricing/product-pricing.d.ts +0 -37
  535. package/lib/pricing/wholesale-pricing.service.d.ts +0 -19
  536. package/lib/product/index.d.ts +0 -2
  537. package/lib/product/list-products.d.ts +0 -16
  538. package/lib/product/product.d.ts +0 -9
  539. package/lib/product-summary/index.d.ts +0 -2
  540. package/lib/product-summary/product-summary.service.d.ts +0 -10
  541. package/lib/product-summary/subscription-retention.d.ts +0 -20
  542. package/lib/purchase/index.d.ts +0 -4
  543. package/lib/purchase/list-purchases.d.ts +0 -27
  544. package/lib/purchase/purchase.d.ts +0 -56
  545. package/lib/purchase/purchase.service.d.ts +0 -10
  546. package/lib/purchase/purchase_status.d.ts +0 -10
  547. package/lib/refund/index.d.ts +0 -2
  548. package/lib/refund/refund.d.ts +0 -36
  549. package/lib/refund/refund.service.d.ts +0 -11
  550. package/lib/retail-customer-configuration/index.d.ts +0 -2
  551. package/lib/retail-customer-configuration/retail-customer-configuration.d.ts +0 -20
  552. package/lib/retail-customer-configuration/retail-customer-configuration.service.d.ts +0 -9
  553. package/lib/revenue/index.d.ts +0 -2
  554. package/lib/revenue/revenue.interfaces.d.ts +0 -3
  555. package/lib/revenue/revenue.service.d.ts +0 -11
  556. package/lib/sales-credit-note/index.d.ts +0 -2
  557. package/lib/sales-credit-note/sales-credit-note.d.ts +0 -30
  558. package/lib/sales-credit-note/sales-credit-note.service.d.ts +0 -16
  559. package/lib/sales-invoice/index.d.ts +0 -2
  560. package/lib/sales-invoice/sales-invoice.d.ts +0 -42
  561. package/lib/sales-invoice/sales-invoice.service.d.ts +0 -16
  562. package/lib/sku.d.ts +0 -3
  563. package/lib/stripe-file/file.d.ts +0 -6
  564. package/lib/stripe-file/index.d.ts +0 -3
  565. package/lib/stripe-file/purpose.d.ts +0 -11
  566. package/lib/stripe-file/stripe-file.service.d.ts +0 -12
  567. package/lib/subscription/can-create-subscriptions-item.d.ts +0 -6
  568. package/lib/subscription/index.d.ts +0 -1
  569. package/lib/tax-rate/index.d.ts +0 -2
  570. package/lib/tax-rate/tax-rate.d.ts +0 -20
  571. package/lib/tax-rate/tax-rate.service.d.ts +0 -15
  572. package/vendasta-billing.metadata.json +0 -1
@@ -1,65 +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 HostService {
6
- constructor(environmentService) {
7
- this.environmentService = environmentService;
8
- }
9
- host() {
10
- if (this._host) {
11
- return this._host;
12
- }
13
- switch (this.environmentService.getEnvironment()) {
14
- case Environment.LOCAL:
15
- this._host = 'billing-api.vendasta-local.com';
16
- break;
17
- case Environment.TEST:
18
- this._host = '';
19
- break;
20
- case Environment.DEMO:
21
- this._host = 'billing-demo.apigateway.co';
22
- break;
23
- case Environment.PROD:
24
- this._host = 'billing-prod.apigateway.co';
25
- break;
26
- }
27
- return this._host;
28
- }
29
- httpsHost() {
30
- if (this._httpsHost) {
31
- return this._httpsHost;
32
- }
33
- switch (this.environmentService.getEnvironment()) {
34
- case Environment.LOCAL:
35
- this._httpsHost = 'billing.vendasta-local.com';
36
- break;
37
- case Environment.TEST:
38
- this._httpsHost = '';
39
- break;
40
- case Environment.DEMO:
41
- this._httpsHost = 'billing-api-demo.apigateway.co';
42
- break;
43
- case Environment.PROD:
44
- this._httpsHost = 'billing-api-prod.apigateway.co';
45
- break;
46
- }
47
- return this._httpsHost;
48
- }
49
- hostWithScheme() {
50
- const scheme = this.environmentService.getEnvironment() === Environment.LOCAL ? 'http://' : 'https://';
51
- return scheme + this.host();
52
- }
53
- httpsHostWithScheme() {
54
- const scheme = this.environmentService.getEnvironment() === Environment.LOCAL ? 'http://' : 'https://';
55
- return scheme + this.httpsHost();
56
- }
57
- }
58
- HostService.ɵprov = i0.ɵɵdefineInjectable({ factory: function HostService_Factory() { return new HostService(i0.ɵɵinject(i1.EnvironmentService)); }, token: HostService, providedIn: "root" });
59
- HostService.decorators = [
60
- { type: Injectable, args: [{ providedIn: 'root' },] }
61
- ];
62
- HostService.ctorParameters = () => [
63
- { type: EnvironmentService }
64
- ];
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii93b3Jrc3BhY2Uvc2Rrcy90eXBlc2NyaXB0L3NyYy9iaWxsaW5nX3Nkay9zcmMvIiwic291cmNlcyI6WyJsaWIvX2dlbmVyYXRlZC9ob3N0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUdqRSxNQUFNLE9BQU8sV0FBVztJQUlwQixZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUMxRCxDQUFDO0lBRUQsSUFBSTtRQUNBLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNyQjtRQUVELFFBQVEsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQzlDLEtBQUssV0FBVyxDQUFDLEtBQUs7Z0JBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsZ0NBQWdDLENBQUM7Z0JBQzlDLE1BQU07WUFDVixLQUFLLFdBQVcsQ0FBQyxJQUFJO2dCQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDaEIsTUFBTTtZQUNWLEtBQUssV0FBVyxDQUFDLElBQUk7Z0JBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsNEJBQTRCLENBQUM7Z0JBQzFDLE1BQU07WUFDVixLQUFLLFdBQVcsQ0FBQyxJQUFJO2dCQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLDRCQUE0QixDQUFDO2dCQUMxQyxNQUFNO1NBQ2I7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQzFCO1FBRUQsUUFBUSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDOUMsS0FBSyxXQUFXLENBQUMsS0FBSztnQkFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyw0QkFBNEIsQ0FBQztnQkFDL0MsTUFBTTtZQUNWLEtBQUssV0FBVyxDQUFDLElBQUk7Z0JBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO2dCQUNyQixNQUFNO1lBQ1YsS0FBSyxXQUFXLENBQUMsSUFBSTtnQkFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxnQ0FBZ0MsQ0FBQztnQkFDbkQsTUFBTTtZQUNWLEtBQUssV0FBVyxDQUFDLElBQUk7Z0JBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsZ0NBQWdDLENBQUM7Z0JBQ25ELE1BQU07U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsY0FBYztRQUNWLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsS0FBSyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUN2RyxPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDL0IsQ0FBQztJQUVELG1CQUFtQjtRQUNmLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsS0FBSyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUN2RyxPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7SUFDcEMsQ0FBQzs7OztZQTVESixVQUFVLFNBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzs7WUFGdkIsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlLCBFbnZpcm9ubWVudCB9IGZyb20gJ0B2ZW5kYXN0YS9jb3JlJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgSG9zdFNlcnZpY2Uge1xuICAgIHByaXZhdGUgX2hvc3Q6IHN0cmluZztcbiAgICBwcml2YXRlIF9odHRwc0hvc3Q6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZW52aXJvbm1lbnRTZXJ2aWNlOiBFbnZpcm9ubWVudFNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBob3N0KCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLl9ob3N0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faG9zdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAodGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0RW52aXJvbm1lbnQoKSkge1xuICAgICAgICAgICAgY2FzZSBFbnZpcm9ubWVudC5MT0NBTDpcbiAgICAgICAgICAgICAgICB0aGlzLl9ob3N0ID0gJ2JpbGxpbmctYXBpLnZlbmRhc3RhLWxvY2FsLmNvbSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEVudmlyb25tZW50LlRFU1Q6XG4gICAgICAgICAgICAgICAgdGhpcy5faG9zdCA9ICcnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBFbnZpcm9ubWVudC5ERU1POlxuICAgICAgICAgICAgICAgIHRoaXMuX2hvc3QgPSAnYmlsbGluZy1kZW1vLmFwaWdhdGV3YXkuY28nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBFbnZpcm9ubWVudC5QUk9EOlxuICAgICAgICAgICAgICAgIHRoaXMuX2hvc3QgPSAnYmlsbGluZy1wcm9kLmFwaWdhdGV3YXkuY28nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9ob3N0O1xuICAgIH1cblxuICAgIGh0dHBzSG9zdCgpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5faHR0cHNIb3N0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faHR0cHNIb3N0O1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRFbnZpcm9ubWVudCgpKSB7XG4gICAgICAgICAgICBjYXNlIEVudmlyb25tZW50LkxPQ0FMOlxuICAgICAgICAgICAgICAgIHRoaXMuX2h0dHBzSG9zdCA9ICdiaWxsaW5nLnZlbmRhc3RhLWxvY2FsLmNvbSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEVudmlyb25tZW50LlRFU1Q6XG4gICAgICAgICAgICAgICAgdGhpcy5faHR0cHNIb3N0ID0gJyc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEVudmlyb25tZW50LkRFTU86XG4gICAgICAgICAgICAgICAgdGhpcy5faHR0cHNIb3N0ID0gJ2JpbGxpbmctYXBpLWRlbW8uYXBpZ2F0ZXdheS5jbyc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEVudmlyb25tZW50LlBST0Q6XG4gICAgICAgICAgICAgICAgdGhpcy5faHR0cHNIb3N0ID0gJ2JpbGxpbmctYXBpLXByb2QuYXBpZ2F0ZXdheS5jbyc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBzSG9zdDtcbiAgICB9XG5cbiAgICBob3N0V2l0aFNjaGVtZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBzY2hlbWUgPSB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRFbnZpcm9ubWVudCgpID09PSBFbnZpcm9ubWVudC5MT0NBTCA/ICdodHRwOi8vJyA6ICdodHRwczovLyc7XG4gICAgICAgIHJldHVybiBzY2hlbWUgKyB0aGlzLmhvc3QoKVxuICAgIH1cblxuICAgIGh0dHBzSG9zdFdpdGhTY2hlbWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgc2NoZW1lID0gdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0RW52aXJvbm1lbnQoKSA9PT0gRW52aXJvbm1lbnQuTE9DQUwgPyAnaHR0cDovLycgOiAnaHR0cHM6Ly8nO1xuICAgICAgICByZXR1cm4gc2NoZW1lICsgdGhpcy5odHRwc0hvc3QoKVxuICAgIH1cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export { HostService } from './host.service';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL3dvcmtzcGFjZS9zZGtzL3R5cGVzY3JpcHQvc3JjL2JpbGxpbmdfc2RrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fZ2VuZXJhdGVkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEhvc3RTZXJ2aWNlIH0gZnJvbSAnLi9ob3N0LnNlcnZpY2UnO1xuIl19
@@ -1,47 +0,0 @@
1
- // *********************************
2
- // Code generated by sdkgen
3
- // DO NOT EDIT!.
4
- //
5
- // API Service.
6
- // *********************************
7
- import { Injectable } from '@angular/core';
8
- import { ListPayoutsRequest, ListPayoutsResponse, ReconcilePayoutRequest, ReconcilePayoutResponse, } from './objects/';
9
- import { HttpHeaders, HttpClient } from '@angular/common/http';
10
- import { HostService } from '../_generated/host.service';
11
- import { map, share } from 'rxjs/operators';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/common/http";
14
- import * as i2 from "../_generated/host.service";
15
- export class BankReconciliationApiService {
16
- constructor(http, hostService) {
17
- this.http = http;
18
- this.hostService = hostService;
19
- }
20
- apiOptions() {
21
- return {
22
- headers: new HttpHeaders({
23
- 'Content-Type': 'application/json'
24
- }),
25
- withCredentials: true
26
- };
27
- }
28
- listPayouts(r) {
29
- const request = (r.toApiJson) ? r : new ListPayoutsRequest(r);
30
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.BankReconciliationService/ListPayouts", request.toApiJson(), this.apiOptions())
31
- .pipe(map(resp => ListPayoutsResponse.fromProto(resp)), share());
32
- }
33
- reconcilePayout(r) {
34
- const request = (r.toApiJson) ? r : new ReconcilePayoutRequest(r);
35
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.BankReconciliationService/ReconcilePayout", request.toApiJson(), this.apiOptions())
36
- .pipe(map(resp => ReconcilePayoutResponse.fromProto(resp)), share());
37
- }
38
- }
39
- BankReconciliationApiService.ɵprov = i0.ɵɵdefineInjectable({ factory: function BankReconciliationApiService_Factory() { return new BankReconciliationApiService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.HostService)); }, token: BankReconciliationApiService, providedIn: "root" });
40
- BankReconciliationApiService.decorators = [
41
- { type: Injectable, args: [{ providedIn: 'root' },] }
42
- ];
43
- BankReconciliationApiService.ctorParameters = () => [
44
- { type: HttpClient },
45
- { type: HostService }
46
- ];
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1yZWNvbmNpbGlhdGlvbi5hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIvd29ya3NwYWNlL3Nka3MvdHlwZXNjcmlwdC9zcmMvYmlsbGluZ19zZGsvc3JjLyIsInNvdXJjZXMiOlsibGliL19pbnRlcm5hbC9iYW5rLXJlY29uY2lsaWF0aW9uLmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixlQUFlO0FBQ2Ysb0NBQW9DO0FBQ3BDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNDLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3RCLHVCQUF1QixHQUM5QixNQUFNLFlBQVksQ0FBQztBQU9wQixPQUFPLEVBQUMsV0FBVyxFQUFFLFVBQVUsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RCxPQUFPLEVBQUMsR0FBRyxFQUFFLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRzFDLE1BQU0sT0FBTyw0QkFBNEI7SUFFckMsWUFBb0IsSUFBZ0IsRUFBVSxXQUF3QjtRQUFsRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDdEUsQ0FBQztJQUVPLFVBQVU7UUFDZCxPQUFPO1lBQ0gsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDO2dCQUNyQixjQUFjLEVBQUUsa0JBQWtCO2FBQ3JDLENBQUM7WUFDRixlQUFlLEVBQUUsSUFBSTtTQUN4QixDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVcsQ0FBQyxDQUFtRDtRQUMzRCxNQUFNLE9BQU8sR0FBRyxDQUFzQixDQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFzQixDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUcsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBK0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsR0FBRyxtREFBbUQsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQy9LLElBQUksQ0FDRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDaEQsS0FBSyxFQUFFLENBQ1YsQ0FBQztJQUNWLENBQUM7SUFDRCxlQUFlLENBQUMsQ0FBMkQ7UUFDdkUsTUFBTSxPQUFPLEdBQUcsQ0FBMEIsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBMEIsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQW1DLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEdBQUcsdURBQXVELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUN2TCxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ3BELEtBQUssRUFBRSxDQUNWLENBQUM7SUFDVixDQUFDOzs7O1lBOUJKLFVBQVUsU0FBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUM7OztZQUxYLFVBQVU7WUFDdkIsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gQVBJIFNlcnZpY2UuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgICAgICBMaXN0UGF5b3V0c1JlcXVlc3QsXG4gICAgICAgIExpc3RQYXlvdXRzUmVzcG9uc2UsXG4gICAgICAgIFJlY29uY2lsZVBheW91dFJlcXVlc3QsXG4gICAgICAgIFJlY29uY2lsZVBheW91dFJlc3BvbnNlLFxufSBmcm9tICcuL29iamVjdHMvJztcbmltcG9ydCB7XG4gICAgICAgIExpc3RQYXlvdXRzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgTGlzdFBheW91dHNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgUmVjb25jaWxlUGF5b3V0UmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgUmVjb25jaWxlUGF5b3V0UmVzcG9uc2VJbnRlcmZhY2UsXG59IGZyb20gJy4vaW50ZXJmYWNlcy8nO1xuaW1wb3J0IHtIdHRwSGVhZGVycywgSHR0cENsaWVudCwgSHR0cFJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0hvc3RTZXJ2aWNlfSBmcm9tICcuLi9fZ2VuZXJhdGVkL2hvc3Quc2VydmljZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHNoYXJlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEJhbmtSZWNvbmNpbGlhdGlvbkFwaVNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGhvc3RTZXJ2aWNlOiBIb3N0U2VydmljZSkge1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBpT3B0aW9ucygpOiB7aGVhZGVyczogSHR0cEhlYWRlcnMsIHdpdGhDcmVkZW50aWFsczogYm9vbGVhbn0ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGxpc3RQYXlvdXRzKHI6IExpc3RQYXlvdXRzUmVxdWVzdCB8IExpc3RQYXlvdXRzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8TGlzdFBheW91dHNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8TGlzdFBheW91dHNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPExpc3RQYXlvdXRzUmVxdWVzdD5yKSA6IG5ldyBMaXN0UGF5b3V0c1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxMaXN0UGF5b3V0c1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9iaWxsaW5nLnYxLkJhbmtSZWNvbmNpbGlhdGlvblNlcnZpY2UvTGlzdFBheW91dHNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBMaXN0UGF5b3V0c1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgcmVjb25jaWxlUGF5b3V0KHI6IFJlY29uY2lsZVBheW91dFJlcXVlc3QgfCBSZWNvbmNpbGVQYXlvdXRSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxSZWNvbmNpbGVQYXlvdXRSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8UmVjb25jaWxlUGF5b3V0UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxSZWNvbmNpbGVQYXlvdXRSZXF1ZXN0PnIpIDogbmV3IFJlY29uY2lsZVBheW91dFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxSZWNvbmNpbGVQYXlvdXRSZXNwb25zZUludGVyZmFjZT4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvYmlsbGluZy52MS5CYW5rUmVjb25jaWxpYXRpb25TZXJ2aWNlL1JlY29uY2lsZVBheW91dFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IFJlY29uY2lsZVBheW91dFJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgXG59XG4iXX0=
@@ -1,217 +0,0 @@
1
- // *********************************
2
- // Code generated by sdkgen
3
- // DO NOT EDIT!.
4
- //
5
- // API Service.
6
- // *********************************
7
- import { Injectable } from '@angular/core';
8
- import { BillItemRequest, BillMultipleItemsRequest, BillMultipleItemsResponse, CanBillItemRequest, CanCreateSubscriptionsRequest, CanCreateSubscriptionsResponse, ChangeCustomUnitPriceRequest, ChangeFrequencyRequest, ChangeRenewalDateRequest, CreateMeteredComponentRequest, CreatePricingPlanProductRequest, CreatePricingPlanProductResponse, CreatePricingPlanRequest, CreatePricingPlanResponse, CreateSubscriptionRequest, CreateSubscriptionsRequest, CreateSubscriptionsResponse, DeleteBillableItemRequest, DeletePricingPlanProductRequest, ExpireBillableItemRequest, GenerateBillableItemsCSVRequest, GenerateBillableItemsCSVResponse, GetBillableItemRequest, GetBillableItemResponse, GetMultiContractsRequest, GetMultiContractsResponse, GetMultiPricingPlanProductRequest, GetMultiPricingPlanProductResponse, GetMultiPricingPlanRequest, GetMultiPricingPlanResponse, GetMultiProductPricingRequest, GetMultiProductPricingResponse, GetMultiProductRequest, GetMultiProductResponse, GetMultiSubscriptionsRequest, GetMultiSubscriptionsResponse, GetPricingPlanProductRequest, GetPricingPlanProductResponse, GetProductSummariesTotalRequest, GetProductSummariesTotalResponse, GetPurchaseCostRequest, GetPurchaseCostResponse, ListBillableItemsRequest, ListBillableItemsResponse, ListContractsRequest, ListContractsResponse, ListMerchantBillingReportsRequest, ListMerchantBillingReportsResponse, ListPricingPlanProductsRequest, ListPricingPlanProductsResponse, ListProductSummariesRequest, ListProductSummariesResponse, ListProductsRequest, ListProductsResponse, ResetContractPricingRequest, ReverseSubscriptionRequest, SetRenewalStartRequest, StartRevRecTemplateBackfillRequest, TickComponentUsageRequest, UpdatePricingPlanProductRequest, UpdatePricingPlanProductResponse, UpdatePricingPlanRequest, UpdatePricingPlanResponse, } from './objects/';
9
- import { HttpHeaders, HttpClient } from '@angular/common/http';
10
- import { HostService } from '../_generated/host.service';
11
- import { map, share } from 'rxjs/operators';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/common/http";
14
- import * as i2 from "../_generated/host.service";
15
- export class BillingApiService {
16
- constructor(http, hostService) {
17
- this.http = http;
18
- this.hostService = hostService;
19
- }
20
- apiOptions() {
21
- return {
22
- headers: new HttpHeaders({
23
- 'Content-Type': 'application/json'
24
- }),
25
- withCredentials: true
26
- };
27
- }
28
- canBillItem(r) {
29
- const request = (r.toApiJson) ? r : new CanBillItemRequest(r);
30
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/CanBillItem", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
31
- }
32
- canCreateSubscriptions(r) {
33
- const request = (r.toApiJson) ? r : new CanCreateSubscriptionsRequest(r);
34
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/CanCreateSubscriptions", request.toApiJson(), this.apiOptions())
35
- .pipe(map(resp => CanCreateSubscriptionsResponse.fromProto(resp)), share());
36
- }
37
- createSubscription(r) {
38
- const request = (r.toApiJson) ? r : new CreateSubscriptionRequest(r);
39
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/CreateSubscription", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
40
- }
41
- createSubscriptions(r) {
42
- const request = (r.toApiJson) ? r : new CreateSubscriptionsRequest(r);
43
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/CreateSubscriptions", request.toApiJson(), this.apiOptions())
44
- .pipe(map(resp => CreateSubscriptionsResponse.fromProto(resp)), share());
45
- }
46
- reverseSubscription(r) {
47
- const request = (r.toApiJson) ? r : new ReverseSubscriptionRequest(r);
48
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/ReverseSubscription", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
49
- }
50
- setRenewalStart(r) {
51
- const request = (r.toApiJson) ? r : new SetRenewalStartRequest(r);
52
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/SetRenewalStart", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
53
- }
54
- billItem(r) {
55
- const request = (r.toApiJson) ? r : new BillItemRequest(r);
56
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/BillItem", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
57
- }
58
- billMultipleItems(r) {
59
- const request = (r.toApiJson) ? r : new BillMultipleItemsRequest(r);
60
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/BillMultipleItems", request.toApiJson(), this.apiOptions())
61
- .pipe(map(resp => BillMultipleItemsResponse.fromProto(resp)), share());
62
- }
63
- getBillableItem(r) {
64
- const request = (r.toApiJson) ? r : new GetBillableItemRequest(r);
65
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/GetBillableItem", request.toApiJson(), this.apiOptions())
66
- .pipe(map(resp => GetBillableItemResponse.fromProto(resp)), share());
67
- }
68
- getMultiSubscriptions(r) {
69
- const request = (r.toApiJson) ? r : new GetMultiSubscriptionsRequest(r);
70
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/GetMultiSubscriptions", request.toApiJson(), this.apiOptions())
71
- .pipe(map(resp => GetMultiSubscriptionsResponse.fromProto(resp)), share());
72
- }
73
- listBillableItems(r) {
74
- const request = (r.toApiJson) ? r : new ListBillableItemsRequest(r);
75
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/ListBillableItems", request.toApiJson(), this.apiOptions())
76
- .pipe(map(resp => ListBillableItemsResponse.fromProto(resp)), share());
77
- }
78
- expireBillableItem(r) {
79
- const request = (r.toApiJson) ? r : new ExpireBillableItemRequest(r);
80
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/ExpireBillableItem", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
81
- }
82
- deleteBillableItem(r) {
83
- const request = (r.toApiJson) ? r : new DeleteBillableItemRequest(r);
84
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/DeleteBillableItem", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
85
- }
86
- listMerchantBillingReports(r) {
87
- const request = (r.toApiJson) ? r : new ListMerchantBillingReportsRequest(r);
88
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/ListMerchantBillingReports", request.toApiJson(), this.apiOptions())
89
- .pipe(map(resp => ListMerchantBillingReportsResponse.fromProto(resp)), share());
90
- }
91
- listProductSummaries(r) {
92
- const request = (r.toApiJson) ? r : new ListProductSummariesRequest(r);
93
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/ListProductSummaries", request.toApiJson(), this.apiOptions())
94
- .pipe(map(resp => ListProductSummariesResponse.fromProto(resp)), share());
95
- }
96
- getProductSummariesTotal(r) {
97
- const request = (r.toApiJson) ? r : new GetProductSummariesTotalRequest(r);
98
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/GetProductSummariesTotal", request.toApiJson(), this.apiOptions())
99
- .pipe(map(resp => GetProductSummariesTotalResponse.fromProto(resp)), share());
100
- }
101
- generateBillableItemsCsv(r) {
102
- const request = (r.toApiJson) ? r : new GenerateBillableItemsCSVRequest(r);
103
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/GenerateBillableItemsCSV", request.toApiJson(), this.apiOptions())
104
- .pipe(map(resp => GenerateBillableItemsCSVResponse.fromProto(resp)), share());
105
- }
106
- createPricingPlan(r) {
107
- const request = (r.toApiJson) ? r : new CreatePricingPlanRequest(r);
108
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/CreatePricingPlan", request.toApiJson(), this.apiOptions())
109
- .pipe(map(resp => CreatePricingPlanResponse.fromProto(resp)), share());
110
- }
111
- updatePricingPlan(r) {
112
- const request = (r.toApiJson) ? r : new UpdatePricingPlanRequest(r);
113
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/UpdatePricingPlan", request.toApiJson(), this.apiOptions())
114
- .pipe(map(resp => UpdatePricingPlanResponse.fromProto(resp)), share());
115
- }
116
- getMultiPricingPlan(r) {
117
- const request = (r.toApiJson) ? r : new GetMultiPricingPlanRequest(r);
118
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/GetMultiPricingPlan", request.toApiJson(), this.apiOptions())
119
- .pipe(map(resp => GetMultiPricingPlanResponse.fromProto(resp)), share());
120
- }
121
- createPricingPlanProduct(r) {
122
- const request = (r.toApiJson) ? r : new CreatePricingPlanProductRequest(r);
123
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/CreatePricingPlanProduct", request.toApiJson(), this.apiOptions())
124
- .pipe(map(resp => CreatePricingPlanProductResponse.fromProto(resp)), share());
125
- }
126
- updatePricingPlanProduct(r) {
127
- const request = (r.toApiJson) ? r : new UpdatePricingPlanProductRequest(r);
128
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/UpdatePricingPlanProduct", request.toApiJson(), this.apiOptions())
129
- .pipe(map(resp => UpdatePricingPlanProductResponse.fromProto(resp)), share());
130
- }
131
- deletePricingPlanProduct(r) {
132
- const request = (r.toApiJson) ? r : new DeletePricingPlanProductRequest(r);
133
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/DeletePricingPlanProduct", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
134
- }
135
- listPricingPlanProducts(r) {
136
- const request = (r.toApiJson) ? r : new ListPricingPlanProductsRequest(r);
137
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/ListPricingPlanProducts", request.toApiJson(), this.apiOptions())
138
- .pipe(map(resp => ListPricingPlanProductsResponse.fromProto(resp)), share());
139
- }
140
- getPricingPlanProduct(r) {
141
- const request = (r.toApiJson) ? r : new GetPricingPlanProductRequest(r);
142
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/GetPricingPlanProduct", request.toApiJson(), this.apiOptions())
143
- .pipe(map(resp => GetPricingPlanProductResponse.fromProto(resp)), share());
144
- }
145
- getMultiPricingPlanProduct(r) {
146
- const request = (r.toApiJson) ? r : new GetMultiPricingPlanProductRequest(r);
147
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/GetMultiPricingPlanProduct", request.toApiJson(), this.apiOptions())
148
- .pipe(map(resp => GetMultiPricingPlanProductResponse.fromProto(resp)), share());
149
- }
150
- getMultiProductPricing(r) {
151
- const request = (r.toApiJson) ? r : new GetMultiProductPricingRequest(r);
152
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/GetMultiProductPricing", request.toApiJson(), this.apiOptions())
153
- .pipe(map(resp => GetMultiProductPricingResponse.fromProto(resp)), share());
154
- }
155
- tickComponentUsage(r) {
156
- const request = (r.toApiJson) ? r : new TickComponentUsageRequest(r);
157
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/TickComponentUsage", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
158
- }
159
- createMeteredComponent(r) {
160
- const request = (r.toApiJson) ? r : new CreateMeteredComponentRequest(r);
161
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/CreateMeteredComponent", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
162
- }
163
- listContracts(r) {
164
- const request = (r.toApiJson) ? r : new ListContractsRequest(r);
165
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/ListContracts", request.toApiJson(), this.apiOptions())
166
- .pipe(map(resp => ListContractsResponse.fromProto(resp)), share());
167
- }
168
- getMultiContract(r) {
169
- const request = (r.toApiJson) ? r : new GetMultiContractsRequest(r);
170
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/GetMultiContract", request.toApiJson(), this.apiOptions())
171
- .pipe(map(resp => GetMultiContractsResponse.fromProto(resp)), share());
172
- }
173
- listProducts(r) {
174
- const request = (r.toApiJson) ? r : new ListProductsRequest(r);
175
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/ListProducts", request.toApiJson(), this.apiOptions())
176
- .pipe(map(resp => ListProductsResponse.fromProto(resp)), share());
177
- }
178
- getMultiProduct(r) {
179
- const request = (r.toApiJson) ? r : new GetMultiProductRequest(r);
180
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/GetMultiProduct", request.toApiJson(), this.apiOptions())
181
- .pipe(map(resp => GetMultiProductResponse.fromProto(resp)), share());
182
- }
183
- resetContractPricing(r) {
184
- const request = (r.toApiJson) ? r : new ResetContractPricingRequest(r);
185
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/ResetContractPricing", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
186
- }
187
- getPurchaseCost(r) {
188
- const request = (r.toApiJson) ? r : new GetPurchaseCostRequest(r);
189
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/GetPurchaseCost", request.toApiJson(), this.apiOptions())
190
- .pipe(map(resp => GetPurchaseCostResponse.fromProto(resp)), share());
191
- }
192
- changeFrequency(r) {
193
- const request = (r.toApiJson) ? r : new ChangeFrequencyRequest(r);
194
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/ChangeFrequency", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
195
- }
196
- changeRenewalDate(r) {
197
- const request = (r.toApiJson) ? r : new ChangeRenewalDateRequest(r);
198
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/ChangeRenewalDate", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
199
- }
200
- changeCustomUnitPrice(r) {
201
- const request = (r.toApiJson) ? r : new ChangeCustomUnitPriceRequest(r);
202
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/ChangeCustomUnitPrice", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
203
- }
204
- startRevRecTemplateBackfill(r) {
205
- const request = (r.toApiJson) ? r : new StartRevRecTemplateBackfillRequest(r);
206
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.Billing/StartRevRecTemplateBackfill", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
207
- }
208
- }
209
- BillingApiService.ɵprov = i0.ɵɵdefineInjectable({ factory: function BillingApiService_Factory() { return new BillingApiService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.HostService)); }, token: BillingApiService, providedIn: "root" });
210
- BillingApiService.decorators = [
211
- { type: Injectable, args: [{ providedIn: 'root' },] }
212
- ];
213
- BillingApiService.ctorParameters = () => [
214
- { type: HttpClient },
215
- { type: HostService }
216
- ];
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlsbGluZy5hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIvd29ya3NwYWNlL3Nka3MvdHlwZXNjcmlwdC9zcmMvYmlsbGluZ19zZGsvc3JjLyIsInNvdXJjZXMiOlsibGliL19pbnRlcm5hbC9iaWxsaW5nLmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixlQUFlO0FBQ2Ysb0NBQW9DO0FBQ3BDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNDLGVBQWUsRUFDZix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQiw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLDZCQUE2QixFQUM3QiwrQkFBK0IsRUFDL0IsZ0NBQWdDLEVBQ2hDLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQiwyQkFBMkIsRUFDM0IseUJBQXlCLEVBQ3pCLCtCQUErQixFQUMvQix5QkFBeUIsRUFDekIsK0JBQStCLEVBQy9CLGdDQUFnQyxFQUNoQyxzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsaUNBQWlDLEVBQ2pDLGtDQUFrQyxFQUNsQywwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLDZCQUE2QixFQUM3Qiw4QkFBOEIsRUFDOUIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0IsK0JBQStCLEVBQy9CLGdDQUFnQyxFQUNoQyxzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsb0JBQW9CLEVBQ3BCLHFCQUFxQixF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RywyQ0FBMkMsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLGtDQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBRSxPQUFPLEVBQUUsVUFBVSxJQUFFLENBQUM7SUFDbkwsQ0FBQztJQUNELDJCQUEyQixDQUFDLENBQW1GO1FBQzNHLE1BQU0sT0FBTyxHQUFHLENBQXNDLENBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQXNDLENBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxrQ0FBa0MsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxSixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEdBQUcsaURBQWlELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxrQ0FBTSxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUUsT0FBTyxFQUFFLFVBQVUsSUFBRSxDQUFDO0lBQ3pMLENBQUM7Ozs7WUExUUosVUFBVSxTQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7O1lBTFgsVUFBVTtZQUN2QixXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBBUEkgU2VydmljZS5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgICAgIEJpbGxJdGVtUmVxdWVzdCxcbiAgICAgICAgQmlsbE11bHRpcGxlSXRlbXNSZXF1ZXN0LFxuICAgICAgICBCaWxsTXVsdGlwbGVJdGVtc1Jlc3BvbnNlLFxuICAgICAgICBDYW5CaWxsSXRlbVJlcXVlc3QsXG4gICAgICAgIENhbkNyZWF0ZVN1YnNjcmlwdGlvbnNSZXF1ZXN0LFxuICAgICAgICBDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVzcG9uc2UsXG4gICAgICAgIENoYW5nZUN1c3RvbVVuaXRQcmljZVJlcXVlc3QsXG4gICAgICAgIENoYW5nZUZyZXF1ZW5jeVJlcXVlc3QsXG4gICAgICAgIENoYW5nZVJlbmV3YWxEYXRlUmVxdWVzdCxcbiAgICAgICAgQ3JlYXRlTWV0ZXJlZENvbXBvbmVudFJlcXVlc3QsXG4gICAgICAgIENyZWF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgICAgIENyZWF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlc3BvbnNlLFxuICAgICAgICBDcmVhdGVQcmljaW5nUGxhblJlcXVlc3QsXG4gICAgICAgIENyZWF0ZVByaWNpbmdQbGFuUmVzcG9uc2UsXG4gICAgICAgIENyZWF0ZVN1YnNjcmlwdGlvblJlcXVlc3QsXG4gICAgICAgIENyZWF0ZVN1YnNjcmlwdGlvbnNSZXF1ZXN0LFxuICAgICAgICBDcmVhdGVTdWJzY3JpcHRpb25zUmVzcG9uc2UsXG4gICAgICAgIERlbGV0ZUJpbGxhYmxlSXRlbVJlcXVlc3QsXG4gICAgICAgIERlbGV0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgICAgIEV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3QsXG4gICAgICAgIEdlbmVyYXRlQmlsbGFibGVJdGVtc0NTVlJlcXVlc3QsXG4gICAgICAgIEdlbmVyYXRlQmlsbGFibGVJdGVtc0NTVlJlc3BvbnNlLFxuICAgICAgICBHZXRCaWxsYWJsZUl0ZW1SZXF1ZXN0LFxuICAgICAgICBHZXRCaWxsYWJsZUl0ZW1SZXNwb25zZSxcbiAgICAgICAgR2V0TXVsdGlDb250cmFjdHNSZXF1ZXN0LFxuICAgICAgICBHZXRNdWx0aUNvbnRyYWN0c1Jlc3BvbnNlLFxuICAgICAgICBHZXRNdWx0aVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgICAgIEdldE11bHRpUHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UsXG4gICAgICAgIEdldE11bHRpUHJpY2luZ1BsYW5SZXF1ZXN0LFxuICAgICAgICBHZXRNdWx0aVByaWNpbmdQbGFuUmVzcG9uc2UsXG4gICAgICAgIEdldE11bHRpUHJvZHVjdFByaWNpbmdSZXF1ZXN0LFxuICAgICAgICBHZXRNdWx0aVByb2R1Y3RQcmljaW5nUmVzcG9uc2UsXG4gICAgICAgIEdldE11bHRpUHJvZHVjdFJlcXVlc3QsXG4gICAgICAgIEdldE11bHRpUHJvZHVjdFJlc3BvbnNlLFxuICAgICAgICBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0LFxuICAgICAgICBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXNwb25zZSxcbiAgICAgICAgR2V0UHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICAgICAgR2V0UHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UsXG4gICAgICAgIEdldFByb2R1Y3RTdW1tYXJpZXNUb3RhbFJlcXVlc3QsXG4gICAgICAgIEdldFByb2R1Y3RTdW1tYXJpZXNUb3RhbFJlc3BvbnNlLFxuICAgICAgICBHZXRQdXJjaGFzZUNvc3RSZXF1ZXN0LFxuICAgICAgICBHZXRQdXJjaGFzZUNvc3RSZXNwb25zZSxcbiAgICAgICAgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0LFxuICAgICAgICBMaXN0QmlsbGFibGVJdGVtc1Jlc3BvbnNlLFxuICAgICAgICBMaXN0Q29udHJhY3RzUmVxdWVzdCxcbiAgICAgICAgTGlzdENvbnRyYWN0c1Jlc3BvbnNlLFxuICAgICAgICBMaXN0TWVyY2hhbnRCaWxsaW5nUmVwb3J0c1JlcXVlc3QsXG4gICAgICAgIExpc3RNZXJjaGFudEJpbGxpbmdSZXBvcnRzUmVzcG9uc2UsXG4gICAgICAgIExpc3RQcmljaW5nUGxhblByb2R1Y3RzUmVxdWVzdCxcbiAgICAgICAgTGlzdFByaWNpbmdQbGFuUHJvZHVjdHNSZXNwb25zZSxcbiAgICAgICAgTGlzdFByb2R1Y3RTdW1tYXJpZXNSZXF1ZXN0LFxuICAgICAgICBMaXN0UHJvZHVjdFN1bW1hcmllc1Jlc3BvbnNlLFxuICAgICAgICBMaXN0UHJvZHVjdHNSZXF1ZXN0LFxuICAgICAgICBMaXN0UHJvZHVjdHNSZXNwb25zZSxcbiAgICAgICAgUmVzZXRDb250cmFjdFByaWNpbmdSZXF1ZXN0LFxuICAgICAgICBSZXZlcnNlU3Vic2NyaXB0aW9uUmVxdWVzdCxcbiAgICAgICAgU2V0UmVuZXdhbFN0YXJ0UmVxdWVzdCxcbiAgICAgICAgU3RhcnRSZXZSZWNUZW1wbGF0ZUJhY2tmaWxsUmVxdWVzdCxcbiAgICAgICAgVGlja0NvbXBvbmVudFVzYWdlUmVxdWVzdCxcbiAgICAgICAgVXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICAgICAgVXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UsXG4gICAgICAgIFVwZGF0ZVByaWNpbmdQbGFuUmVxdWVzdCxcbiAgICAgICAgVXBkYXRlUHJpY2luZ1BsYW5SZXNwb25zZSxcbn0gZnJvbSAnLi9vYmplY3RzLyc7XG5pbXBvcnQge1xuICAgICAgICBCaWxsSXRlbVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgQmlsbE11bHRpcGxlSXRlbXNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgQ2FuQmlsbEl0ZW1SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgQ2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBDaGFuZ2VDdXN0b21Vbml0UHJpY2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDaGFuZ2VGcmVxdWVuY3lSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDaGFuZ2VSZW5ld2FsRGF0ZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIENyZWF0ZU1ldGVyZWRDb21wb25lbnRSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgQ3JlYXRlUHJpY2luZ1BsYW5SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVQcmljaW5nUGxhblJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVTdWJzY3JpcHRpb25SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVTdWJzY3JpcHRpb25zUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgQ3JlYXRlU3Vic2NyaXB0aW9uc1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBEZWxldGVCaWxsYWJsZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBEZWxldGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBFeHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZW5lcmF0ZUJpbGxhYmxlSXRlbXNDU1ZSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZW5lcmF0ZUJpbGxhYmxlSXRlbXNDU1ZSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgR2V0QmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0QmlsbGFibGVJdGVtUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIEdldE11bHRpQ29udHJhY3RzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlDb250cmFjdHNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aVByaWNpbmdQbGFuUHJvZHVjdFJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aVByaWNpbmdQbGFuUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlQcmljaW5nUGxhblJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aVByb2R1Y3RQcmljaW5nUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlQcm9kdWN0UHJpY2luZ1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aVByb2R1Y3RSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aVByb2R1Y3RSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIEdldFByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldFByaWNpbmdQbGFuUHJvZHVjdFJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRQcm9kdWN0U3VtbWFyaWVzVG90YWxSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRQcm9kdWN0U3VtbWFyaWVzVG90YWxSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgR2V0UHVyY2hhc2VDb3N0UmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0UHVyY2hhc2VDb3N0UmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgTGlzdEJpbGxhYmxlSXRlbXNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgTGlzdENvbnRyYWN0c1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIExpc3RDb250cmFjdHNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgTGlzdE1lcmNoYW50QmlsbGluZ1JlcG9ydHNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBMaXN0TWVyY2hhbnRCaWxsaW5nUmVwb3J0c1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBMaXN0UHJpY2luZ1BsYW5Qcm9kdWN0c1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIExpc3RQcmljaW5nUGxhblByb2R1Y3RzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIExpc3RQcm9kdWN0U3VtbWFyaWVzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgTGlzdFByb2R1Y3RTdW1tYXJpZXNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgTGlzdFByb2R1Y3RzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgTGlzdFByb2R1Y3RzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIFJlc2V0Q29udHJhY3RQcmljaW5nUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgUmV2ZXJzZVN1YnNjcmlwdGlvblJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFNldFJlbmV3YWxTdGFydFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFN0YXJ0UmV2UmVjVGVtcGxhdGVCYWNrZmlsbFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFRpY2tDb21wb25lbnRVc2FnZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFVwZGF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFVwZGF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBVcGRhdGVQcmljaW5nUGxhblJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFVwZGF0ZVByaWNpbmdQbGFuUmVzcG9uc2VJbnRlcmZhY2UsXG59IGZyb20gJy4vaW50ZXJmYWNlcy8nO1xuaW1wb3J0IHtIdHRwSGVhZGVycywgSHR0cENsaWVudCwgSHR0cFJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0hvc3RTZXJ2aWNlfSBmcm9tICcuLi9fZ2VuZXJhdGVkL2hvc3Quc2VydmljZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHNoYXJlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEJpbGxpbmdBcGlTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBob3N0U2VydmljZTogSG9zdFNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwaU9wdGlvbnMoKToge2hlYWRlcnM6IEh0dHBIZWFkZXJzLCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW59IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBjYW5CaWxsSXRlbShyOiBDYW5CaWxsSXRlbVJlcXVlc3QgfCBDYW5CaWxsSXRlbVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q2FuQmlsbEl0ZW1SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENhbkJpbGxJdGVtUmVxdWVzdD5yKSA6IG5ldyBDYW5CaWxsSXRlbVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9iaWxsaW5nLnYxLkJpbGxpbmcvQ2FuQmlsbEl0ZW1cIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGNhbkNyZWF0ZVN1YnNjcmlwdGlvbnMocjogQ2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3QgfCBDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8Q2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVxdWVzdD5yKSA6IG5ldyBDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENhbkNyZWF0ZVN1YnNjcmlwdGlvbnNSZXNwb25zZUludGVyZmFjZT4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvYmlsbGluZy52MS5CaWxsaW5nL0NhbkNyZWF0ZVN1YnNjcmlwdGlvbnNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBjcmVhdGVTdWJzY3JpcHRpb24ocjogQ3JlYXRlU3Vic2NyaXB0aW9uUmVxdWVzdCB8IENyZWF0ZVN1YnNjcmlwdGlvblJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q3JlYXRlU3Vic2NyaXB0aW9uUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxDcmVhdGVTdWJzY3JpcHRpb25SZXF1ZXN0PnIpIDogbmV3IENyZWF0ZVN1YnNjcmlwdGlvblJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9iaWxsaW5nLnYxLkJpbGxpbmcvQ3JlYXRlU3Vic2NyaXB0aW9uXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBjcmVhdGVTdWJzY3JpcHRpb25zKHI6IENyZWF0ZVN1YnNjcmlwdGlvbnNSZXF1ZXN0IHwgQ3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPENyZWF0ZVN1YnNjcmlwdGlvbnNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8Q3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3Q+cikgOiBuZXcgQ3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDcmVhdGVTdWJzY3JpcHRpb25zUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2JpbGxpbmcudjEuQmlsbGluZy9DcmVhdGVTdWJzY3JpcHRpb25zXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gQ3JlYXRlU3Vic2NyaXB0aW9uc1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgcmV2ZXJzZVN1YnNjcmlwdGlvbihyOiBSZXZlcnNlU3Vic2NyaXB0aW9uUmVxdWVzdCB8IFJldmVyc2VTdWJzY3JpcHRpb25SZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFJldmVyc2VTdWJzY3JpcHRpb25SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFJldmVyc2VTdWJzY3JpcHRpb25SZXF1ZXN0PnIpIDogbmV3IFJldmVyc2VTdWJzY3JpcHRpb25SZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvYmlsbGluZy52MS5CaWxsaW5nL1JldmVyc2VTdWJzY3JpcHRpb25cIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIHNldFJlbmV3YWxTdGFydChyOiBTZXRSZW5ld2FsU3RhcnRSZXF1ZXN0IHwgU2V0UmVuZXdhbFN0YXJ0UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxTZXRSZW5ld2FsU3RhcnRSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFNldFJlbmV3YWxTdGFydFJlcXVlc3Q+cikgOiBuZXcgU2V0UmVuZXdhbFN0YXJ0UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2JpbGxpbmcudjEuQmlsbGluZy9TZXRSZW5ld2FsU3RhcnRcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGJpbGxJdGVtKHI6IEJpbGxJdGVtUmVxdWVzdCB8IEJpbGxJdGVtUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxCaWxsSXRlbVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8QmlsbEl0ZW1SZXF1ZXN0PnIpIDogbmV3IEJpbGxJdGVtUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2JpbGxpbmcudjEuQmlsbGluZy9CaWxsSXRlbVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgYmlsbE11bHRpcGxlSXRlbXMocjogQmlsbE11bHRpcGxlSXRlbXNSZXF1ZXN0IHwgQmlsbE11bHRpcGxlSXRlbXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxCaWxsTXVsdGlwbGVJdGVtc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxCaWxsTXVsdGlwbGVJdGVtc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8QmlsbE11bHRpcGxlSXRlbXNSZXF1ZXN0PnIpIDogbmV3IEJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEJpbGxNdWx0aXBsZUl0ZW1zUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2JpbGxpbmcudjEuQmlsbGluZy9CaWxsTXVsdGlwbGVJdGVtc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEJpbGxNdWx0aXBsZUl0ZW1zUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBnZXRCaWxsYWJsZUl0ZW0ocjogR2V0QmlsbGFibGVJdGVtUmVxdWVzdCB8IEdldEJpbGxhYmxlSXRlbVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldEJpbGxhYmxlSXRlbVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRCaWxsYWJsZUl0ZW1SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldEJpbGxhYmxlSXRlbVJlcXVlc3Q+cikgOiBuZXcgR2V0QmlsbGFibGVJdGVtUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldEJpbGxhYmxlSXRlbVJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9iaWxsaW5nLnYxLkJpbGxpbmcvR2V0QmlsbGFibGVJdGVtXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0QmlsbGFibGVJdGVtUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBnZXRNdWx0aVN1YnNjcmlwdGlvbnMocjogR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdCB8IEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldE11bHRpU3Vic2NyaXB0aW9uc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3Q+cikgOiBuZXcgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldE11bHRpU3Vic2NyaXB0aW9uc1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9iaWxsaW5nLnYxLkJpbGxpbmcvR2V0TXVsdGlTdWJzY3JpcHRpb25zXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBsaXN0QmlsbGFibGVJdGVtcyhyOiBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3QgfCBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPExpc3RCaWxsYWJsZUl0ZW1zUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3Q+cikgOiBuZXcgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TGlzdEJpbGxhYmxlSXRlbXNSZXNwb25zZUludGVyZmFjZT4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvYmlsbGluZy52MS5CaWxsaW5nL0xpc3RCaWxsYWJsZUl0ZW1zXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gTGlzdEJpbGxhYmxlSXRlbXNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpLFxuICAgICAgICAgICAgICAgIHNoYXJlKClcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGV4cGlyZUJpbGxhYmxlSXRlbShyOiBFeHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0IHwgRXhwaXJlQmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxFeHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3Q+cikgOiBuZXcgRXhwaXJlQmlsbGFibGVJdGVtUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2JpbGxpbmcudjEuQmlsbGluZy9FeHBpcmVCaWxsYWJsZUl0ZW1cIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGRlbGV0ZUJpbGxhYmxlSXRlbShyOiBEZWxldGVCaWxsYWJsZUl0ZW1SZXF1ZXN0IHwgRGVsZXRlQmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxEZWxldGVCaWxsYWJsZUl0ZW1SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPERlbGV0ZUJpbGxhYmxlSXRlbVJlcXVlc3Q+cikgOiBuZXcgRGVsZXRlQmlsbGFibGVJdGVtUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2JpbGxpbmcudjEuQmlsbGluZy9EZWxldGVCaWxsYWJsZUl0ZW1cIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGxpc3RNZXJjaGFudEJpbGxpbmdSZXBvcnRzKHI6IExpc3RNZXJjaGFudEJpbGxpbmdSZXBvcnRzUmVxdWVzdCB8IExpc3RNZXJjaGFudEJpbGxpbmdSZXBvcnRzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8TGlzdE1lcmNoYW50QmlsbGluZ1JlcG9ydHNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8TGlzdE1lcmNoYW50QmlsbGluZ1JlcG9ydHNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPExpc3RNZXJjaGFudEJpbGxpbmdSZXBvcnRzUmVxdWVzdD5yKSA6IG5ldyBMaXN0TWVyY2hhbnRCaWxsaW5nUmVwb3J0c1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxMaXN0TWVyY2hhbnRCaWxsaW5nUmVwb3J0c1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9iaWxsaW5nLnYxLkJpbGxpbmcvTGlzdE1lcmNoYW50QmlsbGluZ1JlcG9ydHNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBMaXN0TWVyY2hhbnRCaWxsaW5nUmVwb3J0c1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgbGlzdFByb2R1Y3RTdW1tYXJpZXMocjogTGlzdFByb2R1Y3RTdW1tYXJpZXNSZXF1ZXN0IHwgTGlzdFByb2R1Y3RTdW1tYXJpZXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxMaXN0UHJvZHVjdFN1bW1hcmllc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxMaXN0UHJvZHVjdFN1bW1hcmllc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8TGlzdFByb2R1Y3RTdW1tYXJpZXNSZXF1ZXN0PnIpIDogbmV3IExpc3RQcm9kdWN0U3VtbWFyaWVzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PExpc3RQcm9kdWN0U3VtbWFyaWVzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2JpbGxpbmcudjEuQmlsbGluZy9MaXN0UHJvZHVjdFN1bW1hcmllc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IExpc3RQcm9kdWN0U3VtbWFyaWVzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBnZXRQcm9kdWN0U3VtbWFyaWVzVG90YWwocjogR2V0UHJvZHVjdFN1bW1hcmllc1RvdGFsUmVxdWVzdCB8IEdldFByb2R1Y3RTdW1tYXJpZXNUb3RhbFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldFByb2R1Y3RTdW1tYXJpZXNUb3RhbFJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRQcm9kdWN0U3VtbWFyaWVzVG90YWxSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldFByb2R1Y3RTdW1tYXJpZXNUb3RhbFJlcXVlc3Q+cikgOiBuZXcgR2V0UHJvZHVjdFN1bW1hcmllc1RvdGFsUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldFByb2R1Y3RTdW1tYXJpZXNUb3RhbFJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9iaWxsaW5nLnYxLkJpbGxpbmcvR2V0UHJvZHVjdFN1bW1hcmllc1RvdGFsXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0UHJvZHVjdFN1bW1hcmllc1RvdGFsUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBnZW5lcmF0ZUJpbGxhYmxlSXRlbXNDc3YocjogR2VuZXJhdGVCaWxsYWJsZUl0ZW1zQ1NWUmVxdWVzdCB8IEdlbmVyYXRlQmlsbGFibGVJdGVtc0NTVlJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdlbmVyYXRlQmlsbGFibGVJdGVtc0NTVlJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZW5lcmF0ZUJpbGxhYmxlSXRlbXNDU1ZSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdlbmVyYXRlQmlsbGFibGVJdGVtc0NTVlJlcXVlc3Q+cikgOiBuZXcgR2VuZXJhdGVCaWxsYWJsZUl0ZW1zQ1NWUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdlbmVyYXRlQmlsbGFibGVJdGVtc0NTVlJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9iaWxsaW5nLnYxLkJpbGxpbmcvR2VuZXJhdGVCaWxsYWJsZUl0ZW1zQ1NWXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2VuZXJhdGVCaWxsYWJsZUl0ZW1zQ1NWUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBjcmVhdGVQcmljaW5nUGxhbihyOiBDcmVhdGVQcmljaW5nUGxhblJlcXVlc3QgfCBDcmVhdGVQcmljaW5nUGxhblJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPENyZWF0ZVByaWNpbmdQbGFuUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPENyZWF0ZVByaWNpbmdQbGFuUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxDcmVhdGVQcmljaW5nUGxhblJlcXVlc3Q+cikgOiBuZXcgQ3JlYXRlUHJpY2luZ1BsYW5SZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q3JlYXRlUHJpY2luZ1BsYW5SZXNwb25zZUludGVyZmFjZT4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvYmlsbGluZy52MS5CaWxsaW5nL0NyZWF0ZVByaWNpbmdQbGFuXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gQ3JlYXRlUHJpY2luZ1BsYW5SZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpLFxuICAgICAgICAgICAgICAgIHNoYXJlKClcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHVwZGF0ZVByaWNpbmdQbGFuKHI6IFVwZGF0ZVByaWNpbmdQbGFuUmVxdWVzdCB8IFVwZGF0ZVByaWNpbmdQbGFuUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8VXBkYXRlUHJpY2luZ1BsYW5SZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8VXBkYXRlUHJpY2luZ1BsYW5SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFVwZGF0ZVByaWNpbmdQbGFuUmVxdWVzdD5yKSA6IG5ldyBVcGRhdGVQcmljaW5nUGxhblJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxVcGRhdGVQcmljaW5nUGxhblJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9iaWxsaW5nLnYxLkJpbGxpbmcvVXBkYXRlUHJpY2luZ1BsYW5cIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBVcGRhdGVQcmljaW5nUGxhblJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0TXVsdGlQcmljaW5nUGxhbihyOiBHZXRNdWx0aVByaWNpbmdQbGFuUmVxdWVzdCB8IEdldE11bHRpUHJpY2luZ1BsYW5SZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRNdWx0aVByaWNpbmdQbGFuUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldE11bHRpUHJpY2luZ1BsYW5SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldE11bHRpUHJpY2luZ1BsYW5SZXF1ZXN0PnIpIDogbmV3IEdldE11bHRpUHJpY2luZ1BsYW5SZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0TXVsdGlQcmljaW5nUGxhblJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9iaWxsaW5nLnYxLkJpbGxpbmcvR2V0TXVsdGlQcmljaW5nUGxhblwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE11bHRpUHJpY2luZ1BsYW5SZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpLFxuICAgICAgICAgICAgICAgIHNoYXJlKClcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGNyZWF0ZVByaWNpbmdQbGFuUHJvZHVjdChyOiBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0IHwgQ3JlYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8Q3JlYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPENyZWF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8Q3JlYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdD5yKSA6IG5ldyBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q3JlYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2JpbGxpbmcudjEuQmlsbGluZy9DcmVhdGVQcmljaW5nUGxhblByb2R1Y3RcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpLFxuICAgICAgICAgICAgICAgIHNoYXJlKClcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHVwZGF0ZVByaWNpbmdQbGFuUHJvZHVjdChyOiBVcGRhdGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0IHwgVXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8VXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFVwZGF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8VXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdD5yKSA6IG5ldyBVcGRhdGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2JpbGxpbmcudjEuQmlsbGluZy9VcGRhdGVQcmljaW5nUGxhblByb2R1Y3RcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBVcGRhdGVQcmljaW5nUGxhblByb2R1Y3RSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpLFxuICAgICAgICAgICAgICAgIHNoYXJlKClcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGRlbGV0ZVByaWNpbmdQbGFuUHJvZHVjdChyOiBEZWxldGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0IHwgRGVsZXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxEZWxldGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPERlbGV0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3Q+cikgOiBuZXcgRGVsZXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2JpbGxpbmcudjEuQmlsbGluZy9EZWxldGVQcmljaW5nUGxhblByb2R1Y3RcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGxpc3RQcmljaW5nUGxhblByb2R1Y3RzKHI6IExpc3RQcmljaW5nUGxhblByb2R1Y3RzUmVxdWVzdCB8IExpc3RQcmljaW5nUGxhblByb2R1Y3RzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8TGlzdFByaWNpbmdQbGFuUHJvZHVjdHNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8TGlzdFByaWNpbmdQbGFuUHJvZHVjdHNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPExpc3RQcmljaW5nUGxhblByb2R1Y3RzUmVxdWVzdD5yKSA6IG5ldyBMaXN0UHJpY2luZ1BsYW5Qcm9kdWN0c1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxMaXN0UHJpY2luZ1BsYW5Qcm9kdWN0c1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9iaWxsaW5nLnYxLkJpbGxpbmcvTGlzdFByaWNpbmdQbGFuUHJvZHVjdHNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBMaXN0UHJpY2luZ1BsYW5Qcm9kdWN0c1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0UHJpY2luZ1BsYW5Qcm9kdWN0KHI6IEdldFByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QgfCBHZXRQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRQcmljaW5nUGxhblByb2R1Y3RSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0UHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0PnIpIDogbmV3IEdldFByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRQcmljaW5nUGxhblByb2R1Y3RSZXNwb25zZUludGVyZmFjZT4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvYmlsbGluZy52MS5CaWxsaW5nL0dldFByaWNpbmdQbGFuUHJvZHVjdFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldFByaWNpbmdQbGFuUHJvZHVjdFJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0TXVsdGlQcmljaW5nUGxhblByb2R1Y3QocjogR2V0TXVsdGlQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0IHwgR2V0TXVsdGlQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRNdWx0aVByaWNpbmdQbGFuUHJvZHVjdFJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRNdWx0aVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0TXVsdGlQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0PnIpIDogbmV3IEdldE11bHRpUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldE11bHRpUHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2JpbGxpbmcudjEuQmlsbGluZy9HZXRNdWx0aVByaWNpbmdQbGFuUHJvZHVjdFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE11bHRpUHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBnZXRNdWx0aVByb2R1Y3RQcmljaW5nKHI6IEdldE11bHRpUHJvZHVjdFByaWNpbmdSZXF1ZXN0IHwgR2V0TXVsdGlQcm9kdWN0UHJpY2luZ1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldE11bHRpUHJvZHVjdFByaWNpbmdSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0TXVsdGlQcm9kdWN0UHJpY2luZ1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0TXVsdGlQcm9kdWN0UHJpY2luZ1JlcXVlc3Q+cikgOiBuZXcgR2V0TXVsdGlQcm9kdWN0UHJpY2luZ1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRNdWx0aVByb2R1Y3RQcmljaW5nUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2JpbGxpbmcudjEuQmlsbGluZy9HZXRNdWx0aVByb2R1Y3RQcmljaW5nXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0TXVsdGlQcm9kdWN0UHJpY2luZ1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgdGlja0NvbXBvbmVudFVzYWdlKHI6IFRpY2tDb21wb25lbnRVc2FnZVJlcXVlc3QgfCBUaWNrQ29tcG9uZW50VXNhZ2VSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFRpY2tDb21wb25lbnRVc2FnZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8VGlja0NvbXBvbmVudFVzYWdlUmVxdWVzdD5yKSA6IG5ldyBUaWNrQ29tcG9uZW50VXNhZ2VSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvYmlsbGluZy52MS5CaWxsaW5nL1RpY2tDb21wb25lbnRVc2FnZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgY3JlYXRlTWV0ZXJlZENvbXBvbmVudChyOiBDcmVhdGVNZXRlcmVkQ29tcG9uZW50UmVxdWVzdCB8IENyZWF0ZU1ldGVyZWRDb21wb25lbnRSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPENyZWF0ZU1ldGVyZWRDb21wb25lbnRSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENyZWF0ZU1ldGVyZWRDb21wb25lbnRSZXF1ZXN0PnIpIDogbmV3IENyZWF0ZU1ldGVyZWRDb21wb25lbnRSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvYmlsbGluZy52MS5CaWxsaW5nL0NyZWF0ZU1ldGVyZWRDb21wb25lbnRcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGxpc3RDb250cmFjdHMocjogTGlzdENvbnRyYWN0c1JlcXVlc3QgfCBMaXN0Q29udHJhY3RzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8TGlzdENvbnRyYWN0c1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxMaXN0Q29udHJhY3RzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxMaXN0Q29udHJhY3RzUmVxdWVzdD5yKSA6IG5ldyBMaXN0Q29udHJhY3RzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PExpc3RDb250cmFjdHNSZXNwb25zZUludGVyZmFjZT4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvYmlsbGluZy52MS5CaWxsaW5nL0xpc3RDb250cmFjdHNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBMaXN0Q29udHJhY3RzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBnZXRNdWx0aUNvbnRyYWN0KHI6IEdldE11bHRpQ29udHJhY3RzUmVxdWVzdCB8IEdldE11bHRpQ29udHJhY3RzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0TXVsdGlDb250cmFjdHNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0TXVsdGlDb250cmFjdHNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldE11bHRpQ29udHJhY3RzUmVxdWVzdD5yKSA6IG5ldyBHZXRNdWx0aUNvbnRyYWN0c1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRNdWx0aUNvbnRyYWN0c1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9iaWxsaW5nLnYxLkJpbGxpbmcvR2V0TXVsdGlDb250cmFjdFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE11bHRpQ29udHJhY3RzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBsaXN0UHJvZHVjdHMocjogTGlzdFByb2R1Y3RzUmVxdWVzdCB8IExpc3RQcm9kdWN0c1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPExpc3RQcm9kdWN0c1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxMaXN0UHJvZHVjdHNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPExpc3RQcm9kdWN0c1JlcXVlc3Q+cikgOiBuZXcgTGlzdFByb2R1Y3RzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PExpc3RQcm9kdWN0c1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9iaWxsaW5nLnYxLkJpbGxpbmcvTGlzdFByb2R1Y3RzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gTGlzdFByb2R1Y3RzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBnZXRNdWx0aVByb2R1Y3QocjogR2V0TXVsdGlQcm9kdWN0UmVxdWVzdCB8IEdldE11bHRpUHJvZHVjdFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldE11bHRpUHJvZHVjdFJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRNdWx0aVByb2R1Y3RSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldE11bHRpUHJvZHVjdFJlcXVlc3Q+cikgOiBuZXcgR2V0TXVsdGlQcm9kdWN0UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldE11bHRpUHJvZHVjdFJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9iaWxsaW5nLnYxLkJpbGxpbmcvR2V0TXVsdGlQcm9kdWN0XCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0TXVsdGlQcm9kdWN0UmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICByZXNldENvbnRyYWN0UHJpY2luZyhyOiBSZXNldENvbnRyYWN0UHJpY2luZ1JlcXVlc3QgfCBSZXNldENvbnRyYWN0UHJpY2luZ1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8UmVzZXRDb250cmFjdFByaWNpbmdSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFJlc2V0Q29udHJhY3RQcmljaW5nUmVxdWVzdD5yKSA6IG5ldyBSZXNldENvbnRyYWN0UHJpY2luZ1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9iaWxsaW5nLnYxLkJpbGxpbmcvUmVzZXRDb250cmFjdFByaWNpbmdcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGdldFB1cmNoYXNlQ29zdChyOiBHZXRQdXJjaGFzZUNvc3RSZXF1ZXN0IHwgR2V0UHVyY2hhc2VDb3N0UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0UHVyY2hhc2VDb3N0UmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldFB1cmNoYXNlQ29zdFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0UHVyY2hhc2VDb3N0UmVxdWVzdD5yKSA6IG5ldyBHZXRQdXJjaGFzZUNvc3RSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0UHVyY2hhc2VDb3N0UmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2JpbGxpbmcudjEuQmlsbGluZy9HZXRQdXJjaGFzZUNvc3RcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRQdXJjaGFzZUNvc3RSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpLFxuICAgICAgICAgICAgICAgIHNoYXJlKClcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGNoYW5nZUZyZXF1ZW5jeShyOiBDaGFuZ2VGcmVxdWVuY3lSZXF1ZXN0IHwgQ2hhbmdlRnJlcXVlbmN5UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDaGFuZ2VGcmVxdWVuY3lSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENoYW5nZUZyZXF1ZW5jeVJlcXVlc3Q+cikgOiBuZXcgQ2hhbmdlRnJlcXVlbmN5UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2JpbGxpbmcudjEuQmlsbGluZy9DaGFuZ2VGcmVxdWVuY3lcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGNoYW5nZVJlbmV3YWxEYXRlKHI6IENoYW5nZVJlbmV3YWxEYXRlUmVxdWVzdCB8IENoYW5nZVJlbmV3YWxEYXRlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDaGFuZ2VSZW5ld2FsRGF0ZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8Q2hhbmdlUmVuZXdhbERhdGVSZXF1ZXN0PnIpIDogbmV3IENoYW5nZVJlbmV3YWxEYXRlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2JpbGxpbmcudjEuQmlsbGluZy9DaGFuZ2VSZW5ld2FsRGF0ZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgY2hhbmdlQ3VzdG9tVW5pdFByaWNlKHI6IENoYW5nZUN1c3RvbVVuaXRQcmljZVJlcXVlc3QgfCBDaGFuZ2VDdXN0b21Vbml0UHJpY2VSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPENoYW5nZUN1c3RvbVVuaXRQcmljZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8Q2hhbmdlQ3VzdG9tVW5pdFByaWNlUmVxdWVzdD5yKSA6IG5ldyBDaGFuZ2VDdXN0b21Vbml0UHJpY2VSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvYmlsbGluZy52MS5CaWxsaW5nL0NoYW5nZUN1c3RvbVVuaXRQcmljZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgc3RhcnRSZXZSZWNUZW1wbGF0ZUJhY2tmaWxsKHI6IFN0YXJ0UmV2UmVjVGVtcGxhdGVCYWNrZmlsbFJlcXVlc3QgfCBTdGFydFJldlJlY1RlbXBsYXRlQmFja2ZpbGxSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFN0YXJ0UmV2UmVjVGVtcGxhdGVCYWNrZmlsbFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8U3RhcnRSZXZSZWNUZW1wbGF0ZUJhY2tmaWxsUmVxdWVzdD5yKSA6IG5ldyBTdGFydFJldlJlY1RlbXBsYXRlQmFja2ZpbGxSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvYmlsbGluZy52MS5CaWxsaW5nL1N0YXJ0UmV2UmVjVGVtcGxhdGVCYWNrZmlsbFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgXG59XG4iXX0=
@@ -1,51 +0,0 @@
1
- // *********************************
2
- // Code generated by sdkgen
3
- // DO NOT EDIT!.
4
- //
5
- // API Service.
6
- // *********************************
7
- import { Injectable } from '@angular/core';
8
- import { GetMultiBundleRequest, GetMultiBundleResponse, ListBundlesRequest, ListBundlesResponse, UpsertBundleRequest, } from './objects/';
9
- import { HttpHeaders, HttpClient } from '@angular/common/http';
10
- import { HostService } from '../_generated/host.service';
11
- import { map, share } from 'rxjs/operators';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/common/http";
14
- import * as i2 from "../_generated/host.service";
15
- export class BundleApiService {
16
- constructor(http, hostService) {
17
- this.http = http;
18
- this.hostService = hostService;
19
- }
20
- apiOptions() {
21
- return {
22
- headers: new HttpHeaders({
23
- 'Content-Type': 'application/json'
24
- }),
25
- withCredentials: true
26
- };
27
- }
28
- upsert(r) {
29
- const request = (r.toApiJson) ? r : new UpsertBundleRequest(r);
30
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.BundleService/Upsert", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
31
- }
32
- getMulti(r) {
33
- const request = (r.toApiJson) ? r : new GetMultiBundleRequest(r);
34
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.BundleService/GetMulti", request.toApiJson(), this.apiOptions())
35
- .pipe(map(resp => GetMultiBundleResponse.fromProto(resp)), share());
36
- }
37
- list(r) {
38
- const request = (r.toApiJson) ? r : new ListBundlesRequest(r);
39
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.BundleService/List", request.toApiJson(), this.apiOptions())
40
- .pipe(map(resp => ListBundlesResponse.fromProto(resp)), share());
41
- }
42
- }
43
- BundleApiService.ɵprov = i0.ɵɵdefineInjectable({ factory: function BundleApiService_Factory() { return new BundleApiService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.HostService)); }, token: BundleApiService, providedIn: "root" });
44
- BundleApiService.decorators = [
45
- { type: Injectable, args: [{ providedIn: 'root' },] }
46
- ];
47
- BundleApiService.ctorParameters = () => [
48
- { type: HttpClient },
49
- { type: HostService }
50
- ];
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii93b3Jrc3BhY2Uvc2Rrcy90eXBlc2NyaXB0L3NyYy9iaWxsaW5nX3Nkay9zcmMvIiwic291cmNlcyI6WyJsaWIvX2ludGVybmFsL2J1bmRsZS5hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFDcEMsMkJBQTJCO0FBQzNCLGdCQUFnQjtBQUNoQixFQUFFO0FBQ0YsZUFBZTtBQUNmLG9DQUFvQztBQUNwQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDQyxxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsbUJBQW1CLEdBQzFCLE1BQU0sWUFBWSxDQUFDO0FBUXBCLE9BQU8sRUFBQyxXQUFXLEVBQUUsVUFBVSxFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRXZELE9BQU8sRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFHMUMsTUFBTSxPQUFPLGdCQUFnQjtJQUV6QixZQUFvQixJQUFnQixFQUFVLFdBQXdCO1FBQWxELFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUN0RSxDQUFDO0lBRU8sVUFBVTtRQUNkLE9BQU87WUFDSCxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUM7Z0JBQ3JCLGNBQWMsRUFBRSxrQkFBa0I7YUFDckMsQ0FBQztZQUNGLGVBQWUsRUFBRSxJQUFJO1NBQ3hCLENBQUM7SUFDTixDQUFDO0lBRUQsTUFBTSxDQUFDLENBQXFEO1FBQ3hELE1BQU0sT0FBTyxHQUFHLENBQXVCLENBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQXVCLENBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEdBQUcsa0NBQWtDLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxrQ0FBTSxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUUsT0FBTyxFQUFFLFVBQVUsSUFBRSxDQUFDO0lBQzFLLENBQUM7SUFDRCxRQUFRLENBQUMsQ0FBeUQ7UUFDOUQsTUFBTSxPQUFPLEdBQUcsQ0FBeUIsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBeUIsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQWtDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEdBQUcsb0NBQW9DLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNuSyxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ25ELEtBQUssRUFBRSxDQUNWLENBQUM7SUFDVixDQUFDO0lBQ0QsSUFBSSxDQUFDLENBQW1EO1FBQ3BELE1BQU0sT0FBTyxHQUFHLENBQXNCLENBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQXNCLENBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUErQixJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxHQUFHLGdDQUFnQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDNUosSUFBSSxDQUNELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUNoRCxLQUFLLEVBQUUsQ0FDVixDQUFDO0lBQ1YsQ0FBQzs7OztZQWxDSixVQUFVLFNBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzs7WUFMWCxVQUFVO1lBQ3ZCLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIEFQSSBTZXJ2aWNlLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICAgICAgR2V0TXVsdGlCdW5kbGVSZXF1ZXN0LFxuICAgICAgICBHZXRNdWx0aUJ1bmRsZVJlc3BvbnNlLFxuICAgICAgICBMaXN0QnVuZGxlc1JlcXVlc3QsXG4gICAgICAgIExpc3RCdW5kbGVzUmVzcG9uc2UsXG4gICAgICAgIFVwc2VydEJ1bmRsZVJlcXVlc3QsXG59IGZyb20gJy4vb2JqZWN0cy8nO1xuaW1wb3J0IHtcbiAgICAgICAgR2V0TXVsdGlCdW5kbGVSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aUJ1bmRsZVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBMaXN0QnVuZGxlc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIExpc3RCdW5kbGVzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIFVwc2VydEJ1bmRsZVJlcXVlc3RJbnRlcmZhY2UsXG59IGZyb20gJy4vaW50ZXJmYWNlcy8nO1xuaW1wb3J0IHtIdHRwSGVhZGVycywgSHR0cENsaWVudCwgSHR0cFJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0hvc3RTZXJ2aWNlfSBmcm9tICcuLi9fZ2VuZXJhdGVkL2hvc3Quc2VydmljZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHNoYXJlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEJ1bmRsZUFwaVNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGhvc3RTZXJ2aWNlOiBIb3N0U2VydmljZSkge1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBpT3B0aW9ucygpOiB7aGVhZGVyczogSHR0cEhlYWRlcnMsIHdpdGhDcmVkZW50aWFsczogYm9vbGVhbn0ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHVwc2VydChyOiBVcHNlcnRCdW5kbGVSZXF1ZXN0IHwgVXBzZXJ0QnVuZGxlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxVcHNlcnRCdW5kbGVSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFVwc2VydEJ1bmRsZVJlcXVlc3Q+cikgOiBuZXcgVXBzZXJ0QnVuZGxlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2JpbGxpbmcudjEuQnVuZGxlU2VydmljZS9VcHNlcnRcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGdldE11bHRpKHI6IEdldE11bHRpQnVuZGxlUmVxdWVzdCB8IEdldE11bHRpQnVuZGxlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0TXVsdGlCdW5kbGVSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0TXVsdGlCdW5kbGVSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldE11bHRpQnVuZGxlUmVxdWVzdD5yKSA6IG5ldyBHZXRNdWx0aUJ1bmRsZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRNdWx0aUJ1bmRsZVJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9iaWxsaW5nLnYxLkJ1bmRsZVNlcnZpY2UvR2V0TXVsdGlcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRNdWx0aUJ1bmRsZVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgbGlzdChyOiBMaXN0QnVuZGxlc1JlcXVlc3QgfCBMaXN0QnVuZGxlc1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPExpc3RCdW5kbGVzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPExpc3RCdW5kbGVzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxMaXN0QnVuZGxlc1JlcXVlc3Q+cikgOiBuZXcgTGlzdEJ1bmRsZXNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TGlzdEJ1bmRsZXNSZXNwb25zZUludGVyZmFjZT4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvYmlsbGluZy52MS5CdW5kbGVTZXJ2aWNlL0xpc3RcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBMaXN0QnVuZGxlc1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgXG59XG4iXX0=
@@ -1,46 +0,0 @@
1
- // *********************************
2
- // Code generated by sdkgen
3
- // DO NOT EDIT!.
4
- //
5
- // API Service.
6
- // *********************************
7
- import { Injectable } from '@angular/core';
8
- import { DeleteContractDocumentRequest, ListContractDocumentsRequest, ListContractDocumentsResponse, } from './objects/';
9
- import { HttpHeaders, HttpClient } from '@angular/common/http';
10
- import { HostService } from '../_generated/host.service';
11
- import { map, share } from 'rxjs/operators';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/common/http";
14
- import * as i2 from "../_generated/host.service";
15
- export class ContractDocumentApiService {
16
- constructor(http, hostService) {
17
- this.http = http;
18
- this.hostService = hostService;
19
- }
20
- apiOptions() {
21
- return {
22
- headers: new HttpHeaders({
23
- 'Content-Type': 'application/json'
24
- }),
25
- withCredentials: true
26
- };
27
- }
28
- list(r) {
29
- const request = (r.toApiJson) ? r : new ListContractDocumentsRequest(r);
30
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.ContractDocumentService/List", request.toApiJson(), this.apiOptions())
31
- .pipe(map(resp => ListContractDocumentsResponse.fromProto(resp)), share());
32
- }
33
- delete(r) {
34
- const request = (r.toApiJson) ? r : new DeleteContractDocumentRequest(r);
35
- return this.http.post(this.hostService.hostWithScheme() + "/billing.v1.ContractDocumentService/Delete", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
36
- }
37
- }
38
- ContractDocumentApiService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ContractDocumentApiService_Factory() { return new ContractDocumentApiService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.HostService)); }, token: ContractDocumentApiService, providedIn: "root" });
39
- ContractDocumentApiService.decorators = [
40
- { type: Injectable, args: [{ providedIn: 'root' },] }
41
- ];
42
- ContractDocumentApiService.ctorParameters = () => [
43
- { type: HttpClient },
44
- { type: HostService }
45
- ];
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3QtZG9jdW1lbnQuYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL3dvcmtzcGFjZS9zZGtzL3R5cGVzY3JpcHQvc3JjL2JpbGxpbmdfc2RrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9faW50ZXJuYWwvY29udHJhY3QtZG9jdW1lbnQuYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DO0FBQ3BDLDJCQUEyQjtBQUMzQixnQkFBZ0I7QUFDaEIsRUFBRTtBQUNGLGVBQWU7QUFDZixvQ0FBb0M7QUFDcEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0MsNkJBQTZCLEVBQzdCLDRCQUE0QixFQUM1Qiw2QkFBNkIsR0FDcEMsTUFBTSxZQUFZLENBQUM7QUFNcEIsT0FBTyxFQUFDLFdBQVcsRUFBRSxVQUFVLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFdkQsT0FBTyxFQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUcxQyxNQUFNLE9BQU8sMEJBQTBCO0lBRW5DLFlBQW9CLElBQWdCLEVBQVUsV0FBd0I7UUFBbEQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQ3RFLENBQUM7SUFFTyxVQUFVO1FBQ2QsT0FBTztZQUNILE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQztnQkFDckIsY0FBYyxFQUFFLGtCQUFrQjthQUNyQyxDQUFDO1lBQ0YsZUFBZSxFQUFFLElBQUk7U0FDeEIsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFJLENBQUMsQ0FBdUU7UUFDeEUsTUFBTSxPQUFPLEdBQUcsQ0FBZ0MsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBZ0MsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXlDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEdBQUcsMENBQTBDLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNoTCxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsNkJBQTZCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQzFELEtBQUssRUFBRSxDQUNWLENBQUM7SUFDVixDQUFDO0lBQ0QsTUFBTSxDQUFDLENBQXlFO1FBQzVFLE1BQU0sT0FBTyxHQUFHLENBQWlDLENBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQWlDLENBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSw2QkFBNkIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzSSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEdBQUcsNENBQTRDLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxrQ0FBTSxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUUsT0FBTyxFQUFFLFVBQVUsSUFBRSxDQUFDO0lBQ3BMLENBQUM7Ozs7WUExQkosVUFBVSxTQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7O1lBTFgsVUFBVTtZQUN2QixXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBBUEkgU2VydmljZS5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgICAgIERlbGV0ZUNvbnRyYWN0RG9jdW1lbnRSZXF1ZXN0LFxuICAgICAgICBMaXN0Q29udHJhY3REb2N1bWVudHNSZXF1ZXN0LFxuICAgICAgICBMaXN0Q29udHJhY3REb2N1bWVudHNSZXNwb25zZSxcbn0gZnJvbSAnLi9vYmplY3RzLyc7XG5pbXBvcnQge1xuICAgICAgICBEZWxldGVDb250cmFjdERvY3VtZW50UmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgTGlzdENvbnRyYWN0RG9jdW1lbnRzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgTGlzdENvbnRyYWN0RG9jdW1lbnRzUmVzcG9uc2VJbnRlcmZhY2UsXG59IGZyb20gJy4vaW50ZXJmYWNlcy8nO1xuaW1wb3J0IHtIdHRwSGVhZGVycywgSHR0cENsaWVudCwgSHR0cFJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0hvc3RTZXJ2aWNlfSBmcm9tICcuLi9fZ2VuZXJhdGVkL2hvc3Quc2VydmljZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHNoYXJlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIENvbnRyYWN0RG9jdW1lbnRBcGlTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBob3N0U2VydmljZTogSG9zdFNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwaU9wdGlvbnMoKToge2hlYWRlcnM6IEh0dHBIZWFkZXJzLCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW59IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBsaXN0KHI6IExpc3RDb250cmFjdERvY3VtZW50c1JlcXVlc3QgfCBMaXN0Q29udHJhY3REb2N1bWVudHNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxMaXN0Q29udHJhY3REb2N1bWVudHNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8TGlzdENvbnRyYWN0RG9jdW1lbnRzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxMaXN0Q29udHJhY3REb2N1bWVudHNSZXF1ZXN0PnIpIDogbmV3IExpc3RDb250cmFjdERvY3VtZW50c1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxMaXN0Q29udHJhY3REb2N1bWVudHNSZXNwb25zZUludGVyZmFjZT4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvYmlsbGluZy52MS5Db250cmFjdERvY3VtZW50U2VydmljZS9MaXN0XCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gTGlzdENvbnRyYWN0RG9jdW1lbnRzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBkZWxldGUocjogRGVsZXRlQ29udHJhY3REb2N1bWVudFJlcXVlc3QgfCBEZWxldGVDb250cmFjdERvY3VtZW50UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxEZWxldGVDb250cmFjdERvY3VtZW50UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxEZWxldGVDb250cmFjdERvY3VtZW50UmVxdWVzdD5yKSA6IG5ldyBEZWxldGVDb250cmFjdERvY3VtZW50UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2JpbGxpbmcudjEuQ29udHJhY3REb2N1bWVudFNlcnZpY2UvRGVsZXRlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBcbn1cbiJdfQ==