@softheon/armature 10.45.3 → 15.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 (465) hide show
  1. package/assets/styles/material-overrides.scss +103 -88
  2. package/assets/styles/sof-styles.scss +442 -376
  3. package/esm2020/lib/alert-banner/alert-banner-api.mjs +10 -0
  4. package/esm2020/lib/alert-banner/alert-banner.module.mjs +41 -0
  5. package/esm2020/lib/alert-banner/components/alert-banner/alert-banner.component.mjs +83 -0
  6. package/esm2020/lib/alert-banner/models/alert-banner-config.mjs +2 -0
  7. package/esm2020/lib/alert-banner/models/alert-banner-context.mjs +2 -0
  8. package/esm2020/lib/alert-banner/models/constants.mjs +16 -0
  9. package/esm2020/lib/alert-banner/services/alert-banner.service.mjs +44 -0
  10. package/esm2020/lib/armature.module.mjs +176 -0
  11. package/esm2020/lib/base-components/base-component-api.mjs +9 -0
  12. package/esm2020/lib/base-components/base-component.module.mjs +93 -0
  13. package/esm2020/lib/base-components/sof-alert/sof-alert.component.mjs +79 -0
  14. package/esm2020/lib/base-components/sof-banner/sof-banner.component.mjs +49 -0
  15. package/esm2020/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.mjs +188 -0
  16. package/esm2020/lib/base-components/sof-modal/sof-modal.component.mjs +58 -0
  17. package/esm2020/lib/base-components/sof-progress-bar/sof-progress-bar.component.mjs +79 -0
  18. package/esm2020/lib/component-save-print/components/component-save-print/component-save-print.component.mjs +91 -0
  19. package/esm2020/lib/component-save-print/services/component-save-print.service.mjs +30 -0
  20. package/esm2020/lib/component-save-print/sof-ar-component-save-print.module.mjs +32 -0
  21. package/esm2020/lib/core/client-generated/api/session.service.mjs +242 -0
  22. package/esm2020/lib/core/client-generated/configuration.mjs +59 -0
  23. package/esm2020/lib/core/client-generated/encoder.mjs +17 -0
  24. package/esm2020/lib/core/client-generated/model/applicationUserModel.mjs +20 -0
  25. package/esm2020/lib/core/client-generated/model/assertedUserModel.mjs +2 -0
  26. package/esm2020/lib/core/client-generated/model/brandingModel.mjs +2 -0
  27. package/esm2020/lib/core/client-generated/model/errorModel.mjs +13 -0
  28. package/esm2020/lib/core/client-generated/model/folderLink.mjs +13 -0
  29. package/esm2020/lib/core/client-generated/model/identityProfile.mjs +2 -0
  30. package/esm2020/lib/core/client-generated/model/models.mjs +20 -0
  31. package/esm2020/lib/core/client-generated/model/oAuthModel.mjs +13 -0
  32. package/esm2020/lib/core/client-generated/model/preferencesRow.mjs +13 -0
  33. package/esm2020/lib/core/client-generated/model/rolesRow.mjs +13 -0
  34. package/esm2020/lib/core/client-generated/model/sessionGetResponseModel.mjs +2 -0
  35. package/esm2020/lib/core/client-generated/model/sessionPostRequestModel.mjs +2 -0
  36. package/esm2020/lib/core/client-generated/model/sessionPostResponseModel.mjs +2 -0
  37. package/esm2020/lib/core/client-generated/model/sessionPutRequestModel.mjs +2 -0
  38. package/esm2020/lib/core/client-generated/model/sessionPutResponseModel.mjs +2 -0
  39. package/esm2020/lib/core/client-generated/model/sessionResponseModel.mjs +2 -0
  40. package/esm2020/lib/core/client-generated/model/settingsProfile.mjs +2 -0
  41. package/esm2020/lib/core/client-generated/model/themePaletteColorsModel.mjs +13 -0
  42. package/esm2020/lib/core/client-generated/model/themePaletteModel.mjs +2 -0
  43. package/esm2020/lib/core/client-generated/model/trackingModel.mjs +13 -0
  44. package/esm2020/lib/core/client-generated/model/validationRecordsRow.mjs +13 -0
  45. package/esm2020/lib/core/client-generated/variables.mjs +9 -0
  46. package/esm2020/lib/core/components/app-template/app-template.component.mjs +250 -0
  47. package/esm2020/lib/core/functions/guid.mjs +11 -0
  48. package/esm2020/lib/core/functions/naming-convention.mjs +33 -0
  49. package/esm2020/lib/core/initializer/abstract-startup-service.mjs +4 -0
  50. package/esm2020/lib/core/initializer/initializer.service.mjs +189 -0
  51. package/esm2020/lib/core/interceptors/armature-auth-token-append.interceptor.mjs +73 -0
  52. package/esm2020/lib/core/models/base-config.mjs +2 -0
  53. package/esm2020/lib/core/models/constants.mjs +13 -0
  54. package/esm2020/lib/core/models/data-store-config.mjs +4 -0
  55. package/esm2020/lib/core/models/header-config.mjs +2 -0
  56. package/esm2020/lib/core/models/http-verbs.mjs +9 -0
  57. package/esm2020/lib/core/models/navigation-config.mjs +2 -0
  58. package/esm2020/lib/core/models/oidc-auth-settings.mjs +2 -0
  59. package/esm2020/lib/core/models/route-path.mjs +7 -0
  60. package/esm2020/lib/core/models/session-config.mjs +4 -0
  61. package/esm2020/lib/core/models/styles.mjs +2 -0
  62. package/esm2020/lib/core/models/typed-session.mjs +4 -0
  63. package/esm2020/lib/core/models/user-entity-service-config.mjs +12 -0
  64. package/esm2020/lib/core/services/authorization.service.mjs +175 -0
  65. package/esm2020/lib/core/services/banner.service.mjs +43 -0
  66. package/esm2020/lib/core/services/base-config.service.mjs +32 -0
  67. package/esm2020/lib/core/services/custom-auth-config.service.mjs +4 -0
  68. package/esm2020/lib/core/services/default-config.service.mjs +19 -0
  69. package/esm2020/lib/core/services/session.service.mjs +385 -0
  70. package/esm2020/lib/core/services/user-entity.service.mjs +140 -0
  71. package/esm2020/lib/distributed-cache/client-generated/api/api.mjs +4 -0
  72. package/esm2020/lib/distributed-cache/client-generated/api/cache.service.mjs +213 -0
  73. package/esm2020/lib/distributed-cache/client-generated/configuration.mjs +59 -0
  74. package/esm2020/lib/distributed-cache/client-generated/encoder.mjs +17 -0
  75. package/esm2020/lib/distributed-cache/client-generated/model/cacheExpirationType.mjs +16 -0
  76. package/esm2020/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.mjs +2 -0
  77. package/esm2020/lib/distributed-cache/client-generated/model/models.mjs +5 -0
  78. package/esm2020/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.mjs +13 -0
  79. package/esm2020/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.mjs +13 -0
  80. package/esm2020/lib/distributed-cache/client-generated/variables.mjs +9 -0
  81. package/esm2020/lib/distributed-cache/distributed-cache-api.mjs +8 -0
  82. package/esm2020/lib/distributed-cache/distributed-cache.module.mjs +38 -0
  83. package/esm2020/lib/distributed-cache/models/constants.mjs +3 -0
  84. package/esm2020/lib/distributed-cache/models/policy-person.mjs +9 -0
  85. package/esm2020/lib/distributed-cache/services/server-cache.service.mjs +48 -0
  86. package/esm2020/lib/error/components/error-common/error-common.component.mjs +25 -0
  87. package/esm2020/lib/error/error-api.mjs +7 -0
  88. package/esm2020/lib/error/error.module.mjs +31 -0
  89. package/esm2020/lib/error/models/error-common-config.mjs +8 -0
  90. package/esm2020/lib/faq/components/faq/faq.component.mjs +40 -0
  91. package/esm2020/lib/faq/faq-api.mjs +8 -0
  92. package/esm2020/lib/faq/faq.module.mjs +41 -0
  93. package/esm2020/lib/faq/models/faq-config.mjs +4 -0
  94. package/esm2020/lib/faq/models/faq.mjs +8 -0
  95. package/esm2020/lib/footer/components/footer/footer.component.mjs +25 -0
  96. package/esm2020/lib/footer/components/site-map/site-map.component.mjs +25 -0
  97. package/esm2020/lib/footer/footer-api.mjs +10 -0
  98. package/esm2020/lib/footer/footer.module.mjs +45 -0
  99. package/esm2020/lib/footer/models/enum/site-map-direction.mjs +15 -0
  100. package/esm2020/lib/footer/models/footer-config.mjs +4 -0
  101. package/esm2020/lib/footer/models/site-map-models.mjs +2 -0
  102. package/esm2020/lib/forms/components/sof-address/sof-address.component.mjs +110 -0
  103. package/esm2020/lib/forms/directives/alphanumeric/alphanumeric.directive.mjs +78 -0
  104. package/esm2020/lib/forms/directives/input-trim/input-trim.directive.mjs +110 -0
  105. package/esm2020/lib/forms/directives/letters-only/letters-only.directive.mjs +72 -0
  106. package/esm2020/lib/forms/directives/numbers-only/numbers-only.directive.mjs +60 -0
  107. package/esm2020/lib/forms/forms-api.mjs +19 -0
  108. package/esm2020/lib/forms/forms.module.mjs +83 -0
  109. package/esm2020/lib/forms/models/address.mjs +2 -0
  110. package/esm2020/lib/forms/models/constants.mjs +10 -0
  111. package/esm2020/lib/forms/models/county.mjs +2 -0
  112. package/esm2020/lib/forms/models/enums/states.mjs +58 -0
  113. package/esm2020/lib/forms/pipes/phone-format.pipe.mjs +33 -0
  114. package/esm2020/lib/forms/services/alert.service.mjs +167 -0
  115. package/esm2020/lib/header/components/header/header.component.mjs +161 -0
  116. package/esm2020/lib/header/components/mobile-header-menu/mobile-header-menu.component.mjs +39 -0
  117. package/esm2020/lib/header/header-api.mjs +12 -0
  118. package/esm2020/lib/header/header.module.mjs +85 -0
  119. package/esm2020/lib/header/models/header-auth.settings.mjs +32 -0
  120. package/esm2020/lib/header/models/header-language.settings.mjs +2 -0
  121. package/esm2020/lib/header/models/header-theme.settings.mjs +2 -0
  122. package/esm2020/lib/header/models/header.settings.mjs +2 -0
  123. package/esm2020/lib/header/models/mobile-header-nav.settings.mjs +2 -0
  124. package/esm2020/lib/navigation/components/navigation/navigation.component.mjs +555 -0
  125. package/esm2020/lib/navigation/models/nav-theme.settings.mjs +2 -0
  126. package/esm2020/lib/navigation/models/nav.settings.mjs +2 -0
  127. package/esm2020/lib/navigation/models/navigation.mjs +2 -0
  128. package/esm2020/lib/navigation/navigation-api.mjs +9 -0
  129. package/esm2020/lib/navigation/navigation.module.mjs +126 -0
  130. package/esm2020/lib/oauth/models/constants.mjs +6 -0
  131. package/esm2020/lib/oauth/models/generated/accountManagementAssertionModel.mjs +2 -0
  132. package/esm2020/lib/oauth/models/generated/accountManagementRefreshRequestModel.mjs +2 -0
  133. package/esm2020/lib/oauth/models/generated/accountManagementResponseModel.mjs +2 -0
  134. package/esm2020/lib/oauth/models/generated/coverageDetail.mjs +19 -0
  135. package/esm2020/lib/oauth/models/generated/finance.mjs +13 -0
  136. package/esm2020/lib/oauth/models/generated/iSsoResponseModel.mjs +13 -0
  137. package/esm2020/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.mjs +2 -0
  138. package/esm2020/lib/oauth/models/generated/person.mjs +13 -0
  139. package/esm2020/lib/oauth/models/generated/policy.mjs +2 -0
  140. package/esm2020/lib/oauth/models/generated/refreshResponseModel.mjs +13 -0
  141. package/esm2020/lib/oauth/models/hybrid-saml-oauth-config.mjs +4 -0
  142. package/esm2020/lib/oauth/oauth-api.mjs +15 -0
  143. package/esm2020/lib/oauth/oauth.module.mjs +29 -0
  144. package/esm2020/lib/oauth/services/hybrid-saml-oauth.service.mjs +201 -0
  145. package/esm2020/lib/rbac/directives/rbac-action.directive.mjs +50 -0
  146. package/esm2020/lib/rbac/models/access-token-claims.mjs +23 -0
  147. package/esm2020/lib/rbac/models/constants.mjs +4 -0
  148. package/esm2020/lib/rbac/models/decoded-access-token.mjs +69 -0
  149. package/esm2020/lib/rbac/models/rbac-config.mjs +4 -0
  150. package/esm2020/lib/rbac/models/role-access.mjs +10 -0
  151. package/esm2020/lib/rbac/rbac-api.mjs +15 -0
  152. package/esm2020/lib/rbac/rbac.module.mjs +51 -0
  153. package/esm2020/lib/rbac/services/ar-role-nav.service.mjs +91 -0
  154. package/esm2020/lib/rbac/services/oauth2-role.service.mjs +114 -0
  155. package/esm2020/lib/rbac/services/role-nav.service.mjs +4 -0
  156. package/esm2020/lib/resize-panels/components/resize-panels/resize-panels.component.mjs +156 -0
  157. package/esm2020/lib/resize-panels/models/resize-event.mjs +2 -0
  158. package/esm2020/lib/resize-panels/resize-panels-api.mjs +5 -0
  159. package/esm2020/lib/resize-panels/resize-panels.module.mjs +23 -0
  160. package/esm2020/lib/rum/models/arm-error.mjs +29 -0
  161. package/esm2020/lib/rum/models/rum-config.mjs +4 -0
  162. package/esm2020/lib/rum/rum-api.mjs +10 -0
  163. package/esm2020/lib/rum/rum.module.mjs +48 -0
  164. package/esm2020/lib/rum/services/rum.service.mjs +115 -0
  165. package/esm2020/lib/rum/services/shared-error.service.mjs +45 -0
  166. package/esm2020/lib/rum/services/softheon-error-handler.service.mjs +76 -0
  167. package/esm2020/lib/saml/components/redirect-saml/redirect-saml.component.mjs +79 -0
  168. package/esm2020/lib/saml/models/i-saml-request.mjs +2 -0
  169. package/esm2020/lib/saml/models/i-saml-response.mjs +2 -0
  170. package/esm2020/lib/saml/models/redirect-saml-request.mjs +4 -0
  171. package/esm2020/lib/saml/models/sso-gateway-model.mjs +4 -0
  172. package/esm2020/lib/saml/saml-api.mjs +15 -0
  173. package/esm2020/lib/saml/saml.module.mjs +43 -0
  174. package/esm2020/lib/saml/services/entry/abstract-saml-entry.service.mjs +4 -0
  175. package/esm2020/lib/saml/services/entry/sso-gateway-entry.service.mjs +36 -0
  176. package/esm2020/lib/saml/services/send-off/abstract-saml.service.mjs +4 -0
  177. package/esm2020/lib/saml/services/send-off/saml.service.mjs +39 -0
  178. package/esm2020/lib/sof-pipe/constants/constants.mjs +17 -0
  179. package/esm2020/lib/sof-pipe/models/sof-date-pipe-format.mjs +2 -0
  180. package/esm2020/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.mjs +39 -0
  181. package/esm2020/lib/sof-pipe/pipes/sof-date/sof-date.pipe.mjs +59 -0
  182. package/esm2020/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.mjs +28 -0
  183. package/esm2020/lib/sof-pipe/sof-pipe.api.mjs +9 -0
  184. package/esm2020/lib/sof-pipe/sof-pipe.module.mjs +39 -0
  185. package/esm2020/lib/theming/directives/css-override.directive.mjs +69 -0
  186. package/esm2020/lib/theming/models/css-override.mjs +11 -0
  187. package/esm2020/lib/theming/services/theme.service.mjs +167 -0
  188. package/esm2020/lib/theming/theme-api.mjs +6 -0
  189. package/esm2020/lib/theming/theme.module.mjs +31 -0
  190. package/esm2020/public-api.mjs +48 -0
  191. package/esm2020/softheon-armature.mjs +5 -0
  192. package/fesm2015/softheon-armature.mjs +6767 -0
  193. package/fesm2015/softheon-armature.mjs.map +1 -0
  194. package/fesm2020/softheon-armature.mjs +6829 -0
  195. package/fesm2020/softheon-armature.mjs.map +1 -0
  196. package/index.d.ts +5 -0
  197. package/lib/alert-banner/alert-banner.module.d.ts +9 -0
  198. package/lib/alert-banner/components/alert-banner/alert-banner.component.d.ts +3 -0
  199. package/lib/alert-banner/services/alert-banner.service.d.ts +3 -0
  200. package/lib/armature.module.d.ts +15 -0
  201. package/lib/base-components/base-component.module.d.ts +24 -0
  202. package/lib/base-components/sof-alert/sof-alert.component.d.ts +3 -0
  203. package/lib/base-components/sof-banner/sof-banner.component.d.ts +3 -0
  204. package/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.d.ts +3 -0
  205. package/lib/base-components/sof-modal/sof-modal.component.d.ts +3 -0
  206. package/lib/base-components/sof-progress-bar/sof-progress-bar.component.d.ts +3 -0
  207. package/lib/component-save-print/components/component-save-print/component-save-print.component.d.ts +3 -0
  208. package/lib/component-save-print/services/component-save-print.service.d.ts +3 -0
  209. package/lib/component-save-print/sof-ar-component-save-print.module.d.ts +6 -0
  210. package/lib/core/client-generated/api/session.service.d.ts +3 -11
  211. package/lib/core/components/app-template/app-template.component.d.ts +3 -0
  212. package/lib/core/initializer/initializer.service.d.ts +3 -0
  213. package/lib/core/interceptors/armature-auth-token-append.interceptor.d.ts +3 -0
  214. package/lib/core/models/http-verbs.d.ts +1 -1
  215. package/lib/core/services/authorization.service.d.ts +3 -0
  216. package/lib/core/services/banner.service.d.ts +3 -0
  217. package/lib/core/services/base-config.service.d.ts +3 -0
  218. package/lib/core/services/default-config.service.d.ts +3 -0
  219. package/lib/core/services/session.service.d.ts +3 -0
  220. package/lib/core/services/user-entity.service.d.ts +3 -0
  221. package/lib/distributed-cache/client-generated/api/cache.service.d.ts +3 -11
  222. package/lib/distributed-cache/client-generated/model/cacheExpirationType.d.ts +1 -1
  223. package/lib/distributed-cache/distributed-cache.module.d.ts +5 -0
  224. package/lib/distributed-cache/services/server-cache.service.d.ts +3 -0
  225. package/lib/error/components/error-common/error-common.component.d.ts +3 -0
  226. package/lib/error/error.module.d.ts +8 -0
  227. package/lib/faq/components/faq/faq.component.d.ts +3 -0
  228. package/lib/faq/faq.module.d.ts +12 -0
  229. package/lib/footer/components/footer/footer.component.d.ts +3 -0
  230. package/lib/footer/components/site-map/site-map.component.d.ts +3 -0
  231. package/lib/footer/footer.module.d.ts +11 -0
  232. package/lib/forms/components/sof-address/sof-address.component.d.ts +3 -0
  233. package/lib/forms/directives/alphanumeric/alphanumeric.directive.d.ts +3 -0
  234. package/lib/forms/directives/input-trim/input-trim.directive.d.ts +3 -0
  235. package/lib/forms/directives/letters-only/letters-only.directive.d.ts +3 -0
  236. package/lib/forms/directives/numbers-only/numbers-only.directive.d.ts +3 -0
  237. package/lib/forms/forms.module.d.ts +17 -0
  238. package/lib/forms/pipes/phone-format.pipe.d.ts +3 -0
  239. package/lib/forms/services/alert.service.d.ts +3 -0
  240. package/lib/header/components/header/header.component.d.ts +4 -1
  241. package/lib/header/components/mobile-header-menu/mobile-header-menu.component.d.ts +3 -0
  242. package/lib/header/header.module.d.ts +18 -0
  243. package/lib/navigation/components/navigation/navigation.component.d.ts +6 -3
  244. package/lib/navigation/navigation.module.d.ts +22 -0
  245. package/lib/oauth/oauth.module.d.ts +6 -0
  246. package/lib/oauth/services/hybrid-saml-oauth.service.d.ts +3 -0
  247. package/lib/rbac/directives/rbac-action.directive.d.ts +3 -0
  248. package/lib/rbac/rbac.module.d.ts +6 -0
  249. package/lib/rbac/services/ar-role-nav.service.d.ts +3 -0
  250. package/lib/rbac/services/oauth2-role.service.d.ts +3 -0
  251. package/lib/resize-panels/components/resize-panels/resize-panels.component.d.ts +3 -0
  252. package/lib/resize-panels/resize-panels.module.d.ts +6 -0
  253. package/lib/rum/rum.module.d.ts +5 -0
  254. package/lib/rum/services/rum.service.d.ts +3 -0
  255. package/lib/rum/services/shared-error.service.d.ts +3 -0
  256. package/lib/rum/services/softheon-error-handler.service.d.ts +3 -0
  257. package/lib/saml/components/redirect-saml/redirect-saml.component.d.ts +3 -0
  258. package/lib/saml/saml.module.d.ts +6 -0
  259. package/lib/saml/services/entry/sso-gateway-entry.service.d.ts +3 -0
  260. package/lib/saml/services/send-off/saml.service.d.ts +3 -0
  261. package/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.d.ts +3 -0
  262. package/lib/sof-pipe/pipes/sof-date/sof-date.pipe.d.ts +3 -0
  263. package/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.d.ts +3 -0
  264. package/lib/sof-pipe/sof-pipe.module.d.ts +8 -0
  265. package/lib/theming/directives/css-override.directive.d.ts +3 -0
  266. package/lib/theming/services/theme.service.d.ts +3 -0
  267. package/lib/theming/theme.module.d.ts +6 -0
  268. package/package.json +39 -27
  269. package/bundles/softheon-armature.umd.js +0 -7210
  270. package/bundles/softheon-armature.umd.js.map +0 -1
  271. package/bundles/softheon-armature.umd.min.js +0 -16
  272. package/bundles/softheon-armature.umd.min.js.map +0 -1
  273. package/esm2015/lib/alert-banner/alert-banner-api.js +0 -10
  274. package/esm2015/lib/alert-banner/alert-banner.module.js +0 -30
  275. package/esm2015/lib/alert-banner/components/alert-banner/alert-banner.component.js +0 -78
  276. package/esm2015/lib/alert-banner/models/alert-banner-config.js +0 -2
  277. package/esm2015/lib/alert-banner/models/alert-banner-context.js +0 -2
  278. package/esm2015/lib/alert-banner/models/constants.js +0 -16
  279. package/esm2015/lib/alert-banner/services/alert-banner.service.js +0 -43
  280. package/esm2015/lib/armature.module.js +0 -142
  281. package/esm2015/lib/base-components/base-component-api.js +0 -9
  282. package/esm2015/lib/base-components/base-component.module.js +0 -61
  283. package/esm2015/lib/base-components/sof-alert/sof-alert.component.js +0 -67
  284. package/esm2015/lib/base-components/sof-banner/sof-banner.component.js +0 -44
  285. package/esm2015/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.js +0 -169
  286. package/esm2015/lib/base-components/sof-modal/sof-modal.component.js +0 -49
  287. package/esm2015/lib/base-components/sof-progress-bar/sof-progress-bar.component.js +0 -76
  288. package/esm2015/lib/component-save-print/components/component-save-print/component-save-print.component.js +0 -97
  289. package/esm2015/lib/component-save-print/services/component-save-print.service.js +0 -29
  290. package/esm2015/lib/component-save-print/sof-ar-component-save-print.module.js +0 -25
  291. package/esm2015/lib/core/client-generated/api/session.service.js +0 -235
  292. package/esm2015/lib/core/client-generated/configuration.js +0 -59
  293. package/esm2015/lib/core/client-generated/encoder.js +0 -17
  294. package/esm2015/lib/core/client-generated/model/applicationUserModel.js +0 -20
  295. package/esm2015/lib/core/client-generated/model/assertedUserModel.js +0 -2
  296. package/esm2015/lib/core/client-generated/model/brandingModel.js +0 -2
  297. package/esm2015/lib/core/client-generated/model/errorModel.js +0 -13
  298. package/esm2015/lib/core/client-generated/model/folderLink.js +0 -13
  299. package/esm2015/lib/core/client-generated/model/identityProfile.js +0 -2
  300. package/esm2015/lib/core/client-generated/model/models.js +0 -20
  301. package/esm2015/lib/core/client-generated/model/oAuthModel.js +0 -13
  302. package/esm2015/lib/core/client-generated/model/preferencesRow.js +0 -13
  303. package/esm2015/lib/core/client-generated/model/rolesRow.js +0 -13
  304. package/esm2015/lib/core/client-generated/model/sessionGetResponseModel.js +0 -2
  305. package/esm2015/lib/core/client-generated/model/sessionPostRequestModel.js +0 -2
  306. package/esm2015/lib/core/client-generated/model/sessionPostResponseModel.js +0 -2
  307. package/esm2015/lib/core/client-generated/model/sessionPutRequestModel.js +0 -2
  308. package/esm2015/lib/core/client-generated/model/sessionPutResponseModel.js +0 -2
  309. package/esm2015/lib/core/client-generated/model/sessionResponseModel.js +0 -2
  310. package/esm2015/lib/core/client-generated/model/settingsProfile.js +0 -2
  311. package/esm2015/lib/core/client-generated/model/themePaletteColorsModel.js +0 -13
  312. package/esm2015/lib/core/client-generated/model/themePaletteModel.js +0 -2
  313. package/esm2015/lib/core/client-generated/model/trackingModel.js +0 -13
  314. package/esm2015/lib/core/client-generated/model/validationRecordsRow.js +0 -13
  315. package/esm2015/lib/core/client-generated/variables.js +0 -9
  316. package/esm2015/lib/core/components/app-template/app-template.component.js +0 -249
  317. package/esm2015/lib/core/functions/guid.js +0 -11
  318. package/esm2015/lib/core/functions/naming-convention.js +0 -33
  319. package/esm2015/lib/core/initializer/abstract-startup-service.js +0 -4
  320. package/esm2015/lib/core/initializer/initializer.service.js +0 -206
  321. package/esm2015/lib/core/interceptors/armature-auth-token-append.interceptor.js +0 -75
  322. package/esm2015/lib/core/models/base-config.js +0 -2
  323. package/esm2015/lib/core/models/constants.js +0 -13
  324. package/esm2015/lib/core/models/data-store-config.js +0 -4
  325. package/esm2015/lib/core/models/header-config.js +0 -2
  326. package/esm2015/lib/core/models/http-verbs.js +0 -9
  327. package/esm2015/lib/core/models/navigation-config.js +0 -2
  328. package/esm2015/lib/core/models/oidc-auth-settings.js +0 -2
  329. package/esm2015/lib/core/models/route-path.js +0 -7
  330. package/esm2015/lib/core/models/session-config.js +0 -4
  331. package/esm2015/lib/core/models/styles.js +0 -2
  332. package/esm2015/lib/core/models/typed-session.js +0 -4
  333. package/esm2015/lib/core/models/user-entity-service-config.js +0 -12
  334. package/esm2015/lib/core/services/authorization.service.js +0 -178
  335. package/esm2015/lib/core/services/banner.service.js +0 -42
  336. package/esm2015/lib/core/services/base-config.service.js +0 -31
  337. package/esm2015/lib/core/services/custom-auth-config.service.js +0 -4
  338. package/esm2015/lib/core/services/default-config.service.js +0 -18
  339. package/esm2015/lib/core/services/session.service.js +0 -386
  340. package/esm2015/lib/core/services/user-entity.service.js +0 -147
  341. package/esm2015/lib/distributed-cache/client-generated/api/api.js +0 -4
  342. package/esm2015/lib/distributed-cache/client-generated/api/cache.service.js +0 -206
  343. package/esm2015/lib/distributed-cache/client-generated/configuration.js +0 -59
  344. package/esm2015/lib/distributed-cache/client-generated/encoder.js +0 -17
  345. package/esm2015/lib/distributed-cache/client-generated/model/cacheExpirationType.js +0 -16
  346. package/esm2015/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.js +0 -2
  347. package/esm2015/lib/distributed-cache/client-generated/model/models.js +0 -5
  348. package/esm2015/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.js +0 -13
  349. package/esm2015/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.js +0 -13
  350. package/esm2015/lib/distributed-cache/client-generated/variables.js +0 -9
  351. package/esm2015/lib/distributed-cache/distributed-cache-api.js +0 -8
  352. package/esm2015/lib/distributed-cache/distributed-cache.module.js +0 -26
  353. package/esm2015/lib/distributed-cache/models/constants.js +0 -3
  354. package/esm2015/lib/distributed-cache/models/policy-person.js +0 -9
  355. package/esm2015/lib/distributed-cache/services/server-cache.service.js +0 -52
  356. package/esm2015/lib/error/components/error-common/error-common.component.js +0 -24
  357. package/esm2015/lib/error/error-api.js +0 -7
  358. package/esm2015/lib/error/error.module.js +0 -22
  359. package/esm2015/lib/error/models/error-common-config.js +0 -8
  360. package/esm2015/lib/faq/components/faq/faq.component.js +0 -35
  361. package/esm2015/lib/faq/faq-api.js +0 -8
  362. package/esm2015/lib/faq/faq.module.js +0 -32
  363. package/esm2015/lib/faq/models/faq-config.js +0 -4
  364. package/esm2015/lib/faq/models/faq.js +0 -8
  365. package/esm2015/lib/footer/components/footer/footer.component.js +0 -25
  366. package/esm2015/lib/footer/components/site-map/site-map.component.js +0 -23
  367. package/esm2015/lib/footer/footer-api.js +0 -10
  368. package/esm2015/lib/footer/footer.module.js +0 -30
  369. package/esm2015/lib/footer/models/enum/site-map-direction.js +0 -15
  370. package/esm2015/lib/footer/models/footer-config.js +0 -4
  371. package/esm2015/lib/footer/models/site-map-models.js +0 -2
  372. package/esm2015/lib/forms/components/sof-address/sof-address.component.js +0 -99
  373. package/esm2015/lib/forms/directives/alphanumeric/alphanumeric.directive.js +0 -75
  374. package/esm2015/lib/forms/directives/input-trim/input-trim.directive.js +0 -97
  375. package/esm2015/lib/forms/directives/letters-only/letters-only.directive.js +0 -68
  376. package/esm2015/lib/forms/directives/numbers-only/numbers-only.directive.js +0 -58
  377. package/esm2015/lib/forms/forms-api.js +0 -19
  378. package/esm2015/lib/forms/forms.module.js +0 -63
  379. package/esm2015/lib/forms/models/address.js +0 -2
  380. package/esm2015/lib/forms/models/constants.js +0 -10
  381. package/esm2015/lib/forms/models/county.js +0 -2
  382. package/esm2015/lib/forms/models/enums/states.js +0 -58
  383. package/esm2015/lib/forms/pipes/phone-format.pipe.js +0 -29
  384. package/esm2015/lib/forms/services/alert.service.js +0 -170
  385. package/esm2015/lib/header/components/header/header.component.js +0 -157
  386. package/esm2015/lib/header/components/mobile-header-menu/mobile-header-menu.component.js +0 -37
  387. package/esm2015/lib/header/header-api.js +0 -12
  388. package/esm2015/lib/header/header.module.js +0 -51
  389. package/esm2015/lib/header/models/header-auth.settings.js +0 -32
  390. package/esm2015/lib/header/models/header-language.settings.js +0 -2
  391. package/esm2015/lib/header/models/header-theme.settings.js +0 -2
  392. package/esm2015/lib/header/models/header.settings.js +0 -2
  393. package/esm2015/lib/header/models/mobile-header-nav.settings.js +0 -2
  394. package/esm2015/lib/navigation/components/navigation/navigation.component.js +0 -542
  395. package/esm2015/lib/navigation/models/nav-theme.settings.js +0 -2
  396. package/esm2015/lib/navigation/models/nav.settings.js +0 -2
  397. package/esm2015/lib/navigation/models/navigation.js +0 -2
  398. package/esm2015/lib/navigation/navigation-api.js +0 -9
  399. package/esm2015/lib/navigation/navigation.module.js +0 -67
  400. package/esm2015/lib/oauth/models/constants.js +0 -6
  401. package/esm2015/lib/oauth/models/generated/accountManagementAssertionModel.js +0 -2
  402. package/esm2015/lib/oauth/models/generated/accountManagementRefreshRequestModel.js +0 -2
  403. package/esm2015/lib/oauth/models/generated/accountManagementResponseModel.js +0 -2
  404. package/esm2015/lib/oauth/models/generated/coverageDetail.js +0 -19
  405. package/esm2015/lib/oauth/models/generated/finance.js +0 -13
  406. package/esm2015/lib/oauth/models/generated/iSsoResponseModel.js +0 -13
  407. package/esm2015/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.js +0 -2
  408. package/esm2015/lib/oauth/models/generated/person.js +0 -13
  409. package/esm2015/lib/oauth/models/generated/policy.js +0 -2
  410. package/esm2015/lib/oauth/models/generated/refreshResponseModel.js +0 -13
  411. package/esm2015/lib/oauth/models/hybrid-saml-oauth-config.js +0 -4
  412. package/esm2015/lib/oauth/oauth-api.js +0 -15
  413. package/esm2015/lib/oauth/oauth.module.js +0 -20
  414. package/esm2015/lib/oauth/services/hybrid-saml-oauth.service.js +0 -202
  415. package/esm2015/lib/rbac/directives/rbac-action.directive.js +0 -52
  416. package/esm2015/lib/rbac/models/access-token-claims.js +0 -23
  417. package/esm2015/lib/rbac/models/constants.js +0 -4
  418. package/esm2015/lib/rbac/models/decoded-access-token.js +0 -69
  419. package/esm2015/lib/rbac/models/rbac-config.js +0 -4
  420. package/esm2015/lib/rbac/models/role-access.js +0 -10
  421. package/esm2015/lib/rbac/rbac-api.js +0 -15
  422. package/esm2015/lib/rbac/rbac.module.js +0 -43
  423. package/esm2015/lib/rbac/services/ar-role-nav.service.js +0 -90
  424. package/esm2015/lib/rbac/services/oauth2-role.service.js +0 -120
  425. package/esm2015/lib/rbac/services/role-nav.service.js +0 -4
  426. package/esm2015/lib/resize-panels/components/resize-panels/resize-panels.component.js +0 -142
  427. package/esm2015/lib/resize-panels/models/resize-event.js +0 -2
  428. package/esm2015/lib/resize-panels/resize-panels-api.js +0 -5
  429. package/esm2015/lib/resize-panels/resize-panels.module.js +0 -18
  430. package/esm2015/lib/rum/models/arm-error.js +0 -29
  431. package/esm2015/lib/rum/models/rum-config.js +0 -4
  432. package/esm2015/lib/rum/rum-api.js +0 -10
  433. package/esm2015/lib/rum/rum.module.js +0 -40
  434. package/esm2015/lib/rum/services/rum.service.js +0 -118
  435. package/esm2015/lib/rum/services/shared-error.service.js +0 -46
  436. package/esm2015/lib/rum/services/softheon-error-handler.service.js +0 -81
  437. package/esm2015/lib/saml/components/redirect-saml/redirect-saml.component.js +0 -76
  438. package/esm2015/lib/saml/models/i-saml-request.js +0 -2
  439. package/esm2015/lib/saml/models/i-saml-response.js +0 -2
  440. package/esm2015/lib/saml/models/redirect-saml-request.js +0 -4
  441. package/esm2015/lib/saml/models/sso-gateway-model.js +0 -4
  442. package/esm2015/lib/saml/saml-api.js +0 -15
  443. package/esm2015/lib/saml/saml.module.js +0 -36
  444. package/esm2015/lib/saml/services/entry/abstract-saml-entry.service.js +0 -4
  445. package/esm2015/lib/saml/services/entry/sso-gateway-entry.service.js +0 -35
  446. package/esm2015/lib/saml/services/send-off/abstract-saml.service.js +0 -9
  447. package/esm2015/lib/saml/services/send-off/saml.service.js +0 -41
  448. package/esm2015/lib/sof-pipe/constants/constants.js +0 -17
  449. package/esm2015/lib/sof-pipe/models/sof-date-pipe-format.js +0 -2
  450. package/esm2015/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.js +0 -33
  451. package/esm2015/lib/sof-pipe/pipes/sof-date/sof-date.pipe.js +0 -54
  452. package/esm2015/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.js +0 -24
  453. package/esm2015/lib/sof-pipe/sof-pipe.api.js +0 -9
  454. package/esm2015/lib/sof-pipe/sof-pipe.module.js +0 -28
  455. package/esm2015/lib/theming/directives/css-override.directive.js +0 -67
  456. package/esm2015/lib/theming/models/css-override.js +0 -11
  457. package/esm2015/lib/theming/services/theme.service.js +0 -166
  458. package/esm2015/lib/theming/theme-api.js +0 -6
  459. package/esm2015/lib/theming/theme.module.js +0 -24
  460. package/esm2015/public-api.js +0 -48
  461. package/esm2015/softheon-armature.js +0 -12
  462. package/fesm2015/softheon-armature.js +0 -6515
  463. package/fesm2015/softheon-armature.js.map +0 -1
  464. package/softheon-armature.d.ts +0 -11
  465. package/softheon-armature.metadata.json +0 -1
