monkey-front-core 0.0.35 → 0.0.39

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 (257) hide show
  1. package/README.md +24 -24
  2. package/esm2020/lib/components/closed-to-maintenance/closed-to-maintenance.component.mjs +29 -0
  3. package/{esm2015/lib/components/closed-to-maintenance/closed-to-maintenance.module.js → esm2020/lib/components/closed-to-maintenance/closed-to-maintenance.module.mjs} +5 -5
  4. package/{esm2015/lib/components/closed-to-maintenance/index.js → esm2020/lib/components/closed-to-maintenance/index.mjs} +1 -1
  5. package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +0 -0
  6. package/{esm2015/lib/components/progress-bar/index.js → esm2020/lib/components/progress-bar/index.mjs} +1 -1
  7. package/esm2020/lib/components/progress-bar/progress-bar.component.mjs +23 -0
  8. package/{esm2015/lib/components/progress-bar/progress-bar.module.js → esm2020/lib/components/progress-bar/progress-bar.module.mjs} +5 -5
  9. package/esm2020/lib/components/progress-bar/progress-bar.service.mjs +50 -0
  10. package/{esm2015/lib/components/version-changed/index.js → esm2020/lib/components/version-changed/index.mjs} +1 -1
  11. package/esm2020/lib/components/version-changed/version-changed.component.mjs +24 -0
  12. package/{esm2015/lib/components/version-changed/version-changed.module.js → esm2020/lib/components/version-changed/version-changed.module.mjs} +5 -5
  13. package/esm2020/lib/core/decorators/index.mjs +5 -0
  14. package/esm2020/lib/core/decorators/monkeyecx-charts-decorators.mjs +40 -0
  15. package/esm2020/lib/core/decorators/monkeyecx-decorators.mjs +113 -0
  16. package/esm2020/lib/core/decorators/monkeyecx-download-decorators.mjs +26 -0
  17. package/esm2020/lib/core/decorators/monkeyecx-upload-decorators.mjs +26 -0
  18. package/{esm2015/lib/core/directives/index.js → esm2020/lib/core/directives/index.mjs} +1 -1
  19. package/{esm2015/lib/core/directives/monkeyecx-directives-module.js → esm2020/lib/core/directives/monkeyecx-directives-module.mjs} +10 -10
  20. package/esm2020/lib/core/directives/monkeyecx-drag-drop.mjs +57 -0
  21. package/esm2020/lib/core/directives/monkeyecx-feature-directive.mjs +68 -0
  22. package/{esm2015/lib/core/directives/monkeyecx-format-currency.js → esm2020/lib/core/directives/monkeyecx-format-currency.mjs} +4 -4
  23. package/esm2020/lib/core/directives/monkeyecx-format-upper.mjs +67 -0
  24. package/{esm2015/lib/core/directives/monkeyecx-only-alpha-numeric-directive.js → esm2020/lib/core/directives/monkeyecx-only-alpha-numeric-directive.mjs} +4 -4
  25. package/{esm2015/lib/core/directives/monkeyecx-only-number-directive.js → esm2020/lib/core/directives/monkeyecx-only-number-directive.mjs} +4 -4
  26. package/esm2020/lib/core/directives/monkeyecx-security-directive.mjs +69 -0
  27. package/esm2020/lib/core/directives/monkeyecx-tooltip-directive.mjs +123 -0
  28. package/{esm2015/lib/core/index.js → esm2020/lib/core/index.mjs} +1 -1
  29. package/{esm2015/lib/core/interceptors/index.js → esm2020/lib/core/interceptors/index.mjs} +1 -1
  30. package/esm2020/lib/core/interceptors/monkeyecx-http-config-error.interceptor.mjs +39 -0
  31. package/esm2020/lib/core/interceptors/monkeyecx-http-config-header.interceptor.mjs +32 -0
  32. package/{esm2015/lib/core/interceptors/monkeyecx-http-config-interceptor.module.js → esm2020/lib/core/interceptors/monkeyecx-http-config-interceptor.module.mjs} +5 -5
  33. package/esm2020/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.mjs +43 -0
  34. package/esm2020/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.mjs +37 -0
  35. package/{esm2015/lib/core/interfaces/index.js → esm2020/lib/core/interfaces/index.mjs} +1 -1
  36. package/esm2020/lib/core/interfaces/monkeyecx-auth-credentials.mjs +2 -0
  37. package/{esm2015/lib/core/interfaces/monkeyecx-company.js → esm2020/lib/core/interfaces/monkeyecx-company.mjs} +1 -1
  38. package/esm2020/lib/core/interfaces/monkeyecx-config-boostrap.mjs +2 -0
  39. package/esm2020/lib/core/interfaces/monkeyecx-config.mjs +2 -0
  40. package/{esm2015/lib/core/interfaces/monkeyecx-error-response.js → esm2020/lib/core/interfaces/monkeyecx-error-response.mjs} +1 -1
  41. package/{esm2015/lib/core/interfaces/monkeyecx-handled-error-response.js → esm2020/lib/core/interfaces/monkeyecx-handled-error-response.mjs} +1 -1
  42. package/{esm2015/lib/core/interfaces/monkeyecx-header-credentials.js → esm2020/lib/core/interfaces/monkeyecx-header-credentials.mjs} +1 -1
  43. package/{esm2015/lib/core/interfaces/monkeyecx-intercom-options.js → esm2020/lib/core/interfaces/monkeyecx-intercom-options.mjs} +1 -1
  44. package/esm2020/lib/core/interfaces/monkeyecx-me-credentials.mjs +2 -0
  45. package/esm2020/lib/core/interfaces/monkeyecx-navigation.mjs +2 -0
  46. package/{esm2015/lib/core/interfaces/monkeyecx-program.js → esm2020/lib/core/interfaces/monkeyecx-program.mjs} +1 -1
  47. package/{esm2015/lib/core/interfaces/monkeyecx-releases.js → esm2020/lib/core/interfaces/monkeyecx-releases.mjs} +1 -1
  48. package/{esm2015/lib/core/interfaces/monkeyecx-request-in-progress.js → esm2020/lib/core/interfaces/monkeyecx-request-in-progress.mjs} +1 -1
  49. package/esm2020/lib/core/interfaces/monkeyecx-request-paged.mjs +2 -0
  50. package/{esm2015/lib/core/interfaces/monkeyecx-response-paged.js → esm2020/lib/core/interfaces/monkeyecx-response-paged.mjs} +1 -1
  51. package/esm2020/lib/core/interfaces/monkeyecx-service-credentials.mjs +2 -0
  52. package/esm2020/lib/core/interfaces/monkeyecx-token-credentials.mjs +2 -0
  53. package/{esm2015/lib/core/interfaces/monkeyecx-translate-options.js → esm2020/lib/core/interfaces/monkeyecx-translate-options.mjs} +1 -1
  54. package/{esm2015/lib/core/interfaces/request-download/index.js → esm2020/lib/core/interfaces/request-download/index.mjs} +1 -1
  55. package/esm2020/lib/core/interfaces/request-download/monkeyecx-request-download.mjs +2 -0
  56. package/{esm2015/lib/core/interfaces/request-download/monkeyecx-request-downloaded.js → esm2020/lib/core/interfaces/request-download/monkeyecx-request-downloaded.mjs} +1 -1
  57. package/{esm2015/lib/core/interfaces/request-download/monkeyecx-request-item-download.js → esm2020/lib/core/interfaces/request-download/monkeyecx-request-item-download.mjs} +1 -1
  58. package/{esm2015/lib/core/interfaces/request-queue/index.js → esm2020/lib/core/interfaces/request-queue/index.mjs} +1 -1
  59. package/{esm2015/lib/core/interfaces/request-queue/monkeyecx-request-item-queue.js → esm2020/lib/core/interfaces/request-queue/monkeyecx-request-item-queue.mjs} +1 -1
  60. package/{esm2015/lib/core/interfaces/request-queue/monkeyecx-request-progress-queue.js → esm2020/lib/core/interfaces/request-queue/monkeyecx-request-progress-queue.mjs} +1 -1
  61. package/esm2020/lib/core/interfaces/request-queue/monkeyecx-request-queue.mjs +2 -0
  62. package/{esm2015/lib/core/interfaces/request-upload/index.js → esm2020/lib/core/interfaces/request-upload/index.mjs} +1 -1
  63. package/{esm2015/lib/core/interfaces/request-upload/monkeyecx-request-item-upload.js → esm2020/lib/core/interfaces/request-upload/monkeyecx-request-item-upload.mjs} +1 -1
  64. package/{esm2015/lib/core/interfaces/request-upload/monkeyecx-request-upload.js → esm2020/lib/core/interfaces/request-upload/monkeyecx-request-upload.mjs} +1 -1
  65. package/{esm2015/lib/core/interfaces/schedules/index.js → esm2020/lib/core/interfaces/schedules/index.mjs} +1 -1
  66. package/esm2020/lib/core/interfaces/schedules/monkeyecx-request-schedule.mjs +2 -0
  67. package/{esm2015/lib/core/model/index.js → esm2020/lib/core/model/index.mjs} +1 -1
  68. package/{esm2015/lib/core/model/monkeyecx-model.js → esm2020/lib/core/model/monkeyecx-model.mjs} +1 -1
  69. package/esm2020/lib/core/pipes/index.mjs +16 -0
  70. package/esm2020/lib/core/pipes/monkeyecx-display-first-name.mjs +19 -0
  71. package/esm2020/lib/core/pipes/monkeyecx-format-address.mjs +20 -0
  72. package/esm2020/lib/core/pipes/monkeyecx-format-currency.mjs +27 -0
  73. package/esm2020/lib/core/pipes/monkeyecx-format-date-timelapse.mjs +31 -0
  74. package/esm2020/lib/core/pipes/monkeyecx-format-date.mjs +29 -0
  75. package/esm2020/lib/core/pipes/monkeyecx-format-document.mjs +19 -0
  76. package/esm2020/lib/core/pipes/monkeyecx-format-number.mjs +20 -0
  77. package/esm2020/lib/core/pipes/monkeyecx-format-phone.mjs +42 -0
  78. package/esm2020/lib/core/pipes/monkeyecx-format-size.mjs +20 -0
  79. package/esm2020/lib/core/pipes/monkeyecx-format-type-document.mjs +19 -0
  80. package/esm2020/lib/core/pipes/monkeyecx-format-value.mjs +19 -0
  81. package/esm2020/lib/core/pipes/monkeyecx-format-zipcode.mjs +19 -0
  82. package/esm2020/lib/core/pipes/monkeyecx-pipes.module.mjs +87 -0
  83. package/esm2020/lib/core/pipes/monkeyecx-text-truncate.mjs +23 -0
  84. package/{esm2015/lib/core/pipes/monkeyecx-truncate-qtd.js → esm2020/lib/core/pipes/monkeyecx-truncate-qtd.mjs} +4 -4
  85. package/{esm2015/lib/core/services/auth/index.js → esm2020/lib/core/services/auth/index.mjs} +1 -1
  86. package/{esm2015/lib/core/services/auth/monkeyecx-auth-guard-login.service.js → esm2020/lib/core/services/auth/monkeyecx-auth-guard-login.service.mjs} +4 -4
  87. package/{esm2015/lib/core/services/auth/monkeyecx-auth-guard.service.js → esm2020/lib/core/services/auth/monkeyecx-auth-guard.service.mjs} +4 -4
  88. package/esm2020/lib/core/services/auth/monkeyecx-authentication.service.mjs +61 -0
  89. package/{esm2015/lib/core/services/commons/index.js → esm2020/lib/core/services/commons/index.mjs} +1 -1
  90. package/esm2020/lib/core/services/commons/monkeyecx-commons.service.mjs +269 -0
  91. package/{esm2015/lib/core/services/config/monkeyecx-config.module.js → esm2020/lib/core/services/config/monkeyecx-config.module.mjs} +5 -5
  92. package/esm2020/lib/core/services/config/monkeyecx-config.service.mjs +104 -0
  93. package/esm2020/lib/core/services/config/monkeyecx-error-config.service.mjs +85 -0
  94. package/esm2020/lib/core/services/config/monkeyecx-feature-toggle.service.mjs +65 -0
  95. package/esm2020/lib/core/services/config/monkeyecx-i18n-config.service.mjs +66 -0
  96. package/esm2020/lib/core/services/config/monkeyecx-logs-config.service.mjs +34 -0
  97. package/{esm2015/lib/core/services/config/monkeyecx-maintenance-config.service.js → esm2020/lib/core/services/config/monkeyecx-maintenance-config.service.mjs} +5 -5
  98. package/esm2020/lib/core/services/config/monkeyecx-security-console-config.service.mjs +42 -0
  99. package/esm2020/lib/core/services/config/monkeyecx-service-worker-config.service.mjs +53 -0
  100. package/{esm2015/lib/core/services/error/index.js → esm2020/lib/core/services/error/index.mjs} +1 -1
  101. package/{esm2015/lib/core/services/error/monkeyecx-error-handling.module.js → esm2020/lib/core/services/error/monkeyecx-error-handling.module.mjs} +5 -5
  102. package/esm2020/lib/core/services/error/monkeyecx-error-handling.service.mjs +43 -0
  103. package/esm2020/lib/core/services/error/monkeyecx-http-error-handling.service.mjs +127 -0
  104. package/{esm2015/lib/core/services/error/monkeyecx-others-errors-handling.service.js → esm2020/lib/core/services/error/monkeyecx-others-errors-handling.service.mjs} +4 -4
  105. package/esm2020/lib/core/services/index.mjs +24 -0
  106. package/{esm2015/lib/core/services/logged/index.js → esm2020/lib/core/services/logged/index.mjs} +1 -1
  107. package/{esm2015/lib/core/services/logged/monkeyecx-logged-handling.service.js → esm2020/lib/core/services/logged/monkeyecx-logged-handling.service.mjs} +4 -4
  108. package/esm2020/lib/core/services/monkeyecx-handling.service.mjs +50 -0
  109. package/esm2020/lib/core/services/monkeyecx-service.service.mjs +104 -0
  110. package/{esm2015/lib/core/services/request-download/index.js → esm2020/lib/core/services/request-download/index.mjs} +1 -1
  111. package/esm2020/lib/core/services/request-download/monkeyecx-request-download-handling.service.mjs +93 -0
  112. package/esm2020/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.mjs +61 -0
  113. package/{esm2015/lib/core/services/request-paged/index.js → esm2020/lib/core/services/request-paged/index.mjs} +1 -1
  114. package/esm2020/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.mjs +30 -0
  115. package/{esm2015/lib/core/services/request-queue/index.js → esm2020/lib/core/services/request-queue/index.mjs} +1 -1
  116. package/esm2020/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.mjs +114 -0
  117. package/esm2020/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.mjs +119 -0
  118. package/{esm2015/lib/core/services/routes/index.js → esm2020/lib/core/services/routes/index.mjs} +1 -1
  119. package/{esm2015/lib/core/services/routes/monkeyecx-dicovery-params.service.js → esm2020/lib/core/services/routes/monkeyecx-dicovery-params.service.mjs} +6 -6
  120. package/{esm2015/lib/core/services/schedules/index.js → esm2020/lib/core/services/schedules/index.mjs} +1 -1
  121. package/esm2020/lib/core/services/schedules/monkeyecx-request-schedule.service.mjs +127 -0
  122. package/{esm2015/lib/core/services/storage/index.js → esm2020/lib/core/services/storage/index.mjs} +1 -1
  123. package/{esm2015/lib/core/services/storage/monkeyecx-cookie-storage.service.js → esm2020/lib/core/services/storage/monkeyecx-cookie-storage.service.mjs} +5 -5
  124. package/esm2020/lib/core/services/storage/monkeyecx-token-storage.service.mjs +125 -0
  125. package/{esm2015/lib/core/specification-search/index.js → esm2020/lib/core/specification-search/index.mjs} +1 -1
  126. package/esm2020/lib/core/specification-search/monkeyecx-specification-search.mjs +97 -0
  127. package/esm2020/lib/core/utils/decorators-utils.mjs +40 -0
  128. package/{esm2015/lib/core/utils/index.js → esm2020/lib/core/utils/index.mjs} +1 -1
  129. package/{esm2015/lib/core/utils/statics.js → esm2020/lib/core/utils/statics.mjs} +1 -1
  130. package/esm2020/lib/core/utils/utils.mjs +218 -0
  131. package/esm2020/lib/core/utils/validate-utils.mjs +204 -0
  132. package/esm2020/lib/core/utils/validators.mjs +193 -0
  133. package/esm2020/lib/monkey-front-core.module.mjs +62 -0
  134. package/{esm2015/monkey-front-core.js → esm2020/monkey-front-core.mjs} +0 -0
  135. package/{esm2015/public-api.js → esm2020/public-api.mjs} +1 -1
  136. package/fesm2015/{monkey-front-core.js → monkey-front-core.mjs} +708 -517
  137. package/fesm2015/monkey-front-core.mjs.map +1 -0
  138. package/fesm2020/monkey-front-core.mjs +4219 -0
  139. package/fesm2020/monkey-front-core.mjs.map +1 -0
  140. package/lib/components/closed-to-maintenance/closed-to-maintenance.component.d.ts +2 -2
  141. package/lib/components/progress-bar/progress-bar.service.d.ts +1 -1
  142. package/lib/components/version-changed/version-changed.component.d.ts +1 -1
  143. package/lib/core/decorators/index.d.ts +1 -0
  144. package/lib/core/decorators/monkeyecx-charts-decorators.d.ts +1 -0
  145. package/lib/core/directives/monkeyecx-directives-module.d.ts +1 -1
  146. package/lib/core/directives/monkeyecx-feature-directive.d.ts +4 -4
  147. package/lib/core/directives/monkeyecx-format-upper.d.ts +2 -2
  148. package/lib/core/directives/monkeyecx-security-directive.d.ts +1 -1
  149. package/lib/core/directives/monkeyecx-tooltip-directive.d.ts +5 -5
  150. package/lib/core/interfaces/monkeyecx-service-credentials.d.ts +2 -1
  151. package/lib/core/interfaces/request-download/monkeyecx-request-download.d.ts +1 -1
  152. package/lib/core/interfaces/request-download/monkeyecx-request-item-download.d.ts +1 -1
  153. package/lib/core/interfaces/request-queue/monkeyecx-request-queue.d.ts +1 -1
  154. package/lib/core/interfaces/request-upload/monkeyecx-request-item-upload.d.ts +1 -1
  155. package/lib/core/interfaces/request-upload/monkeyecx-request-upload.d.ts +1 -1
  156. package/lib/core/model/monkeyecx-model.d.ts +1 -1
  157. package/lib/core/pipes/index.d.ts +3 -0
  158. package/lib/core/pipes/monkeyecx-display-first-name.d.ts +0 -1
  159. package/lib/core/pipes/monkeyecx-format-address.d.ts +14 -0
  160. package/lib/core/pipes/monkeyecx-format-currency.d.ts +1 -3
  161. package/lib/core/pipes/monkeyecx-format-date-timelapse.d.ts +1 -2
  162. package/lib/core/pipes/monkeyecx-format-date.d.ts +7 -0
  163. package/lib/core/pipes/monkeyecx-format-document.d.ts +0 -1
  164. package/lib/core/pipes/monkeyecx-format-number.d.ts +3 -4
  165. package/lib/core/pipes/monkeyecx-format-phone.d.ts +7 -0
  166. package/lib/core/pipes/monkeyecx-format-size.d.ts +0 -1
  167. package/lib/core/pipes/monkeyecx-format-type-document.d.ts +3 -4
  168. package/lib/core/pipes/monkeyecx-format-value.d.ts +0 -1
  169. package/lib/core/pipes/monkeyecx-format-zipcode.d.ts +0 -1
  170. package/lib/core/pipes/monkeyecx-pipes.module.d.ts +14 -11
  171. package/lib/core/pipes/monkeyecx-text-truncate.d.ts +0 -1
  172. package/lib/core/services/auth/monkeyecx-authentication.service.d.ts +6 -6
  173. package/lib/core/services/commons/monkeyecx-commons.service.d.ts +27 -27
  174. package/lib/core/services/config/monkeyecx-config.service.d.ts +1 -1
  175. package/lib/core/services/config/monkeyecx-i18n-config.service.d.ts +0 -1
  176. package/lib/core/services/config/monkeyecx-maintenance-config.service.d.ts +1 -1
  177. package/lib/core/services/index.d.ts +13 -3
  178. package/lib/core/services/monkeyecx-handling.service.d.ts +8 -5
  179. package/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.d.ts +1 -1
  180. package/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.d.ts +2 -2
  181. package/lib/core/services/schedules/monkeyecx-request-schedule.service.d.ts +2 -2
  182. package/lib/core/utils/validate-utils.d.ts +13 -13
  183. package/monkey-front-core-0.0.39.tgz +0 -0
  184. package/package.json +22 -9
  185. package/bundles/monkey-front-core.umd.js +0 -4638
  186. package/bundles/monkey-front-core.umd.js.map +0 -1
  187. package/esm2015/lib/components/closed-to-maintenance/closed-to-maintenance.component.js +0 -32
  188. package/esm2015/lib/components/progress-bar/progress-bar.component.js +0 -28
  189. package/esm2015/lib/components/progress-bar/progress-bar.service.js +0 -49
  190. package/esm2015/lib/components/version-changed/version-changed.component.js +0 -25
  191. package/esm2015/lib/core/decorators/index.js +0 -4
  192. package/esm2015/lib/core/decorators/monkeyecx-decorators.js +0 -108
  193. package/esm2015/lib/core/decorators/monkeyecx-download-decorators.js +0 -24
  194. package/esm2015/lib/core/decorators/monkeyecx-upload-decorators.js +0 -24
  195. package/esm2015/lib/core/directives/monkeyecx-drag-drop.js +0 -57
  196. package/esm2015/lib/core/directives/monkeyecx-feature-directive.js +0 -66
  197. package/esm2015/lib/core/directives/monkeyecx-format-upper.js +0 -67
  198. package/esm2015/lib/core/directives/monkeyecx-security-directive.js +0 -67
  199. package/esm2015/lib/core/directives/monkeyecx-tooltip-directive.js +0 -120
  200. package/esm2015/lib/core/interceptors/monkeyecx-http-config-error.interceptor.js +0 -39
  201. package/esm2015/lib/core/interceptors/monkeyecx-http-config-header.interceptor.js +0 -32
  202. package/esm2015/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.js +0 -41
  203. package/esm2015/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.js +0 -37
  204. package/esm2015/lib/core/interfaces/monkeyecx-auth-credentials.js +0 -2
  205. package/esm2015/lib/core/interfaces/monkeyecx-config-boostrap.js +0 -2
  206. package/esm2015/lib/core/interfaces/monkeyecx-config.js +0 -2
  207. package/esm2015/lib/core/interfaces/monkeyecx-me-credentials.js +0 -2
  208. package/esm2015/lib/core/interfaces/monkeyecx-navigation.js +0 -2
  209. package/esm2015/lib/core/interfaces/monkeyecx-request-paged.js +0 -2
  210. package/esm2015/lib/core/interfaces/monkeyecx-service-credentials.js +0 -2
  211. package/esm2015/lib/core/interfaces/monkeyecx-token-credentials.js +0 -2
  212. package/esm2015/lib/core/interfaces/request-download/monkeyecx-request-download.js +0 -2
  213. package/esm2015/lib/core/interfaces/request-queue/monkeyecx-request-queue.js +0 -2
  214. package/esm2015/lib/core/interfaces/schedules/monkeyecx-request-schedule.js +0 -2
  215. package/esm2015/lib/core/pipes/index.js +0 -13
  216. package/esm2015/lib/core/pipes/monkeyecx-display-first-name.js +0 -22
  217. package/esm2015/lib/core/pipes/monkeyecx-format-currency.js +0 -30
  218. package/esm2015/lib/core/pipes/monkeyecx-format-date-timelapse.js +0 -37
  219. package/esm2015/lib/core/pipes/monkeyecx-format-document.js +0 -22
  220. package/esm2015/lib/core/pipes/monkeyecx-format-number.js +0 -23
  221. package/esm2015/lib/core/pipes/monkeyecx-format-size.js +0 -23
  222. package/esm2015/lib/core/pipes/monkeyecx-format-type-document.js +0 -22
  223. package/esm2015/lib/core/pipes/monkeyecx-format-value.js +0 -22
  224. package/esm2015/lib/core/pipes/monkeyecx-format-zipcode.js +0 -22
  225. package/esm2015/lib/core/pipes/monkeyecx-pipes.module.js +0 -72
  226. package/esm2015/lib/core/pipes/monkeyecx-text-truncate.js +0 -26
  227. package/esm2015/lib/core/services/auth/monkeyecx-authentication.service.js +0 -61
  228. package/esm2015/lib/core/services/commons/monkeyecx-commons.service.js +0 -242
  229. package/esm2015/lib/core/services/config/index.js +0 -9
  230. package/esm2015/lib/core/services/config/monkeyecx-config.service.js +0 -104
  231. package/esm2015/lib/core/services/config/monkeyecx-error-config.service.js +0 -85
  232. package/esm2015/lib/core/services/config/monkeyecx-feature-toggle.service.js +0 -65
  233. package/esm2015/lib/core/services/config/monkeyecx-i18n-config.service.js +0 -72
  234. package/esm2015/lib/core/services/config/monkeyecx-logs-config.service.js +0 -34
  235. package/esm2015/lib/core/services/config/monkeyecx-security-console-config.service.js +0 -42
  236. package/esm2015/lib/core/services/config/monkeyecx-service-worker-config.service.js +0 -54
  237. package/esm2015/lib/core/services/error/monkeyecx-error-handling.service.js +0 -39
  238. package/esm2015/lib/core/services/error/monkeyecx-http-error-handling.service.js +0 -131
  239. package/esm2015/lib/core/services/index.js +0 -14
  240. package/esm2015/lib/core/services/monkeyecx-handling.service.js +0 -44
  241. package/esm2015/lib/core/services/monkeyecx-service.service.js +0 -102
  242. package/esm2015/lib/core/services/request-download/monkeyecx-request-download-handling.service.js +0 -81
  243. package/esm2015/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.js +0 -55
  244. package/esm2015/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.js +0 -30
  245. package/esm2015/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.js +0 -97
  246. package/esm2015/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.js +0 -106
  247. package/esm2015/lib/core/services/schedules/monkeyecx-request-schedule.service.js +0 -99
  248. package/esm2015/lib/core/services/storage/monkeyecx-token-storage.service.js +0 -117
  249. package/esm2015/lib/core/specification-search/monkeyecx-specification-search.js +0 -97
  250. package/esm2015/lib/core/utils/decorators-utils.js +0 -37
  251. package/esm2015/lib/core/utils/utils.js +0 -219
  252. package/esm2015/lib/core/utils/validate-utils.js +0 -204
  253. package/esm2015/lib/core/utils/validators.js +0 -193
  254. package/esm2015/lib/monkey-front-core.module.js +0 -60
  255. package/fesm2015/monkey-front-core.js.map +0 -1
  256. package/lib/core/services/config/index.d.ts +0 -8
  257. package/monkey-front-core-0.0.35.tgz +0 -0
