@myclub_se/data-access 2.15.2 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +73 -0
  153. package/esm2022/lib/store/actions/member-card.actions.mjs +71 -0
  154. package/esm2022/lib/store/actions/member.actions.mjs +65 -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 +83 -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 +6 -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 +10080 -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 +298 -0
  319. package/lib/store/actions/member-card.actions.d.ts +251 -0
  320. package/lib/store/actions/member.actions.d.ts +212 -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 +326 -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
@@ -1,470 +0,0 @@
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 PUBLIC_ACTIVITY_INVITE_PATH = 'activities/:id/:token/';
20
- const PUBLIC_OPEN_ACTIVITIES_PATH = 'open-activities/';
21
- const PUBLIC_OPEN_ACTIVITIES_ACTIVITY_TYPES_PATH = 'open-activities/types/';
22
- const PUBLIC_OPEN_ACTIVITIES_ACTIVITY_LOCATIONS_PATH = 'open-activities/locations/';
23
- const PUBLIC_OPEN_ACTIVITY_PATH = 'open-activities/:activityId/';
24
- const PUBLIC_OPEN_ACTIVITY_RESPOND_PATH = 'open-activities/:activityId/respond/';
25
- const PUBLIC_OPEN_ACTIVITY_INVITE_PATH = 'open-activities/invites/:activityId/';
26
- const TEAM_ACTIVITIES_PATH = ':teamId/activities/';
27
- const TEAM_ACTIVITY_INVITES_PATH = ':teamId/activities/:activityId/invites/';
28
- const TEAM_ACTIVITY_INVITE_PATH = ':teamId/activities/:activityId/invites/:activityInviteId/';
29
- const TEAM_ACTIVITY_INVITE_RESEND_PATH = ':teamId/activities/:activityId/invites/:activityInviteId/resend-invite/';
30
- const TEAM_ACTIVITY_NEW_PATH = ':teamId/activities/new/';
31
- const TEAM_ACTIVITY_PARTICIPANTS_PATH = ':teamId/activities/:activityId/participants/';
32
- const TEAM_ACTIVITY_PATH = ':teamId/activities/:id/';
33
- const TEAM_ACTIVITY_QR_CODE_PATH = ':teamId/activities/:id/qr-code/';
34
- const TEAM_ACTIVITY_SETTINGS_PATH = ':teamId/activities/settings/';
35
- const SECTION_ACTIVITY_SETTINGS_PATH = ':sectionId/activities/settings/';
36
- const CLUB_ACTIVITY_SETTINGS_PATH = ':clubId/activities/settings/';
37
- const TEAM_ACTIVITY_TYPES_PATH = ':teamId/activities/types/';
38
- const TEAM_CALENDAR_PATH = ':teamId/activities/calendar/';
39
- const CLUB_ACTIVITY_LOCATIONS_PATH = ':clubId/activities/locations/';
40
- const CLUB_ACTIVITY_LOCATION_PATH = ':clubId/activities/locations/:locationId/';
41
- const CLUB_ACTIVITY_TYPES_PATH = ':clubId/activities/types/';
42
- const CLUB_ACTIVITY_TYPE_PATH = ':clubId/activities/types/:typeId/';
43
- const TEAM_ACTIVITY_LOCATIONS_PATH = ':teamId/activities/locations/';
44
- const SECTION_ACTIVITY_LOCATIONS_PATH = ':sectionId/activities/locations/';
45
- const SECTION_ACTIVITY_LOCATION_PATH = ':sectionId/activities/locations/:locationId/';
46
- const SECTION_ACTIVITY_TYPES_PATH = ':sectionId/activities/types/';
47
- const SECTION_ACTIVITY_TYPE_PATH = ':sectionId/activities/types/:typeId/';
48
- export class ActivityService {
49
- constructor(apiService) {
50
- this.apiService = apiService;
51
- }
52
- addTeamActivityInvites(teamId, activityId, memberIds) {
53
- return this.apiService
54
- .postResource(() => true, Role.TeamAdmin, TEAM_ACTIVITY_INVITES_PATH, {
55
- teamId,
56
- activityId
57
- }, {
58
- members: memberIds
59
- });
60
- }
61
- createTeamActivity(teamId, data) {
62
- return this.apiService
63
- .postResource(activityFactory, Role.TeamAdmin, TEAM_ACTIVITIES_PATH, {
64
- teamId
65
- }, this.removeUnusedActivityFields(data));
66
- }
67
- deleteTeamActivity(teamId, id) {
68
- return this.apiService
69
- .deleteResource(Role.TeamAdmin, TEAM_ACTIVITY_PATH, {
70
- teamId,
71
- id
72
- });
73
- }
74
- deleteTeamActivityInvite(teamId, activityId, activityInviteId) {
75
- return this.apiService
76
- .deleteResource(Role.TeamAdmin, TEAM_ACTIVITY_INVITE_PATH, {
77
- teamId,
78
- activityId,
79
- activityInviteId
80
- });
81
- }
82
- getMemberActivity(memberId, activityId) {
83
- return this.apiService
84
- .getResource(activityFactory, Role.MemberAdmin, MEMBER_ACTIVITY_PATH, {
85
- memberId,
86
- activityId
87
- });
88
- }
89
- getMemberActivityInvite(memberId, activityInviteId) {
90
- return this.apiService
91
- .getResource(activityInviteFactory, Role.MemberAdmin, MEMBER_ACTIVITY_INVITE_PATH, {
92
- memberId,
93
- activityInviteId
94
- });
95
- }
96
- getMemberActivityInvites(memberId) {
97
- const params = { limit: 'null' };
98
- return this.apiService
99
- .getCollection(activityInviteFactory, Role.MemberAdmin, MEMBER_ACTIVITY_INVITES_PATH, { memberId }, {
100
- params
101
- });
102
- }
103
- getMemberCalendarEvents(memberId, startDate = null, endDate = null) {
104
- const params = { limit: 'null' };
105
- if (startDate) {
106
- params['search_start_day'] = startDate;
107
- }
108
- if (endDate) {
109
- params['search_end_day'] = endDate;
110
- }
111
- return this.apiService
112
- .getCollection(eventFactory, Role.MemberAdmin, MEMBER_CALENDAR_PATH, { memberId }, {
113
- params
114
- });
115
- }
116
- getMemberOpenActivities(memberId, openActivitySearchParams) {
117
- return this.apiService
118
- .getCollection(openActivityFactory, Role.MemberAdmin, MEMBER_OPEN_ACTIVITIES_PATH, { memberId }, {
119
- params: this.getOpenActivitySearchParams(openActivitySearchParams)
120
- });
121
- }
122
- getMemberOpenActivity(memberId, activityId) {
123
- return this.apiService
124
- .getResource(openActivityFactory, Role.MemberAdmin, MEMBER_OPEN_ACTIVITY_PATH, {
125
- memberId,
126
- activityId
127
- });
128
- }
129
- getMemberOpenActivityActivityTypes(memberId, startDate = null, endDate = null, all = false) {
130
- return this.apiService
131
- .getCollection(activityTypeFactory, Role.MemberAdmin, MEMBER_OPEN_ACTIVITIES_ACTIVITY_TYPES_PATH, {
132
- memberId
133
- }, {
134
- params: this.getOpenActivityDateParams(startDate, endDate, all)
135
- });
136
- }
137
- getMemberOpenActivityLocations(memberId, startDate = null, endDate = null, all = false) {
138
- return this.apiService
139
- .getCollection(activityLocationFactory, Role.MemberAdmin, MEMBER_OPEN_ACTIVITIES_ACTIVITY_LOCATIONS_PATH, {
140
- memberId
141
- }, {
142
- params: this.getOpenActivityDateParams(startDate, endDate, all)
143
- });
144
- }
145
- getPublicActivityInvite(id, token) {
146
- return this.apiService
147
- .getResource(activityInviteFactory, Role.Public, PUBLIC_ACTIVITY_INVITE_PATH, {
148
- id,
149
- token
150
- });
151
- }
152
- getPublicOpenActivities(openActivitySearchParams) {
153
- return this.apiService
154
- .getCollection(openActivityFactory, Role.Public, PUBLIC_OPEN_ACTIVITIES_PATH, {}, { params: this.getOpenActivitySearchParams(openActivitySearchParams) });
155
- }
156
- getPublicOpenActivity(activityId) {
157
- return this.apiService
158
- .getResource(openActivityFactory, Role.Public, PUBLIC_OPEN_ACTIVITY_PATH, { activityId });
159
- }
160
- getPublicOpenActivityActivityTypes(startDate = null, endDate = null, all = false) {
161
- return this.apiService
162
- .getCollection(activityTypeFactory, Role.Public, PUBLIC_OPEN_ACTIVITIES_ACTIVITY_TYPES_PATH, {}, {
163
- params: this.getOpenActivityDateParams(startDate, endDate, all)
164
- });
165
- }
166
- getPublicOpenActivityLocations(startDate = null, endDate = null, all = false) {
167
- return this.apiService
168
- .getCollection(activityLocationFactory, Role.Public, PUBLIC_OPEN_ACTIVITIES_ACTIVITY_LOCATIONS_PATH, {}, {
169
- params: this.getOpenActivityDateParams(startDate, endDate, all)
170
- });
171
- }
172
- getTeamActivity(teamId, id) {
173
- return this.apiService
174
- .getResource(activityFactory, Role.TeamAdmin, TEAM_ACTIVITY_PATH, { teamId, id });
175
- }
176
- getTeamActivityQRCode(teamId, id) {
177
- return this.apiService
178
- .getResource(activityFactory, Role.TeamAdmin, TEAM_ACTIVITY_QR_CODE_PATH, { teamId, id });
179
- }
180
- getActivityLocations(role, clubOrSectionOrTeamId, force = false) {
181
- if (role == Role.ClubAdmin) {
182
- return this.getClubActivityLocations(clubOrSectionOrTeamId, force);
183
- }
184
- else if (role == Role.SectionAdmin) {
185
- return this.getSectionActivityLocations(clubOrSectionOrTeamId, force);
186
- }
187
- return this.getTeamActivityLocations(clubOrSectionOrTeamId, force);
188
- }
189
- getTeamActivityLocations(teamId, force = false) {
190
- if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 }) && !force) {
191
- return of(this.activityLocationCollection);
192
- }
193
- return this.apiService
194
- .getCollection(activityLocationFactory, Role.TeamAdmin, TEAM_ACTIVITY_LOCATIONS_PATH, { teamId }, { params: { limit: 'null' } }).pipe(tap((activityLocationCollection) => {
195
- this.activityLocationResponseDate = new Date();
196
- this.activityLocationCollection = activityLocationCollection;
197
- }));
198
- }
199
- getClubActivityLocations(clubId, force = false) {
200
- if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 }) && !force) {
201
- return of(this.activityLocationCollection);
202
- }
203
- return this.apiService
204
- .getCollection(activityLocationFactory, Role.ClubAdmin, CLUB_ACTIVITY_LOCATIONS_PATH, { clubId }, { params: { limit: 'null' } }).pipe(tap((activityLocationCollection) => {
205
- this.activityLocationResponseDate = new Date();
206
- this.activityLocationCollection = activityLocationCollection;
207
- }));
208
- }
209
- getSectionActivityLocations(sectionId, force = false) {
210
- if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 }) && !force) {
211
- return of(this.activityLocationCollection);
212
- }
213
- return this.apiService
214
- .getCollection(activityLocationFactory, Role.SectionAdmin, SECTION_ACTIVITY_LOCATIONS_PATH, { sectionId }, { params: { limit: 'null' } }).pipe(tap((activityLocationCollection) => {
215
- this.activityLocationResponseDate = new Date();
216
- this.activityLocationCollection = activityLocationCollection;
217
- }));
218
- }
219
- updateActivityLocation(role, clubOrSectionOrTeamId, location) {
220
- if (role === Role.ClubAdmin) {
221
- return this.updateClubActivityLocation(clubOrSectionOrTeamId, location);
222
- }
223
- return this.updateSectionActivityLocation(clubOrSectionOrTeamId, location);
224
- }
225
- updateClubActivityLocation(clubId, location) {
226
- return this.apiService
227
- .updateResource(activityLocationFactory, Role.ClubAdmin, CLUB_ACTIVITY_LOCATION_PATH, {
228
- clubId,
229
- locationId: location.id
230
- }, location);
231
- }
232
- updateMemberActivityAttendance(memberId, activityId) {
233
- return this.apiService
234
- .postResourceNoResponse(Role.MemberAdmin, MEMBER_ACTIVITY_ATTENDANCE_PATH, {
235
- memberId,
236
- activityId
237
- }, {});
238
- }
239
- updateSectionActivityLocation(sectionId, location) {
240
- return this.apiService
241
- .updateResource(activityLocationFactory, Role.SectionAdmin, SECTION_ACTIVITY_LOCATION_PATH, {
242
- sectionId,
243
- locationId: location.id
244
- }, location);
245
- }
246
- getTeamActivityNew(teamId) {
247
- return this.apiService
248
- .getResource(activityFactory, Role.TeamAdmin, TEAM_ACTIVITY_NEW_PATH, { teamId });
249
- }
250
- getTeamActivityParticipants(teamId, activityId) {
251
- return this.apiService
252
- .getCollection(searchMemberFactory, Role.TeamAdmin, TEAM_ACTIVITY_PARTICIPANTS_PATH, {
253
- teamId,
254
- activityId
255
- }, { params: { limit: 'null' } });
256
- }
257
- getActivitySettings(role, clubOrSectionOrTeamId) {
258
- if (role === Role.ClubAdmin) {
259
- return this.getClubActivitySettings(clubOrSectionOrTeamId);
260
- }
261
- else if (role == Role.SectionAdmin) {
262
- return this.getSectionActivitySettings(clubOrSectionOrTeamId);
263
- }
264
- return this.getTeamActivitySettings(clubOrSectionOrTeamId);
265
- }
266
- getTeamActivitySettings(teamId) {
267
- return this.apiService
268
- .getResource(activitySettingsFactory, Role.TeamAdmin, TEAM_ACTIVITY_SETTINGS_PATH, {
269
- teamId
270
- });
271
- }
272
- getSectionActivitySettings(sectionId) {
273
- return this.apiService
274
- .getResource(activitySettingsFactory, Role.SectionAdmin, SECTION_ACTIVITY_SETTINGS_PATH, {
275
- sectionId
276
- });
277
- }
278
- getClubActivitySettings(clubId) {
279
- return this.apiService
280
- .getResource(activitySettingsFactory, Role.ClubAdmin, CLUB_ACTIVITY_SETTINGS_PATH, {
281
- clubId,
282
- });
283
- }
284
- getActivityTypes(role, clubOrSectionOrTeamId) {
285
- if (role === Role.ClubAdmin) {
286
- return this.getClubActivityTypes(clubOrSectionOrTeamId);
287
- }
288
- else if (role === Role.SectionAdmin) {
289
- return this.getSectionActivityTypes(clubOrSectionOrTeamId);
290
- }
291
- return this.getTeamActivityTypes(clubOrSectionOrTeamId);
292
- }
293
- getTeamActivityTypes(teamId) {
294
- return this.apiService
295
- .getCollection(activityTypeFactory, Role.TeamAdmin, TEAM_ACTIVITY_TYPES_PATH, { teamId }, { params: { limit: 'null' } });
296
- }
297
- getClubActivityTypes(clubId) {
298
- return this.apiService
299
- .getCollection(activityTypeFactory, Role.ClubAdmin, CLUB_ACTIVITY_TYPES_PATH, { clubId }, { params: { limit: 'null' } });
300
- }
301
- getSectionActivityTypes(sectionId) {
302
- return this.apiService
303
- .getCollection(activityTypeFactory, Role.SectionAdmin, SECTION_ACTIVITY_TYPES_PATH, { sectionId }, { params: { limit: 'null' } });
304
- }
305
- updateActivityType(role, clubOrSectionOrTeamId, activityType) {
306
- if (role === Role.ClubAdmin) {
307
- return this.updateClubActivityType(clubOrSectionOrTeamId, activityType);
308
- }
309
- return this.updateSectionActivityType(clubOrSectionOrTeamId, activityType);
310
- }
311
- updateClubActivityType(clubId, activityType) {
312
- return this.apiService
313
- .updateResource(activityTypeFactory, Role.ClubAdmin, CLUB_ACTIVITY_TYPE_PATH, {
314
- clubId,
315
- typeId: activityType.id,
316
- }, activityType);
317
- }
318
- updateSectionActivityType(sectionId, activityType) {
319
- return this.apiService
320
- .updateResource(activityTypeFactory, Role.SectionAdmin, SECTION_ACTIVITY_TYPE_PATH, {
321
- sectionId,
322
- typeId: activityType.id,
323
- }, activityType);
324
- }
325
- getTeamCalendarEvents(teamId, startDate = null, endDate = null) {
326
- const params = { limit: 'null' };
327
- if (startDate) {
328
- params['search_start_day'] = startDate;
329
- }
330
- if (endDate) {
331
- params['search_end_day'] = endDate;
332
- }
333
- return this.apiService
334
- .getCollection(eventFactory, Role.TeamAdmin, TEAM_CALENDAR_PATH, { teamId }, {
335
- params
336
- });
337
- }
338
- resendInvite(teamId, activityId, activityInviteId) {
339
- return this.apiService
340
- .postResource(activityInviteFactory, Role.TeamAdmin, TEAM_ACTIVITY_INVITE_RESEND_PATH, {
341
- teamId,
342
- activityId,
343
- activityInviteId
344
- }, {});
345
- }
346
- removeMemberOpenActivity(memberId, activityId) {
347
- return this.apiService
348
- .deleteResource(Role.MemberAdmin, MEMBER_OPEN_ACTIVITY_RESPOND_PATH, {
349
- memberId,
350
- activityId
351
- });
352
- }
353
- removePublicOpenActivity(activityId) {
354
- return this.apiService
355
- .deleteResource(Role.Public, PUBLIC_OPEN_ACTIVITY_RESPOND_PATH, {
356
- activityId
357
- });
358
- }
359
- signUpMemberOpenActivity(memberId, activityId, comment, optionalFees) {
360
- return this.apiService
361
- .updateResourceNoResponse(Role.MemberAdmin, MEMBER_OPEN_ACTIVITY_RESPOND_PATH, {
362
- memberId,
363
- activityId
364
- }, {
365
- comment,
366
- optional_fees: optionalFees
367
- });
368
- }
369
- signUpPublicOpenActivity(activityId, comment, optionalFees) {
370
- return this.apiService
371
- .updateResourceNoResponse(Role.MemberAdmin, PUBLIC_OPEN_ACTIVITY_RESPOND_PATH, {
372
- activityId
373
- }, {
374
- comment,
375
- optional_fees: optionalFees
376
- });
377
- }
378
- updateMemberActivity(memberId, activityInviteId, activityInvite) {
379
- return this.apiService
380
- .updateResource(activityInviteFactory, Role.MemberAdmin, MEMBER_ACTIVITY_INVITE_PATH, {
381
- memberId,
382
- activityInviteId
383
- }, activityInvite);
384
- }
385
- updatePublicActivityInvite(id, token, activityInvite) {
386
- return this.apiService
387
- .updateResource(activityInviteFactory, Role.Public, PUBLIC_ACTIVITY_INVITE_PATH, {
388
- id,
389
- token
390
- }, activityInvite);
391
- }
392
- updatePublicOpenActivityInvite(id, activityInvite) {
393
- return this.apiService
394
- .updateResource(activityInviteFactory, Role.Public, PUBLIC_OPEN_ACTIVITY_INVITE_PATH, {
395
- id
396
- }, activityInvite);
397
- }
398
- updateTeamActivity(teamId, activity) {
399
- return this.apiService
400
- .updateResource(activityFactory, Role.TeamAdmin, TEAM_ACTIVITY_PATH, {
401
- teamId,
402
- id: activity.id
403
- }, this.removeUnusedActivityFields(activity));
404
- }
405
- updateTeamActivityInvite(teamId, activityId, activityInviteId, activityInvite) {
406
- return this.apiService
407
- .updateResource(memberActivityInviteFactory, Role.TeamAdmin, TEAM_ACTIVITY_INVITE_PATH, {
408
- teamId,
409
- activityId,
410
- activityInviteId
411
- }, activityInvite);
412
- }
413
- updateTeamActivityParticipants(teamId, activityId, members) {
414
- return this.apiService
415
- .postResource(() => {
416
- }, Role.TeamAdmin, TEAM_ACTIVITY_PARTICIPANTS_PATH, {
417
- teamId,
418
- activityId
419
- }, {
420
- members
421
- });
422
- }
423
- getOpenActivityDateParams(startDate, endDate, all = false) {
424
- let params = {
425
- 'all': all ? 'true' : 'false'
426
- };
427
- if (startDate) {
428
- params['start_date'] = startDate;
429
- }
430
- if (endDate) {
431
- params['end_date'] = endDate;
432
- }
433
- return params;
434
- }
435
- getOpenActivitySearchParams(openActivitySearchParams) {
436
- const params = {
437
- end_date: openActivitySearchParams.endDate,
438
- limit: 'null',
439
- start_date: openActivitySearchParams.startDate
440
- };
441
- if (openActivitySearchParams.activityTypeId) {
442
- params['activity_type_id'] = openActivitySearchParams.activityTypeId;
443
- }
444
- if (openActivitySearchParams.locationId) {
445
- params['location_id'] = openActivitySearchParams.locationId;
446
- }
447
- return params;
448
- }
449
- removeUnusedActivityFields(activity) {
450
- if (typeof activity.id !== 'undefined') {
451
- delete activity.id;
452
- }
453
- if (typeof activity.file !== 'undefined' && !activity.file) {
454
- delete activity.file;
455
- }
456
- if (typeof activity.invite_last_response_date !== 'undefined' && !activity.invite_last_response_date) {
457
- delete activity.invite_last_response_date;
458
- }
459
- return activity;
460
- }
461
- }
462
- ActivityService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: ActivityService, deps: [{ token: i1.ApiService }], target: i0.ɵɵFactoryTarget.Injectable });
463
- ActivityService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: ActivityService, providedIn: 'root' });
464
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: ActivityService, decorators: [{
465
- type: Injectable,
466
- args: [{
467
- providedIn: 'root'
468
- }]
469
- }], ctorParameters: function () { return [{ type: i1.ApiService }]; } });
470
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc2VydmljZXMvYWN0aXZpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFPTCxJQUFJLEdBQ0wsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsdUJBQXVCLEVBR3ZCLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLDJCQUEyQixFQUFFLG1CQUFtQixFQUNoRCxtQkFBbUIsR0FDcEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLFVBQVUsQ0FBQzs7O0FBSTdCLE1BQU0sK0JBQStCLEdBQUcsdURBQXVELENBQUM7QUFDaEcsTUFBTSwyQkFBMkIsR0FBRyx5Q0FBeUMsQ0FBQztBQUM5RSxNQUFNLG9CQUFvQixHQUFHLDRDQUE0QyxDQUFDO0FBQzFFLE1BQU0sNEJBQTRCLEdBQUcsdUJBQXVCLENBQUM7QUFDN0QsTUFBTSxvQkFBb0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUM5RCxNQUFNLDJCQUEyQixHQUFHLDRCQUE0QixDQUFDO0FBQ2pFLE1BQU0sMENBQTBDLEdBQUcsa0NBQWtDLENBQUM7QUFDdEYsTUFBTSw4Q0FBOEMsR0FBRyxzQ0FBc0MsQ0FBQztBQUM5RixNQUFNLHlCQUF5QixHQUFHLHdDQUF3QyxDQUFDO0FBQzNFLE1BQU0saUNBQWlDLEdBQUcsZ0RBQWdELENBQUM7QUFFM0YsTUFBTSwyQkFBMkIsR0FBRyx3QkFBd0IsQ0FB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Q2hCLENBQUM7SUFFTywwQkFBMEIsQ0FBQyxRQUEyQjtRQUM1RCxJQUFJLE9BQU8sUUFBUSxDQUFDLEVBQUUsS0FBSyxXQUFXLEVBQUU7WUFDdEMsT0FBTyxRQUFRLENBQUMsRUFBRSxDQUFDO1NBQ3BCO1FBRUQsSUFBSSxPQUFPLFFBQVEsQ0FBQyxJQUFJLEtBQUssV0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtZQUMxRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7U0FDdEI7UUFFRCxJQUFJLE9BQU8sUUFBUSxDQUFDLHlCQUF5QixLQUFLLFdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsRUFBRTtZQUNwRyxPQUFPLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQztTQUMzQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7OzZHQWp2QlUsZUFBZTtpSEFBZixlQUFlLGNBRmQsTUFBTTs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FwaVNlcnZpY2V9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQWN0aXZpdHksXG4gIEFjdGl2aXR5TG9jYXRpb24sIEFjdGl2aXR5TG9jYXRpb25Hcm91cCxcbiAgQWN0aXZpdHlMb2NhdGlvblRhZyxcbiAgQWN0aXZpdHlUeXBlLFxuICBDb2xsZWN0aW9uLFxuICBNZW1iZXJBY3Rpdml0eUludml0ZSxcbiAgUm9sZSxcbn0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7dGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge29mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGFjdGl2aXR5RmFjdG9yeSxcbiAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICBhY3Rpdml0eUxvY2F0aW9uRmFjdG9yeSxcbiAgYWN0aXZpdHlMb2NhdGlvbkdyb3VwRmFjdG9yeSxcbiAgYWN0aXZpdHlMb2NhdGlvblRhZ0ZhY3RvcnksXG4gIGFjdGl2aXR5U2V0dGluZ3NGYWN0b3J5LFxuICBhY3Rpdml0eVR5cGVGYWN0b3J5LFxuICBldmVudEZhY3RvcnksXG4gIG1lbWJlckFjdGl2aXR5SW52aXRlRmFjdG9yeSwgb3BlbkFjdGl2aXR5RmFjdG9yeSxcbiAgc2VhcmNoTWVtYmVyRmFjdG9yeSxcbn0gZnJvbSAnLi9mYWN0b3JpZXMnO1xuaW1wb3J0IHtzdWJ9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7YWN0aXZpdHlMb2NhdGlvblBhcnRGYWN0b3J5fSBmcm9tIFwiLi9mYWN0b3JpZXMvYWN0aXZpdHktbG9jYXRpb24tcGFydC1mYWN0b3J5XCI7XG5pbXBvcnQgeyBPcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXNJbnRlcmZhY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuY29uc3QgTUVNQkVSX0FDVElWSVRZX0FUVEVOREFOQ0VfUEFUSCA9ICc6bWVtYmVySWQvYWN0aXZpdGllcy9hY3Rpdml0eS86YWN0aXZpdHlJZC9hdHRlbmRhbmNlLyc7XG5jb25zdCBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFX1BBVEggPSAnOm1lbWJlcklkL2FjdGl2aXRpZXMvOmFjdGl2aXR5SW52aXRlSWQvJztcbmNvbnN0IE1FTUJFUl9BQ1RJVklUWV9QQVRIID0gJzptZW1iZXJJZC9hY3Rpdml0aWVzL2FjdGl2aXR5LzphY3Rpdml0eUlkLyc7XG5jb25zdCBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFU19QQVRIID0gJzptZW1iZXJJZC9hY3Rpdml0aWVzLyc7XG5jb25zdCBNRU1CRVJfQ0FMRU5EQVJfUEFUSCA9ICc6bWVtYmVySWQvYWN0aXZpdGllcy9jYWxlbmRhci8nO1xuY29uc3QgTUVNQkVSX09QRU5fQUNUSVZJVElFU19QQVRIID0gJzptZW1iZXJJZC9vcGVuLWFjdGl2aXRpZXMvJztcbmNvbnN0IE1FTUJFUl9PUEVOX0FDVElWSVRJRVNfQUNUSVZJVFlfVFlQRVNfUEFUSCA9ICc6bWVtYmVySWQvb3Blbi1hY3Rpdml0aWVzL3R5cGVzLyc7XG5jb25zdCBNRU1CRVJfT1BFTl9BQ1RJVklUSUVTX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRIID0gJzptZW1iZXJJZC9vcGVuLWFjdGl2aXRpZXMvbG9jYXRpb25zLyc7XG5jb25zdCBNRU1CRVJfT1BFTl9BQ1RJVklUWV9QQVRIID0gJzptZW1iZXJJZC9vcGVuLWFjdGl2aXRpZXMvOmFjdGl2aXR5SWQvJztcbmNvbnN0IE1FTUJFUl9PUEVOX0FDVElWSVRZX1JFU1BPTkRfUEFUSCA9ICc6bWVtYmVySWQvb3Blbi1hY3Rpdml0aWVzLzphY3Rpdml0eUlkL3Jlc3BvbmQvJztcblxuY29uc3QgUFVCTElDX0FDVElWSVRZX0lOVklURV9QQVRIID0gJ2FjdGl2aXRpZXMvOmlkLzp0b2tlbi8nO1xuY29uc3QgUFVCTElDX09QRU5fQUNUSVZJVElFU19QQVRIID0gJ29wZW4tYWN0aXZpdGllcy8nO1xuY29uc3QgUFVCTElDX09QRU5fQUNUSVZJVElFU19BQ1RJVklUWV9UWVBFU19QQVRIID0gJ29wZW4tYWN0aXZpdGllcy90eXBlcy8nO1xuY29uc3QgUFVCTElDX09QRU5fQUNUSVZJVElFU19BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCA9ICdvcGVuLWFjdGl2aXRpZXMvbG9jYXRpb25zLyc7XG5jb25zdCBQVUJMSUNfT1BFTl9BQ1RJVklUWV9QQVRIID0gJ29wZW4tYWN0aXZpdGllcy86YWN0aXZpdHlJZC8nO1xuY29uc3QgUFVCTElDX09QRU5fQUNUSVZJVFlfUkVTUE9ORF9QQVRIID0gJ29wZW4tYWN0aXZpdGllcy86YWN0aXZpdHlJZC9yZXNwb25kLyc7XG5jb25zdCBQVUJMSUNfT1BFTl9BQ1RJVklUWV9JTlZJVEVfUEFUSCA9ICdvcGVuLWFjdGl2aXRpZXMvaW52aXRlcy86YWN0aXZpdHlJZC8nO1xuXG5jb25zdCBURUFNX0FDVElWSVRJRVNfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfSU5WSVRFU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy86YWN0aXZpdHlJZC9pbnZpdGVzLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX0lOVklURV9QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy86YWN0aXZpdHlJZC9pbnZpdGVzLzphY3Rpdml0eUludml0ZUlkLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX0lOVklURV9SRVNFTkRfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvOmFjdGl2aXR5SWQvaW52aXRlcy86YWN0aXZpdHlJbnZpdGVJZC9yZXNlbmQtaW52aXRlLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX05FV19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy9uZXcvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfUEFSVElDSVBBTlRTX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzLzphY3Rpdml0eUlkL3BhcnRpY2lwYW50cy8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy86aWQvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfUVJfQ09ERV9QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy86aWQvcXItY29kZS8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9TRVRUSU5HU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy9zZXR0aW5ncy8nO1xuY29uc3QgU0VDVElPTl9BQ1RJVklUWV9TRVRUSU5HU19QQVRIID0gJzpzZWN0aW9uSWQvYWN0aXZpdGllcy9zZXR0aW5ncy8nO1xuY29uc3QgQ0xVQl9BQ1RJVklUWV9TRVRUSU5HU19QQVRIID0gJzpjbHViSWQvYWN0aXZpdGllcy9zZXR0aW5ncy8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9UWVBFU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy90eXBlcy8nO1xuY29uc3QgVEVBTV9DQUxFTkRBUl9QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy9jYWxlbmRhci8nO1xuXG5jb25zdCBDTFVCX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRIID0gJzpjbHViSWQvYWN0aXZpdGllcy9sb2NhdGlvbnMvJztcbmNvbnN0IENMVUJfQUNUSVZJVFlfTE9DQVRJT05fUEFUSCA9ICc6Y2x1YklkL2FjdGl2aXRpZXMvbG9jYXRpb25zLzpsb2NhdGlvbklkLyc7XG5jb25zdCBDTFVCX0FDVElWSVRZX1RZUEVTX1BBVEggPSAnOmNsdWJJZC9hY3Rpdml0aWVzL3R5cGVzLyc7XG5jb25zdCBDTFVCX0FDVElWSVRZX1RZUEVfUEFUSCA9ICc6Y2x1YklkL2FjdGl2aXRpZXMvdHlwZXMvOnR5cGVJZC8nO1xuXG5jb25zdCBURUFNX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy9sb2NhdGlvbnMvJztcblxuY29uc3QgU0VDVElPTl9BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCA9ICc6c2VjdGlvbklkL2FjdGl2aXRpZXMvbG9jYXRpb25zLyc7XG5jb25zdCBTRUNUSU9OX0FDVElWSVRZX0xPQ0FUSU9OX1BBVEggPSAnOnNlY3Rpb25JZC9hY3Rpdml0aWVzL2xvY2F0aW9ucy86bG9jYXRpb25JZC8nO1xuY29uc3QgU0VDVElPTl9BQ1RJVklUWV9UWVBFU19QQVRIID0gJzpzZWN0aW9uSWQvYWN0aXZpdGllcy90eXBlcy8nO1xuY29uc3QgU0VDVElPTl9BQ1RJVklUWV9UWVBFX1BBVEggPSAnOnNlY3Rpb25JZC9hY3Rpdml0aWVzL3R5cGVzLzp0eXBlSWQvJztcblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBY3Rpdml0eVNlcnZpY2Uge1xuICBhY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbjogQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPiB8IHVuZGVmaW5lZDtcblxuICBhY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlOiBEYXRlIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpU2VydmljZTogQXBpU2VydmljZSkge1xuICB9XG5cbiAgYWRkVGVhbUFjdGl2aXR5SW52aXRlcyh0ZWFtSWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nLCBtZW1iZXJJZHM6IEFycmF5PHN0cmluZz4pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAucG9zdFJlc291cmNlKFxuICAgICAgICAoKSA9PiB0cnVlLFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9JTlZJVEVTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVyczogbWVtYmVySWRzXG4gICAgICAgIH1cbiAgICAgIClcbiAgfVxuXG4gIGNyZWF0ZVRlYW1BY3Rpdml0eSh0ZWFtSWQ6IHN0cmluZywgZGF0YTogUGFydGlhbDxBY3Rpdml0eT4pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAucG9zdFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRJRVNfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLnJlbW92ZVVudXNlZEFjdGl2aXR5RmllbGRzKGRhdGEpXG4gICAgICApXG4gIH1cblxuICBkZWxldGVUZWFtQWN0aXZpdHkodGVhbUlkOiBzdHJpbmcsIGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZGVsZXRlUmVzb3VyY2UoXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgaWRcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGRlbGV0ZVRlYW1BY3Rpdml0eUludml0ZSh0ZWFtSWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZGVsZXRlUmVzb3VyY2UoXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkLFxuICAgICAgICAgIGFjdGl2aXR5SWQsXG4gICAgICAgICAgYWN0aXZpdHlJbnZpdGVJZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0TWVtYmVyQWN0aXZpdHkobWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9BQ1RJVklUWV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBnZXRNZW1iZXJBY3Rpdml0eUludml0ZShtZW1iZXJJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5SW52aXRlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJbnZpdGVJZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0TWVtYmVyQWN0aXZpdHlJbnZpdGVzKG1lbWJlcklkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7bGltaXQ6ICdudWxsJ307XG5cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFU19QQVRILFxuICAgICAgICB7bWVtYmVySWR9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRNZW1iZXJDYWxlbmRhckV2ZW50cyhtZW1iZXJJZDogc3RyaW5nLCBzdGFydERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBlbmREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgIGNvbnN0IHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtsaW1pdDogJ251bGwnfTtcblxuICAgIGlmIChzdGFydERhdGUpIHtcbiAgICAgIHBhcmFtc1snc2VhcmNoX3N0YXJ0X2RheSddID0gc3RhcnREYXRlO1xuICAgIH1cblxuICAgIGlmIChlbmREYXRlKSB7XG4gICAgICBwYXJhbXNbJ3NlYXJjaF9lbmRfZGF5J10gPSBlbmREYXRlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBldmVudEZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9DQUxFTkRBUl9QQVRILFxuICAgICAgICB7bWVtYmVySWR9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zXG4gICAgICAgIH1cbiAgICAgIClcbiAgfVxuXG4gIGdldE1lbWJlck9wZW5BY3Rpdml0aWVzKG1lbWJlcklkOiBzdHJpbmcsIG9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtczogT3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zSW50ZXJmYWNlKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIG9wZW5BY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9PUEVOX0FDVElWSVRJRVNfUEFUSCxcbiAgICAgICAge21lbWJlcklkfSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtczogdGhpcy5nZXRPcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMob3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zKVxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBnZXRNZW1iZXJPcGVuQWN0aXZpdHkobWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBvcGVuQWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfT1BFTl9BQ1RJVklUWV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0TWVtYmVyT3BlbkFjdGl2aXR5QWN0aXZpdHlUeXBlcyhtZW1iZXJJZDogc3RyaW5nLCBzdGFydERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBlbmREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYWxsOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlUeXBlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX09QRU5fQUNUSVZJVElFU19BQ1RJVklUWV9UWVBFU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtczogdGhpcy5nZXRPcGVuQWN0aXZpdHlEYXRlUGFyYW1zKHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgYWxsKVxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBnZXRNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnMobWVtYmVySWQ6IHN0cmluZywgc3RhcnREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgZW5kRGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGFsbDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5TG9jYXRpb25GYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfT1BFTl9BQ1RJVklUSUVTX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtczogdGhpcy5nZXRPcGVuQWN0aXZpdHlEYXRlUGFyYW1zKHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgYWxsKVxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBnZXRQdWJsaWNBY3Rpdml0eUludml0ZShpZDogc3RyaW5nLCB0b2tlbjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUludml0ZUZhY3RvcnksXG4gICAgICAgIFJvbGUuUHVibGljLFxuICAgICAgICBQVUJMSUNfQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICB0b2tlblxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0UHVibGljT3BlbkFjdGl2aXRpZXMob3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zOiBPcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXNJbnRlcmZhY2UpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgb3BlbkFjdGl2aXR5RmFjdG9yeSxcbiAgICAgICAgUm9sZS5QdWJsaWMsXG4gICAgICAgIFBVQkxJQ19PUEVOX0FDVElWSVRJRVNfUEFUSCxcbiAgICAgICAge30sXG4gICAgICAgIHsgcGFyYW1zOiB0aGlzLmdldE9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtcyhvcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMpIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRQdWJsaWNPcGVuQWN0aXZpdHkoYWN0aXZpdHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBvcGVuQWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX09QRU5fQUNUSVZJVFlfUEFUSCxcbiAgICAgICAge2FjdGl2aXR5SWR9XG4gICAgICApXG4gIH1cblxuICBnZXRQdWJsaWNPcGVuQWN0aXZpdHlBY3Rpdml0eVR5cGVzKHN0YXJ0RGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGVuZERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBhbGw6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eVR5cGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX09QRU5fQUNUSVZJVElFU19BQ1RJVklUWV9UWVBFU19QQVRILFxuICAgICAgICB7fSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtczogdGhpcy5nZXRPcGVuQWN0aXZpdHlEYXRlUGFyYW1zKHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgYWxsKVxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBnZXRQdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnMoc3RhcnREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgZW5kRGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGFsbDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5TG9jYXRpb25GYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX09QRU5fQUNUSVZJVElFU19BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCxcbiAgICAgICAge30sXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXM6IHRoaXMuZ2V0T3BlbkFjdGl2aXR5RGF0ZVBhcmFtcyhzdGFydERhdGUsIGVuZERhdGUsIGFsbClcbiAgICAgICAgfVxuICAgICAgKVxuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5KHRlYW1JZDogc3RyaW5nLCBpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1BBVEgsXG4gICAgICAgIHt0ZWFtSWQsIGlkfVxuICAgICAgKVxuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5UVJDb2RlKHRlYW1JZDogc3RyaW5nLCBpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1FSX0NPREVfUEFUSCxcbiAgICAgICAge3RlYW1JZCwgaWR9XG4gICAgICApXG4gIH1cblxuICBnZXRBY3Rpdml0eUxvY2F0aW9ucyhyb2xlOiBSb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZywgZm9yY2U6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGlmIChyb2xlID09IFJvbGUuQ2x1YkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDbHViQWN0aXZpdHlMb2NhdGlvbnMoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBmb3JjZSk7XG4gICAgfSBlbHNlIGlmIChyb2xlID09IFJvbGUuU2VjdGlvbkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRTZWN0aW9uQWN0aXZpdHlMb2NhdGlvbnMoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBmb3JjZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldFRlYW1BY3Rpdml0eUxvY2F0aW9ucyhjbHViT3JTZWN0aW9uT3JUZWFtSWQsIGZvcmNlKVxuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5TG9jYXRpb25zKHRlYW1JZDogc3RyaW5nLCBmb3JjZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSAmJiB0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgPiBzdWIobmV3IERhdGUoKSwge2hvdXJzOiAxfSkgJiYgIWZvcmNlKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5hY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5TG9jYXRpb25GYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCxcbiAgICAgICAge3RlYW1JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICkucGlwZShcbiAgICAgICAgdGFwKChhY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbjogQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPikgPT4ge1xuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbiA9IGFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGdldENsdWJBY3Rpdml0eUxvY2F0aW9ucyhjbHViSWQ6IHN0cmluZywgZm9yY2U6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGlmICh0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgJiYgdGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlID4gc3ViKG5ldyBEYXRlKCksIHtob3VyczogMX0pICYmICFmb3JjZSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb24pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eUxvY2F0aW9uRmFjdG9yeSxcbiAgICAgICAgUm9sZS5DbHViQWRtaW4sXG4gICAgICAgIENMVUJfQUNUSVZJVFlfTE9DQVRJT05TX1BBVEgsXG4gICAgICAgIHtjbHViSWR9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApLnBpcGUoXG4gICAgICAgIHRhcCgoYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb246IENvbGxlY3Rpb248QWN0aXZpdHlMb2NhdGlvbj4pID0+IHtcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb24gPSBhY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbjtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBnZXRTZWN0aW9uQWN0aXZpdHlMb2NhdGlvbnMoc2VjdGlvbklkOiBzdHJpbmcsIGZvcmNlOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBpZiAodGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlICYmIHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSA+IHN1YihuZXcgRGF0ZSgpLCB7aG91cnM6IDF9KSAmJiAhZm9yY2UpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLmFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvbkZhY3RvcnksXG4gICAgICAgIFJvbGUuU2VjdGlvbkFkbWluLFxuICAgICAgICBTRUNUSU9OX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRILFxuICAgICAgICB7c2VjdGlvbklkfSxcbiAgICAgICAge3BhcmFtczoge2xpbWl0OiAnbnVsbCd9fVxuICAgICAgKS5waXBlKFxuICAgICAgICB0YXAoKGFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uOiBDb2xsZWN0aW9uPEFjdGl2aXR5TG9jYXRpb24+KSA9PiB7XG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uID0gYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb247XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlQWN0aXZpdHlMb2NhdGlvbihyb2xlOiBSb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZywgbG9jYXRpb246IEFjdGl2aXR5TG9jYXRpb24pIHtcbiAgICBpZiAocm9sZSA9PT0gUm9sZS5DbHViQWRtaW4pIHtcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUNsdWJBY3Rpdml0eUxvY2F0aW9uKGNsdWJPclNlY3Rpb25PclRlYW1JZCwgbG9jYXRpb24pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy51cGRhdGVTZWN0aW9uQWN0aXZpdHlMb2NhdGlvbihjbHViT3JTZWN0aW9uT3JUZWFtSWQsIGxvY2F0aW9uKTtcbiAgfVxuXG4gIHVwZGF0ZUNsdWJBY3Rpdml0eUxvY2F0aW9uKGNsdWJJZDogc3RyaW5nLCBsb2NhdGlvbjogQWN0aXZpdHlMb2NhdGlvbikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvbkZhY3RvcnksXG4gICAgICAgIFJvbGUuQ2x1YkFkbWluLFxuICAgICAgICBDTFVCX0FDVElWSVRZX0xPQ0FUSU9OX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBjbHViSWQsXG4gICAgICAgICAgbG9jYXRpb25JZDogbG9jYXRpb24uaWRcbiAgICAgICAgfSxcbiAgICAgICAgbG9jYXRpb25cbiAgICAgICk7XG4gIH1cblxuICB1cGRhdGVNZW1iZXJBY3Rpdml0eUF0dGVuZGFuY2UobWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZU5vUmVzcG9uc2UoXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9BQ1RJVklUWV9BVFRFTkRBTkNFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJJZCxcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH0sXG4gICAgICAgIHt9XG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlU2VjdGlvbkFjdGl2aXR5TG9jYXRpb24oc2VjdGlvbklkOiBzdHJpbmcsIGxvY2F0aW9uOiBBY3Rpdml0eUxvY2F0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUxvY2F0aW9uRmFjdG9yeSxcbiAgICAgICAgUm9sZS5TZWN0aW9uQWRtaW4sXG4gICAgICAgIFNFQ1RJT05fQUNUSVZJVFlfTE9DQVRJT05fUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHNlY3Rpb25JZCxcbiAgICAgICAgICBsb2NhdGlvbklkOiBsb2NhdGlvbi5pZFxuICAgICAgICB9LFxuICAgICAgICBsb2NhdGlvblxuICAgICAgKTtcbiAgfVxuXG4gIGdldFRlYW1BY3Rpdml0eU5ldyh0ZWFtSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9ORVdfUEFUSCxcbiAgICAgICAge3RlYW1JZH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlQYXJ0aWNpcGFudHModGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBzZWFyY2hNZW1iZXJGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9QQVJUSUNJUEFOVFNfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZCxcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBnZXRBY3Rpdml0eVNldHRpbmdzKHJvbGU6IFJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZDogc3RyaW5nKSB7XG4gICAgaWYgKHJvbGUgPT09IFJvbGUuQ2x1YkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDbHViQWN0aXZpdHlTZXR0aW5ncyhjbHViT3JTZWN0aW9uT3JUZWFtSWQpO1xuICAgIH0gZWxzZSBpZiAocm9sZSA9PSBSb2xlLlNlY3Rpb25BZG1pbikge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VjdGlvbkFjdGl2aXR5U2V0dGluZ3MoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGVhbUFjdGl2aXR5U2V0dGluZ3MoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkKTtcbiAgfVxuXG4gIGdldFRlYW1BY3Rpdml0eVNldHRpbmdzKHRlYW1JZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eVNldHRpbmdzRmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfU0VUVElOR1NfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0U2VjdGlvbkFjdGl2aXR5U2V0dGluZ3Moc2VjdGlvbklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5U2V0dGluZ3NGYWN0b3J5LFxuICAgICAgICBSb2xlLlNlY3Rpb25BZG1pbixcbiAgICAgICAgU0VDVElPTl9BQ1RJVklUWV9TRVRUSU5HU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgc2VjdGlvbklkXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRDbHViQWN0aXZpdHlTZXR0aW5ncyhjbHViSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlTZXR0aW5nc0ZhY3RvcnksXG4gICAgICAgIFJvbGUuQ2x1YkFkbWluLFxuICAgICAgICBDTFVCX0FDVElWSVRZX1NFVFRJTkdTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBjbHViSWQsXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRBY3Rpdml0eVR5cGVzKHJvbGU6IFJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZDogc3RyaW5nKSB7XG4gICAgaWYgKHJvbGUgPT09IFJvbGUuQ2x1YkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDbHViQWN0aXZpdHlUeXBlcyhjbHViT3JTZWN0aW9uT3JUZWFtSWQpO1xuICAgIH0gZWxzZSBpZiAocm9sZSA9PT0gUm9sZS5TZWN0aW9uQWRtaW4pIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFNlY3Rpb25BY3Rpdml0eVR5cGVzKGNsdWJPclNlY3Rpb25PclRlYW1JZCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldFRlYW1BY3Rpdml0eVR5cGVzKGNsdWJPclNlY3Rpb25PclRlYW1JZCk7XG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlUeXBlcyh0ZWFtSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eVR5cGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9UWVBFU19QQVRILFxuICAgICAgICB7dGVhbUlkfSxcbiAgICAgICAge3BhcmFtczoge2xpbWl0OiAnbnVsbCd9fVxuICAgICAgKVxuICB9XG5cbiAgZ2V0Q2x1YkFjdGl2aXR5VHlwZXMoY2x1YklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlUeXBlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5DbHViQWRtaW4sXG4gICAgICAgIENMVUJfQUNUSVZJVFlfVFlQRVNfUEFUSCxcbiAgICAgICAge2NsdWJJZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBnZXRTZWN0aW9uQWN0aXZpdHlUeXBlcyhzZWN0aW9uSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eVR5cGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlNlY3Rpb25BZG1pbixcbiAgICAgICAgU0VDVElPTl9BQ1RJVklUWV9UWVBFU19QQVRILFxuICAgICAgICB7c2VjdGlvbklkfSxcbiAgICAgICAge3BhcmFtczoge2xpbWl0OiAnbnVsbCd9fVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZUFjdGl2aXR5VHlwZShyb2xlOiBSb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZywgYWN0aXZpdHlUeXBlOiBBY3Rpdml0eVR5cGUpIHtcbiAgICBpZiAocm9sZSA9PT0gUm9sZS5DbHViQWRtaW4pIHtcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUNsdWJBY3Rpdml0eVR5cGUoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBhY3Rpdml0eVR5cGUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy51cGRhdGVTZWN0aW9uQWN0aXZpdHlUeXBlKGNsdWJPclNlY3Rpb25PclRlYW1JZCwgYWN0aXZpdHlUeXBlKTtcbiAgfVxuXG4gIHVwZGF0ZUNsdWJBY3Rpdml0eVR5cGUoY2x1YklkOiBzdHJpbmcsIGFjdGl2aXR5VHlwZTogQWN0aXZpdHlUeXBlKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eVR5cGVGYWN0b3J5LFxuICAgICAgICBSb2xlLkNsdWJBZG1pbixcbiAgICAgICAgQ0xVQl9BQ1RJVklUWV9UWVBFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBjbHViSWQsXG4gICAgICAgICAgdHlwZUlkOiBhY3Rpdml0eVR5cGUuaWQsXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2aXR5VHlwZSxcbiAgICAgICk7XG4gIH1cblxuICB1cGRhdGVTZWN0aW9uQWN0aXZpdHlUeXBlKHNlY3Rpb25JZDogc3RyaW5nLCBhY3Rpdml0eVR5cGU6IEFjdGl2aXR5VHlwZSkge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlUeXBlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5TZWN0aW9uQWRtaW4sXG4gICAgICAgIFNFQ1RJT05fQUNUSVZJVFlfVFlQRV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgc2VjdGlvbklkLFxuICAgICAgICAgIHR5cGVJZDogYWN0aXZpdHlUeXBlLmlkLFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eVR5cGUsXG4gICAgICApO1xuICB9XG5cbiAgZ2V0VGVhbUNhbGVuZGFyRXZlbnRzKHRlYW1JZDogc3RyaW5nLCBzdGFydERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBlbmREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgIGNvbnN0IHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtsaW1pdDogJ251bGwnfTtcblxuICAgIGlmIChzdGFydERhdGUpIHtcbiAgICAgIHBhcmFtc1snc2VhcmNoX3N0YXJ0X2RheSddID0gc3RhcnREYXRlO1xuICAgIH1cblxuICAgIGlmIChlbmREYXRlKSB7XG4gICAgICBwYXJhbXNbJ3NlYXJjaF9lbmRfZGF5J10gPSBlbmREYXRlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBldmVudEZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0NBTEVOREFSX1BBVEgsXG4gICAgICAgIHt0ZWFtSWR9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICByZXNlbmRJbnZpdGUodGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9JTlZJVEVfUkVTRU5EX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgYWN0aXZpdHlJZCxcbiAgICAgICAgICBhY3Rpdml0eUludml0ZUlkXG4gICAgICAgIH0sXG4gICAgICAgIHt9XG4gICAgICApO1xuICB9XG5cbiAgcmVtb3ZlTWVtYmVyT3BlbkFjdGl2aXR5KG1lbWJlcklkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5kZWxldGVSZXNvdXJjZShcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX09QRU5fQUNUSVZJVFlfUkVTUE9ORF9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICByZW1vdmVQdWJsaWNPcGVuQWN0aXZpdHkoYWN0aXZpdHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmRlbGV0ZVJlc291cmNlKFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX09QRU5fQUNUSVZJVFlfUkVTUE9ORF9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBzaWduVXBNZW1iZXJPcGVuQWN0aXZpdHkobWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nLCBjb21tZW50OiBzdHJpbmcsIG9wdGlvbmFsRmVlczogQXJyYXk8c3RyaW5nPikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZU5vUmVzcG9uc2UoXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9PUEVOX0FDVElWSVRZX1JFU1BPTkRfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIG1lbWJlcklkLFxuICAgICAgICAgIGFjdGl2aXR5SWRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNvbW1lbnQsXG4gICAgICAgICAgb3B0aW9uYWxfZmVlczogb3B0aW9uYWxGZWVzXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuXG4gIHNpZ25VcFB1YmxpY09wZW5BY3Rpdml0eShhY3Rpdml0eUlkOiBzdHJpbmcsIGNvbW1lbnQ6IHN0cmluZywgb3B0aW9uYWxGZWVzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlTm9SZXNwb25zZShcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgUFVCTElDX09QRU5fQUNUSVZJVFlfUkVTUE9ORF9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY29tbWVudCxcbiAgICAgICAgICBvcHRpb25hbF9mZWVzOiBvcHRpb25hbEZlZXNcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZU1lbWJlckFjdGl2aXR5KG1lbWJlcklkOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlSWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGU6IHVua25vd24pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5SW52aXRlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJbnZpdGVJZFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eUludml0ZVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVB1YmxpY0FjdGl2aXR5SW52aXRlKGlkOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUludml0ZUZhY3RvcnksXG4gICAgICAgIFJvbGUuUHVibGljLFxuICAgICAgICBQVUJMSUNfQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICB0b2tlblxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eUludml0ZVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVB1YmxpY09wZW5BY3Rpdml0eUludml0ZShpZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZTogdW5rbm93bikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX09QRU5fQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBpZFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eUludml0ZVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eSh0ZWFtSWQ6IHN0cmluZywgYWN0aXZpdHk6IEFjdGl2aXR5KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgaWQ6IGFjdGl2aXR5LmlkXG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMucmVtb3ZlVW51c2VkQWN0aXZpdHlGaWVsZHMoYWN0aXZpdHkpXG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlVGVhbUFjdGl2aXR5SW52aXRlKHRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlSWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGU6IE1lbWJlckFjdGl2aXR5SW52aXRlKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBtZW1iZXJBY3Rpdml0eUludml0ZUZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkLFxuICAgICAgICAgIGFjdGl2aXR5SWQsXG4gICAgICAgICAgYWN0aXZpdHlJbnZpdGVJZFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eUludml0ZVxuICAgICAgKVxuICB9XG5cbiAgdXBkYXRlVGVhbUFjdGl2aXR5UGFydGljaXBhbnRzKHRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcsIG1lbWJlcnM6IEFycmF5PHN0cmluZz4pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAucG9zdFJlc291cmNlKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgIH0sXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1BBUlRJQ0lQQU5UU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkLFxuICAgICAgICAgIGFjdGl2aXR5SWRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1lbWJlcnNcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3BlbkFjdGl2aXR5RGF0ZVBhcmFtcyhzdGFydERhdGU6IHN0cmluZyB8IG51bGwsIGVuZERhdGU6IHN0cmluZyB8IG51bGwsIGFsbDogYm9vbGVhbiA9IGZhbHNlKToge1trZXk6IHN0cmluZ106IHN0cmluZ30ge1xuICAgIGxldCBwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgICAnYWxsJzogYWxsID8gJ3RydWUnIDogJ2ZhbHNlJ1xuICAgIH07XG5cbiAgICBpZiAoc3RhcnREYXRlKSB7XG4gICAgICBwYXJhbXNbJ3N0YXJ0X2RhdGUnXSA9IHN0YXJ0RGF0ZSBhcyBzdHJpbmc7XG4gICAgfVxuXG4gICAgaWYgKGVuZERhdGUpIHtcbiAgICAgIHBhcmFtc1snZW5kX2RhdGUnXSA9IGVuZERhdGUgYXMgc3RyaW5nO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICBwcml2YXRlIGdldE9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtcyhvcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXM6IE9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtc0ludGVyZmFjZSk6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9IHtcbiAgICBjb25zdCBwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgICBlbmRfZGF0ZTogb3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zLmVuZERhdGUsXG4gICAgICBsaW1pdDogJ251bGwnLFxuICAgICAgc3RhcnRfZGF0ZTogb3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zLnN0YXJ0RGF0ZVxuICAgIH07XG5cbiAgICBpZiAob3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zLmFjdGl2aXR5VHlwZUlkKSB7XG4gICAgICBwYXJhbXNbJ2FjdGl2aXR5X3R5cGVfaWQnXSA9IG9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtcy5hY3Rpdml0eVR5cGVJZDtcbiAgICB9XG5cbiAgICBpZiAob3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zLmxvY2F0aW9uSWQpIHtcbiAgICAgIHBhcmFtc1snbG9jYXRpb25faWQnXSA9IG9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtcy5sb2NhdGlvbklkO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVVudXNlZEFjdGl2aXR5RmllbGRzKGFjdGl2aXR5OiBQYXJ0aWFsPEFjdGl2aXR5Pik6IFBhcnRpYWw8QWN0aXZpdHk+IHtcbiAgICBpZiAodHlwZW9mIGFjdGl2aXR5LmlkICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgZGVsZXRlIGFjdGl2aXR5LmlkO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgYWN0aXZpdHkuZmlsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgIWFjdGl2aXR5LmZpbGUpIHtcbiAgICAgIGRlbGV0ZSBhY3Rpdml0eS5maWxlO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgYWN0aXZpdHkuaW52aXRlX2xhc3RfcmVzcG9uc2VfZGF0ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgIWFjdGl2aXR5Lmludml0ZV9sYXN0X3Jlc3BvbnNlX2RhdGUpIHtcbiAgICAgIGRlbGV0ZSBhY3Rpdml0eS5pbnZpdGVfbGFzdF9yZXNwb25zZV9kYXRlO1xuICAgIH1cblxuICAgIHJldHVybiBhY3Rpdml0eTtcbiAgfVxufVxuIl19