taxtank-core 0.30.138 → 0.30.141

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 (969) hide show
  1. package/esm2020/lib/db/Models/transaction/transaction-base.mjs +3 -2
  2. package/esm2020/lib/db/Models/user/user.mjs +3 -3
  3. package/esm2020/lib/interceptors/basiq-token.interceptor.mjs +2 -2
  4. package/esm2020/lib/interceptors/financial-year-interceptor.mjs +1 -1
  5. package/esm2020/lib/interceptors/jwt-interceptor.mjs +4 -5
  6. package/esm2020/lib/models/event/app-event-type.enum.mjs +9 -10
  7. package/esm2020/lib/services/account-setup/account-setup.service.mjs +4 -4
  8. package/esm2020/lib/services/auth/auth.service.mjs +4 -20
  9. package/esm2020/lib/services/data.service.mjs +7 -1
  10. package/esm2020/lib/services/http/bank/bank-account/bank-account.service.mjs +6 -6
  11. package/esm2020/lib/services/http/bank/bank-connection/bank-connection.service.mjs +2 -2
  12. package/esm2020/lib/services/http/bank/bank-transaction/bank-transaction.service.mjs +2 -2
  13. package/esm2020/lib/services/http/bank/basiq/basiq-token.service.mjs +2 -2
  14. package/esm2020/lib/services/http/bank/basiq/basiq.service.mjs +2 -2
  15. package/esm2020/lib/services/http/depreciation/depreciation.service.mjs +7 -7
  16. package/esm2020/lib/services/http/firm/client-invite/client-invite.service.mjs +3 -3
  17. package/esm2020/lib/services/http/firm/client-movement/client-movement.service.mjs +3 -3
  18. package/esm2020/lib/services/http/holding/holding.service.mjs +4 -2
  19. package/esm2020/lib/services/http/income-source/income-source.service.mjs +2 -2
  20. package/esm2020/lib/services/http/income-source/sole-forecast/sole-forecast.service.mjs +2 -2
  21. package/esm2020/lib/services/http/loan/loan.service.mjs +6 -6
  22. package/esm2020/lib/services/http/property/property-share/property-share.service.mjs +5 -6
  23. package/esm2020/lib/services/http/property/property.service.mjs +4 -4
  24. package/esm2020/lib/services/http/rest/rest-old.service.mjs +29 -22
  25. package/esm2020/lib/services/http/rest/rest.service.mjs +36 -28
  26. package/esm2020/lib/services/http/sole/sole-business-loss/sole-business-loss.service.mjs +2 -2
  27. package/esm2020/lib/services/http/sole/sole-details/sole-details.service.mjs +3 -4
  28. package/esm2020/lib/services/http/sole/sole-invoice/sole-invoice.service.mjs +4 -2
  29. package/esm2020/lib/services/http/tax-review/tax-review.service.mjs +3 -3
  30. package/esm2020/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.mjs +4 -4
  31. package/esm2020/lib/services/http/transaction/transaction.service.mjs +7 -20
  32. package/esm2020/lib/services/http/user/financial-year/financial-year.service.mjs +29 -0
  33. package/esm2020/lib/services/http/user/index.mjs +2 -1
  34. package/esm2020/lib/services/http/user/user-event-setting/user-event-setting.service.mjs +1 -1
  35. package/esm2020/lib/services/http/user/user.service.mjs +32 -135
  36. package/esm2020/lib/services/http/vehicle/vehicle-claim.service.mjs +6 -4
  37. package/fesm2015/taxtank-core.mjs +6744 -6824
  38. package/fesm2015/taxtank-core.mjs.map +1 -1
  39. package/fesm2020/taxtank-core.mjs +6616 -6698
  40. package/fesm2020/taxtank-core.mjs.map +1 -1
  41. package/lib/collections/account-setup-item.collection.d.ts.map +1 -0
  42. package/lib/collections/allocation-group.collection.d.ts.map +1 -0
  43. package/lib/collections/allocation-rule.collection.d.ts.map +1 -0
  44. package/lib/collections/asset-sale.collection.d.ts.map +1 -0
  45. package/lib/collections/bank-account.collection.d.ts.map +1 -0
  46. package/lib/collections/bank-transaction.collection.d.ts.map +1 -0
  47. package/lib/collections/chart-accounts.collection.d.ts.map +1 -0
  48. package/lib/collections/chat/chat.collection.d.ts.map +1 -0
  49. package/lib/collections/chat/index.d.ts.map +1 -0
  50. package/lib/collections/chat/message-document.collection.d.ts.map +1 -0
  51. package/lib/collections/chat/message.collection.d.ts.map +1 -0
  52. package/lib/collections/client-invite.collection.d.ts.map +1 -0
  53. package/lib/collections/client-movement.collection.d.ts.map +1 -0
  54. package/lib/collections/client-portfolio-report.collection.d.ts.map +1 -0
  55. package/lib/collections/client.collection.d.ts.map +1 -0
  56. package/lib/collections/collection-dictionary.d.ts.map +1 -0
  57. package/lib/collections/collection.d.ts.map +1 -0
  58. package/lib/collections/depreciation-forecast.collection.d.ts.map +1 -0
  59. package/lib/collections/depreciation.collection.d.ts.map +1 -0
  60. package/lib/collections/employee.collection.d.ts.map +1 -0
  61. package/lib/collections/exportable.collection.d.ts.map +1 -0
  62. package/lib/collections/holding/holding-sale.collection.d.ts.map +1 -0
  63. package/lib/collections/holding/holding-type.collection.d.ts.map +1 -0
  64. package/lib/collections/holding/holding.collection.d.ts.map +1 -0
  65. package/lib/collections/holding/index.d.ts.map +1 -0
  66. package/lib/collections/income-source/income-source-forecast.collection.d.ts.map +1 -0
  67. package/lib/collections/income-source/income-source.collection.d.ts.map +1 -0
  68. package/lib/collections/income-source/index.d.ts.map +1 -0
  69. package/lib/collections/index.d.ts.map +1 -0
  70. package/lib/collections/loan/index.d.ts.map +1 -0
  71. package/lib/collections/loan/loan-payment.collection.d.ts.map +1 -0
  72. package/lib/collections/loan/loan.collection.d.ts.map +1 -0
  73. package/lib/collections/property/index.d.ts.map +1 -0
  74. package/lib/collections/property/property-category-movement.collection.d.ts.map +1 -0
  75. package/lib/collections/property/property-sale/index.d.ts.map +1 -0
  76. package/lib/collections/property/property-sale/property-sale-tax-exemption-meta-field.collection.d.ts.map +1 -0
  77. package/lib/collections/property/property-sale/property-sale.collection.d.ts.map +1 -0
  78. package/lib/collections/property/property-share.collection.d.ts.map +1 -0
  79. package/lib/collections/property/property.collection.d.ts.map +1 -0
  80. package/lib/collections/report/depreciation/depreciation-lvp-report-item.collection.d.ts.map +1 -0
  81. package/lib/collections/report/depreciation/depreciation-report-item.collection.d.ts.map +1 -0
  82. package/lib/collections/report/index.d.ts.map +1 -0
  83. package/lib/collections/report/property/property-report-item-depreciation.collection.d.ts.map +1 -0
  84. package/lib/collections/report/property/property-report-item-transaction.collection.d.ts.map +1 -0
  85. package/lib/collections/report/property/property-report-item.collection.d.ts.map +1 -0
  86. package/lib/collections/report/vehicle-expense/vehicle-expense.collection.d.ts.map +1 -0
  87. package/lib/collections/sole/index.d.ts.map +1 -0
  88. package/lib/collections/sole/sole-business-losses.collection.d.ts.map +1 -0
  89. package/lib/collections/sole/sole-invoice-item.collection.d.ts.map +1 -0
  90. package/lib/collections/sole/sole-invoice.collection.d.ts.map +1 -0
  91. package/lib/collections/subscription/index.d.ts.map +1 -0
  92. package/lib/collections/subscription/service-price.collection.d.ts.map +1 -0
  93. package/lib/collections/subscription/service-product.collection.d.ts.map +1 -0
  94. package/lib/collections/subscription/service-subscription.collection.d.ts.map +1 -0
  95. package/lib/collections/subscription/subscription-item.collection.d.ts.map +1 -0
  96. package/lib/collections/tax-review.collection.d.ts.map +1 -0
  97. package/lib/collections/tax-summary/index.d.ts.map +1 -0
  98. package/lib/collections/tax-summary/report-item.collection.d.ts.map +1 -0
  99. package/lib/collections/tax-summary/tax-return-categories.const.d.ts.map +1 -0
  100. package/lib/collections/transaction/index.d.ts.map +1 -0
  101. package/lib/collections/transaction/transaction-allocation.collection.d.ts.map +1 -0
  102. package/lib/collections/transaction/transaction.collection.d.ts.map +1 -0
  103. package/lib/collections/user-event-setting.collection.d.ts.map +1 -0
  104. package/lib/collections/user-event-type-collection.d.ts.map +1 -0
  105. package/lib/collections/vehicle/index.d.ts.map +1 -0
  106. package/lib/collections/vehicle/vehicle-claim.collection.d.ts.map +1 -0
  107. package/lib/collections/vehicle/vehicle-logbook.collection.d.ts.map +1 -0
  108. package/lib/db/Enums/address-type.enum.d.ts.map +1 -0
  109. package/lib/db/Enums/allocation-rule-condition-comparison-operator.enum.d.ts.map +1 -0
  110. package/lib/db/Enums/allocation-rule-condition-field.enum.d.ts.map +1 -0
  111. package/lib/db/Enums/allocation-rule-condition-operator.enum.d.ts.map +1 -0
  112. package/lib/db/Enums/allocation-rule-type.enum.d.ts.map +1 -0
  113. package/lib/db/Enums/annual-frequency.enum.d.ts.map +1 -0
  114. package/lib/db/Enums/bank/bank-account-status.enum.d.ts.map +1 -0
  115. package/lib/db/Enums/bank/bank-account-type.enum.d.ts.map +1 -0
  116. package/lib/db/Enums/bank/bank-connection-status.enum.d.ts.map +1 -0
  117. package/lib/db/Enums/bank/bank-popular.enum.d.ts.map +1 -0
  118. package/lib/db/Enums/bank/bank-provider.enum.d.ts.map +1 -0
  119. package/lib/db/Enums/bank/bank-transaction-type.enum.d.ts.map +1 -0
  120. package/lib/db/Enums/bank/index.d.ts.map +1 -0
  121. package/lib/db/Enums/bank/loan/index.d.ts.map +1 -0
  122. package/lib/db/Enums/bank/loan/loan-bank-type.enum.d.ts.map +1 -0
  123. package/lib/db/Enums/bank/loan/loan-frequency.enum.d.ts.map +1 -0
  124. package/lib/db/Enums/bank/loan/loan-interest-type-label.enum.d.ts.map +1 -0
  125. package/lib/db/Enums/bank/loan/loan-interest-type.enum.d.ts.map +1 -0
  126. package/lib/db/Enums/bank/loan/loan-payout-type.enum.d.ts.map +1 -0
  127. package/lib/db/Enums/bank/loan/loan-repayment-frequency.enum.d.ts.map +1 -0
  128. package/lib/db/Enums/bank/loan/loan-repayment-type-label.enum.d.ts.map +1 -0
  129. package/lib/db/Enums/bank/loan/loan-repayment-type.enum.d.ts.map +1 -0
  130. package/lib/db/Enums/bank/loan/loan-type.enum.d.ts.map +1 -0
  131. package/lib/db/Enums/bank/loan/loan-vehicle-type.enum.d.ts.map +1 -0
  132. package/lib/db/Enums/chart-accounts/chart-accounts-category.enum.d.ts.map +1 -0
  133. package/lib/db/Enums/chart-accounts/chart-accounts-etp.enum.d.ts.map +1 -0
  134. package/lib/db/Enums/chart-accounts/chart-accounts-heading-list.enum.d.ts.map +1 -0
  135. package/lib/db/Enums/chart-accounts/chart-accounts-heading-tax-deductible.enum.d.ts.map +1 -0
  136. package/lib/db/Enums/chart-accounts/chart-accounts-heading-taxable.enum.d.ts.map +1 -0
  137. package/lib/db/Enums/chart-accounts/chart-accounts-heading-vehicle-list.enum.d.ts.map +1 -0
  138. package/lib/db/Enums/chart-accounts/chart-accounts-holding-untaxed-income-list.enum.d.ts.map +1 -0
  139. package/lib/db/Enums/chart-accounts/chart-accounts-invoice-expense.enum.d.ts.map +1 -0
  140. package/lib/db/Enums/chart-accounts/chart-accounts-keep-sign.enum.d.ts.map +1 -0
  141. package/lib/db/Enums/chart-accounts/chart-accounts-list.enum.d.ts.map +1 -0
  142. package/lib/db/Enums/chart-accounts/chart-accounts-meta-field-list.enum.d.ts.map +1 -0
  143. package/lib/db/Enums/chart-accounts/chart-accounts-meta-field-type.enum.d.ts.map +1 -0
  144. package/lib/db/Enums/chart-accounts/chart-accounts-salary-adjustments-list.enum.d.ts.map +1 -0
  145. package/lib/db/Enums/chart-accounts/chart-accounts-salary-included-list.enum.d.ts.map +1 -0
  146. package/lib/db/Enums/chart-accounts/chart-accounts-type.enum.d.ts.map +1 -0
  147. package/lib/db/Enums/chart-accounts/index.d.ts.map +1 -0
  148. package/lib/db/Enums/chat-status.enum.d.ts.map +1 -0
  149. package/lib/db/Enums/client-details-medicare-exemption.enum.d.ts.map +1 -0
  150. package/lib/db/Enums/client-details-work-depreciation-calculation.enum.d.ts.map +1 -0
  151. package/lib/db/Enums/client-details-working-holiday-maker.enum.d.ts.map +1 -0
  152. package/lib/db/Enums/client-invite-status.enum.d.ts.map +1 -0
  153. package/lib/db/Enums/client-invite-type.enum.d.ts.map +1 -0
  154. package/lib/db/Enums/depreciation-calculation-percent.enum.d.ts.map +1 -0
  155. package/lib/db/Enums/depreciation-calculation.enum.d.ts.map +1 -0
  156. package/lib/db/Enums/depreciation-type.enum.d.ts.map +1 -0
  157. package/lib/db/Enums/depreciation-write-off-amount.enum.d.ts.map +1 -0
  158. package/lib/db/Enums/document-type.enum.d.ts.map +1 -0
  159. package/lib/db/Enums/file-type.enum.d.ts.map +1 -0
  160. package/lib/db/Enums/firm-type.enum.d.ts.map +1 -0
  161. package/lib/db/Enums/holding/holding-type-category.enum.d.ts.map +1 -0
  162. package/lib/db/Enums/income-source/income-source-forecast-trust-type.enum.d.ts.map +1 -0
  163. package/lib/db/Enums/income-source/income-source-type-list-holding.enum.d.ts.map +1 -0
  164. package/lib/db/Enums/income-source/income-source-type-list-other.enum.d.ts.map +1 -0
  165. package/lib/db/Enums/income-source/income-source-type-list-sole.enum.d.ts.map +1 -0
  166. package/lib/db/Enums/income-source/income-source-type-list-work.enum.d.ts.map +1 -0
  167. package/lib/db/Enums/income-source/income-source-type.enum.d.ts.map +1 -0
  168. package/lib/db/Enums/income-source/index.d.ts.map +1 -0
  169. package/lib/db/Enums/index.d.ts.map +1 -0
  170. package/lib/db/Enums/invite-status.enum.d.ts.map +1 -0
  171. package/lib/db/Enums/phone-type.enum.d.ts.map +1 -0
  172. package/lib/db/Enums/property/property-category-list.enum.d.ts.map +1 -0
  173. package/lib/db/Enums/property/property-depreciation-calculation.enum.d.ts.map +1 -0
  174. package/lib/db/Enums/property/property-sale/tax-exemption-meta-field.enum.d.ts.map +1 -0
  175. package/lib/db/Enums/property/property-sale/tax-exemption.enum.d.ts.map +1 -0
  176. package/lib/db/Enums/property/property-share-access.enum.d.ts.map +1 -0
  177. package/lib/db/Enums/property/property-share-status.enum.d.ts.map +1 -0
  178. package/lib/db/Enums/registration-invite-status.enum.d.ts.map +1 -0
  179. package/lib/db/Enums/salary-forecast-frequency.enum.d.ts.map +1 -0
  180. package/lib/db/Enums/service-notification-status.enum.d.ts.map +1 -0
  181. package/lib/db/Enums/service-notification-type.enum.d.ts.map +1 -0
  182. package/lib/db/Enums/sole-depreciation-method.enum.d.ts.map +1 -0
  183. package/lib/db/Enums/sole-invoice-statuses.enum.d.ts.map +1 -0
  184. package/lib/db/Enums/sole-invoice-tax-type.enum.d.ts.map +1 -0
  185. package/lib/db/Enums/sole-invoice-template-tax-type.enum.d.ts.map +1 -0
  186. package/lib/db/Enums/spare-document-spare-type.enum.d.ts.map +1 -0
  187. package/lib/db/Enums/subscription/service-payment-method-card-brand.enum.d.ts.map +1 -0
  188. package/lib/db/Enums/subscription/service-payment-method-type.enum.d.ts.map +1 -0
  189. package/lib/db/Enums/subscription/service-payment-status.enum.d.ts.map +1 -0
  190. package/lib/db/Enums/subscription/service-price-recurring-interval.enum.d.ts.map +1 -0
  191. package/lib/db/Enums/subscription/service-price-type.enum.d.ts.map +1 -0
  192. package/lib/db/Enums/subscription/service-product-id.enum.d.ts.map +1 -0
  193. package/lib/db/Enums/subscription/service-product-status.enum.d.ts.map +1 -0
  194. package/lib/db/Enums/subscription/service-subscription-status.enum.d.ts.map +1 -0
  195. package/lib/db/Enums/tank-type.enum.d.ts.map +1 -0
  196. package/lib/db/Enums/tax-calculation-medicare-exemption.enum.d.ts.map +1 -0
  197. package/lib/db/Enums/tax-calculation-type.enum.d.ts.map +1 -0
  198. package/lib/db/Enums/tax-return/index.d.ts.map +1 -0
  199. package/lib/db/Enums/tax-return/tax-return-category-list.enum.d.ts.map +1 -0
  200. package/lib/db/Enums/tax-return/tax-return-category-section.enum.d.ts.map +1 -0
  201. package/lib/db/Enums/tax-return/tax-return-item.enum.d.ts.map +1 -0
  202. package/lib/db/Enums/tax-review-status.enum.d.ts.map +1 -0
  203. package/lib/db/Enums/tax-summary-list.enum.d.ts.map +1 -0
  204. package/lib/db/Enums/tax-summary-section.enum.d.ts.map +1 -0
  205. package/lib/db/Enums/tax-summary-tax-summary.enum.d.ts.map +1 -0
  206. package/lib/db/Enums/ticket-feedback.enum.d.ts.map +1 -0
  207. package/lib/db/Enums/ticket-status.enum.d.ts.map +1 -0
  208. package/lib/db/Enums/ticket-types.enum.d.ts.map +1 -0
  209. package/lib/db/Enums/transaction-operation.enum.d.ts.map +1 -0
  210. package/lib/db/Enums/transaction-source.enum.d.ts.map +1 -0
  211. package/lib/db/Enums/transaction-type.enum.d.ts.map +1 -0
  212. package/lib/db/Enums/user-event-status.enum.d.ts.map +1 -0
  213. package/lib/db/Enums/user-event-type-client-type.enum.d.ts.map +1 -0
  214. package/lib/db/Enums/user-event-type-employee-type.enum.d.ts.map +1 -0
  215. package/lib/db/Enums/user-event-type-frequency.enum.d.ts.map +1 -0
  216. package/lib/db/Enums/user-event-type-type.enum.d.ts.map +1 -0
  217. package/lib/db/Enums/user-event-type-user-type.enum.d.ts.map +1 -0
  218. package/lib/db/Enums/user-medicare-exemption.enum.d.ts.map +1 -0
  219. package/lib/db/Enums/user-roles.enum.d.ts.map +1 -0
  220. package/lib/db/Enums/user-status.enum.d.ts.map +1 -0
  221. package/lib/db/Enums/user-title.enum.d.ts.map +1 -0
  222. package/lib/db/Enums/user-work-depreciation-calculation.enum.d.ts.map +1 -0
  223. package/lib/db/Enums/user-working-holiday-maker.enum.d.ts.map +1 -0
  224. package/lib/db/Enums/vehicle-claim-details-method.enum.d.ts.map +1 -0
  225. package/lib/db/Enums/vehicle-logbook-purpose.enum.d.ts.map +1 -0
  226. package/lib/db/Models/abstract-model.d.ts.map +1 -0
  227. package/lib/db/Models/address.d.ts.map +1 -0
  228. package/lib/db/Models/bank/bank-account-balance.d.ts.map +1 -0
  229. package/lib/db/Models/bank/bank-account-property.d.ts.map +1 -0
  230. package/lib/db/Models/bank/bank-account.d.ts.map +1 -0
  231. package/lib/db/Models/bank/bank-connection.d.ts.map +1 -0
  232. package/lib/db/Models/bank/bank-transaction-import.d.ts.map +1 -0
  233. package/lib/db/Models/bank/bank-transaction.d.ts.map +1 -0
  234. package/lib/db/Models/bank/bank.d.ts.map +1 -0
  235. package/lib/db/Models/bank/basiq-job-step.enum.d.ts.map +1 -0
  236. package/lib/db/Models/bank/basiq-job.d.ts.map +1 -0
  237. package/lib/db/Models/budget/budget-rule.d.ts.map +1 -0
  238. package/lib/db/Models/budget/budget.d.ts.map +1 -0
  239. package/lib/db/Models/budget/index.d.ts.map +1 -0
  240. package/lib/db/Models/chart-accounts/chart-accounts-depreciation.d.ts.map +1 -0
  241. package/lib/db/Models/chart-accounts/chart-accounts-heading.d.ts.map +1 -0
  242. package/lib/db/Models/chart-accounts/chart-accounts-meta-field.d.ts.map +1 -0
  243. package/lib/db/Models/chart-accounts/chart-accounts-value.d.ts.map +1 -0
  244. package/lib/db/Models/chart-accounts/chart-accounts.d.ts.map +1 -0
  245. package/lib/db/Models/client/annual-client-details.d.ts.map +1 -0
  246. package/lib/db/Models/client/client-details.d.ts.map +1 -0
  247. package/lib/db/Models/client/client-income-types.d.ts.map +1 -0
  248. package/lib/db/Models/client/index.d.ts.map +1 -0
  249. package/lib/db/Models/client/occupation.d.ts.map +1 -0
  250. package/lib/db/Models/country.d.ts.map +1 -0
  251. package/lib/db/Models/depreciation/depreciation-capital-project.d.ts.map +1 -0
  252. package/lib/db/Models/depreciation/depreciation-forecast.d.ts.map +1 -0
  253. package/lib/db/Models/depreciation/depreciation-receipt.d.ts.map +1 -0
  254. package/lib/db/Models/depreciation/depreciation.d.ts.map +1 -0
  255. package/lib/db/Models/document/document-base.d.ts.map +1 -0
  256. package/lib/db/Models/document/document-folder.d.ts.map +1 -0
  257. package/lib/db/Models/document/document.d.ts.map +1 -0
  258. package/lib/db/Models/document/property-document.d.ts.map +1 -0
  259. package/lib/db/Models/file.d.ts.map +1 -0
  260. package/lib/db/Models/firm/accountant/tax-review.d.ts.map +1 -0
  261. package/lib/db/Models/firm/accountant/ticket.d.ts.map +1 -0
  262. package/lib/db/Models/firm/chat.d.ts.map +1 -0
  263. package/lib/db/Models/firm/client-invite.d.ts.map +1 -0
  264. package/lib/db/Models/firm/client-movement.d.ts.map +1 -0
  265. package/lib/db/Models/firm/employee-invite.d.ts.map +1 -0
  266. package/lib/db/Models/firm/firm-invite.d.ts.map +1 -0
  267. package/lib/db/Models/firm/firm.d.ts.map +1 -0
  268. package/lib/db/Models/firm/message-document.d.ts.map +1 -0
  269. package/lib/db/Models/firm/message.d.ts.map +1 -0
  270. package/lib/db/Models/holding/holding-sale.d.ts.map +1 -0
  271. package/lib/db/Models/holding/holding-type-exchange.d.ts.map +1 -0
  272. package/lib/db/Models/holding/holding-type.d.ts.map +1 -0
  273. package/lib/db/Models/holding/holding.d.ts.map +1 -0
  274. package/lib/db/Models/holding/index.d.ts.map +1 -0
  275. package/lib/db/Models/incomeSource/income-source-forecast.d.ts.map +1 -0
  276. package/lib/db/Models/incomeSource/income-source-type.d.ts.map +1 -0
  277. package/lib/db/Models/incomeSource/income-source.d.ts.map +1 -0
  278. package/lib/db/Models/incomeSource/salary-forecast.d.ts.map +1 -0
  279. package/lib/db/Models/index.d.ts.map +1 -0
  280. package/lib/db/Models/loan/borrowing-expense-loan.d.ts.map +1 -0
  281. package/lib/db/Models/loan/borrowing-expense.d.ts.map +1 -0
  282. package/lib/db/Models/loan/loan-payout.d.ts.map +1 -0
  283. package/lib/db/Models/loan/loan.d.ts.map +1 -0
  284. package/lib/db/Models/observable-model.d.ts.map +1 -0
  285. package/lib/db/Models/phone.d.ts.map +1 -0
  286. package/lib/db/Models/property/borrowing-report.d.ts.map +1 -0
  287. package/lib/db/Models/property/property-category-movement.d.ts.map +1 -0
  288. package/lib/db/Models/property/property-category.d.ts.map +1 -0
  289. package/lib/db/Models/property/property-forecast.d.ts.map +1 -0
  290. package/lib/db/Models/property/property-sale/property-sale-tax-exemption-meta-field.d.ts.map +1 -0
  291. package/lib/db/Models/property/property-sale/property-sale.d.ts.map +1 -0
  292. package/lib/db/Models/property/property-sale/tax-exemption-meta-field.d.ts.map +1 -0
  293. package/lib/db/Models/property/property-sale/tax-exemption.d.ts.map +1 -0
  294. package/lib/db/Models/property/property-share.d.ts.map +1 -0
  295. package/lib/db/Models/property/property-subscription.d.ts.map +1 -0
  296. package/lib/db/Models/property/property-valuation.d.ts.map +1 -0
  297. package/lib/db/Models/property/property.d.ts.map +1 -0
  298. package/lib/db/Models/service-notification.d.ts.map +1 -0
  299. package/lib/db/Models/sole/bas-report.d.ts.map +1 -0
  300. package/lib/db/Models/sole/sole-business-activity.d.ts.map +1 -0
  301. package/lib/db/Models/sole/sole-business-allocation.d.ts.map +1 -0
  302. package/lib/db/Models/sole/sole-business-loss-offset-rule.d.ts.map +1 -0
  303. package/lib/db/Models/sole/sole-business-loss.d.ts.map +1 -0
  304. package/lib/db/Models/sole/sole-business.d.ts.map +1 -0
  305. package/lib/db/Models/sole/sole-contact.d.ts.map +1 -0
  306. package/lib/db/Models/sole/sole-depreciation-method.d.ts.map +1 -0
  307. package/lib/db/Models/sole/sole-details.d.ts.map +1 -0
  308. package/lib/db/Models/sole/sole-forecast.d.ts.map +1 -0
  309. package/lib/db/Models/sole/sole-invoice-item.d.ts.map +1 -0
  310. package/lib/db/Models/sole/sole-invoice-template.d.ts.map +1 -0
  311. package/lib/db/Models/sole/sole-invoice.d.ts.map +1 -0
  312. package/lib/db/Models/spare/spare-document-category.d.ts.map +1 -0
  313. package/lib/db/Models/spare/spare-document.d.ts.map +1 -0
  314. package/lib/db/Models/subscription/service-payment-method.d.ts.map +1 -0
  315. package/lib/db/Models/subscription/service-payment.d.ts.map +1 -0
  316. package/lib/db/Models/subscription/service-price.d.ts.map +1 -0
  317. package/lib/db/Models/subscription/service-product.d.ts.map +1 -0
  318. package/lib/db/Models/subscription/service-subscription-item.d.ts.map +1 -0
  319. package/lib/db/Models/subscription/service-subscription.d.ts.map +1 -0
  320. package/lib/db/Models/tax-calculation.d.ts.map +1 -0
  321. package/lib/db/Models/tax-return/index.d.ts.map +1 -0
  322. package/lib/db/Models/tax-return/tax-return-category.d.ts.map +1 -0
  323. package/lib/db/Models/tax-return/tax-return-item.d.ts.map +1 -0
  324. package/lib/db/Models/tax-return/tax-return.d.ts.map +1 -0
  325. package/lib/db/Models/transaction/allocation-rule-condition.d.ts.map +1 -0
  326. package/lib/db/Models/transaction/allocation-rule-transaction-meta-field.d.ts.map +1 -0
  327. package/lib/db/Models/transaction/allocation-rule-transaction.d.ts.map +1 -0
  328. package/lib/db/Models/transaction/allocation-rule.d.ts.map +1 -0
  329. package/lib/db/Models/transaction/transaction-allocation.d.ts.map +1 -0
  330. package/lib/db/Models/transaction/transaction-base.d.ts.map +1 -0
  331. package/lib/db/Models/transaction/transaction-meta-field.d.ts.map +1 -0
  332. package/lib/db/Models/transaction/transaction-receipt.d.ts.map +1 -0
  333. package/lib/db/Models/transaction/transaction.d.ts.map +1 -0
  334. package/lib/db/Models/user/employee-details.d.ts.map +1 -0
  335. package/lib/db/Models/user/registration-invite.d.ts.map +1 -0
  336. package/lib/db/Models/user/user-event-setting.d.ts.map +1 -0
  337. package/lib/db/Models/user/user-event-type-category.d.ts.map +1 -0
  338. package/lib/db/Models/user/user-event-type.d.ts.map +1 -0
  339. package/lib/db/Models/user/user-event.d.ts.map +1 -0
  340. package/lib/db/Models/user/user.d.ts +2 -2
  341. package/lib/db/Models/user/user.d.ts.map +1 -0
  342. package/lib/db/Models/vehicle/vehicle-claim-details.d.ts.map +1 -0
  343. package/lib/db/Models/vehicle/vehicle-claim.d.ts.map +1 -0
  344. package/lib/db/Models/vehicle/vehicle-logbook.d.ts.map +1 -0
  345. package/lib/db/Models/vehicle/vehicle.d.ts.map +1 -0
  346. package/lib/db-static/chart-accounts/chart-accounts-values.d.ts.map +1 -0
  347. package/lib/forms/abstract.form.d.ts.map +1 -0
  348. package/lib/forms/address/address.form.d.ts.map +1 -0
  349. package/lib/forms/address/index.d.ts.map +1 -0
  350. package/lib/forms/bank/bank-account/bank-account-add-manual.form.d.ts.map +1 -0
  351. package/lib/forms/bank/bank-account/bank-account-allocation.form.d.ts.map +1 -0
  352. package/lib/forms/bank/bank-account/bank-account-import.form.d.ts.map +1 -0
  353. package/lib/forms/bank/bank-account/bank-account-properties.form.d.ts.map +1 -0
  354. package/lib/forms/bank/bank-account/bank-accounts-import.form.d.ts.map +1 -0
  355. package/lib/forms/budget/budget.form.d.ts.map +1 -0
  356. package/lib/forms/budget/index.d.ts.map +1 -0
  357. package/lib/forms/client/annual-client-details.form.d.ts.map +1 -0
  358. package/lib/forms/client/client-income-types.form.d.ts.map +1 -0
  359. package/lib/forms/client/index.d.ts.map +1 -0
  360. package/lib/forms/depreciation/depreciation.form.d.ts.map +1 -0
  361. package/lib/forms/depreciation/index.d.ts.map +1 -0
  362. package/lib/forms/form-validations.enum.d.ts.map +1 -0
  363. package/lib/forms/holding/holding-reinvest.form.d.ts.map +1 -0
  364. package/lib/forms/holding/holding-sale.form.d.ts.map +1 -0
  365. package/lib/forms/holding/holding-type.form.d.ts.map +1 -0
  366. package/lib/forms/holding/holding.form.d.ts.map +1 -0
  367. package/lib/forms/holding/index.d.ts.map +1 -0
  368. package/lib/forms/index.d.ts.map +1 -0
  369. package/lib/forms/loan/index.d.ts.map +1 -0
  370. package/lib/forms/loan/loan.form.d.ts.map +1 -0
  371. package/lib/forms/login/login.form.d.ts.map +1 -0
  372. package/lib/forms/phone/index.d.ts.map +1 -0
  373. package/lib/forms/phone/phone.form.d.ts.map +1 -0
  374. package/lib/forms/property/borrowing-report.form.d.ts.map +1 -0
  375. package/lib/forms/property/index.d.ts.map +1 -0
  376. package/lib/forms/property/property-sale/index.d.ts.map +1 -0
  377. package/lib/forms/property/property-sale/property-sale-cost-base.form.d.ts.map +1 -0
  378. package/lib/forms/property/property-sale/property-sale-cost-sale.form.d.ts.map +1 -0
  379. package/lib/forms/property/property-sale/property-sale-exemptions.form.d.ts.map +1 -0
  380. package/lib/forms/register/register-client.form.d.ts.map +1 -0
  381. package/lib/forms/register/register-firm.form.d.ts.map +1 -0
  382. package/lib/forms/report/my-tax/index.d.ts.map +1 -0
  383. package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-details/my-tax-business-details.form.d.ts.map +1 -0
  384. package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income/my-tax-business-income.form.d.ts.map +1 -0
  385. package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income-or-losses.form.d.ts.map +1 -0
  386. package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.form.d.ts.map +1 -0
  387. package/lib/forms/report/my-tax/my-tax-cgt.form.d.ts.map +1 -0
  388. package/lib/forms/report/my-tax/my-tax-deductions.form.d.ts.map +1 -0
  389. package/lib/forms/report/my-tax/my-tax-dividends.form.d.ts.map +1 -0
  390. package/lib/forms/report/my-tax/my-tax-income-statements.form.d.ts.map +1 -0
  391. package/lib/forms/report/my-tax/my-tax-income-tests.form.d.ts.map +1 -0
  392. package/lib/forms/report/my-tax/my-tax-interest.form.d.ts.map +1 -0
  393. package/lib/forms/report/my-tax/my-tax-losses.form.d.ts.map +1 -0
  394. package/lib/forms/report/my-tax/my-tax-medicare.form.d.ts.map +1 -0
  395. package/lib/forms/report/my-tax/my-tax-offsets.form.d.ts.map +1 -0
  396. package/lib/forms/report/my-tax/my-tax-other-income.form.d.ts.map +1 -0
  397. package/lib/forms/report/my-tax/my-tax-partnerships-and-trusts.form.d.ts.map +1 -0
  398. package/lib/forms/report/my-tax/my-tax-rent.form.d.ts.map +1 -0
  399. package/lib/forms/sole/bas-report.form.d.ts.map +1 -0
  400. package/lib/forms/sole/index.d.ts.map +1 -0
  401. package/lib/forms/sole/sole-business-allocations.form.d.ts.map +1 -0
  402. package/lib/forms/sole/sole-business-loss.form.d.ts.map +1 -0
  403. package/lib/forms/sole/sole-business.form.d.ts.map +1 -0
  404. package/lib/forms/sole/sole-contact.form.d.ts.map +1 -0
  405. package/lib/forms/sole/sole-depreciation-method.form.d.ts.map +1 -0
  406. package/lib/forms/sole/sole-details.form.d.ts.map +1 -0
  407. package/lib/forms/sole/sole-invoice-item.form.d.ts.map +1 -0
  408. package/lib/forms/sole/sole-invoice-template.form.d.ts.map +1 -0
  409. package/lib/forms/sole/sole-invoice.form.d.ts.map +1 -0
  410. package/lib/forms/transaction/allocation-rule-condition.form.d.ts.map +1 -0
  411. package/lib/forms/transaction/allocation-rule-transaction-meta-field.form.d.ts.map +1 -0
  412. package/lib/forms/transaction/allocation-rule-transaction.form.d.ts.map +1 -0
  413. package/lib/forms/transaction/allocation-rule.form.d.ts.map +1 -0
  414. package/lib/forms/transaction/holding/holding-income.form.d.ts.map +1 -0
  415. package/lib/forms/transaction/index.d.ts.map +1 -0
  416. package/lib/forms/transaction/messages.enum.d.ts.map +1 -0
  417. package/lib/forms/transaction/transaction-base.form.d.ts.map +1 -0
  418. package/lib/forms/transaction/transaction.form.d.ts.map +1 -0
  419. package/lib/forms/transaction/work/work-expense.form.d.ts.map +1 -0
  420. package/lib/forms/transaction/work/work-income.form.d.ts.map +1 -0
  421. package/lib/forms/transaction/work/work-transaction.form.d.ts.map +1 -0
  422. package/lib/forms/user/index.d.ts.map +1 -0
  423. package/lib/forms/user/password.form.d.ts.map +1 -0
  424. package/lib/forms/user/reset-password.form.d.ts.map +1 -0
  425. package/lib/forms/user/user-invite.form.d.ts.map +1 -0
  426. package/lib/forms/vehicle/index.d.ts.map +1 -0
  427. package/lib/forms/vehicle/vehicle-claim-details.form.d.ts.map +1 -0
  428. package/lib/forms/vehicle/vehicle-claim.form.d.ts.map +1 -0
  429. package/lib/forms/vehicle/vehicle-logbook.form.d.ts.map +1 -0
  430. package/lib/forms/vehicle/vehicle.form.d.ts.map +1 -0
  431. package/lib/functions/array/index.d.ts.map +1 -0
  432. package/lib/functions/array/replace.d.ts.map +1 -0
  433. package/lib/functions/array/sort-deep.d.ts.map +1 -0
  434. package/lib/functions/array/sort.d.ts.map +1 -0
  435. package/lib/functions/array/to-array.d.ts.map +1 -0
  436. package/lib/functions/clone-deep.d.ts.map +1 -0
  437. package/lib/functions/create-date.d.ts.map +1 -0
  438. package/lib/functions/enum-to-list.d.ts.map +1 -0
  439. package/lib/functions/get-doc-icon.d.ts.map +1 -0
  440. package/lib/functions/mat-options-functions.d.ts.map +1 -0
  441. package/lib/functions/mat-sort-options.d.ts.map +1 -0
  442. package/lib/functions/tax-review-filter-predicate.d.ts.map +1 -0
  443. package/lib/interceptors/basiq-client-id.interceptor.d.ts.map +1 -0
  444. package/lib/interceptors/basiq-token.interceptor.d.ts.map +1 -0
  445. package/lib/interceptors/corelogic-interceptor.d.ts.map +1 -0
  446. package/lib/interceptors/financial-year-interceptor.d.ts.map +1 -0
  447. package/lib/interceptors/interceptors.module.d.ts.map +1 -0
  448. package/lib/interceptors/jwt-interceptor.d.ts +1 -2
  449. package/lib/interceptors/jwt-interceptor.d.ts.map +1 -0
  450. package/lib/interceptors/preloader.interceptor.d.ts.map +1 -0
  451. package/lib/interceptors/user-switcher-interceptor.d.ts.map +1 -0
  452. package/lib/interfaces/asset-entity-type.enum.d.ts.map +1 -0
  453. package/lib/interfaces/asset-type.enum.d.ts.map +1 -0
  454. package/lib/interfaces/asset.interface.d.ts.map +1 -0
  455. package/lib/interfaces/auth-tokens.interface.d.ts.map +1 -0
  456. package/lib/interfaces/chart-data.interface.d.ts.map +1 -0
  457. package/lib/interfaces/chart-serie.interface.d.ts.map +1 -0
  458. package/lib/interfaces/document.interface.d.ts.map +1 -0
  459. package/lib/interfaces/documentable.interface.d.ts.map +1 -0
  460. package/lib/interfaces/event-listener.interface.d.ts.map +1 -0
  461. package/lib/interfaces/expense.interface.d.ts.map +1 -0
  462. package/lib/interfaces/income-source-forecast.interface.d.ts.map +1 -0
  463. package/lib/interfaces/index.d.ts.map +1 -0
  464. package/lib/interfaces/option.interface.d.ts.map +1 -0
  465. package/lib/interfaces/photoable.d.ts.map +1 -0
  466. package/lib/interfaces/receipt.interface.d.ts.map +1 -0
  467. package/lib/interfaces/table-exportable.interface.d.ts.map +1 -0
  468. package/lib/interfaces/tank.interface.d.ts.map +1 -0
  469. package/lib/interfaces/updatable.interface.d.ts.map +1 -0
  470. package/lib/messages/index.d.ts.map +1 -0
  471. package/lib/messages/messages.enum.d.ts.map +1 -0
  472. package/lib/models/account-setup/account-setup-item.d.ts.map +1 -0
  473. package/lib/models/account-setup/account-setup-items.const.d.ts.map +1 -0
  474. package/lib/models/account-setup/account-setup-items.enum.d.ts.map +1 -0
  475. package/lib/models/address/address.d.ts.map +1 -0
  476. package/lib/models/address/country.d.ts.map +1 -0
  477. package/lib/models/address/index.d.ts.map +1 -0
  478. package/lib/models/address/states.enum.d.ts.map +1 -0
  479. package/lib/models/asset-sale.d.ts.map +1 -0
  480. package/lib/models/badge/badge-color.enum.d.ts.map +1 -0
  481. package/lib/models/badge/badge.d.ts.map +1 -0
  482. package/lib/models/bank/allocation-group.d.ts.map +1 -0
  483. package/lib/models/bank/bank-account-chart-data.d.ts.map +1 -0
  484. package/lib/models/bank/bank-account-property.d.ts.map +1 -0
  485. package/lib/models/bank/bank-account-types.const.d.ts.map +1 -0
  486. package/lib/models/bank/bank-account.d.ts.map +1 -0
  487. package/lib/models/bank/bank-connection.d.ts.map +1 -0
  488. package/lib/models/bank/bank-external-stats.d.ts.map +1 -0
  489. package/lib/models/bank/bank-transaction-chart-data.d.ts.map +1 -0
  490. package/lib/models/bank/bank-transaction-summary-fields.enum.d.ts.map +1 -0
  491. package/lib/models/bank/bank-transaction.d.ts.map +1 -0
  492. package/lib/models/bank/bank.d.ts.map +1 -0
  493. package/lib/models/bank/basiq/basiq-config.d.ts.map +1 -0
  494. package/lib/models/bank/basiq/basiq-connection-data.interface.d.ts.map +1 -0
  495. package/lib/models/bank/basiq/basiq-connections-response.interface.d.ts.map +1 -0
  496. package/lib/models/bank/basiq/basiq-job-response.d.ts.map +1 -0
  497. package/lib/models/bank/basiq/basiq-job-step.d.ts.map +1 -0
  498. package/lib/models/bank/basiq/basiq-job.d.ts.map +1 -0
  499. package/lib/models/bank/basiq/basiq-token-response.interface.d.ts.map +1 -0
  500. package/lib/models/bank/basiq/basiq-token.d.ts.map +1 -0
  501. package/lib/models/bank/basiq/index.d.ts.map +1 -0
  502. package/lib/models/bank/index.d.ts.map +1 -0
  503. package/lib/models/bank/type-loan.const.d.ts.map +1 -0
  504. package/lib/models/borrowing-expense/borrowing-expense-loan.d.ts.map +1 -0
  505. package/lib/models/borrowing-expense/borrowing-expense.d.ts.map +1 -0
  506. package/lib/models/borrowing-expense/index.d.ts.map +1 -0
  507. package/lib/models/budget/budget-rule.d.ts.map +1 -0
  508. package/lib/models/budget/budget.d.ts.map +1 -0
  509. package/lib/models/budget/index.d.ts.map +1 -0
  510. package/lib/models/chart/chart-data.d.ts.map +1 -0
  511. package/lib/models/chart/chart-serie.d.ts.map +1 -0
  512. package/lib/models/chart-accounts/chart-accounts-categories.const.d.ts.map +1 -0
  513. package/lib/models/chart-accounts/chart-accounts-category.e-collection.d.ts.map +1 -0
  514. package/lib/models/chart-accounts/chart-accounts-depreciation.d.ts.map +1 -0
  515. package/lib/models/chart-accounts/chart-accounts-heading.d.ts.map +1 -0
  516. package/lib/models/chart-accounts/chart-accounts-meta-field.d.ts.map +1 -0
  517. package/lib/models/chart-accounts/chart-accounts-tax-labels.enum.d.ts.map +1 -0
  518. package/lib/models/chart-accounts/chart-accounts-value.d.ts.map +1 -0
  519. package/lib/models/chart-accounts/chart-accounts.d.ts.map +1 -0
  520. package/lib/models/chart-accounts/index.d.ts.map +1 -0
  521. package/lib/models/chat/chat-view-type.enum.d.ts.map +1 -0
  522. package/lib/models/chat/chat.d.ts.map +1 -0
  523. package/lib/models/chat/index.d.ts.map +1 -0
  524. package/lib/models/chat/message-document.d.ts.map +1 -0
  525. package/lib/models/chat/message.d.ts.map +1 -0
  526. package/lib/models/client/annual-client-details.d.ts.map +1 -0
  527. package/lib/models/client/client-details.d.ts.map +1 -0
  528. package/lib/models/client/client-income-types.d.ts.map +1 -0
  529. package/lib/models/client/client-invite.d.ts.map +1 -0
  530. package/lib/models/client/client-movement.d.ts.map +1 -0
  531. package/lib/models/client/client-portfolio-chart-data.d.ts.map +1 -0
  532. package/lib/models/client/client-portfolio-report.d.ts.map +1 -0
  533. package/lib/models/client/index.d.ts.map +1 -0
  534. package/lib/models/color/alphabet-colors.enum.d.ts.map +1 -0
  535. package/lib/models/depreciation/depreciation-capital-project.d.ts.map +1 -0
  536. package/lib/models/depreciation/depreciation-forecast.d.ts.map +1 -0
  537. package/lib/models/depreciation/depreciation-group-item.d.ts.map +1 -0
  538. package/lib/models/depreciation/depreciation-group.d.ts.map +1 -0
  539. package/lib/models/depreciation/depreciation-group.enum.d.ts.map +1 -0
  540. package/lib/models/depreciation/depreciation-groups.const.d.ts.map +1 -0
  541. package/lib/models/depreciation/depreciation-lvp-rate.enum.d.ts.map +1 -0
  542. package/lib/models/depreciation/depreciation-receipt.d.ts.map +1 -0
  543. package/lib/models/depreciation/depreciation.d.ts.map +1 -0
  544. package/lib/models/depreciation/index.d.ts.map +1 -0
  545. package/lib/models/dictionary/dictionary.d.ts.map +1 -0
  546. package/lib/models/dictionary/index.d.ts.map +1 -0
  547. package/lib/models/document/document-api-url-prefix.enum.d.ts.map +1 -0
  548. package/lib/models/document/document-file-types.const.d.ts.map +1 -0
  549. package/lib/models/document/document-folder.d.ts.map +1 -0
  550. package/lib/models/document/document.d.ts.map +1 -0
  551. package/lib/models/document/index.d.ts.map +1 -0
  552. package/lib/models/employee/employee-details.d.ts.map +1 -0
  553. package/lib/models/employee/employee-invite.d.ts.map +1 -0
  554. package/lib/models/endpoint/endpoint.d.ts.map +1 -0
  555. package/lib/models/endpoint/endpoints.const.d.ts.map +1 -0
  556. package/lib/models/event/app-event-type.enum.d.ts +8 -9
  557. package/lib/models/event/app-event-type.enum.d.ts.map +1 -0
  558. package/lib/models/event/app-event.d.ts.map +1 -0
  559. package/lib/models/event/index.d.ts.map +1 -0
  560. package/lib/models/export/export-cell-type.enum.d.ts.map +1 -0
  561. package/lib/models/export/export-cell.d.ts.map +1 -0
  562. package/lib/models/export/export-data-table.d.ts.map +1 -0
  563. package/lib/models/export/export-format.enum.d.ts.map +1 -0
  564. package/lib/models/export/export-row-data-type.enum.d.ts.map +1 -0
  565. package/lib/models/export/export-row.d.ts.map +1 -0
  566. package/lib/models/file/file.d.ts.map +1 -0
  567. package/lib/models/file/icons-file.enum.d.ts.map +1 -0
  568. package/lib/models/file/index.d.ts.map +1 -0
  569. package/lib/models/financial-year/financial-year.d.ts.map +1 -0
  570. package/lib/models/financial-year/index.d.ts.map +1 -0
  571. package/lib/models/financial-year/month-name-short.enum.d.ts.map +1 -0
  572. package/lib/models/financial-year/month-number.enum.d.ts.map +1 -0
  573. package/lib/models/financial-year/months.const.d.ts.map +1 -0
  574. package/lib/models/firm/firm.d.ts.map +1 -0
  575. package/lib/models/holding/holding-reinvest.d.ts.map +1 -0
  576. package/lib/models/holding/holding-sale.d.ts.map +1 -0
  577. package/lib/models/holding/holding-type-exchange.d.ts.map +1 -0
  578. package/lib/models/holding/holding-type.d.ts.map +1 -0
  579. package/lib/models/holding/holding.d.ts.map +1 -0
  580. package/lib/models/holding/index.d.ts.map +1 -0
  581. package/lib/models/income-position/income-position.d.ts.map +1 -0
  582. package/lib/models/income-source/income-source-chart-data.d.ts.map +1 -0
  583. package/lib/models/income-source/income-source-forecast.d.ts.map +1 -0
  584. package/lib/models/income-source/income-source-type.d.ts.map +1 -0
  585. package/lib/models/income-source/income-source.d.ts.map +1 -0
  586. package/lib/models/income-source/index.d.ts.map +1 -0
  587. package/lib/models/income-source/salary-forecast.d.ts.map +1 -0
  588. package/lib/models/income-source/sole-forecast.d.ts.map +1 -0
  589. package/lib/models/index.d.ts.map +1 -0
  590. package/lib/models/loan/index.d.ts.map +1 -0
  591. package/lib/models/loan/loan-max-number-of-payments.enum.d.ts.map +1 -0
  592. package/lib/models/loan/loan-payment.d.ts.map +1 -0
  593. package/lib/models/loan/loan-payout.d.ts.map +1 -0
  594. package/lib/models/loan/loan.d.ts.map +1 -0
  595. package/lib/models/notification/index.d.ts.map +1 -0
  596. package/lib/models/notification/notification.d.ts.map +1 -0
  597. package/lib/models/pdf/pdf-orientation.enum.d.ts.map +1 -0
  598. package/lib/models/pdf/pdf-settings.d.ts.map +1 -0
  599. package/lib/models/phone/phone.d.ts.map +1 -0
  600. package/lib/models/property/borrowing-report.d.ts.map +1 -0
  601. package/lib/models/property/calculation-form-item.d.ts.map +1 -0
  602. package/lib/models/property/calculation-form-type.enum.d.ts.map +1 -0
  603. package/lib/models/property/capital-costs-itmes.const.d.ts.map +1 -0
  604. package/lib/models/property/corelogic-suggestion.d.ts.map +1 -0
  605. package/lib/models/property/index.d.ts.map +1 -0
  606. package/lib/models/property/property-category-movement.d.ts.map +1 -0
  607. package/lib/models/property/property-category.d.ts.map +1 -0
  608. package/lib/models/property/property-document.d.ts.map +1 -0
  609. package/lib/models/property/property-equity-chart-data.d.ts.map +1 -0
  610. package/lib/models/property/property-equity-chart-item.d.ts.map +1 -0
  611. package/lib/models/property/property-equity-chart-type.enum.d.ts.map +1 -0
  612. package/lib/models/property/property-forecast.d.ts.map +1 -0
  613. package/lib/models/property/property-sale/index.d.ts.map +1 -0
  614. package/lib/models/property/property-sale/property-sale-cost-base.d.ts.map +1 -0
  615. package/lib/models/property/property-sale/property-sale-tax-exemption-meta-field.d.ts.map +1 -0
  616. package/lib/models/property/property-sale/property-sale.d.ts.map +1 -0
  617. package/lib/models/property/property-sale/tax-exemption-meta-field.d.ts.map +1 -0
  618. package/lib/models/property/property-sale/tax-exemption.d.ts.map +1 -0
  619. package/lib/models/property/property-share.d.ts.map +1 -0
  620. package/lib/models/property/property-subscription.d.ts.map +1 -0
  621. package/lib/models/property/property-valuation.d.ts.map +1 -0
  622. package/lib/models/property/property.d.ts.map +1 -0
  623. package/lib/models/property/share-filter-options.enum.d.ts.map +1 -0
  624. package/lib/models/registration-invite/registration-invite.d.ts.map +1 -0
  625. package/lib/models/report/depreciation/depreciation-lvp-asset-type.enum.d.ts.map +1 -0
  626. package/lib/models/report/depreciation/depreciation-lvp-report-item.d.ts.map +1 -0
  627. package/lib/models/report/depreciation/depreciation-report-item.d.ts.map +1 -0
  628. package/lib/models/report/depreciation/index.d.ts.map +1 -0
  629. package/lib/models/report/index.d.ts.map +1 -0
  630. package/lib/models/report/my-tax/ato-links.d.ts.map +1 -0
  631. package/lib/models/report/my-tax/index.d.ts.map +1 -0
  632. package/lib/models/report/my-tax/my-tax-business-income-or-losses/business-income-or-losses-categories.const.d.ts.map +1 -0
  633. package/lib/models/report/my-tax/my-tax-business-income-or-losses/business-type.enum.d.ts.map +1 -0
  634. package/lib/models/report/my-tax/my-tax-business-income-or-losses/loss-type.enum.d.ts.map +1 -0
  635. package/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-details/my-tax-business-details.d.ts.map +1 -0
  636. package/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income/my-tax-business-income.d.ts.map +1 -0
  637. package/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.d.ts.map +1 -0
  638. package/lib/models/report/my-tax/my-tax-cgt/cgt-exemption-and-rollover-code.enum.d.ts.map +1 -0
  639. package/lib/models/report/my-tax/my-tax-cgt/my-tax-cgt.d.ts.map +1 -0
  640. package/lib/models/report/my-tax/my-tax-deductions/deduction-clothing-type.enum.d.ts.map +1 -0
  641. package/lib/models/report/my-tax/my-tax-deductions/deduction-fields.const.d.ts.map +1 -0
  642. package/lib/models/report/my-tax/my-tax-deductions/deduction-self-education-type.enum.d.ts.map +1 -0
  643. package/lib/models/report/my-tax/my-tax-deductions/my-tax-deductions.d.ts.map +1 -0
  644. package/lib/models/report/my-tax/my-tax-dividends/my-tax-dividends.d.ts.map +1 -0
  645. package/lib/models/report/my-tax/my-tax-estimate/my-tax-estimate.d.ts.map +1 -0
  646. package/lib/models/report/my-tax/my-tax-income-statements/my-tax-income-statements.d.ts.map +1 -0
  647. package/lib/models/report/my-tax/my-tax-income-tests/my-tax-income-tests.d.ts.map +1 -0
  648. package/lib/models/report/my-tax/my-tax-interest/my-tax-interest.d.ts.map +1 -0
  649. package/lib/models/report/my-tax/my-tax-losses/my-tax-losses.d.ts.map +1 -0
  650. package/lib/models/report/my-tax/my-tax-offsets/my-tax-offsets.d.ts.map +1 -0
  651. package/lib/models/report/my-tax/my-tax-other-income/my-tax-other-income.d.ts.map +1 -0
  652. package/lib/models/report/my-tax/my-tax-partnerships-and-trusts/my-tax-partnerships-and-trusts.d.ts.map +1 -0
  653. package/lib/models/report/my-tax/my-tax-rent/my-tax-rent.d.ts.map +1 -0
  654. package/lib/models/report/property/index.d.ts.map +1 -0
  655. package/lib/models/report/property/property-report-item-depreciation.d.ts.map +1 -0
  656. package/lib/models/report/property/property-report-item-transaction.d.ts.map +1 -0
  657. package/lib/models/report/property/property-report-item.d.ts.map +1 -0
  658. package/lib/models/report/sole/index.d.ts.map +1 -0
  659. package/lib/models/report/sole/sole-business/sole-business-loss-report.d.ts.map +1 -0
  660. package/lib/models/report/vehicle-expense/vehicle-expense.d.ts.map +1 -0
  661. package/lib/models/service-subscription/index.d.ts.map +1 -0
  662. package/lib/models/service-subscription/module-url-list.const.d.ts.map +1 -0
  663. package/lib/models/service-subscription/payment-method-brand.enum.d.ts.map +1 -0
  664. package/lib/models/service-subscription/service-payment-method.d.ts.map +1 -0
  665. package/lib/models/service-subscription/service-payment.d.ts.map +1 -0
  666. package/lib/models/service-subscription/service-price.d.ts.map +1 -0
  667. package/lib/models/service-subscription/service-product.d.ts.map +1 -0
  668. package/lib/models/service-subscription/service-promo-code-duration.enum.d.ts.map +1 -0
  669. package/lib/models/service-subscription/service-promo-code.d.ts.map +1 -0
  670. package/lib/models/service-subscription/service-subscription-item.d.ts.map +1 -0
  671. package/lib/models/service-subscription/service-subscription.d.ts.map +1 -0
  672. package/lib/models/sole/bas-report.d.ts.map +1 -0
  673. package/lib/models/sole/index.d.ts.map +1 -0
  674. package/lib/models/sole/sole-business-activity.d.ts.map +1 -0
  675. package/lib/models/sole/sole-business-allocation.d.ts.map +1 -0
  676. package/lib/models/sole/sole-business-loss-offset-rule.d.ts.map +1 -0
  677. package/lib/models/sole/sole-business-loss.d.ts.map +1 -0
  678. package/lib/models/sole/sole-business.d.ts.map +1 -0
  679. package/lib/models/sole/sole-contact.d.ts.map +1 -0
  680. package/lib/models/sole/sole-depreciation-method.d.ts.map +1 -0
  681. package/lib/models/sole/sole-details.d.ts.map +1 -0
  682. package/lib/models/sole/sole-invoice-item.d.ts.map +1 -0
  683. package/lib/models/sole/sole-invoice-template.d.ts.map +1 -0
  684. package/lib/models/sole/sole-invoice.d.ts.map +1 -0
  685. package/lib/models/tax-return/index.d.ts.map +1 -0
  686. package/lib/models/tax-return/tax-return-category.d.ts.map +1 -0
  687. package/lib/models/tax-return/tax-return-item.d.ts.map +1 -0
  688. package/lib/models/tax-return/tax-return.d.ts.map +1 -0
  689. package/lib/models/tax-review/tax-review.d.ts.map +1 -0
  690. package/lib/models/tax-summary/report-item-details.d.ts.map +1 -0
  691. package/lib/models/tax-summary/report-item.d.ts.map +1 -0
  692. package/lib/models/tax-summary/tax-summary-section.d.ts.map +1 -0
  693. package/lib/models/tax-summary/tax-summary-type.enum.d.ts.map +1 -0
  694. package/lib/models/tax-summary/tax-summary.d.ts.map +1 -0
  695. package/lib/models/toast/toast-type.enum.d.ts.map +1 -0
  696. package/lib/models/toast/toast.d.ts.map +1 -0
  697. package/lib/models/transaction/allocation-rule-condition.d.ts.map +1 -0
  698. package/lib/models/transaction/allocation-rule-transaction-meta-field.d.ts.map +1 -0
  699. package/lib/models/transaction/allocation-rule-transaction.d.ts.map +1 -0
  700. package/lib/models/transaction/allocation-rule.d.ts.map +1 -0
  701. package/lib/models/transaction/income-amount-type.enum.d.ts.map +1 -0
  702. package/lib/models/transaction/index.d.ts.map +1 -0
  703. package/lib/models/transaction/transaction-allocation.d.ts.map +1 -0
  704. package/lib/models/transaction/transaction-category.enum.d.ts.map +1 -0
  705. package/lib/models/transaction/transaction-meta-field.d.ts.map +1 -0
  706. package/lib/models/transaction/transaction-receipt.d.ts.map +1 -0
  707. package/lib/models/transaction/transaction.d.ts.map +1 -0
  708. package/lib/models/user/index.d.ts.map +1 -0
  709. package/lib/models/user/my-account-history-initiated-by.enum.d.ts.map +1 -0
  710. package/lib/models/user/my-account-history-status.enum.d.ts.map +1 -0
  711. package/lib/models/user/my-account-history-type.enum.d.ts.map +1 -0
  712. package/lib/models/user/my-account-history.d.ts.map +1 -0
  713. package/lib/models/user/occupation.d.ts.map +1 -0
  714. package/lib/models/user/user-roles.const.d.ts.map +1 -0
  715. package/lib/models/user/user-to-register.d.ts.map +1 -0
  716. package/lib/models/user/user-work-position.const.d.ts.map +1 -0
  717. package/lib/models/user/user.d.ts.map +1 -0
  718. package/lib/models/user-event/user-event-setting-field.enum.d.ts.map +1 -0
  719. package/lib/models/user-event/user-event-setting.d.ts.map +1 -0
  720. package/lib/models/user-event/user-event-type-category.d.ts.map +1 -0
  721. package/lib/models/user-event/user-event-type.d.ts.map +1 -0
  722. package/lib/models/vehicle/index.d.ts.map +1 -0
  723. package/lib/models/vehicle/logbook-period.d.ts.map +1 -0
  724. package/lib/models/vehicle/vehicle-claim-details.d.ts.map +1 -0
  725. package/lib/models/vehicle/vehicle-claim.d.ts.map +1 -0
  726. package/lib/models/vehicle/vehicle-logbook.d.ts.map +1 -0
  727. package/lib/models/vehicle/vehicle.d.ts.map +1 -0
  728. package/lib/services/account-setup/account-setup.service.d.ts.map +1 -0
  729. package/lib/services/account-setup/index.d.ts.map +1 -0
  730. package/lib/services/affiliate/index.d.ts.map +1 -0
  731. package/lib/services/affiliate/rewardful/index.d.ts.map +1 -0
  732. package/lib/services/affiliate/rewardful/rewardful.service.d.ts.map +1 -0
  733. package/lib/services/asset/assets.service.d.ts.map +1 -0
  734. package/lib/services/asset/index.d.ts.map +1 -0
  735. package/lib/services/auth/auth.service.d.ts +3 -14
  736. package/lib/services/auth/auth.service.d.ts.map +1 -0
  737. package/lib/services/auth/index.d.ts.map +1 -0
  738. package/lib/services/auth/jwt.service.d.ts.map +1 -0
  739. package/lib/services/bank/bank-account-calculation.service.d.ts.map +1 -0
  740. package/lib/services/bank/bank-transaction-calculation.service.d.ts.map +1 -0
  741. package/lib/services/bank/index.d.ts.map +1 -0
  742. package/lib/services/data.service.d.ts +4 -0
  743. package/lib/services/data.service.d.ts.map +1 -0
  744. package/lib/services/event/event-dispatcher.service.d.ts.map +1 -0
  745. package/lib/services/event/index.d.ts.map +1 -0
  746. package/lib/services/event/sse.service.d.ts.map +1 -0
  747. package/lib/services/export/export-formatter.service.d.ts.map +1 -0
  748. package/lib/services/export/index.d.ts.map +1 -0
  749. package/lib/services/header-title/header-title.service.d.ts.map +1 -0
  750. package/lib/services/header-title/index.d.ts.map +1 -0
  751. package/lib/services/http/address/address.service.d.ts.map +1 -0
  752. package/lib/services/http/address/index.d.ts.map +1 -0
  753. package/lib/services/http/bank/bank-account/bank-account.service.d.ts.map +1 -0
  754. package/lib/services/http/bank/bank-account/index.d.ts.map +1 -0
  755. package/lib/services/http/bank/bank-connection/bank-connection-messages.enum.d.ts.map +1 -0
  756. package/lib/services/http/bank/bank-connection/bank-connection.service.d.ts.map +1 -0
  757. package/lib/services/http/bank/bank-connection/index.d.ts.map +1 -0
  758. package/lib/services/http/bank/bank-transaction/bank-transaction.service.d.ts.map +1 -0
  759. package/lib/services/http/bank/bank-transaction/index.d.ts.map +1 -0
  760. package/lib/services/http/bank/bank.service.d.ts.map +1 -0
  761. package/lib/services/http/bank/basiq/basiq-messages.enum.d.ts.map +1 -0
  762. package/lib/services/http/bank/basiq/basiq-token.service.d.ts.map +1 -0
  763. package/lib/services/http/bank/basiq/basiq.service.d.ts.map +1 -0
  764. package/lib/services/http/bank/basiq/index.d.ts.map +1 -0
  765. package/lib/services/http/bank/index.d.ts.map +1 -0
  766. package/lib/services/http/budget/budget-messages.enum.d.ts.map +1 -0
  767. package/lib/services/http/budget/budget.service.d.ts.map +1 -0
  768. package/lib/services/http/budget/index.d.ts.map +1 -0
  769. package/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.d.ts.map +1 -0
  770. package/lib/services/http/chart-accounts/chart-accounts-depreciations/index.d.ts.map +1 -0
  771. package/lib/services/http/chart-accounts/chart-accounts.service.d.ts.map +1 -0
  772. package/lib/services/http/chart-accounts/index.d.ts.map +1 -0
  773. package/lib/services/http/chat/chat.service.d.ts.map +1 -0
  774. package/lib/services/http/chat/index.d.ts.map +1 -0
  775. package/lib/services/http/chat/message-document.service.d.ts.map +1 -0
  776. package/lib/services/http/chat/message.service.d.ts.map +1 -0
  777. package/lib/services/http/client/capital-gain/annual-client-details.service.d.ts.map +1 -0
  778. package/lib/services/http/client/index.d.ts.map +1 -0
  779. package/lib/services/http/client/occupation/occupation.service.d.ts.map +1 -0
  780. package/lib/services/http/depreciation/depreciation-capital-project/depreciation-capital-project.service.d.ts.map +1 -0
  781. package/lib/services/http/depreciation/depreciation-capital-project/index.d.ts.map +1 -0
  782. package/lib/services/http/depreciation/depreciation-receipt/depreciation-receipt.service.d.ts.map +1 -0
  783. package/lib/services/http/depreciation/depreciation-receipt/index.d.ts.map +1 -0
  784. package/lib/services/http/depreciation/depreciation.service.d.ts.map +1 -0
  785. package/lib/services/http/depreciation/index.d.ts.map +1 -0
  786. package/lib/services/http/document/document-folder/document-folder.service.d.ts.map +1 -0
  787. package/lib/services/http/document/document.service.d.ts.map +1 -0
  788. package/lib/services/http/document/index.d.ts.map +1 -0
  789. package/lib/services/http/facebook/facebook-auth-options.interface.d.ts.map +1 -0
  790. package/lib/services/http/facebook/facebook-auth-response.interface.d.ts.map +1 -0
  791. package/lib/services/http/facebook/facebook-status-response.interface.d.ts.map +1 -0
  792. package/lib/services/http/facebook/facebook.service.d.ts.map +1 -0
  793. package/lib/services/http/facebook/index.d.ts.map +1 -0
  794. package/lib/services/http/file/file.service.d.ts.map +1 -0
  795. package/lib/services/http/file/index.d.ts.map +1 -0
  796. package/lib/services/http/firm/client-income/client-income-types.service.d.ts.map +1 -0
  797. package/lib/services/http/firm/client-income/index.d.ts.map +1 -0
  798. package/lib/services/http/firm/client-invite/client-invite-messages.enum.d.ts.map +1 -0
  799. package/lib/services/http/firm/client-invite/client-invite.service.d.ts.map +1 -0
  800. package/lib/services/http/firm/client-invite/index.d.ts.map +1 -0
  801. package/lib/services/http/firm/client-movement/client-movement.service.d.ts.map +1 -0
  802. package/lib/services/http/firm/client-movement/index.d.ts.map +1 -0
  803. package/lib/services/http/firm/employee/employee-messages.enum.d.ts.map +1 -0
  804. package/lib/services/http/firm/employee/employee.service.d.ts.map +1 -0
  805. package/lib/services/http/firm/employee/index.d.ts.map +1 -0
  806. package/lib/services/http/firm/employee-invite/employee-invite.service.d.ts.map +1 -0
  807. package/lib/services/http/firm/employee-invite/index.d.ts.map +1 -0
  808. package/lib/services/http/firm/firm.service.d.ts.map +1 -0
  809. package/lib/services/http/firm/index.d.ts.map +1 -0
  810. package/lib/services/http/firm/portfolio-report/client-portfolio-report.service.d.ts.map +1 -0
  811. package/lib/services/http/firm/portfolio-report/index.d.ts.map +1 -0
  812. package/lib/services/http/google/google.service.d.ts.map +1 -0
  813. package/lib/services/http/google/index.d.ts.map +1 -0
  814. package/lib/services/http/holding/holding-messages.enum.d.ts.map +1 -0
  815. package/lib/services/http/holding/holding-sale-messages.enum.d.ts.map +1 -0
  816. package/lib/services/http/holding/holding-sale.service.d.ts.map +1 -0
  817. package/lib/services/http/holding/holding-type-messages.enum.d.ts.map +1 -0
  818. package/lib/services/http/holding/holding-type.service.d.ts.map +1 -0
  819. package/lib/services/http/holding/holding.service.d.ts +2 -0
  820. package/lib/services/http/holding/holding.service.d.ts.map +1 -0
  821. package/lib/services/http/holding/index.d.ts.map +1 -0
  822. package/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.d.ts.map +1 -0
  823. package/lib/services/http/income-source/income-source-forecast/index.d.ts.map +1 -0
  824. package/lib/services/http/income-source/income-source.service.d.ts.map +1 -0
  825. package/lib/services/http/income-source/index.d.ts.map +1 -0
  826. package/lib/services/http/income-source/salary-forecast/index.d.ts.map +1 -0
  827. package/lib/services/http/income-source/salary-forecast/salary-forecast.service.d.ts.map +1 -0
  828. package/lib/services/http/income-source/sole-forecast/index.d.ts.map +1 -0
  829. package/lib/services/http/income-source/sole-forecast/sole-forecast.service.d.ts.map +1 -0
  830. package/lib/services/http/index.d.ts.map +1 -0
  831. package/lib/services/http/loan/borrowing-expense/borrowing-expense.service.d.ts.map +1 -0
  832. package/lib/services/http/loan/borrowing-expense/index.d.ts.map +1 -0
  833. package/lib/services/http/loan/index.d.ts.map +1 -0
  834. package/lib/services/http/loan/loan.service.d.ts.map +1 -0
  835. package/lib/services/http/property/borrowing-report/borrowing-report-messages.enum.d.ts.map +1 -0
  836. package/lib/services/http/property/borrowing-report/borrowing-report.service.d.ts.map +1 -0
  837. package/lib/services/http/property/borrowing-report/index.d.ts.map +1 -0
  838. package/lib/services/http/property/index.d.ts.map +1 -0
  839. package/lib/services/http/property/property-category/index.d.ts.map +1 -0
  840. package/lib/services/http/property/property-category/property-category.service.d.ts.map +1 -0
  841. package/lib/services/http/property/property-category-movement/index.d.ts.map +1 -0
  842. package/lib/services/http/property/property-category-movement/property-category-movement.service.d.ts.map +1 -0
  843. package/lib/services/http/property/property-document/index.d.ts.map +1 -0
  844. package/lib/services/http/property/property-document/property-document.service.d.ts.map +1 -0
  845. package/lib/services/http/property/property-sale/index.d.ts.map +1 -0
  846. package/lib/services/http/property/property-sale/property-sale.service.d.ts.map +1 -0
  847. package/lib/services/http/property/property-share/index.d.ts.map +1 -0
  848. package/lib/services/http/property/property-share/property-share.service.d.ts.map +1 -0
  849. package/lib/services/http/property/property.service.d.ts.map +1 -0
  850. package/lib/services/http/receipt/index.d.ts.map +1 -0
  851. package/lib/services/http/receipt/receipt.service.d.ts.map +1 -0
  852. package/lib/services/http/rest/http-method.type.d.ts.map +1 -0
  853. package/lib/services/http/rest/index.d.ts.map +1 -0
  854. package/lib/services/http/rest/rest-method.type.d.ts.map +1 -0
  855. package/lib/services/http/rest/rest-old.service.d.ts +9 -5
  856. package/lib/services/http/rest/rest-old.service.d.ts.map +1 -0
  857. package/lib/services/http/rest/rest.service.d.ts +13 -13
  858. package/lib/services/http/rest/rest.service.d.ts.map +1 -0
  859. package/lib/services/http/service-notification/index.d.ts.map +1 -0
  860. package/lib/services/http/service-notification/service-notification.service.d.ts.map +1 -0
  861. package/lib/services/http/sole/bas-report/bas-report.service.d.ts.map +1 -0
  862. package/lib/services/http/sole/index.d.ts.map +1 -0
  863. package/lib/services/http/sole/sole-business/messages.enum.d.ts.map +1 -0
  864. package/lib/services/http/sole/sole-business/sole-business.service.d.ts.map +1 -0
  865. package/lib/services/http/sole/sole-business-activity/sole-business-activity.service.d.ts.map +1 -0
  866. package/lib/services/http/sole/sole-business-loss/sole-business-loss-rules/sole-business-loss-offset-rule.service.d.ts.map +1 -0
  867. package/lib/services/http/sole/sole-business-loss/sole-business-loss.service.d.ts.map +1 -0
  868. package/lib/services/http/sole/sole-contact/sole-contact.service.d.ts.map +1 -0
  869. package/lib/services/http/sole/sole-depreciation-method/sole-depreciation-method.service.d.ts.map +1 -0
  870. package/lib/services/http/sole/sole-details/sole-details.service.d.ts +1 -1
  871. package/lib/services/http/sole/sole-details/sole-details.service.d.ts.map +1 -0
  872. package/lib/services/http/sole/sole-invoice/sole-invoice.service.d.ts +2 -0
  873. package/lib/services/http/sole/sole-invoice/sole-invoice.service.d.ts.map +1 -0
  874. package/lib/services/http/sole/sole-invoice-template/sole-invoice-template.service.d.ts.map +1 -0
  875. package/lib/services/http/subscription/index.d.ts.map +1 -0
  876. package/lib/services/http/subscription/service-payment/service-payment.service.d.ts.map +1 -0
  877. package/lib/services/http/subscription/service-payment-method/service-payment-method.service.d.ts.map +1 -0
  878. package/lib/services/http/subscription/service-price/service-price.service.d.ts.map +1 -0
  879. package/lib/services/http/subscription/service-product/service-product.service.d.ts.map +1 -0
  880. package/lib/services/http/subscription/service-subscription/subscription.service.d.ts.map +1 -0
  881. package/lib/services/http/tax-review/index.d.ts.map +1 -0
  882. package/lib/services/http/tax-review/tax-review-history/tax-review-history.service.d.ts.map +1 -0
  883. package/lib/services/http/tax-review/tax-review.service.d.ts.map +1 -0
  884. package/lib/services/http/tax-summary/index.d.ts.map +1 -0
  885. package/lib/services/http/tax-summary/tax-summary.service.d.ts.map +1 -0
  886. package/lib/services/http/transaction/index.d.ts.map +1 -0
  887. package/lib/services/http/transaction/transaction-allocation/allocation-rule/allocation-rule.service.d.ts.map +1 -0
  888. package/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.d.ts.map +1 -0
  889. package/lib/services/http/transaction/transaction-receipt/transaction-receipt.service.d.ts.map +1 -0
  890. package/lib/services/http/transaction/transaction.service.d.ts.map +1 -0
  891. package/lib/services/http/tutorial-video/index.d.ts.map +1 -0
  892. package/lib/services/http/tutorial-video/tutorial-video-response.interface.d.ts.map +1 -0
  893. package/lib/services/http/tutorial-video/tutorial-video.service.d.ts.map +1 -0
  894. package/lib/services/http/tutorial-video/video-source.interface.d.ts.map +1 -0
  895. package/lib/services/http/user/financial-year/financial-year.service.d.ts +11 -0
  896. package/lib/services/http/user/financial-year/financial-year.service.d.ts.map +1 -0
  897. package/lib/services/http/user/index.d.ts +1 -0
  898. package/lib/services/http/user/index.d.ts.map +1 -0
  899. package/lib/services/http/user/user-event-setting/user-event-setting.service.d.ts.map +1 -0
  900. package/lib/services/http/user/user-event-type/user-event-type.service.d.ts.map +1 -0
  901. package/lib/services/http/user/user.service.d.ts +17 -68
  902. package/lib/services/http/user/user.service.d.ts.map +1 -0
  903. package/lib/services/http/user/users-invite/users-invite.service.d.ts.map +1 -0
  904. package/lib/services/http/vehicle/index.d.ts.map +1 -0
  905. package/lib/services/http/vehicle/vehicle-claim-details.service.d.ts.map +1 -0
  906. package/lib/services/http/vehicle/vehicle-claim.service.d.ts +3 -1
  907. package/lib/services/http/vehicle/vehicle-claim.service.d.ts.map +1 -0
  908. package/lib/services/http/vehicle/vehicle-logbook.service.d.ts.map +1 -0
  909. package/lib/services/http/vehicle/vehicle.service.d.ts.map +1 -0
  910. package/lib/services/index.d.ts.map +1 -0
  911. package/lib/services/intercom/index.d.ts.map +1 -0
  912. package/lib/services/intercom/intercom.service.d.ts.map +1 -0
  913. package/lib/services/json/chart-accounts/chart-accounts-value.service.d.ts.map +1 -0
  914. package/lib/services/json/holding/holding-type-exchange.service.d.ts.map +1 -0
  915. package/lib/services/json/income-source/income-source-type.service.d.ts.map +1 -0
  916. package/lib/services/json/index.d.ts.map +1 -0
  917. package/lib/services/json/tax-exemption/tax-exemption.service.d.ts.map +1 -0
  918. package/lib/services/json/tax-return/tax-return-item.service.d.ts.map +1 -0
  919. package/lib/services/pdf/index.d.ts.map +1 -0
  920. package/lib/services/pdf/js-pdf.d.ts.map +1 -0
  921. package/lib/services/pdf/pdf-from-dom-element/file-settings.d.ts.map +1 -0
  922. package/lib/services/pdf/pdf-from-dom-element/pdf-from-dom-element.service.d.ts.map +1 -0
  923. package/lib/services/pdf/pdf-from-table/file-settings.d.ts.map +1 -0
  924. package/lib/services/pdf/pdf-from-table/pdf-from-data-table/pdf-from-data-table.service.d.ts.map +1 -0
  925. package/lib/services/pdf/pdf-from-table/pdf-from-html-table/pdf-from-html-table.service.d.ts.map +1 -0
  926. package/lib/services/pdf/pdf-from-table/pdf-from-table.service.d.ts.map +1 -0
  927. package/lib/services/preloader/index.d.ts.map +1 -0
  928. package/lib/services/preloader/preloader.service.d.ts.map +1 -0
  929. package/lib/services/property/corelogic/corelogic.service.d.ts.map +1 -0
  930. package/lib/services/property/corelogic/index.d.ts.map +1 -0
  931. package/lib/services/property/equity-position-chart/equity-position-chart.service.d.ts.map +1 -0
  932. package/lib/services/property/equity-position-chart/index.d.ts.map +1 -0
  933. package/lib/services/property/index.d.ts.map +1 -0
  934. package/lib/services/property/property-calculation/index.d.ts.map +1 -0
  935. package/lib/services/property/property-calculation/property-calculation.service.d.ts.map +1 -0
  936. package/lib/services/report/index.d.ts.map +1 -0
  937. package/lib/services/report/property/property-transaction-report.service.d.ts.map +1 -0
  938. package/lib/services/toast/index.d.ts.map +1 -0
  939. package/lib/services/toast/toast.service.d.ts.map +1 -0
  940. package/lib/services/transaction/index.d.ts.map +1 -0
  941. package/lib/services/transaction/transaction-calculation.service.d.ts.map +1 -0
  942. package/lib/services/user/index.d.ts.map +1 -0
  943. package/lib/services/user/user-switcher.service.d.ts.map +1 -0
  944. package/lib/services/vehicle/index.d.ts.map +1 -0
  945. package/lib/services/vehicle/logbook-best-period.service.d.ts.map +1 -0
  946. package/lib/services/xlsx/index.d.ts.map +1 -0
  947. package/lib/services/xlsx/xlsx.service.d.ts.map +1 -0
  948. package/lib/tt-core.module.d.ts.map +1 -0
  949. package/lib/validators/address-corelogic.validator.d.ts.map +1 -0
  950. package/lib/validators/at-least-one-enabled.validator.d.ts.map +1 -0
  951. package/lib/validators/at-least-one.validator.d.ts.map +1 -0
  952. package/lib/validators/autocomplete.validator.d.ts.map +1 -0
  953. package/lib/validators/conditional.validator.d.ts.map +1 -0
  954. package/lib/validators/current-fin-year.validator.d.ts.map +1 -0
  955. package/lib/validators/date-range.validator.d.ts.map +1 -0
  956. package/lib/validators/fields-sum.validator.d.ts.map +1 -0
  957. package/lib/validators/file.validator.d.ts.map +1 -0
  958. package/lib/validators/greater-than.validator.d.ts.map +1 -0
  959. package/lib/validators/index.d.ts.map +1 -0
  960. package/lib/validators/min-date/messages.enum.d.ts.map +1 -0
  961. package/lib/validators/min-date/min-date.validator.d.ts.map +1 -0
  962. package/lib/validators/password-match.validator.d.ts.map +1 -0
  963. package/lib/validators/password.validator.d.ts.map +1 -0
  964. package/lib/validators/phone-number.validator.d.ts.map +1 -0
  965. package/lib/validators/required-length.validator.d.ts.map +1 -0
  966. package/lib/validators/transactions-meta-fields.validator.d.ts.map +1 -0
  967. package/package.json +1 -1
  968. package/public-api.d.ts.map +1 -0
  969. package/taxtank-core.d.ts.map +1 -0
