@myclub_se/data-access 2.15.2 → 3.0.1

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 (771) hide show
  1. package/{esm2020 → esm2022}/index.mjs +2 -1
  2. package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar-application-time.mjs +1 -1
  3. package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar-slot-session.mjs +1 -1
  4. package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar.mjs +1 -1
  5. package/esm2022/lib/api-models/api-feature-flags.mjs +2 -0
  6. package/esm2022/lib/api-models/api-invoice/api-payment-attempt-create.mjs +11 -0
  7. package/esm2022/lib/api-models/index.mjs +57 -0
  8. package/esm2022/lib/authentication/authentication.interceptor.mjs +101 -0
  9. package/esm2022/lib/authentication/authentication.service.mjs +109 -0
  10. package/esm2022/lib/authentication/guards/authenticated.guard.mjs +38 -0
  11. package/esm2022/lib/authentication/guards/handle-grant-token.guard.mjs +31 -0
  12. package/esm2022/lib/data-access.module.mjs +39 -0
  13. package/esm2022/lib/maintenance/maintenance.interceptor.mjs +30 -0
  14. package/esm2022/lib/models/activity-extra-member.mjs +19 -0
  15. package/esm2022/lib/models/activity-invite.mjs +35 -0
  16. package/esm2022/lib/models/activity-location-group.mjs +27 -0
  17. package/esm2022/lib/models/activity-location-part.mjs +16 -0
  18. package/esm2022/lib/models/activity-location-tag.mjs +22 -0
  19. package/esm2022/lib/models/activity-location.mjs +46 -0
  20. package/esm2022/lib/models/activity-participant.mjs +19 -0
  21. package/esm2022/lib/models/activity-settings.mjs +27 -0
  22. package/esm2022/lib/models/activity-type.mjs +34 -0
  23. package/esm2022/lib/models/activity.mjs +137 -0
  24. package/esm2022/lib/models/auth/auth-member.mjs +13 -0
  25. package/{esm2020 → esm2022}/lib/models/auth/auth-section.mjs +3 -1
  26. package/{esm2020 → esm2022}/lib/models/auth/auth-team-section.mjs +3 -1
  27. package/esm2022/lib/models/auth/auth-team.mjs +13 -0
  28. package/esm2022/lib/models/auth/auth.mjs +25 -0
  29. package/{esm2020 → esm2022}/lib/models/authentication.mjs +3 -1
  30. package/esm2022/lib/models/bookable-group.mjs +27 -0
  31. package/esm2022/lib/models/bookable-item.mjs +49 -0
  32. package/esm2022/lib/models/bookable-part.mjs +16 -0
  33. package/esm2022/lib/models/bookable-tag.mjs +22 -0
  34. package/esm2022/lib/models/booking-calendar-application-time.mjs +86 -0
  35. package/esm2022/lib/models/booking-calendar-slot-session.mjs +87 -0
  36. package/esm2022/lib/models/booking-calendar-slot.mjs +79 -0
  37. package/esm2022/lib/models/booking-calendar.mjs +74 -0
  38. package/esm2022/lib/models/booking-settings.mjs +29 -0
  39. package/esm2022/lib/models/booking-slot-filter.mjs +72 -0
  40. package/esm2022/lib/models/calendar-event.mjs +35 -0
  41. package/esm2022/lib/models/calendar.mjs +15 -0
  42. package/esm2022/lib/models/card/card-deal.mjs +15 -0
  43. package/esm2022/lib/models/card/card-logo-urls.mjs +21 -0
  44. package/esm2022/lib/models/card/card-logo.mjs +11 -0
  45. package/esm2022/lib/models/card/card-member-ticket.mjs +17 -0
  46. package/esm2022/lib/models/card/card-theme.mjs +15 -0
  47. package/esm2022/lib/models/card/card-ticket-location.mjs +13 -0
  48. package/esm2022/lib/models/card/card-ticket.mjs +37 -0
  49. package/{esm2020 → esm2022}/lib/models/card/card.mjs +9 -1
  50. package/esm2022/lib/models/card/home-team.mjs +11 -0
  51. package/esm2022/lib/models/card/member-card.mjs +23 -0
  52. package/esm2022/lib/models/card/search-member-card.mjs +13 -0
  53. package/esm2022/lib/models/club-image.mjs +31 -0
  54. package/{esm2020 → esm2022}/lib/models/club-section.mjs +3 -1
  55. package/{esm2020 → esm2022}/lib/models/club.mjs +3 -1
  56. package/esm2022/lib/models/collection.mjs +19 -0
  57. package/esm2022/lib/models/contact.mjs +61 -0
  58. package/esm2022/lib/models/directory.mjs +38 -0
  59. package/esm2022/lib/models/email.mjs +11 -0
  60. package/esm2022/lib/models/event.mjs +47 -0
  61. package/{esm2020 → esm2022}/lib/models/external-link.mjs +3 -1
  62. package/esm2022/lib/models/feature-flags.mjs +14 -0
  63. package/esm2022/lib/models/file-object.mjs +23 -0
  64. package/esm2022/lib/models/general-image.mjs +11 -0
  65. package/esm2022/lib/models/group-role.mjs +17 -0
  66. package/esm2022/lib/models/image-urls.mjs +15 -0
  67. package/esm2022/lib/models/index.mjs +64 -0
  68. package/esm2022/lib/models/invoice/member-fee.mjs +13 -0
  69. package/esm2022/lib/models/invoice/member-invoice-row.mjs +31 -0
  70. package/esm2022/lib/models/invoice/member-invoice.mjs +45 -0
  71. package/esm2022/lib/models/invoice/payment-attempt.mjs +21 -0
  72. package/esm2022/lib/models/invoice/payment-types/credit-card.mjs +27 -0
  73. package/esm2022/lib/models/invoice/payment-types/giro.mjs +17 -0
  74. package/esm2022/lib/models/invoice/payment-types/swish.mjs +31 -0
  75. package/esm2022/lib/models/invoice/payment-types/zimpler.mjs +19 -0
  76. package/esm2022/lib/models/invoice/search-member-invoice.mjs +26 -0
  77. package/{esm2020 → esm2022}/lib/models/invoice/swish-qr-code.mjs +2 -1
  78. package/esm2022/lib/models/invoice/unpaid-member-invoice.mjs +13 -0
  79. package/esm2022/lib/models/member/member-attribute.mjs +44 -0
  80. package/esm2022/lib/models/member/member-contact.mjs +26 -0
  81. package/esm2022/lib/models/member/member-function.mjs +24 -0
  82. package/esm2022/lib/models/member/member-validation-settings.mjs +21 -0
  83. package/esm2022/lib/models/member/member.mjs +101 -0
  84. package/{esm2020 → esm2022}/lib/models/member/other-member-field.mjs +4 -1
  85. package/esm2022/lib/models/member/other-member.mjs +21 -0
  86. package/esm2022/lib/models/member/search-member.mjs +35 -0
  87. package/esm2022/lib/models/member-activity-invite.mjs +42 -0
  88. package/esm2022/lib/models/member-public-form-field-option.mjs +13 -0
  89. package/esm2022/lib/models/member-public-form-field.mjs +27 -0
  90. package/esm2022/lib/models/member-public-form.mjs +55 -0
  91. package/esm2022/lib/models/member-team-through.mjs +23 -0
  92. package/esm2022/lib/models/member-team.mjs +21 -0
  93. package/esm2022/lib/models/member-type.mjs +11 -0
  94. package/esm2022/lib/models/news.mjs +66 -0
  95. package/esm2022/lib/models/open-activity.mjs +117 -0
  96. package/esm2022/lib/models/optional-fee.mjs +16 -0
  97. package/esm2022/lib/models/overbooked-bookable-item.mjs +15 -0
  98. package/esm2022/lib/models/overbooked-location.mjs +15 -0
  99. package/esm2022/lib/models/partner.mjs +13 -0
  100. package/esm2022/lib/models/public-authentication.mjs +9 -0
  101. package/esm2022/lib/models/registration-qr-code.mjs +19 -0
  102. package/esm2022/lib/models/search-club.mjs +23 -0
  103. package/esm2022/lib/models/search-team.mjs +24 -0
  104. package/{esm2020 → esm2022}/lib/models/section.mjs +3 -1
  105. package/esm2022/lib/models/token.mjs +11 -0
  106. package/esm2022/lib/models/user-notification.mjs +21 -0
  107. package/esm2022/lib/models/user.mjs +41 -0
  108. package/esm2022/lib/services/activity.service.mjs +508 -0
  109. package/esm2022/lib/services/api.service.mjs +108 -0
  110. package/esm2022/lib/services/auth.service.mjs +62 -0
  111. package/esm2022/lib/services/bookable.service.mjs +279 -0
  112. package/esm2022/lib/services/booking-calendar.service.mjs +736 -0
  113. package/esm2022/lib/services/club.service.mjs +35 -0
  114. package/esm2022/lib/services/constant.service.mjs +97 -0
  115. package/esm2022/lib/services/email.service.mjs +28 -0
  116. package/esm2022/lib/services/external-link.service.mjs +25 -0
  117. package/esm2022/lib/services/factories/activity-settings-factory.mjs +3 -0
  118. package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-application-time-factory.mjs +2 -2
  119. package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-factory.mjs +2 -2
  120. package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-slot-session-factory.mjs +2 -2
  121. package/esm2022/lib/services/factories/feature-flags-factory.mjs +5 -0
  122. package/esm2022/lib/services/factories/index.mjs +87 -0
  123. package/esm2022/lib/services/factories/member-public-form-factory.mjs +26 -0
  124. package/esm2022/lib/services/factories/payment-attempt-factory.mjs +23 -0
  125. package/esm2022/lib/services/feature-flags.service.mjs +44 -0
  126. package/esm2022/lib/services/file.service.mjs +65 -0
  127. package/esm2022/lib/services/index.mjs +24 -0
  128. package/esm2022/lib/services/invoice/invoice.service.mjs +42 -0
  129. package/esm2022/lib/services/invoice/payment-attempt.service.mjs +52 -0
  130. package/esm2022/lib/services/maintenance-mode.service.mjs +20 -0
  131. package/esm2022/lib/services/member-card.service.mjs +104 -0
  132. package/esm2022/lib/services/member-public-form.service.mjs +33 -0
  133. package/esm2022/lib/services/member.service.mjs +85 -0
  134. package/esm2022/lib/services/news.service.mjs +94 -0
  135. package/esm2022/lib/services/registration-qr-code.service.mjs +37 -0
  136. package/esm2022/lib/services/section.service.mjs +24 -0
  137. package/esm2022/lib/services/storage.service.mjs +44 -0
  138. package/esm2022/lib/services/team.service.mjs +89 -0
  139. package/esm2022/lib/services/token.service.mjs +58 -0
  140. package/esm2022/lib/services/user-notification.service.mjs +24 -0
  141. package/esm2022/lib/services/user.service.mjs +69 -0
  142. package/esm2022/lib/store/actions/activity.actions.mjs +177 -0
  143. package/esm2022/lib/store/actions/auth.actions.mjs +45 -0
  144. package/esm2022/lib/store/actions/booking.actions.mjs +187 -0
  145. package/esm2022/lib/store/actions/calendar.actions.mjs +77 -0
  146. package/esm2022/lib/store/actions/club-info.actions.mjs +23 -0
  147. package/esm2022/lib/store/actions/constant.actions.mjs +124 -0
  148. package/esm2022/lib/store/actions/email.actions.mjs +19 -0
  149. package/esm2022/lib/store/actions/external-link.actions.mjs +11 -0
  150. package/esm2022/lib/store/actions/file.actions.mjs +41 -0
  151. package/esm2022/lib/store/actions/index.mjs +19 -0
  152. package/esm2022/lib/store/actions/invoice.actions.mjs +75 -0
  153. package/esm2022/lib/store/actions/member-card.actions.mjs +73 -0
  154. package/esm2022/lib/store/actions/member.actions.mjs +69 -0
  155. package/esm2022/lib/store/actions/news.actions.mjs +47 -0
  156. package/esm2022/lib/store/actions/public-form.actions.mjs +17 -0
  157. package/esm2022/lib/store/actions/store.actions.mjs +7 -0
  158. package/esm2022/lib/store/actions/team.actions.mjs +91 -0
  159. package/esm2022/lib/store/actions/token.actions.mjs +53 -0
  160. package/esm2022/lib/store/actions/user.actions.mjs +49 -0
  161. package/esm2022/lib/store/effects/activity.effects.mjs +211 -0
  162. package/esm2022/lib/store/effects/auth.effects.mjs +96 -0
  163. package/esm2022/lib/store/effects/booking.effects.mjs +102 -0
  164. package/esm2022/lib/store/effects/calendar.effects.mjs +84 -0
  165. package/esm2022/lib/store/effects/club-info.effects.mjs +26 -0
  166. package/esm2022/lib/store/effects/constant.effects.mjs +69 -0
  167. package/esm2022/lib/store/effects/data-access.effects.mjs +37 -0
  168. package/esm2022/lib/store/effects/email.effects.mjs +27 -0
  169. package/esm2022/lib/store/effects/external-link.effects.mjs +20 -0
  170. package/esm2022/lib/store/effects/file.effects.mjs +149 -0
  171. package/esm2022/lib/store/effects/index.mjs +2 -0
  172. package/esm2022/lib/store/effects/invoice.effects.mjs +72 -0
  173. package/esm2022/lib/store/effects/member-card.effects.mjs +80 -0
  174. package/esm2022/lib/store/effects/member.effects.mjs +75 -0
  175. package/esm2022/lib/store/effects/mixins/extra-members-mixin.mjs +60 -0
  176. package/esm2022/lib/store/effects/news.effects.mjs +82 -0
  177. package/esm2022/lib/store/effects/public-form.effects.mjs +33 -0
  178. package/esm2022/lib/store/effects/team.effects.mjs +82 -0
  179. package/esm2022/lib/store/effects/token.effects.mjs +81 -0
  180. package/esm2022/lib/store/effects/user.effects.mjs +59 -0
  181. package/esm2022/lib/store/index.mjs +8 -0
  182. package/esm2022/lib/store/interfaces/activate-card-ticket.interface.mjs +2 -0
  183. package/esm2022/lib/store/interfaces/activate-user.interface.mjs +2 -0
  184. package/esm2022/lib/store/interfaces/calendar-activity-locations.interface.mjs +2 -0
  185. package/esm2022/lib/store/interfaces/calendar-activity-types.interface.mjs +2 -0
  186. package/esm2022/lib/store/interfaces/calendar-open-activity-result.interface.mjs +2 -0
  187. package/esm2022/lib/store/interfaces/calendar-public-open-activity-results.interface.mjs +2 -0
  188. package/esm2022/lib/store/interfaces/directory-result.interface.mjs +2 -0
  189. package/esm2022/lib/store/interfaces/email-settings.interface.mjs +2 -0
  190. package/esm2022/lib/store/interfaces/index.mjs +20 -0
  191. package/esm2022/lib/store/interfaces/list-result-interface.mjs +4 -0
  192. package/esm2022/lib/store/interfaces/location.interface.mjs +2 -0
  193. package/esm2022/lib/store/interfaces/member-calendar-event-result.interface.mjs +2 -0
  194. package/esm2022/lib/store/interfaces/member-card-deals.interface.mjs +2 -0
  195. package/esm2022/lib/store/interfaces/member-card-tickets.interface.mjs +2 -0
  196. package/esm2022/lib/store/interfaces/public-activate-card-ticket.interface.mjs +2 -0
  197. package/esm2022/lib/store/interfaces/remove-member-auth.interface.mjs +2 -0
  198. package/esm2022/lib/store/interfaces/remove-team-auth.interface.mjs +2 -0
  199. package/esm2022/lib/store/interfaces/retrieve-result.interface.mjs +4 -0
  200. package/esm2022/lib/store/interfaces/team-activity.interface.mjs +2 -0
  201. package/esm2022/lib/store/interfaces/team-calendar-event-result.interface.mjs +2 -0
  202. package/esm2022/lib/store/operators/ensure-activity.mjs +8 -0
  203. package/esm2022/lib/store/operators/ensure-auths.mjs +18 -0
  204. package/esm2022/lib/store/operators/ensure-calendar-events-loading-done.mjs +23 -0
  205. package/esm2022/lib/store/operators/ensure-constants.mjs +21 -0
  206. package/esm2022/lib/store/operators/ensure-current-auth.mjs +17 -0
  207. package/esm2022/lib/store/operators/ensure-current-user.mjs +16 -0
  208. package/esm2022/lib/store/operators/ensure-loading-done.mjs +24 -0
  209. package/esm2022/lib/store/operators/ensure-open-activities-loading-done.mjs +5 -0
  210. package/esm2022/lib/store/operators/ensure-public-open-activities-loading-done.mjs +5 -0
  211. package/esm2022/lib/store/operators/ensure-updated-data.mjs +10 -0
  212. package/esm2022/lib/store/operators/index.mjs +11 -0
  213. package/esm2022/lib/store/reducers/auth.reducer.mjs +52 -0
  214. package/esm2022/lib/store/reducers/booking.reducers.mjs +79 -0
  215. package/esm2022/lib/store/reducers/calendar.reducer.mjs +449 -0
  216. package/esm2022/lib/store/reducers/club-info.reducer.mjs +9 -0
  217. package/esm2022/lib/store/reducers/constant.reducer.mjs +181 -0
  218. package/esm2022/lib/store/reducers/data-access.reducer.mjs +37 -0
  219. package/esm2022/lib/store/reducers/email.reducer.mjs +21 -0
  220. package/esm2022/lib/store/reducers/external-link.reducer.mjs +6 -0
  221. package/esm2022/lib/store/reducers/file.reducer.mjs +118 -0
  222. package/esm2022/lib/store/reducers/index.mjs +2 -0
  223. package/esm2022/lib/store/reducers/invoice.reducer.mjs +29 -0
  224. package/esm2022/lib/store/reducers/member-card.reducer.mjs +33 -0
  225. package/esm2022/lib/store/reducers/member.reducer.mjs +21 -0
  226. package/esm2022/lib/store/reducers/news.reducer.mjs +96 -0
  227. package/esm2022/lib/store/reducers/public-form.reducer.mjs +21 -0
  228. package/esm2022/lib/store/reducers/public.reducer.mjs +109 -0
  229. package/esm2022/lib/store/reducers/reducer-helpers.mjs +61 -0
  230. package/esm2022/lib/store/reducers/team.reducer.mjs +77 -0
  231. package/esm2022/lib/store/reducers/token.reducer.mjs +21 -0
  232. package/esm2022/lib/store/reducers/user.reducer.mjs +18 -0
  233. package/esm2022/lib/store/selectors/auth.selectors.mjs +6 -0
  234. package/esm2022/lib/store/selectors/booking.selectors.mjs +15 -0
  235. package/esm2022/lib/store/selectors/calendar.selectors.mjs +18 -0
  236. package/esm2022/lib/store/selectors/club-info.selectors.mjs +5 -0
  237. package/esm2022/lib/store/selectors/constant.selectors.mjs +38 -0
  238. package/esm2022/lib/store/selectors/email.selectors.mjs +5 -0
  239. package/esm2022/lib/store/selectors/external-links.selectors.mjs +5 -0
  240. package/esm2022/lib/store/selectors/file.selectors.mjs +6 -0
  241. package/esm2022/lib/store/selectors/index.mjs +18 -0
  242. package/esm2022/lib/store/selectors/invoice.selectors.mjs +6 -0
  243. package/esm2022/lib/store/selectors/member-card.selectors.mjs +8 -0
  244. package/esm2022/lib/store/selectors/member.selectors.mjs +10 -0
  245. package/esm2022/lib/store/selectors/news.selectors.mjs +8 -0
  246. package/esm2022/lib/store/selectors/public-form.selectors.mjs +5 -0
  247. package/esm2022/lib/store/selectors/public.selectors.mjs +18 -0
  248. package/esm2022/lib/store/selectors/team.selectors.mjs +12 -0
  249. package/esm2022/lib/store/selectors/token.selectors.mjs +6 -0
  250. package/esm2022/lib/store/selectors/user.selectors.mjs +6 -0
  251. package/esm2022/lib/store/state/auth.state.mjs +5 -0
  252. package/esm2022/lib/store/state/booking.state.mjs +16 -0
  253. package/esm2022/lib/store/state/calendar.state.mjs +17 -0
  254. package/esm2022/lib/store/state/club-info.state.mjs +4 -0
  255. package/esm2022/lib/store/state/constant.state.mjs +21 -0
  256. package/esm2022/lib/store/state/data-access.state.mjs +2 -0
  257. package/esm2022/lib/store/state/email.state.mjs +7 -0
  258. package/esm2022/lib/store/state/external-link.state.mjs +4 -0
  259. package/esm2022/lib/store/state/file.state.mjs +5 -0
  260. package/esm2022/lib/store/state/index.mjs +19 -0
  261. package/esm2022/lib/store/state/invoice.state.mjs +5 -0
  262. package/esm2022/lib/store/state/member-card.state.mjs +7 -0
  263. package/esm2022/lib/store/state/member.state.mjs +10 -0
  264. package/esm2022/lib/store/state/news.state.mjs +7 -0
  265. package/esm2022/lib/store/state/public-form.state.mjs +5 -0
  266. package/esm2022/lib/store/state/public.state.mjs +17 -0
  267. package/esm2022/lib/store/state/team.state.mjs +11 -0
  268. package/esm2022/lib/store/state/token.state.mjs +5 -0
  269. package/esm2022/lib/store/state/user.state.mjs +5 -0
  270. package/fesm2022/myclub_se-data-access.mjs +10118 -0
  271. package/fesm2022/myclub_se-data-access.mjs.map +1 -0
  272. package/index.d.ts +1 -0
  273. package/lib/api-models/api-booking-calendar-application-time.d.ts +3 -0
  274. package/lib/api-models/api-booking-calendar-slot-session.d.ts +3 -0
  275. package/lib/api-models/api-booking-calendar.d.ts +2 -0
  276. package/lib/api-models/api-feature-flags.d.ts +5 -0
  277. package/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-credit-card-data-type.d.ts +1 -1
  278. package/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-swish-data-type.d.ts +1 -1
  279. package/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-zimpler-data-type.d.ts +1 -1
  280. package/lib/api-models/index.d.ts +1 -0
  281. package/lib/authentication/authentication.interceptor.d.ts +12 -7
  282. package/lib/data-access.module.d.ts +3 -1
  283. package/lib/models/activity-settings.d.ts +3 -1
  284. package/lib/models/auth/auth.d.ts +3 -2
  285. package/lib/models/booking-calendar-application-time.d.ts +8 -3
  286. package/lib/models/booking-calendar-slot-session.d.ts +10 -5
  287. package/lib/models/booking-calendar-slot.d.ts +7 -6
  288. package/lib/models/booking-calendar.d.ts +4 -1
  289. package/lib/models/booking-settings.d.ts +5 -4
  290. package/lib/models/booking-slot-filter.d.ts +17 -0
  291. package/lib/models/directory.d.ts +1 -0
  292. package/lib/models/feature-flags.d.ts +7 -0
  293. package/lib/models/index.d.ts +2 -0
  294. package/lib/models/invoice/payment-attempt-data-types/payment-attempt-credit-card-data-type.d.ts +1 -1
  295. package/lib/models/invoice/payment-attempt-data-types/payment-attempt-swish-data-type.d.ts +1 -1
  296. package/lib/models/invoice/payment-attempt-data-types/payment-attempt-zimpler-data-type.d.ts +1 -1
  297. package/lib/services/activity.service.d.ts +55 -52
  298. package/lib/services/bookable.service.d.ts +9 -9
  299. package/lib/services/booking-calendar.service.d.ts +6 -23
  300. package/lib/services/constant.service.d.ts +5 -11
  301. package/lib/services/email.service.d.ts +0 -9
  302. package/lib/services/factories/feature-flags-factory.d.ts +3 -0
  303. package/lib/services/factories/index.d.ts +1 -0
  304. package/lib/services/feature-flags.service.d.ts +13 -0
  305. package/lib/services/index.d.ts +2 -0
  306. package/lib/services/member.service.d.ts +7 -3
  307. package/lib/services/storage.service.d.ts +20 -0
  308. package/lib/store/actions/activity.actions.d.ts +641 -0
  309. package/lib/store/actions/auth.actions.d.ts +83 -0
  310. package/lib/store/actions/booking.actions.d.ts +652 -0
  311. package/lib/store/actions/calendar.actions.d.ts +381 -0
  312. package/lib/store/actions/club-info.actions.d.ts +54 -0
  313. package/lib/store/actions/constant.actions.d.ts +249 -0
  314. package/lib/store/actions/email.actions.d.ts +57 -0
  315. package/lib/store/actions/external-link.actions.d.ts +22 -0
  316. package/lib/store/actions/file.actions.d.ts +169 -0
  317. package/lib/store/actions/index.d.ts +18 -0
  318. package/lib/store/actions/invoice.actions.d.ts +300 -0
  319. package/lib/store/actions/member-card.actions.d.ts +253 -0
  320. package/lib/store/actions/member.actions.d.ts +216 -0
  321. package/lib/store/actions/news.actions.d.ts +164 -0
  322. package/lib/store/actions/public-form.actions.d.ts +46 -0
  323. package/lib/store/actions/store.actions.d.ts +4 -0
  324. package/lib/store/actions/team.actions.d.ts +334 -0
  325. package/lib/store/actions/token.actions.d.ts +151 -0
  326. package/lib/store/actions/user.actions.d.ts +102 -0
  327. package/lib/store/effects/activity.effects.d.ts +152 -0
  328. package/lib/store/effects/auth.effects.d.ts +35 -0
  329. package/lib/store/effects/booking.effects.d.ts +196 -0
  330. package/lib/store/effects/calendar.effects.d.ts +129 -0
  331. package/lib/store/effects/club-info.effects.d.ts +24 -0
  332. package/lib/store/effects/constant.effects.d.ts +96 -0
  333. package/lib/store/effects/data-access.effects.d.ts +18 -0
  334. package/lib/store/effects/email.effects.d.ts +14 -0
  335. package/lib/store/effects/external-link.effects.d.ts +14 -0
  336. package/lib/store/effects/file.effects.d.ts +55 -0
  337. package/lib/store/effects/index.d.ts +1 -0
  338. package/lib/store/effects/invoice.effects.d.ts +80 -0
  339. package/lib/store/effects/member-card.effects.d.ts +69 -0
  340. package/lib/store/effects/member.effects.d.ts +58 -0
  341. package/lib/store/effects/mixins/extra-members-mixin.d.ts +10 -0
  342. package/lib/store/effects/news.effects.d.ts +49 -0
  343. package/lib/store/effects/public-form.effects.d.ts +19 -0
  344. package/lib/store/effects/team.effects.d.ts +80 -0
  345. package/lib/store/effects/token.effects.d.ts +66 -0
  346. package/lib/store/effects/user.effects.d.ts +36 -0
  347. package/lib/store/index.d.ts +7 -0
  348. package/lib/store/interfaces/activate-card-ticket.interface.d.ts +6 -0
  349. package/lib/store/interfaces/activate-user.interface.d.ts +4 -0
  350. package/lib/store/interfaces/calendar-activity-locations.interface.d.ts +7 -0
  351. package/lib/store/interfaces/calendar-activity-types.interface.d.ts +7 -0
  352. package/lib/store/interfaces/calendar-open-activity-result.interface.d.ts +8 -0
  353. package/lib/store/interfaces/calendar-public-open-activity-results.interface.d.ts +7 -0
  354. package/lib/store/interfaces/directory-result.interface.d.ts +5 -0
  355. package/lib/store/interfaces/email-settings.interface.d.ts +5 -0
  356. package/lib/store/interfaces/index.d.ts +19 -0
  357. package/lib/store/interfaces/list-result-interface.d.ts +13 -0
  358. package/lib/store/interfaces/location.interface.d.ts +7 -0
  359. package/lib/store/interfaces/member-calendar-event-result.interface.d.ts +8 -0
  360. package/lib/store/interfaces/member-card-deals.interface.d.ts +5 -0
  361. package/lib/store/interfaces/member-card-tickets.interface.d.ts +5 -0
  362. package/lib/store/interfaces/public-activate-card-ticket.interface.d.ts +6 -0
  363. package/lib/store/interfaces/remove-member-auth.interface.d.ts +4 -0
  364. package/lib/store/interfaces/remove-team-auth.interface.d.ts +4 -0
  365. package/lib/store/interfaces/retrieve-result.interface.d.ts +13 -0
  366. package/lib/store/interfaces/team-activity.interface.d.ts +9 -0
  367. package/lib/store/interfaces/team-calendar-event-result.interface.d.ts +8 -0
  368. package/lib/store/operators/ensure-activity.d.ts +4 -0
  369. package/lib/store/operators/ensure-auths.d.ts +13 -0
  370. package/lib/store/operators/ensure-calendar-events-loading-done.d.ts +19 -0
  371. package/lib/store/operators/ensure-constants.d.ts +12 -0
  372. package/lib/store/operators/ensure-current-auth.d.ts +12 -0
  373. package/lib/store/operators/ensure-current-user.d.ts +11 -0
  374. package/lib/store/operators/ensure-loading-done.d.ts +20 -0
  375. package/lib/store/operators/ensure-open-activities-loading-done.d.ts +3 -0
  376. package/lib/store/operators/ensure-public-open-activities-loading-done.d.ts +3 -0
  377. package/lib/store/operators/ensure-updated-data.d.ts +4 -0
  378. package/lib/store/operators/index.d.ts +10 -0
  379. package/lib/store/reducers/auth.reducer.d.ts +2 -0
  380. package/lib/store/reducers/booking.reducers.d.ts +2 -0
  381. package/lib/store/reducers/calendar.reducer.d.ts +2 -0
  382. package/lib/store/reducers/club-info.reducer.d.ts +2 -0
  383. package/lib/store/reducers/constant.reducer.d.ts +2 -0
  384. package/lib/store/reducers/data-access.reducer.d.ts +3 -0
  385. package/lib/store/reducers/email.reducer.d.ts +2 -0
  386. package/lib/store/reducers/external-link.reducer.d.ts +2 -0
  387. package/lib/store/reducers/file.reducer.d.ts +2 -0
  388. package/lib/store/reducers/index.d.ts +1 -0
  389. package/lib/store/reducers/invoice.reducer.d.ts +2 -0
  390. package/lib/store/reducers/member-card.reducer.d.ts +2 -0
  391. package/lib/store/reducers/member.reducer.d.ts +2 -0
  392. package/lib/store/reducers/news.reducer.d.ts +2 -0
  393. package/lib/store/reducers/public-form.reducer.d.ts +2 -0
  394. package/lib/store/reducers/public.reducer.d.ts +2 -0
  395. package/lib/store/reducers/reducer-helpers.d.ts +8 -0
  396. package/lib/store/reducers/team.reducer.d.ts +2 -0
  397. package/lib/store/reducers/token.reducer.d.ts +2 -0
  398. package/lib/store/reducers/user.reducer.d.ts +2 -0
  399. package/lib/store/selectors/auth.selectors.d.ts +4 -0
  400. package/lib/store/selectors/booking.selectors.d.ts +13 -0
  401. package/lib/store/selectors/calendar.selectors.d.ts +16 -0
  402. package/lib/store/selectors/club-info.selectors.d.ts +3 -0
  403. package/lib/store/selectors/constant.selectors.d.ts +19 -0
  404. package/lib/store/selectors/email.selectors.d.ts +3 -0
  405. package/lib/store/selectors/external-links.selectors.d.ts +3 -0
  406. package/lib/store/selectors/file.selectors.d.ts +4 -0
  407. package/lib/store/selectors/index.d.ts +17 -0
  408. package/lib/store/selectors/invoice.selectors.d.ts +4 -0
  409. package/lib/store/selectors/member-card.selectors.d.ts +6 -0
  410. package/lib/store/selectors/member.selectors.d.ts +8 -0
  411. package/lib/store/selectors/news.selectors.d.ts +6 -0
  412. package/lib/store/selectors/public-form.selectors.d.ts +3 -0
  413. package/lib/store/selectors/public.selectors.d.ts +16 -0
  414. package/lib/store/selectors/team.selectors.d.ts +10 -0
  415. package/lib/store/selectors/token.selectors.d.ts +4 -0
  416. package/lib/store/selectors/user.selectors.d.ts +4 -0
  417. package/lib/store/state/auth.state.d.ts +7 -0
  418. package/lib/store/state/booking.state.d.ts +16 -0
  419. package/lib/store/state/calendar.state.d.ts +19 -0
  420. package/lib/store/state/club-info.state.d.ts +6 -0
  421. package/lib/store/state/constant.state.d.ts +23 -0
  422. package/lib/store/state/data-access.state.d.ts +36 -0
  423. package/lib/store/state/email.state.d.ts +5 -0
  424. package/lib/store/state/external-link.state.d.ts +6 -0
  425. package/lib/store/state/file.state.d.ts +6 -0
  426. package/lib/store/state/index.d.ts +18 -0
  427. package/lib/store/state/invoice.state.d.ts +7 -0
  428. package/lib/store/state/member-card.state.d.ts +9 -0
  429. package/lib/store/state/member.state.d.ts +11 -0
  430. package/lib/store/state/news.state.d.ts +9 -0
  431. package/lib/store/state/public-form.state.d.ts +7 -0
  432. package/lib/store/state/public.state.d.ts +19 -0
  433. package/lib/store/state/team.state.d.ts +13 -0
  434. package/lib/store/state/token.state.d.ts +7 -0
  435. package/lib/store/state/user.state.d.ts +7 -0
  436. package/lib/types/attribute-type.d.ts +1 -1
  437. package/lib/types/booking-calendar-slot-reserved-time-position.d.ts +1 -1
  438. package/lib/types/booking-calendar-slot-type.d.ts +1 -1
  439. package/lib/types/contact-type.d.ts +1 -1
  440. package/lib/types/grant-type.d.ts +1 -1
  441. package/lib/types/payment-attempt-status-type.d.ts +1 -1
  442. package/lib/types/payment-attempt-type.d.ts +1 -1
  443. package/lib/types/sex-type.d.ts +1 -1
  444. package/package.json +13 -18
  445. package/esm2020/lib/api-models/api-invoice/api-payment-attempt-create.mjs +0 -8
  446. package/esm2020/lib/api-models/index.mjs +0 -56
  447. package/esm2020/lib/authentication/authentication.interceptor.mjs +0 -66
  448. package/esm2020/lib/authentication/authentication.service.mjs +0 -106
  449. package/esm2020/lib/authentication/guards/authenticated.guard.mjs +0 -36
  450. package/esm2020/lib/authentication/guards/handle-grant-token.guard.mjs +0 -29
  451. package/esm2020/lib/data-access.module.mjs +0 -30
  452. package/esm2020/lib/maintenance/maintenance.interceptor.mjs +0 -29
  453. package/esm2020/lib/models/activity-extra-member.mjs +0 -12
  454. package/esm2020/lib/models/activity-invite.mjs +0 -20
  455. package/esm2020/lib/models/activity-location-group.mjs +0 -21
  456. package/esm2020/lib/models/activity-location-part.mjs +0 -14
  457. package/esm2020/lib/models/activity-location-tag.mjs +0 -17
  458. package/esm2020/lib/models/activity-location.mjs +0 -36
  459. package/esm2020/lib/models/activity-participant.mjs +0 -12
  460. package/esm2020/lib/models/activity-settings.mjs +0 -14
  461. package/esm2020/lib/models/activity-type.mjs +0 -26
  462. package/esm2020/lib/models/activity.mjs +0 -92
  463. package/esm2020/lib/models/auth/auth-member.mjs +0 -10
  464. package/esm2020/lib/models/auth/auth-team.mjs +0 -9
  465. package/esm2020/lib/models/auth/auth.mjs +0 -15
  466. package/esm2020/lib/models/bookable-group.mjs +0 -21
  467. package/esm2020/lib/models/bookable-item.mjs +0 -39
  468. package/esm2020/lib/models/bookable-part.mjs +0 -14
  469. package/esm2020/lib/models/bookable-tag.mjs +0 -17
  470. package/esm2020/lib/models/booking-calendar-application-time.mjs +0 -52
  471. package/esm2020/lib/models/booking-calendar-slot-session.mjs +0 -54
  472. package/esm2020/lib/models/booking-calendar-slot.mjs +0 -53
  473. package/esm2020/lib/models/booking-calendar.mjs +0 -54
  474. package/esm2020/lib/models/booking-settings.mjs +0 -22
  475. package/esm2020/lib/models/calendar-event.mjs +0 -20
  476. package/esm2020/lib/models/calendar.mjs +0 -10
  477. package/esm2020/lib/models/card/card-deal.mjs +0 -10
  478. package/esm2020/lib/models/card/card-logo-urls.mjs +0 -13
  479. package/esm2020/lib/models/card/card-logo.mjs +0 -8
  480. package/esm2020/lib/models/card/card-member-ticket.mjs +0 -11
  481. package/esm2020/lib/models/card/card-theme.mjs +0 -10
  482. package/esm2020/lib/models/card/card-ticket-location.mjs +0 -9
  483. package/esm2020/lib/models/card/card-ticket.mjs +0 -21
  484. package/esm2020/lib/models/card/home-team.mjs +0 -8
  485. package/esm2020/lib/models/card/member-card.mjs +0 -14
  486. package/esm2020/lib/models/card/search-member-card.mjs +0 -9
  487. package/esm2020/lib/models/club-image.mjs +0 -18
  488. package/esm2020/lib/models/collection.mjs +0 -15
  489. package/esm2020/lib/models/contact.mjs +0 -46
  490. package/esm2020/lib/models/directory.mjs +0 -26
  491. package/esm2020/lib/models/email.mjs +0 -8
  492. package/esm2020/lib/models/event.mjs +0 -26
  493. package/esm2020/lib/models/file-object.mjs +0 -14
  494. package/esm2020/lib/models/general-image.mjs +0 -8
  495. package/esm2020/lib/models/group-role.mjs +0 -11
  496. package/esm2020/lib/models/image-urls.mjs +0 -10
  497. package/esm2020/lib/models/index.mjs +0 -62
  498. package/esm2020/lib/models/invoice/member-fee.mjs +0 -9
  499. package/esm2020/lib/models/invoice/member-invoice-row.mjs +0 -18
  500. package/esm2020/lib/models/invoice/member-invoice.mjs +0 -25
  501. package/esm2020/lib/models/invoice/payment-attempt.mjs +0 -13
  502. package/esm2020/lib/models/invoice/payment-types/credit-card.mjs +0 -16
  503. package/esm2020/lib/models/invoice/payment-types/giro.mjs +0 -11
  504. package/esm2020/lib/models/invoice/payment-types/swish.mjs +0 -18
  505. package/esm2020/lib/models/invoice/payment-types/zimpler.mjs +0 -12
  506. package/esm2020/lib/models/invoice/search-member-invoice.mjs +0 -17
  507. package/esm2020/lib/models/invoice/unpaid-member-invoice.mjs +0 -9
  508. package/esm2020/lib/models/member/member-attribute.mjs +0 -33
  509. package/esm2020/lib/models/member/member-contact.mjs +0 -21
  510. package/esm2020/lib/models/member/member-function.mjs +0 -19
  511. package/esm2020/lib/models/member/member-validation-settings.mjs +0 -13
  512. package/esm2020/lib/models/member/member.mjs +0 -75
  513. package/esm2020/lib/models/member/other-member.mjs +0 -13
  514. package/esm2020/lib/models/member/search-member.mjs +0 -20
  515. package/esm2020/lib/models/member-activity-invite.mjs +0 -31
  516. package/esm2020/lib/models/member-public-form-field-option.mjs +0 -9
  517. package/esm2020/lib/models/member-public-form-field.mjs +0 -16
  518. package/esm2020/lib/models/member-public-form.mjs +0 -30
  519. package/esm2020/lib/models/member-team-through.mjs +0 -14
  520. package/esm2020/lib/models/member-team.mjs +0 -13
  521. package/esm2020/lib/models/member-type.mjs +0 -8
  522. package/esm2020/lib/models/news.mjs +0 -47
  523. package/esm2020/lib/models/open-activity.mjs +0 -62
  524. package/esm2020/lib/models/optional-fee.mjs +0 -11
  525. package/esm2020/lib/models/overbooked-bookable-item.mjs +0 -10
  526. package/esm2020/lib/models/overbooked-location.mjs +0 -10
  527. package/esm2020/lib/models/partner.mjs +0 -9
  528. package/esm2020/lib/models/public-authentication.mjs +0 -7
  529. package/esm2020/lib/models/registration-qr-code.mjs +0 -12
  530. package/esm2020/lib/models/search-club.mjs +0 -14
  531. package/esm2020/lib/models/search-team.mjs +0 -18
  532. package/esm2020/lib/models/token.mjs +0 -8
  533. package/esm2020/lib/models/user-notification.mjs +0 -13
  534. package/esm2020/lib/models/user.mjs +0 -31
  535. package/esm2020/lib/services/activity.service.mjs +0 -470
  536. package/esm2020/lib/services/api.service.mjs +0 -106
  537. package/esm2020/lib/services/auth.service.mjs +0 -61
  538. package/esm2020/lib/services/bookable.service.mjs +0 -278
  539. package/esm2020/lib/services/booking-calendar.service.mjs +0 -794
  540. package/esm2020/lib/services/club.service.mjs +0 -34
  541. package/esm2020/lib/services/constant.service.mjs +0 -131
  542. package/esm2020/lib/services/email.service.mjs +0 -53
  543. package/esm2020/lib/services/external-link.service.mjs +0 -24
  544. package/esm2020/lib/services/factories/activity-settings-factory.mjs +0 -3
  545. package/esm2020/lib/services/factories/index.mjs +0 -86
  546. package/esm2020/lib/services/factories/member-public-form-factory.mjs +0 -26
  547. package/esm2020/lib/services/factories/payment-attempt-factory.mjs +0 -23
  548. package/esm2020/lib/services/file.service.mjs +0 -64
  549. package/esm2020/lib/services/index.mjs +0 -22
  550. package/esm2020/lib/services/invoice/invoice.service.mjs +0 -41
  551. package/esm2020/lib/services/invoice/payment-attempt.service.mjs +0 -51
  552. package/esm2020/lib/services/maintenance-mode.service.mjs +0 -21
  553. package/esm2020/lib/services/member-card.service.mjs +0 -103
  554. package/esm2020/lib/services/member-public-form.service.mjs +0 -32
  555. package/esm2020/lib/services/member.service.mjs +0 -63
  556. package/esm2020/lib/services/news.service.mjs +0 -102
  557. package/esm2020/lib/services/registration-qr-code.service.mjs +0 -36
  558. package/esm2020/lib/services/section.service.mjs +0 -23
  559. package/esm2020/lib/services/team.service.mjs +0 -88
  560. package/esm2020/lib/services/token.service.mjs +0 -57
  561. package/esm2020/lib/services/user-notification.service.mjs +0 -23
  562. package/esm2020/lib/services/user.service.mjs +0 -68
  563. package/fesm2015/myclub_se-data-access.mjs +0 -4835
  564. package/fesm2015/myclub_se-data-access.mjs.map +0 -1
  565. package/fesm2020/myclub_se-data-access.mjs +0 -4831
  566. package/fesm2020/myclub_se-data-access.mjs.map +0 -1
  567. /package/{esm2020 → esm2022}/lib/api-models/api-activity-extra-member.mjs +0 -0
  568. /package/{esm2020 → esm2022}/lib/api-models/api-activity-invite.mjs +0 -0
  569. /package/{esm2020 → esm2022}/lib/api-models/api-activity-location-group.mjs +0 -0
  570. /package/{esm2020 → esm2022}/lib/api-models/api-activity-location-part.mjs +0 -0
  571. /package/{esm2020 → esm2022}/lib/api-models/api-activity-location-tag.mjs +0 -0
  572. /package/{esm2020 → esm2022}/lib/api-models/api-activity-location.mjs +0 -0
  573. /package/{esm2020 → esm2022}/lib/api-models/api-activity-participant.mjs +0 -0
  574. /package/{esm2020 → esm2022}/lib/api-models/api-activity-settings.mjs +0 -0
  575. /package/{esm2020 → esm2022}/lib/api-models/api-activity-type.mjs +0 -0
  576. /package/{esm2020 → esm2022}/lib/api-models/api-activity.mjs +0 -0
  577. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-member.mjs +0 -0
  578. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-section.mjs +0 -0
  579. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-team-section.mjs +0 -0
  580. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-team.mjs +0 -0
  581. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth.mjs +0 -0
  582. /package/{esm2020 → esm2022}/lib/api-models/api-auth/index.mjs +0 -0
  583. /package/{esm2020 → esm2022}/lib/api-models/api-bookable-group.mjs +0 -0
  584. /package/{esm2020 → esm2022}/lib/api-models/api-bookable-item.mjs +0 -0
  585. /package/{esm2020 → esm2022}/lib/api-models/api-bookable-part.mjs +0 -0
  586. /package/{esm2020 → esm2022}/lib/api-models/api-bookable-tag.mjs +0 -0
  587. /package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar-slot.mjs +0 -0
  588. /package/{esm2020 → esm2022}/lib/api-models/api-booking-settings.mjs +0 -0
  589. /package/{esm2020 → esm2022}/lib/api-models/api-calendar-event.mjs +0 -0
  590. /package/{esm2020 → esm2022}/lib/api-models/api-calendar.mjs +0 -0
  591. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-deal.mjs +0 -0
  592. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-logo-urls.mjs +0 -0
  593. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-logo.mjs +0 -0
  594. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-member-ticket.mjs +0 -0
  595. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-theme.mjs +0 -0
  596. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-ticket-location.mjs +0 -0
  597. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-ticket.mjs +0 -0
  598. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card.mjs +0 -0
  599. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-home-team.mjs +0 -0
  600. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-member-card.mjs +0 -0
  601. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-search-member-card.mjs +0 -0
  602. /package/{esm2020 → esm2022}/lib/api-models/api-card/index.mjs +0 -0
  603. /package/{esm2020 → esm2022}/lib/api-models/api-club-image.mjs +0 -0
  604. /package/{esm2020 → esm2022}/lib/api-models/api-club-section.mjs +0 -0
  605. /package/{esm2020 → esm2022}/lib/api-models/api-club.mjs +0 -0
  606. /package/{esm2020 → esm2022}/lib/api-models/api-collection.mjs +0 -0
  607. /package/{esm2020 → esm2022}/lib/api-models/api-directory.mjs +0 -0
  608. /package/{esm2020 → esm2022}/lib/api-models/api-event.mjs +0 -0
  609. /package/{esm2020 → esm2022}/lib/api-models/api-external-link.mjs +0 -0
  610. /package/{esm2020 → esm2022}/lib/api-models/api-file-object.mjs +0 -0
  611. /package/{esm2020 → esm2022}/lib/api-models/api-general-image.mjs +0 -0
  612. /package/{esm2020 → esm2022}/lib/api-models/api-group-role.mjs +0 -0
  613. /package/{esm2020 → esm2022}/lib/api-models/api-image-urls.mjs +0 -0
  614. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-credit-card.mjs +0 -0
  615. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-giro.mjs +0 -0
  616. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-swish.mjs +0 -0
  617. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-zimpler.mjs +0 -0
  618. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/index.mjs +0 -0
  619. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-member-fee.mjs +0 -0
  620. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-member-invoice-row.mjs +0 -0
  621. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-member-invoice.mjs +0 -0
  622. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-payment-attempt.mjs +0 -0
  623. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-search-member-invoice.mjs +0 -0
  624. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-swish-qr-code.mjs +0 -0
  625. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-unpaid-member-invoice.mjs +0 -0
  626. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/index.mjs +0 -0
  627. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-credit-card-data-type.mjs +0 -0
  628. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-swish-data-type.mjs +0 -0
  629. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-zimpler-data-type.mjs +0 -0
  630. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/index.mjs +0 -0
  631. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-contact.mjs +0 -0
  632. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-attribute.mjs +0 -0
  633. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-contact.mjs +0 -0
  634. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-function.mjs +0 -0
  635. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-validation-settings.mjs +0 -0
  636. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member.mjs +0 -0
  637. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-other-member-field.mjs +0 -0
  638. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-other-member.mjs +0 -0
  639. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-search-member.mjs +0 -0
  640. /package/{esm2020 → esm2022}/lib/api-models/api-member/index.mjs +0 -0
  641. /package/{esm2020 → esm2022}/lib/api-models/api-member-activity-invite.mjs +0 -0
  642. /package/{esm2020 → esm2022}/lib/api-models/api-member-public-form-field-option.mjs +0 -0
  643. /package/{esm2020 → esm2022}/lib/api-models/api-member-public-form-field.mjs +0 -0
  644. /package/{esm2020 → esm2022}/lib/api-models/api-member-public-form.mjs +0 -0
  645. /package/{esm2020 → esm2022}/lib/api-models/api-member-team-through.mjs +0 -0
  646. /package/{esm2020 → esm2022}/lib/api-models/api-member-team.mjs +0 -0
  647. /package/{esm2020 → esm2022}/lib/api-models/api-member-type.mjs +0 -0
  648. /package/{esm2020 → esm2022}/lib/api-models/api-news.mjs +0 -0
  649. /package/{esm2020 → esm2022}/lib/api-models/api-open-activity.mjs +0 -0
  650. /package/{esm2020 → esm2022}/lib/api-models/api-optional-fee.mjs +0 -0
  651. /package/{esm2020 → esm2022}/lib/api-models/api-overbooked-bookable-item.mjs +0 -0
  652. /package/{esm2020 → esm2022}/lib/api-models/api-overbooked-location.mjs +0 -0
  653. /package/{esm2020 → esm2022}/lib/api-models/api-partner.mjs +0 -0
  654. /package/{esm2020 → esm2022}/lib/api-models/api-public-token.mjs +0 -0
  655. /package/{esm2020 → esm2022}/lib/api-models/api-registration-qr-code.mjs +0 -0
  656. /package/{esm2020 → esm2022}/lib/api-models/api-search-club.mjs +0 -0
  657. /package/{esm2020 → esm2022}/lib/api-models/api-search-team.mjs +0 -0
  658. /package/{esm2020 → esm2022}/lib/api-models/api-section.mjs +0 -0
  659. /package/{esm2020 → esm2022}/lib/api-models/api-token.mjs +0 -0
  660. /package/{esm2020 → esm2022}/lib/api-models/api-user-notification.mjs +0 -0
  661. /package/{esm2020 → esm2022}/lib/api-models/api-user.mjs +0 -0
  662. /package/{esm2020 → esm2022}/lib/authentication/authentication.config.mjs +0 -0
  663. /package/{esm2020 → esm2022}/lib/authentication/index.mjs +0 -0
  664. /package/{esm2020 → esm2022}/lib/interfaces/email-recipient.interface.mjs +0 -0
  665. /package/{esm2020 → esm2022}/lib/interfaces/index.mjs +0 -0
  666. /package/{esm2020 → esm2022}/lib/interfaces/new-account.interface.mjs +0 -0
  667. /package/{esm2020 → esm2022}/lib/interfaces/open-activity-search-params.interface.mjs +0 -0
  668. /package/{esm2020 → esm2022}/lib/interfaces/option.interface.mjs +0 -0
  669. /package/{esm2020 → esm2022}/lib/interfaces/sms-recipient.interface.mjs +0 -0
  670. /package/{esm2020 → esm2022}/lib/maintenance/index.mjs +0 -0
  671. /package/{esm2020 → esm2022}/lib/models/auth/index.mjs +0 -0
  672. /package/{esm2020 → esm2022}/lib/models/card/index.mjs +0 -0
  673. /package/{esm2020 → esm2022}/lib/models/invoice/index.mjs +0 -0
  674. /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/index.mjs +0 -0
  675. /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/payment-attempt-credit-card-data-type.mjs +0 -0
  676. /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/payment-attempt-swish-data-type.mjs +0 -0
  677. /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/payment-attempt-zimpler-data-type.mjs +0 -0
  678. /package/{esm2020 → esm2022}/lib/models/invoice/payment-types/index.mjs +0 -0
  679. /package/{esm2020 → esm2022}/lib/models/member/index.mjs +0 -0
  680. /package/{esm2020 → esm2022}/lib/models/role.mjs +0 -0
  681. /package/{esm2020 → esm2022}/lib/services/factories/activity-extra-member-factory.mjs +0 -0
  682. /package/{esm2020 → esm2022}/lib/services/factories/activity-factory.mjs +0 -0
  683. /package/{esm2020 → esm2022}/lib/services/factories/activity-invite-factory.mjs +0 -0
  684. /package/{esm2020 → esm2022}/lib/services/factories/activity-location-factory.mjs +0 -0
  685. /package/{esm2020 → esm2022}/lib/services/factories/activity-location-group-factory.mjs +0 -0
  686. /package/{esm2020 → esm2022}/lib/services/factories/activity-location-part-factory.mjs +0 -0
  687. /package/{esm2020 → esm2022}/lib/services/factories/activity-location-tag-factory.mjs +0 -0
  688. /package/{esm2020 → esm2022}/lib/services/factories/activity-participant-factory.mjs +0 -0
  689. /package/{esm2020 → esm2022}/lib/services/factories/activity-type-factory.mjs +0 -0
  690. /package/{esm2020 → esm2022}/lib/services/factories/auth-factory.mjs +0 -0
  691. /package/{esm2020 → esm2022}/lib/services/factories/auth-member-factory.mjs +0 -0
  692. /package/{esm2020 → esm2022}/lib/services/factories/auth-section-factory.mjs +0 -0
  693. /package/{esm2020 → esm2022}/lib/services/factories/auth-team-factory.mjs +0 -0
  694. /package/{esm2020 → esm2022}/lib/services/factories/auth-team-section-factory.mjs +0 -0
  695. /package/{esm2020 → esm2022}/lib/services/factories/bookable-group-factory.mjs +0 -0
  696. /package/{esm2020 → esm2022}/lib/services/factories/bookable-item-factory.mjs +0 -0
  697. /package/{esm2020 → esm2022}/lib/services/factories/bookable-part-factory.mjs +0 -0
  698. /package/{esm2020 → esm2022}/lib/services/factories/bookable-tag-factory.mjs +0 -0
  699. /package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-slot-factory.mjs +0 -0
  700. /package/{esm2020 → esm2022}/lib/services/factories/booking-settings-factory.mjs +0 -0
  701. /package/{esm2020 → esm2022}/lib/services/factories/card-deal-factory.mjs +0 -0
  702. /package/{esm2020 → esm2022}/lib/services/factories/card-factory.mjs +0 -0
  703. /package/{esm2020 → esm2022}/lib/services/factories/card-logo-factory.mjs +0 -0
  704. /package/{esm2020 → esm2022}/lib/services/factories/card-logo-urls-factory.mjs +0 -0
  705. /package/{esm2020 → esm2022}/lib/services/factories/card-member-ticket-factory.mjs +0 -0
  706. /package/{esm2020 → esm2022}/lib/services/factories/card-theme-factory.mjs +0 -0
  707. /package/{esm2020 → esm2022}/lib/services/factories/card-ticket-factory.mjs +0 -0
  708. /package/{esm2020 → esm2022}/lib/services/factories/card-ticket-location-factory.mjs +0 -0
  709. /package/{esm2020 → esm2022}/lib/services/factories/club-factory.mjs +0 -0
  710. /package/{esm2020 → esm2022}/lib/services/factories/club-image-factory.mjs +0 -0
  711. /package/{esm2020 → esm2022}/lib/services/factories/club-section-factory.mjs +0 -0
  712. /package/{esm2020 → esm2022}/lib/services/factories/contact-factory.mjs +0 -0
  713. /package/{esm2020 → esm2022}/lib/services/factories/credit-card-factory.mjs +0 -0
  714. /package/{esm2020 → esm2022}/lib/services/factories/directory-factory.mjs +0 -0
  715. /package/{esm2020 → esm2022}/lib/services/factories/event-factory.mjs +0 -0
  716. /package/{esm2020 → esm2022}/lib/services/factories/external-link-factory.mjs +0 -0
  717. /package/{esm2020 → esm2022}/lib/services/factories/file-factory.mjs +0 -0
  718. /package/{esm2020 → esm2022}/lib/services/factories/general-image-factory.mjs +0 -0
  719. /package/{esm2020 → esm2022}/lib/services/factories/giro-factory.mjs +0 -0
  720. /package/{esm2020 → esm2022}/lib/services/factories/group-role-factory.mjs +0 -0
  721. /package/{esm2020 → esm2022}/lib/services/factories/home-team-factory.mjs +0 -0
  722. /package/{esm2020 → esm2022}/lib/services/factories/image-urls-factory.mjs +0 -0
  723. /package/{esm2020 → esm2022}/lib/services/factories/member-attribute-factory.mjs +0 -0
  724. /package/{esm2020 → esm2022}/lib/services/factories/member-card-factory.mjs +0 -0
  725. /package/{esm2020 → esm2022}/lib/services/factories/member-contact-factory.mjs +0 -0
  726. /package/{esm2020 → esm2022}/lib/services/factories/member-factory.mjs +0 -0
  727. /package/{esm2020 → esm2022}/lib/services/factories/member-fee-factory.mjs +0 -0
  728. /package/{esm2020 → esm2022}/lib/services/factories/member-function-factory.mjs +0 -0
  729. /package/{esm2020 → esm2022}/lib/services/factories/member-invite-factory.mjs +0 -0
  730. /package/{esm2020 → esm2022}/lib/services/factories/member-invoice-factory.mjs +0 -0
  731. /package/{esm2020 → esm2022}/lib/services/factories/member-invoice-row-factory.mjs +0 -0
  732. /package/{esm2020 → esm2022}/lib/services/factories/member-public-form-field-factory.mjs +0 -0
  733. /package/{esm2020 → esm2022}/lib/services/factories/member-public-form-field-option-factory.mjs +0 -0
  734. /package/{esm2020 → esm2022}/lib/services/factories/member-team-factory.mjs +0 -0
  735. /package/{esm2020 → esm2022}/lib/services/factories/member-team-through-factory.mjs +0 -0
  736. /package/{esm2020 → esm2022}/lib/services/factories/member-type-factory.mjs +0 -0
  737. /package/{esm2020 → esm2022}/lib/services/factories/member-validation-settings-factory.mjs +0 -0
  738. /package/{esm2020 → esm2022}/lib/services/factories/news-factory.mjs +0 -0
  739. /package/{esm2020 → esm2022}/lib/services/factories/open-activity-factory.mjs +0 -0
  740. /package/{esm2020 → esm2022}/lib/services/factories/optional-fee-factory.mjs +0 -0
  741. /package/{esm2020 → esm2022}/lib/services/factories/other-member-factory.mjs +0 -0
  742. /package/{esm2020 → esm2022}/lib/services/factories/other-member-field-factory.mjs +0 -0
  743. /package/{esm2020 → esm2022}/lib/services/factories/overbooked-bookable-item-factory.mjs +0 -0
  744. /package/{esm2020 → esm2022}/lib/services/factories/overbooked-location-factory.mjs +0 -0
  745. /package/{esm2020 → esm2022}/lib/services/factories/partner-factory.mjs +0 -0
  746. /package/{esm2020 → esm2022}/lib/services/factories/public-authentication-factory.mjs +0 -0
  747. /package/{esm2020 → esm2022}/lib/services/factories/registration-qr-code-factory.mjs +0 -0
  748. /package/{esm2020 → esm2022}/lib/services/factories/search-club-factory.mjs +0 -0
  749. /package/{esm2020 → esm2022}/lib/services/factories/search-member-card-factory.mjs +0 -0
  750. /package/{esm2020 → esm2022}/lib/services/factories/search-member-factory.mjs +0 -0
  751. /package/{esm2020 → esm2022}/lib/services/factories/search-member-invoice-factory.mjs +0 -0
  752. /package/{esm2020 → esm2022}/lib/services/factories/search-member-team-through-factory.mjs +0 -0
  753. /package/{esm2020 → esm2022}/lib/services/factories/search-team-factory.mjs +0 -0
  754. /package/{esm2020 → esm2022}/lib/services/factories/section-factory.mjs +0 -0
  755. /package/{esm2020 → esm2022}/lib/services/factories/swish-factory.mjs +0 -0
  756. /package/{esm2020 → esm2022}/lib/services/factories/token-factory.mjs +0 -0
  757. /package/{esm2020 → esm2022}/lib/services/factories/unpaid-invoice-factory.mjs +0 -0
  758. /package/{esm2020 → esm2022}/lib/services/factories/user-factory.mjs +0 -0
  759. /package/{esm2020 → esm2022}/lib/services/factories/user-notification-factory.mjs +0 -0
  760. /package/{esm2020 → esm2022}/lib/services/factories/zimpler-factory.mjs +0 -0
  761. /package/{esm2020 → esm2022}/lib/services/invoice/index.mjs +0 -0
  762. /package/{esm2020 → esm2022}/lib/types/attribute-type.mjs +0 -0
  763. /package/{esm2020 → esm2022}/lib/types/booking-calendar-slot-reserved-time-position.mjs +0 -0
  764. /package/{esm2020 → esm2022}/lib/types/booking-calendar-slot-type.mjs +0 -0
  765. /package/{esm2020 → esm2022}/lib/types/contact-type.mjs +0 -0
  766. /package/{esm2020 → esm2022}/lib/types/grant-type.mjs +0 -0
  767. /package/{esm2020 → esm2022}/lib/types/index.mjs +0 -0
  768. /package/{esm2020 → esm2022}/lib/types/payment-attempt-status-type.mjs +0 -0
  769. /package/{esm2020 → esm2022}/lib/types/payment-attempt-type.mjs +0 -0
  770. /package/{esm2020 → esm2022}/lib/types/sex-type.mjs +0 -0
  771. /package/{esm2020 → esm2022}/myclub_se-data-access.mjs +0 -0