@@ -15,12 +15,12 @@ export class MonkeyEcxAuthGuard {
15
15
  return false;
16
16
  }
17
17
  }
18
- MonkeyEcxAuthGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: MonkeyEcxAuthGuard, deps: [{ token: i1.MonkeyEcxAuthenticationService }], target: i0.ɵɵFactoryTarget.Injectable });
19
- MonkeyEcxAuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: MonkeyEcxAuthGuard, providedIn: 'root' });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: MonkeyEcxAuthGuard, decorators: [{
18
+ MonkeyEcxAuthGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxAuthGuard, deps: [{ token: i1.MonkeyEcxAuthenticationService }], target: i0.ɵɵFactoryTarget.Injectable });
19
+ MonkeyEcxAuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxAuthGuard, providedIn: 'root' });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxAuthGuard, decorators: [{
21
21
  type: Injectable,
22
22
  args: [{
23
23
  providedIn: 'root'
24
24
  }]
25
25
  }], ctorParameters: function () { return [{ type: i1.MonkeyEcxAuthenticationService }]; } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWF1dGgtZ3VhcmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb3JlL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9hdXRoL21vbmtleWVjeC1hdXRoLWd1YXJkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBUTNDLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFBb0IsOEJBQThEO1FBQTlELG1DQUE4QixHQUE5Qiw4QkFBOEIsQ0FBZ0M7UUFDaEYsWUFBWTtJQUNkLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxFQUFFLDhCQUE4QixFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRWhELElBQUksOEJBQThCLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDakQsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELDhCQUE4QixDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFFMUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztnSEFmVSxrQkFBa0I7b0hBQWxCLGtCQUFrQixjQUZqQixNQUFNOzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENhbkFjdGl2YXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL21vbmtleWVjeC1hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vbmtleUVjeEF1dGhHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vbmtleWVjeEF1dGhlbnRpY2F0aW9uU2VydmljZTogTW9ua2V5RWN4QXV0aGVudGljYXRpb25TZXJ2aWNlKSB7XHJcbiAgICAvLyBub3QgdG8gZG9cclxuICB9XHJcblxyXG4gIGNhbkFjdGl2YXRlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBQcm9taXNlPGJvb2xlYW4+IHwgYm9vbGVhbiB7XHJcbiAgICBjb25zdCB7IG1vbmtleWVjeEF1dGhlbnRpY2F0aW9uU2VydmljZSB9ID0gdGhpcztcclxuXHJcbiAgICBpZiAobW9ua2V5ZWN4QXV0aGVudGljYXRpb25TZXJ2aWNlLmlzQXV0aG9yaXplZCgpKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIG1vbmtleWVjeEF1dGhlbnRpY2F0aW9uU2VydmljZS5yZWRpcmVjdExvZ2luV2VsY29tZUJhY2soKTtcclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWF1dGgtZ3VhcmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb3JlL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9hdXRoL21vbmtleWVjeC1hdXRoLWd1YXJkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBUTNDLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFBb0IsOEJBQThEO1FBQTlELG1DQUE4QixHQUE5Qiw4QkFBOEIsQ0FBZ0M7UUFDaEYsWUFBWTtJQUNkLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxFQUFFLDhCQUE4QixFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRWhELElBQUksOEJBQThCLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDakQsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELDhCQUE4QixDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFFMUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzsrR0FmVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5BY3RpdmF0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNb25rZXlFY3hBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL21vbmtleWVjeC1hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4QXV0aEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vbmtleWVjeEF1dGhlbnRpY2F0aW9uU2VydmljZTogTW9ua2V5RWN4QXV0aGVudGljYXRpb25TZXJ2aWNlKSB7XG4gICAgLy8gbm90IHRvIGRvXG4gIH1cblxuICBjYW5BY3RpdmF0ZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgUHJvbWlzZTxib29sZWFuPiB8IGJvb2xlYW4ge1xuICAgIGNvbnN0IHsgbW9ua2V5ZWN4QXV0aGVudGljYXRpb25TZXJ2aWNlIH0gPSB0aGlzO1xuXG4gICAgaWYgKG1vbmtleWVjeEF1dGhlbnRpY2F0aW9uU2VydmljZS5pc0F1dGhvcml6ZWQoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgbW9ua2V5ZWN4QXV0aGVudGljYXRpb25TZXJ2aWNlLnJlZGlyZWN0TG9naW5XZWxjb21lQmFjaygpO1xuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,61 @@