@@ -45,16 +45,7 @@ export class TransactionService extends RestService {
45
45
  * get list of all user's TaxTank transactions
46
46
  */
47
47
  get() {
48
- if (!this.cache) {
49
- // set cache as default empty array to avoid multiple backend requests
50
- this.cache = [];
51
- this.fetch()
52
- .subscribe((transactions) => {
53
- this.cache = transactions;
54
- this.updateCache();
55
- });
56
- }
57
- return this.cacheSubject.asObservable().pipe(
48
+ return super.get().pipe(
58
49
  // assign child transactions (fees) to parent transactions
59
50
  map((transactions) => {
60
51
  transactions.forEach((transaction) => {
@@ -255,18 +246,14 @@ export class TransactionService extends RestService {
255
246
  listenDepreciationChange() {
256
247
  // @TODO reset cache only when required (depreciation has transaction)
257
248
  this.eventDispatcherService.on2(...Depreciation.getEventNames('post', 'delete')).subscribe(() => {
258
- this.fetch()
259
- .subscribe((transactions) => {
260
- this.cache = transactions;
261
- this.updateCache();
262
- });
249
+ this.refreshCache();
263
250
  });
264
251
  }
265
252
  /**
266
253
  * Listen to EventDispatcherService event related to Property Share changing
267
254
  */
268
255
  listenPropertyShareUpdate() {
269
- this.eventDispatcherService.on(AppEventTypeEnum.PROPERTY_SHARE_UPDATED).subscribe(() => this.resetCache());
256
+ this.eventDispatcherService.on(AppEventTypeEnum.PROPERTY_SHARE_UPDATED).subscribe(() => this.refreshCache());
270
257
  }
271
258
  listenReceiptAdded() {
272
259
  this.eventDispatcherService.on(AppEventTypeEnum.TRANSACTION_RECEIPT_CREATED).subscribe((transactionReceipt) => {
@@ -290,7 +277,7 @@ export class TransactionService extends RestService {
290
277
  AppEventTypeEnum.VEHICLE_CLAIM_UPDATED,
291
278
  AppEventTypeEnum.VEHICLE_CLAIM_DETAILS_UPDATED
292
279
  ]).subscribe(() => {
293
- this.resetCache();
280
+ this.refreshCache();
294
281
  });
295
282
  }
296
283
  /**
@@ -299,7 +286,7 @@ export class TransactionService extends RestService {
299
286
  */
300
287
  listenPropertyForecastUpdate() {
301
288
  this.eventDispatcherService.on([AppEventTypeEnum.PROPERTY_UPDATED]).subscribe(() => {
302
- this.resetCache();
289
+ this.refreshCache();
303
290
  });
304
291
  }
305
292
  replaceInCache(transactionToReplace) {
@@ -308,7 +295,7 @@ export class TransactionService extends RestService {
308
295
  }
309
296
  listenInvoicesPublish() {
310
297
  this.eventDispatcherService.on(AppEventTypeEnum.SOLE_INVOICE_PUBLISHED).subscribe(() => {
311
- this.resetCache();
298
+ this.refreshCache();
312
299
  });
313
300
  }
314
301
  }
@@ -323,4 +310,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
323
310
  type: Inject,
324
311
  args: ['environment']
325
312
  }] }, { type: i3.ToastService }, { type: i4.TransactionReceiptService }]; } });
326
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxXQUFXLEVBQXNCLE1BQU0saUJBQWlCLENBQUM7QUFDNUcsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBS2xHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7O0FBQ2pEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFdBQXlDO0lBTS9FLFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCLEVBQ3ZDLFlBQTBCLEVBQzVCLHlCQUFvRDtRQUU1RCxLQUFLLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztRQU5yRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLDJCQUFzQixHQUF0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QUFpQztRQUN0RCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU8scUJBQXFCO1FBQzNCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3JGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7OytHQTNXVSxrQkFBa0Isa0ZBU25CLGFBQWE7bUhBVFosa0JBQWtCLGNBRmpCLE1BQU07MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBVUksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIGFzIFRyYW5zYWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyByZXBsYWNlLCBzb3J0IH0gZnJvbSAnLi4vLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bSB9IGZyb20gJy4uLy4uLy4uL2RiL0VudW1zL3RyYW5zYWN0aW9uLW9wZXJhdGlvbi5lbnVtJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzdC9yZXN0LW9sZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcEV2ZW50LCBBcHBFdmVudFR5cGVFbnVtLCBEZXByZWNpYXRpb24sIFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblJlY2VpcHQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFByb3BlcnR5Q2F0ZWdvcnlMaXN0RW51bSB9IGZyb20gJy4uLy4uLy4uL2RiL0VudW1zL3Byb3BlcnR5L3Byb3BlcnR5LWNhdGVnb3J5LWxpc3QuZW51bSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblJlY2VpcHRTZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2FjdGlvbi1yZWNlaXB0L3RyYW5zYWN0aW9uLXJlY2VpcHQuc2VydmljZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2V2ZW50JztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3RvYXN0JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjbGFzc1RvUGxhaW4gfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG4vKipcbiAqIFNlcnZpY2UgZm9yIHRyYW5zYWN0aW9ucyBidXNpbmVzcyBsb2dpY1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblNlcnZpY2UgZXh0ZW5kcyBSZXN0U2VydmljZTxUcmFuc2FjdGlvbkJhc2UsIFRyYW5zYWN0aW9uPiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgLy8gdXJsIHBhcnQgZm9yIFRyYW5zYWN0aW9uIEFQSVxuICB1cmwgPSAndHJhbnNhY3Rpb25zJztcbiAgbW9kZWxDbGFzcyA9IFRyYW5zYWN0aW9uO1xuICB0cmFuc2FjdGlvbkRlbGV0ZWQ6IEV2ZW50RW1pdHRlcjxUcmFuc2FjdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPFRyYW5zYWN0aW9uPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnksXG4gICAgcHJvdGVjdGVkIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNhY3Rpb25SZWNlaXB0U2VydmljZTogVHJhbnNhY3Rpb25SZWNlaXB0U2VydmljZVxuICApIHtcbiAgICBzdXBlcihodHRwLCBldmVudERpc3BhdGNoZXJTZXJ2aWNlLCBlbnZpcm9ubWVudCwgdG9hc3RTZXJ2aWNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gZXZlbnRzIGZyb20gRXZlbnQgRGlzcGF0Y2hlciBzZXJ2aWNlc1xuICAgKi9cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuRGVwcmVjaWF0aW9uQ2hhbmdlKCk7XG4gICAgdGhpcy5saXN0ZW5Qcm9wZXJ0eVNoYXJlVXBkYXRlKCk7XG4gICAgdGhpcy5saXN0ZW5SZWNlaXB0QWRkZWQoKTtcbiAgICB0aGlzLmxpc3RlblJlY2VpcHREZWxldGVkKCk7XG4gICAgdGhpcy5saXN0ZW5WZWhpY2xlQ2xhaW1DaGFuZ2VzKCk7XG4gICAgdGhpcy5saXN0ZW5Qcm9wZXJ0eUZvcmVjYXN0VXBkYXRlKCk7XG4gICAgdGhpcy5saXN0ZW5JbnZvaWNlc1B1Ymxpc2goKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgbGlzdCBvZiBhbGwgdXNlcidzIFRheFRhbmsgdHJhbnNhY3Rpb25zXG4gICAqL1xuICBnZXQoKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgaWYgKCF0aGlzLmNhY2hlKSB7XG4gICAgICAvLyBzZXQgY2FjaGUgYXMgZGVmYXVsdCBlbXB0eSBhcnJheSB0byBhdm9pZCBtdWx0aXBsZSBiYWNrZW5kIHJlcXVlc3RzXG4gICAgICB0aGlzLmNhY2hlID0gW107XG4gICAgICB0aGlzLmZldGNoKClcbiAgICAgICAgLnN1YnNjcmliZSgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKSA9PiB7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRyYW5zYWN0aW9ucztcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNhY2hlU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgLy8gYXNzaWduIGNoaWxkIHRyYW5zYWN0aW9ucyAoZmVlcykgdG8gcGFyZW50IHRyYW5zYWN0aW9uc1xuICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdID0+IHtcbiAgICAgICAgdHJhbnNhY3Rpb25zLmZvckVhY2goKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IHZvaWQgPT4ge1xuICAgICAgICAgIHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucyA9IHRyYW5zYWN0aW9uc1xuICAgICAgICAgICAgLy8gZ2V0IGxpc3Qgb2YgY2hpbGQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICAuZmlsdGVyKCh0OiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdC5wYXJlbnRUcmFuc2FjdGlvbiAmJiB0LnBhcmVudFRyYW5zYWN0aW9uLmlkID09PSB0cmFuc2FjdGlvbi5pZCk7XG4gICAgICAgIH0pO1xuICAgICAgICBzb3J0KHRyYW5zYWN0aW9ucywgJ2RhdGUnLCBmYWxzZSk7XG4gICAgICAgIHJldHVybiB0cmFuc2FjdGlvbnM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHNpbmdsZSBuZXcgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIG1vZGVsIE5ldyBUcmFuc2FjdGlvbiBpbnN0YW5jZSBmb3Igc2F2aW5nXG4gICAqL1xuICBhZGQobW9kZWw6IFRyYW5zYWN0aW9uKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbj4ge1xuICAgIC8vIHdlIGRvbid0IGhhdmUgUE9TVCBBUEkgZW5kcG9pbnQgZm9yIHNpbmdsZSB0cmFuc2FjdGlvblxuICAgIHJldHVybiB0aGlzLmFkZEJhdGNoKFttb2RlbF0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChuZXdUcmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbiA9PiB7XG4gICAgICAgICAgLy8gQFRPRE8gYWxleFxuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChcbiAgICAgICAgICAgIG5ldyBBcHBFdmVudDxUcmFuc2FjdGlvbj4oQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTl9DUkVBVEVELCBuZXdUcmFuc2FjdGlvbnNbMF0pXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiBuZXdUcmFuc2FjdGlvbnNbMF07XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCB0cmFuc2FjdGlvbnMgcmVsYXRlZCB3aXRoIHByb3BlcnR5XG4gICAqL1xuICBnZXRCeVByb3BlcnR5SWQocHJvcGVydHlJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IFRyYW5zYWN0aW9uW10gPT4gdHJhbnNhY3Rpb25zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5wcm9wZXJ0eT8uaWQgPT09IHByb3BlcnR5SWQpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgbGlzdCBvZiB0cmFuc2FjdGlvbnMgd2l0aCB0YW5rIHR5cGUgJ1dvcmsnXG4gICAqL1xuICBnZXRXb3JrVHJhbnNhY3Rpb25zKCk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdID0+IHRyYW5zYWN0aW9ucy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uaXNXb3JrVGFuaygpKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGxpc3Qgb2YgcHJvcGVydHkgaG9sZGluZyBjb3N0cyAodHJhbnNhY3Rpb25zIHJlbGF0ZWQgdG8gdmFjYW50IGxhbmQgcHJvcGVydHkpXG4gICAqL1xuICBnZXRQcm9wZXJ0eUhvbGRpbmdDb3N0cyhwcm9wZXJ0eUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSA9PiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKHRyYW5zYWN0aW9ucylcbiAgICAgICAgICAuZmlsdGVyQnkoJ3Byb3BlcnR5LmlkJywgcHJvcGVydHlJZClcbiAgICAgICAgICAuZmlsdGVyQnkoJ3Byb3BlcnR5LmNhdGVnb3J5LmlkJywgUHJvcGVydHlDYXRlZ29yeUxpc3RFbnVtLlZBQ0FOVF9MQU5EKVxuICAgICAgICAgIC50b0FycmF5KCkpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBsaXN0IG9mIHRheGFibGUgdHJhbnNhY3Rpb25zIHdpdGggdGFuayB0eXBlICdXb3JrJ1xuICAgKi9cbiAgZ2V0VGF4YWJsZVdvcmtUcmFuc2FjdGlvbnMoKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0V29ya1RyYW5zYWN0aW9ucygpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdID0+IHRyYW5zYWN0aW9ucy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gISF0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzLnRheFJldHVybkl0ZW0pKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhZGQgbXVsdGlwbGUgdHJhbnNhY3Rpb25zXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbnMgTGlzdCBvZiBuZXcgVHJhbnNhY3Rpb24gaW5zdGFuY2VzIGZvciBzYXZpbmdcbiAgICovXG4gIGFkZEJhdGNoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHRyYW5zYWN0aW9ucyA9IF8uY2xvbmVEZWVwKHRyYW5zYWN0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgY2xhc3NUb1BsYWluKHRyYW5zYWN0aW9ucykpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogVHJhbnNhY3Rpb25CYXNlW10pID0+IHtcbiAgICAgICAgICBjb25zdCBhZGRlZFRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSA9IHJlc3BvbnNlLm1hcCgoaXRlbTogVHJhbnNhY3Rpb25CYXNlKSA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoaXRlbSkpO1xuXG4gICAgICAgICAgdHJhbnNhY3Rpb25zLmZvckVhY2goKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbiwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgLy8gQFRPRE8gYmFja2VuZDogbmVlZCB0byB1cGxvYWQgZmlsZSBpbiB0aGUgc2FtZSBiYWNrZW5kIGVuZHBvaW50IHdpdGggdHJhbnNhY3Rpb24gYWRkL3VwZGF0ZVxuICAgICAgICAgICAgLy8gY2hlY2sgaWYgcGFzc2VkIHJlY2VpcHQgYW5kIHVwbG9hZCBmaWxlXG4gICAgICAgICAgICBpZiAodHJhbnNhY3Rpb24uZmlsZSkge1xuICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5pZCA9IHJlc3BvbnNlW2luZGV4XS5pZDtcbiAgICAgICAgICAgICAgYWRkZWRUcmFuc2FjdGlvbnNbaW5kZXhdLmZpbGUgPSB0cmFuc2FjdGlvbi5maWxlO1xuICAgICAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uVFJBTlNBQ1RJT05fVVBEQVRFRF9XSVRIX1JFQ0VJUFQsIGFkZGVkVHJhbnNhY3Rpb25zW2luZGV4XSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBAVE9ETyBWaWt0b3I6IGltcGxlbWVudCBBUEkgZm9yIHNhdmluZyBvZiBuZXN0ZWQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICAvLyBhZGQgY2hpbGQgdHJhbnNhY3Rpb25zIGlmIGV4aXN0XG4gICAgICAgICAgICBpZiAodHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMuZm9yRWFjaCgoY2hpbGRUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICBjaGlsZFRyYW5zYWN0aW9uLnBhcmVudFRyYW5zYWN0aW9uID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHtpZDogYWRkZWRUcmFuc2FjdGlvbnNbaW5kZXhdLmlkfSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB0aGlzLmFkZEJhdGNoKHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucykuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGFkZCB0cmFuc2ZlciB0cmFuc2FjdGlvbiB0byBjYWNoZVxuICAgICAgICAgICAgaWYgKHRyYW5zYWN0aW9uLm9wZXJhdGlvbiA9PT0gVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLlRSQU5TRkVSKSB7XG4gICAgICAgICAgICAgIGFkZGVkVHJhbnNhY3Rpb25zLnB1c2goYWRkZWRUcmFuc2FjdGlvbnNbMF0udHJhbnNmZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHRoaXMuY2FjaGUpIHtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUucHVzaCguLi5hZGRlZFRyYW5zYWN0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKFxuICAgICAgICAgICAgbmV3IEFwcEV2ZW50PFRyYW5zYWN0aW9uW10+KEFwcEV2ZW50VHlwZUVudW0uVFJBTlNBQ1RJT05TX0NSRUFURUQsIGFkZGVkVHJhbnNhY3Rpb25zKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICByZXR1cm4gYWRkZWRUcmFuc2FjdGlvbnM7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIHVwZGF0ZSBleGlzdGluZyB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb24gVHJhbnNhY3Rpb24gaW5zdGFuY2UgZm9yIHVwZGF0aW5nXG4gICAqL1xuICB1cGRhdGUodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9LyR7dHJhbnNhY3Rpb24uaWR9YCwgY2xhc3NUb1BsYWluKHRyYW5zYWN0aW9uKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkJhc2UpID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkVHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHJlc3BvbnNlKTtcblxuICAgICAgICAgIC8vIEBUT0RPIG5lZWQgdG8gdXBsb2FkIGZpbGUgaW4gdGhlIHNhbWUgYmFja2VuZCBlbmRwb2ludCB3aXRoIHRyYW5zYWN0aW9uIGFkZC91cGRhdGVcbiAgICAgICAgICAvLyBjaGVjayBpZiBwYXNzZWQgbmV3IHJlY2VpcHQgYW5kIHVwbG9hZCBmaWxlXG4gICAgICAgICAgaWYgKHRyYW5zYWN0aW9uLmZpbGUpIHtcbiAgICAgICAgICAgIHVwZGF0ZWRUcmFuc2FjdGlvbi5maWxlID0gdHJhbnNhY3Rpb24uZmlsZTtcbiAgICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTl9VUERBVEVEX1dJVEhfUkVDRUlQVCwgdXBkYXRlZFRyYW5zYWN0aW9uKSk7XG4gICAgICAgICAgICAvLyByZWNlaXB0IGZpbGUgd2FzIHJlbW92ZWQgZnJvbSBmb3JtIC0gd2Ugc2hvdWxkIGRlbGV0ZSByZWNlaXB0IGZyb20gdHJhbnNhY3Rpb25cbiAgICAgICAgICB9IGVsc2UgaWYgKCF0cmFuc2FjdGlvbi5maWxlICYmIHRyYW5zYWN0aW9uLnJlY2VpcHQpIHtcbiAgICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTl9VUERBVEVEX1dJVEhfREVMRVRFRF9SRUNFSVBULCB1cGRhdGVkVHJhbnNhY3Rpb24pKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBAVE9ETyBWaWt0b3I6IGltcGxlbWVudCBBUEkgZm9yIHNhdmluZyBvZiBuZXN0ZWQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgaWYgKHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIGFkZCBwYXJlbnQgdHJhbnNhY3Rpb24gdG8gY2hpbGQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMuZm9yRWFjaCgoY2hpbGRUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgY2hpbGRUcmFuc2FjdGlvbi5wYXJlbnRUcmFuc2FjdGlvbiA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZSh7aWQ6IHVwZGF0ZWRUcmFuc2FjdGlvbi5pZH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBzZXBhcmF0ZSBjaGlsZCB0cmFuc2FjdGlvbnMgYnkgaWQgZXhpc3RpbmcgdG8gZGVmaW5lIGFkZCBvciB1cGRhdGUgYWN0aW9uLlxuICAgICAgICAgICAgY29uc3QgY2hpbGRUcmFuc2FjdGlvbnNUb1VwZGF0ZTogVHJhbnNhY3Rpb25bXSA9IHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5maWx0ZXIoKHQ6IFRyYW5zYWN0aW9uKSA9PiB0LmlkKTtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkVHJhbnNhY3Rpb25zVG9BZGQ6IFRyYW5zYWN0aW9uW10gPSB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMuZmlsdGVyKCh0OiBUcmFuc2FjdGlvbikgPT4gIXQuaWQpO1xuXG4gICAgICAgICAgICAvLyB1cGRhdGUgY2hpbGQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICBpZiAoY2hpbGRUcmFuc2FjdGlvbnNUb1VwZGF0ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVCYXRjaChjaGlsZFRyYW5zYWN0aW9uc1RvVXBkYXRlKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gYWRkIGNoaWxkIHRyYW5zYWN0aW9uc1xuICAgICAgICAgICAgaWYgKGNoaWxkVHJhbnNhY3Rpb25zVG9BZGQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHRoaXMuYWRkQmF0Y2goY2hpbGRUcmFuc2FjdGlvbnNUb0FkZCkuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5yZXBsYWNlSW5DYWNoZSh1cGRhdGVkVHJhbnNhY3Rpb24pO1xuXG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRUcmFuc2FjdGlvbjtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogdXBkYXRlIG11bHRpcGxlIHRyYW5zYWN0aW9uc1xuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb25zIGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGZvciB1cGRhdGluZ1xuICAgKi9cbiAgdXBkYXRlQmF0Y2godHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH1gLCBjbGFzc1RvUGxhaW4odHJhbnNhY3Rpb25zKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkJhc2VbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRUcmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10gPSByZXNwb25zZS5tYXAoKGl0ZW06IFRyYW5zYWN0aW9uQmFzZSkgPT4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKGl0ZW0pKTtcblxuICAgICAgICAgIHVwZGF0ZWRUcmFuc2FjdGlvbnMuZm9yRWFjaCgodXBkYXRlZFRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCB1cGRhdGVkVHJhbnNhY3Rpb24pO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIHJldHVybiB1cGRhdGVkVHJhbnNhY3Rpb25zO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWxldGUgdHJhbnNhY3Rpb24gYW5kIHJlbGF0ZWQgdHJhbnNhY3Rpb25zXG4gICAqIEBwYXJhbSBtb2RlbFxuICAgKi9cbiAgZGVsZXRlKG1vZGVsOiBUcmFuc2FjdGlvbik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9LyR7bW9kZWwuaWR9YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSB0aGlzLmNhY2hlLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICAvLyB3aGVuIGRlbGV0ZSB0cmFuc2ZlciB3ZSBkZWxldGUgYWN0dWFsbHkgMiB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIGlmIChtb2RlbC5pc1RyYW5zZmVyKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGlkczogbnVtYmVyW10gPSBbbW9kZWwuaWRdO1xuXG4gICAgICAgICAgICAgIC8vIGdldCBpZCBvZiByZWxhdGVkIHRyYW5zZmVyIHRyYW5zYWN0aW9uXG4gICAgICAgICAgICAgIGlmIChtb2RlbC50cmFuc2Zlcikge1xuICAgICAgICAgICAgICAgIC8vIGp1c3QgdGFrZSBpZCBpZiB3ZSBkZWxldGUgc291cmNlIHRyYW5zYWN0aW9uXG4gICAgICAgICAgICAgICAgaWRzLnB1c2gobW9kZWwudHJhbnNmZXIuaWQpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGZpbmQgc291cmNlIHRyYW5zYWN0aW9uIGlkIGlmIHdlIGRlbGV0ZSBkZXN0aW5hdGlvbiB0cmFuc2FjdGlvblxuICAgICAgICAgICAgICAgIGlkcy5wdXNoKHRoaXMuY2FjaGUuZmluZCgodDogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHQudHJhbnNmZXIuaWQgPT09IG1vZGVsLmlkKS5pZCk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4gIWlkcy5pbmNsdWRlcyh0cmFuc2FjdGlvbi5pZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0cmFuc2FjdGlvbi5pZCAhPT0gbW9kZWwuaWQgJiYgdHJhbnNhY3Rpb24ucGFyZW50VHJhbnNhY3Rpb24/LmlkICE9PSBtb2RlbC5pZDtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChcbiAgICAgICAgICAgIG5ldyBBcHBFdmVudDxUcmFuc2FjdGlvbj4oQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTl9ERUxFVEVELCBtb2RlbClcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25EZWxldGVkLmVtaXQobW9kZWwpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBBbGV4IHdyb25nIHBsYWNlIGZvciB0aGlzIGxvZ2ljLCBtb3ZlIHRvIG1vZGVsXG4gICAqIGNhbGN1bGF0ZSBncm9zcyBpbmNvbWUgYW1vdW50IGJhc2VkIG9uIHRyYW5zYWN0aW9uIGFtb3VudCBhbmQgdGF4ZXMgKGZlZXMpXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiBUcmFuc2FjdGlvbiBpbnN0YW5jZSBmb3IgY2FsY3VsYXRpb25cbiAgICovXG4gIGNhbGN1bGF0ZUdyb3NzQW1vdW50KHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IG51bWJlciB7XG4gICAgbGV0IGFtb3VudDogbnVtYmVyID0gdHJhbnNhY3Rpb24uYW1vdW50IHx8IDA7XG5cbiAgICAvLyBncm9zcyBpbmNvbWUgYW1vdW50IGluY2x1ZGVzIGFtb3VudCBvZiBmZWVzIGZvciBwcm9wZXJ0eSB0YW5rIGFuZCB0YXggZm9yIHdvcmsgdGFua1xuICAgIGlmICh0cmFuc2FjdGlvbi5pc1Byb3BlcnR5VGFuaygpKSB7XG4gICAgICBhbW91bnQgKz0gdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zLnJlZHVjZSgoc3VtOiBudW1iZXIsIGl0ZW06IFRyYW5zYWN0aW9uKSA9PiBzdW0gKyBpdGVtLmFtb3VudCwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEBUT0RPIEFsZXg6IGZpeCBsb2dpYyBhZnRlciBUVC02NDEgcmVhZHlcbiAgICAgIGFtb3VudCArPSAodHJhbnNhY3Rpb24udGF4IHx8IDApO1xuICAgIH1cblxuICAgIHJldHVybiBhbW91bnQ7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgZXZlbnQgcmVsYXRlZCB0byBEZXByZWNpYXRpb24gY2hhbmdpbmdcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuRGVwcmVjaWF0aW9uQ2hhbmdlKCk6IHZvaWQge1xuICAgIC8vIEBUT0RPIHJlc2V0IGNhY2hlIG9ubHkgd2hlbiByZXF1aXJlZCAoZGVwcmVjaWF0aW9uIGhhcyB0cmFuc2FjdGlvbilcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24yKC4uLkRlcHJlY2lhdGlvbi5nZXRFdmVudE5hbWVzKCdwb3N0JywgJ2RlbGV0ZScpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5mZXRjaCgpXG4gICAgICAgIC5zdWJzY3JpYmUoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSB0cmFuc2FjdGlvbnM7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gRXZlbnREaXNwYXRjaGVyU2VydmljZSBldmVudCByZWxhdGVkIHRvIFByb3BlcnR5IFNoYXJlIGNoYW5naW5nXG4gICAqL1xuICBwcml2YXRlIGxpc3RlblByb3BlcnR5U2hhcmVVcGRhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uUFJPUEVSVFlfU0hBUkVfVVBEQVRFRCkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVzZXRDYWNoZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuUmVjZWlwdEFkZGVkKCkge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OX1JFQ0VJUFRfQ1JFQVRFRCkuc3Vic2NyaWJlKCh0cmFuc2FjdGlvblJlY2VpcHQ6IFRyYW5zYWN0aW9uUmVjZWlwdCkgPT4ge1xuICAgICAgY29uc3QgdHJhbnNhY3Rpb25Ub1VwZGF0ZTogVHJhbnNhY3Rpb24gPSB0aGlzLmZpbmQodHJhbnNhY3Rpb25SZWNlaXB0LnRyYW5zYWN0aW9uLmlkKTtcblxuICAgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBrZWVwIGZpbGUgYWZ0ZXIgc2F2ZVxuICAgICAgdHJhbnNhY3Rpb25Ub1VwZGF0ZS5maWxlID0gbnVsbDtcbiAgICAgIHRyYW5zYWN0aW9uVG9VcGRhdGUucmVjZWlwdCA9IHRyYW5zYWN0aW9uUmVjZWlwdDtcbiAgICAgIHRoaXMucmVwbGFjZUluQ2FjaGUodHJhbnNhY3Rpb25Ub1VwZGF0ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlblJlY2VpcHREZWxldGVkKCkge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OX1JFQ0VJUFRfREVMRVRFRCkuc3Vic2NyaWJlKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHtcbiAgICAgIGNvbnN0IHRyYW5zYWN0aW9uVG9VcGRhdGU6IFRyYW5zYWN0aW9uID0gdGhpcy5maW5kKHRyYW5zYWN0aW9uLmlkKTtcblxuICAgICAgdHJhbnNhY3Rpb25Ub1VwZGF0ZS5yZWNlaXB0ID0gbnVsbDtcbiAgICAgIHRoaXMucmVwbGFjZUluQ2FjaGUodHJhbnNhY3Rpb25Ub1VwZGF0ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlblZlaGljbGVDbGFpbUNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKFtcbiAgICAgIEFwcEV2ZW50VHlwZUVudW0uVkVISUNMRV9DTEFJTV9DUkVBVEVELFxuICAgICAgQXBwRXZlbnRUeXBlRW51bS5WRUhJQ0xFX0NMQUlNX1VQREFURUQsXG4gICAgICBBcHBFdmVudFR5cGVFbnVtLlZFSElDTEVfQ0xBSU1fREVUQUlMU19VUERBVEVEXG4gICAgXSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVzZXRDYWNoZSgpO1xuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogcHJvcGVydHkgZm9yZWNhc3QgaW5jbHVkZXMgY2xhaW1QZXJjZW50IHdoaWNoIGFmZmVjdHMgcHJvcGVydHkgcmVsYXRlZCBleHBlbnNlc1xuICAgKiBAVE9ETyBBbGV4IG1vdmUgdG8gZm9yZWNhc3QgYXBpIGluc3RlYWQgb2YgcHJvcGVydHlcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuUHJvcGVydHlGb3JlY2FzdFVwZGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oW0FwcEV2ZW50VHlwZUVudW0uUFJPUEVSVFlfVVBEQVRFRF0pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlc2V0Q2FjaGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVwbGFjZUluQ2FjaGUodHJhbnNhY3Rpb25Ub1JlcGxhY2U6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgcmVwbGFjZSh0aGlzLmNhY2hlLCB0cmFuc2FjdGlvblRvUmVwbGFjZSk7XG4gICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5JbnZvaWNlc1B1Ymxpc2goKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uU09MRV9JTlZPSUNFX1BVQkxJU0hFRCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVzZXRDYWNoZSgpO1xuICAgIH0pXG4gIH1cbn1cbiJdfQ==
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxXQUFXLEVBQXNCLE1BQU0saUJBQWlCLENBQUM7QUFDNUcsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBS2xHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7O0FBQ2pEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFdBQXlDO0lBTS9FLFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCLEVBQ3ZDLFlBQTBCLEVBQzVCLHlCQUFvRDtRQUU1RCxLQUFLLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztRQU5yRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLDJCQUFzQixHQUF0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MEJBVUksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIGFzIFRyYW5zYWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyByZXBsYWNlLCBzb3J0IH0gZnJvbSAnLi4vLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bSB9IGZyb20gJy4uLy4uLy4uL2RiL0VudW1zL3RyYW5zYWN0aW9uLW9wZXJhdGlvbi5lbnVtJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzdC9yZXN0LW9sZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcEV2ZW50LCBBcHBFdmVudFR5cGVFbnVtLCBEZXByZWNpYXRpb24sIFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblJlY2VpcHQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFByb3BlcnR5Q2F0ZWdvcnlMaXN0RW51bSB9IGZyb20gJy4uLy4uLy4uL2RiL0VudW1zL3Byb3BlcnR5L3Byb3BlcnR5LWNhdGVnb3J5LWxpc3QuZW51bSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblJlY2VpcHRTZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2FjdGlvbi1yZWNlaXB0L3RyYW5zYWN0aW9uLXJlY2VpcHQuc2VydmljZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2V2ZW50JztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3RvYXN0JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjbGFzc1RvUGxhaW4gfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG4vKipcbiAqIFNlcnZpY2UgZm9yIHRyYW5zYWN0aW9ucyBidXNpbmVzcyBsb2dpY1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblNlcnZpY2UgZXh0ZW5kcyBSZXN0U2VydmljZTxUcmFuc2FjdGlvbkJhc2UsIFRyYW5zYWN0aW9uPiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgLy8gdXJsIHBhcnQgZm9yIFRyYW5zYWN0aW9uIEFQSVxuICB1cmwgPSAndHJhbnNhY3Rpb25zJztcbiAgbW9kZWxDbGFzcyA9IFRyYW5zYWN0aW9uO1xuICB0cmFuc2FjdGlvbkRlbGV0ZWQ6IEV2ZW50RW1pdHRlcjxUcmFuc2FjdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPFRyYW5zYWN0aW9uPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnksXG4gICAgcHJvdGVjdGVkIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNhY3Rpb25SZWNlaXB0U2VydmljZTogVHJhbnNhY3Rpb25SZWNlaXB0U2VydmljZVxuICApIHtcbiAgICBzdXBlcihodHRwLCBldmVudERpc3BhdGNoZXJTZXJ2aWNlLCBlbnZpcm9ubWVudCwgdG9hc3RTZXJ2aWNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gZXZlbnRzIGZyb20gRXZlbnQgRGlzcGF0Y2hlciBzZXJ2aWNlc1xuICAgKi9cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuRGVwcmVjaWF0aW9uQ2hhbmdlKCk7XG4gICAgdGhpcy5saXN0ZW5Qcm9wZXJ0eVNoYXJlVXBkYXRlKCk7XG4gICAgdGhpcy5saXN0ZW5SZWNlaXB0QWRkZWQoKTtcbiAgICB0aGlzLmxpc3RlblJlY2VpcHREZWxldGVkKCk7XG4gICAgdGhpcy5saXN0ZW5WZWhpY2xlQ2xhaW1DaGFuZ2VzKCk7XG4gICAgdGhpcy5saXN0ZW5Qcm9wZXJ0eUZvcmVjYXN0VXBkYXRlKCk7XG4gICAgdGhpcy5saXN0ZW5JbnZvaWNlc1B1Ymxpc2goKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgbGlzdCBvZiBhbGwgdXNlcidzIFRheFRhbmsgdHJhbnNhY3Rpb25zXG4gICAqL1xuICBnZXQoKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgcmV0dXJuIHN1cGVyLmdldCgpLnBpcGUoXG4gICAgICAvLyBhc3NpZ24gY2hpbGQgdHJhbnNhY3Rpb25zIChmZWVzKSB0byBwYXJlbnQgdHJhbnNhY3Rpb25zXG4gICAgICBtYXAoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IFRyYW5zYWN0aW9uW10gPT4ge1xuICAgICAgICB0cmFuc2FjdGlvbnMuZm9yRWFjaCgodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogdm9pZCA9PiB7XG4gICAgICAgICAgdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zID0gdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICAvLyBnZXQgbGlzdCBvZiBjaGlsZCB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIC5maWx0ZXIoKHQ6IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0LnBhcmVudFRyYW5zYWN0aW9uICYmIHQucGFyZW50VHJhbnNhY3Rpb24uaWQgPT09IHRyYW5zYWN0aW9uLmlkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHNvcnQodHJhbnNhY3Rpb25zLCAnZGF0ZScsIGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9ucztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgc2luZ2xlIG5ldyB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gbW9kZWwgTmV3IFRyYW5zYWN0aW9uIGluc3RhbmNlIGZvciBzYXZpbmdcbiAgICovXG4gIGFkZChtb2RlbDogVHJhbnNhY3Rpb24pOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uPiB7XG4gICAgLy8gd2UgZG9uJ3QgaGF2ZSBQT1NUIEFQSSBlbmRwb2ludCBmb3Igc2luZ2xlIHRyYW5zYWN0aW9uXG4gICAgcmV0dXJuIHRoaXMuYWRkQmF0Y2goW21vZGVsXSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKG5ld1RyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IFRyYW5zYWN0aW9uID0+IHtcbiAgICAgICAgICAvLyBAVE9ETyBhbGV4XG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKFxuICAgICAgICAgICAgbmV3IEFwcEV2ZW50PFRyYW5zYWN0aW9uPihBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OX0NSRUFURUQsIG5ld1RyYW5zYWN0aW9uc1swXSlcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgcmV0dXJuIG5ld1RyYW5zYWN0aW9uc1swXTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHRyYW5zYWN0aW9ucyByZWxhdGVkIHdpdGggcHJvcGVydHlcbiAgICovXG4gIGdldEJ5UHJvcGVydHlJZChwcm9wZXJ0eUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSA9PiB0cmFuc2FjdGlvbnMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLnByb3BlcnR5Py5pZCA9PT0gcHJvcGVydHlJZCkpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBsaXN0IG9mIHRyYW5zYWN0aW9ucyB3aXRoIHRhbmsgdHlwZSAnV29yaydcbiAgICovXG4gIGdldFdvcmtUcmFuc2FjdGlvbnMoKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IFRyYW5zYWN0aW9uW10gPT4gdHJhbnNhY3Rpb25zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pc1dvcmtUYW5rKCkpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGlzdCBvZiBwcm9wZXJ0eSBob2xkaW5nIGNvc3RzICh0cmFuc2FjdGlvbnMgcmVsYXRlZCB0byB2YWNhbnQgbGFuZCBwcm9wZXJ0eSlcbiAgICovXG4gIGdldFByb3BlcnR5SG9sZGluZ0Nvc3RzKHByb3BlcnR5SWQ6IG51bWJlcik6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdID0+IG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24odHJhbnNhY3Rpb25zKVxuICAgICAgICAgIC5maWx0ZXJCeSgncHJvcGVydHkuaWQnLCBwcm9wZXJ0eUlkKVxuICAgICAgICAgIC5maWx0ZXJCeSgncHJvcGVydHkuY2F0ZWdvcnkuaWQnLCBQcm9wZXJ0eUNhdGVnb3J5TGlzdEVudW0uVkFDQU5UX0xBTkQpXG4gICAgICAgICAgLnRvQXJyYXkoKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgdGF4YWJsZSB0cmFuc2FjdGlvbnMgd2l0aCB0YW5rIHR5cGUgJ1dvcmsnXG4gICAqL1xuICBnZXRUYXhhYmxlV29ya1RyYW5zYWN0aW9ucygpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRXb3JrVHJhbnNhY3Rpb25zKClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IFRyYW5zYWN0aW9uW10gPT4gdHJhbnNhY3Rpb25zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiAhIXRyYW5zYWN0aW9uLmNoYXJ0QWNjb3VudHMudGF4UmV0dXJuSXRlbSkpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGFkZCBtdWx0aXBsZSB0cmFuc2FjdGlvbnNcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9ucyBMaXN0IG9mIG5ldyBUcmFuc2FjdGlvbiBpbnN0YW5jZXMgZm9yIHNhdmluZ1xuICAgKi9cbiAgYWRkQmF0Y2godHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgdHJhbnNhY3Rpb25zID0gXy5jbG9uZURlZXAodHJhbnNhY3Rpb25zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH1gLCBjbGFzc1RvUGxhaW4odHJhbnNhY3Rpb25zKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkJhc2VbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFkZGVkVHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdID0gcmVzcG9uc2UubWFwKChpdGVtOiBUcmFuc2FjdGlvbkJhc2UpID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShpdGVtKSk7XG5cbiAgICAgICAgICB0cmFuc2FjdGlvbnMuZm9yRWFjaCgodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAvLyBAVE9ETyBiYWNrZW5kOiBuZWVkIHRvIHVwbG9hZCBmaWxlIGluIHRoZSBzYW1lIGJhY2tlbmQgZW5kcG9pbnQgd2l0aCB0cmFuc2FjdGlvbiBhZGQvdXBkYXRlXG4gICAgICAgICAgICAvLyBjaGVjayBpZiBwYXNzZWQgcmVjZWlwdCBhbmQgdXBsb2FkIGZpbGVcbiAgICAgICAgICAgIGlmICh0cmFuc2FjdGlvbi5maWxlKSB7XG4gICAgICAgICAgICAgIHRyYW5zYWN0aW9uLmlkID0gcmVzcG9uc2VbaW5kZXhdLmlkO1xuICAgICAgICAgICAgICBhZGRlZFRyYW5zYWN0aW9uc1tpbmRleF0uZmlsZSA9IHRyYW5zYWN0aW9uLmZpbGU7XG4gICAgICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTl9VUERBVEVEX1dJVEhfUkVDRUlQVCwgYWRkZWRUcmFuc2FjdGlvbnNbaW5kZXhdKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEBUT0RPIFZpa3RvcjogaW1wbGVtZW50IEFQSSBmb3Igc2F2aW5nIG9mIG5lc3RlZCB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIC8vIGFkZCBjaGlsZCB0cmFuc2FjdGlvbnMgaWYgZXhpc3RcbiAgICAgICAgICAgIGlmICh0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5mb3JFYWNoKChjaGlsZFRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGNoaWxkVHJhbnNhY3Rpb24ucGFyZW50VHJhbnNhY3Rpb24gPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2Uoe2lkOiBhZGRlZFRyYW5zYWN0aW9uc1tpbmRleF0uaWR9KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHRoaXMuYWRkQmF0Y2godHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gYWRkIHRyYW5zZmVyIHRyYW5zYWN0aW9uIHRvIGNhY2hlXG4gICAgICAgICAgICBpZiAodHJhbnNhY3Rpb24ub3BlcmF0aW9uID09PSBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0uVFJBTlNGRVIpIHtcbiAgICAgICAgICAgICAgYWRkZWRUcmFuc2FjdGlvbnMucHVzaChhZGRlZFRyYW5zYWN0aW9uc1swXS50cmFuc2Zlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAodGhpcy5jYWNoZSkge1xuICAgICAgICAgICAgdGhpcy5jYWNoZS5wdXNoKC4uLmFkZGVkVHJhbnNhY3Rpb25zKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2goXG4gICAgICAgICAgICBuZXcgQXBwRXZlbnQ8VHJhbnNhY3Rpb25bXT4oQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTlNfQ1JFQVRFRCwgYWRkZWRUcmFuc2FjdGlvbnMpXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiBhZGRlZFRyYW5zYWN0aW9ucztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogdXBkYXRlIGV4aXN0aW5nIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiBUcmFuc2FjdGlvbiBpbnN0YW5jZSBmb3IgdXBkYXRpbmdcbiAgICovXG4gIHVwZGF0ZSh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHt0cmFuc2FjdGlvbi5pZH1gLCBjbGFzc1RvUGxhaW4odHJhbnNhY3Rpb24pKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IFRyYW5zYWN0aW9uQmFzZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb24gPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UocmVzcG9uc2UpO1xuXG4gICAgICAgICAgLy8gQFRPRE8gbmVlZCB0byB1cGxvYWQgZmlsZSBpbiB0aGUgc2FtZSBiYWNrZW5kIGVuZHBvaW50IHdpdGggdHJhbnNhY3Rpb24gYWRkL3VwZGF0ZVxuICAgICAgICAgIC8vIGNoZWNrIGlmIHBhc3NlZCBuZXcgcmVjZWlwdCBhbmQgdXBsb2FkIGZpbGVcbiAgICAgICAgICBpZiAodHJhbnNhY3Rpb24uZmlsZSkge1xuICAgICAgICAgICAgdXBkYXRlZFRyYW5zYWN0aW9uLmZpbGUgPSB0cmFuc2FjdGlvbi5maWxlO1xuICAgICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OX1VQREFURURfV0lUSF9SRUNFSVBULCB1cGRhdGVkVHJhbnNhY3Rpb24pKTtcbiAgICAgICAgICAgIC8vIHJlY2VpcHQgZmlsZSB3YXMgcmVtb3ZlZCBmcm9tIGZvcm0gLSB3ZSBzaG91bGQgZGVsZXRlIHJlY2VpcHQgZnJvbSB0cmFuc2FjdGlvblxuICAgICAgICAgIH0gZWxzZSBpZiAoIXRyYW5zYWN0aW9uLmZpbGUgJiYgdHJhbnNhY3Rpb24ucmVjZWlwdCkge1xuICAgICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OX1VQREFURURfV0lUSF9ERUxFVEVEX1JFQ0VJUFQsIHVwZGF0ZWRUcmFuc2FjdGlvbikpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEBUT0RPIFZpa3RvcjogaW1wbGVtZW50IEFQSSBmb3Igc2F2aW5nIG9mIG5lc3RlZCB0cmFuc2FjdGlvbnNcbiAgICAgICAgICBpZiAodHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgLy8gYWRkIHBhcmVudCB0cmFuc2FjdGlvbiB0byBjaGlsZCB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5mb3JFYWNoKChjaGlsZFRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgICAgICBjaGlsZFRyYW5zYWN0aW9uLnBhcmVudFRyYW5zYWN0aW9uID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHtpZDogdXBkYXRlZFRyYW5zYWN0aW9uLmlkfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIHNlcGFyYXRlIGNoaWxkIHRyYW5zYWN0aW9ucyBieSBpZCBleGlzdGluZyB0byBkZWZpbmUgYWRkIG9yIHVwZGF0ZSBhY3Rpb24uXG4gICAgICAgICAgICBjb25zdCBjaGlsZFRyYW5zYWN0aW9uc1RvVXBkYXRlOiBUcmFuc2FjdGlvbltdID0gdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zLmZpbHRlcigodDogVHJhbnNhY3Rpb24pID0+IHQuaWQpO1xuICAgICAgICAgICAgY29uc3QgY2hpbGRUcmFuc2FjdGlvbnNUb0FkZDogVHJhbnNhY3Rpb25bXSA9IHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5maWx0ZXIoKHQ6IFRyYW5zYWN0aW9uKSA9PiAhdC5pZCk7XG5cbiAgICAgICAgICAgIC8vIHVwZGF0ZSBjaGlsZCB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIGlmIChjaGlsZFRyYW5zYWN0aW9uc1RvVXBkYXRlLmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUJhdGNoKGNoaWxkVHJhbnNhY3Rpb25zVG9VcGRhdGUpLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBhZGQgY2hpbGQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICBpZiAoY2hpbGRUcmFuc2FjdGlvbnNUb0FkZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5hZGRCYXRjaChjaGlsZFRyYW5zYWN0aW9uc1RvQWRkKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnJlcGxhY2VJbkNhY2hlKHVwZGF0ZWRUcmFuc2FjdGlvbik7XG5cbiAgICAgICAgICByZXR1cm4gdXBkYXRlZFRyYW5zYWN0aW9uO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB1cGRhdGUgbXVsdGlwbGUgdHJhbnNhY3Rpb25zXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbnMgbGlzdCBvZiB0cmFuc2FjdGlvbnMgZm9yIHVwZGF0aW5nXG4gICAqL1xuICB1cGRhdGVCYXRjaCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGNsYXNzVG9QbGFpbih0cmFuc2FjdGlvbnMpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IFRyYW5zYWN0aW9uQmFzZVtdKSA9PiB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZFRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSA9IHJlc3BvbnNlLm1hcCgoaXRlbTogVHJhbnNhY3Rpb25CYXNlKSA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoaXRlbSkpO1xuXG4gICAgICAgICAgdXBkYXRlZFRyYW5zYWN0aW9ucy5mb3JFYWNoKCh1cGRhdGVkVHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiB7XG4gICAgICAgICAgICByZXBsYWNlKHRoaXMuY2FjaGUsIHVwZGF0ZWRUcmFuc2FjdGlvbik7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRUcmFuc2FjdGlvbnM7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSB0cmFuc2FjdGlvbiBhbmQgcmVsYXRlZCB0cmFuc2FjdGlvbnNcbiAgICogQHBhcmFtIG1vZGVsXG4gICAqL1xuICBkZWxldGUobW9kZWw6IFRyYW5zYWN0aW9uKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHttb2RlbC5pZH1gKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRoaXMuY2FjaGUuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHtcbiAgICAgICAgICAgIC8vIHdoZW4gZGVsZXRlIHRyYW5zZmVyIHdlIGRlbGV0ZSBhY3R1YWxseSAyIHRyYW5zYWN0aW9uc1xuICAgICAgICAgICAgaWYgKG1vZGVsLmlzVHJhbnNmZXIpIHtcbiAgICAgICAgICAgICAgY29uc3QgaWRzOiBudW1iZXJbXSA9IFttb2RlbC5pZF07XG5cbiAgICAgICAgICAgICAgLy8gZ2V0IGlkIG9mIHJlbGF0ZWQgdHJhbnNmZXIgdHJhbnNhY3Rpb25cbiAgICAgICAgICAgICAgaWYgKG1vZGVsLnRyYW5zZmVyKSB7XG4gICAgICAgICAgICAgICAgLy8ganVzdCB0YWtlIGlkIGlmIHdlIGRlbGV0ZSBzb3VyY2UgdHJhbnNhY3Rpb25cbiAgICAgICAgICAgICAgICBpZHMucHVzaChtb2RlbC50cmFuc2Zlci5pZCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gZmluZCBzb3VyY2UgdHJhbnNhY3Rpb24gaWQgaWYgd2UgZGVsZXRlIGRlc3RpbmF0aW9uIHRyYW5zYWN0aW9uXG4gICAgICAgICAgICAgICAgaWRzLnB1c2godGhpcy5jYWNoZS5maW5kKCh0OiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdC50cmFuc2Zlci5pZCA9PT0gbW9kZWwuaWQpLmlkKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiAhaWRzLmluY2x1ZGVzKHRyYW5zYWN0aW9uLmlkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uLmlkICE9PSBtb2RlbC5pZCAmJiB0cmFuc2FjdGlvbi5wYXJlbnRUcmFuc2FjdGlvbj8uaWQgIT09IG1vZGVsLmlkO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKFxuICAgICAgICAgICAgbmV3IEFwcEV2ZW50PFRyYW5zYWN0aW9uPihBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OX0RFTEVURUQsIG1vZGVsKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkRlbGV0ZWQuZW1pdChtb2RlbCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIEFsZXggd3JvbmcgcGxhY2UgZm9yIHRoaXMgbG9naWMsIG1vdmUgdG8gbW9kZWxcbiAgICogY2FsY3VsYXRlIGdyb3NzIGluY29tZSBhbW91bnQgYmFzZWQgb24gdHJhbnNhY3Rpb24gYW1vdW50IGFuZCB0YXhlcyAoZmVlcylcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uIFRyYW5zYWN0aW9uIGluc3RhbmNlIGZvciBjYWxjdWxhdGlvblxuICAgKi9cbiAgY2FsY3VsYXRlR3Jvc3NBbW91bnQodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogbnVtYmVyIHtcbiAgICBsZXQgYW1vdW50OiBudW1iZXIgPSB0cmFuc2FjdGlvbi5hbW91bnQgfHwgMDtcblxuICAgIC8vIGdyb3NzIGluY29tZSBhbW91bnQgaW5jbHVkZXMgYW1vdW50IG9mIGZlZXMgZm9yIHByb3BlcnR5IHRhbmsgYW5kIHRheCBmb3Igd29yayB0YW5rXG4gICAgaWYgKHRyYW5zYWN0aW9uLmlzUHJvcGVydHlUYW5rKCkpIHtcbiAgICAgIGFtb3VudCArPSB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMucmVkdWNlKChzdW06IG51bWJlciwgaXRlbTogVHJhbnNhY3Rpb24pID0+IHN1bSArIGl0ZW0uYW1vdW50LCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQFRPRE8gQWxleDogZml4IGxvZ2ljIGFmdGVyIFRULTY0MSByZWFkeVxuICAgICAgYW1vdW50ICs9ICh0cmFuc2FjdGlvbi50YXggfHwgMCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFtb3VudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gRXZlbnREaXNwYXRjaGVyU2VydmljZSBldmVudCByZWxhdGVkIHRvIERlcHJlY2lhdGlvbiBjaGFuZ2luZ1xuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5EZXByZWNpYXRpb25DaGFuZ2UoKTogdm9pZCB7XG4gICAgLy8gQFRPRE8gcmVzZXQgY2FjaGUgb25seSB3aGVuIHJlcXVpcmVkIChkZXByZWNpYXRpb24gaGFzIHRyYW5zYWN0aW9uKVxuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbjIoLi4uRGVwcmVjaWF0aW9uLmdldEV2ZW50TmFtZXMoJ3Bvc3QnLCAnZGVsZXRlJykpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDYWNoZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiB0byBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIGV2ZW50IHJlbGF0ZWQgdG8gUHJvcGVydHkgU2hhcmUgY2hhbmdpbmdcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuUHJvcGVydHlTaGFyZVVwZGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5QUk9QRVJUWV9TSEFSRV9VUERBVEVEKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZWZyZXNoQ2FjaGUoKSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlblJlY2VpcHRBZGRlZCgpIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTl9SRUNFSVBUX0NSRUFURUQpLnN1YnNjcmliZSgodHJhbnNhY3Rpb25SZWNlaXB0OiBUcmFuc2FjdGlvblJlY2VpcHQpID0+IHtcbiAgICAgIGNvbnN0IHRyYW5zYWN0aW9uVG9VcGRhdGU6IFRyYW5zYWN0aW9uID0gdGhpcy5maW5kKHRyYW5zYWN0aW9uUmVjZWlwdC50cmFuc2FjdGlvbi5pZCk7XG5cbiAgICAgIC8vIHdlIGRvbid0IG5lZWQgdG8ga2VlcCBmaWxlIGFmdGVyIHNhdmVcbiAgICAgIHRyYW5zYWN0aW9uVG9VcGRhdGUuZmlsZSA9IG51bGw7XG4gICAgICB0cmFuc2FjdGlvblRvVXBkYXRlLnJlY2VpcHQgPSB0cmFuc2FjdGlvblJlY2VpcHQ7XG4gICAgICB0aGlzLnJlcGxhY2VJbkNhY2hlKHRyYW5zYWN0aW9uVG9VcGRhdGUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5SZWNlaXB0RGVsZXRlZCgpIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTl9SRUNFSVBUX0RFTEVURUQpLnN1YnNjcmliZSgodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiB7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvblRvVXBkYXRlOiBUcmFuc2FjdGlvbiA9IHRoaXMuZmluZCh0cmFuc2FjdGlvbi5pZCk7XG5cbiAgICAgIHRyYW5zYWN0aW9uVG9VcGRhdGUucmVjZWlwdCA9IG51bGw7XG4gICAgICB0aGlzLnJlcGxhY2VJbkNhY2hlKHRyYW5zYWN0aW9uVG9VcGRhdGUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5WZWhpY2xlQ2xhaW1DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihbXG4gICAgICBBcHBFdmVudFR5cGVFbnVtLlZFSElDTEVfQ0xBSU1fQ1JFQVRFRCxcbiAgICAgIEFwcEV2ZW50VHlwZUVudW0uVkVISUNMRV9DTEFJTV9VUERBVEVELFxuICAgICAgQXBwRXZlbnRUeXBlRW51bS5WRUhJQ0xFX0NMQUlNX0RFVEFJTFNfVVBEQVRFRFxuICAgIF0pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDYWNoZSgpO1xuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogcHJvcGVydHkgZm9yZWNhc3QgaW5jbHVkZXMgY2xhaW1QZXJjZW50IHdoaWNoIGFmZmVjdHMgcHJvcGVydHkgcmVsYXRlZCBleHBlbnNlc1xuICAgKiBAVE9ETyBBbGV4IG1vdmUgdG8gZm9yZWNhc3QgYXBpIGluc3RlYWQgb2YgcHJvcGVydHlcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuUHJvcGVydHlGb3JlY2FzdFVwZGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oW0FwcEV2ZW50VHlwZUVudW0uUFJPUEVSVFlfVVBEQVRFRF0pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDYWNoZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXBsYWNlSW5DYWNoZSh0cmFuc2FjdGlvblRvUmVwbGFjZTogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICByZXBsYWNlKHRoaXMuY2FjaGUsIHRyYW5zYWN0aW9uVG9SZXBsYWNlKTtcbiAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gIH1cblxuICBwcml2YXRlIGxpc3Rlbkludm9pY2VzUHVibGlzaCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5TT0xFX0lOVk9JQ0VfUFVCTElTSEVEKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoQ2FjaGUoKTtcbiAgICB9KVxuICB9XG59XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { map } from 'rxjs/operators';
3
+ import { HttpParams } from '@angular/common/http';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common/http";
6
+ export class FinancialYearService {
7
+ constructor(http, environment) {
8
+ this.http = http;
9
+ this.environment = environment;
10
+ }
11
+ switch(year) {
12
+ return this.http.get(`${this.environment.apiV2}/financial-year/switch`, { params: new HttpParams({ fromString: `financialYear=${year}` }) }).pipe(map(() => {
13
+ localStorage.setItem('financialYear', year.toString());
14
+ window.location.reload();
15
+ }));
16
+ }
17
+ }
18
+ FinancialYearService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: FinancialYearService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
19
+ FinancialYearService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: FinancialYearService, providedIn: 'root' });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: FinancialYearService, decorators: [{
21
+ type: Injectable,
22
+ args: [{
23
+ providedIn: 'root'
24
+ }]
25
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
26
+ type: Inject,
27
+ args: ['environment']
28
+ }] }]; } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluYW5jaWFsLXllYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3VzZXIvZmluYW5jaWFsLXllYXIvZmluYW5jaWFsLXllYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFLOUQsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixZQUFzQixJQUFnQixFQUFtQyxXQUFnQjtRQUFuRSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQW1DLGdCQUFXLEdBQVgsV0FBVyxDQUFLO0lBQUcsQ0FBQztJQUU3RixNQUFNLENBQUMsSUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLHdCQUF3QixFQUNwRSxFQUFFLE1BQU0sRUFBRSxJQUFJLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQ3BFLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUN2RCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOztpSEFaVSxvQkFBb0IsNENBQ2lCLGFBQWE7cUhBRGxELG9CQUFvQixjQUZuQixNQUFNOzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUUwQyxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZpbmFuY2lhbFllYXJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnkpIHt9XG5cbiAgc3dpdGNoKHllYXI6IG51bWJlcik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2ZpbmFuY2lhbC15ZWFyL3N3aXRjaGAsXG4gICAgICB7IHBhcmFtczogbmV3IEh0dHBQYXJhbXMoeyBmcm9tU3RyaW5nOiBgZmluYW5jaWFsWWVhcj0ke3llYXJ9YCB9KSB9XG4gICAgKS5waXBlKFxuICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2ZpbmFuY2lhbFllYXInLCB5ZWFyLnRvU3RyaW5nKCkpO1xuICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -3,4 +3,5 @@ export * from './user-event-setting/user-event-setting.service';
3
3
  export * from './user-event-type/user-event-type.service';