@@ -0,0 +1,508 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Role, } from '../models';
3
+ import { tap } from 'rxjs/operators';
4
+ import { of } from 'rxjs';
5
+ import { activityFactory, activityInviteFactory, activityLocationFactory, activitySettingsFactory, activityTypeFactory, eventFactory, memberActivityInviteFactory, openActivityFactory, searchMemberFactory, } from './factories';
6
+ import { sub } from 'date-fns';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./api.service";
9
+ const MEMBER_ACTIVITY_ATTENDANCE_PATH = ':memberId/activities/activity/:activityId/attendance/';
10
+ const MEMBER_ACTIVITY_INVITE_PATH = ':memberId/activities/:activityInviteId/';
11
+ const MEMBER_ACTIVITY_PATH = ':memberId/activities/activity/:activityId/';
12
+ const MEMBER_ACTIVITY_INVITES_PATH = ':memberId/activities/';
13
+ const MEMBER_CALENDAR_PATH = ':memberId/activities/calendar/';
14
+ const MEMBER_OPEN_ACTIVITIES_PATH = ':memberId/open-activities/';
15
+ const MEMBER_OPEN_ACTIVITIES_ACTIVITY_TYPES_PATH = ':memberId/open-activities/types/';
16
+ const MEMBER_OPEN_ACTIVITIES_ACTIVITY_LOCATIONS_PATH = ':memberId/open-activities/locations/';
17
+ const MEMBER_OPEN_ACTIVITY_PATH = ':memberId/open-activities/:activityId/';
18
+ const MEMBER_OPEN_ACTIVITY_RESPOND_PATH = ':memberId/open-activities/:activityId/respond/';
19
+ const MEMBER_OPEN_ACTIVITY_RESPOND_WITH_DATA_PATH = ':memberId/open-activities/:activityId/respond-data/';
20
+ const PUBLIC_ACTIVITY_INVITE_PATH = 'activities/:id/:token/';
21
+ const PUBLIC_OPEN_ACTIVITIES_PATH = 'open-activities/';
22
+ const PUBLIC_OPEN_ACTIVITIES_ACTIVITY_TYPES_PATH = 'open-activities/types/';
23
+ const PUBLIC_OPEN_ACTIVITIES_ACTIVITY_LOCATIONS_PATH = 'open-activities/locations/';
24
+ const PUBLIC_OPEN_ACTIVITY_PATH = 'open-activities/:activityId/';
25
+ const PUBLIC_OPEN_ACTIVITY_RESPOND_PATH = 'open-activities/:activityId/respond/';
26
+ const PUBLIC_OPEN_ACTIVITY_RESPOND_WITH_DATA_PATH = 'open-activities/:activityId/respond-data/';
27
+ const PUBLIC_OPEN_ACTIVITY_INVITE_PATH = 'open-activities/invites/:activityId/';
28
+ const TEAM_ACTIVITIES_PATH = ':teamId/activities/';
29
+ const TEAM_ACTIVITY_INVITES_PATH = ':teamId/activities/:activityId/invites/';
30
+ const TEAM_ACTIVITY_INVITE_PATH = ':teamId/activities/:activityId/invites/:activityInviteId/';
31
+ const TEAM_ACTIVITY_INVITE_RESEND_PATH = ':teamId/activities/:activityId/invites/:activityInviteId/resend-invite/';
32
+ const TEAM_ACTIVITY_NEW_PATH = ':teamId/activities/new/';
33
+ const TEAM_ACTIVITY_PARTICIPANTS_PATH = ':teamId/activities/:activityId/participants/';
34
+ const TEAM_ACTIVITY_PATH = ':teamId/activities/:id/';
35
+ const TEAM_ACTIVITY_QR_CODE_PATH = ':teamId/activities/:id/qr-code/';
36
+ const TEAM_ACTIVITY_SETTINGS_PATH = ':teamId/activities/settings/';
37
+ const SECTION_ACTIVITY_SETTINGS_PATH = ':sectionId/activities/settings/';
38
+ const CLUB_ACTIVITY_SETTINGS_PATH = ':clubId/activities/settings/';
39
+ const TEAM_ACTIVITY_TYPES_PATH = ':teamId/activities/types/';
40
+ const TEAM_CALENDAR_PATH = ':teamId/activities/calendar/';
41
+ const CLUB_ACTIVITY_LOCATIONS_PATH = ':clubId/activities/locations/';
42
+ const CLUB_ACTIVITY_LOCATION_PATH = ':clubId/activities/locations/:locationId/';
43
+ const CLUB_ACTIVITY_TYPES_PATH = ':clubId/activities/types/';
44
+ const CLUB_ACTIVITY_TYPE_PATH = ':clubId/activities/types/:typeId/';
45
+ const TEAM_ACTIVITY_LOCATIONS_PATH = ':teamId/activities/locations/';
46
+ const SECTION_ACTIVITY_LOCATIONS_PATH = ':sectionId/activities/locations/';
47
+ const SECTION_ACTIVITY_LOCATION_PATH = ':sectionId/activities/locations/:locationId/';
48
+ const SECTION_ACTIVITY_TYPES_PATH = ':sectionId/activities/types/';
49
+ const SECTION_ACTIVITY_TYPE_PATH = ':sectionId/activities/types/:typeId/';
50
+ export class ActivityService {
51
+ apiService;
52
+ activityLocationCollection;
53
+ activityLocationResponseDate;
54
+ constructor(apiService) {
55
+ this.apiService = apiService;
56
+ }
57
+ addTeamActivityInvites(teamId, activityId, memberIds) {
58
+ return this.apiService
59
+ .postResource(() => true, Role.TeamAdmin, TEAM_ACTIVITY_INVITES_PATH, {
60
+ teamId,
61
+ activityId
62
+ }, {
63
+ members: memberIds
64
+ });
65
+ }
66
+ createTeamActivity(teamId, data) {
67
+ return this.apiService
68
+ .postResource(activityFactory, Role.TeamAdmin, TEAM_ACTIVITIES_PATH, {
69
+ teamId
70
+ }, this.removeUnusedActivityFields({ ...data }));
71
+ }
72
+ deleteTeamActivity(teamId, id) {
73
+ return this.apiService
74
+ .deleteResource(Role.TeamAdmin, TEAM_ACTIVITY_PATH, {
75
+ teamId,
76
+ id
77
+ });
78
+ }
79
+ deleteTeamActivityInvite(teamId, activityId, activityInviteId) {
80
+ return this.apiService
81
+ .deleteResource(Role.TeamAdmin, TEAM_ACTIVITY_INVITE_PATH, {
82
+ teamId,
83
+ activityId,
84
+ activityInviteId
85
+ });
86
+ }
87
+ getMemberActivity(memberId, activityId) {
88
+ return this.apiService
89
+ .getResource(activityFactory, Role.MemberAdmin, MEMBER_ACTIVITY_PATH, {
90
+ memberId,
91
+ activityId
92
+ });
93
+ }
94
+ getMemberActivityInvite(memberId, activityInviteId) {
95
+ return this.apiService
96
+ .getResource(activityInviteFactory, Role.MemberAdmin, MEMBER_ACTIVITY_INVITE_PATH, {
97
+ memberId,
98
+ activityInviteId
99
+ });
100
+ }
101
+ getMemberActivityInvites(memberId) {
102
+ const params = { limit: 'null' };
103
+ return this.apiService
104
+ .getCollection(activityInviteFactory, Role.MemberAdmin, MEMBER_ACTIVITY_INVITES_PATH, { memberId }, {
105
+ params
106
+ });
107
+ }
108
+ getMemberCalendarEvents(memberId, startDate = null, endDate = null) {
109
+ const params = { limit: 'null' };
110
+ if (startDate) {
111
+ params['search_start_day'] = startDate;
112
+ }
113
+ if (endDate) {
114
+ params['search_end_day'] = endDate;
115
+ }
116
+ return this.apiService
117
+ .getCollection(eventFactory, Role.MemberAdmin, MEMBER_CALENDAR_PATH, { memberId }, {
118
+ params
119
+ });
120
+ }
121
+ getMemberOpenActivities(memberId, openActivitySearchParams) {
122
+ return this.apiService
123
+ .getCollection(openActivityFactory, Role.MemberAdmin, MEMBER_OPEN_ACTIVITIES_PATH, { memberId }, {
124
+ params: this.getOpenActivitySearchParams(openActivitySearchParams)
125
+ });
126
+ }
127
+ getMemberOpenActivity(memberId, activityId) {
128
+ return this.apiService
129
+ .getResource(openActivityFactory, Role.MemberAdmin, MEMBER_OPEN_ACTIVITY_PATH, {
130
+ memberId,
131
+ activityId
132
+ });
133
+ }
134
+ getMemberOpenActivityActivityTypes(memberId, startDate = null, endDate = null, all = false) {
135
+ return this.apiService
136
+ .getCollection(activityTypeFactory, Role.MemberAdmin, MEMBER_OPEN_ACTIVITIES_ACTIVITY_TYPES_PATH, {
137
+ memberId
138
+ }, {
139
+ params: {
140
+ ...this.getOpenActivityDateParams(startDate, endDate, all),
141
+ limit: 'null'
142
+ }
143
+ });
144
+ }
145
+ getMemberOpenActivityLocations(memberId, startDate = null, endDate = null, all = false) {
146
+ return this.apiService
147
+ .getCollection(activityLocationFactory, Role.MemberAdmin, MEMBER_OPEN_ACTIVITIES_ACTIVITY_LOCATIONS_PATH, {
148
+ memberId
149
+ }, {
150
+ params: {
151
+ ...this.getOpenActivityDateParams(startDate, endDate, all),
152
+ limit: 'null'
153
+ }
154
+ });
155
+ }
156
+ getPublicActivityInvite(id, token) {
157
+ return this.apiService
158
+ .getResource(activityInviteFactory, Role.Public, PUBLIC_ACTIVITY_INVITE_PATH, {
159
+ id,
160
+ token
161
+ });
162
+ }
163
+ getPublicOpenActivities(openActivitySearchParams) {
164
+ return this.apiService
165
+ .getCollection(openActivityFactory, Role.Public, PUBLIC_OPEN_ACTIVITIES_PATH, {}, {
166
+ params: this.getOpenActivitySearchParams(openActivitySearchParams)
167
+ });
168
+ }
169
+ getPublicOpenActivity(activityId) {
170
+ return this.apiService
171
+ .getResource(openActivityFactory, Role.Public, PUBLIC_OPEN_ACTIVITY_PATH, { activityId });
172
+ }
173
+ getPublicOpenActivityActivityTypes(startDate = null, endDate = null, all = false) {
174
+ return this.apiService
175
+ .getCollection(activityTypeFactory, Role.Public, PUBLIC_OPEN_ACTIVITIES_ACTIVITY_TYPES_PATH, {}, {
176
+ params: {
177
+ ...this.getOpenActivityDateParams(startDate, endDate, all),
178
+ limit: 'null'
179
+ }
180
+ });
181
+ }
182
+ getPublicOpenActivityLocations(startDate = null, endDate = null, all = false) {
183
+ return this.apiService
184
+ .getCollection(activityLocationFactory, Role.Public, PUBLIC_OPEN_ACTIVITIES_ACTIVITY_LOCATIONS_PATH, {}, {
185
+ params: {
186
+ ...this.getOpenActivityDateParams(startDate, endDate, all),
187
+ limit: 'null'
188
+ }
189
+ });
190
+ }
191
+ getTeamActivity(teamId, id) {
192
+ return this.apiService
193
+ .getResource(activityFactory, Role.TeamAdmin, TEAM_ACTIVITY_PATH, { teamId, id });
194
+ }
195
+ getTeamActivityQRCode(teamId, id) {
196
+ return this.apiService
197
+ .getResource(activityFactory, Role.TeamAdmin, TEAM_ACTIVITY_QR_CODE_PATH, { teamId, id });
198
+ }
199
+ getActivityLocations(role, clubOrSectionOrTeamId, force = false) {
200
+ if (role == Role.ClubAdmin) {
201
+ return this.getClubActivityLocations(clubOrSectionOrTeamId, force);
202
+ }
203
+ else if (role == Role.SectionAdmin) {
204
+ return this.getSectionActivityLocations(clubOrSectionOrTeamId, force);
205
+ }
206
+ return this.getTeamActivityLocations(clubOrSectionOrTeamId, force);
207
+ }
208
+ getTeamActivityLocations(teamId, force = false) {
209
+ if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 }) && !force) {
210
+ return of(this.activityLocationCollection);
211
+ }
212
+ return this.apiService
213
+ .getCollection(activityLocationFactory, Role.TeamAdmin, TEAM_ACTIVITY_LOCATIONS_PATH, { teamId }, { params: { limit: 'null' } }).pipe(tap((activityLocationCollection) => {
214
+ this.activityLocationResponseDate = new Date();
215
+ this.activityLocationCollection = activityLocationCollection;
216
+ }));
217
+ }
218
+ getClubActivityLocations(clubId, force = false) {
219
+ if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 }) && !force) {
220
+ return of(this.activityLocationCollection);
221
+ }
222
+ return this.apiService
223
+ .getCollection(activityLocationFactory, Role.ClubAdmin, CLUB_ACTIVITY_LOCATIONS_PATH, { clubId }, { params: { limit: 'null' } }).pipe(tap((activityLocationCollection) => {
224
+ this.activityLocationResponseDate = new Date();
225
+ this.activityLocationCollection = activityLocationCollection;
226
+ }));
227
+ }
228
+ getSectionActivityLocations(sectionId, force = false) {
229
+ if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 }) && !force) {
230
+ return of(this.activityLocationCollection);
231
+ }
232
+ return this.apiService
233
+ .getCollection(activityLocationFactory, Role.SectionAdmin, SECTION_ACTIVITY_LOCATIONS_PATH, { sectionId }, { params: { limit: 'null' } }).pipe(tap((activityLocationCollection) => {
234
+ this.activityLocationResponseDate = new Date();
235
+ this.activityLocationCollection = activityLocationCollection;
236
+ }));
237
+ }
238
+ updateActivityLocation(role, clubOrSectionOrTeamId, location) {
239
+ if (role === Role.ClubAdmin) {
240
+ return this.updateClubActivityLocation(clubOrSectionOrTeamId, location);
241
+ }
242
+ return this.updateSectionActivityLocation(clubOrSectionOrTeamId, location);
243
+ }
244
+ updateClubActivityLocation(clubId, location) {
245
+ return this.apiService
246
+ .updateResource(activityLocationFactory, Role.ClubAdmin, CLUB_ACTIVITY_LOCATION_PATH, {
247
+ clubId,
248
+ locationId: location.id
249
+ }, location);
250
+ }
251
+ updateMemberActivityAttendance(memberId, activityId) {
252
+ return this.apiService
253
+ .postResourceNoResponse(Role.MemberAdmin, MEMBER_ACTIVITY_ATTENDANCE_PATH, {
254
+ memberId,
255
+ activityId
256
+ }, {});
257
+ }
258
+ updateSectionActivityLocation(sectionId, location) {
259
+ return this.apiService
260
+ .updateResource(activityLocationFactory, Role.SectionAdmin, SECTION_ACTIVITY_LOCATION_PATH, {
261
+ sectionId,
262
+ locationId: location.id
263
+ }, location);
264
+ }
265
+ getTeamActivityNew(teamId) {
266
+ return this.apiService
267
+ .getResource(activityFactory, Role.TeamAdmin, TEAM_ACTIVITY_NEW_PATH, { teamId });
268
+ }
269
+ getTeamActivityParticipants(teamId, activityId) {
270
+ return this.apiService
271
+ .getCollection(searchMemberFactory, Role.TeamAdmin, TEAM_ACTIVITY_PARTICIPANTS_PATH, {
272
+ teamId,
273
+ activityId
274
+ }, { params: { limit: 'null' } });
275
+ }
276
+ getActivitySettings(role, clubOrSectionOrTeamId) {
277
+ if (role === Role.ClubAdmin) {
278
+ return this.getClubActivitySettings(clubOrSectionOrTeamId);
279
+ }
280
+ else if (role == Role.SectionAdmin) {
281
+ return this.getSectionActivitySettings(clubOrSectionOrTeamId);
282
+ }
283
+ return this.getTeamActivitySettings(clubOrSectionOrTeamId);
284
+ }
285
+ getTeamActivitySettings(teamId) {
286
+ return this.apiService
287
+ .getResource(activitySettingsFactory, Role.TeamAdmin, TEAM_ACTIVITY_SETTINGS_PATH, {
288
+ teamId
289
+ });
290
+ }
291
+ getSectionActivitySettings(sectionId) {
292
+ return this.apiService
293
+ .getResource(activitySettingsFactory, Role.SectionAdmin, SECTION_ACTIVITY_SETTINGS_PATH, {
294
+ sectionId
295
+ });
296
+ }
297
+ getClubActivitySettings(clubId) {
298
+ return this.apiService
299
+ .getResource(activitySettingsFactory, Role.ClubAdmin, CLUB_ACTIVITY_SETTINGS_PATH, {
300
+ clubId,
301
+ });
302
+ }
303
+ getActivityTypes(role, clubOrSectionOrTeamId) {
304
+ if (role === Role.ClubAdmin) {
305
+ return this.getClubActivityTypes(clubOrSectionOrTeamId);
306
+ }
307
+ else if (role === Role.SectionAdmin) {
308
+ return this.getSectionActivityTypes(clubOrSectionOrTeamId);
309
+ }
310
+ return this.getTeamActivityTypes(clubOrSectionOrTeamId);
311
+ }
312
+ getTeamActivityTypes(teamId) {
313
+ return this.apiService
314
+ .getCollection(activityTypeFactory, Role.TeamAdmin, TEAM_ACTIVITY_TYPES_PATH, { teamId }, { params: { limit: 'null' } });
315
+ }
316
+ getClubActivityTypes(clubId) {
317
+ return this.apiService
318
+ .getCollection(activityTypeFactory, Role.ClubAdmin, CLUB_ACTIVITY_TYPES_PATH, { clubId }, { params: { limit: 'null' } });
319
+ }
320
+ getSectionActivityTypes(sectionId) {
321
+ return this.apiService
322
+ .getCollection(activityTypeFactory, Role.SectionAdmin, SECTION_ACTIVITY_TYPES_PATH, { sectionId }, { params: { limit: 'null' } });
323
+ }
324
+ updateActivityType(role, clubOrSectionOrTeamId, activityType) {
325
+ if (role === Role.ClubAdmin) {
326
+ return this.updateClubActivityType(clubOrSectionOrTeamId, activityType);
327
+ }
328
+ return this.updateSectionActivityType(clubOrSectionOrTeamId, activityType);
329
+ }
330
+ updateClubActivityType(clubId, activityType) {
331
+ return this.apiService
332
+ .updateResource(activityTypeFactory, Role.ClubAdmin, CLUB_ACTIVITY_TYPE_PATH, {
333
+ clubId,
334
+ typeId: activityType.id,
335
+ }, activityType);
336
+ }
337
+ updateSectionActivityType(sectionId, activityType) {
338
+ return this.apiService
339
+ .updateResource(activityTypeFactory, Role.SectionAdmin, SECTION_ACTIVITY_TYPE_PATH, {
340
+ sectionId,
341
+ typeId: activityType.id,
342
+ }, activityType);
343
+ }
344
+ getTeamCalendarEvents(teamId, startDate = null, endDate = null) {
345
+ const params = { limit: 'null' };
346
+ if (startDate) {
347
+ params['search_start_day'] = startDate;
348
+ }
349
+ if (endDate) {
350
+ params['search_end_day'] = endDate;
351
+ }
352
+ return this.apiService
353
+ .getCollection(eventFactory, Role.TeamAdmin, TEAM_CALENDAR_PATH, { teamId }, {
354
+ params
355
+ });
356
+ }
357
+ resendInvite(teamId, activityId, activityInviteId) {
358
+ return this.apiService
359
+ .postResource(activityInviteFactory, Role.TeamAdmin, TEAM_ACTIVITY_INVITE_RESEND_PATH, {
360
+ teamId,
361
+ activityId,
362
+ activityInviteId
363
+ }, {});
364
+ }
365
+ removeMemberOpenActivity(memberId, activityId) {
366
+ return this.apiService
367
+ .deleteResource(Role.MemberAdmin, MEMBER_OPEN_ACTIVITY_RESPOND_PATH, {
368
+ memberId,
369
+ activityId
370
+ });
371
+ }
372
+ removePublicOpenActivity(activityId) {
373
+ return this.apiService
374
+ .deleteResource(Role.Public, PUBLIC_OPEN_ACTIVITY_RESPOND_PATH, {
375
+ activityId
376
+ });
377
+ }
378
+ signUpMemberOpenActivity(memberId, activityId, comment, optionalFees) {
379
+ return this.apiService
380
+ .updateResourceNoResponse(Role.MemberAdmin, MEMBER_OPEN_ACTIVITY_RESPOND_PATH, {
381
+ memberId,
382
+ activityId
383
+ }, {
384
+ comment,
385
+ optional_fees: optionalFees
386
+ });
387
+ }
388
+ signUpMemberOpenActivityWithResponse(memberId, activityId, comment, optionalFees) {
389
+ return this.apiService
390
+ .updateResource(openActivityFactory, Role.MemberAdmin, MEMBER_OPEN_ACTIVITY_RESPOND_WITH_DATA_PATH, {
391
+ memberId,
392
+ activityId
393
+ }, {
394
+ comment,
395
+ optional_fees: optionalFees
396
+ });
397
+ }
398
+ signUpPublicOpenActivity(activityId, comment, optionalFees) {
399
+ return this.apiService
400
+ .updateResourceNoResponse(Role.Public, PUBLIC_OPEN_ACTIVITY_RESPOND_PATH, {
401
+ activityId
402
+ }, {
403
+ comment,
404
+ optional_fees: optionalFees
405
+ });
406
+ }
407
+ signUpPublicOpenActivityWithResponse(activityId, comment, optionalFees) {
408
+ return this.apiService
409
+ .updateResource(openActivityFactory, Role.Public, PUBLIC_OPEN_ACTIVITY_RESPOND_WITH_DATA_PATH, {
410
+ activityId
411
+ }, {
412
+ comment,
413
+ optional_fees: optionalFees
414
+ });
415
+ }
416
+ updateMemberActivity(memberId, activityInviteId, activityInvite) {
417
+ return this.apiService
418
+ .updateResource(activityInviteFactory, Role.MemberAdmin, MEMBER_ACTIVITY_INVITE_PATH, {
419
+ memberId,
420
+ activityInviteId
421
+ }, activityInvite);
422
+ }
423
+ updatePublicActivityInvite(id, token, activityInvite) {
424
+ return this.apiService
425
+ .updateResource(activityInviteFactory, Role.Public, PUBLIC_ACTIVITY_INVITE_PATH, {
426
+ id,
427
+ token
428
+ }, activityInvite);
429
+ }
430
+ updatePublicOpenActivityInvite(id, activityInvite) {
431
+ return this.apiService
432
+ .updateResource(activityInviteFactory, Role.Public, PUBLIC_OPEN_ACTIVITY_INVITE_PATH, {
433
+ id
434
+ }, activityInvite);
435
+ }
436
+ updateTeamActivity(teamId, activity) {
437
+ return this.apiService
438
+ .updateResource(activityFactory, Role.TeamAdmin, TEAM_ACTIVITY_PATH, {
439
+ teamId,
440
+ id: activity.id
441
+ }, this.removeUnusedActivityFields({ ...activity }));
442
+ }
443
+ updateTeamActivityInvite(teamId, activityId, activityInviteId, activityInvite) {
444
+ return this.apiService
445
+ .updateResource(memberActivityInviteFactory, Role.TeamAdmin, TEAM_ACTIVITY_INVITE_PATH, {
446
+ teamId,
447
+ activityId,
448
+ activityInviteId
449
+ }, activityInvite);
450
+ }
451
+ updateTeamActivityParticipants(teamId, activityId, members) {
452
+ return this.apiService
453
+ .postResource(() => {
454
+ }, Role.TeamAdmin, TEAM_ACTIVITY_PARTICIPANTS_PATH, {
455
+ teamId,
456
+ activityId
457
+ }, {
458
+ members
459
+ });
460
+ }
461
+ getOpenActivityDateParams(startDate, endDate, all = false) {
462
+ let params = {
463
+ 'all': all ? 'true' : 'false'
464
+ };
465
+ if (startDate) {
466
+ params['start_date'] = startDate;
467
+ }
468
+ if (endDate) {
469
+ params['end_date'] = endDate;
470
+ }
471
+ return params;
472
+ }
473
+ getOpenActivitySearchParams(openActivitySearchParams) {
474
+ const params = {
475
+ end_date: openActivitySearchParams.endDate,
476
+ limit: 'null',
477
+ start_date: openActivitySearchParams.startDate
478
+ };
479
+ if (openActivitySearchParams.activityTypeId) {
480
+ params['activity_type_id'] = openActivitySearchParams.activityTypeId;
481
+ }
482
+ if (openActivitySearchParams.locationId) {
483
+ params['location_id'] = openActivitySearchParams.locationId;
484
+ }
485
+ return params;
486
+ }
487
+ removeUnusedActivityFields(activity) {
488
+ if (typeof activity.id !== 'undefined') {
489
+ delete activity.id;
490
+ }
491
+ if (typeof activity.file !== 'undefined' && !activity.file) {
492
+ delete activity.file;
493
+ }
494
+ if (typeof activity.invite_last_response_date !== 'undefined' && !activity.invite_last_response_date) {
495
+ delete activity.invite_last_response_date;
496
+ }
497
+ return activity;
498
+ }
499
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ActivityService, deps: [{ token: i1.ApiService }], target: i0.ɵɵFactoryTarget.Injectable });
500
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ActivityService, providedIn: 'root' });
501
+ }
502
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ActivityService, decorators: [{
503
+ type: Injectable,
504
+ args: [{
505
+ providedIn: 'root'
506
+ }]
507
+ }], ctorParameters: () => [{ type: i1.ApiService }] });
508
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc2VydmljZXMvYWN0aXZpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFPTCxJQUFJLEdBQ0wsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsdUJBQXVCLEVBR3ZCLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLDJCQUEyQixFQUFFLG1CQUFtQixFQUNoRCxtQkFBbUIsR0FDcEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLFVBQVUsQ0FBQzs7O0FBSTdCLE1BQU0sK0JBQStCLEdBQUcsdURBQXVELENBQUM7QUFDaEcsTUFBTSwyQkFBMkIsR0FBRyx5Q0FBeUMsQ0FBQztBQUM5RSxNQUFNLG9CQUFvQixHQUFHLDRDQUE0QyxDQUFDO0FBQzFFLE1BQU0sNEJBQTRCLEdBQUcsdUJBQXVCLENBQUM7QUFDN0QsTUFBTSxvQkFBb0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUM5RCxNQUFNLDJCQUEyQixHQUFHLDRCQUE0QixDQUFDO0FBQ2pFLE1BQU0sMENBQTBDLEdBQUcsa0NBQWtDLENBQUM7QUFDdEYsTUFBTSw4Q0FBOEMsR0FBRyxzQ0FBc0MsQ0FBQztBQUM5RixNQUFNLHlCQUF5QixHQUFHLHdDQUF3QyxDQUFDO0FBQzNFLE1BQU0saUNBQWlDLEdBQUcsZ0RBQWdELENBQUM7QUFDM0YsTUFBTSwyQ0FBMkMsR0FBRyxxREFBcUQsQ0FB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LE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTywwQkFBMEIsQ0FBQyxRQUEyQjtRQUM1RCxJQUFJLE9BQU8sUUFBUSxDQUFDLEVBQUUsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUN2QyxPQUFPLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDckIsQ0FBQztRQUVELElBQUksT0FBTyxRQUFRLENBQUMsSUFBSSxLQUFLLFdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUVELElBQUksT0FBTyxRQUFRLENBQUMseUJBQXlCLEtBQUssV0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLHlCQUF5QixFQUFFLENBQUM7WUFDckcsT0FBTyxRQUFRLENBQUMseUJBQXlCLENBQUM7UUFDNUMsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7dUdBaHlCVSxlQUFlOzJHQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FwaVNlcnZpY2V9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQWN0aXZpdHksXG4gIEFjdGl2aXR5TG9jYXRpb24sIEFjdGl2aXR5TG9jYXRpb25Hcm91cCxcbiAgQWN0aXZpdHlMb2NhdGlvblRhZyxcbiAgQWN0aXZpdHlUeXBlLFxuICBDb2xsZWN0aW9uLFxuICBNZW1iZXJBY3Rpdml0eUludml0ZSxcbiAgUm9sZSxcbn0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7dGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgYWN0aXZpdHlGYWN0b3J5LFxuICBhY3Rpdml0eUludml0ZUZhY3RvcnksXG4gIGFjdGl2aXR5TG9jYXRpb25GYWN0b3J5LFxuICBhY3Rpdml0eUxvY2F0aW9uR3JvdXBGYWN0b3J5LFxuICBhY3Rpdml0eUxvY2F0aW9uVGFnRmFjdG9yeSxcbiAgYWN0aXZpdHlTZXR0aW5nc0ZhY3RvcnksXG4gIGFjdGl2aXR5VHlwZUZhY3RvcnksXG4gIGV2ZW50RmFjdG9yeSxcbiAgbWVtYmVyQWN0aXZpdHlJbnZpdGVGYWN0b3J5LCBvcGVuQWN0aXZpdHlGYWN0b3J5LFxuICBzZWFyY2hNZW1iZXJGYWN0b3J5LFxufSBmcm9tICcuL2ZhY3Rvcmllcyc7XG5pbXBvcnQge3N1Yn0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHthY3Rpdml0eUxvY2F0aW9uUGFydEZhY3Rvcnl9IGZyb20gXCIuL2ZhY3Rvcmllcy9hY3Rpdml0eS1sb2NhdGlvbi1wYXJ0LWZhY3RvcnlcIjtcbmltcG9ydCB7IE9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtc0ludGVyZmFjZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5jb25zdCBNRU1CRVJfQUNUSVZJVFlfQVRURU5EQU5DRV9QQVRIID0gJzptZW1iZXJJZC9hY3Rpdml0aWVzL2FjdGl2aXR5LzphY3Rpdml0eUlkL2F0dGVuZGFuY2UvJztcbmNvbnN0IE1FTUJFUl9BQ1RJVklUWV9JTlZJVEVfUEFUSCA9ICc6bWVtYmVySWQvYWN0aXZpdGllcy86YWN0aXZpdHlJbnZpdGVJZC8nO1xuY29uc3QgTUVNQkVSX0FDVElWSVRZX1BBVEggPSAnOm1lbWJlcklkL2FjdGl2aXRpZXMvYWN0aXZpdHkvOmFjdGl2aXR5SWQvJztcbmNvbnN0IE1FTUJFUl9BQ1RJVklUWV9JTlZJVEVTX1BBVEggPSAnOm1lbWJlcklkL2FjdGl2aXRpZXMvJztcbmNvbnN0IE1FTUJFUl9DQUxFTkRBUl9QQVRIID0gJzptZW1iZXJJZC9hY3Rpdml0aWVzL2NhbGVuZGFyLyc7XG5jb25zdCBNRU1CRVJfT1BFTl9BQ1RJVklUSUVTX1BBVEggPSAnOm1lbWJlcklkL29wZW4tYWN0aXZpdGllcy8nO1xuY29uc3QgTUVNQkVSX09QRU5fQUNUSVZJVElFU19BQ1RJVklUWV9UWVBFU19QQVRIID0gJzptZW1iZXJJZC9vcGVuLWFjdGl2aXRpZXMvdHlwZXMvJztcbmNvbnN0IE1FTUJFUl9PUEVOX0FDVElWSVRJRVNfQUNUSVZJVFlfTE9DQVRJT05TX1BBVEggPSAnOm1lbWJlcklkL29wZW4tYWN0aXZpdGllcy9sb2NhdGlvbnMvJztcbmNvbnN0IE1FTUJFUl9PUEVOX0FDVElWSVRZX1BBVEggPSAnOm1lbWJlcklkL29wZW4tYWN0aXZpdGllcy86YWN0aXZpdHlJZC8nO1xuY29uc3QgTUVNQkVSX09QRU5fQUNUSVZJVFlfUkVTUE9ORF9QQVRIID0gJzptZW1iZXJJZC9vcGVuLWFjdGl2aXRpZXMvOmFjdGl2aXR5SWQvcmVzcG9uZC8nO1xuY29uc3QgTUVNQkVSX09QRU5fQUNUSVZJVFlfUkVTUE9ORF9XSVRIX0RBVEFfUEFUSCA9ICc6bWVtYmVySWQvb3Blbi1hY3Rpdml0aWVzLzphY3Rpdml0eUlkL3Jlc3BvbmQtZGF0YS8nO1xuXG5jb25zdCBQVUJMSUNfQUNUSVZJVFlfSU5WSVRFX1BBVEggPSAnYWN0aXZpdGllcy86aWQvOnRva2VuLyc7XG5jb25zdCBQVUJMSUNfT1BFTl9BQ1RJVklUSUVTX1BBVEggPSAnb3Blbi1hY3Rpdml0aWVzLyc7XG5jb25zdCBQVUJMSUNfT1BFTl9BQ1RJVklUSUVTX0FDVElWSVRZX1RZUEVTX1BBVEggPSAnb3Blbi1hY3Rpdml0aWVzL3R5cGVzLyc7XG5jb25zdCBQVUJMSUNfT1BFTl9BQ1RJVklUSUVTX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRIID0gJ29wZW4tYWN0aXZpdGllcy9sb2NhdGlvbnMvJztcbmNvbnN0IFBVQkxJQ19PUEVOX0FDVElWSVRZX1BBVEggPSAnb3Blbi1hY3Rpdml0aWVzLzphY3Rpdml0eUlkLyc7XG5jb25zdCBQVUJMSUNfT1BFTl9BQ1RJVklUWV9SRVNQT05EX1BBVEggPSAnb3Blbi1hY3Rpdml0aWVzLzphY3Rpdml0eUlkL3Jlc3BvbmQvJztcbmNvbnN0IFBVQkxJQ19PUEVOX0FDVElWSVRZX1JFU1BPTkRfV0lUSF9EQVRBX1BBVEggPSAnb3Blbi1hY3Rpdml0aWVzLzphY3Rpdml0eUlkL3Jlc3BvbmQtZGF0YS8nO1xuY29uc3QgUFVCTElDX09QRU5fQUNUSVZJVFlfSU5WSVRFX1BBVEggPSAnb3Blbi1hY3Rpdml0aWVzL2ludml0ZXMvOmFjdGl2aXR5SWQvJztcblxuY29uc3QgVEVBTV9BQ1RJVklUSUVTX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX0lOVklURVNfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvOmFjdGl2aXR5SWQvaW52aXRlcy8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9JTlZJVEVfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvOmFjdGl2aXR5SWQvaW52aXRlcy86YWN0aXZpdHlJbnZpdGVJZC8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9JTlZJVEVfUkVTRU5EX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzLzphY3Rpdml0eUlkL2ludml0ZXMvOmFjdGl2aXR5SW52aXRlSWQvcmVzZW5kLWludml0ZS8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9ORVdfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvbmV3Lyc7XG5jb25zdCBURUFNX0FDVElWSVRZX1BBUlRJQ0lQQU5UU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy86YWN0aXZpdHlJZC9wYXJ0aWNpcGFudHMvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvOmlkLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX1FSX0NPREVfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvOmlkL3FyLWNvZGUvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfU0VUVElOR1NfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvc2V0dGluZ3MvJztcbmNvbnN0IFNFQ1RJT05fQUNUSVZJVFlfU0VUVElOR1NfUEFUSCA9ICc6c2VjdGlvbklkL2FjdGl2aXRpZXMvc2V0dGluZ3MvJztcbmNvbnN0IENMVUJfQUNUSVZJVFlfU0VUVElOR1NfUEFUSCA9ICc6Y2x1YklkL2FjdGl2aXRpZXMvc2V0dGluZ3MvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfVFlQRVNfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvdHlwZXMvJztcbmNvbnN0IFRFQU1fQ0FMRU5EQVJfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvY2FsZW5kYXIvJztcblxuY29uc3QgQ0xVQl9BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCA9ICc6Y2x1YklkL2FjdGl2aXRpZXMvbG9jYXRpb25zLyc7XG5jb25zdCBDTFVCX0FDVElWSVRZX0xPQ0FUSU9OX1BBVEggPSAnOmNsdWJJZC9hY3Rpdml0aWVzL2xvY2F0aW9ucy86bG9jYXRpb25JZC8nO1xuY29uc3QgQ0xVQl9BQ1RJVklUWV9UWVBFU19QQVRIID0gJzpjbHViSWQvYWN0aXZpdGllcy90eXBlcy8nO1xuY29uc3QgQ0xVQl9BQ1RJVklUWV9UWVBFX1BBVEggPSAnOmNsdWJJZC9hY3Rpdml0aWVzL3R5cGVzLzp0eXBlSWQvJztcblxuY29uc3QgVEVBTV9BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvbG9jYXRpb25zLyc7XG5cbmNvbnN0IFNFQ1RJT05fQUNUSVZJVFlfTE9DQVRJT05TX1BBVEggPSAnOnNlY3Rpb25JZC9hY3Rpdml0aWVzL2xvY2F0aW9ucy8nO1xuY29uc3QgU0VDVElPTl9BQ1RJVklUWV9MT0NBVElPTl9QQVRIID0gJzpzZWN0aW9uSWQvYWN0aXZpdGllcy9sb2NhdGlvbnMvOmxvY2F0aW9uSWQvJztcbmNvbnN0IFNFQ1RJT05fQUNUSVZJVFlfVFlQRVNfUEFUSCA9ICc6c2VjdGlvbklkL2FjdGl2aXRpZXMvdHlwZXMvJztcbmNvbnN0IFNFQ1RJT05fQUNUSVZJVFlfVFlQRV9QQVRIID0gJzpzZWN0aW9uSWQvYWN0aXZpdGllcy90eXBlcy86dHlwZUlkLyc7XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlTZXJ2aWNlIHtcbiAgYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb246IENvbGxlY3Rpb248QWN0aXZpdHlMb2NhdGlvbj4gfCB1bmRlZmluZWQ7XG5cbiAgYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UpIHtcbiAgfVxuXG4gIGFkZFRlYW1BY3Rpdml0eUludml0ZXModGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgbWVtYmVySWRzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgKCkgPT4gdHJ1ZSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfSU5WSVRFU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkLFxuICAgICAgICAgIGFjdGl2aXR5SWRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1lbWJlcnM6IG1lbWJlcklkc1xuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBjcmVhdGVUZWFtQWN0aXZpdHkodGVhbUlkOiBzdHJpbmcsIGRhdGE6IFBhcnRpYWw8QWN0aXZpdHk+KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUSUVTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWRcbiAgICAgICAgfSxcbiAgICAgICAgdGhpcy5yZW1vdmVVbnVzZWRBY3Rpdml0eUZpZWxkcyh7Li4uZGF0YX0pXG4gICAgICApXG4gIH1cblxuICBkZWxldGVUZWFtQWN0aXZpdHkodGVhbUlkOiBzdHJpbmcsIGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZGVsZXRlUmVzb3VyY2UoXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgaWRcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGRlbGV0ZVRlYW1BY3Rpdml0eUludml0ZSh0ZWFtSWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZGVsZXRlUmVzb3VyY2UoXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkLFxuICAgICAgICAgIGFjdGl2aXR5SWQsXG4gICAgICAgICAgYWN0aXZpdHlJbnZpdGVJZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0TWVtYmVyQWN0aXZpdHkobWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9BQ1RJVklUWV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBnZXRNZW1iZXJBY3Rpdml0eUludml0ZShtZW1iZXJJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5SW52aXRlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJbnZpdGVJZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0TWVtYmVyQWN0aXZpdHlJbnZpdGVzKG1lbWJlcklkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7bGltaXQ6ICdudWxsJ307XG5cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFU19QQVRILFxuICAgICAgICB7bWVtYmVySWR9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRNZW1iZXJDYWxlbmRhckV2ZW50cyhtZW1iZXJJZDogc3RyaW5nLCBzdGFydERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBlbmREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgIGNvbnN0IHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtsaW1pdDogJ251bGwnfTtcblxuICAgIGlmIChzdGFydERhdGUpIHtcbiAgICAgIHBhcmFtc1snc2VhcmNoX3N0YXJ0X2RheSddID0gc3RhcnREYXRlO1xuICAgIH1cblxuICAgIGlmIChlbmREYXRlKSB7XG4gICAgICBwYXJhbXNbJ3NlYXJjaF9lbmRfZGF5J10gPSBlbmREYXRlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBldmVudEZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9DQUxFTkRBUl9QQVRILFxuICAgICAgICB7bWVtYmVySWR9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zXG4gICAgICAgIH1cbiAgICAgIClcbiAgfVxuXG4gIGdldE1lbWJlck9wZW5BY3Rpdml0aWVzKG1lbWJlcklkOiBzdHJpbmcsIG9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtczogT3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zSW50ZXJmYWNlKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIG9wZW5BY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9PUEVOX0FDVElWSVRJRVNfUEFUSCxcbiAgICAgICAge21lbWJlcklkfSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtczogdGhpcy5nZXRPcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMob3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zKVxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBnZXRNZW1iZXJPcGVuQWN0aXZpdHkobWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBvcGVuQWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfT1BFTl9BQ1RJVklUWV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0TWVtYmVyT3BlbkFjdGl2aXR5QWN0aXZpdHlUeXBlcyhtZW1iZXJJZDogc3RyaW5nLCBzdGFydERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBlbmREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYWxsOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlUeXBlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX09QRU5fQUNUSVZJVElFU19BQ1RJVklUWV9UWVBFU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgLi4udGhpcy5nZXRPcGVuQWN0aXZpdHlEYXRlUGFyYW1zKHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgYWxsKSxcbiAgICAgICAgICAgIGxpbWl0OiAnbnVsbCdcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIClcbiAgfVxuXG4gIGdldE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9ucyhtZW1iZXJJZDogc3RyaW5nLCBzdGFydERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBlbmREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYWxsOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvbkZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9PUEVOX0FDVElWSVRJRVNfQUNUSVZJVFlfTE9DQVRJT05TX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJJZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAuLi50aGlzLmdldE9wZW5BY3Rpdml0eURhdGVQYXJhbXMoc3RhcnREYXRlLCBlbmREYXRlLCBhbGwpLFxuICAgICAgICAgICAgbGltaXQ6ICdudWxsJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKVxuICB9XG5cbiAgZ2V0UHVibGljQWN0aXZpdHlJbnZpdGUoaWQ6IHN0cmluZywgdG9rZW46IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgdG9rZW5cbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGdldFB1YmxpY09wZW5BY3Rpdml0aWVzKG9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtczogT3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zSW50ZXJmYWNlKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIG9wZW5BY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuUHVibGljLFxuICAgICAgICBQVUJMSUNfT1BFTl9BQ1RJVklUSUVTX1BBVEgsXG4gICAgICAgIHt9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zOiB0aGlzLmdldE9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtcyhvcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMpXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRQdWJsaWNPcGVuQWN0aXZpdHkoYWN0aXZpdHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBvcGVuQWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX09QRU5fQUNUSVZJVFlfUEFUSCxcbiAgICAgICAge2FjdGl2aXR5SWR9XG4gICAgICApXG4gIH1cblxuICBnZXRQdWJsaWNPcGVuQWN0aXZpdHlBY3Rpdml0eVR5cGVzKHN0YXJ0RGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGVuZERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBhbGw6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eVR5cGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX09QRU5fQUNUSVZJVElFU19BQ1RJVklUWV9UWVBFU19QQVRILFxuICAgICAgICB7fSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgLi4udGhpcy5nZXRPcGVuQWN0aXZpdHlEYXRlUGFyYW1zKHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgYWxsKSxcbiAgICAgICAgICAgIGxpbWl0OiAnbnVsbCdcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIClcbiAgfVxuXG4gIGdldFB1YmxpY09wZW5BY3Rpdml0eUxvY2F0aW9ucyhzdGFydERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBlbmREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYWxsOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvbkZhY3RvcnksXG4gICAgICAgIFJvbGUuUHVibGljLFxuICAgICAgICBQVUJMSUNfT1BFTl9BQ1RJVklUSUVTX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRILFxuICAgICAgICB7fSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgLi4udGhpcy5nZXRPcGVuQWN0aXZpdHlEYXRlUGFyYW1zKHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgYWxsKSxcbiAgICAgICAgICAgIGxpbWl0OiAnbnVsbCdcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIClcbiAgfVxuXG4gIGdldFRlYW1BY3Rpdml0eSh0ZWFtSWQ6IHN0cmluZywgaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9QQVRILFxuICAgICAgICB7dGVhbUlkLCBpZH1cbiAgICAgIClcbiAgfVxuXG4gIGdldFRlYW1BY3Rpdml0eVFSQ29kZSh0ZWFtSWQ6IHN0cmluZywgaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9RUl9DT0RFX1BBVEgsXG4gICAgICAgIHt0ZWFtSWQsIGlkfVxuICAgICAgKVxuICB9XG5cbiAgZ2V0QWN0aXZpdHlMb2NhdGlvbnMocm9sZTogUm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmcsIGZvcmNlOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBpZiAocm9sZSA9PSBSb2xlLkNsdWJBZG1pbikge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2x1YkFjdGl2aXR5TG9jYXRpb25zKGNsdWJPclNlY3Rpb25PclRlYW1JZCwgZm9yY2UpO1xuICAgIH0gZWxzZSBpZiAocm9sZSA9PSBSb2xlLlNlY3Rpb25BZG1pbikge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VjdGlvbkFjdGl2aXR5TG9jYXRpb25zKGNsdWJPclNlY3Rpb25PclRlYW1JZCwgZm9yY2UpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRUZWFtQWN0aXZpdHlMb2NhdGlvbnMoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBmb3JjZSlcbiAgfVxuXG4gIGdldFRlYW1BY3Rpdml0eUxvY2F0aW9ucyh0ZWFtSWQ6IHN0cmluZywgZm9yY2U6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGlmICh0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgJiYgdGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlID4gc3ViKG5ldyBEYXRlKCksIHtob3VyczogMX0pICYmICFmb3JjZSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb24gYXMgQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5TG9jYXRpb25GYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCxcbiAgICAgICAge3RlYW1JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICkucGlwZShcbiAgICAgICAgdGFwKChhY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbjogQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPikgPT4ge1xuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbiA9IGFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGdldENsdWJBY3Rpdml0eUxvY2F0aW9ucyhjbHViSWQ6IHN0cmluZywgZm9yY2U6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGlmICh0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgJiYgdGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlID4gc3ViKG5ldyBEYXRlKCksIHtob3VyczogMX0pICYmICFmb3JjZSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb24gYXMgQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5TG9jYXRpb25GYWN0b3J5LFxuICAgICAgICBSb2xlLkNsdWJBZG1pbixcbiAgICAgICAgQ0xVQl9BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCxcbiAgICAgICAge2NsdWJJZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICkucGlwZShcbiAgICAgICAgdGFwKChhY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbjogQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPikgPT4ge1xuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbiA9IGFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGdldFNlY3Rpb25BY3Rpdml0eUxvY2F0aW9ucyhzZWN0aW9uSWQ6IHN0cmluZywgZm9yY2U6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGlmICh0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgJiYgdGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlID4gc3ViKG5ldyBEYXRlKCksIHtob3VyczogMX0pICYmICFmb3JjZSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb24gYXMgQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5TG9jYXRpb25GYWN0b3J5LFxuICAgICAgICBSb2xlLlNlY3Rpb25BZG1pbixcbiAgICAgICAgU0VDVElPTl9BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCxcbiAgICAgICAge3NlY3Rpb25JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICkucGlwZShcbiAgICAgICAgdGFwKChhY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbjogQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPikgPT4ge1xuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbiA9IGFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZUFjdGl2aXR5TG9jYXRpb24ocm9sZTogUm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmcsIGxvY2F0aW9uOiBBY3Rpdml0eUxvY2F0aW9uKSB7XG4gICAgaWYgKHJvbGUgPT09IFJvbGUuQ2x1YkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy51cGRhdGVDbHViQWN0aXZpdHlMb2NhdGlvbihjbHViT3JTZWN0aW9uT3JUZWFtSWQsIGxvY2F0aW9uKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlU2VjdGlvbkFjdGl2aXR5TG9jYXRpb24oY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBsb2NhdGlvbik7XG4gIH1cblxuICB1cGRhdGVDbHViQWN0aXZpdHlMb2NhdGlvbihjbHViSWQ6IHN0cmluZywgbG9jYXRpb246IEFjdGl2aXR5TG9jYXRpb24pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5TG9jYXRpb25GYWN0b3J5LFxuICAgICAgICBSb2xlLkNsdWJBZG1pbixcbiAgICAgICAgQ0xVQl9BQ1RJVklUWV9MT0NBVElPTl9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgY2x1YklkLFxuICAgICAgICAgIGxvY2F0aW9uSWQ6IGxvY2F0aW9uLmlkXG4gICAgICAgIH0sXG4gICAgICAgIGxvY2F0aW9uXG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlTWVtYmVyQWN0aXZpdHlBdHRlbmRhbmNlKG1lbWJlcklkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5wb3N0UmVzb3VyY2VOb1Jlc3BvbnNlKFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfQUNUSVZJVFlfQVRURU5EQU5DRV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9LFxuICAgICAgICB7fVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVNlY3Rpb25BY3Rpdml0eUxvY2F0aW9uKHNlY3Rpb25JZDogc3RyaW5nLCBsb2NhdGlvbjogQWN0aXZpdHlMb2NhdGlvbikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvbkZhY3RvcnksXG4gICAgICAgIFJvbGUuU2VjdGlvbkFkbWluLFxuICAgICAgICBTRUNUSU9OX0FDVElWSVRZX0xPQ0FUSU9OX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBzZWN0aW9uSWQsXG4gICAgICAgICAgbG9jYXRpb25JZDogbG9jYXRpb24uaWRcbiAgICAgICAgfSxcbiAgICAgICAgbG9jYXRpb25cbiAgICAgICk7XG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlOZXcodGVhbUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5RmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfTkVXX1BBVEgsXG4gICAgICAgIHt0ZWFtSWR9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5UGFydGljaXBhbnRzKHRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgc2VhcmNoTWVtYmVyRmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfUEFSVElDSVBBTlRTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApO1xuICB9XG5cbiAgZ2V0QWN0aXZpdHlTZXR0aW5ncyhyb2xlOiBSb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZykge1xuICAgIGlmIChyb2xlID09PSBSb2xlLkNsdWJBZG1pbikge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2x1YkFjdGl2aXR5U2V0dGluZ3MoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkKTtcbiAgICB9IGVsc2UgaWYgKHJvbGUgPT0gUm9sZS5TZWN0aW9uQWRtaW4pIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFNlY3Rpb25BY3Rpdml0eVNldHRpbmdzKGNsdWJPclNlY3Rpb25PclRlYW1JZCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldFRlYW1BY3Rpdml0eVNldHRpbmdzKGNsdWJPclNlY3Rpb25PclRlYW1JZCk7XG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlTZXR0aW5ncyh0ZWFtSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlTZXR0aW5nc0ZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1NFVFRJTkdTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWRcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGdldFNlY3Rpb25BY3Rpdml0eVNldHRpbmdzKHNlY3Rpb25JZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eVNldHRpbmdzRmFjdG9yeSxcbiAgICAgICAgUm9sZS5TZWN0aW9uQWRtaW4sXG4gICAgICAgIFNFQ1RJT05fQUNUSVZJVFlfU0VUVElOR1NfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHNlY3Rpb25JZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0Q2x1YkFjdGl2aXR5U2V0dGluZ3MoY2x1YklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5U2V0dGluZ3NGYWN0b3J5LFxuICAgICAgICBSb2xlLkNsdWJBZG1pbixcbiAgICAgICAgQ0xVQl9BQ1RJVklUWV9TRVRUSU5HU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgY2x1YklkLFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0QWN0aXZpdHlUeXBlcyhyb2xlOiBSb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZykge1xuICAgIGlmIChyb2xlID09PSBSb2xlLkNsdWJBZG1pbikge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2x1YkFjdGl2aXR5VHlwZXMoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkKTtcbiAgICB9IGVsc2UgaWYgKHJvbGUgPT09IFJvbGUuU2VjdGlvbkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRTZWN0aW9uQWN0aXZpdHlUeXBlcyhjbHViT3JTZWN0aW9uT3JUZWFtSWQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRUZWFtQWN0aXZpdHlUeXBlcyhjbHViT3JTZWN0aW9uT3JUZWFtSWQpO1xuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5VHlwZXModGVhbUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlUeXBlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfVFlQRVNfUEFUSCxcbiAgICAgICAge3RlYW1JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgIClcbiAgfVxuXG4gIGdldENsdWJBY3Rpdml0eVR5cGVzKGNsdWJJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5VHlwZUZhY3RvcnksXG4gICAgICAgIFJvbGUuQ2x1YkFkbWluLFxuICAgICAgICBDTFVCX0FDVElWSVRZX1RZUEVTX1BBVEgsXG4gICAgICAgIHtjbHViSWR9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApO1xuICB9XG5cbiAgZ2V0U2VjdGlvbkFjdGl2aXR5VHlwZXMoc2VjdGlvbklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlUeXBlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5TZWN0aW9uQWRtaW4sXG4gICAgICAgIFNFQ1RJT05fQUNUSVZJVFlfVFlQRVNfUEFUSCxcbiAgICAgICAge3NlY3Rpb25JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICB1cGRhdGVBY3Rpdml0eVR5cGUocm9sZTogUm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5VHlwZTogQWN0aXZpdHlUeXBlKSB7XG4gICAgaWYgKHJvbGUgPT09IFJvbGUuQ2x1YkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy51cGRhdGVDbHViQWN0aXZpdHlUeXBlKGNsdWJPclNlY3Rpb25PclRlYW1JZCwgYWN0aXZpdHlUeXBlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlU2VjdGlvbkFjdGl2aXR5VHlwZShjbHViT3JTZWN0aW9uT3JUZWFtSWQsIGFjdGl2aXR5VHlwZSk7XG4gIH1cblxuICB1cGRhdGVDbHViQWN0aXZpdHlUeXBlKGNsdWJJZDogc3RyaW5nLCBhY3Rpdml0eVR5cGU6IEFjdGl2aXR5VHlwZSkge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlUeXBlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5DbHViQWRtaW4sXG4gICAgICAgIENMVUJfQUNUSVZJVFlfVFlQRV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgY2x1YklkLFxuICAgICAgICAgIHR5cGVJZDogYWN0aXZpdHlUeXBlLmlkLFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eVR5cGUsXG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlU2VjdGlvbkFjdGl2aXR5VHlwZShzZWN0aW9uSWQ6IHN0cmluZywgYWN0aXZpdHlUeXBlOiBBY3Rpdml0eVR5cGUpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5VHlwZUZhY3RvcnksXG4gICAgICAgIFJvbGUuU2VjdGlvbkFkbWluLFxuICAgICAgICBTRUNUSU9OX0FDVElWSVRZX1RZUEVfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHNlY3Rpb25JZCxcbiAgICAgICAgICB0eXBlSWQ6IGFjdGl2aXR5VHlwZS5pZCxcbiAgICAgICAgfSxcbiAgICAgICAgYWN0aXZpdHlUeXBlLFxuICAgICAgKTtcbiAgfVxuXG4gIGdldFRlYW1DYWxlbmRhckV2ZW50cyh0ZWFtSWQ6IHN0cmluZywgc3RhcnREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgZW5kRGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcbiAgICBjb25zdCBwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7bGltaXQ6ICdudWxsJ307XG5cbiAgICBpZiAoc3RhcnREYXRlKSB7XG4gICAgICBwYXJhbXNbJ3NlYXJjaF9zdGFydF9kYXknXSA9IHN0YXJ0RGF0ZTtcbiAgICB9XG5cbiAgICBpZiAoZW5kRGF0ZSkge1xuICAgICAgcGFyYW1zWydzZWFyY2hfZW5kX2RheSddID0gZW5kRGF0ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgZXZlbnRGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9DQUxFTkRBUl9QQVRILFxuICAgICAgICB7dGVhbUlkfSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtc1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgcmVzZW5kSW52aXRlKHRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5wb3N0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5SW52aXRlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfSU5WSVRFX1JFU0VORF9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkLFxuICAgICAgICAgIGFjdGl2aXR5SWQsXG4gICAgICAgICAgYWN0aXZpdHlJbnZpdGVJZFxuICAgICAgICB9LFxuICAgICAgICB7fVxuICAgICAgKTtcbiAgfVxuXG4gIHJlbW92ZU1lbWJlck9wZW5BY3Rpdml0eShtZW1iZXJJZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZGVsZXRlUmVzb3VyY2UoXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9PUEVOX0FDVElWSVRZX1JFU1BPTkRfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIG1lbWJlcklkLFxuICAgICAgICAgIGFjdGl2aXR5SWRcbiAgICAgICAgfVxuICAgICAgKVxuICB9XG5cbiAgcmVtb3ZlUHVibGljT3BlbkFjdGl2aXR5KGFjdGl2aXR5SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5kZWxldGVSZXNvdXJjZShcbiAgICAgICAgUm9sZS5QdWJsaWMsXG4gICAgICAgIFBVQkxJQ19PUEVOX0FDVElWSVRZX1JFU1BPTkRfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIGFjdGl2aXR5SWRcbiAgICAgICAgfVxuICAgICAgKVxuICB9XG5cbiAgc2lnblVwTWVtYmVyT3BlbkFjdGl2aXR5KG1lbWJlcklkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgY29tbWVudDogc3RyaW5nLCBvcHRpb25hbEZlZXM6IEFycmF5PHN0cmluZz4pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2VOb1Jlc3BvbnNlKFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfT1BFTl9BQ1RJVklUWV9SRVNQT05EX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJJZCxcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjb21tZW50LFxuICAgICAgICAgIG9wdGlvbmFsX2ZlZXM6IG9wdGlvbmFsRmVlc1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgc2lnblVwTWVtYmVyT3BlbkFjdGl2aXR5V2l0aFJlc3BvbnNlKG1lbWJlcklkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgY29tbWVudDogc3RyaW5nLCBvcHRpb25hbEZlZXM6IEFycmF5PHN0cmluZz4pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIG9wZW5BY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9PUEVOX0FDVElWSVRZX1JFU1BPTkRfV0lUSF9EQVRBX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJJZCxcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjb21tZW50LFxuICAgICAgICAgIG9wdGlvbmFsX2ZlZXM6IG9wdGlvbmFsRmVlc1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cblxuICBzaWduVXBQdWJsaWNPcGVuQWN0aXZpdHkoYWN0aXZpdHlJZDogc3RyaW5nLCBjb21tZW50OiBzdHJpbmcsIG9wdGlvbmFsRmVlczogQXJyYXk8c3RyaW5nPikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZU5vUmVzcG9uc2UoXG4gICAgICAgIFJvbGUuUHVibGljLFxuICAgICAgICBQVUJMSUNfT1BFTl9BQ1RJVklUWV9SRVNQT05EX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjb21tZW50LFxuICAgICAgICAgIG9wdGlvbmFsX2ZlZXM6IG9wdGlvbmFsRmVlc1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgc2lnblVwUHVibGljT3BlbkFjdGl2aXR5V2l0aFJlc3BvbnNlKGFjdGl2aXR5SWQ6IHN0cmluZywgY29tbWVudDogc3RyaW5nLCBvcHRpb25hbEZlZXM6IEFycmF5PHN0cmluZz4pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIG9wZW5BY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuUHVibGljLFxuICAgICAgICBQVUJMSUNfT1BFTl9BQ1RJVklUWV9SRVNQT05EX1dJVEhfREFUQV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY29tbWVudCxcbiAgICAgICAgICBvcHRpb25hbF9mZWVzOiBvcHRpb25hbEZlZXNcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZU1lbWJlckFjdGl2aXR5KG1lbWJlcklkOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlSWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGU6IHVua25vd24pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5SW52aXRlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJbnZpdGVJZFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eUludml0ZVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVB1YmxpY0FjdGl2aXR5SW52aXRlKGlkOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUludml0ZUZhY3RvcnksXG4gICAgICAgIFJvbGUuUHVibGljLFxuICAgICAgICBQVUJMSUNfQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICB0b2tlblxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eUludml0ZVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVB1YmxpY09wZW5BY3Rpdml0eUludml0ZShpZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZTogdW5rbm93bikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX09QRU5fQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBpZFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eUludml0ZVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eSh0ZWFtSWQ6IHN0cmluZywgYWN0aXZpdHk6IEFjdGl2aXR5KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgaWQ6IGFjdGl2aXR5LmlkXG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMucmVtb3ZlVW51c2VkQWN0aXZpdHlGaWVsZHMoey4uLmFjdGl2aXR5fSlcbiAgICAgICk7XG4gIH1cblxuICB1cGRhdGVUZWFtQWN0aXZpdHlJbnZpdGUodGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGVJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZTogTWVtYmVyQWN0aXZpdHlJbnZpdGUpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIG1lbWJlckFjdGl2aXR5SW52aXRlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgYWN0aXZpdHlJZCxcbiAgICAgICAgICBhY3Rpdml0eUludml0ZUlkXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2aXR5SW52aXRlXG4gICAgICApXG4gIH1cblxuICB1cGRhdGVUZWFtQWN0aXZpdHlQYXJ0aWNpcGFudHModGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgbWVtYmVyczogQXJyYXk8c3RyaW5nPikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5wb3N0UmVzb3VyY2UoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgfSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfUEFSVElDSVBBTlRTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVyc1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPcGVuQWN0aXZpdHlEYXRlUGFyYW1zKHN0YXJ0RGF0ZTogc3RyaW5nIHwgbnVsbCwgZW5kRGF0ZTogc3RyaW5nIHwgbnVsbCwgYWxsOiBib29sZWFuID0gZmFsc2UpOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSB7XG4gICAgbGV0IHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAgICdhbGwnOiBhbGwgPyAndHJ1ZScgOiAnZmFsc2UnXG4gICAgfTtcblxuICAgIGlmIChzdGFydERhdGUpIHtcbiAgICAgIHBhcmFtc1snc3RhcnRfZGF0ZSddID0gc3RhcnREYXRlIGFzIHN0cmluZztcbiAgICB9XG5cbiAgICBpZiAoZW5kRGF0ZSkge1xuICAgICAgcGFyYW1zWydlbmRfZGF0ZSddID0gZW5kRGF0ZSBhcyBzdHJpbmc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zKG9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtczogT3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zSW50ZXJmYWNlKToge1trZXk6IHN0cmluZ106IHN0cmluZ30ge1xuICAgIGNvbnN0IHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAgIGVuZF9kYXRlOiBvcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMuZW5kRGF0ZSxcbiAgICAgIGxpbWl0OiAnbnVsbCcsXG4gICAgICBzdGFydF9kYXRlOiBvcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMuc3RhcnREYXRlXG4gICAgfTtcblxuICAgIGlmIChvcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMuYWN0aXZpdHlUeXBlSWQpIHtcbiAgICAgIHBhcmFtc1snYWN0aXZpdHlfdHlwZV9pZCddID0gb3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zLmFjdGl2aXR5VHlwZUlkO1xuICAgIH1cblxuICAgIGlmIChvcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMubG9jYXRpb25JZCkge1xuICAgICAgcGFyYW1zWydsb2NhdGlvbl9pZCddID0gb3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zLmxvY2F0aW9uSWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlVW51c2VkQWN0aXZpdHlGaWVsZHMoYWN0aXZpdHk6IFBhcnRpYWw8QWN0aXZpdHk+KTogUGFydGlhbDxBY3Rpdml0eT4ge1xuICAgIGlmICh0eXBlb2YgYWN0aXZpdHkuaWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBkZWxldGUgYWN0aXZpdHkuaWQ7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBhY3Rpdml0eS5maWxlICE9PSAndW5kZWZpbmVkJyAmJiAhYWN0aXZpdHkuZmlsZSkge1xuICAgICAgZGVsZXRlIGFjdGl2aXR5LmZpbGU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBhY3Rpdml0eS5pbnZpdGVfbGFzdF9yZXNwb25zZV9kYXRlICE9PSAndW5kZWZpbmVkJyAmJiAhYWN0aXZpdHkuaW52aXRlX2xhc3RfcmVzcG9uc2VfZGF0ZSkge1xuICAgICAgZGVsZXRlIGFjdGl2aXR5Lmludml0ZV9sYXN0X3Jlc3BvbnNlX2RhdGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjdGl2aXR5O1xuICB9XG59XG4iXX0=