@@ -0,0 +1,189 @@
1
+ import { Injectable, Optional } from '@angular/core';
2
+ import { AuthConfig } from 'angular-oauth2-oidc';
3
+ import { JwksValidationHandler } from 'angular-oauth2-oidc-jwks';
4
+ import * as _ from 'lodash';
5
+ import { BehaviorSubject, throwError } from 'rxjs';
6
+ import { languageStorageKey } from '../models/constants';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common/http";
9
+ import * as i2 from "@ngx-translate/core";
10
+ import * as i3 from "../../theming/services/theme.service";
11
+ import * as i4 from "../services/base-config.service";
12
+ import * as i5 from "angular-oauth2-oidc";
13
+ import * as i6 from "../services/custom-auth-config.service";
14
+ /**
15
+ * The startup service is used to call methods that should be run when initially loading the application
16
+ */
17
+ export class Initializer {
18
+ /** Gets the configurations */
19
+ get isInitialized() {
20
+ return this.isInitializedBs.value;
21
+ }
22
+ /**
23
+ * Constructs the startup service. Include any services that should be used during startup
24
+ * @param http The HTTP Client
25
+ * @param translateService The translate service
26
+ * @param configService The configuration service
27
+ * @param oAuthService The oidc authorization service
28
+ * @param customAuthConfigService The service that will configure the auth config
29
+ */
30
+ constructor(http, translateService, themeService, configService, oAuthService, customAuthConfigService) {
31
+ this.http = http;
32
+ this.translateService = translateService;
33
+ this.themeService = themeService;
34
+ this.configService = configService;
35
+ this.oAuthService = oAuthService;
36
+ this.customAuthConfigService = customAuthConfigService;
37
+ /** The configuration behavior subject */
38
+ this.isInitializedBs = new BehaviorSubject(false);
39
+ this.isInitialized$ = this.isInitializedBs.asObservable();
40
+ }
41
+ /**
42
+ * Loads all data that is needed upon initial loading of the website
43
+ */
44
+ async initialize() {
45
+ // reads the language from local storage set in the parent app
46
+ // language loading
47
+ // Set languages for translation service
48
+ const lang = window.localStorage.getItem(languageStorageKey) || window.sessionStorage.getItem(languageStorageKey) || 'en';
49
+ this.translateService.setDefaultLang(lang);
50
+ this.translateService.use(lang);
51
+ // Adapted from https://stackoverflow.com/a/41636880
52
+ // Adapted from https://stackoverflow.com/a/41736293
53
+ // A callback used to initialize the promise. This callback is passed two arguments:
54
+ // a resolve callback used resolve the promise with a value or the result of another promise,
55
+ // and a reject callback used to reject the promise with a provided reason or error.
56
+ return new Promise(async (resolve, reject) => {
57
+ // Go through all services and complete any API calls necessary.
58
+ // At the end, if all works and loads as expected, resolve the promise and set startup success to true.
59
+ // If an issue is encountered, you can call reject() to hit the catch() code below.
60
+ // First, load the configurations
61
+ let [baseConfig, overrideConfig, baseLang, overrideLang, theme] = [JSON, JSON, JSON, JSON, JSON];
62
+ try {
63
+ [baseConfig, overrideConfig, baseLang, overrideLang, theme] = await Promise.all([
64
+ this.http.get('./assets/baseline/appsettings.json').toPromise(),
65
+ this.http.get('./assets/configurations/appsettings.json').toPromise(),
66
+ this.http.get(`./assets/i18n/${this.translateService.currentLang}.json`).toPromise(),
67
+ this.http.get(`./assets/configurations/${this.translateService.currentLang}.json`).toPromise(),
68
+ this.http.get('./assets/configurations/theme.json').toPromise()
69
+ ]);
70
+ this.configService.config = _.mergeWith(baseConfig, overrideConfig, this.mergeCustomizer);
71
+ const configSnapShot = this.configService.config;
72
+ configSnapShot.theme = theme;
73
+ this.configService.config = configSnapShot;
74
+ this.translateService.setTranslation(this.translateService.currentLang, _.mergeWith(baseLang, overrideLang, this.mergeCustomizer));
75
+ this.themeService.initPalette(theme);
76
+ }
77
+ catch (error) {
78
+ // Catch any errors during the get configurations API call
79
+ console.error('Error Loading Configurations or Languages');
80
+ // Reject the promise
81
+ reject('error');
82
+ return throwError(error.error || 'Server error');
83
+ }
84
+ try {
85
+ if (this.customAuthConfigService) {
86
+ await this.customAuthConfigService.configureAuthSettings().then(authConfig => {
87
+ if (authConfig) {
88
+ const config = this.configService.config.oAuthSettings;
89
+ return this.login(config);
90
+ }
91
+ else {
92
+ return Promise.resolve(false);
93
+ }
94
+ });
95
+ }
96
+ else {
97
+ const oAuth = await this.setUpOAuth();
98
+ }
99
+ }
100
+ catch (error) {
101
+ reject(error);
102
+ return throwError(error);
103
+ }
104
+ this.isInitializedBs.next(true);
105
+ resolve(true);
106
+ }).catch((error) => {
107
+ // Catch the error
108
+ console.error('There was an error loading the startup configurations.');
109
+ });
110
+ }
111
+ /**
112
+ * Configure implicit flow
113
+ */
114
+ async setUpOAuth() {
115
+ if (this.configService.config?.oAuthSettings?.issuer) {
116
+ const config = this.configService.config.oAuthSettings;
117
+ const authConfig = new AuthConfig({
118
+ clientId: config.clientId,
119
+ redirectUri: config.redirectUri,
120
+ issuer: config.issuer,
121
+ scope: config.scope,
122
+ skipIssuerCheck: config.skipIssuerCheck != undefined ? config.skipIssuerCheck : true,
123
+ timeoutFactor: config.timeoutFactor || 0.75,
124
+ postLogoutRedirectUri: config.postLogoutRedirectUri,
125
+ loginUrl: config.loginUrl,
126
+ strictDiscoveryDocumentValidation: false,
127
+ responseType: config.responseType || 'code'
128
+ });
129
+ this.oAuthService.configure(authConfig);
130
+ this.oAuthService.skipIssuerCheck = true;
131
+ this.oAuthService.responseType = config.responseType || 'code';
132
+ this.oAuthService.strictDiscoveryDocumentValidation = false;
133
+ this.oAuthService.tokenValidationHandler = new JwksValidationHandler();
134
+ this.oAuthService.timeoutFactor = 0.75;
135
+ this.oAuthService.setupAutomaticSilentRefresh({}, 'access_token');
136
+ // set initialized on start up to true
137
+ config.authSetOnStartup = true;
138
+ const parentConfig = this.configService.config;
139
+ parentConfig.oAuthSettings = config;
140
+ this.configService.config = parentConfig;
141
+ return this.login(config);
142
+ }
143
+ return Promise.resolve(true);
144
+ }
145
+ /**
146
+ * Handle Login
147
+ * @param config The Oidc Auth Settings
148
+ */
149
+ async login(config) {
150
+ if (config.requireLoginOnStartup) {
151
+ return this.oAuthService.loadDiscoveryDocumentAndLogin()
152
+ // handles the case for expired access token or invalid nonce or people bookmarking the ids login page
153
+ .catch(async (res) => {
154
+ this.oAuthService.initLoginFlow();
155
+ return Promise.resolve(true);
156
+ });
157
+ }
158
+ else {
159
+ return this.oAuthService.loadDiscoveryDocumentAndTryLogin()
160
+ // handles the case for expired access token or invalid nonce or people bookmarking the ids login page
161
+ .catch(async (res) => {
162
+ this.oAuthService.initLoginFlow();
163
+ return Promise.resolve(true);
164
+ });
165
+ }
166
+ }
167
+ /**
168
+ * Merges the two config objects ignoring the array type
169
+ * @param objValue The default config value
170
+ * @param srcValue The target switchboard config value
171
+ * @returns The merge of the two configs provided
172
+ */
173
+ mergeCustomizer(objValue, srcValue) {
174
+ if (_.isArray(objValue) && srcValue) {
175
+ return srcValue;
176
+ }
177
+ }
178
+ }
179
+ Initializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: Initializer, deps: [{ token: i1.HttpClient }, { token: i2.TranslateService }, { token: i3.ThemeService }, { token: i4.BaseConfigService }, { token: i5.OAuthService }, { token: i6.CustomAuthConfigService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
180
+ Initializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: Initializer, providedIn: 'root' });
181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: Initializer, decorators: [{
182
+ type: Injectable,
183
+ args: [{
184
+ providedIn: 'root'
185
+ }]
186
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.TranslateService }, { type: i3.ThemeService }, { type: i4.BaseConfigService }, { type: i5.OAuthService }, { type: i6.CustomAuthConfigService, decorators: [{
187
+ type: Optional
188
+ }] }]; } });
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvY29yZS9pbml0aWFsaXplci9pbml0aWFsaXplci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBVSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdELE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDakUsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7O0FBS3pEOztHQUVHO0FBTUgsTUFBTSxPQUFPLFdBQVc7SUFLdEIsOEJBQThCO0lBQzlCLElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFLRDs7Ozs7OztPQU9HO0lBQ0gsWUFDbUIsSUFBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLFlBQTBCLEVBQzFCLGFBQWdDLEVBQ2hDLFlBQTBCLEVBQ2QsdUJBQWdEO1FBTDVELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFDaEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDZCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBekIvRSx5Q0FBeUM7UUFDeEIsb0JBQWUsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENB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LFdBQVc7a0JBTHZCLFVBQVU7bUJBQ1Q7b0JBQ0UsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkE2QkUsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQXV0aENvbmZpZywgT0F1dGhTZXJ2aWNlIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XHJcbmltcG9ydCB7IEp3a3NWYWxpZGF0aW9uSGFuZGxlciB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMtandrcyc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi90aGVtaW5nL3NlcnZpY2VzL3RoZW1lLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBsYW5ndWFnZVN0b3JhZ2VLZXkgfSBmcm9tICcuLi9tb2RlbHMvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgT2lkY0F1dGhTZXR0aW5ncyB9IGZyb20gJy4uL21vZGVscy9vaWRjLWF1dGgtc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBCYXNlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Jhc2UtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdXN0b21BdXRoQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2N1c3RvbS1hdXRoLWNvbmZpZy5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgc3RhcnR1cCBzZXJ2aWNlIGlzIHVzZWQgdG8gY2FsbCBtZXRob2RzIHRoYXQgc2hvdWxkIGJlIHJ1biB3aGVuIGluaXRpYWxseSBsb2FkaW5nIHRoZSBhcHBsaWNhdGlvblxyXG4gKi9cclxuQEluamVjdGFibGUoXHJcbiAge1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbiAgfVxyXG4pXHJcbmV4cG9ydCBjbGFzcyBJbml0aWFsaXplciB7XHJcblxyXG4gIC8qKiBUaGUgY29uZmlndXJhdGlvbiBiZWhhdmlvciBzdWJqZWN0ICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc0luaXRpYWxpemVkQnM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvKiogR2V0cyB0aGUgY29uZmlndXJhdGlvbnMgKi9cclxuICBwdWJsaWMgZ2V0IGlzSW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0luaXRpYWxpemVkQnMudmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKiogVGhlIGNvbmZpZ3VyYXRpb24gb2JzZXJ2YWJsZSAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBpc0luaXRpYWxpemVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgc3RhcnR1cCBzZXJ2aWNlLiBJbmNsdWRlIGFueSBzZXJ2aWNlcyB0aGF0IHNob3VsZCBiZSB1c2VkIGR1cmluZyBzdGFydHVwXHJcbiAgICogQHBhcmFtIGh0dHAgVGhlIEhUVFAgQ2xpZW50XHJcbiAgICogQHBhcmFtIHRyYW5zbGF0ZVNlcnZpY2UgVGhlIHRyYW5zbGF0ZSBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIGNvbmZpZ1NlcnZpY2UgVGhlIGNvbmZpZ3VyYXRpb24gc2VydmljZVxyXG4gICAqIEBwYXJhbSBvQXV0aFNlcnZpY2UgVGhlIG9pZGMgYXV0aG9yaXphdGlvbiBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIGN1c3RvbUF1dGhDb25maWdTZXJ2aWNlIFRoZSBzZXJ2aWNlIHRoYXQgd2lsbCBjb25maWd1cmUgdGhlIGF1dGggY29uZmlnXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRoZW1lU2VydmljZTogVGhlbWVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTZXJ2aWNlOiBCYXNlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgb0F1dGhTZXJ2aWNlOiBPQXV0aFNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbUF1dGhDb25maWdTZXJ2aWNlOiBDdXN0b21BdXRoQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5pc0luaXRpYWxpemVkJCA9IHRoaXMuaXNJbml0aWFsaXplZEJzLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTG9hZHMgYWxsIGRhdGEgdGhhdCBpcyBuZWVkZWQgdXBvbiBpbml0aWFsIGxvYWRpbmcgb2YgdGhlIHdlYnNpdGVcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgaW5pdGlhbGl6ZSgpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgLy8gcmVhZHMgdGhlIGxhbmd1YWdlIGZyb20gbG9jYWwgc3RvcmFnZSBzZXQgaW4gdGhlIHBhcmVudCBhcHBcclxuICAgIC8vIGxhbmd1YWdlIGxvYWRpbmdcclxuXHJcbiAgICAvLyBTZXQgbGFuZ3VhZ2VzIGZvciB0cmFuc2xhdGlvbiBzZXJ2aWNlXHJcbiAgICBjb25zdCBsYW5nID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKGxhbmd1YWdlU3RvcmFnZUtleSkgfHwgd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0obGFuZ3VhZ2VTdG9yYWdlS2V5KSB8fCAnZW4nO1xyXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNldERlZmF1bHRMYW5nKGxhbmcpO1xyXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShsYW5nKTtcclxuXHJcbiAgICAvLyBBZGFwdGVkIGZyb20gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQxNjM2ODgwXHJcbiAgICAvLyBBZGFwdGVkIGZyb20gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQxNzM2MjkzXHJcblxyXG4gICAgLy8gQSBjYWxsYmFjayB1c2VkIHRvIGluaXRpYWxpemUgdGhlIHByb21pc2UuIFRoaXMgY2FsbGJhY2sgaXMgcGFzc2VkIHR3byBhcmd1bWVudHM6XHJcbiAgICAvLyBhIHJlc29sdmUgY2FsbGJhY2sgdXNlZCByZXNvbHZlIHRoZSBwcm9taXNlIHdpdGggYSB2YWx1ZSBvciB0aGUgcmVzdWx0IG9mIGFub3RoZXIgcHJvbWlzZSxcclxuICAgIC8vIGFuZCBhIHJlamVjdCBjYWxsYmFjayB1c2VkIHRvIHJlamVjdCB0aGUgcHJvbWlzZSB3aXRoIGEgcHJvdmlkZWQgcmVhc29uIG9yIGVycm9yLlxyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgLy8gR28gdGhyb3VnaCBhbGwgc2VydmljZXMgYW5kIGNvbXBsZXRlIGFueSBBUEkgY2FsbHMgbmVjZXNzYXJ5LlxyXG4gICAgICAvLyBBdCB0aGUgZW5kLCBpZiBhbGwgd29ya3MgYW5kIGxvYWRzIGFzIGV4cGVjdGVkLCByZXNvbHZlIHRoZSBwcm9taXNlIGFuZCBzZXQgc3RhcnR1cCBzdWNjZXNzIHRvIHRydWUuXHJcbiAgICAgIC8vIElmIGFuIGlzc3VlIGlzIGVuY291bnRlcmVkLCB5b3UgY2FuIGNhbGwgcmVqZWN0KCkgdG8gaGl0IHRoZSBjYXRjaCgpIGNvZGUgYmVsb3cuXHJcblxyXG4gICAgICAvLyBGaXJzdCwgbG9hZCB0aGUgY29uZmlndXJhdGlvbnNcclxuICAgICAgbGV0IFtiYXNlQ29uZmlnLCBvdmVycmlkZUNvbmZpZywgYmFzZUxhbmcsIG92ZXJyaWRlTGFuZywgdGhlbWVdID0gW0pTT04sIEpTT04sIEpTT04sIEpTT04sIEpTT05dO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIFtiYXNlQ29uZmlnLCBvdmVycmlkZUNvbmZpZywgYmFzZUxhbmcsIG92ZXJyaWRlTGFuZywgdGhlbWVdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xyXG4gICAgICAgICAgdGhpcy5odHRwLmdldDxKU09OPignLi9hc3NldHMvYmFzZWxpbmUvYXBwc2V0dGluZ3MuanNvbicpLnRvUHJvbWlzZSgpLFxyXG4gICAgICAgICAgdGhpcy5odHRwLmdldDxKU09OPignLi9hc3NldHMvY29uZmlndXJhdGlvbnMvYXBwc2V0dGluZ3MuanNvbicpLnRvUHJvbWlzZSgpLFxyXG4gICAgICAgICAgdGhpcy5odHRwLmdldDxKU09OPihgLi9hc3NldHMvaTE4bi8ke3RoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZ30uanNvbmApLnRvUHJvbWlzZSgpLFxyXG4gICAgICAgICAgdGhpcy5odHRwLmdldDxKU09OPihgLi9hc3NldHMvY29uZmlndXJhdGlvbnMvJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmd9Lmpzb25gKS50b1Byb21pc2UoKSxcclxuICAgICAgICAgIHRoaXMuaHR0cC5nZXQ8SlNPTj4oJy4vYXNzZXRzL2NvbmZpZ3VyYXRpb25zL3RoZW1lLmpzb24nKS50b1Byb21pc2UoKVxyXG4gICAgICAgIF0pO1xyXG4gICAgICAgIHRoaXMuY29uZmlnU2VydmljZS5jb25maWcgPSBfLm1lcmdlV2l0aChiYXNlQ29uZmlnLCBvdmVycmlkZUNvbmZpZywgdGhpcy5tZXJnZUN1c3RvbWl6ZXIpO1xyXG4gICAgICAgIGNvbnN0IGNvbmZpZ1NuYXBTaG90ID0gdGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZztcclxuICAgICAgICBjb25maWdTbmFwU2hvdC50aGVtZSA9IHRoZW1lIGFzIGFueTtcclxuICAgICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnID0gY29uZmlnU25hcFNob3Q7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNldFRyYW5zbGF0aW9uKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZywgXy5tZXJnZVdpdGgoYmFzZUxhbmcsIG92ZXJyaWRlTGFuZywgdGhpcy5tZXJnZUN1c3RvbWl6ZXIpKTtcclxuICAgICAgICB0aGlzLnRoZW1lU2VydmljZS5pbml0UGFsZXR0ZSh0aGVtZSBhcyBhbnkpO1xyXG4gICAgICB9XHJcbiAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIC8vIENhdGNoIGFueSBlcnJvcnMgZHVyaW5nIHRoZSBnZXQgY29uZmlndXJhdGlvbnMgQVBJIGNhbGxcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBMb2FkaW5nIENvbmZpZ3VyYXRpb25zIG9yIExhbmd1YWdlcycpO1xyXG4gICAgICAgIC8vIFJlamVjdCB0aGUgcHJvbWlzZVxyXG4gICAgICAgIHJlamVjdCgnZXJyb3InKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IuZXJyb3IgfHwgJ1NlcnZlciBlcnJvcicpO1xyXG4gICAgICB9XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UuY29uZmlndXJlQXV0aFNldHRpbmdzKCkudGhlbihhdXRoQ29uZmlnID0+IHtcclxuICAgICAgICAgICAgaWYgKGF1dGhDb25maWcpIHtcclxuICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnLm9BdXRoU2V0dGluZ3M7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9naW4oY29uZmlnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgY29uc3Qgb0F1dGggPSBhd2FpdCB0aGlzLnNldFVwT0F1dGgoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgcmVqZWN0KGVycm9yKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmlzSW5pdGlhbGl6ZWRCcy5uZXh0KHRydWUpO1xyXG4gICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgIC8vIENhdGNoIHRoZSBlcnJvclxyXG4gICAgICBjb25zb2xlLmVycm9yKCdUaGVyZSB3YXMgYW4gZXJyb3IgbG9hZGluZyB0aGUgc3RhcnR1cCBjb25maWd1cmF0aW9ucy4nKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uZmlndXJlIGltcGxpY2l0IGZsb3dcclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIHNldFVwT0F1dGgoKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAodGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZz8ub0F1dGhTZXR0aW5ncz8uaXNzdWVyKSB7XHJcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnU2VydmljZS5jb25maWcub0F1dGhTZXR0aW5ncztcclxuICAgICAgY29uc3QgYXV0aENvbmZpZyA9IG5ldyBBdXRoQ29uZmlnKHtcclxuICAgICAgICBjbGllbnRJZDogY29uZmlnLmNsaWVudElkLFxyXG4gICAgICAgIHJlZGlyZWN0VXJpOiBjb25maWcucmVkaXJlY3RVcmksXHJcbiAgICAgICAgaXNzdWVyOiBjb25maWcuaXNzdWVyLFxyXG4gICAgICAgIHNjb3BlOiBjb25maWcuc2NvcGUsXHJcbiAgICAgICAgc2tpcElzc3VlckNoZWNrOiBjb25maWcuc2tpcElzc3VlckNoZWNrICE9IHVuZGVmaW5lZCA/IGNvbmZpZy5za2lwSXNzdWVyQ2hlY2sgOiB0cnVlLFxyXG4gICAgICAgIHRpbWVvdXRGYWN0b3I6IGNvbmZpZy50aW1lb3V0RmFjdG9yIHx8IDAuNzUsXHJcbiAgICAgICAgcG9zdExvZ291dFJlZGlyZWN0VXJpOiBjb25maWcucG9zdExvZ291dFJlZGlyZWN0VXJpLFxyXG4gICAgICAgIGxvZ2luVXJsOiBjb25maWcubG9naW5VcmwsXHJcbiAgICAgICAgc3RyaWN0RGlzY292ZXJ5RG9jdW1lbnRWYWxpZGF0aW9uOiBmYWxzZSxcclxuICAgICAgICByZXNwb25zZVR5cGU6IGNvbmZpZy5yZXNwb25zZVR5cGUgfHwgJ2NvZGUnXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLm9BdXRoU2VydmljZS5jb25maWd1cmUoYXV0aENvbmZpZyk7XHJcbiAgICAgIHRoaXMub0F1dGhTZXJ2aWNlLnNraXBJc3N1ZXJDaGVjayA9IHRydWU7XHJcbiAgICAgIHRoaXMub0F1dGhTZXJ2aWNlLnJlc3BvbnNlVHlwZSA9IGNvbmZpZy5yZXNwb25zZVR5cGUgfHwgJ2NvZGUnO1xyXG4gICAgICB0aGlzLm9BdXRoU2VydmljZS5zdHJpY3REaXNjb3ZlcnlEb2N1bWVudFZhbGlkYXRpb24gPSBmYWxzZTtcclxuICAgICAgdGhpcy5vQXV0aFNlcnZpY2UudG9rZW5WYWxpZGF0aW9uSGFuZGxlciA9IG5ldyBKd2tzVmFsaWRhdGlvbkhhbmRsZXIoKTtcclxuICAgICAgdGhpcy5vQXV0aFNlcnZpY2UudGltZW91dEZhY3RvciA9IDAuNzU7XHJcbiAgICAgIHRoaXMub0F1dGhTZXJ2aWNlLnNldHVwQXV0b21hdGljU2lsZW50UmVmcmVzaCh7fSwgJ2FjY2Vzc190b2tlbicpO1xyXG5cclxuICAgICAgLy8gc2V0IGluaXRpYWxpemVkIG9uIHN0YXJ0IHVwIHRvIHRydWVcclxuICAgICAgY29uZmlnLmF1dGhTZXRPblN0YXJ0dXAgPSB0cnVlO1xyXG4gICAgICBjb25zdCBwYXJlbnRDb25maWcgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnO1xyXG4gICAgICBwYXJlbnRDb25maWcub0F1dGhTZXR0aW5ncyA9IGNvbmZpZztcclxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZyA9IHBhcmVudENvbmZpZztcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLmxvZ2luKGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZSBMb2dpblxyXG4gICAqIEBwYXJhbSBjb25maWcgVGhlIE9pZGMgQXV0aCBTZXR0aW5nc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgYXN5bmMgbG9naW4oY29uZmlnOiBPaWRjQXV0aFNldHRpbmdzKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAoY29uZmlnLnJlcXVpcmVMb2dpbk9uU3RhcnR1cCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5vQXV0aFNlcnZpY2UubG9hZERpc2NvdmVyeURvY3VtZW50QW5kTG9naW4oKVxyXG4gICAgICAgIC8vIGhhbmRsZXMgdGhlIGNhc2UgZm9yIGV4cGlyZWQgYWNjZXNzIHRva2VuIG9yIGludmFsaWQgbm9uY2Ugb3IgcGVvcGxlIGJvb2ttYXJraW5nIHRoZSBpZHMgbG9naW4gcGFnZVxyXG4gICAgICAgIC5jYXRjaChhc3luYyAocmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9BdXRoU2VydmljZS5pbml0TG9naW5GbG93KCk7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5vQXV0aFNlcnZpY2UubG9hZERpc2NvdmVyeURvY3VtZW50QW5kVHJ5TG9naW4oKVxyXG4gICAgICAgIC8vIGhhbmRsZXMgdGhlIGNhc2UgZm9yIGV4cGlyZWQgYWNjZXNzIHRva2VuIG9yIGludmFsaWQgbm9uY2Ugb3IgcGVvcGxlIGJvb2ttYXJraW5nIHRoZSBpZHMgbG9naW4gcGFnZVxyXG4gICAgICAgIC5jYXRjaChhc3luYyAocmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9BdXRoU2VydmljZS5pbml0TG9naW5GbG93KCk7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1lcmdlcyB0aGUgdHdvIGNvbmZpZyBvYmplY3RzIGlnbm9yaW5nIHRoZSBhcnJheSB0eXBlXHJcbiAgICogQHBhcmFtIG9ialZhbHVlIFRoZSBkZWZhdWx0IGNvbmZpZyB2YWx1ZVxyXG4gICAqIEBwYXJhbSBzcmNWYWx1ZSBUaGUgdGFyZ2V0IHN3aXRjaGJvYXJkIGNvbmZpZyB2YWx1ZVxyXG4gICAqIEByZXR1cm5zIFRoZSBtZXJnZSBvZiB0aGUgdHdvIGNvbmZpZ3MgcHJvdmlkZWRcclxuICAgKi9cclxuICBwcml2YXRlIG1lcmdlQ3VzdG9taXplcihvYmpWYWx1ZTogYW55LCBzcmNWYWx1ZTogYW55KTogYW55IHtcclxuICAgIGlmIChfLmlzQXJyYXkob2JqVmFsdWUpICYmIHNyY1ZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBzcmNWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,73 @@
1
+ import { Injectable, isDevMode, Optional } from '@angular/core';
2
+ import { catchError } from 'rxjs/operators';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "angular-oauth2-oidc";
5
+ /** The Custom OAuth Interceptor Service */
6
+ export class ArmatureAuthTokenAppendInterceptor {
7
+ /**
8
+ * The Constructor
9
+ * @param authStorage The Authorization storage
10
+ * @param errorHandler The Error handler
11
+ * @param moduleConfig The Authorization module config
12
+ */
13
+ constructor(authStorage, errorHandler, moduleConfig) {
14
+ this.authStorage = authStorage;
15
+ this.errorHandler = errorHandler;
16
+ this.moduleConfig = moduleConfig;
17
+ }
18
+ /**
19
+ * Checks if the given url starts with the current website url
20
+ * @param url The url
21
+ */
22
+ checkUrl(url) {
23
+ // don't append token to non softheon calls for dev mode
24
+ if (isDevMode() && (url.indexOf('.softheon.com') > -1 || url.indexOf('localhost') > -1)) {
25
+ return true;
26
+ }
27
+ if (!this.moduleConfig.resourceServer
28
+ || !this.moduleConfig.resourceServer.allowedUrls
29
+ || !this.moduleConfig.resourceServer.sendAccessToken) {
30
+ return false;
31
+ }
32
+ const currentUrl = `${window.location.protocol}//${window.location.hostname}${window.location.port ? `:${window.location.port}` : ''}`;
33
+ // still append token to local url refs
34
+ return url.startsWith(currentUrl) || url.indexOf('http') === -1;
35
+ }
36
+ /**
37
+ * Intercepts the http requests and appends the authorization token to the header if the endpoint matches the current base uri
38
+ * @param req The request
39
+ * @param next The Next
40
+ * https://manfredsteyer.github.io/angular-oauth2-oidc/angular-oauth2-oidc/docs/additional-documentation/working-with-httpinterceptors.html
41
+ */
42
+ intercept(req, next) {
43
+ // request url
44
+ const url = req.url.toLowerCase();
45
+ // checks the url and determines if sending the access token is allowed
46
+ if ((this.checkUrl(url) && this.moduleConfig.resourceServer.sendAccessToken)) {
47
+ let headers = req.headers;
48
+ let token = this.authStorage.getItem('access_token');
49
+ const ssoToken = window.sessionStorage.getItem('Sof-Arm-Access-Token');
50
+ if (ssoToken) {
51
+ token = ssoToken;
52
+ }
53
+ const header = `Bearer ${token}`;
54
+ if (token) {
55
+ headers = headers.set('Authorization', header);
56
+ }
57
+ req = req.clone({ headers });
58
+ }
59
+ return next.handle(req)
60
+ .pipe(catchError(err => this.errorHandler.handleError(err)));
61
+ }
62
+ }
63
+ ArmatureAuthTokenAppendInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: ArmatureAuthTokenAppendInterceptor, deps: [{ token: i1.OAuthStorage }, { token: i1.OAuthResourceServerErrorHandler }, { token: i1.OAuthModuleConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
64
+ ArmatureAuthTokenAppendInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: ArmatureAuthTokenAppendInterceptor, providedIn: 'root' });
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: ArmatureAuthTokenAppendInterceptor, decorators: [{
66
+ type: Injectable,
67
+ args: [{
68
+ providedIn: 'root'
69
+ }]
70
+ }], ctorParameters: function () { return [{ type: i1.OAuthStorage }, { type: i1.OAuthResourceServerErrorHandler }, { type: i1.OAuthModuleConfig, decorators: [{
71
+ type: Optional
72
+ }] }]; } });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJtYXR1cmUtYXV0aC10b2tlbi1hcHBlbmQuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvbGliL2NvcmUvaW50ZXJjZXB0b3JzL2FybWF0dXJlLWF1dGgtdG9rZW4tYXBwZW5kLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUU1QywyQ0FBMkM7QUFJM0MsTUFBTSxPQUFPLGtDQUFrQztJQUM3Qzs7Ozs7T0FLRztJQUNILFlBQ21CLFdBQXlCLEVBQ3pCLFlBQTZDLEVBQ2pDLFlBQStCO1FBRjNDLGdCQUFXLEdBQVgsV0FBVyxDQUFjO1FBQ3pCLGlCQUFZLEdBQVosWUFBWSxDQUFpQztRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBbUI7SUFDMUQsQ0FBQztJQUVMOzs7T0FHRztJQUNJLFFBQVEsQ0FBQyxHQUFXO1FBQ3pCLHdEQUF3RDtRQUN4RCxJQUFJLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdkYsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWM7ZUFDaEMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxXQUFXO2VBQzdDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsZUFBZSxFQUFFO1lBQ3RELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxNQUFNLFVBQVUsR0FBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBRXZJLHVDQUF1QztRQUN2QyxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUN2RCxjQUFjO1FBQ2QsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVsQyx1RUFBdUU7UUFDdkUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDNUUsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztZQUUxQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNyRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksUUFBUSxFQUFFO2dCQUNaLEtBQUssR0FBRyxRQUFRLENBQUM7YUFDbEI7WUFDRCxNQUFNLE1BQU0sR0FBRyxVQUFVLEtBQUssRUFBRSxDQUFDO1lBQ2pDLElBQUksS0FBSyxFQUFFO2dCQUNULE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUNoRDtZQUVELEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUM5QjtRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7YUFDcEIsSUFBSSxDQUNILFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ3RELENBQUM7SUFDTixDQUFDOzsrSEFoRVUsa0NBQWtDO21JQUFsQyxrQ0FBa0MsY0FGakMsTUFBTTsyRkFFUCxrQ0FBa0M7a0JBSDlDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFXSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cFJlcXVlc3QgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIGlzRGV2TW9kZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT0F1dGhNb2R1bGVDb25maWcsIE9BdXRoUmVzb3VyY2VTZXJ2ZXJFcnJvckhhbmRsZXIsIE9BdXRoU3RvcmFnZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG4vKiogVGhlIEN1c3RvbSBPQXV0aCBJbnRlcmNlcHRvciBTZXJ2aWNlICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFybWF0dXJlQXV0aFRva2VuQXBwZW5kSW50ZXJjZXB0b3Ige1xyXG4gIC8qKlxyXG4gICAqIFRoZSBDb25zdHJ1Y3RvclxyXG4gICAqIEBwYXJhbSBhdXRoU3RvcmFnZSBUaGUgQXV0aG9yaXphdGlvbiBzdG9yYWdlXHJcbiAgICogQHBhcmFtIGVycm9ySGFuZGxlciBUaGUgRXJyb3IgaGFuZGxlciBcclxuICAgKiBAcGFyYW0gbW9kdWxlQ29uZmlnIFRoZSBBdXRob3JpemF0aW9uIG1vZHVsZSBjb25maWdcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aFN0b3JhZ2U6IE9BdXRoU3RvcmFnZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JIYW5kbGVyOiBPQXV0aFJlc291cmNlU2VydmVyRXJyb3JIYW5kbGVyLFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBtb2R1bGVDb25maWc6IE9BdXRoTW9kdWxlQ29uZmlnXHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2tzIGlmIHRoZSBnaXZlbiB1cmwgc3RhcnRzIHdpdGggdGhlIGN1cnJlbnQgd2Vic2l0ZSB1cmxcclxuICAgKiBAcGFyYW0gdXJsIFRoZSB1cmxcclxuICAgKi9cclxuICBwdWJsaWMgY2hlY2tVcmwodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIC8vIGRvbid0IGFwcGVuZCB0b2tlbiB0byBub24gc29mdGhlb24gY2FsbHMgZm9yIGRldiBtb2RlXHJcbiAgICBpZiAoaXNEZXZNb2RlKCkgJiYgKHVybC5pbmRleE9mKCcuc29mdGhlb24uY29tJykgPiAtMSB8fCB1cmwuaW5kZXhPZignbG9jYWxob3N0JykgPiAtMSkpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMubW9kdWxlQ29uZmlnLnJlc291cmNlU2VydmVyXHJcbiAgICAgIHx8ICF0aGlzLm1vZHVsZUNvbmZpZy5yZXNvdXJjZVNlcnZlci5hbGxvd2VkVXJsc1xyXG4gICAgICB8fCAhdGhpcy5tb2R1bGVDb25maWcucmVzb3VyY2VTZXJ2ZXIuc2VuZEFjY2Vzc1Rva2VuKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGN1cnJlbnRVcmwgPSBgJHt3aW5kb3cubG9jYXRpb24ucHJvdG9jb2x9Ly8ke3dpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZX0ke3dpbmRvdy5sb2NhdGlvbi5wb3J0ID8gYDoke3dpbmRvdy5sb2NhdGlvbi5wb3J0fWAgOiAnJ31gO1xyXG5cclxuICAgIC8vIHN0aWxsIGFwcGVuZCB0b2tlbiB0byBsb2NhbCB1cmwgcmVmc1xyXG4gICAgcmV0dXJuIHVybC5zdGFydHNXaXRoKGN1cnJlbnRVcmwpIHx8IHVybC5pbmRleE9mKCdodHRwJykgPT09IC0xO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW50ZXJjZXB0cyB0aGUgaHR0cCByZXF1ZXN0cyBhbmQgYXBwZW5kcyB0aGUgYXV0aG9yaXphdGlvbiB0b2tlbiB0byB0aGUgaGVhZGVyIGlmIHRoZSBlbmRwb2ludCBtYXRjaGVzIHRoZSBjdXJyZW50IGJhc2UgdXJpXHJcbiAgICogQHBhcmFtIHJlcSBUaGUgcmVxdWVzdFxyXG4gICAqIEBwYXJhbSBuZXh0IFRoZSBOZXh0XHJcbiAgICogaHR0cHM6Ly9tYW5mcmVkc3RleWVyLmdpdGh1Yi5pby9hbmd1bGFyLW9hdXRoMi1vaWRjL2FuZ3VsYXItb2F1dGgyLW9pZGMvZG9jcy9hZGRpdGlvbmFsLWRvY3VtZW50YXRpb24vd29ya2luZy13aXRoLWh0dHBpbnRlcmNlcHRvcnMuaHRtbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuICAgIC8vIHJlcXVlc3QgdXJsXHJcbiAgICBjb25zdCB1cmwgPSByZXEudXJsLnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgLy8gY2hlY2tzIHRoZSB1cmwgYW5kIGRldGVybWluZXMgaWYgc2VuZGluZyB0aGUgYWNjZXNzIHRva2VuIGlzIGFsbG93ZWRcclxuICAgIGlmICgodGhpcy5jaGVja1VybCh1cmwpICYmIHRoaXMubW9kdWxlQ29uZmlnLnJlc291cmNlU2VydmVyLnNlbmRBY2Nlc3NUb2tlbikpIHtcclxuICAgICAgbGV0IGhlYWRlcnMgPSByZXEuaGVhZGVycztcclxuXHJcbiAgICAgIGxldCB0b2tlbiA9IHRoaXMuYXV0aFN0b3JhZ2UuZ2V0SXRlbSgnYWNjZXNzX3Rva2VuJyk7XHJcbiAgICAgIGNvbnN0IHNzb1Rva2VuID0gd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ1NvZi1Bcm0tQWNjZXNzLVRva2VuJyk7XHJcbiAgICAgIGlmIChzc29Ub2tlbikge1xyXG4gICAgICAgIHRva2VuID0gc3NvVG9rZW47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgaGVhZGVyID0gYEJlYXJlciAke3Rva2VufWA7XHJcbiAgICAgIGlmICh0b2tlbikge1xyXG4gICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsIGhlYWRlcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJlcSA9IHJlcS5jbG9uZSh7IGhlYWRlcnMgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlRXJyb3IoZXJyKSlcclxuICAgICAgKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvbGliL2NvcmUvbW9kZWxzL2Jhc2UtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaGVtZVBhbGV0dGVNb2RlbCB9IGZyb20gJy4uL2NsaWVudC1nZW5lcmF0ZWQvbW9kZWwvdGhlbWVQYWxldHRlTW9kZWwnO1xyXG5pbXBvcnQgeyBIZWFkZXJDb25maWcgfSBmcm9tICcuL2hlYWRlci1jb25maWcnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uQ29uZmlnIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWNvbmZpZyc7XHJcbmltcG9ydCB7IE9pZGNBdXRoU2V0dGluZ3MgfSBmcm9tICcuL29pZGMtYXV0aC1zZXR0aW5ncyc7XHJcblxyXG4vKiogVGhlIGJhc2UgY29uZmlndXJhdGlvbiBpbnRlcmZhY2UgKi9cclxuZXhwb3J0IGludGVyZmFjZSBCYXNlQ29uZmlnIHtcclxuICAgIC8qKiBUaGUgb2lkYyBzZXR0aW5ncyAqL1xyXG4gICAgb0F1dGhTZXR0aW5nczogT2lkY0F1dGhTZXR0aW5ncztcclxuXHJcbiAgICAvKiogVGhlIGhlYWRlciBjb25maWd1cmF0aW9ucyAqL1xyXG4gICAgaGVhZGVyOiBIZWFkZXJDb25maWc7XHJcblxyXG4gICAgLyoqIFRoZSB0aGVtZSBwYWxldHRlICovXHJcbiAgICB0aGVtZTogVGhlbWVQYWxldHRlTW9kZWw7XHJcblxyXG4gICAgLyoqIFRoZSBuYXZpZ2F0aW9uIGNvbmZpZyAqL1xyXG4gICAgbmF2aWdhdGlvbjogTmF2aWdhdGlvbkNvbmZpZztcclxufVxyXG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ // Injection tokens
3
+ /** The session configs */
4
+ export const SESSION_CONFIG = new InjectionToken('SessionConfig');
5
+ /** The window interface */
6
+ export const WINDOW = new InjectionToken('Window');
7
+ /** The user entity service configs */
8
+ export const USER_ENTITY_SERVICE_CONFIG = new InjectionToken('UserEntityServiceConfig');
9
+ /** The pre sign in route storage key */
10
+ export const preSignInRouteStorageKey = 'preSignInRoute';
11
+ /** The language storage key */
12
+ export const languageStorageKey = 'language';
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9jb3JlL21vZGVscy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsvQyxtQkFBbUI7QUFDbkIsMEJBQTBCO0FBQzFCLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBa0MsSUFBSSxjQUFjLENBQWdCLGVBQWUsQ0FBQyxDQUFDO0FBRWhILDJCQUEyQjtBQUMzQixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQTJCLElBQUksY0FBYyxDQUFTLFFBQVEsQ0FBQyxDQUFDO0FBRW5GLHNDQUFzQztBQUN0QyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBNEMsSUFBSSxjQUFjLENBQTBCLHlCQUF5QixDQUFDLENBQUM7QUFFMUosd0NBQXdDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFXLGdCQUFnQixDQUFDO0FBRWpFLCtCQUErQjtBQUMvQixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBVyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgU2Vzc2lvbkNvbmZpZyB9IGZyb20gJy4vc2Vzc2lvbi1jb25maWcnO1xyXG5pbXBvcnQgeyBVc2VyRW50aXR5U2VydmljZUNvbmZpZyB9IGZyb20gJy4vdXNlci1lbnRpdHktc2VydmljZS1jb25maWcnO1xyXG5cclxuLy8gSW5qZWN0aW9uIHRva2Vuc1xyXG4vKiogVGhlIHNlc3Npb24gY29uZmlncyAqL1xyXG5leHBvcnQgY29uc3QgU0VTU0lPTl9DT05GSUc6IEluamVjdGlvblRva2VuPFNlc3Npb25Db25maWc+ID0gbmV3IEluamVjdGlvblRva2VuPFNlc3Npb25Db25maWc+KCdTZXNzaW9uQ29uZmlnJyk7XHJcblxyXG4vKiogVGhlIHdpbmRvdyBpbnRlcmZhY2UgKi9cclxuZXhwb3J0IGNvbnN0IFdJTkRPVzogSW5qZWN0aW9uVG9rZW48V2luZG93PiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxXaW5kb3c+KCdXaW5kb3cnKTtcclxuXHJcbi8qKiBUaGUgdXNlciBlbnRpdHkgc2VydmljZSBjb25maWdzICovXHJcbmV4cG9ydCBjb25zdCBVU0VSX0VOVElUWV9TRVJWSUNFX0NPTkZJRzogSW5qZWN0aW9uVG9rZW48VXNlckVudGl0eVNlcnZpY2VDb25maWc+ID0gbmV3IEluamVjdGlvblRva2VuPFVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnPignVXNlckVudGl0eVNlcnZpY2VDb25maWcnKTtcclxuXHJcbi8qKiBUaGUgcHJlIHNpZ24gaW4gcm91dGUgc3RvcmFnZSBrZXkgKi9cclxuZXhwb3J0IGNvbnN0IHByZVNpZ25JblJvdXRlU3RvcmFnZUtleTogc3RyaW5nID0gJ3ByZVNpZ25JblJvdXRlJztcclxuXHJcbi8qKiBUaGUgbGFuZ3VhZ2Ugc3RvcmFnZSBrZXkgKi9cclxuZXhwb3J0IGNvbnN0IGxhbmd1YWdlU3RvcmFnZUtleTogc3RyaW5nID0gJ2xhbmd1YWdlJztcclxuIl19
@@ -0,0 +1,4 @@
1
+ /** The data store configurations */
2
+ export class DataStoreConfig {
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zdG9yZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvbGliL2NvcmUvbW9kZWxzL2RhdGEtc3RvcmUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLG9DQUFvQztBQUNwQyxNQUFNLE9BQU8sZUFBZTtDQXdCM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwVmVyYiB9IGZyb20gJy4vaHR0cC12ZXJicyc7XHJcbmltcG9ydCB7IFR5cGVkU2Vzc2lvbiB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL3R5cGVkLXNlc3Npb24nO1xyXG5cclxuLyoqIFRoZSBkYXRhIHN0b3JlIGNvbmZpZ3VyYXRpb25zICovXHJcbmV4cG9ydCBjbGFzcyBEYXRhU3RvcmVDb25maWc8VCA9IGFueT4ge1xyXG4gICAgLyoqIFRoZSBkYXRhIHN0b3JlIGJhc2UgdXJpICovXHJcbiAgICBwdWJsaWMgYmFzZVVyaTogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBUaGUgcmV0cmlldmUgaHR0cCB2ZXJiICovXHJcbiAgICBwdWJsaWMgcmV0cmlldmVWZXJiOiBIdHRwVmVyYjtcclxuXHJcbiAgICAvKiogVGhlIHJldHJpZXZlIHJlcXVlc3QgZGVsZWdhdGUgKi9cclxuICAgIHB1YmxpYyByZXRyaWV2ZVJlcXVlc3REZWxlZ2F0ZTogKGJhc2VVcmk6IHN0cmluZywgZGF0YTogVHlwZWRTZXNzaW9uPFQ+KSA9PiB7IHVyaTogc3RyaW5nLCBib2R5PzogYW55IH07XHJcblxyXG4gICAgLyoqIFRoZSByZXRyaWV2ZSByZXNwb25zZSBkZWxlZ2F0ZSAqL1xyXG4gICAgcHVibGljIHJldHJpZXZlUmVzcG9uc2VEZWxlZ2F0ZTogKHJlc3BvbnNlOiBhbnksIHNlc3Npb246IFR5cGVkU2Vzc2lvbjxUPikgPT4gVHlwZWRTZXNzaW9uPFQ+O1xyXG5cclxuICAgIC8qKiBUaGUgcmV0cmlldmUgc2VjdXJhYmxlIGRlbGVnYXRlICovXHJcbiAgICBwdWJsaWMgcmV0cmlldmVTZWN1cmFibGVEZWxlZ2F0ZTogKHJlc3BvbnNlOiBhbnkpID0+IEFycmF5PChhcmc6IGFueSkgPT4gYW55PiB8ICgoYXJnOiBhbnkpID0+IGFueSk7XHJcblxyXG4gICAgLyoqIFRoZSB1cGRhdGUgaHR0cCB2ZXJiICovXHJcbiAgICBwdWJsaWMgdXBkYXRlVmVyYjogSHR0cFZlcmI7XHJcblxyXG4gICAgLyoqIFRoZSB1cGRhdGUgcmVxdWVzdCBkZWxlZ2F0ZSAqL1xyXG4gICAgcHVibGljIHVwZGF0ZVJlcXVlc3REZWxlZ2F0ZTogKGJhc2VVcmk6IHN0cmluZywgZGF0YTogVCkgPT4geyB1cmk6IHN0cmluZywgYm9keT86IGFueX07XHJcblxyXG4gICAgLyoqIERlbGVnYXRlIGZvciBkZXRlcm1pbmluZyB3aGVuIHRvIG1ha2UgYSBjYWxsIHRvIHVwZGF0ZSB0aGUgZGF0YSBzdG9yZSAqL1xyXG4gICAgcHVibGljIHNob3VsZFVwZGF0ZURhdGFTdG9yZURlbGVnYXRlOiAoZGF0YTogVCkgPT4gYm9vbGVhbjtcclxufVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvY29yZS9tb2RlbHMvaGVhZGVyLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGVhZGVyVGhlbWVTZXR0aW5ncyB9IGZyb20gXCIuLi8uLi9oZWFkZXIvbW9kZWxzL2hlYWRlci10aGVtZS5zZXR0aW5nc1wiO1xyXG5pbXBvcnQgeyBIZWFkZXJTZXR0aW5ncyB9IGZyb20gXCIuLi8uLi9oZWFkZXIvbW9kZWxzL2hlYWRlci5zZXR0aW5nc1wiO1xyXG5cclxuLyoqIFRoZSBoZWFkZXIgY29uZmlndXJhdGlvbnMgKi9cclxuZXhwb3J0IGludGVyZmFjZSBIZWFkZXJDb25maWcge1xyXG4gICAgLyoqIFRoZSBoZWFkZXIgdGhlbWUgc2V0dGluZ3MgKi9cclxuICAgIHRoZW1lOiBIZWFkZXJUaGVtZVNldHRpbmdzO1xyXG4gICAgLyoqIFRoZSBoZWFkZXIgc2V0dGluZ3MgKi9cclxuICAgIHNldHRpbmdzOiBIZWFkZXJTZXR0aW5ncztcclxufVxyXG4iXX0=
@@ -0,0 +1,9 @@
1
+ /** The http verb constants */
2
+ export const httpVerb = {
3
+ POST: 'POST',
4
+ GET: 'GET',
5
+ PUT: 'PUT',
6
+ PATCH: 'PATCH',
7
+ DELETE: 'DELETE',
8
+ };
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC12ZXJicy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvY29yZS9tb2RlbHMvaHR0cC12ZXJicy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSw4QkFBOEI7QUFDOUIsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHO0lBQ3BCLElBQUksRUFBRSxNQUFrQjtJQUN4QixHQUFHLEVBQUUsS0FBaUI7SUFDdEIsR0FBRyxFQUFFLEtBQWlCO0lBQ3RCLEtBQUssRUFBRSxPQUFtQjtJQUMxQixNQUFNLEVBQUUsUUFBb0I7Q0FDL0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBUaGUgaHR0cCB2ZXJiIHR5cGVzICovXHJcbmV4cG9ydCB0eXBlIEh0dHBWZXJiID0gJ1BPU1QnIHwgJ0dFVCcgfCAnUFVUJyB8ICdQQVRDSCcgfCAnREVMRVRFJztcclxuXHJcbi8qKiBUaGUgaHR0cCB2ZXJiIGNvbnN0YW50cyAqL1xyXG5leHBvcnQgY29uc3QgaHR0cFZlcmIgPSB7XHJcbiAgICBQT1NUOiAnUE9TVCcgYXMgSHR0cFZlcmIsXHJcbiAgICBHRVQ6ICdHRVQnIGFzIEh0dHBWZXJiLFxyXG4gICAgUFVUOiAnUFVUJyBhcyBIdHRwVmVyYixcclxuICAgIFBBVENIOiAnUEFUQ0gnIGFzIEh0dHBWZXJiLFxyXG4gICAgREVMRVRFOiAnREVMRVRFJyBhcyBIdHRwVmVyYixcclxufVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvbGliL2NvcmUvbW9kZWxzL25hdmlnYXRpb24tY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOYXZpZ2F0aW9uVGhlbWVTZXR0aW5ncyB9IGZyb20gJy4uLy4uL25hdmlnYXRpb24vbW9kZWxzL25hdi10aGVtZS5zZXR0aW5ncyc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25BZHZhbmNlZFNldHRpbmdzLCBOYXZpZ2F0aW9uU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9uYXZpZ2F0aW9uL21vZGVscy9uYXYuc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBOYXZOb2RlIH0gZnJvbSAnLi4vLi4vbmF2aWdhdGlvbi9tb2RlbHMvbmF2aWdhdGlvbic7XHJcblxyXG4vKiogVGhlIG5hdmlnYXRpb24gY29uZmlnICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGlvbkNvbmZpZyB7XHJcbiAgICAvKiogVGhlIG5hdmlnYXRpb24gdGhlbWUgc2V0dGluZ3MgKi9cclxuICAgIHRoZW1lOiBOYXZpZ2F0aW9uVGhlbWVTZXR0aW5ncztcclxuICAgIC8qKiBUaGUgbmF2aWdhdGlvbiBzZXR0aW5ncyAqL1xyXG4gICAgc2V0dGluZ3M6IE5hdmlnYXRpb25TZXR0aW5ncztcclxuICAgIC8qKiBUaGUgYWR2YW5jZWQgbmF2aWdhdGlvbiBzZXR0aW5ncyAqL1xyXG4gICAgYWR2YW5jZWQ6IE5hdmlnYXRpb25BZHZhbmNlZFNldHRpbmdzO1xyXG4gICAgLyoqIFRoZSBuYXZpZ2F0aW9uIGFycmF5ICovXHJcbiAgICBub2RlczogQXJyYXk8TmF2Tm9kZT47XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy1hdXRoLXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9jb3JlL21vZGVscy9vaWRjLWF1dGgtc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhDb25maWcgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcclxuXHJcbi8qKiBPSURDIEF1dGggU2V0dGluZ3MgKi9cclxuZXhwb3J0IGludGVyZmFjZSBPaWRjQXV0aFNldHRpbmdzIGV4dGVuZHMgQXV0aENvbmZpZyB7XHJcbiAgICBsb2dJblRleHQ/OiBzdHJpbmc7XHJcbiAgICBsb2dPdXRUZXh0Pzogc3RyaW5nO1xyXG4gICAgcmV0dXJuUm91dGU/OiBzdHJpbmc7XHJcbiAgICBhdXRoU2V0T25TdGFydHVwPzogYm9vbGVhbjtcclxuICAgIHJlcXVpcmVMb2dpbk9uU3RhcnR1cD86IGJvb2xlYW47XHJcbn1cclxuIl19
@@ -0,0 +1,7 @@
1
+ /** The route path enum */
2
+ export var RoutePath;
3
+ (function (RoutePath) {
4
+ RoutePath["Internal"] = "internal";
5
+ RoutePath["External"] = "external";
6
+ })(RoutePath || (RoutePath = {}));
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtcGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvY29yZS9tb2RlbHMvcm91dGUtcGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUIsTUFBTSxDQUFOLElBQVksU0FHWDtBQUhELFdBQVksU0FBUztJQUNuQixrQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSFcsU0FBUyxLQUFULFNBQVMsUUFHcEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVGhlIHJvdXRlIHBhdGggZW51bSAqL1xyXG5leHBvcnQgZW51bSBSb3V0ZVBhdGgge1xyXG4gIEludGVybmFsID0gJ2ludGVybmFsJyxcclxuICBFeHRlcm5hbCA9ICdleHRlcm5hbCdcclxufVxyXG4iXX0=
@@ -0,0 +1,4 @@
1
+ /** The session configurations */
2
+ export class SessionConfig {
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvbGliL2NvcmUvbW9kZWxzL3Nlc3Npb24tY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLGlDQUFpQztBQUNqQyxNQUFNLE9BQU8sYUFBYTtDQXFCekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU3RvcmVDb25maWcgfSBmcm9tICcuL2RhdGEtc3RvcmUtY29uZmlnJztcclxuXHJcbi8qKiBUaGUgc2Vzc2lvbiBjb25maWd1cmF0aW9ucyAqL1xyXG5leHBvcnQgY2xhc3MgU2Vzc2lvbkNvbmZpZzxUID0gYW55PiB7XHJcbiAgICAvKiogVGhlIGJyb3dzZXIgc3RvcmFnZSBpbXBsZW1lbnRhdGlvbiAqL1xyXG4gICAgcHVibGljIGJyb3dzZXJTdG9yYWdlSW1wbGVtZW50YXRpb246IHN0cmluZztcclxuXHJcbiAgICAvKiogVGhlIHNlc3Npb24gbWFuYWdlbWVudCBpbXBsZW1lbnRhdGlvbiAqL1xyXG4gICAgcHVibGljIHNlc3Npb25NYW5hZ2VtZW50SW1wbGVtZW50YXRpb246IHN0cmluZztcclxuXHJcbiAgICAvKiogVGhlIGRhdGEgc3RvcmUgY29uZmlndXJhdGlvbnMgKi9cclxuICAgIHB1YmxpYyBkYXRhU3RvcmVDb25maWc6IERhdGFTdG9yZUNvbmZpZzxUPjtcclxuXHJcbiAgICAvKiogVGhlIHRyYW5zZmVyIGJhc2UgcGF0aCAqL1xyXG4gICAgcHVibGljIHRyYW5zZmVyQmFzZVBhdGg6IHN0cmluZztcclxuXHJcbiAgICAvKiogVGhlIGtleSBwYXRoIHVzZWQgZm9yIGJyb3dzZXIgc3RvcmFnZSAqL1xyXG4gICAgcHVibGljIGtleVBhdGg6IHN0cmluZztcclxuXHJcbiAgICAvKiogVGhlIHNlc3Npb24gbWFuYWdlbWVudCBiYXNlIHBhdGggKi9cclxuICAgIHB1YmxpYyBzZXNzaW9uTWFuYWdlbWVudEJhc2VQYXRoOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIFRoZSBzZXNzaW9uIHJlZnJlc2ggdGltZSBpbiBtaW51dGVzICovXHJcbiAgICBwdWJsaWMgc2Vzc2lvblJlZnJlc2hUaW1lTWludXRlczogbnVtYmVyO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9jb3JlL21vZGVscy9zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBUaGUgc3R5bGVzIGludGVyZmFjZSAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlcyB7XHJcbiAgICAvKiogVGhlIGhlaWdodCBpbiBweCAqL1xyXG4gICAgaGVpZ2h0PzogbnVtYmVyO1xyXG5cclxuICAgIC8qKiBUaGUgbW9iaWxlIGhlaWdodCBpbiBweCAqL1xyXG4gICAgaGVpZ2h0TW9iaWxlPzogbnVtYmVyO1xyXG5cclxuICAgIC8qKiBUaGUgd2lkdGggaW4gcHggKi9cclxuICAgIHdpZHRoPzogbnVtYmVyO1xyXG5cclxuICAgIC8qKiBUaGUgbW9iaWxlIHdpZHRoIGluIHB4ICovXHJcbiAgICB3aWR0aE1vYmlsZT86IG51bWJlcjtcclxufVxyXG4iXX0=
@@ -0,0 +1,4 @@
1
+ /** The session class */
2
+ export class TypedSession {
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtc2Vzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvY29yZS9tb2RlbHMvdHlwZWQtc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSx3QkFBd0I7QUFDeEIsTUFBTSxPQUFPLFlBQVk7Q0FrQnhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2Vzc2lvblJlc3BvbnNlTW9kZWwgfSBmcm9tICcuLi8uLi9jb3JlL2NsaWVudC1nZW5lcmF0ZWQvbW9kZWwvc2Vzc2lvblJlc3BvbnNlTW9kZWwnO1xyXG5pbXBvcnQgeyBCcmFuZGluZ01vZGVsLCBUcmFja2luZ01vZGVsLCBPQXV0aE1vZGVsIH0gZnJvbSAnLi4vLi4vY29yZS9jbGllbnQtZ2VuZXJhdGVkL21vZGVsL21vZGVscyc7XHJcblxyXG4vKiogVGhlIHNlc3Npb24gY2xhc3MgKi9cclxuZXhwb3J0IGNsYXNzIFR5cGVkU2Vzc2lvbjxUPiBpbXBsZW1lbnRzIFNlc3Npb25SZXNwb25zZU1vZGVsIHtcclxuICAgIC8qKiBUaGUgaW5pdGFsaXppbmcgb3JpZ2luICovXHJcbiAgICBwdWJsaWMgaW5pdGlhbGl6aW5nT3JpZ2luPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBUaGUgc2Vzc2lvbiBpZCAqL1xyXG4gICAgcHVibGljIHNlc3Npb25JZD86IHN0cmluZztcclxuXHJcbiAgICAvKiogVGhlIHR5cGVkIHNlc3Npb24gZGF0YSAqL1xyXG4gICAgcHVibGljIHNlc3Npb25EYXRhPzogVDtcclxuXHJcbiAgICAvKiogVGhlIGJyYW5kaW5nIG1vZGVsICovXHJcbiAgICBwdWJsaWMgYnJhbmRpbmc/OiBCcmFuZGluZ01vZGVsO1xyXG5cclxuICAgIC8qKiBUaGUgdHJhY2tpbmcgbW9kZWwgKi9cclxuICAgIHB1YmxpYyB0cmFja2luZz86IFRyYWNraW5nTW9kZWw7XHJcblxyXG4gICAgLyoqIFRoZSBvYXV0aCBtb2RlbCAqL1xyXG4gICAgcHVibGljIG9BdXRoPzogT0F1dGhNb2RlbDtcclxufSJdfQ==
@@ -0,0 +1,12 @@
1
+ /** The user entity service config */
2
+ export class UserEntityServiceConfig {
3
+ constructor() {
4
+ /** true if getting user on start up */
5
+ this.getUserOnInit = true;
6
+ /** True when including links */
7
+ this.includeLinks = true;
8
+ /** The validate function */
9
+ this.validate = (user) => true;
10
+ }
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1lbnRpdHktc2VydmljZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvbGliL2NvcmUvbW9kZWxzL3VzZXItZW50aXR5LXNlcnZpY2UtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLHFDQUFxQztBQUNyQyxNQUFNLE9BQU8sdUJBQXVCO0lBQXBDO1FBQ0ksdUNBQXVDO1FBQ2hDLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBS3JDLGdDQUFnQztRQUN6QixpQkFBWSxHQUFZLElBQUksQ0FBQztRQUtwQyw0QkFBNEI7UUFDckIsYUFBUSxHQUF5QyxDQUFDLElBQXVCLEVBQVcsRUFBRSxDQUFDLElBQUksQ0FBQztJQUN2RyxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3NlcnRlZFVzZXJNb2RlbCB9IGZyb20gJy4uL2NsaWVudC1nZW5lcmF0ZWQvbW9kZWwvYXNzZXJ0ZWRVc2VyTW9kZWwnO1xyXG5cclxuLyoqIFRoZSB1c2VyIGVudGl0eSBzZXJ2aWNlIGNvbmZpZyAqL1xyXG5leHBvcnQgY2xhc3MgVXNlckVudGl0eVNlcnZpY2VDb25maWcge1xyXG4gICAgLyoqIHRydWUgaWYgZ2V0dGluZyB1c2VyIG9uIHN0YXJ0IHVwICovXHJcbiAgICBwdWJsaWMgZ2V0VXNlck9uSW5pdDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgLyoqIFRoZSB1c2VyIGVudGl0eSBiYXNlIHVybCAqL1xyXG4gICAgcHVibGljIHVzZXJFbnRpdHlCYXNlVXJsOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIFRydWUgd2hlbiBpbmNsdWRpbmcgbGlua3MgKi9cclxuICAgIHB1YmxpYyBpbmNsdWRlTGlua3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8qKiBUaGUgcGFydGlhbCBmb3IgdGhlIGdldCB1c2VyIGNhbGwgKi9cclxuICAgIHB1YmxpYyBnZXRVc2VyUGFydGlhbDogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBUaGUgdmFsaWRhdGUgZnVuY3Rpb24gKi9cclxuICAgIHB1YmxpYyB2YWxpZGF0ZTogKHVzZXI6IEFzc2VydGVkVXNlck1vZGVsKSA9PiBib29sZWFuID0gKHVzZXI6IEFzc2VydGVkVXNlck1vZGVsKTogYm9vbGVhbiA9PiB0cnVlO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,175 @@
1
+ import { Injectable, Optional } from "@angular/core";
2
+ import { AuthConfig } from "angular-oauth2-oidc";
3
+ import { JwksValidationHandler } from 'angular-oauth2-oidc-jwks';
4
+ import { BehaviorSubject } from "rxjs";
5
+ import { preSignInRouteStorageKey } from "../models/constants";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "angular-oauth2-oidc";
8
+ import * as i2 from "@angular/common/http";
9
+ import * as i3 from "../../oauth/oauth-api";
10
+ import * as i4 from "./custom-auth-config.service";
11
+ /** The session service */
12
+ export class AuthorizationService {
13
+ /**
14
+ * Constructs authorization service
15
+ * @param authService The OAuth Service
16
+ * @param httpClient The HTTPClient
17
+ * @param authStorage The AuthStorage
18
+ * @param hybridAuthService The Hybrid Service
19
+ * @param customAuthConfigService The Custom Authorization Service
20
+ */
21
+ constructor(authService, httpClient, authStorage, hybridAuthService, customAuthConfigService) {
22
+ this.authService = authService;
23
+ this.httpClient = httpClient;
24
+ this.authStorage = authStorage;
25
+ this.hybridAuthService = hybridAuthService;
26
+ this.customAuthConfigService = customAuthConfigService;
27
+ /** IsloggedIn behaviour subject **/
28
+ this.isLoggedInBs = new BehaviorSubject(false);
29
+ this.isLoggedIn$ = this.isLoggedInBs.asObservable();
30
+ }
31
+ /**
32
+ * Initialize Authorization Settings.
33
+ * @param authSettings The Authorization settings
34
+ */
35
+ initializeAuthSettings(authSettings, shouldTryLogin = true) {
36
+ this.authSettings = authSettings;
37
+ if (this.customAuthConfigService) {
38
+ this.customAuthConfigService.configureAuthSettings().then(authConfig => {
39
+ // Overwrite initial header auth setting with custom resolver
40
+ this.authSettings = {
41
+ ...authSettings,
42
+ ...authConfig
43
+ };
44
+ if (shouldTryLogin) {
45
+ this.handleTryLogin(authSettings.authSetOnStartup);
46
+ }
47
+ });
48
+ }
49
+ else {
50
+ const authConfig = new AuthConfig({
51
+ clientId: authSettings.clientId,
52
+ redirectUri: authSettings.redirectUri,
53
+ issuer: authSettings.issuer,
54
+ scope: authSettings.scope,
55
+ skipIssuerCheck: authSettings.skipIssuerCheck,
56
+ timeoutFactor: authSettings.timeoutFactor || 0.75,
57
+ postLogoutRedirectUri: authSettings.postLogOutUrl,
58
+ loginUrl: authSettings.loginUrl,
59
+ responseType: authSettings.responseType || 'code'
60
+ });
61
+ this.authService.configure(authConfig);
62
+ this.authService.issuer = authSettings.issuer;
63
+ this.authService.strictDiscoveryDocumentValidation = false;
64
+ this.authService.skipIssuerCheck = true;
65
+ this.authService.tokenValidationHandler = new JwksValidationHandler();
66
+ this.authService.setupAutomaticSilentRefresh({}, 'access_token');
67
+ this.authService.timeoutFactor = authSettings.timeoutFactor || 0.75;
68
+ this.authService.responseType = authSettings.responseType || 'code';
69
+ if (shouldTryLogin) {
70
+ this.handleTryLogin(authSettings.authSetOnStartup);
71
+ }
72
+ }
73
+ }
74
+ /** The user name */
75
+ userName() {
76
+ let name = '';
77
+ if (this.claims.given_name) {
78
+ name += this.claims.given_name;
79
+ }
80
+ if (name && this.claims.family_name) {
81
+ name += ` ${this.claims.family_name}`;
82
+ }
83
+ else if (this.claims.family_name) {
84
+ name += this.claims.family_name;
85
+ }
86
+ return name || this.claims.upn;
87
+ }
88
+ /**
89
+ * Authorize User.
90
+ */
91
+ authorizeUser() {
92
+ if (this.authSettings) {
93
+ if (!this.IsLoggedIn) {
94
+ if (this.customAuthConfigService) {
95
+ this.customAuthConfigService.configureAuthSettings().then(_ => {
96
+ this.handleLogin();
97
+ });
98
+ }
99
+ else {
100
+ if (this.authService.issuer !== this.authSettings.issuer) {
101
+ this.authService.issuer = this.authSettings.issuer;
102
+ }
103
+ this.handleLogin();
104
+ }
105
+ }
106
+ else {
107
+ if (this.hybridAuthService) {
108
+ this.hybridAuthService.expireSession(true);
109
+ }
110
+ this.authService.logOut();
111
+ this.authStorage.removeItem('access_token');
112
+ this.isLoggedInBs.next(false);
113
+ this.IsLoggedIn = false;
114
+ return;
115
+ }
116
+ }
117
+ }
118
+ /**
119
+ * Handle Login
120
+ * @param authSetOnStartup Is auth set on startup
121
+ */
122
+ handleTryLogin(authSetOnStartup) {
123
+ if (!authSetOnStartup) {
124
+ this.authService.loadDiscoveryDocumentAndTryLogin()
125
+ .then(() => {
126
+ const token = this.authService.getAccessToken();
127
+ const isValid = !!token;
128
+ this.claims = this.authService.getIdentityClaims();
129
+ this.isLoggedInBs.next(isValid);
130
+ this.IsLoggedIn = isValid;
131
+ })
132
+ .catch(e => {
133
+ console.error(e);
134
+ });
135
+ }
136
+ else {
137
+ this.authService.loadDiscoveryDocument()
138
+ .then(() => {
139
+ const token = this.authService.getAccessToken();
140
+ const isValid = !!token;
141
+ this.claims = this.authService.getIdentityClaims();
142
+ this.isLoggedInBs.next(isValid);
143
+ this.IsLoggedIn = isValid;
144
+ })
145
+ .catch(e => {
146
+ console.error(e);
147
+ });
148
+ }
149
+ }
150
+ /** Handle Login */
151
+ handleLogin() {
152
+ window.sessionStorage.setItem(preSignInRouteStorageKey, window.location.pathname.toLowerCase());
153
+ this.authService.loadDiscoveryDocumentAndLogin()
154
+ .then(logInSuccess => {
155
+ if (logInSuccess) {
156
+ this.isLoggedInBs.next(true);
157
+ this.IsLoggedIn = true;
158
+ }
159
+ })
160
+ .catch(e => {
161
+ console.error(e);
162
+ });
163
+ }
164
+ }
165
+ AuthorizationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AuthorizationService, deps: [{ token: i1.OAuthService }, { token: i2.HttpClient }, { token: i1.OAuthStorage }, { token: i3.HybridSamlOauthService }, { token: i4.CustomAuthConfigService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
166
+ AuthorizationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AuthorizationService, providedIn: 'root' });
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AuthorizationService, decorators: [{
168
+ type: Injectable,
169
+ args: [{
170
+ providedIn: 'root'
171
+ }]
172
+ }], ctorParameters: function () { return [{ type: i1.OAuthService }, { type: i2.HttpClient }, { type: i1.OAuthStorage }, { type: i3.HybridSamlOauthService }, { type: i4.CustomAuthConfigService, decorators: [{
173
+ type: Optional
174
+ }] }]; } });
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2F1dGhvcml6YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsVUFBVSxFQUE4QixNQUFNLHFCQUFxQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFLbkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQUcvRCwwQkFBMEI7QUFJMUIsTUFBTSxPQUFPLG9CQUFvQjtJQWlCL0I7Ozs7Ozs7T0FPRztJQUNILFlBQ21CLFdBQXlCLEVBQ3pCLFVBQXNCLEVBQ3RCLFdBQXlCLEVBQ3pCLGlCQUF5QyxFQUM3Qix1QkFBZ0Q7UUFKNUQsZ0JBQVcsR0FBWCxXQUFXLENBQWM7UUFDekIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYztRQUN6QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXdCO1FBQzdCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUF0Qi9FLG9DQUFvQztRQUNuQixpQkFBWSxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQXVCNUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRDs7O09BR0c7SUFDSSxzQkFBc0IsQ0FBQyxZQUFnQyxFQUFFLGlCQUEwQixJQUFJO1FBQzVGLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxD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QUMsVUFBVSxHQUFHLElBQUksQ0FBQzthQUN4QjtRQUNILENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztpSEE1S1Usb0JBQW9CO3FIQUFwQixvQkFBb0IsY0FGbkIsTUFBTTsyRkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkErQkksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQgeyBBdXRoQ29uZmlnLCBPQXV0aFNlcnZpY2UsIE9BdXRoU3RvcmFnZSB9IGZyb20gXCJhbmd1bGFyLW9hdXRoMi1vaWRjXCI7XHJcbmltcG9ydCB7IEp3a3NWYWxpZGF0aW9uSGFuZGxlciB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMtandrcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5pbXBvcnQgeyBIZWFkZXJBdXRoU2V0dGluZ3MgfSBmcm9tIFwiLi4vLi4vaGVhZGVyL21vZGVscy9oZWFkZXItYXV0aC5zZXR0aW5nc1wiO1xyXG5pbXBvcnQgeyBIeWJyaWRTYW1sT2F1dGhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL29hdXRoL29hdXRoLWFwaVwiO1xyXG5pbXBvcnQgeyBBY2Nlc3NUb2tlbkNsYWltcyB9IGZyb20gXCIuLi8uLi9yYmFjL3JiYWMtYXBpXCI7XHJcbmltcG9ydCB7IHByZVNpZ25JblJvdXRlU3RvcmFnZUtleSB9IGZyb20gXCIuLi9tb2RlbHMvY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEN1c3RvbUF1dGhDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9jdXN0b20tYXV0aC1jb25maWcuc2VydmljZSc7XHJcblxyXG4vKiogVGhlIHNlc3Npb24gc2VydmljZSAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRob3JpemF0aW9uU2VydmljZSB7XHJcblxyXG4gIC8qKiBUaGUgY2xhaW1zICovXHJcbiAgcHJpdmF0ZSBjbGFpbXM6IEFjY2Vzc1Rva2VuQ2xhaW1zO1xyXG5cclxuICAvKiogQXV0aG9yaXphdGlvbiBzZXR0aW5ncy4qL1xyXG4gIHB1YmxpYyBhdXRoU2V0dGluZ3M6IEhlYWRlckF1dGhTZXR0aW5ncztcclxuXHJcbiAgLyoqIElzbG9nZ2VkSW4gYmVoYXZpb3VyIHN1YmplY3QgKiovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc0xvZ2dlZEluQnM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvKiogSXNsb2dnZWRJbiBvYnNlcnZhYmxlICoqL1xyXG4gIHB1YmxpYyBpc0xvZ2dlZEluJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgLyoqIERldGVybWluZWQgd2hldGhlciBpcyB1c2VyIGlzIGxvZ2dlZCBpbioqL1xyXG4gIHB1YmxpYyBJc0xvZ2dlZEluOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RzIGF1dGhvcml6YXRpb24gc2VydmljZVxyXG4gICAqIEBwYXJhbSBhdXRoU2VydmljZSBUaGUgT0F1dGggU2VydmljZVxyXG4gICAqIEBwYXJhbSBodHRwQ2xpZW50IFRoZSBIVFRQQ2xpZW50XHJcbiAgICogQHBhcmFtIGF1dGhTdG9yYWdlIFRoZSBBdXRoU3RvcmFnZVxyXG4gICAqIEBwYXJhbSBoeWJyaWRBdXRoU2VydmljZSBUaGUgSHlicmlkIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UgVGhlIEN1c3RvbSBBdXRob3JpemF0aW9uIFNlcnZpY2VcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aFN0b3JhZ2U6IE9BdXRoU3RvcmFnZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHlicmlkQXV0aFNlcnZpY2U6IEh5YnJpZFNhbWxPYXV0aFNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbUF1dGhDb25maWdTZXJ2aWNlOiBDdXN0b21BdXRoQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5pc0xvZ2dlZEluJCA9IHRoaXMuaXNMb2dnZWRJbkJzLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZSBBdXRob3JpemF0aW9uIFNldHRpbmdzLlxyXG4gICAqICBAcGFyYW0gYXV0aFNldHRpbmdzIFRoZSBBdXRob3JpemF0aW9uIHNldHRpbmdzXHJcbiAgICovXHJcbiAgcHVibGljIGluaXRpYWxpemVBdXRoU2V0dGluZ3MoYXV0aFNldHRpbmdzOiBIZWFkZXJBdXRoU2V0dGluZ3MsIHNob3VsZFRyeUxvZ2luOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5hdXRoU2V0dGluZ3MgPSBhdXRoU2V0dGluZ3M7XHJcblxyXG4gICAgaWYgKHRoaXMuY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UpIHtcclxuICAgICAgdGhpcy5jdXN0b21BdXRoQ29uZmlnU2VydmljZS5jb25maWd1cmVBdXRoU2V0dGluZ3MoKS50aGVuKGF1dGhDb25maWcgPT4ge1xyXG4gICAgICAgIC8vIE92ZXJ3cml0ZSBpbml0aWFsIGhlYWRlciBhdXRoIHNldHRpbmcgd2l0aCBjdXN0b20gcmVzb2x2ZXJcclxuICAgICAgICB0aGlzLmF1dGhTZXR0aW5ncyA9IHtcclxuICAgICAgICAgIC4uLmF1dGhTZXR0aW5ncyxcclxuICAgICAgICAgIC4uLmF1dGhDb25maWdcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmIChzaG91bGRUcnlMb2dpbikge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVUcnlMb2dpbihhdXRoU2V0dGluZ3MuYXV0aFNldE9uU3RhcnR1cCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCBhdXRoQ29uZmlnID0gbmV3IEF1dGhDb25maWcoe1xyXG4gICAgICAgIGNsaWVudElkOiBhdXRoU2V0dGluZ3MuY2xpZW50SWQsXHJcbiAgICAgICAgcmVkaXJlY3RVcmk6IGF1dGhTZXR0aW5ncy5yZWRpcmVjdFVyaSxcclxuICAgICAgICBpc3N1ZXI6IGF1dGhTZXR0aW5ncy5pc3N1ZXIsXHJcbiAgICAgICAgc2NvcGU6IGF1dGhTZXR0aW5ncy5zY29wZSxcclxuICAgICAgICBza2lwSXNzdWVyQ2hlY2s6IGF1dGhTZXR0aW5ncy5za2lwSXNzdWVyQ2hlY2ssXHJcbiAgICAgICAgdGltZW91dEZhY3RvcjogYXV0aFNldHRpbmdzLnRpbWVvdXRGYWN0b3IgfHwgMC43NSxcclxuICAgICAgICBwb3N0TG9nb3V0UmVkaXJlY3RVcmk6IGF1dGhTZXR0aW5ncy5wb3N0TG9nT3V0VXJsLFxyXG4gICAgICAgIGxvZ2luVXJsOiBhdXRoU2V0dGluZ3MubG9naW5VcmwsXHJcbiAgICAgICAgcmVzcG9uc2VUeXBlOiBhdXRoU2V0dGluZ3MucmVzcG9uc2VUeXBlIHx8ICdjb2RlJ1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5jb25maWd1cmUoYXV0aENvbmZpZyk7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuaXNzdWVyID0gYXV0aFNldHRpbmdzLmlzc3VlcjtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5zdHJpY3REaXNjb3ZlcnlEb2N1bWVudFZhbGlkYXRpb24gPSBmYWxzZTtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5za2lwSXNzdWVyQ2hlY2sgPSB0cnVlO1xyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLnRva2VuVmFsaWRhdGlvbkhhbmRsZXIgPSBuZXcgSndrc1ZhbGlkYXRpb25IYW5kbGVyKCk7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2Uuc2V0dXBBdXRvbWF0aWNTaWxlbnRSZWZyZXNoKHt9LCAnYWNjZXNzX3Rva2VuJyk7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UudGltZW91dEZhY3RvciA9IGF1dGhTZXR0aW5ncy50aW1lb3V0RmFjdG9yIHx8IDAuNzU7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UucmVzcG9uc2VUeXBlID0gYXV0aFNldHRpbmdzLnJlc3BvbnNlVHlwZSB8fCAnY29kZSc7XHJcblxyXG4gICAgICBpZiAoc2hvdWxkVHJ5TG9naW4pIHtcclxuICAgICAgICB0aGlzLmhhbmRsZVRyeUxvZ2luKGF1dGhTZXR0aW5ncy5hdXRoU2V0T25TdGFydHVwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSB1c2VyIG5hbWUgKi9cclxuICBwdWJsaWMgdXNlck5hbWUoKTogc3RyaW5nIHtcclxuICAgIGxldCBuYW1lID0gJyc7XHJcbiAgICBpZiAodGhpcy5jbGFpbXMuZ2l2ZW5fbmFtZSkge1xyXG4gICAgICBuYW1lICs9IHRoaXMuY2xhaW1zLmdpdmVuX25hbWU7XHJcbiAgICB9XHJcbiAgICBpZiAobmFtZSAmJiB0aGlzLmNsYWltcy5mYW1pbHlfbmFtZSkge1xyXG4gICAgICBuYW1lICs9IGAgJHt0aGlzLmNsYWltcy5mYW1pbHlfbmFtZX1gO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5jbGFpbXMuZmFtaWx5X25hbWUpIHtcclxuICAgICAgbmFtZSArPSB0aGlzLmNsYWltcy5mYW1pbHlfbmFtZTtcclxuICAgIH1cclxuICAgIHJldHVybiBuYW1lIHx8IHRoaXMuY2xhaW1zLnVwbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEF1dGhvcml6ZSBVc2VyLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBhdXRob3JpemVVc2VyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYXV0aFNldHRpbmdzKSB7XHJcbiAgICAgIGlmICghdGhpcy5Jc0xvZ2dlZEluKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UpIHtcclxuICAgICAgICAgIHRoaXMuY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UuY29uZmlndXJlQXV0aFNldHRpbmdzKCkudGhlbihfID0+IHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVMb2dpbigpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuaXNzdWVyICE9PSB0aGlzLmF1dGhTZXR0aW5ncy5pc3N1ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5pc3N1ZXIgPSB0aGlzLmF1dGhTZXR0aW5ncy5pc3N1ZXI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUxvZ2luKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLmh5YnJpZEF1dGhTZXJ2aWNlKSB7XHJcbiAgICAgICAgICB0aGlzLmh5YnJpZEF1dGhTZXJ2aWNlLmV4cGlyZVNlc3Npb24odHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nT3V0KCk7XHJcbiAgICAgICAgdGhpcy5hdXRoU3RvcmFnZS5yZW1vdmVJdGVtKCdhY2Nlc3NfdG9rZW4nKTtcclxuICAgICAgICB0aGlzLmlzTG9nZ2VkSW5Ccy5uZXh0KGZhbHNlKTtcclxuICAgICAgICB0aGlzLklzTG9nZ2VkSW4gPSBmYWxzZTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogSGFuZGxlIExvZ2luXHJcbiAgKiBAcGFyYW0gYXV0aFNldE9uU3RhcnR1cCBJcyBhdXRoIHNldCBvbiBzdGFydHVwIFxyXG4gICovXHJcbiAgcHJpdmF0ZSBoYW5kbGVUcnlMb2dpbihhdXRoU2V0T25TdGFydHVwOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoIWF1dGhTZXRPblN0YXJ0dXApIHtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5sb2FkRGlzY292ZXJ5RG9jdW1lbnRBbmRUcnlMb2dpbigpXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmF1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCk7XHJcbiAgICAgICAgICBjb25zdCBpc1ZhbGlkID0gISF0b2tlbjtcclxuICAgICAgICAgIHRoaXMuY2xhaW1zID0gdGhpcy5hdXRoU2VydmljZS5nZXRJZGVudGl0eUNsYWltcygpIGFzIEFjY2Vzc1Rva2VuQ2xhaW1zO1xyXG4gICAgICAgICAgdGhpcy5pc0xvZ2dlZEluQnMubmV4dChpc1ZhbGlkKTtcclxuICAgICAgICAgIHRoaXMuSXNMb2dnZWRJbiA9IGlzVmFsaWQ7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goZSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9hZERpc2NvdmVyeURvY3VtZW50KClcclxuICAgICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0QWNjZXNzVG9rZW4oKTtcclxuICAgICAgICAgIGNvbnN0IGlzVmFsaWQgPSAhIXRva2VuO1xyXG4gICAgICAgICAgdGhpcy5jbGFpbXMgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldElkZW50aXR5Q2xhaW1zKCkgYXMgQWNjZXNzVG9rZW5DbGFpbXM7XHJcbiAgICAgICAgICB0aGlzLmlzTG9nZ2VkSW5Ccy5uZXh0KGlzVmFsaWQpO1xyXG4gICAgICAgICAgdGhpcy5Jc0xvZ2dlZEluID0gaXNWYWxpZDtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaChlID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogSGFuZGxlIExvZ2luICovXHJcbiAgcHJpdmF0ZSBoYW5kbGVMb2dpbigpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHByZVNpZ25JblJvdXRlU3RvcmFnZUtleSwgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5sb2FkRGlzY292ZXJ5RG9jdW1lbnRBbmRMb2dpbigpXHJcbiAgICAgIC50aGVuKGxvZ0luU3VjY2VzcyA9PiB7XHJcbiAgICAgICAgaWYgKGxvZ0luU3VjY2Vzcykge1xyXG4gICAgICAgICAgdGhpcy5pc0xvZ2dlZEluQnMubmV4dCh0cnVlKTtcclxuICAgICAgICAgIHRoaXMuSXNMb2dnZWRJbiA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goZSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==