4
4
  export * from './users-invite/users-invite.service';
5
5
  export * from './user.service';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC91c2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4uL2NsaWVudC9vY2N1cGF0aW9uL29jY3VwYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXItZXZlbnQtc2V0dGluZy91c2VyLWV2ZW50LXNldHRpbmcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXItZXZlbnQtdHlwZS91c2VyLWV2ZW50LXR5cGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXJzLWludml0ZS91c2Vycy1pbnZpdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXIuc2VydmljZSc7XG4iXX0=
6
+ export * from './financial-year/financial-year.service';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC91c2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHlDQUF5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi4vY2xpZW50L29jY3VwYXRpb24vb2NjdXBhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1ldmVudC1zZXR0aW5nL3VzZXItZXZlbnQtc2V0dGluZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1ldmVudC10eXBlL3VzZXItZXZlbnQtdHlwZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlcnMtaW52aXRlL3VzZXJzLWludml0ZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZmluYW5jaWFsLXllYXIvZmluYW5jaWFsLXllYXIuc2VydmljZSc7XG4iXX0=
@@ -48,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
48
48
  providedIn: 'root'
49
49
  }]
50
50
  }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC1zZXR0aW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC91c2VyL3VzZXItZXZlbnQtc2V0dGluZy91c2VyLWV2ZW50LXNldHRpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBR3BGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQWMsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFNL0QsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFdBQW1EO0lBSGhHOztRQUlFLGVBQVUsR0FBNEIsZ0JBQWdCLENBQUM7UUFDdkQsUUFBRyxHQUFHLHFCQUFxQixDQUFDO1FBQzVCLFlBQU8sR0FBRyxJQUFJLENBQUM7S0FrQ2hCO0lBaENDOztPQUVHO0lBQ0gsU0FBUyxDQUFDLFFBQTRCO1FBQ3BDLG1EQUFtRDtRQUNuRCxNQUFNLEtBQUssR0FBeUIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQXlCLEVBQUUsRUFBRTtZQUM3RSxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUUxQixJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUU7Z0JBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ3BHO1lBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN4RixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDekIsR0FBRyxDQUFDLENBQUMsYUFBaUMsRUFBRSxFQUFFO1lBQ3hDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUE4QixFQUFFLEVBQUU7Z0JBQ3ZELDZDQUE2QztnQkFDN0MsTUFBTSxhQUFhLEdBQXFCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBeUIsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBRXZILElBQUksYUFBYSxFQUFFO29CQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztpQkFDbkM7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7aUJBQy9EO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O29IQXBDVSx1QkFBdUI7d0hBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBVc2VyRXZlbnRTZXR0aW5nIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3VzZXItZXZlbnQvdXNlci1ldmVudC1zZXR0aW5nJztcbmltcG9ydCB7IFVzZXJFdmVudFNldHRpbmcgYXMgVXNlckV2ZW50U2V0dGluZ0Jhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9Nb2RlbHMvdXNlci91c2VyLWV2ZW50LXNldHRpbmcnO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2V2ZW50L2V2ZW50LWRpc3BhdGNoZXIuc2VydmljZSc7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3Jlc3QvcmVzdC1vbGQuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgcmVwbGFjZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Z1bmN0aW9ucy9hcnJheSc7XG5pbXBvcnQgeyBjbGFzc1RvUGxhaW4sIHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3RvYXN0L3RvYXN0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVc2VyRXZlbnRTZXR0aW5nU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPFVzZXJFdmVudFNldHRpbmdCYXNlLCBVc2VyRXZlbnRTZXR0aW5nPiB7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBVc2VyRXZlbnRTZXR0aW5nID0gVXNlckV2ZW50U2V0dGluZztcbiAgdXJsID0gJ3VzZXItZXZlbnQtc2V0dGluZ3MnO1xuICBpc0h5ZHJhID0gdHJ1ZTtcblxuICAvKipcbiAgICogU2VuZCBiYXRjaCB0byBhZGQvdXBkYXRlZCBzZXR0aW5nc1xuICAgKi9cbiAgc2F2ZUJhdGNoKHNldHRpbmdzOiBVc2VyRXZlbnRTZXR0aW5nW10pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAvLyBiYXRjaCB3aXRoIHBvc3QvcHV0IHJlcXVlc3RzIGJhc2VkIG9uIHNldHRpbmcgaWRcbiAgICBjb25zdCBiYXRjaDogT2JzZXJ2YWJsZTxvYmplY3Q+W10gPSBzZXR0aW5ncy5tYXAoKHNldHRpbmc6IFVzZXJFdmVudFNldHRpbmcpID0+IHtcbiAgICAgIHNldHRpbmcuaXNVcGRhdGluZyA9IHRydWU7XG5cbiAgICAgIGlmIChzZXR0aW5nLmlkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9LyR7c2V0dGluZy5pZH1gLCBjbGFzc1RvUGxhaW4oc2V0dGluZykpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH1gLCBjbGFzc1RvUGxhaW4oc2V0dGluZykpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZvcmtKb2luKGJhdGNoKS5waXBlKFxuICAgICAgbWFwKChldmVudFNldHRpbmdzOiBVc2VyRXZlbnRTZXR0aW5nW10pID0+IHtcbiAgICAgICAgZXZlbnRTZXR0aW5ncy5mb3JFYWNoKChldmVudFNldHRpbmc6IFVzZXJFdmVudFNldHRpbmcpID0+IHtcbiAgICAgICAgICAvLyBnZXQgc2V0dGluZyBmcm9tIGNhY2hlIGJ5IHNhdmVkIHNldHRpbmcgaWRcbiAgICAgICAgICBjb25zdCBjYWNoZWRTZXR0aW5nOiBVc2VyRXZlbnRTZXR0aW5nID0gdGhpcy5jYWNoZS5maW5kKChzZXR0aW5nOiBVc2VyRXZlbnRTZXR0aW5nKSA9PiBzZXR0aW5nLmlkID09PSBldmVudFNldHRpbmcuaWQpO1xuXG4gICAgICAgICAgaWYgKGNhY2hlZFNldHRpbmcpIHtcbiAgICAgICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgZXZlbnRTZXR0aW5nKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jYWNoZS5wdXNoKHBsYWluVG9DbGFzcyhVc2VyRXZlbnRTZXR0aW5nLCBldmVudFNldHRpbmcpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC1zZXR0aW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC91c2VyL3VzZXItZXZlbnQtc2V0dGluZy91c2VyLWV2ZW50LXNldHRpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRXBGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQWMsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFLL0QsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFdBQW1EO0lBSGhHOztRQUlFLGVBQVUsR0FBNEIsZ0JBQWdCLENBQUM7UUFDdkQsUUFBRyxHQUFHLHFCQUFxQixDQUFDO1FBQzVCLFlBQU8sR0FBRyxJQUFJLENBQUM7S0FrQ2hCO0lBaENDOztPQUVHO0lBQ0gsU0FBUyxDQUFDLFFBQTRCO1FBQ3BDLG1EQUFtRDtRQUNuRCxNQUFNLEtBQUssR0FBeUIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQXlCLEVBQUUsRUFBRTtZQUM3RSxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUUxQixJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUU7Z0JBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ3BHO1lBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN4RixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDekIsR0FBRyxDQUFDLENBQUMsYUFBaUMsRUFBRSxFQUFFO1lBQ3hDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUE4QixFQUFFLEVBQUU7Z0JBQ3ZELDZDQUE2QztnQkFDN0MsTUFBTSxhQUFhLEdBQXFCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBeUIsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBRXZILElBQUksYUFBYSxFQUFFO29CQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztpQkFDbkM7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7aUJBQy9EO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O29IQXBDVSx1QkFBdUI7d0hBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVc2VyRXZlbnRTZXR0aW5nIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3VzZXItZXZlbnQvdXNlci1ldmVudC1zZXR0aW5nJztcbmltcG9ydCB7IFVzZXJFdmVudFNldHRpbmcgYXMgVXNlckV2ZW50U2V0dGluZ0Jhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9Nb2RlbHMvdXNlci91c2VyLWV2ZW50LXNldHRpbmcnO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZXN0L3Jlc3Qtb2xkLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHJlcGxhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgY2xhc3NUb1BsYWluLCBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJFdmVudFNldHRpbmdTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8VXNlckV2ZW50U2V0dGluZ0Jhc2UsIFVzZXJFdmVudFNldHRpbmc+IHtcbiAgbW9kZWxDbGFzczogdHlwZW9mIFVzZXJFdmVudFNldHRpbmcgPSBVc2VyRXZlbnRTZXR0aW5nO1xuICB1cmwgPSAndXNlci1ldmVudC1zZXR0aW5ncyc7XG4gIGlzSHlkcmEgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTZW5kIGJhdGNoIHRvIGFkZC91cGRhdGVkIHNldHRpbmdzXG4gICAqL1xuICBzYXZlQmF0Y2goc2V0dGluZ3M6IFVzZXJFdmVudFNldHRpbmdbXSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIC8vIGJhdGNoIHdpdGggcG9zdC9wdXQgcmVxdWVzdHMgYmFzZWQgb24gc2V0dGluZyBpZFxuICAgIGNvbnN0IGJhdGNoOiBPYnNlcnZhYmxlPG9iamVjdD5bXSA9IHNldHRpbmdzLm1hcCgoc2V0dGluZzogVXNlckV2ZW50U2V0dGluZykgPT4ge1xuICAgICAgc2V0dGluZy5pc1VwZGF0aW5nID0gdHJ1ZTtcblxuICAgICAgaWYgKHNldHRpbmcuaWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHtzZXR0aW5nLmlkfWAsIGNsYXNzVG9QbGFpbihzZXR0aW5nKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGNsYXNzVG9QbGFpbihzZXR0aW5nKSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZm9ya0pvaW4oYmF0Y2gpLnBpcGUoXG4gICAgICBtYXAoKGV2ZW50U2V0dGluZ3M6IFVzZXJFdmVudFNldHRpbmdbXSkgPT4ge1xuICAgICAgICBldmVudFNldHRpbmdzLmZvckVhY2goKGV2ZW50U2V0dGluZzogVXNlckV2ZW50U2V0dGluZykgPT4ge1xuICAgICAgICAgIC8vIGdldCBzZXR0aW5nIGZyb20gY2FjaGUgYnkgc2F2ZWQgc2V0dGluZyBpZFxuICAgICAgICAgIGNvbnN0IGNhY2hlZFNldHRpbmc6IFVzZXJFdmVudFNldHRpbmcgPSB0aGlzLmNhY2hlLmZpbmQoKHNldHRpbmc6IFVzZXJFdmVudFNldHRpbmcpID0+IHNldHRpbmcuaWQgPT09IGV2ZW50U2V0dGluZy5pZCk7XG5cbiAgICAgICAgICBpZiAoY2FjaGVkU2V0dGluZykge1xuICAgICAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCBldmVudFNldHRpbmcpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLnB1c2gocGxhaW5Ub0NsYXNzKFVzZXJFdmVudFNldHRpbmcsIGV2ZW50U2V0dGluZykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,160 +1,73 @@