1
+ /* eslint-disable no-console */
2
+ import { Injectable } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class MonkeyEcxAuthenticationService {
5
+ constructor() {
6
+ this.hadAtLeastOneLogin = () => {
7
+ console.error('hadAtLeastOneLogin needs to be declared!');
8
+ return null;
9
+ };
10
+ this.redirectApp = () => {
11
+ console.error('redirectApp needs to be declared!');
12
+ return null;
13
+ };
14
+ this.redirectLoginWelcomeBack = () => {
15
+ console.error('redirectLoginWelcomeBack needs to be declared!');
16
+ return null;
17
+ };
18
+ this.isAuthorized = () => {
19
+ console.error('isAuthorized needs to be declared!');
20
+ return false;
21
+ };
22
+ this.getRequestWithHeaders = (request) => {
23
+ console.error('getRequestWithHeaders needs to be declared!');
24
+ return null;
25
+ };
26
+ this.getRequestWithHeadersOb = (request) => {
27
+ console.error('getRequestWithHeadersOb needs to be declared!');
28
+ return null;
29
+ };
30
+ this.refreshShouldHappen = (response) => {
31
+ console.error('refreshShouldHappen needs to be declared!');
32
+ return false;
33
+ };
34
+ this.refreshToken = () => {
35
+ console.error('refreshToken needs to be declared!');
36
+ return null;
37
+ };
38
+ // not to do
39
+ }
40
+ init(args) {
41
+ this.hadAtLeastOneLogin = args?.hadAtLeastOneLogin || this.hadAtLeastOneLogin.bind(this);
42
+ this.redirectApp = args?.redirectApp || this.redirectApp.bind(this);
43
+ this.redirectLoginWelcomeBack = args?.redirectLoginWelcomeBack ||
44
+ this.redirectLoginWelcomeBack.bind(this);
45
+ this.isAuthorized = args?.isAuthorized || this.isAuthorized.bind(this);
46
+ this.getRequestWithHeaders = args?.getRequestWithHeaders ||
47
+ this.getRequestWithHeaders.bind(this);
48
+ this.getRequestWithHeadersOb = args?.getRequestWithHeadersOb.bind(this);
49
+ this.refreshShouldHappen = args?.refreshShouldHappen || this.refreshShouldHappen.bind(this);
50
+ this.refreshToken = args?.refreshToken || this.refreshToken.bind(this);
51
+ }
52
+ }
53
+ MonkeyEcxAuthenticationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxAuthenticationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
54
+ MonkeyEcxAuthenticationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxAuthenticationService, providedIn: 'root' });
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxAuthenticationService, decorators: [{
56
+ type: Injectable,
57
+ args: [{
58
+ providedIn: 'root'
59
+ }]
60
+ }], ctorParameters: function () { return []; } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWF1dGhlbnRpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvc2VydmljZXMvYXV0aC9tb25rZXllY3gtYXV0aGVudGljYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPM0MsTUFBTSxPQUFPLDhCQUE4QjtJQUN6QztRQUlBLHVCQUFrQixHQUFHLEdBQUcsRUFBRTtZQUN4QixPQUFPLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7WUFDMUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7UUFFRixnQkFBVyxHQUFHLEdBQUcsRUFBRTtZQUNqQixPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7WUFDbkQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7UUFFRiw2QkFBd0IsR0FBRyxHQUFHLEVBQUU7WUFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1lBQ2hFLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO1FBRUYsaUJBQVksR0FBRyxHQUFZLEVBQUU7WUFDM0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDO1FBRUYsMEJBQXFCLEdBQUcsQ0FBQyxPQUF5QixFQUEyQixFQUFFO1lBQzdFLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztZQUM3RCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztRQUVGLDRCQUF1QixHQUFHLENBQUMsT0FBeUIsRUFBMEIsRUFBRTtZQUM5RSxPQUFPLENBQUMsS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7WUFDL0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7UUFFRix3QkFBbUIsR0FBRyxDQUFDLFFBQTJCLEVBQVcsRUFBRTtZQUM3RCxPQUFPLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7WUFDM0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUM7UUFFRixpQkFBWSxHQUFHLEdBQTJCLEVBQUU7WUFDMUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO1FBekNBLFlBQVk7SUFDZCxDQUFDO0lBMENELElBQUksQ0FDRixJQVNDO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksRUFBRSxrQkFBa0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFFLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxFQUFFLHdCQUF3QjtZQUM1RCxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxFQUFFLHFCQUFxQjtZQUN0RCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLEVBQUUsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLEVBQUUsbUJBQW1CLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekUsQ0FBQzs7MkhBbkVVLDhCQUE4QjsrSEFBOUIsOEJBQThCLGNBRjdCLE1BQU07MkZBRVAsOEJBQThCO2tCQUgxQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4QXV0aGVudGljYXRpb25TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gbm90IHRvIGRvXG4gIH1cblxuICBoYWRBdExlYXN0T25lTG9naW4gPSAoKSA9PiB7XG4gICAgY29uc29sZS5lcnJvcignaGFkQXRMZWFzdE9uZUxvZ2luIG5lZWRzIHRvIGJlIGRlY2xhcmVkIScpO1xuICAgIHJldHVybiBudWxsO1xuICB9O1xuXG4gIHJlZGlyZWN0QXBwID0gKCkgPT4ge1xuICAgIGNvbnNvbGUuZXJyb3IoJ3JlZGlyZWN0QXBwIG5lZWRzIHRvIGJlIGRlY2xhcmVkIScpO1xuICAgIHJldHVybiBudWxsO1xuICB9O1xuXG4gIHJlZGlyZWN0TG9naW5XZWxjb21lQmFjayA9ICgpID0+IHtcbiAgICBjb25zb2xlLmVycm9yKCdyZWRpcmVjdExvZ2luV2VsY29tZUJhY2sgbmVlZHMgdG8gYmUgZGVjbGFyZWQhJyk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG5cbiAgaXNBdXRob3JpemVkID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnNvbGUuZXJyb3IoJ2lzQXV0aG9yaXplZCBuZWVkcyB0byBiZSBkZWNsYXJlZCEnKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgZ2V0UmVxdWVzdFdpdGhIZWFkZXJzID0gKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4pOiBIdHRwUmVxdWVzdDxhbnk+IHwgbnVsbCA9PiB7XG4gICAgY29uc29sZS5lcnJvcignZ2V0UmVxdWVzdFdpdGhIZWFkZXJzIG5lZWRzIHRvIGJlIGRlY2xhcmVkIScpO1xuICAgIHJldHVybiBudWxsO1xuICB9O1xuXG4gIGdldFJlcXVlc3RXaXRoSGVhZGVyc09iID0gKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4pOiBPYnNlcnZhYmxlPGFueT4gfCBudWxsID0+IHtcbiAgICBjb25zb2xlLmVycm9yKCdnZXRSZXF1ZXN0V2l0aEhlYWRlcnNPYiBuZWVkcyB0byBiZSBkZWNsYXJlZCEnKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcblxuICByZWZyZXNoU2hvdWxkSGFwcGVuID0gKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnNvbGUuZXJyb3IoJ3JlZnJlc2hTaG91bGRIYXBwZW4gbmVlZHMgdG8gYmUgZGVjbGFyZWQhJyk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuXG4gIHJlZnJlc2hUb2tlbiA9ICgpOiBPYnNlcnZhYmxlPGFueT4gfCBudWxsID0+IHtcbiAgICBjb25zb2xlLmVycm9yKCdyZWZyZXNoVG9rZW4gbmVlZHMgdG8gYmUgZGVjbGFyZWQhJyk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG5cbiAgaW5pdChcbiAgICBhcmdzOiB7XG4gICAgICBoYWRBdExlYXN0T25lTG9naW4/OiBhbnksXG4gICAgICByZWRpcmVjdEFwcD86IGFueSxcbiAgICAgIHJlZGlyZWN0TG9naW5XZWxjb21lQmFjaz86IGFueSxcbiAgICAgIGlzQXV0aG9yaXplZD86IGFueSxcbiAgICAgIGdldFJlcXVlc3RXaXRoSGVhZGVycz86IGFueSxcbiAgICAgIGdldFJlcXVlc3RXaXRoSGVhZGVyc09iPzogYW55LFxuICAgICAgcmVmcmVzaFNob3VsZEhhcHBlbj86IGFueSxcbiAgICAgIHJlZnJlc2hUb2tlbj86IGFueVxuICAgIH1cbiAgKSB7XG4gICAgdGhpcy5oYWRBdExlYXN0T25lTG9naW4gPSBhcmdzPy5oYWRBdExlYXN0T25lTG9naW4gfHwgdGhpcy5oYWRBdExlYXN0T25lTG9naW4uYmluZCh0aGlzKTtcbiAgICB0aGlzLnJlZGlyZWN0QXBwID0gYXJncz8ucmVkaXJlY3RBcHAgfHwgdGhpcy5yZWRpcmVjdEFwcC5iaW5kKHRoaXMpO1xuICAgIHRoaXMucmVkaXJlY3RMb2dpbldlbGNvbWVCYWNrID0gYXJncz8ucmVkaXJlY3RMb2dpbldlbGNvbWVCYWNrIHx8XG4gICAgICB0aGlzLnJlZGlyZWN0TG9naW5XZWxjb21lQmFjay5iaW5kKHRoaXMpO1xuICAgIHRoaXMuaXNBdXRob3JpemVkID0gYXJncz8uaXNBdXRob3JpemVkIHx8IHRoaXMuaXNBdXRob3JpemVkLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXRSZXF1ZXN0V2l0aEhlYWRlcnMgPSBhcmdzPy5nZXRSZXF1ZXN0V2l0aEhlYWRlcnMgfHxcbiAgICAgIHRoaXMuZ2V0UmVxdWVzdFdpdGhIZWFkZXJzLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXRSZXF1ZXN0V2l0aEhlYWRlcnNPYiA9IGFyZ3M/LmdldFJlcXVlc3RXaXRoSGVhZGVyc09iLmJpbmQodGhpcyk7XG4gICAgdGhpcy5yZWZyZXNoU2hvdWxkSGFwcGVuID0gYXJncz8ucmVmcmVzaFNob3VsZEhhcHBlbiB8fCB0aGlzLnJlZnJlc2hTaG91bGRIYXBwZW4uYmluZCh0aGlzKTtcbiAgICB0aGlzLnJlZnJlc2hUb2tlbiA9IGFyZ3M/LnJlZnJlc2hUb2tlbiB8fCB0aGlzLnJlZnJlc2hUb2tlbi5iaW5kKHRoaXMpO1xuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export * from './monkeyecx-commons.service';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvc2VydmljZXMvY29tbW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tb25rZXllY3gtY29tbW9ucy5zZXJ2aWNlJztcclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvc2VydmljZXMvY29tbW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tb25rZXllY3gtY29tbW9ucy5zZXJ2aWNlJztcbiJdfQ==
@@ -0,0 +1,269 @@
1
+ import { __decorate } from "tslib";
2
+ import { NavigationStart } from '@angular/router';
3
+ import { BehaviorSubject, throwError } from 'rxjs';
4
+ import { filter, take, takeWhile } from 'rxjs/operators';
5
+ import { MonkeyEcxRequestPagedHandling } from '../request-paged/monkeyecx-request-request-paged-handling';
6
+ import { MonkeyEcxUtils } from '../../utils/utils';
7
+ import { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';
8
+ export class MonkeyEcxCommonsService {
9
+ constructor(monkeyecxService, tokenStorage, otherArgs) {
10
+ this.monkeyecxService = monkeyecxService;
11
+ this.tokenStorage = tokenStorage;
12
+ this.otherArgs = otherArgs;
13
+ this.flagValidator = true;
14
+ this.__error = null;
15
+ this.__handledError = null;
16
+ this.__page = null;
17
+ this.__requestPaged = null;
18
+ this.__onSearchChanged$ = new BehaviorSubject(null);
19
+ this.__onDataChanged$ = new BehaviorSubject(null);
20
+ this.__onLoadingInProgress$ = new BehaviorSubject(false);
21
+ this.__onDataDeleted$ = new BehaviorSubject(null);
22
+ this.__onErrorChanged$ = new BehaviorSubject(null);
23
+ this.__onGovernmentIdDataChanged$ = new BehaviorSubject(null);
24
+ this.__onZipCodeDataChanged$ = new BehaviorSubject(null);
25
+ this.__oni18nDataChanged$ = new BehaviorSubject(null);
26
+ this.__onDoSearch$ = new BehaviorSubject({});
27
+ this.__onDoPagination$ = new BehaviorSubject(null);
28
+ this.__tokenCredentials = null;
29
+ this.__schedule = null;
30
+ this.handleInit();
31
+ }
32
+ handleInit() {
33
+ if (this.tokenStorage) {
34
+ this.__tokenCredentials = this.tokenStorage.getToken();
35
+ }
36
+ if (this.otherArgs?.router) {
37
+ const { clearOnChangeRoute } = this.otherArgs?.schedule?.options || {
38
+ clearOnChangeRoute: false
39
+ };
40
+ this.otherArgs.router.events
41
+ .pipe(filter((event) => {
42
+ return event instanceof NavigationStart;
43
+ }), take(1))
44
+ .subscribe(() => {
45
+ if (this.__schedule && clearOnChangeRoute) {
46
+ this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);
47
+ this.__schedule = null;
48
+ }
49
+ });
50
+ }
51
+ }
52
+ getRole() {
53
+ const { __tokenCredentials } = this;
54
+ if (!__tokenCredentials)
55
+ return '';
56
+ if (__tokenCredentials?.programAdmin === 'true') {
57
+ return 'PROGRAM_ADMIN';
58
+ }
59
+ return __tokenCredentials?.role || '';
60
+ }
61
+ allowedSecurityAccess(args) {
62
+ if (!args)
63
+ return true;
64
+ const roles = args?.roles;
65
+ const byExclusion = args?.byExclusion;
66
+ const found = roles?.indexOf(this.getRole());
67
+ let ret = false;
68
+ if (byExclusion) {
69
+ ret = true;
70
+ if (found > -1) {
71
+ ret = false;
72
+ }
73
+ }
74
+ else {
75
+ ret = false;
76
+ if (found > -1) {
77
+ ret = true;
78
+ }
79
+ }
80
+ if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') {
81
+ ret = true;
82
+ }
83
+ return ret;
84
+ }
85
+ navigateToErrorPage(statusCode, router) {
86
+ const routes = {
87
+ 403: 'forbidden',
88
+ 404: 'not-found',
89
+ 500: 'service-problems',
90
+ 503: 'service-problems'
91
+ };
92
+ if (!router) {
93
+ console.error('Router must be declared');
94
+ }
95
+ else {
96
+ router?.navigate([`/app/pages/${routes[statusCode]}`.toLowerCase()], {
97
+ skipLocationChange: true
98
+ });
99
+ }
100
+ }
101
+ setPage(requestPaged) {
102
+ this.__requestPaged = {
103
+ ...this.__requestPaged,
104
+ ...requestPaged
105
+ };
106
+ return this;
107
+ }
108
+ nextPage() {
109
+ if (!this.__requestPaged)
110
+ return false;
111
+ const { page } = this.__requestPaged;
112
+ const { number, totalPages } = page;
113
+ if (number < totalPages) {
114
+ this.__requestPaged = {
115
+ ...this.__requestPaged,
116
+ page: {
117
+ ...page,
118
+ number: number + 1
119
+ }
120
+ };
121
+ return true;
122
+ }
123
+ return false;
124
+ }
125
+ getEmbeddedData(data, field) {
126
+ const { _embedded } = data;
127
+ return _embedded ? _embedded[field] : null;
128
+ }
129
+ getNormalizedUrl(url) {
130
+ const { __requestPaged } = this;
131
+ return new MonkeyEcxRequestPagedHandling(url, __requestPaged || {}).getRequestWithPagedParams();
132
+ }
133
+ clear(clearData) {
134
+ if (clearData) {
135
+ this.__data = null;
136
+ this.__requestPaged = null;
137
+ this.__params = null;
138
+ this.__page = null;
139
+ if (this.__schedule) {
140
+ const { queue } = this.__schedule;
141
+ if (queue) {
142
+ this.otherArgs?.queue?.service?.removeQueueItem(queue);
143
+ }
144
+ this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);
145
+ this.__schedule = null;
146
+ }
147
+ }
148
+ this.__error = null;
149
+ this.__handledError = null;
150
+ this.flagValidator = false;
151
+ }
152
+ resolve(route, state, otherArgs) {
153
+ this.__data = null;
154
+ this.__page = null;
155
+ this.__requestPaged = null;
156
+ this.flagValidator = true;
157
+ if (this.tokenStorage) {
158
+ this.__tokenCredentials = this.tokenStorage.getToken();
159
+ }
160
+ if (this.allowedSecurityAccess(otherArgs?.security)) {
161
+ //Object.entries(this).forEach(([key, value]) => {
162
+ // if (value instanceof BehaviorSubject) {
163
+ // Object.defineProperty(this, key, new BehaviorSubject(null));
164
+ // }
165
+ //});
166
+ if (this.__schedule) {
167
+ this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);
168
+ this.__schedule = null;
169
+ }
170
+ const { __requestPaged } = this;
171
+ if (!__requestPaged) {
172
+ this.setPage({
173
+ page: {
174
+ number: 0,
175
+ size: 10
176
+ }
177
+ });
178
+ }
179
+ if (otherArgs?.callbackPagination) {
180
+ this.__onDoPagination$.subscribe(() => {
181
+ if (!this.__onLoadingInProgress$.value) {
182
+ const hasMorePages = this.setPage({
183
+ page: {
184
+ ...this.__page
185
+ }
186
+ }).nextPage();
187
+ if (hasMorePages && otherArgs?.callbackPagination) {
188
+ otherArgs.callbackPagination();
189
+ }
190
+ }
191
+ });
192
+ }
193
+ if (otherArgs?.translateOptions) {
194
+ const { service, keys } = otherArgs?.translateOptions;
195
+ this.geti18n(service, keys || '');
196
+ }
197
+ if (otherArgs?.feature) {
198
+ const { flag, service } = otherArgs.feature;
199
+ service.onFlags
200
+ .pipe(takeWhile(() => {
201
+ return this.flagValidator;
202
+ }))
203
+ .subscribe((val) => {
204
+ if (val) {
205
+ const hasFlag = service.getFlag(flag);
206
+ if (MonkeyEcxUtils.persistNullEmptyUndefined(hasFlag)) {
207
+ if (!hasFlag) {
208
+ this.navigateToErrorPage(404, otherArgs?.router);
209
+ return;
210
+ }
211
+ }
212
+ otherArgs?.callbackMain();
213
+ }
214
+ });
215
+ }
216
+ else {
217
+ otherArgs?.callbackMain();
218
+ }
219
+ }
220
+ else {
221
+ this.navigateToErrorPage(403, otherArgs?.router);
222
+ }
223
+ }
224
+ getHTTPHeaderApplicationPDF() {
225
+ return {
226
+ observe: 'response',
227
+ responseType: 'blob'
228
+ };
229
+ }
230
+ genericMethod(link, data, callback) {
231
+ const { href, type = 'get' } = link;
232
+ let func = null;
233
+ const tp = `${type}`.toLowerCase();
234
+ if (tp === 'get') {
235
+ func = this.monkeyecxService?.get;
236
+ }
237
+ else if (tp === 'post') {
238
+ func = this.monkeyecxService?.post;
239
+ }
240
+ else if (tp === 'put') {
241
+ func = this.monkeyecxService?.put;
242
+ }
243
+ else if (tp === 'delete') {
244
+ func = this.monkeyecxService?.delete;
245
+ }
246
+ func?.(`${href}`, data)?.subscribe((resp) => {
247
+ if (callback)
248
+ callback();
249
+ }, (err) => {
250
+ throwError(err);
251
+ });
252
+ }
253
+ geti18n(translateService, keys) {
254
+ translateService
255
+ .getStreamOnTranslationChange(keys)
256
+ .subscribe((translations) => {
257
+ this.__i18n = translations;
258
+ this.__oni18nDataChanged$.next(null);
259
+ });
260
+ }
261
+ }
262
+ __decorate([
263
+ MonkeyEcxCoreService({
264
+ requestInProgress: {
265
+ showProgress: true
266
+ }
267
+ })
268
+ ], MonkeyEcxCommonsService.prototype, "genericMethod", null);
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWNvbW1vbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb3JlL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9jb21tb25zL21vbmtleWVjeC1jb21tb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxlQUFlLEVBR2hCLE1BQU0saUJBQWlCLENBQUM7QUFHekIsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFhekQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFFMUcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRzdFLE1BQU0sT0FBTyx1QkFBdUI7SUE2Q2xDLFlBQ1MsZ0JBQW1DLEVBQ25DLFlBQTJDLEVBQzNDLFNBV047UUFiTSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ25DLGlCQUFZLEdBQVosWUFBWSxDQUErQjtRQUMzQyxjQUFTLEdBQVQsU0FBUyxDQVdmO1FBMURLLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBTTdCLFlBQU8sR0FBa0MsSUFBSSxDQUFDO1FBRTlDLG1CQUFjLEdBQXlDLElBQUksQ0FBQztRQUU1RCxXQUFNLEdBQWtDLElBQUksQ0FBQztRQUk3QyxtQkFBYyxHQUFpQyxJQUFJLENBQUM7UUFFcEQsdUJBQWtCLEdBQXlCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJFLHFCQUFnQixHQUF5QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuRSwyQkFBc0Is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QUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDO1NBQ3RDO1FBRUQsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxTQUFTLENBQ2hDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDWixJQUFJLFFBQVE7Z0JBQUUsUUFBUSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxFQUNELENBQUMsR0FBc0IsRUFBRSxFQUFFO1lBQ3pCLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQixDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLENBQUMsZ0JBQWtDLEVBQUUsSUFBdUI7UUFDakUsZ0JBQWdCO2FBQ2IsNEJBQTRCLENBQUMsSUFBSSxDQUFDO2FBQ2xDLFNBQVMsQ0FBQyxDQUFDLFlBQWlCLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQztZQUMzQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNGO0FBakNDO0lBTEMsb0JBQW9CLENBQUM7UUFDcEIsaUJBQWlCLEVBQUU7WUFDakIsWUFBWSxFQUFFLElBQUk7U0FDbkI7S0FDRixDQUFDOzREQXdCRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gIE5hdmlnYXRpb25TdGFydCxcbiAgUm91dGVyLFxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90XG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlLCB0YWtlV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBNb25rZXlFY3hFcnJvclJlc3BvbnNlLFxuICBNb25rZXlFY3hIYW5kbGVkRXJyb3JSZXNwb25zZSxcbiAgTW9ua2V5RWN4UmVxdWVzdFBhZ2VkLFxuICBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUsXG4gIE1vbmtleUVjeFJlc3BvbnNlUGFnZWQsXG4gIE1vbmtleUVjeFRva2VuQ3JlZGVudGlhbHMsXG4gIE1vbmtleUVjeFRyYW5zbGF0ZU9wdGlvbnNcbn0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNb25rZXlFY3hUb2tlblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vc3RvcmFnZS9tb25rZXllY3gtdG9rZW4tc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZVNlcnZpY2UgfSBmcm9tICcuLi9zY2hlZHVsZXMvbW9ua2V5ZWN4LXJlcXVlc3Qtc2NoZWR1bGUuc2VydmljZSc7XG5pbXBvcnQgeyBNb25rZXlFY3hSZXF1ZXN0UXVldWVIYW5kbGluZ1NlcnZpY2UgfSBmcm9tICcuLi9yZXF1ZXN0LXF1ZXVlL21vbmtleWVjeC1yZXF1ZXN0LXF1ZXVlLWhhbmRsaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9ua2V5RWN4UmVxdWVzdFBhZ2VkSGFuZGxpbmcgfSBmcm9tICcuLi9yZXF1ZXN0LXBhZ2VkL21vbmtleWVjeC1yZXF1ZXN0LXJlcXVlc3QtcGFnZWQtaGFuZGxpbmcnO1xuaW1wb3J0IHsgTW9ua2V5RWN4RmVhdHVyZVRvZ2dsZVNlcnZpY2UgfSBmcm9tICcuLi9jb25maWcvbW9ua2V5ZWN4LWZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9ua2V5RWN4VXRpbHMgfSBmcm9tICcuLi8uLi91dGlscy91dGlscyc7XG5pbXBvcnQgeyBNb25rZXlFY3hDb3JlU2VydmljZSB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMvbW9ua2V5ZWN4LWRlY29yYXRvcnMnO1xuaW1wb3J0IHsgTW9ua2V5RWN4U2VydmljZSB9IGZyb20gJy4uL21vbmtleWVjeC1zZXJ2aWNlLnNlcnZpY2UnO1xuXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4Q29tbW9uc1NlcnZpY2Uge1xuICBwcml2YXRlIGZsYWdWYWxpZGF0b3IgPSB0cnVlO1xuXG4gIF9fZGF0YTogYW55IHwgYW55W107XG5cbiAgX19wYXJhbXM6IGFueSB8IGFueVtdO1xuXG4gIF9fZXJyb3I6IE1vbmtleUVjeEVycm9yUmVzcG9uc2UgfCBudWxsID0gbnVsbDtcblxuICBfX2hhbmRsZWRFcnJvcjogTW9ua2V5RWN4SGFuZGxlZEVycm9yUmVzcG9uc2UgfCBudWxsID0gbnVsbDtcblxuICBfX3BhZ2U6IE1vbmtleUVjeFJlc3BvbnNlUGFnZWQgfCBudWxsID0gbnVsbDtcblxuICBfX3NlYXJjaDogYW55O1xuXG4gIF9fcmVxdWVzdFBhZ2VkOiBNb25rZXlFY3hSZXF1ZXN0UGFnZWQgfCBudWxsID0gbnVsbDtcblxuICBfX29uU2VhcmNoQ2hhbmdlZCQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcblxuICBfX29uRGF0YUNoYW5nZWQkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG5cbiAgX19vbkxvYWRpbmdJblByb2dyZXNzJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBfX29uRGF0YURlbGV0ZWQkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG5cbiAgX19vbkVycm9yQ2hhbmdlZCQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcblxuICBfX29uR292ZXJubWVudElkRGF0YUNoYW5nZWQkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXG4gICAgbnVsbFxuICApO1xuXG4gIF9fb25aaXBDb2RlRGF0YUNoYW5nZWQkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG5cbiAgX19vbmkxOG5EYXRhQ2hhbmdlZCQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcblxuICBfX29uRG9TZWFyY2gkOiBCZWhhdmlvclN1YmplY3Q8TW9ua2V5RWN4UmVxdWVzdFBhZ2VkPiA9IG5ldyBCZWhhdmlvclN1YmplY3Qoe30pO1xuXG4gIF9fb25Eb1BhZ2luYXRpb24kOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG5cbiAgX190b2tlbkNyZWRlbnRpYWxzOiBNb25rZXlFY3hUb2tlbkNyZWRlbnRpYWxzIHwgbnVsbCA9IG51bGw7XG5cbiAgX19zY2hlZHVsZTogTW9ua2V5RWN4UmVxdWVzdFNjaGVkdWxlIHwgbnVsbCA9IG51bGw7XG5cbiAgX19pMThuOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG1vbmtleWVjeFNlcnZpY2U/OiBNb25rZXlFY3hTZXJ2aWNlLFxuICAgIHB1YmxpYyB0b2tlblN0b3JhZ2U/OiBNb25rZXlFY3hUb2tlblN0b3JhZ2VTZXJ2aWNlLFxuICAgIHB1YmxpYyBvdGhlckFyZ3M/OiB7XG4gICAgICByb3V0ZXI/OiBSb3V0ZXI7XG4gICAgICBzY2hlZHVsZT86IHtcbiAgICAgICAgc2VydmljZTogTW9ua2V5RWN4UmVxdWVzdFNjaGVkdWxlU2VydmljZTtcbiAgICAgICAgb3B0aW9ucz86IHtcbiAgICAgICAgICBjbGVhck9uQ2hhbmdlUm91dGU/OiBib29sZWFuO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIHF1ZXVlPzoge1xuICAgICAgICBzZXJ2aWNlOiBNb25rZXlFY3hSZXF1ZXN0UXVldWVIYW5kbGluZ1NlcnZpY2U7XG4gICAgICB9O1xuICAgIH1cbiAgKSB7XG4gICAgdGhpcy5oYW5kbGVJbml0KCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUluaXQoKSB7XG4gICAgaWYgKHRoaXMudG9rZW5TdG9yYWdlKSB7XG4gICAgICB0aGlzLl9fdG9rZW5DcmVkZW50aWFscyA9IHRoaXMudG9rZW5TdG9yYWdlLmdldFRva2VuKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3RoZXJBcmdzPy5yb3V0ZXIpIHtcbiAgICAgIGNvbnN0IHsgY2xlYXJPbkNoYW5nZVJvdXRlIH0gPSB0aGlzLm90aGVyQXJncz8uc2NoZWR1bGU/Lm9wdGlvbnMgfHwge1xuICAgICAgICBjbGVhck9uQ2hhbmdlUm91dGU6IGZhbHNlXG4gICAgICB9O1xuICAgICAgdGhpcy5vdGhlckFyZ3Mucm91dGVyLmV2ZW50c1xuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydDtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YWtlKDEpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX19zY2hlZHVsZSAmJiBjbGVhck9uQ2hhbmdlUm91dGUpIHtcbiAgICAgICAgICAgIHRoaXMub3RoZXJBcmdzPy5zY2hlZHVsZT8uc2VydmljZT8ucmVtb3ZlU2NoZWR1bGUodGhpcy5fX3NjaGVkdWxlKTtcbiAgICAgICAgICAgIHRoaXMuX19zY2hlZHVsZSA9IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFJvbGUoKTogc3RyaW5nIHtcbiAgICBjb25zdCB7IF9fdG9rZW5DcmVkZW50aWFscyB9ID0gdGhpcztcblxuICAgIGlmICghX190b2tlbkNyZWRlbnRpYWxzKSByZXR1cm4gJyc7XG5cbiAgICBpZiAoX190b2tlbkNyZWRlbnRpYWxzPy5wcm9ncmFtQWRtaW4gPT09ICd0cnVlJykge1xuICAgICAgcmV0dXJuICdQUk9HUkFNX0FETUlOJztcbiAgICB9XG5cbiAgICByZXR1cm4gX190b2tlbkNyZWRlbnRpYWxzPy5yb2xlIHx8ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBhbGxvd2VkU2VjdXJpdHlBY2Nlc3MoYXJnczogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKCFhcmdzKSByZXR1cm4gdHJ1ZTtcbiAgICBjb25zdCByb2xlcyA9IGFyZ3M/LnJvbGVzO1xuICAgIGNvbnN0IGJ5RXhjbHVzaW9uID0gYXJncz8uYnlFeGNsdXNpb247XG4gICAgY29uc3QgZm91bmQgPSByb2xlcz8uaW5kZXhPZih0aGlzLmdldFJvbGUoKSk7XG4gICAgbGV0IHJldCA9IGZhbHNlO1xuICAgIGlmIChieUV4Y2x1c2lvbikge1xuICAgICAgcmV0ID0gdHJ1ZTtcbiAgICAgIGlmIChmb3VuZCA+IC0xKSB7XG4gICAgICAgIHJldCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXQgPSBmYWxzZTtcbiAgICAgIGlmIChmb3VuZCA+IC0xKSB7XG4gICAgICAgIHJldCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghcm9sZXMgfHwgcm9sZXMubGVuZ3RoID09PSAwIHx8IHRoaXMuZ2V0Um9sZSgpID09PSAnUFJPR1JBTV9BRE1JTicpIHsgcmV0ID0gdHJ1ZTsgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBwcml2YXRlIG5hdmlnYXRlVG9FcnJvclBhZ2Uoc3RhdHVzQ29kZTogbnVtYmVyLCByb3V0ZXI/OiBSb3V0ZXIpIHtcbiAgICBjb25zdCByb3V0ZXM6IGFueSA9IHtcbiAgICAgIDQwMzogJ2ZvcmJpZGRlbicsXG4gICAgICA0MDQ6ICdub3QtZm91bmQnLFxuICAgICAgNTAwOiAnc2VydmljZS1wcm9ibGVtcycsXG4gICAgICA1MDM6ICdzZXJ2aWNlLXByb2JsZW1zJ1xuICAgIH07XG5cbiAgICBpZiAoIXJvdXRlcikge1xuICAgICAgY29uc29sZS5lcnJvcignUm91dGVyIG11c3QgYmUgZGVjbGFyZWQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm91dGVyPy5uYXZpZ2F0ZShbYC9hcHAvcGFnZXMvJHtyb3V0ZXNbc3RhdHVzQ29kZV19YC50b0xvd2VyQ2FzZSgpXSwge1xuICAgICAgICBza2lwTG9jYXRpb25DaGFuZ2U6IHRydWVcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNldFBhZ2UocmVxdWVzdFBhZ2VkOiBNb25rZXlFY3hSZXF1ZXN0UGFnZWQpIHtcbiAgICB0aGlzLl9fcmVxdWVzdFBhZ2VkID0ge1xuICAgICAgLi4udGhpcy5fX3JlcXVlc3RQYWdlZCxcbiAgICAgIC4uLnJlcXVlc3RQYWdlZFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBuZXh0UGFnZSgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuX19yZXF1ZXN0UGFnZWQpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCB7IHBhZ2UgfSA9IHRoaXMuX19yZXF1ZXN0UGFnZWQgYXMgYW55O1xuICAgIGNvbnN0IHsgbnVtYmVyLCB0b3RhbFBhZ2VzIH0gPSBwYWdlO1xuICAgIGlmIChudW1iZXIgPCB0b3RhbFBhZ2VzKSB7XG4gICAgICB0aGlzLl9fcmVxdWVzdFBhZ2VkID0ge1xuICAgICAgICAuLi50aGlzLl9fcmVxdWVzdFBhZ2VkLFxuICAgICAgICBwYWdlOiB7XG4gICAgICAgICAgLi4ucGFnZSxcbiAgICAgICAgICBudW1iZXI6IG51bWJlciArIDFcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRFbWJlZGRlZERhdGEoZGF0YTogYW55LCBmaWVsZDogc3RyaW5nKTogYW55W10gfCBhbnkge1xuICAgIGNvbnN0IHsgX2VtYmVkZGVkIH0gPSBkYXRhO1xuICAgIHJldHVybiBfZW1iZWRkZWQgPyBfZW1iZWRkZWRbZmllbGRdIDogbnVsbDtcbiAgfVxuXG4gIGdldE5vcm1hbGl6ZWRVcmwodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHsgX19yZXF1ZXN0UGFnZWQgfSA9IHRoaXM7XG4gICAgcmV0dXJuIG5ldyBNb25rZXlFY3hSZXF1ZXN0UGFnZWRIYW5kbGluZyhcbiAgICAgIHVybCxcbiAgICAgIF9fcmVxdWVzdFBhZ2VkIHx8IHt9XG4gICAgKS5nZXRSZXF1ZXN0V2l0aFBhZ2VkUGFyYW1zKCk7XG4gIH1cblxuICBjbGVhcihjbGVhckRhdGE6IGJvb2xlYW4pIHtcbiAgICBpZiAoY2xlYXJEYXRhKSB7XG4gICAgICB0aGlzLl9fZGF0YSA9IG51bGw7XG4gICAgICB0aGlzLl9fcmVxdWVzdFBhZ2VkID0gbnVsbDtcbiAgICAgIHRoaXMuX19wYXJhbXMgPSBudWxsO1xuICAgICAgdGhpcy5fX3BhZ2UgPSBudWxsO1xuXG4gICAgICBpZiAodGhpcy5fX3NjaGVkdWxlKSB7XG4gICAgICAgIGNvbnN0IHsgcXVldWUgfSA9IHRoaXMuX19zY2hlZHVsZTtcbiAgICAgICAgaWYgKHF1ZXVlKSB7XG4gICAgICAgICAgdGhpcy5vdGhlckFyZ3M/LnF1ZXVlPy5zZXJ2aWNlPy5yZW1vdmVRdWV1ZUl0ZW0ocXVldWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3RoZXJBcmdzPy5zY2hlZHVsZT8uc2VydmljZT8ucmVtb3ZlU2NoZWR1bGUodGhpcy5fX3NjaGVkdWxlKTtcbiAgICAgICAgdGhpcy5fX3NjaGVkdWxlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fX2Vycm9yID0gbnVsbDtcbiAgICB0aGlzLl9faGFuZGxlZEVycm9yID0gbnVsbDtcbiAgICB0aGlzLmZsYWdWYWxpZGF0b3IgPSBmYWxzZTtcbiAgfVxuXG4gIHJlc29sdmUoXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsLFxuICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90IHwgbnVsbCxcbiAgICBvdGhlckFyZ3M/OiB7XG4gICAgICBjYWxsYmFja01haW46IEZ1bmN0aW9uO1xuICAgICAgcm91dGVyPzogUm91dGVyO1xuICAgICAgc2VjdXJpdHk/OiB7XG4gICAgICAgIHJvbGVzOiBzdHJpbmdbXTtcbiAgICAgICAgYnlFeGNsdXNpb24/OiBib29sZWFuO1xuICAgICAgfTtcbiAgICAgIGNhbGxiYWNrUGFnaW5hdGlvbj86IEZ1bmN0aW9uO1xuICAgICAgdHJhbnNsYXRlT3B0aW9ucz86IE1vbmtleUVjeFRyYW5zbGF0ZU9wdGlvbnM7XG4gICAgICBmZWF0dXJlPzoge1xuICAgICAgICBzZXJ2aWNlOiBNb25rZXlFY3hGZWF0dXJlVG9nZ2xlU2VydmljZTtcbiAgICAgICAgZmxhZzogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9XG4gICkge1xuICAgIHRoaXMuX19kYXRhID0gbnVsbDtcbiAgICB0aGlzLl9fcGFnZSA9IG51bGw7XG4gICAgdGhpcy5fX3JlcXVlc3RQYWdlZCA9IG51bGw7XG4gICAgdGhpcy5mbGFnVmFsaWRhdG9yID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLnRva2VuU3RvcmFnZSkge1xuICAgICAgdGhpcy5fX3Rva2VuQ3JlZGVudGlhbHMgPSB0aGlzLnRva2VuU3RvcmFnZS5nZXRUb2tlbigpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFsbG93ZWRTZWN1cml0eUFjY2VzcyhvdGhlckFyZ3M/LnNlY3VyaXR5KSkge1xuICAgICAgLy9PYmplY3QuZW50cmllcyh0aGlzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIC8vICBpZiAodmFsdWUgaW5zdGFuY2VvZiBCZWhhdmlvclN1YmplY3QpIHtcbiAgICAgIC8vICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBrZXksIG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCkpO1xuICAgICAgLy8gIH1cbiAgICAgIC8vfSk7XG5cbiAgICAgIGlmICh0aGlzLl9fc2NoZWR1bGUpIHtcbiAgICAgICAgdGhpcy5vdGhlckFyZ3M/LnNjaGVkdWxlPy5zZXJ2aWNlPy5yZW1vdmVTY2hlZHVsZSh0aGlzLl9fc2NoZWR1bGUpO1xuICAgICAgICB0aGlzLl9fc2NoZWR1bGUgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IF9fcmVxdWVzdFBhZ2VkIH0gPSB0aGlzO1xuICAgICAgaWYgKCFfX3JlcXVlc3RQYWdlZCkge1xuICAgICAgICB0aGlzLnNldFBhZ2Uoe1xuICAgICAgICAgIHBhZ2U6IHtcbiAgICAgICAgICAgIG51bWJlcjogMCxcbiAgICAgICAgICAgIHNpemU6IDEwXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKG90aGVyQXJncz8uY2FsbGJhY2tQYWdpbmF0aW9uKSB7XG4gICAgICAgIHRoaXMuX19vbkRvUGFnaW5hdGlvbiQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBpZiAoIXRoaXMuX19vbkxvYWRpbmdJblByb2dyZXNzJC52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgaGFzTW9yZVBhZ2VzID0gdGhpcy5zZXRQYWdlKHtcbiAgICAgICAgICAgICAgcGFnZToge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuX19wYWdlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLm5leHRQYWdlKCk7XG4gICAgICAgICAgICBpZiAoaGFzTW9yZVBhZ2VzICYmIG90aGVyQXJncz8uY2FsbGJhY2tQYWdpbmF0aW9uKSB7IG90aGVyQXJncy5jYWxsYmFja1BhZ2luYXRpb24oKTsgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvdGhlckFyZ3M/LnRyYW5zbGF0ZU9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgeyBzZXJ2aWNlLCBrZXlzIH0gPSBvdGhlckFyZ3M/LnRyYW5zbGF0ZU9wdGlvbnM7XG4gICAgICAgIHRoaXMuZ2V0aTE4bihzZXJ2aWNlLCBrZXlzIHx8ICcnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG90aGVyQXJncz8uZmVhdHVyZSkge1xuICAgICAgICBjb25zdCB7IGZsYWcsIHNlcnZpY2UgfSA9IG90aGVyQXJncy5mZWF0dXJlO1xuXG4gICAgICAgIHNlcnZpY2Uub25GbGFnc1xuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgdGFrZVdoaWxlKCgpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmxhZ1ZhbGlkYXRvcjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbDogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbCkge1xuICAgICAgICAgICAgICBjb25zdCBoYXNGbGFnID0gc2VydmljZS5nZXRGbGFnKGZsYWcpO1xuXG4gICAgICAgICAgICAgIGlmIChNb25rZXlFY3hVdGlscy5wZXJzaXN0TnVsbEVtcHR5VW5kZWZpbmVkKGhhc0ZsYWcpKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFoYXNGbGFnKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLm5hdmlnYXRlVG9FcnJvclBhZ2UoNDA0LCBvdGhlckFyZ3M/LnJvdXRlcik7XG4gICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIG90aGVyQXJncz8uY2FsbGJhY2tNYWluKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdGhlckFyZ3M/LmNhbGxiYWNrTWFpbigpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5hdmlnYXRlVG9FcnJvclBhZ2UoNDAzLCBvdGhlckFyZ3M/LnJvdXRlcik7XG4gICAgfVxuICB9XG5cbiAgZ2V0SFRUUEhlYWRlckFwcGxpY2F0aW9uUERGKCk6IE9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9ic2VydmU6ICdyZXNwb25zZScsXG4gICAgICByZXNwb25zZVR5cGU6ICdibG9iJ1xuICAgIH07XG4gIH1cblxuICBATW9ua2V5RWN4Q29yZVNlcnZpY2Uoe1xuICAgIHJlcXVlc3RJblByb2dyZXNzOiB7XG4gICAgICBzaG93UHJvZ3Jlc3M6IHRydWVcbiAgICB9XG4gIH0pXG4gIGdlbmVyaWNNZXRob2QobGluazogYW55LCBkYXRhPzogYW55LCBjYWxsYmFjaz86IEZ1bmN0aW9uKSB7XG4gICAgY29uc3QgeyBocmVmLCB0eXBlID0gJ2dldCcgfSA9IGxpbms7XG5cbiAgICBsZXQgZnVuYyA9IG51bGw7XG4gICAgY29uc3QgdHAgPSBgJHt0eXBlfWAudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAodHAgPT09ICdnZXQnKSB7XG4gICAgICBmdW5jID0gdGhpcy5tb25rZXllY3hTZXJ2aWNlPy5nZXQ7XG4gICAgfWVsc2UgaWYgKHRwID09PSAncG9zdCcpIHtcbiAgICAgIGZ1bmMgPSB0aGlzLm1vbmtleWVjeFNlcnZpY2U/LnBvc3Q7XG4gICAgfWVsc2UgaWYgKHRwID09PSAncHV0Jykge1xuICAgICAgZnVuYyA9IHRoaXMubW9ua2V5ZWN4U2VydmljZT8ucHV0O1xuICAgIH1lbHNlIGlmICh0cCA9PT0gJ2RlbGV0ZScpIHtcbiAgICAgIGZ1bmMgPSB0aGlzLm1vbmtleWVjeFNlcnZpY2U/LmRlbGV0ZTtcbiAgICB9XG5cbiAgICBmdW5jPy4oYCR7aHJlZn1gLCBkYXRhKT8uc3Vic2NyaWJlKFxuICAgICAgKHJlc3A6IGFueSkgPT4ge1xuICAgICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKCk7XG4gICAgICB9LFxuICAgICAgKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhyb3dFcnJvcihlcnIpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBnZXRpMThuKHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsIGtleXM6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgdHJhbnNsYXRlU2VydmljZVxuICAgICAgLmdldFN0cmVhbU9uVHJhbnNsYXRpb25DaGFuZ2Uoa2V5cylcbiAgICAgIC5zdWJzY3JpYmUoKHRyYW5zbGF0aW9uczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuX19pMThuID0gdHJhbnNsYXRpb25zO1xuICAgICAgICB0aGlzLl9fb25pMThuRGF0YUNoYW5nZWQkLm5leHQobnVsbCk7XG4gICAgICB9KTtcbiAgfVxufVxuIl19
@@ -15,14 +15,14 @@ export class MonkeyEcxConfigModule {
15
15
  };