1
1
  import { Inject, Injectable } from '@angular/core';
2
- import { HttpParams } from '@angular/common/http';
3
- import { ReplaySubject, of } from 'rxjs';
4
- import { AppEvent, AppEventTypeEnum, User, } from '../../../models';
2
+ import { AppEventTypeEnum, User, } from '../../../models';
5
3
  import { map } from 'rxjs/operators';
6
- import { plainToClass } from 'class-transformer';
7
- import clone from 'lodash/clone';
4
+ import { RestService } from '../rest';
5
+ import { Collection } from '../../../collections';
8
6
  import * as i0 from "@angular/core";
9
7
  import * as i1 from "@angular/common/http";
10
- import * as i2 from "../../auth";
11
- import * as i3 from "../../event";
12
- /**
13
- * Service to work with user
14
- */
15
- export class UserService {
16
- constructor(http, jwtService, eventDispatcherService, sseService, environment) {
8
+ import * as i2 from "../../event";
9
+ export class UserService extends RestService {
10
+ constructor(http, eventDispatcherService, environment) {
11
+ super(http, eventDispatcherService, environment);
17
12
  this.http = http;
18
- this.jwtService = jwtService;
19
13
  this.eventDispatcherService = eventDispatcherService;
20
- this.sseService = sseService;
21
14
  this.environment = environment;
22
- this.cacheSubject = new ReplaySubject(1);
23
- this.listenEvents();
24
- }
25
- /**
26
- * never return cache directly to prevent update
27
- */
28
- getCache() {
29
- return clone(this.cache);
15
+ this.modelClass = User;
16
+ this.collectionClass = Collection;
17
+ this.endpointUri = 'users';
18
+ this.isApiPlatform = false;
19
+ this.disabledMethods = ['postBatch', 'putBatch', 'deleteBatch', 'delete'];
30
20
  }
31
21
  listenEvents() {
32
22
  this.listenServiceSubscriptionUpdated();
33
23
  this.listenBasiqConsentUpdated();
34
24
  }
35
- get() {
36
- if (!this.cache) {
37
- this.fetch().subscribe(() => { }, (error) => {
38
- // force logout user (clear localStorage) when get current user return error
39
- if (error.status === 500) {
40
- this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.CURRENT_USER_GET_FAILED, null));
41
- }
42
- });
43
- }
44
- return this.cacheSubject.asObservable();
45
- }
46
- /**
47
- * Get current user
48
- */
49
25
  fetch() {
50
- return this.http.get(`${this.environment.apiV2}/users/current`)
51
- .pipe(map((userBase) => {
52
- const user = plainToClass(User, userBase);
53
- // @TODO Vik remove
54
- localStorage.setItem('userId', user.id.toString());
55
- localStorage.setItem('financialYear', user.financialYear.toString());
56
- this.cache = user;
57
- this.cacheSubject.next(this.cache);
58
- return user;
26
+ return super.fetch(`${this.apiUrl}/current`).pipe(map((users) => {
27
+ localStorage.setItem('userId', this.getCacheFirst().id.toString());
28
+ localStorage.setItem('financialYear', this.getCacheFirst().financialYear.toString());
29
+ return users;
59
30
  }));
60
31
  }
61
- /**
62
- * Register new user
63
- */
64
32
  register(data) {
65
- return this.http.post(`${this.environment.apiV2}/users/registration`, data);
33
+ return this.http.post(`${this.apiUrl}/registration`, data);
66
34
  }
67
- /**
68
- * Update user
69
- */
70
- update(user) {
71
- return this.http.put(`${this.environment.apiV2}/users/${user.id}`, user)
72
- .pipe(map((userBase) => {
73
- this.cache = plainToClass(User, userBase);
74
- this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.USER_UPDATED, null));
75
- this.cacheSubject.next(this.cache);
76
- }));
77
- }
78
- /**
79
- * Change user password
80
- */
81
35
  changePassword(currentPassword, newPassword) {
82
- return this.http.put(`${this.environment.apiV2}/users/password/change`, { currentPassword, newPassword });
36
+ return this.http.put(`${this.apiUrl}/password/change`, { currentPassword, newPassword });
83
37
  }
84
- /**
85
- * Recovery user password
86
- */
87
38
  recoveryPassword(email) {
88
- return this.http.put(`${this.environment.apiV2}/users/password/recovery`, { email });
39
+ return this.http.put(`${this.apiUrl}/password/recovery`, { email });
89
40
  }
90
- /**
91
- * Reset user password
92
- */
93
41
  resetPassword(newPassword, resetToken) {
94
- return this.http.put(`${this.environment.apiV2}/users/password/reset`, { newPassword, resetToken });
42
+ return this.http.put(`${this.apiUrl}/password/reset`, { newPassword, resetToken });
95
43
  }
96
44
  resendConfirmationEmail(email) {
97
- return this.http.post(`${this.environment.apiV2}/users/confirmation/resend`, { email });
45
+ return this.http.post(`${this.apiUrl}/confirmation/resend`, { email });
98
46
  }
99
47
  /**
100
48
  * Confirm registered user
101
49
  */
102
50
  confirm(verificationCode) {
103
- return this.http.post(`${this.environment.apiV2}/users/confirmation`, { verificationCode });
51
+ return this.http.post(`${this.apiUrl}/confirmation`, { verificationCode });
104
52
  }
105
53
  /**
106
54
  * Search existing user
107
55
  */
108
56
  search(email) {
109
- return this.http.get(`${this.environment.apiV2}/users/search?email=${email}`)
110
- .pipe(map((userBase) => plainToClass(User, userBase)));
57
+ return this.http.get(`${this.apiUrl}/search?email=${email}`).pipe(map((userBase) => this.createModelInstance(userBase)));
111
58
  }
112
- /**
113
- * Finish onboarding process
114
- */
115
59
  finishOnboarding(user) {
116
- return this.http.put(`${this.environment.apiV2}/users/status`, user)
117
- .pipe(map(() => {
118
- this.cache = user;
119
- this.cacheSubject.next(this.cache);
120
- }));
60
+ return this.put(user, `${this.apiUrl}/status`);
121
61
  }
122
- /**
123
- * Update user photo
124
- */
125
62
  updatePhoto(photo) {
126
- return this.http.post(`${this.environment.apiV2}/users/photo?_method=PUT`, photo)
127
- .pipe(map((photoUrl) => {
128
- this.cache = plainToClass(User, Object.assign(this.cache, { photo: photoUrl }));
129
- this.cacheSubject.next(this.cache);
130
- }));
131
- }
132
- switchFinancialYear(year) {
133
- return this.http.get(`${this.environment.apiV2}/financial-year/switch`, { params: new HttpParams({ fromString: `financialYear=${year}` }) }).pipe(map(() => {
134
- localStorage.setItem('financialYear', year.toString());
135
- window.location.reload();
63
+ return this.http.post(`${this.apiUrl}/photo?_method=PUT`, photo).pipe(map((photoUrl) => {
64
+ this.setCache([Object.assign(this.cache, { photo: photoUrl })], true);
136
65
  }));
137
66
  }
138
- /**
139
- * clear service cache
140
- */
141
- resetCache() {
142
- this.fetch().subscribe();
143
- }
144
- /**
145
- * @TODO Alex refactor, it's not createBasiq
146
- * Create basiq (if not exist yet) to provide access to basiq api
147
- */
148
67
  createBasiq() {
149
- // no need to create basiqId if already exist
150
- // @TODO Alex (TT-2431): move this check to component or separated method
151
- if (this.cache?.basiqId) {
152
- return of(this.cache.basiqId);
153
- }
154
68
  return this.http.post(`${this.environment.apiV2}/basiq/user`, {})
155
69
  .pipe(map((basiqId) => {
156
- this.cache = plainToClass(User, Object.assign(this.cache, { basiqId }));
157
- this.cacheSubject.next(this.cache);
70
+ this.setCache([Object.assign(this.cache, { basiqId })], true);
158
71
  return basiqId;
159
72
  }));
160
73
  }
@@ -162,40 +75,24 @@ export class UserService {
162
75
  * Update cache when user's service subscription is updated
163
76
  */
164
77
  listenServiceSubscriptionUpdated() {
165
- this.eventDispatcherService.on(AppEventTypeEnum.SERVICE_SUBSCRIPTION_UPDATED).subscribe(() => this.resetCache());
78
+ this.eventDispatcherService.on(AppEventTypeEnum.SERVICE_SUBSCRIPTION_UPDATED).subscribe(() => this.refreshCache());
166
79
  }
167
80
  /**
168
81
  * Update cache when user's basiq consent flag is updated
169
82
  */
170
83
  listenBasiqConsentUpdated() {
171
- this.eventDispatcherService.on(AppEventTypeEnum.BASIQ_CONSENT_UPDATED).subscribe(() => this.resetCache());
172
- }
173
- /**
174
- * @TODO remove when the class refactored on RestService
175
- * Subscribe to http events and run callback.
176
- * CSE - Cleint Sent Events
177
- * @param modelClass
178
- * @param methods The list of http methods should be listened for
179
- * @param callback The function to be called when event triggered
180
- */
181
- listenCSE(modelClass, methods, callback) {
182
- callback = callback.bind(this);
183
- methods.forEach((method) => {
184
- this.eventDispatcherService.on2(modelClass.getEventName(method)).subscribe((data) => {
185
- callback(data);
186
- });
187
- });
84
+ this.eventDispatcherService.on(AppEventTypeEnum.BASIQ_CONSENT_UPDATED).subscribe(() => this.refreshCache());
188
85
  }
189
86
  }
190
- UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: UserService, deps: [{ token: i1.HttpClient }, { token: i2.JwtService }, { token: i3.EventDispatcherService }, { token: i3.SseService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
87
+ UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: UserService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
191
88
  UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: UserService, providedIn: 'root' });
192
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: UserService, decorators: [{
193
90
  type: Injectable,
194
91
  args: [{
195
92
  providedIn: 'root'
196
93
  }]
197
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.JwtService }, { type: i3.EventDispatcherService }, { type: i3.SseService }, { type: undefined, decorators: [{
94
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
198
95
  type: Inject,
199
96
  args: ['environment']
200
97
  }] }]; } });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvdXNlci91c2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFpQyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRixPQUFPLEVBQWMsYUFBYSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyRCxPQUFPLEVBQUMsUUFBUSxFQUFFLGdCQUFnQixFQUE4QixJQUFJLEdBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUc5RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFJakM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sV0FBVztJQUl0QixZQUNVLElBQWdCLEVBQ2hCLFVBQXNCLEVBQ3RCLHNCQUE4QyxFQUM5QyxVQUFzQixFQUNDLFdBQWdCO1FBSnZDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDQyxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQVBqRCxpQkFBWSxHQUF3QixJQUFJLGFBQWEsQ0FBTyxDQUFDLENBQUMsQ0FBQztRQVM3RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixD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RyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDTyxTQUFTLENBQUMsVUFBa0MsRUFBRSxPQUFxQixFQUFFLFFBQWtCO1FBQy9GLFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRS9CLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFrQixFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBdUIsRUFBRSxFQUFFO2dCQUNyRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7O3dHQTVOVSxXQUFXLHNJQVNaLGFBQWE7NEdBVFosV0FBVyxjQUZWLE1BQU07MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVVJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVXNlciBhcyBVc2VyQmFzZSB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscy91c2VyL3VzZXInO1xuaW1wb3J0IHtBcHBFdmVudCwgQXBwRXZlbnRUeXBlRW51bSwgRGVwcmVjaWF0aW9uLCBQcm9wZXJ0eVNhbGUsIFVzZXIsfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSwgU3NlU2VydmljZSB9IGZyb20gJy4uLy4uL2V2ZW50JztcbmltcG9ydCB7IEp3dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hdXRoJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgY2xvbmUgZnJvbSAnbG9kYXNoL2Nsb25lJztcbmltcG9ydCB7T2JzZXJ2YWJsZU1vZGVsfSBmcm9tICcuLi8uLi8uLi9kYi9Nb2RlbHMnO1xuaW1wb3J0IHtIdHRwTWV0aG9kfSBmcm9tICcuLi9yZXN0JztcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIHdvcmsgd2l0aCB1c2VyXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJTZXJ2aWNlIGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICBjYWNoZTogVXNlcjtcbiAgY2FjaGVTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PFVzZXI+ID0gbmV3IFJlcGxheVN1YmplY3Q8VXNlcj4oMSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgand0U2VydmljZTogSnd0U2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzc2VTZXJ2aWNlOiBTc2VTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogbmV2ZXIgcmV0dXJuIGNhY2hlIGRpcmVjdGx5IHRvIHByZXZlbnQgdXBkYXRlXG4gICAqL1xuICBnZXRDYWNoZSgpOiBVc2VyIHtcbiAgICByZXR1cm4gY2xvbmUodGhpcy5jYWNoZSk7XG4gIH1cblxuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5TZXJ2aWNlU3Vic2NyaXB0aW9uVXBkYXRlZCgpO1xuICAgIHRoaXMubGlzdGVuQmFzaXFDb25zZW50VXBkYXRlZCgpO1xuICB9XG5cbiAgZ2V0KCk6IE9ic2VydmFibGU8VXNlcj4ge1xuICAgIGlmICghdGhpcy5jYWNoZSkge1xuICAgICAgdGhpcy5mZXRjaCgpLnN1YnNjcmliZSgoKSA9PiB7fSwgKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAvLyBmb3JjZSBsb2dvdXQgdXNlciAoY2xlYXIgbG9jYWxTdG9yYWdlKSB3aGVuIGdldCBjdXJyZW50IHVzZXIgcmV0dXJuIGVycm9yXG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDUwMCkge1xuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5DVVJSRU5UX1VTRVJfR0VUX0ZBSUxFRCwgbnVsbCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jYWNoZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGN1cnJlbnQgdXNlclxuICAgKi9cbiAgZmV0Y2goKTogT2JzZXJ2YWJsZTxVc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvY3VycmVudGApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh1c2VyQmFzZTogVXNlckJhc2UpID0+IHtcbiAgICAgICAgICBjb25zdCB1c2VyOiBVc2VyID0gcGxhaW5Ub0NsYXNzKFVzZXIsIHVzZXJCYXNlKTtcblxuICAgICAgICAgIC8vIEBUT0RPIFZpayByZW1vdmVcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndXNlcklkJywgdXNlci5pZC50b1N0cmluZygpKTtcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZmluYW5jaWFsWWVhcicsIHVzZXIuZmluYW5jaWFsWWVhci50b1N0cmluZygpKTtcblxuICAgICAgICAgIHRoaXMuY2FjaGUgPSB1c2VyO1xuICAgICAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG5cbiAgICAgICAgICByZXR1cm4gdXNlcjtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgbmV3IHVzZXJcbiAgICovXG4gIHJlZ2lzdGVyKGRhdGE6IG9iamVjdCk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3VzZXJzL3JlZ2lzdHJhdGlvbmAsIGRhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB1c2VyXG4gICAqL1xuICB1cGRhdGUodXNlcjogVXNlcik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3VzZXJzLyR7dXNlci5pZH1gLCB1c2VyKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodXNlckJhc2U6IFVzZXJCYXNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHBsYWluVG9DbGFzcyhVc2VyLCB1c2VyQmFzZSk7XG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLlVTRVJfVVBEQVRFRCwgbnVsbCkpO1xuICAgICAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSB1c2VyIHBhc3N3b3JkXG4gICAqL1xuICBjaGFuZ2VQYXNzd29yZChjdXJyZW50UGFzc3dvcmQ6IHN0cmluZywgbmV3UGFzc3dvcmQ6IHN0cmluZyk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvcGFzc3dvcmQvY2hhbmdlYCwge2N1cnJlbnRQYXNzd29yZCwgbmV3UGFzc3dvcmR9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNvdmVyeSB1c2VyIHBhc3N3b3JkXG4gICAqL1xuICByZWNvdmVyeVBhc3N3b3JkKGVtYWlsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3VzZXJzL3Bhc3N3b3JkL3JlY292ZXJ5YCwge2VtYWlsfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdXNlciBwYXNzd29yZFxuICAgKi9cbiAgcmVzZXRQYXNzd29yZChuZXdQYXNzd29yZDogc3RyaW5nLCByZXNldFRva2VuOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3VzZXJzL3Bhc3N3b3JkL3Jlc2V0YCwge25ld1Bhc3N3b3JkLCByZXNldFRva2VufSk7XG4gIH1cblxuICByZXNlbmRDb25maXJtYXRpb25FbWFpbChlbWFpbDogc3RyaW5nKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvY29uZmlybWF0aW9uL3Jlc2VuZGAsIHtlbWFpbH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbmZpcm0gcmVnaXN0ZXJlZCB1c2VyXG4gICAqL1xuICBjb25maXJtKHZlcmlmaWNhdGlvbkNvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3VzZXJzL2NvbmZpcm1hdGlvbmAsIHt2ZXJpZmljYXRpb25Db2RlfSk7XG4gIH1cblxuICAvKipcbiAgICogU2VhcmNoIGV4aXN0aW5nIHVzZXJcbiAgICovXG4gIHNlYXJjaChlbWFpbDogc3RyaW5nKTogT2JzZXJ2YWJsZTxVc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvc2VhcmNoP2VtYWlsPSR7ZW1haWx9YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHVzZXJCYXNlOiBVc2VyQmFzZSkgPT4gcGxhaW5Ub0NsYXNzKFVzZXIsIHVzZXJCYXNlKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRmluaXNoIG9uYm9hcmRpbmcgcHJvY2Vzc1xuICAgKi9cbiAgZmluaXNoT25ib2FyZGluZyh1c2VyOiBVc2VyKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvc3RhdHVzYCwgdXNlcilcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSB1c2VyO1xuICAgICAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB1c2VyIHBob3RvXG4gICAqL1xuICB1cGRhdGVQaG90byhwaG90bzogRm9ybURhdGEpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvcGhvdG8/X21ldGhvZD1QVVRgLCBwaG90bylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHBob3RvVXJsOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gcGxhaW5Ub0NsYXNzKFVzZXIsIE9iamVjdC5hc3NpZ24odGhpcy5jYWNoZSwge3Bob3RvOiBwaG90b1VybH0pKTtcbiAgICAgICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRoaXMuY2FjaGUpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHN3aXRjaEZpbmFuY2lhbFllYXIoeWVhcjogbnVtYmVyKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICBgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9maW5hbmNpYWwteWVhci9zd2l0Y2hgLFxuICAgICAge3BhcmFtczogbmV3IEh0dHBQYXJhbXMoeyBmcm9tU3RyaW5nOiBgZmluYW5jaWFsWWVhcj0ke3llYXJ9YCB9KX1cbiAgICApLnBpcGUoXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZmluYW5jaWFsWWVhcicsIHllYXIudG9TdHJpbmcoKSk7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjbGVhciBzZXJ2aWNlIGNhY2hlXG4gICAqL1xuICByZXNldENhY2hlKCk6IHZvaWQge1xuICAgIHRoaXMuZmV0Y2goKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBBbGV4IHJlZmFjdG9yLCBpdCdzIG5vdCBjcmVhdGVCYXNpcVxuICAgKiBDcmVhdGUgYmFzaXEgKGlmIG5vdCBleGlzdCB5ZXQpIHRvIHByb3ZpZGUgYWNjZXNzIHRvIGJhc2lxIGFwaVxuICAgKi9cbiAgY3JlYXRlQmFzaXEoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAvLyBubyBuZWVkIHRvIGNyZWF0ZSBiYXNpcUlkIGlmIGFscmVhZHkgZXhpc3RcbiAgICAvLyBAVE9ETyBBbGV4IChUVC0yNDMxKTogbW92ZSB0aGlzIGNoZWNrIHRvIGNvbXBvbmVudCBvciBzZXBhcmF0ZWQgbWV0aG9kXG4gICAgaWYgKHRoaXMuY2FjaGU/LmJhc2lxSWQpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLmNhY2hlLmJhc2lxSWQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9iYXNpcS91c2VyYCwge30pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChiYXNpcUlkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gcGxhaW5Ub0NsYXNzKFVzZXIsIE9iamVjdC5hc3NpZ24odGhpcy5jYWNoZSwge2Jhc2lxSWR9KSk7XG4gICAgICAgICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlKTtcblxuICAgICAgICAgIHJldHVybiBiYXNpcUlkO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgY2FjaGUgd2hlbiB1c2VyJ3Mgc2VydmljZSBzdWJzY3JpcHRpb24gaXMgdXBkYXRlZFxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5TZXJ2aWNlU3Vic2NyaXB0aW9uVXBkYXRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5TRVJWSUNFX1NVQlNDUklQVElPTl9VUERBVEVEKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZXNldENhY2hlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjYWNoZSB3aGVuIHVzZXIncyBiYXNpcSBjb25zZW50IGZsYWcgaXMgdXBkYXRlZFxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5CYXNpcUNvbnNlbnRVcGRhdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLkJBU0lRX0NPTlNFTlRfVVBEQVRFRCkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVzZXRDYWNoZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyByZW1vdmUgd2hlbiB0aGUgY2xhc3MgcmVmYWN0b3JlZCBvbiBSZXN0U2VydmljZVxuICAgKiBTdWJzY3JpYmUgdG8gaHR0cCBldmVudHMgYW5kIHJ1biBjYWxsYmFjay5cbiAgICogQ1NFIC0gQ2xlaW50IFNlbnQgRXZlbnRzXG4gICAqIEBwYXJhbSBtb2RlbENsYXNzXG4gICAqIEBwYXJhbSBtZXRob2RzIFRoZSBsaXN0IG9mIGh0dHAgbWV0aG9kcyBzaG91bGQgYmUgbGlzdGVuZWQgZm9yXG4gICAqIEBwYXJhbSBjYWxsYmFjayBUaGUgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gZXZlbnQgdHJpZ2dlcmVkXG4gICAqL1xuICBwcm90ZWN0ZWQgbGlzdGVuQ1NFKG1vZGVsQ2xhc3M6IHR5cGVvZiBPYnNlcnZhYmxlTW9kZWwsIG1ldGhvZHM6IEh0dHBNZXRob2RbXSwgY2FsbGJhY2s6IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgY2FsbGJhY2sgPSBjYWxsYmFjay5iaW5kKHRoaXMpO1xuXG4gICAgbWV0aG9kcy5mb3JFYWNoKChtZXRob2Q6IEh0dHBNZXRob2QpID0+IHtcbiAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbjIobW9kZWxDbGFzcy5nZXRFdmVudE5hbWUobWV0aG9kKSkuc3Vic2NyaWJlKChkYXRhOiBPYnNlcnZhYmxlTW9kZWxbXSkgPT4ge1xuICAgICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICAgIH0pO1xuICAgIH0pXG4gIH1cbn1cbiJdfQ==
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvdXNlci91c2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLElBQUksR0FBRyxNQUFNLGlCQUFpQixDQUFDO0FBRTFELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQTBCLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFLbEQsTUFBTSxPQUFPLFdBQVksU0FBUSxXQUE2QztJQU81RSxZQUNZLElBQWdCLEVBQ2hCLHNCQUE4QyxFQUN2QixXQUFnQjtRQUVqRCxLQUFLLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBSnZDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQVRuRCxlQUFVLEdBQWdCLElBQUksQ0FBQztRQUMvQixvQkFBZSxHQUFzQixVQUFVLENBQUM7UUFDaEQsZ0JBQVcsR0FBRyxPQUFPLENBQUM7UUFDdEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsb0JBQWUsR0FBaUIsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQVFuRixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxL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Q0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxhQUFhLEVBQUUsRUFBRSxDQUFDO2FBQzlELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxPQUFlLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRTlELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQ0FBZ0M7UUFDdEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNySCxDQUFDO0lBRUQ7O09BRUc7SUFDSyx5QkFBeUI7UUFDL0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUM5RyxDQUFDOzt3R0FwR1UsV0FBVyxrRkFVWixhQUFhOzRHQVZaLFdBQVcsY0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFXSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVc2VyIGFzIFVzZXJCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzL3VzZXIvdXNlcic7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtLCBVc2VyLCB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZXZlbnQnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IEh0dHBNZXRob2QsIFJlc3RNZXRob2QsIFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzdCc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVc2VyU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPFVzZXJCYXNlLCBVc2VyLCBDb2xsZWN0aW9uPFVzZXI+PiB7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBVc2VyID0gVXNlcjtcbiAgY29sbGVjdGlvbkNsYXNzOiB0eXBlb2YgQ29sbGVjdGlvbiA9IENvbGxlY3Rpb247XG4gIGVuZHBvaW50VXJpID0gJ3VzZXJzJztcbiAgaXNBcGlQbGF0Zm9ybSA9IGZhbHNlO1xuICBkaXNhYmxlZE1ldGhvZHM6IFJlc3RNZXRob2RbXSA9IFsncG9zdEJhdGNoJywgJ3B1dEJhdGNoJywgJ2RlbGV0ZUJhdGNoJywgJ2RlbGV0ZSddO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnlcbiAgKSB7XG4gICAgc3VwZXIoaHR0cCwgZXZlbnREaXNwYXRjaGVyU2VydmljZSwgZW52aXJvbm1lbnQpO1xuICB9XG5cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuU2VydmljZVN1YnNjcmlwdGlvblVwZGF0ZWQoKTtcbiAgICB0aGlzLmxpc3RlbkJhc2lxQ29uc2VudFVwZGF0ZWQoKTtcbiAgfVxuXG4gIGZldGNoKCk6IE9ic2VydmFibGU8Q29sbGVjdGlvbjxVc2VyPj4ge1xuICAgIHJldHVybiBzdXBlci5mZXRjaChgJHt0aGlzLmFwaVVybH0vY3VycmVudGApLnBpcGUobWFwKCh1c2VycykgPT4ge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3VzZXJJZCcsIHRoaXMuZ2V0Q2FjaGVGaXJzdCgpLmlkLnRvU3RyaW5nKCkpO1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2ZpbmFuY2lhbFllYXInLCB0aGlzLmdldENhY2hlRmlyc3QoKS5maW5hbmNpYWxZZWFyLnRvU3RyaW5nKCkpO1xuXG4gICAgICByZXR1cm4gdXNlcnM7XG4gICAgfSkpO1xuICB9XG5cbiAgcmVnaXN0ZXIoZGF0YTogb2JqZWN0KTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hcGlVcmx9L3JlZ2lzdHJhdGlvbmAsIGRhdGEpO1xuICB9XG5cbiAgY2hhbmdlUGFzc3dvcmQoY3VycmVudFBhc3N3b3JkOiBzdHJpbmcsIG5ld1Bhc3N3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuYXBpVXJsfS9wYXNzd29yZC9jaGFuZ2VgLCB7IGN1cnJlbnRQYXNzd29yZCwgbmV3UGFzc3dvcmQgfSk7XG4gIH1cblxuICByZWNvdmVyeVBhc3N3b3JkKGVtYWlsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuYXBpVXJsfS9wYXNzd29yZC9yZWNvdmVyeWAsIHsgZW1haWwgfSk7XG4gIH1cblxuICByZXNldFBhc3N3b3JkKG5ld1Bhc3N3b3JkOiBzdHJpbmcsIHJlc2V0VG9rZW46IHN0cmluZyk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5hcGlVcmx9L3Bhc3N3b3JkL3Jlc2V0YCwgeyBuZXdQYXNzd29yZCwgcmVzZXRUb2tlbiB9KTtcbiAgfVxuXG4gIHJlc2VuZENvbmZpcm1hdGlvbkVtYWlsKGVtYWlsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmFwaVVybH0vY29uZmlybWF0aW9uL3Jlc2VuZGAsIHsgZW1haWwgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlybSByZWdpc3RlcmVkIHVzZXJcbiAgICovXG4gIGNvbmZpcm0odmVyaWZpY2F0aW9uQ29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hcGlVcmx9L2NvbmZpcm1hdGlvbmAsIHsgdmVyaWZpY2F0aW9uQ29kZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWFyY2ggZXhpc3RpbmcgdXNlclxuICAgKi9cbiAgc2VhcmNoKGVtYWlsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXI+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFwaVVybH0vc2VhcmNoP2VtYWlsPSR7ZW1haWx9YCkucGlwZShcbiAgICAgIG1hcCgodXNlckJhc2U6IFVzZXJCYXNlKSA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UodXNlckJhc2UpKVxuICAgICk7XG4gIH1cblxuICBmaW5pc2hPbmJvYXJkaW5nKHVzZXI6IFVzZXIpOiBPYnNlcnZhYmxlPFVzZXI+IHtcbiAgICByZXR1cm4gdGhpcy5wdXQodXNlciwgYCR7dGhpcy5hcGlVcmx9L3N0YXR1c2ApO1xuICB9XG5cbiAgdXBkYXRlUGhvdG8ocGhvdG86IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXBpVXJsfS9waG90bz9fbWV0aG9kPVBVVGAsIHBob3RvKS5waXBlKFxuICAgICAgbWFwKChwaG90b1VybDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0Q2FjaGUoW09iamVjdC5hc3NpZ24odGhpcy5jYWNoZSwgeyBwaG90bzogcGhvdG9VcmwgfSldLCB0cnVlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNyZWF0ZUJhc2lxKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2Jhc2lxL3VzZXJgLCB7fSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGJhc2lxSWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0Q2FjaGUoW09iamVjdC5hc3NpZ24odGhpcy5jYWNoZSwgeyBiYXNpcUlkIH0pXSwgdHJ1ZSk7XG5cbiAgICAgICAgICByZXR1cm4gYmFzaXFJZDtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGNhY2hlIHdoZW4gdXNlcidzIHNlcnZpY2Ugc3Vic2NyaXB0aW9uIGlzIHVwZGF0ZWRcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuU2VydmljZVN1YnNjcmlwdGlvblVwZGF0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uU0VSVklDRV9TVUJTQ1JJUFRJT05fVVBEQVRFRCkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVmcmVzaENhY2hlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjYWNoZSB3aGVuIHVzZXIncyBiYXNpcSBjb25zZW50IGZsYWcgaXMgdXBkYXRlZFxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5CYXNpcUNvbnNlbnRVcGRhdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLkJBU0lRX0NPTlNFTlRfVVBEQVRFRCkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVmcmVzaENhY2hlKCkpO1xuICB9XG59XG4iXX0=