16
16
  }
17
17
  }
18
- MonkeyEcxConfigModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: MonkeyEcxConfigModule, deps: [{ token: MonkeyEcxConfigModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
19
- MonkeyEcxConfigModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: MonkeyEcxConfigModule });
20
- MonkeyEcxConfigModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: MonkeyEcxConfigModule });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: MonkeyEcxConfigModule, decorators: [{
18
+ MonkeyEcxConfigModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxConfigModule, deps: [{ token: MonkeyEcxConfigModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
19
+ MonkeyEcxConfigModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxConfigModule });
20
+ MonkeyEcxConfigModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxConfigModule });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxConfigModule, decorators: [{
22
22
  type: NgModule
23
23
  }], ctorParameters: function () { return [{ type: MonkeyEcxConfigModule, decorators: [{
24
24
  type: Optional
25
25
  }, {
26
26
  type: SkipSelf
27
27
  }] }]; } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWNvbmZpZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvc2VydmljZXMvY29uZmlnL21vbmtleWVjeC1jb25maWcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJCQUEyQjtBQUMzQixPQUFPLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUdwRSxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBR0UsWUFBbUM7UUFFbkMsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO1NBQzlGO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsU0FBUyxFQUFFLENBQUMsc0JBQXNCLENBQUM7U0FDcEMsQ0FBQztJQUNKLENBQUM7O21IQWhCVSxxQkFBcUIsa0JBSWhCLHFCQUFxQjtvSEFKMUIscUJBQXFCO29IQUFyQixxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFEakMsUUFBUTswREFLUyxxQkFBcUI7MEJBRmxDLFFBQVE7OzBCQUNSLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbmRlbnQgKi9cclxuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb25rZXllY3gtY29uZmlnLnNlcnZpY2UnO1xyXG5cclxuQE5nTW9kdWxlKClcclxuZXhwb3J0IGNsYXNzIE1vbmtleUVjeENvbmZpZ01vZHVsZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAT3B0aW9uYWwoKVxyXG4gICAgQFNraXBTZWxmKClcclxuICAgIHBhcmVudE1vZHVsZTogTW9ua2V5RWN4Q29uZmlnTW9kdWxlXHJcbiAgKSB7XHJcbiAgICBpZiAocGFyZW50TW9kdWxlKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignTW9ua2V5RWN4Q29uZmlnTW9kdWxlIGlzIGFscmVhZHkgbG9hZGVkLiBJbXBvcnQgaXQgaW4gdGhlIEFwcE1vZHVsZSBvbmx5IScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxNb25rZXlFY3hDb25maWdNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBNb25rZXlFY3hDb25maWdNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW01vbmtleUVjeENvbmZpZ1NlcnZpY2VdXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWNvbmZpZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvc2VydmljZXMvY29uZmlnL21vbmtleWVjeC1jb25maWcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJCQUEyQjtBQUMzQixPQUFPLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUdwRSxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBR0UsWUFBbUM7UUFFbkMsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO1NBQzlGO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsU0FBUyxFQUFFLENBQUMsc0JBQXNCLENBQUM7U0FDcEMsQ0FBQztJQUNKLENBQUM7O2tIQWhCVSxxQkFBcUIsa0JBSWhCLHFCQUFxQjttSEFKMUIscUJBQXFCO21IQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsUUFBUTswREFLUyxxQkFBcUI7MEJBRmxDLFFBQVE7OzBCQUNSLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbmRlbnQgKi9cbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBPcHRpb25hbCwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vbmtleUVjeENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL21vbmtleWVjeC1jb25maWcuc2VydmljZSc7XG5cbkBOZ01vZHVsZSgpXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4Q29uZmlnTW9kdWxlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKClcbiAgICBAU2tpcFNlbGYoKVxuICAgIHBhcmVudE1vZHVsZTogTW9ua2V5RWN4Q29uZmlnTW9kdWxlXG4gICkge1xuICAgIGlmIChwYXJlbnRNb2R1bGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTW9ua2V5RWN4Q29uZmlnTW9kdWxlIGlzIGFscmVhZHkgbG9hZGVkLiBJbXBvcnQgaXQgaW4gdGhlIEFwcE1vZHVsZSBvbmx5IScpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TW9ua2V5RWN4Q29uZmlnTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBNb25rZXlFY3hDb25maWdNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtNb25rZXlFY3hDb25maWdTZXJ2aWNlXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,104 @@
1
+ import { __decorate } from "tslib";
2
+ /* eslint-disable no-console */
3
+ import { Injectable } from '@angular/core';
4
+ import { throwError, BehaviorSubject } from 'rxjs';
5
+ import { MonkeyUtils } from 'monkey-style-guide';
6
+ import { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';
7
+ import { MonkeyEcxCommonsService } from '../commons/monkeyecx-commons.service';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../monkeyecx-service.service";
10
+ import * as i2 from "./monkeyecx-i18n-config.service";
11
+ import * as i3 from "./monkeyecx-logs-config.service";
12
+ import * as i4 from "monkey-style-guide";
13
+ import * as i5 from "./monkeyecx-service-worker-config.service";
14
+ import * as i6 from "./monkeyecx-security-console-config.service";
15
+ import * as i7 from "./monkeyecx-maintenance-config.service";
16
+ import * as i8 from "./monkeyecx-error-config.service";
17
+ import * as i9 from "./monkeyecx-feature-toggle.service";
18
+ export class MonkeyEcxConfigService extends MonkeyEcxCommonsService {
19
+ constructor(monkeyecxService, monkeyecxi18nConfigService, monkeyecxLogsConfigService, monkeyStyleGuideSettingsService, monkeyecxServiceWorkerConfigService, monkeyecxSecurityConsoleConfigService, monkeyecxMaintenanceConfigService, monkeyecxErrorConfigService, monkeyEcxFeatureToggleService) {
20
+ super(monkeyecxService);
21
+ this.monkeyecxi18nConfigService = monkeyecxi18nConfigService;
22
+ this.monkeyecxLogsConfigService = monkeyecxLogsConfigService;
23
+ this.monkeyStyleGuideSettingsService = monkeyStyleGuideSettingsService;
24
+ this.monkeyecxServiceWorkerConfigService = monkeyecxServiceWorkerConfigService;
25
+ this.monkeyecxSecurityConsoleConfigService = monkeyecxSecurityConsoleConfigService;
26
+ this.monkeyecxMaintenanceConfigService = monkeyecxMaintenanceConfigService;
27
+ this.monkeyecxErrorConfigService = monkeyecxErrorConfigService;
28
+ this.monkeyEcxFeatureToggleService = monkeyEcxFeatureToggleService;
29
+ this.configSubject$ = new BehaviorSubject({});
30
+ this.configBoostrapSubject$ = new BehaviorSubject({});
31
+ }
32
+ internalValidations(...args) {
33
+ const { monkeyecxServiceWorkerConfigService, monkeyecxSecurityConsoleConfigService, monkeyecxMaintenanceConfigService } = this;
34
+ const configBoostrap = args[0];
35
+ const callback = args[1];
36
+ monkeyecxSecurityConsoleConfigService.apply();
37
+ monkeyecxServiceWorkerConfigService.apply(configBoostrap);
38
+ monkeyecxMaintenanceConfigService.apply(configBoostrap);
39
+ console.log('configBoostrap');
40
+ console.log(configBoostrap);
41
+ callback(configBoostrap);
42
+ }
43
+ getWhiteLabelSettings(monkeyecxCode, configBoostrap, callback, environment, identifyCode) {
44
+ const { monkeyecxService, monkeyecxi18nConfigService, configSubject$, monkeyStyleGuideSettingsService, monkeyecxLogsConfigService, monkeyecxErrorConfigService, monkeyEcxFeatureToggleService, internalValidations } = this;
45
+ const url = `${environment.urlAssets}`;
46
+ monkeyecxService?.get(`${url}/${monkeyecxCode.toLowerCase()}/white-label.json`)?.subscribe((config) => {
47
+ monkeyecxi18nConfigService.apply(config, environment);
48
+ monkeyecxLogsConfigService.apply(config, configBoostrap, environment, identifyCode);
49
+ monkeyEcxFeatureToggleService.apply(configSubject$, environment);
50
+ monkeyStyleGuideSettingsService.boostrap(`${url}/${monkeyecxCode.toLowerCase()}/monkey-style-guide-settings.json`, internalValidations.bind(this, configBoostrap, callback, environment));
51
+ configSubject$.next(config);
52
+ }, (err) => {
53
+ monkeyecxErrorConfigService.apply('theme');
54
+ console.error('Program Configuration not found!');
55
+ throwError(err);
56
+ });
57
+ }
58
+ init(callback, environment, identifyCode, monkeyecxCode) {
59
+ const { monkeyecxService, configBoostrapSubject$, monkeyecxErrorConfigService } = this;
60
+ monkeyecxService?.get(`${environment.boostrapAssets}?t=${MonkeyUtils.getRandomString(30)}`, {
61
+ observe: 'response'
62
+ })?.subscribe((resp) => {
63
+ const { headers, body } = resp;
64
+ const monkeyCode = headers.get('monkey-code') || monkeyecxCode;
65
+ if (monkeyCode) {
66
+ this.getWhiteLabelSettings(monkeyCode, body, callback, environment, identifyCode);
67
+ configBoostrapSubject$.next(body);
68
+ }
69
+ else {
70
+ monkeyecxErrorConfigService.apply('theme');
71
+ console.error(`Boostrap ${monkeyCode} Configuration not found!`);
72
+ }
73
+ }, (err) => {
74
+ monkeyecxErrorConfigService.apply('theme');
75
+ console.error('Boostrap Configuration not found!');
76
+ throwError(err);
77
+ });
78
+ }
79
+ config() {
80
+ return this.configSubject$.asObservable();
81
+ }
82
+ boostrapConfig() {
83
+ return this.configBoostrapSubject$.asObservable();
84
+ }
85
+ }
86
+ MonkeyEcxConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxConfigService, deps: [{ token: i1.MonkeyEcxService }, { token: i2.MonkeyEcxi18nConfigService }, { token: i3.MonkeyEcxLogsConfigService }, { token: i4.MonkeyStyleGuideSettingsService }, { token: i5.MonkeyEcxServiceWorkerConfigService }, { token: i6.MonkeyEcxSecurityConsoleConfigService }, { token: i7.MonkeyEcxMaintenanceConfigService }, { token: i8.MonkeyEcxErrorConfigService }, { token: i9.MonkeyEcxFeatureToggleService }], target: i0.ɵɵFactoryTarget.Injectable });
87
+ MonkeyEcxConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxConfigService, providedIn: 'root' });
88
+ __decorate([
89
+ MonkeyEcxCoreService({
90
+ httpResponse: {
91
+ httpCodeIgnore: [404]
92
+ },
93
+ requestInProgress: {
94
+ showProgress: false
95
+ }
96
+ })
97
+ ], MonkeyEcxConfigService.prototype, "init", null);
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxConfigService, decorators: [{
99
+ type: Injectable,
100
+ args: [{
101
+ providedIn: 'root'
102
+ }]
103
+ }], ctorParameters: function () { return [{ type: i1.MonkeyEcxService }, { type: i2.MonkeyEcxi18nConfigService }, { type: i3.MonkeyEcxLogsConfigService }, { type: i4.MonkeyStyleGuideSettingsService }, { type: i5.MonkeyEcxServiceWorkerConfigService }, { type: i6.MonkeyEcxSecurityConsoleConfigService }, { type: i7.MonkeyEcxMaintenanceConfigService }, { type: i8.MonkeyEcxErrorConfigService }, { type: i9.MonkeyEcxFeatureToggleService }]; }, propDecorators: { init: [] } });
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWNvbmZpZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2NvbmZpZy9tb25rZXllY3gtY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBbUMsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFNbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7O0FBVS9FLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx1QkFBdUI7SUFLakUsWUFDRSxnQkFBa0MsRUFDMUIsMEJBQXNELEVBQ3RELDBCQUFzRCxFQUN0RCwrQkFBZ0UsRUFDaEUsbUNBQXdFLEVBQ3hFLHFDQUE0RSxFQUM1RSxpQ0FBb0UsRUFDcEUsMkJBQXdELEVBQ3hELDZCQUE0RDtRQUVwRSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQVRoQiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUFDdEQsb0NBQStCLEdBQS9CLCtCQUErQixDQUFpQztRQUNoRSx3Q0FBbUMsR0FBbkMsbUNBQW1DLENBQXFDO1FBQ3hFLDBDQUFxQyxHQUFyQyxxQ0FBcUMsQ0FBdUM7UUFDNUUsc0NBQWlDLEdBQWpDLGlDQUFpQyxDQUFtQztRQUNwRSxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTZCO1FBQ3hELGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FB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bUZRLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IHRocm93RXJyb3IsIEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNb25rZXlTdHlsZUd1aWRlU2V0dGluZ3NTZXJ2aWNlLCBNb25rZXlVdGlscyB9IGZyb20gJ21vbmtleS1zdHlsZS1ndWlkZSc7XHJcbmltcG9ydCB7IE1vbmtleUVjeGkxOG5Db25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb25rZXllY3gtaTE4bi1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vbmtleUVjeExvZ3NDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb25rZXllY3gtbG9ncy1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vbmtleUVjeFNlcnZpY2VXb3JrZXJDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb25rZXllY3gtc2VydmljZS13b3JrZXItY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hTZWN1cml0eUNvbnNvbGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb25rZXllY3gtc2VjdXJpdHktY29uc29sZS1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vbmtleUVjeE1haW50ZW5hbmNlQ29uZmlnU2VydmljZSB9IGZyb20gJy4vbW9ua2V5ZWN4LW1haW50ZW5hbmNlLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9ua2V5RWN4Q29yZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kZWNvcmF0b3JzL21vbmtleWVjeC1kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgTW9ua2V5RWN4Q29tbW9uc1NlcnZpY2UgfSBmcm9tICcuLi9jb21tb25zL21vbmtleWVjeC1jb21tb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hDb25maWcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL21vbmtleWVjeC1jb25maWcnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hDb25maWdCb29zdHJhcCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbW9ua2V5ZWN4LWNvbmZpZy1ib29zdHJhcCc7XHJcbmltcG9ydCB7IE1vbmtleUVjeFNlcnZpY2UgfSBmcm9tICcuLi9tb25rZXllY3gtc2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9ua2V5RWN4RXJyb3JDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb25rZXllY3gtZXJyb3ItY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hGZWF0dXJlVG9nZ2xlU2VydmljZSB9IGZyb20gJy4vbW9ua2V5ZWN4LWZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4Q29uZmlnU2VydmljZSBleHRlbmRzIE1vbmtleUVjeENvbW1vbnNTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1N1YmplY3QkOiBCZWhhdmlvclN1YmplY3Q8TW9ua2V5RWN4Q29uZmlnPjtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWdCb29zdHJhcFN1YmplY3QkOiBCZWhhdmlvclN1YmplY3Q8TW9ua2V5RWN4Q29uZmlnPjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBtb25rZXllY3hTZXJ2aWNlOiBNb25rZXlFY3hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtb25rZXllY3hpMThuQ29uZmlnU2VydmljZTogTW9ua2V5RWN4aTE4bkNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1vbmtleWVjeExvZ3NDb25maWdTZXJ2aWNlOiBNb25rZXlFY3hMb2dzQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgbW9ua2V5U3R5bGVHdWlkZVNldHRpbmdzU2VydmljZTogTW9ua2V5U3R5bGVHdWlkZVNldHRpbmdzU2VydmljZSxcclxuICAgIHByaXZhdGUgbW9ua2V5ZWN4U2VydmljZVdvcmtlckNvbmZpZ1NlcnZpY2U6IE1vbmtleUVjeFNlcnZpY2VXb3JrZXJDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtb25rZXllY3hTZWN1cml0eUNvbnNvbGVDb25maWdTZXJ2aWNlOiBNb25rZXlFY3hTZWN1cml0eUNvbnNvbGVDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtb25rZXllY3hNYWludGVuYW5jZUNvbmZpZ1NlcnZpY2U6IE1vbmtleUVjeE1haW50ZW5hbmNlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgbW9ua2V5ZWN4RXJyb3JDb25maWdTZXJ2aWNlOiBNb25rZXlFY3hFcnJvckNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1vbmtleUVjeEZlYXR1cmVUb2dnbGVTZXJ2aWNlOiBNb25rZXlFY3hGZWF0dXJlVG9nZ2xlU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIobW9ua2V5ZWN4U2VydmljZSk7XHJcbiAgICB0aGlzLmNvbmZpZ1N1YmplY3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XHJcbiAgICB0aGlzLmNvbmZpZ0Jvb3N0cmFwU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW50ZXJuYWxWYWxpZGF0aW9ucyguLi5hcmdzOiBhbnlbXSkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBtb25rZXllY3hTZXJ2aWNlV29ya2VyQ29uZmlnU2VydmljZSxcclxuICAgICAgbW9ua2V5ZWN4U2VjdXJpdHlDb25zb2xlQ29uZmlnU2VydmljZSxcclxuICAgICAgbW9ua2V5ZWN4TWFpbnRlbmFuY2VDb25maWdTZXJ2aWNlXHJcbiAgICB9ID0gdGhpcztcclxuICAgIGNvbnN0IGNvbmZpZ0Jvb3N0cmFwID0gYXJnc1swXTtcclxuICAgIGNvbnN0IGNhbGxiYWNrID0gYXJnc1sxXTtcclxuICAgIG1vbmtleWVjeFNlY3VyaXR5Q29uc29sZUNvbmZpZ1NlcnZpY2UuYXBwbHkoKTtcclxuICAgIG1vbmtleWVjeFNlcnZpY2VXb3JrZXJDb25maWdTZXJ2aWNlLmFwcGx5KGNvbmZpZ0Jvb3N0cmFwKTtcclxuICAgIG1vbmtleWVjeE1haW50ZW5hbmNlQ29uZmlnU2VydmljZS5hcHBseShjb25maWdCb29zdHJhcCk7XHJcbiAgICBjb25zb2xlLmxvZygnY29uZmlnQm9vc3RyYXAnKVxyXG4gICAgY29uc29sZS5sb2coY29uZmlnQm9vc3RyYXApXHJcbiAgICBjYWxsYmFjayhjb25maWdCb29zdHJhcCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFdoaXRlTGFiZWxTZXR0aW5ncyhcclxuICAgIG1vbmtleWVjeENvZGU6IHN0cmluZyxcclxuICAgIGNvbmZpZ0Jvb3N0cmFwOiBNb25rZXlFY3hDb25maWdCb29zdHJhcCxcclxuICAgIGNhbGxiYWNrOiBGdW5jdGlvbixcclxuICAgIGVudmlyb25tZW50OiBhbnksXHJcbiAgICBpZGVudGlmeUNvZGU6IHN0cmluZ1xyXG4gICkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBtb25rZXllY3hTZXJ2aWNlLFxyXG4gICAgICBtb25rZXllY3hpMThuQ29uZmlnU2VydmljZSxcclxuICAgICAgY29uZmlnU3ViamVjdCQsXHJcbiAgICAgIG1vbmtleVN0eWxlR3VpZGVTZXR0aW5nc1NlcnZpY2UsXHJcbiAgICAgIG1vbmtleWVjeExvZ3NDb25maWdTZXJ2aWNlLFxyXG4gICAgICBtb25rZXllY3hFcnJvckNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgIG1vbmtleUVjeEZlYXR1cmVUb2dnbGVTZXJ2aWNlLFxyXG4gICAgICBpbnRlcm5hbFZhbGlkYXRpb25zXHJcbiAgICB9ID0gdGhpcztcclxuICAgIGNvbnN0IHVybCA9IGAke2Vudmlyb25tZW50LnVybEFzc2V0c31gO1xyXG4gICAgbW9ua2V5ZWN4U2VydmljZT8uZ2V0PGFueT4oYCR7dXJsfS8ke21vbmtleWVjeENvZGUudG9Mb3dlckNhc2UoKX0vd2hpdGUtbGFiZWwuanNvbmApPy5zdWJzY3JpYmUoXHJcbiAgICAgIChjb25maWc6IE1vbmtleUVjeENvbmZpZykgPT4ge1xyXG4gICAgICAgIG1vbmtleWVjeGkxOG5Db25maWdTZXJ2aWNlLmFwcGx5KGNvbmZpZywgZW52aXJvbm1lbnQpO1xyXG4gICAgICAgIG1vbmtleWVjeExvZ3NDb25maWdTZXJ2aWNlLmFwcGx5KGNvbmZpZywgY29uZmlnQm9vc3RyYXAsIGVudmlyb25tZW50LCBpZGVudGlmeUNvZGUpO1xyXG4gICAgICAgIG1vbmtleUVjeEZlYXR1cmVUb2dnbGVTZXJ2aWNlLmFwcGx5KGNvbmZpZ1N1YmplY3QkLCBlbnZpcm9ubWVudCk7XHJcbiAgICAgICAgbW9ua2V5U3R5bGVHdWlkZVNldHRpbmdzU2VydmljZS5ib29zdHJhcChcclxuICAgICAgICAgIGAke3VybH0vJHttb25rZXllY3hDb2RlLnRvTG93ZXJDYXNlKCl9L21vbmtleS1zdHlsZS1ndWlkZS1zZXR0aW5ncy5qc29uYCxcclxuICAgICAgICAgIGludGVybmFsVmFsaWRhdGlvbnMuYmluZCh0aGlzLCBjb25maWdCb29zdHJhcCwgY2FsbGJhY2ssIGVudmlyb25tZW50KVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uZmlnU3ViamVjdCQubmV4dChjb25maWcpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIG1vbmtleWVjeEVycm9yQ29uZmlnU2VydmljZS5hcHBseSgndGhlbWUnKTtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdQcm9ncmFtIENvbmZpZ3VyYXRpb24gbm90IGZvdW5kIScpO1xyXG4gICAgICAgIHRocm93RXJyb3IoZXJyKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBNb25rZXlFY3hDb3JlU2VydmljZSh7XHJcbiAgICBodHRwUmVzcG9uc2U6IHtcclxuICAgICAgaHR0cENvZGVJZ25vcmU6IFs0MDRdXHJcbiAgICB9LFxyXG4gICAgcmVxdWVzdEluUHJvZ3Jlc3M6IHtcclxuICAgICAgc2hvd1Byb2dyZXNzOiBmYWxzZVxyXG4gICAgfVxyXG4gIH0pXHJcbiAgcHVibGljIGluaXQoY2FsbGJhY2s6IEZ1bmN0aW9uLCBlbnZpcm9ubWVudDogYW55LCBpZGVudGlmeUNvZGU6IHN0cmluZywgbW9ua2V5ZWN4Q29kZT86IHN0cmluZykge1xyXG4gICAgY29uc3QgeyBtb25rZXllY3hTZXJ2aWNlLCBjb25maWdCb29zdHJhcFN1YmplY3QkLCBtb25rZXllY3hFcnJvckNvbmZpZ1NlcnZpY2UgfSA9IHRoaXM7XHJcblxyXG4gICAgbW9ua2V5ZWN4U2VydmljZT8uZ2V0KGAke2Vudmlyb25tZW50LmJvb3N0cmFwQXNzZXRzfT90PSR7TW9ua2V5VXRpbHMuZ2V0UmFuZG9tU3RyaW5nKDMwKX1gLCB7XHJcbiAgICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ1xyXG4gICAgICB9KT8uc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXNwOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHsgaGVhZGVycywgYm9keSB9ID0gcmVzcDtcclxuICAgICAgICAgIGNvbnN0IG1vbmtleUNvZGUgPSBoZWFkZXJzLmdldCgnbW9ua2V5LWNvZGUnKSB8fCBtb25rZXllY3hDb2RlO1xyXG4gICAgICAgICAgaWYgKG1vbmtleUNvZGUpIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRXaGl0ZUxhYmVsU2V0dGluZ3MobW9ua2V5Q29kZSwgYm9keSwgY2FsbGJhY2ssIGVudmlyb25tZW50LCBpZGVudGlmeUNvZGUpO1xyXG4gICAgICAgICAgICBjb25maWdCb29zdHJhcFN1YmplY3QkLm5leHQoYm9keSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBtb25rZXllY3hFcnJvckNvbmZpZ1NlcnZpY2UuYXBwbHkoJ3RoZW1lJyk7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEJvb3N0cmFwICR7bW9ua2V5Q29kZX0gQ29uZmlndXJhdGlvbiBub3QgZm91bmQhYCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgbW9ua2V5ZWN4RXJyb3JDb25maWdTZXJ2aWNlLmFwcGx5KCd0aGVtZScpO1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcignQm9vc3RyYXAgQ29uZmlndXJhdGlvbiBub3QgZm91bmQhJyk7XHJcbiAgICAgICAgICB0aHJvd0Vycm9yKGVycik7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbmZpZygpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU3ViamVjdCQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYm9vc3RyYXBDb25maWcoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ0Jvb3N0cmFwU3ViamVjdCQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==