@openziti/ziti-console-lib 1.0.3 → 1.1.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 (563) hide show
  1. package/assets/styles/global.scss +70 -0
  2. package/fesm2022/openziti-ziti-console-lib.mjs +2133 -1321
  3. package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -1
  4. package/index.d.ts +5689 -6
  5. package/index.d.ts.map +1 -0
  6. package/package.json +10 -12
  7. package/esm2022/lib/ZAC_VERSION.mjs +0 -4
  8. package/esm2022/lib/app.initializer.mjs +0 -24
  9. package/esm2022/lib/default-app-config.mjs +0 -5
  10. package/esm2022/lib/features/card/card.component.mjs +0 -34
  11. package/esm2022/lib/features/card-list/card-list.component.mjs +0 -55
  12. package/esm2022/lib/features/config-editor/config-editor.component.mjs +0 -337
  13. package/esm2022/lib/features/confirm/confirm.component.mjs +0 -77
  14. package/esm2022/lib/features/creation-summary-dialog/creation-summary-dialog.component.mjs +0 -93
  15. package/esm2022/lib/features/custom-tags/custom-tags.component.mjs +0 -111
  16. package/esm2022/lib/features/data-table/cells/table-cell-menu/table-cell-menu.component.mjs +0 -46
  17. package/esm2022/lib/features/data-table/cells/table-cell-name/table-cell-name.component.mjs +0 -49
  18. package/esm2022/lib/features/data-table/cells/table-cell-select/table-cell-select.component.mjs +0 -58
  19. package/esm2022/lib/features/data-table/cells/table-cell-token/table-cell-token.component.mjs +0 -123
  20. package/esm2022/lib/features/data-table/column-headers/table-column-default/table-column-default.component.mjs +0 -268
  21. package/esm2022/lib/features/data-table/column-headers/table-column-filter/table-column-filter.component.mjs +0 -93
  22. package/esm2022/lib/features/data-table/column-headers/table-column-menu/table-column-menu.component.mjs +0 -37
  23. package/esm2022/lib/features/data-table/column-headers/table-column-select/table-column-select.component.mjs +0 -33
  24. package/esm2022/lib/features/data-table/data-table-filter.service.mjs +0 -138
  25. package/esm2022/lib/features/data-table/data-table.component.mjs +0 -918
  26. package/esm2022/lib/features/data-table/data-table.service.mjs +0 -98
  27. package/esm2022/lib/features/data-table/table-filter-bar/filter-bar.component.mjs +0 -108
  28. package/esm2022/lib/features/data-table/table-hidden-columns-bar/hidden-columns-bar.component.mjs +0 -26
  29. package/esm2022/lib/features/data-table/tooltips/os-tooltip.component.mjs +0 -29
  30. package/esm2022/lib/features/data-table/tooltips/sdk-tooltip.component.mjs +0 -34
  31. package/esm2022/lib/features/dynamic-widgets/boolean/boolean-toggle-input.component.mjs +0 -72
  32. package/esm2022/lib/features/dynamic-widgets/checkbox-list/checkbox-list-input.component.mjs +0 -134
  33. package/esm2022/lib/features/dynamic-widgets/forwarding-config/forwarding-config.component.mjs +0 -189
  34. package/esm2022/lib/features/dynamic-widgets/forwarding-config/forwarding-config.service.mjs +0 -50
  35. package/esm2022/lib/features/dynamic-widgets/number/number-input.component.mjs +0 -95
  36. package/esm2022/lib/features/dynamic-widgets/object/object.component.mjs +0 -121
  37. package/esm2022/lib/features/dynamic-widgets/password/password-input.component.mjs +0 -83
  38. package/esm2022/lib/features/dynamic-widgets/port-ranges/port-ranges.component.mjs +0 -100
  39. package/esm2022/lib/features/dynamic-widgets/protocol-address-port/protocol-address-port-input.component.mjs +0 -201
  40. package/esm2022/lib/features/dynamic-widgets/selector/selector-input.component.mjs +0 -166
  41. package/esm2022/lib/features/dynamic-widgets/string/string-input.component.mjs +0 -108
  42. package/esm2022/lib/features/dynamic-widgets/text-list/text-list-input.component.mjs +0 -126
  43. package/esm2022/lib/features/extendable/extendable.component.mjs +0 -55
  44. package/esm2022/lib/features/extendable/extensions-noop.service.mjs +0 -52
  45. package/esm2022/lib/features/header-bar/header-bar.component.mjs +0 -105
  46. package/esm2022/lib/features/json-view/json-view.component.mjs +0 -212
  47. package/esm2022/lib/features/list-page-features/list-page-form/list-page-form.component.mjs +0 -138
  48. package/esm2022/lib/features/list-page-features/list-page-header/list-page-header.component.mjs +0 -66
  49. package/esm2022/lib/features/loading-indicator/loading-indicator.component.mjs +0 -29
  50. package/esm2022/lib/features/login/login-dialog.component.mjs +0 -121
  51. package/esm2022/lib/features/messaging/growler.component.mjs +0 -62
  52. package/esm2022/lib/features/messaging/growler.model.mjs +0 -24
  53. package/esm2022/lib/features/messaging/growler.module.mjs +0 -34
  54. package/esm2022/lib/features/messaging/growler.service.mjs +0 -71
  55. package/esm2022/lib/features/messaging/logger.service.mjs +0 -174
  56. package/esm2022/lib/features/multi-action-button/multi-action-button.component.mjs +0 -30
  57. package/esm2022/lib/features/no-items/no-items.component.mjs +0 -46
  58. package/esm2022/lib/features/overrides/overrides.component.mjs +0 -118
  59. package/esm2022/lib/features/overrides/overrides.service.mjs +0 -114
  60. package/esm2022/lib/features/preview-list/preview-list.component.mjs +0 -151
  61. package/esm2022/lib/features/preview-selections/preview-selections.component.mjs +0 -114
  62. package/esm2022/lib/features/progress-meter/progress-meter.component.mjs +0 -43
  63. package/esm2022/lib/features/progress-wizard/progress-wizard.component.mjs +0 -90
  64. package/esm2022/lib/features/projectable-forms/api-session/api-session-form.component.mjs +0 -143
  65. package/esm2022/lib/features/projectable-forms/api-session/api-session-form.service.mjs +0 -118
  66. package/esm2022/lib/features/projectable-forms/auth-policy/auth-policy-form.component.mjs +0 -337
  67. package/esm2022/lib/features/projectable-forms/auth-policy/auth-policy-form.service.mjs +0 -114
  68. package/esm2022/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.mjs +0 -399
  69. package/esm2022/lib/features/projectable-forms/certificate-authority/certificate-authority-form.service.mjs +0 -95
  70. package/esm2022/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.mjs +0 -217
  71. package/esm2022/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.service.mjs +0 -54
  72. package/esm2022/lib/features/projectable-forms/config-type/config-type-form.component.mjs +0 -244
  73. package/esm2022/lib/features/projectable-forms/config-type/config-type-form.service.mjs +0 -92
  74. package/esm2022/lib/features/projectable-forms/configuration/configuration-form.component.mjs +0 -275
  75. package/esm2022/lib/features/projectable-forms/configuration/configuration.service.mjs +0 -137
  76. package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.component.mjs +0 -231
  77. package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.service.mjs +0 -118
  78. package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.mjs +0 -277
  79. package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.mjs +0 -188
  80. package/esm2022/lib/features/projectable-forms/form-field-container/form-field-container.component.mjs +0 -101
  81. package/esm2022/lib/features/projectable-forms/form-field-toggle/form-field-toggle.component.mjs +0 -54
  82. package/esm2022/lib/features/projectable-forms/form-header/form-header.component.mjs +0 -135
  83. package/esm2022/lib/features/projectable-forms/identity/identity-form.component.mjs +0 -471
  84. package/esm2022/lib/features/projectable-forms/identity/identity-form.service.mjs +0 -131
  85. package/esm2022/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.mjs +0 -533
  86. package/esm2022/lib/features/projectable-forms/jwt-signer/jwt-signer-form.service.mjs +0 -79
  87. package/esm2022/lib/features/projectable-forms/posture-check/posture-check-form.component.mjs +0 -437
  88. package/esm2022/lib/features/projectable-forms/posture-check/posture-check-form.service.mjs +0 -81
  89. package/esm2022/lib/features/projectable-forms/projectable-form.class.mjs +0 -315
  90. package/esm2022/lib/features/projectable-forms/service/service-form.component.mjs +0 -330
  91. package/esm2022/lib/features/projectable-forms/service/service-form.service.mjs +0 -591
  92. package/esm2022/lib/features/projectable-forms/service/simple-service/simple-service.component.mjs +0 -1036
  93. package/esm2022/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.mjs +0 -275
  94. package/esm2022/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.service.mjs +0 -172
  95. package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.component.mjs +0 -279
  96. package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.service.mjs +0 -230
  97. package/esm2022/lib/features/projectable-forms/session/session-form.component.mjs +0 -213
  98. package/esm2022/lib/features/projectable-forms/session/session-form.service.mjs +0 -84
  99. package/esm2022/lib/features/projectable-forms/terminator/terminator-form.component.mjs +0 -244
  100. package/esm2022/lib/features/projectable-forms/terminator/terminator-form.service.mjs +0 -130
  101. package/esm2022/lib/features/projectable-forms/transit-router/transit-router-form.component.mjs +0 -224
  102. package/esm2022/lib/features/projectable-forms/transit-router/transit-router-form.service.mjs +0 -118
  103. package/esm2022/lib/features/qr-code/qr-code.component.mjs +0 -166
  104. package/esm2022/lib/features/quick-add/quick-add.component.mjs +0 -50
  105. package/esm2022/lib/features/reset-enrollment/reset-enrollment.component.mjs +0 -86
  106. package/esm2022/lib/features/reset-enrollment/reset-enrollment.service.mjs +0 -61
  107. package/esm2022/lib/features/side-modal/side-modal.component.mjs +0 -45
  108. package/esm2022/lib/features/side-navigator/side-navigator.component.mjs +0 -127
  109. package/esm2022/lib/features/sidebars/side-navbar/side-navbar.component.mjs +0 -54
  110. package/esm2022/lib/features/tag-selector/tag-selector.component.mjs +0 -291
  111. package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.component.mjs +0 -586
  112. package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.helper.mjs +0 -373
  113. package/esm2022/lib/features/visualizer/network-visualizer/network-visualizer.component.mjs +0 -1706
  114. package/esm2022/lib/features/visualizer/network-visualizer/network-visualizer.helper.mjs +0 -591
  115. package/esm2022/lib/features/visualizer/network-visualizer/network-visualizer.treenodeprocessor.mjs +0 -883
  116. package/esm2022/lib/features/visualizer/visualizer-service.class.mjs +0 -32
  117. package/esm2022/lib/models/api-session.mjs +0 -7
  118. package/esm2022/lib/models/auth-policy.mjs +0 -31
  119. package/esm2022/lib/models/certificate-authority.mjs +0 -16
  120. package/esm2022/lib/models/config-type.mjs +0 -10
  121. package/esm2022/lib/models/config.mjs +0 -10
  122. package/esm2022/lib/models/edge-router-policy.mjs +0 -11
  123. package/esm2022/lib/models/edge-router.mjs +0 -13
  124. package/esm2022/lib/models/identity.mjs +0 -34
  125. package/esm2022/lib/models/jwt-signer.mjs +0 -20
  126. package/esm2022/lib/models/posture-check.mjs +0 -29
  127. package/esm2022/lib/models/service-edge-router-policy.mjs +0 -11
  128. package/esm2022/lib/models/service-policy.mjs +0 -13
  129. package/esm2022/lib/models/service.mjs +0 -12
  130. package/esm2022/lib/models/session.mjs +0 -7
  131. package/esm2022/lib/models/terminator.mjs +0 -14
  132. package/esm2022/lib/pages/api-sessions/api-sessions-page.component.mjs +0 -112
  133. package/esm2022/lib/pages/api-sessions/api-sessions-page.service.mjs +0 -235
  134. package/esm2022/lib/pages/attributes/attributes.component.mjs +0 -104
  135. package/esm2022/lib/pages/auth-policies/auth-policies-page.component.mjs +0 -120
  136. package/esm2022/lib/pages/auth-policies/auth-policies-page.service.mjs +0 -215
  137. package/esm2022/lib/pages/callback/callback.component.mjs +0 -155
  138. package/esm2022/lib/pages/certificate-authorities/certificate-authorities-page.component.mjs +0 -119
  139. package/esm2022/lib/pages/certificate-authorities/certificate-authorities-page.service.mjs +0 -240
  140. package/esm2022/lib/pages/config-types/config-types-page.component.mjs +0 -130
  141. package/esm2022/lib/pages/config-types/config-types-page.service.mjs +0 -134
  142. package/esm2022/lib/pages/configurations/configurations-page.component.mjs +0 -134
  143. package/esm2022/lib/pages/configurations/configurations-page.service.mjs +0 -251
  144. package/esm2022/lib/pages/edge-router-policies/edge-router-policies-page.component.mjs +0 -128
  145. package/esm2022/lib/pages/edge-router-policies/edge-router-policies-page.service.mjs +0 -407
  146. package/esm2022/lib/pages/edge-routers/edge-routers-page.component.mjs +0 -136
  147. package/esm2022/lib/pages/edge-routers/edge-routers-page.service.mjs +0 -354
  148. package/esm2022/lib/pages/geolocate/geolocate.component.mjs +0 -130
  149. package/esm2022/lib/pages/identities/identities-page.component.mjs +0 -221
  150. package/esm2022/lib/pages/identities/identities-page.service.mjs +0 -591
  151. package/esm2022/lib/pages/jwt-signers/jwt-signers-page.component.mjs +0 -160
  152. package/esm2022/lib/pages/jwt-signers/jwt-signers-page.service.mjs +0 -177
  153. package/esm2022/lib/pages/posture-checks/posture-checks-page.component.mjs +0 -103
  154. package/esm2022/lib/pages/posture-checks/posture-checks-page.service.mjs +0 -200
  155. package/esm2022/lib/pages/profile/profile.component.mjs +0 -58
  156. package/esm2022/lib/pages/service-edge-router-policies/service-edge-router-policies-page.component.mjs +0 -122
  157. package/esm2022/lib/pages/service-edge-router-policies/service-edge-router-policies-page.service.mjs +0 -367
  158. package/esm2022/lib/pages/service-policies/service-policies-page.component.mjs +0 -124
  159. package/esm2022/lib/pages/service-policies/service-policies-page.service.mjs +0 -446
  160. package/esm2022/lib/pages/services/services-page.component.mjs +0 -218
  161. package/esm2022/lib/pages/services/services-page.service.mjs +0 -378
  162. package/esm2022/lib/pages/sessions/sessions-page.component.mjs +0 -112
  163. package/esm2022/lib/pages/sessions/sessions-page.service.mjs +0 -228
  164. package/esm2022/lib/pages/settings/settings.component.mjs +0 -61
  165. package/esm2022/lib/pages/terminators/terminators-page.component.mjs +0 -97
  166. package/esm2022/lib/pages/terminators/terminators-page.service.mjs +0 -235
  167. package/esm2022/lib/pages/transit-routers/transit-routers-page.component.mjs +0 -129
  168. package/esm2022/lib/pages/transit-routers/transit-routers-page.service.mjs +0 -248
  169. package/esm2022/lib/safe.pipe.mjs +0 -18
  170. package/esm2022/lib/services/auth.service.mjs +0 -94
  171. package/esm2022/lib/services/console-events.service.mjs +0 -20
  172. package/esm2022/lib/services/csv-download.service.mjs +0 -91
  173. package/esm2022/lib/services/deactivate-guard.service.mjs +0 -17
  174. package/esm2022/lib/services/login-service.class.mjs +0 -47
  175. package/esm2022/lib/services/node-data.service.mjs +0 -397
  176. package/esm2022/lib/services/noop-login.service.mjs +0 -41
  177. package/esm2022/lib/services/schema.service.mjs +0 -807
  178. package/esm2022/lib/services/settings-service.class.mjs +0 -120
  179. package/esm2022/lib/services/settings.service.mjs +0 -203
  180. package/esm2022/lib/services/tab-name.service.mjs +0 -73
  181. package/esm2022/lib/services/validation.service.mjs +0 -156
  182. package/esm2022/lib/services/ziti-controller-data.service.mjs +0 -340
  183. package/esm2022/lib/services/ziti-data.service.mjs +0 -100
  184. package/esm2022/lib/services/ziti-domain-controller.service.mjs +0 -3
  185. package/esm2022/lib/shared/list-page-component.class.mjs +0 -186
  186. package/esm2022/lib/shared/list-page-service.class.mjs +0 -244
  187. package/esm2022/lib/urls.mjs +0 -34
  188. package/esm2022/lib/zac-routing.module.mjs +0 -34
  189. package/esm2022/lib/ziti-console-lib.module.mjs +0 -538
  190. package/esm2022/lib/ziti-console.constants.mjs +0 -20
  191. package/esm2022/openziti-ziti-console-lib.mjs +0 -5
  192. package/esm2022/public-api.mjs +0 -130
  193. package/lib/ZAC_VERSION.d.ts +0 -4
  194. package/lib/ZAC_VERSION.d.ts.map +0 -1
  195. package/lib/app.initializer.d.ts +0 -3
  196. package/lib/app.initializer.d.ts.map +0 -1
  197. package/lib/default-app-config.d.ts +0 -9
  198. package/lib/default-app-config.d.ts.map +0 -1
  199. package/lib/features/card/card.component.d.ts +0 -13
  200. package/lib/features/card/card.component.d.ts.map +0 -1
  201. package/lib/features/card-list/card-list.component.d.ts +0 -27
  202. package/lib/features/card-list/card-list.component.d.ts.map +0 -1
  203. package/lib/features/config-editor/config-editor.component.d.ts +0 -50
  204. package/lib/features/config-editor/config-editor.component.d.ts.map +0 -1
  205. package/lib/features/confirm/confirm.component.d.ts +0 -34
  206. package/lib/features/confirm/confirm.component.d.ts.map +0 -1
  207. package/lib/features/creation-summary-dialog/creation-summary-dialog.component.d.ts +0 -32
  208. package/lib/features/creation-summary-dialog/creation-summary-dialog.component.d.ts.map +0 -1
  209. package/lib/features/custom-tags/custom-tags.component.d.ts +0 -37
  210. package/lib/features/custom-tags/custom-tags.component.d.ts.map +0 -1
  211. package/lib/features/data-table/cells/table-cell-menu/table-cell-menu.component.d.ts +0 -16
  212. package/lib/features/data-table/cells/table-cell-menu/table-cell-menu.component.d.ts.map +0 -1
  213. package/lib/features/data-table/cells/table-cell-name/table-cell-name.component.d.ts +0 -20
  214. package/lib/features/data-table/cells/table-cell-name/table-cell-name.component.d.ts.map +0 -1
  215. package/lib/features/data-table/cells/table-cell-select/table-cell-select.component.d.ts +0 -15
  216. package/lib/features/data-table/cells/table-cell-select/table-cell-select.component.d.ts.map +0 -1
  217. package/lib/features/data-table/cells/table-cell-token/table-cell-token.component.d.ts +0 -22
  218. package/lib/features/data-table/cells/table-cell-token/table-cell-token.component.d.ts.map +0 -1
  219. package/lib/features/data-table/column-headers/table-column-default/table-column-default.component.d.ts +0 -52
  220. package/lib/features/data-table/column-headers/table-column-default/table-column-default.component.d.ts.map +0 -1
  221. package/lib/features/data-table/column-headers/table-column-filter/table-column-filter.component.d.ts +0 -27
  222. package/lib/features/data-table/column-headers/table-column-filter/table-column-filter.component.d.ts.map +0 -1
  223. package/lib/features/data-table/column-headers/table-column-menu/table-column-menu.component.d.ts +0 -19
  224. package/lib/features/data-table/column-headers/table-column-menu/table-column-menu.component.d.ts.map +0 -1
  225. package/lib/features/data-table/column-headers/table-column-select/table-column-select.component.d.ts +0 -15
  226. package/lib/features/data-table/column-headers/table-column-select/table-column-select.component.d.ts.map +0 -1
  227. package/lib/features/data-table/data-table-filter.service.d.ts +0 -37
  228. package/lib/features/data-table/data-table-filter.service.d.ts.map +0 -1
  229. package/lib/features/data-table/data-table.component.d.ts +0 -164
  230. package/lib/features/data-table/data-table.component.d.ts.map +0 -1
  231. package/lib/features/data-table/data-table.service.d.ts +0 -20
  232. package/lib/features/data-table/data-table.service.d.ts.map +0 -1
  233. package/lib/features/data-table/table-filter-bar/filter-bar.component.d.ts +0 -25
  234. package/lib/features/data-table/table-filter-bar/filter-bar.component.d.ts.map +0 -1
  235. package/lib/features/data-table/table-hidden-columns-bar/hidden-columns-bar.component.d.ts +0 -10
  236. package/lib/features/data-table/table-hidden-columns-bar/hidden-columns-bar.component.d.ts.map +0 -1
  237. package/lib/features/data-table/tooltips/os-tooltip.component.d.ts +0 -15
  238. package/lib/features/data-table/tooltips/os-tooltip.component.d.ts.map +0 -1
  239. package/lib/features/data-table/tooltips/sdk-tooltip.component.d.ts +0 -15
  240. package/lib/features/data-table/tooltips/sdk-tooltip.component.d.ts.map +0 -1
  241. package/lib/features/dynamic-widgets/boolean/boolean-toggle-input.component.d.ts +0 -19
  242. package/lib/features/dynamic-widgets/boolean/boolean-toggle-input.component.d.ts.map +0 -1
  243. package/lib/features/dynamic-widgets/checkbox-list/checkbox-list-input.component.d.ts +0 -28
  244. package/lib/features/dynamic-widgets/checkbox-list/checkbox-list-input.component.d.ts.map +0 -1
  245. package/lib/features/dynamic-widgets/forwarding-config/forwarding-config.component.d.ts +0 -50
  246. package/lib/features/dynamic-widgets/forwarding-config/forwarding-config.component.d.ts.map +0 -1
  247. package/lib/features/dynamic-widgets/forwarding-config/forwarding-config.service.d.ts +0 -14
  248. package/lib/features/dynamic-widgets/forwarding-config/forwarding-config.service.d.ts.map +0 -1
  249. package/lib/features/dynamic-widgets/number/number-input.component.d.ts +0 -23
  250. package/lib/features/dynamic-widgets/number/number-input.component.d.ts.map +0 -1
  251. package/lib/features/dynamic-widgets/object/object.component.d.ts +0 -26
  252. package/lib/features/dynamic-widgets/object/object.component.d.ts.map +0 -1
  253. package/lib/features/dynamic-widgets/password/password-input.component.d.ts +0 -24
  254. package/lib/features/dynamic-widgets/password/password-input.component.d.ts.map +0 -1
  255. package/lib/features/dynamic-widgets/port-ranges/port-ranges.component.d.ts +0 -22
  256. package/lib/features/dynamic-widgets/port-ranges/port-ranges.component.d.ts.map +0 -1
  257. package/lib/features/dynamic-widgets/protocol-address-port/protocol-address-port-input.component.d.ts +0 -60
  258. package/lib/features/dynamic-widgets/protocol-address-port/protocol-address-port-input.component.d.ts.map +0 -1
  259. package/lib/features/dynamic-widgets/selector/selector-input.component.d.ts +0 -30
  260. package/lib/features/dynamic-widgets/selector/selector-input.component.d.ts.map +0 -1
  261. package/lib/features/dynamic-widgets/string/string-input.component.d.ts +0 -27
  262. package/lib/features/dynamic-widgets/string/string-input.component.d.ts.map +0 -1
  263. package/lib/features/dynamic-widgets/text-list/text-list-input.component.d.ts +0 -26
  264. package/lib/features/dynamic-widgets/text-list/text-list-input.component.d.ts.map +0 -1
  265. package/lib/features/extendable/extendable.component.d.ts +0 -15
  266. package/lib/features/extendable/extendable.component.d.ts.map +0 -1
  267. package/lib/features/extendable/extensions-noop.service.d.ts +0 -35
  268. package/lib/features/extendable/extensions-noop.service.d.ts.map +0 -1
  269. package/lib/features/header-bar/header-bar.component.d.ts +0 -29
  270. package/lib/features/header-bar/header-bar.component.d.ts.map +0 -1
  271. package/lib/features/json-view/json-view.component.d.ts +0 -40
  272. package/lib/features/json-view/json-view.component.d.ts.map +0 -1
  273. package/lib/features/list-page-features/list-page-form/list-page-form.component.d.ts +0 -35
  274. package/lib/features/list-page-features/list-page-form/list-page-form.component.d.ts.map +0 -1
  275. package/lib/features/list-page-features/list-page-header/list-page-header.component.d.ts +0 -14
  276. package/lib/features/list-page-features/list-page-header/list-page-header.component.d.ts.map +0 -1
  277. package/lib/features/loading-indicator/loading-indicator.component.d.ts +0 -11
  278. package/lib/features/loading-indicator/loading-indicator.component.d.ts.map +0 -1
  279. package/lib/features/login/login-dialog.component.d.ts +0 -30
  280. package/lib/features/login/login-dialog.component.d.ts.map +0 -1
  281. package/lib/features/messaging/growler.component.d.ts +0 -19
  282. package/lib/features/messaging/growler.component.d.ts.map +0 -1
  283. package/lib/features/messaging/growler.model.d.ts +0 -8
  284. package/lib/features/messaging/growler.model.d.ts.map +0 -1
  285. package/lib/features/messaging/growler.module.d.ts +0 -10
  286. package/lib/features/messaging/growler.module.d.ts.map +0 -1
  287. package/lib/features/messaging/growler.service.d.ts +0 -18
  288. package/lib/features/messaging/growler.service.d.ts.map +0 -1
  289. package/lib/features/messaging/logger.service.d.ts +0 -27
  290. package/lib/features/messaging/logger.service.d.ts.map +0 -1
  291. package/lib/features/multi-action-button/multi-action-button.component.d.ts +0 -13
  292. package/lib/features/multi-action-button/multi-action-button.component.d.ts.map +0 -1
  293. package/lib/features/no-items/no-items.component.d.ts +0 -19
  294. package/lib/features/no-items/no-items.component.d.ts.map +0 -1
  295. package/lib/features/overrides/overrides.component.d.ts +0 -33
  296. package/lib/features/overrides/overrides.component.d.ts.map +0 -1
  297. package/lib/features/overrides/overrides.service.d.ts +0 -18
  298. package/lib/features/overrides/overrides.service.d.ts.map +0 -1
  299. package/lib/features/preview-list/preview-list.component.d.ts +0 -34
  300. package/lib/features/preview-list/preview-list.component.d.ts.map +0 -1
  301. package/lib/features/preview-selections/preview-selections.component.d.ts +0 -39
  302. package/lib/features/preview-selections/preview-selections.component.d.ts.map +0 -1
  303. package/lib/features/progress-meter/progress-meter.component.d.ts +0 -19
  304. package/lib/features/progress-meter/progress-meter.component.d.ts.map +0 -1
  305. package/lib/features/progress-wizard/progress-wizard.component.d.ts +0 -31
  306. package/lib/features/progress-wizard/progress-wizard.component.d.ts.map +0 -1
  307. package/lib/features/projectable-forms/api-session/api-session-form.component.d.ts +0 -50
  308. package/lib/features/projectable-forms/api-session/api-session-form.component.d.ts.map +0 -1
  309. package/lib/features/projectable-forms/api-session/api-session-form.service.d.ts +0 -27
  310. package/lib/features/projectable-forms/api-session/api-session-form.service.d.ts.map +0 -1
  311. package/lib/features/projectable-forms/auth-policy/auth-policy-form.component.d.ts +0 -74
  312. package/lib/features/projectable-forms/auth-policy/auth-policy-form.component.d.ts.map +0 -1
  313. package/lib/features/projectable-forms/auth-policy/auth-policy-form.service.d.ts +0 -38
  314. package/lib/features/projectable-forms/auth-policy/auth-policy-form.service.d.ts.map +0 -1
  315. package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.d.ts +0 -80
  316. package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.d.ts.map +0 -1
  317. package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.service.d.ts +0 -37
  318. package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.service.d.ts.map +0 -1
  319. package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.d.ts +0 -62
  320. package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.d.ts.map +0 -1
  321. package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.service.d.ts +0 -28
  322. package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.service.d.ts.map +0 -1
  323. package/lib/features/projectable-forms/config-type/config-type-form.component.d.ts +0 -63
  324. package/lib/features/projectable-forms/config-type/config-type-form.component.d.ts.map +0 -1
  325. package/lib/features/projectable-forms/config-type/config-type-form.service.d.ts +0 -27
  326. package/lib/features/projectable-forms/config-type/config-type-form.service.d.ts.map +0 -1
  327. package/lib/features/projectable-forms/configuration/configuration-form.component.d.ts +0 -62
  328. package/lib/features/projectable-forms/configuration/configuration-form.component.d.ts.map +0 -1
  329. package/lib/features/projectable-forms/configuration/configuration.service.d.ts +0 -33
  330. package/lib/features/projectable-forms/configuration/configuration.service.d.ts.map +0 -1
  331. package/lib/features/projectable-forms/edge-router/edge-router-form.component.d.ts +0 -53
  332. package/lib/features/projectable-forms/edge-router/edge-router-form.component.d.ts.map +0 -1
  333. package/lib/features/projectable-forms/edge-router/edge-router-form.service.d.ts +0 -29
  334. package/lib/features/projectable-forms/edge-router/edge-router-form.service.d.ts.map +0 -1
  335. package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.d.ts +0 -54
  336. package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.d.ts.map +0 -1
  337. package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.d.ts +0 -40
  338. package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.d.ts.map +0 -1
  339. package/lib/features/projectable-forms/form-field-container/form-field-container.component.d.ts +0 -29
  340. package/lib/features/projectable-forms/form-field-container/form-field-container.component.d.ts.map +0 -1
  341. package/lib/features/projectable-forms/form-field-toggle/form-field-toggle.component.d.ts +0 -15
  342. package/lib/features/projectable-forms/form-field-toggle/form-field-toggle.component.d.ts.map +0 -1
  343. package/lib/features/projectable-forms/form-header/form-header.component.d.ts +0 -38
  344. package/lib/features/projectable-forms/form-header/form-header.component.d.ts.map +0 -1
  345. package/lib/features/projectable-forms/identity/identity-form.component.d.ts +0 -93
  346. package/lib/features/projectable-forms/identity/identity-form.component.d.ts.map +0 -1
  347. package/lib/features/projectable-forms/identity/identity-form.service.d.ts +0 -20
  348. package/lib/features/projectable-forms/identity/identity-form.service.d.ts.map +0 -1
  349. package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.d.ts +0 -97
  350. package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.d.ts.map +0 -1
  351. package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.service.d.ts +0 -21
  352. package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.service.d.ts.map +0 -1
  353. package/lib/features/projectable-forms/posture-check/posture-check-form.component.d.ts +0 -134
  354. package/lib/features/projectable-forms/posture-check/posture-check-form.component.d.ts.map +0 -1
  355. package/lib/features/projectable-forms/posture-check/posture-check-form.service.d.ts +0 -23
  356. package/lib/features/projectable-forms/posture-check/posture-check-form.service.d.ts.map +0 -1
  357. package/lib/features/projectable-forms/projectable-form.class.d.ts +0 -92
  358. package/lib/features/projectable-forms/projectable-form.class.d.ts.map +0 -1
  359. package/lib/features/projectable-forms/service/service-form.component.d.ts +0 -70
  360. package/lib/features/projectable-forms/service/service-form.component.d.ts.map +0 -1
  361. package/lib/features/projectable-forms/service/service-form.service.d.ts +0 -123
  362. package/lib/features/projectable-forms/service/service-form.service.d.ts.map +0 -1
  363. package/lib/features/projectable-forms/service/simple-service/simple-service.component.d.ts +0 -173
  364. package/lib/features/projectable-forms/service/simple-service/simple-service.component.d.ts.map +0 -1
  365. package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.d.ts +0 -53
  366. package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.d.ts.map +0 -1
  367. package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.service.d.ts +0 -38
  368. package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.service.d.ts.map +0 -1
  369. package/lib/features/projectable-forms/service-policy/service-policy-form.component.d.ts +0 -55
  370. package/lib/features/projectable-forms/service-policy/service-policy-form.component.d.ts.map +0 -1
  371. package/lib/features/projectable-forms/service-policy/service-policy-form.service.d.ts +0 -48
  372. package/lib/features/projectable-forms/service-policy/service-policy-form.service.d.ts.map +0 -1
  373. package/lib/features/projectable-forms/session/session-form.component.d.ts +0 -63
  374. package/lib/features/projectable-forms/session/session-form.component.d.ts.map +0 -1
  375. package/lib/features/projectable-forms/session/session-form.service.d.ts +0 -23
  376. package/lib/features/projectable-forms/session/session-form.service.d.ts.map +0 -1
  377. package/lib/features/projectable-forms/terminator/terminator-form.component.d.ts +0 -58
  378. package/lib/features/projectable-forms/terminator/terminator-form.component.d.ts.map +0 -1
  379. package/lib/features/projectable-forms/terminator/terminator-form.service.d.ts +0 -33
  380. package/lib/features/projectable-forms/terminator/terminator-form.service.d.ts.map +0 -1
  381. package/lib/features/projectable-forms/transit-router/transit-router-form.component.d.ts +0 -50
  382. package/lib/features/projectable-forms/transit-router/transit-router-form.component.d.ts.map +0 -1
  383. package/lib/features/projectable-forms/transit-router/transit-router-form.service.d.ts +0 -27
  384. package/lib/features/projectable-forms/transit-router/transit-router-form.service.d.ts.map +0 -1
  385. package/lib/features/qr-code/qr-code.component.d.ts +0 -45
  386. package/lib/features/qr-code/qr-code.component.d.ts.map +0 -1
  387. package/lib/features/quick-add/quick-add.component.d.ts +0 -15
  388. package/lib/features/quick-add/quick-add.component.d.ts.map +0 -1
  389. package/lib/features/reset-enrollment/reset-enrollment.component.d.ts +0 -27
  390. package/lib/features/reset-enrollment/reset-enrollment.component.d.ts.map +0 -1
  391. package/lib/features/reset-enrollment/reset-enrollment.service.d.ts +0 -13
  392. package/lib/features/reset-enrollment/reset-enrollment.service.d.ts.map +0 -1
  393. package/lib/features/side-modal/side-modal.component.d.ts +0 -15
  394. package/lib/features/side-modal/side-modal.component.d.ts.map +0 -1
  395. package/lib/features/side-navigator/side-navigator.component.d.ts +0 -33
  396. package/lib/features/side-navigator/side-navigator.component.d.ts.map +0 -1
  397. package/lib/features/sidebars/side-navbar/side-navbar.component.d.ts +0 -16
  398. package/lib/features/sidebars/side-navbar/side-navbar.component.d.ts.map +0 -1
  399. package/lib/features/tag-selector/tag-selector.component.d.ts +0 -59
  400. package/lib/features/tag-selector/tag-selector.component.d.ts.map +0 -1
  401. package/lib/features/visualizer/identity-service-path/identity-service-path.component.d.ts +0 -54
  402. package/lib/features/visualizer/identity-service-path/identity-service-path.component.d.ts.map +0 -1
  403. package/lib/features/visualizer/identity-service-path/identity-service-path.helper.d.ts +0 -21
  404. package/lib/features/visualizer/identity-service-path/identity-service-path.helper.d.ts.map +0 -1
  405. package/lib/features/visualizer/network-visualizer/network-visualizer.component.d.ts +0 -146
  406. package/lib/features/visualizer/network-visualizer/network-visualizer.component.d.ts.map +0 -1
  407. package/lib/features/visualizer/network-visualizer/network-visualizer.helper.d.ts +0 -172
  408. package/lib/features/visualizer/network-visualizer/network-visualizer.helper.d.ts.map +0 -1
  409. package/lib/features/visualizer/network-visualizer/network-visualizer.treenodeprocessor.d.ts +0 -35
  410. package/lib/features/visualizer/network-visualizer/network-visualizer.treenodeprocessor.d.ts.map +0 -1
  411. package/lib/features/visualizer/visualizer-service.class.d.ts +0 -10
  412. package/lib/features/visualizer/visualizer-service.class.d.ts.map +0 -1
  413. package/lib/models/api-session.d.ts +0 -18
  414. package/lib/models/api-session.d.ts.map +0 -1
  415. package/lib/models/auth-policy.d.ts +0 -8
  416. package/lib/models/auth-policy.d.ts.map +0 -1
  417. package/lib/models/certificate-authority.d.ts +0 -14
  418. package/lib/models/certificate-authority.d.ts.map +0 -1
  419. package/lib/models/config-type.d.ts +0 -7
  420. package/lib/models/config-type.d.ts.map +0 -1
  421. package/lib/models/config.d.ts +0 -7
  422. package/lib/models/config.d.ts.map +0 -1
  423. package/lib/models/edge-router-policy.d.ts +0 -8
  424. package/lib/models/edge-router-policy.d.ts.map +0 -1
  425. package/lib/models/edge-router.d.ts +0 -10
  426. package/lib/models/edge-router.d.ts.map +0 -1
  427. package/lib/models/identity.d.ts +0 -16
  428. package/lib/models/identity.d.ts.map +0 -1
  429. package/lib/models/jwt-signer.d.ts +0 -17
  430. package/lib/models/jwt-signer.d.ts.map +0 -1
  431. package/lib/models/posture-check.d.ts +0 -17
  432. package/lib/models/posture-check.d.ts.map +0 -1
  433. package/lib/models/service-edge-router-policy.d.ts +0 -8
  434. package/lib/models/service-edge-router-policy.d.ts.map +0 -1
  435. package/lib/models/service-policy.d.ts +0 -10
  436. package/lib/models/service-policy.d.ts.map +0 -1
  437. package/lib/models/service.d.ts +0 -9
  438. package/lib/models/service.d.ts.map +0 -1
  439. package/lib/models/session.d.ts +0 -17
  440. package/lib/models/session.d.ts.map +0 -1
  441. package/lib/models/terminator.d.ts +0 -11
  442. package/lib/models/terminator.d.ts.map +0 -1
  443. package/lib/pages/api-sessions/api-sessions-page.component.d.ts +0 -30
  444. package/lib/pages/api-sessions/api-sessions-page.component.d.ts.map +0 -1
  445. package/lib/pages/api-sessions/api-sessions-page.service.d.ts +0 -31
  446. package/lib/pages/api-sessions/api-sessions-page.service.d.ts.map +0 -1
  447. package/lib/pages/attributes/attributes.component.d.ts +0 -31
  448. package/lib/pages/attributes/attributes.component.d.ts.map +0 -1
  449. package/lib/pages/auth-policies/auth-policies-page.component.d.ts +0 -29
  450. package/lib/pages/auth-policies/auth-policies-page.component.d.ts.map +0 -1
  451. package/lib/pages/auth-policies/auth-policies-page.service.d.ts +0 -34
  452. package/lib/pages/auth-policies/auth-policies-page.service.d.ts.map +0 -1
  453. package/lib/pages/callback/callback.component.d.ts +0 -22
  454. package/lib/pages/callback/callback.component.d.ts.map +0 -1
  455. package/lib/pages/certificate-authorities/certificate-authorities-page.component.d.ts +0 -30
  456. package/lib/pages/certificate-authorities/certificate-authorities-page.component.d.ts.map +0 -1
  457. package/lib/pages/certificate-authorities/certificate-authorities-page.service.d.ts +0 -35
  458. package/lib/pages/certificate-authorities/certificate-authorities-page.service.d.ts.map +0 -1
  459. package/lib/pages/config-types/config-types-page.component.d.ts +0 -31
  460. package/lib/pages/config-types/config-types-page.component.d.ts.map +0 -1
  461. package/lib/pages/config-types/config-types-page.service.d.ts +0 -29
  462. package/lib/pages/config-types/config-types-page.service.d.ts.map +0 -1
  463. package/lib/pages/configurations/configurations-page.component.d.ts +0 -30
  464. package/lib/pages/configurations/configurations-page.component.d.ts.map +0 -1
  465. package/lib/pages/configurations/configurations-page.service.d.ts +0 -80
  466. package/lib/pages/configurations/configurations-page.service.d.ts.map +0 -1
  467. package/lib/pages/edge-router-policies/edge-router-policies-page.component.d.ts +0 -33
  468. package/lib/pages/edge-router-policies/edge-router-policies-page.component.d.ts.map +0 -1
  469. package/lib/pages/edge-router-policies/edge-router-policies-page.service.d.ts +0 -63
  470. package/lib/pages/edge-router-policies/edge-router-policies-page.service.d.ts.map +0 -1
  471. package/lib/pages/edge-routers/edge-routers-page.component.d.ts +0 -36
  472. package/lib/pages/edge-routers/edge-routers-page.component.d.ts.map +0 -1
  473. package/lib/pages/edge-routers/edge-routers-page.service.d.ts +0 -51
  474. package/lib/pages/edge-routers/edge-routers-page.service.d.ts.map +0 -1
  475. package/lib/pages/geolocate/geolocate.component.d.ts +0 -32
  476. package/lib/pages/geolocate/geolocate.component.d.ts.map +0 -1
  477. package/lib/pages/identities/identities-page.component.d.ts +0 -40
  478. package/lib/pages/identities/identities-page.component.d.ts.map +0 -1
  479. package/lib/pages/identities/identities-page.service.d.ts +0 -64
  480. package/lib/pages/identities/identities-page.service.d.ts.map +0 -1
  481. package/lib/pages/jwt-signers/jwt-signers-page.component.d.ts +0 -34
  482. package/lib/pages/jwt-signers/jwt-signers-page.component.d.ts.map +0 -1
  483. package/lib/pages/jwt-signers/jwt-signers-page.service.d.ts +0 -31
  484. package/lib/pages/jwt-signers/jwt-signers-page.service.d.ts.map +0 -1
  485. package/lib/pages/posture-checks/posture-checks-page.component.d.ts +0 -29
  486. package/lib/pages/posture-checks/posture-checks-page.component.d.ts.map +0 -1
  487. package/lib/pages/posture-checks/posture-checks-page.service.d.ts +0 -28
  488. package/lib/pages/posture-checks/posture-checks-page.service.d.ts.map +0 -1
  489. package/lib/pages/profile/profile.component.d.ts +0 -17
  490. package/lib/pages/profile/profile.component.d.ts.map +0 -1
  491. package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.component.d.ts +0 -33
  492. package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.component.d.ts.map +0 -1
  493. package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.service.d.ts +0 -57
  494. package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.service.d.ts.map +0 -1
  495. package/lib/pages/service-policies/service-policies-page.component.d.ts +0 -34
  496. package/lib/pages/service-policies/service-policies-page.component.d.ts.map +0 -1
  497. package/lib/pages/service-policies/service-policies-page.service.d.ts +0 -63
  498. package/lib/pages/service-policies/service-policies-page.service.d.ts.map +0 -1
  499. package/lib/pages/services/services-page.component.d.ts +0 -42
  500. package/lib/pages/services/services-page.component.d.ts.map +0 -1
  501. package/lib/pages/services/services-page.service.d.ts +0 -69
  502. package/lib/pages/services/services-page.service.d.ts.map +0 -1
  503. package/lib/pages/sessions/sessions-page.component.d.ts +0 -30
  504. package/lib/pages/sessions/sessions-page.component.d.ts.map +0 -1
  505. package/lib/pages/sessions/sessions-page.service.d.ts +0 -30
  506. package/lib/pages/sessions/sessions-page.service.d.ts.map +0 -1
  507. package/lib/pages/settings/settings.component.d.ts +0 -23
  508. package/lib/pages/settings/settings.component.d.ts.map +0 -1
  509. package/lib/pages/terminators/terminators-page.component.d.ts +0 -29
  510. package/lib/pages/terminators/terminators-page.component.d.ts.map +0 -1
  511. package/lib/pages/terminators/terminators-page.service.d.ts +0 -32
  512. package/lib/pages/terminators/terminators-page.service.d.ts.map +0 -1
  513. package/lib/pages/transit-routers/transit-routers-page.component.d.ts +0 -35
  514. package/lib/pages/transit-routers/transit-routers-page.component.d.ts.map +0 -1
  515. package/lib/pages/transit-routers/transit-routers-page.service.d.ts +0 -50
  516. package/lib/pages/transit-routers/transit-routers-page.service.d.ts.map +0 -1
  517. package/lib/safe.pipe.d.ts +0 -11
  518. package/lib/safe.pipe.d.ts.map +0 -1
  519. package/lib/services/auth.service.d.ts +0 -21
  520. package/lib/services/auth.service.d.ts.map +0 -1
  521. package/lib/services/console-events.service.d.ts +0 -12
  522. package/lib/services/console-events.service.d.ts.map +0 -1
  523. package/lib/services/csv-download.service.d.ts +0 -11
  524. package/lib/services/csv-download.service.d.ts.map +0 -1
  525. package/lib/services/deactivate-guard.service.d.ts +0 -14
  526. package/lib/services/deactivate-guard.service.d.ts.map +0 -1
  527. package/lib/services/login-service.class.d.ts +0 -30
  528. package/lib/services/login-service.class.d.ts.map +0 -1
  529. package/lib/services/node-data.service.d.ts +0 -38
  530. package/lib/services/node-data.service.d.ts.map +0 -1
  531. package/lib/services/noop-login.service.d.ts +0 -22
  532. package/lib/services/noop-login.service.d.ts.map +0 -1
  533. package/lib/services/schema.service.d.ts +0 -63
  534. package/lib/services/schema.service.d.ts.map +0 -1
  535. package/lib/services/settings-service.class.d.ts +0 -36
  536. package/lib/services/settings-service.class.d.ts.map +0 -1
  537. package/lib/services/settings.service.d.ts +0 -20
  538. package/lib/services/settings.service.d.ts.map +0 -1
  539. package/lib/services/tab-name.service.d.ts +0 -20
  540. package/lib/services/tab-name.service.d.ts.map +0 -1
  541. package/lib/services/validation.service.d.ts +0 -20
  542. package/lib/services/validation.service.d.ts.map +0 -1
  543. package/lib/services/ziti-controller-data.service.d.ts +0 -36
  544. package/lib/services/ziti-controller-data.service.d.ts.map +0 -1
  545. package/lib/services/ziti-data.service.d.ts +0 -49
  546. package/lib/services/ziti-data.service.d.ts.map +0 -1
  547. package/lib/services/ziti-domain-controller.service.d.ts +0 -13
  548. package/lib/services/ziti-domain-controller.service.d.ts.map +0 -1
  549. package/lib/shared/list-page-component.class.d.ts +0 -57
  550. package/lib/shared/list-page-component.class.d.ts.map +0 -1
  551. package/lib/shared/list-page-service.class.d.ts +0 -81
  552. package/lib/shared/list-page-service.class.d.ts.map +0 -1
  553. package/lib/urls.d.ts +0 -34
  554. package/lib/urls.d.ts.map +0 -1
  555. package/lib/zac-routing.module.d.ts +0 -8
  556. package/lib/zac-routing.module.d.ts.map +0 -1
  557. package/lib/ziti-console-lib.module.d.ts +0 -121
  558. package/lib/ziti-console-lib.module.d.ts.map +0 -1
  559. package/lib/ziti-console.constants.d.ts +0 -5
  560. package/lib/ziti-console.constants.d.ts.map +0 -1
  561. package/openziti-ziti-console-lib.d.ts.map +0 -1
  562. package/public-api.d.ts +0 -127
  563. package/public-api.d.ts.map +0 -1
@@ -1,340 +0,0 @@
1
- /*
2
- Copyright NetFoundry Inc.
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- https://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- */
16
- import { Injectable, Inject } from '@angular/core';
17
- import { SETTINGS_SERVICE } from "./settings.service";
18
- import { firstValueFrom, map } from "rxjs";
19
- import { catchError } from "rxjs/operators";
20
- import { ZitiDataService } from "./ziti-data.service";
21
- import { isEmpty, isArray, isNumber, isBoolean } from "lodash";
22
- import { Resolver } from "@stoplight/json-ref-resolver";
23
- import moment from "moment";
24
- import * as i0 from "@angular/core";
25
- import * as i1 from "../features/messaging/logger.service";
26
- import * as i2 from "../features/messaging/growler.service";
27
- import * as i3 from "@angular/common/http";
28
- import * as i4 from "@angular/router";
29
- import * as i5 from "./settings.service";
30
- export class ZitiControllerDataService extends ZitiDataService {
31
- constructor(logger, growler, settingsService, httpClient, router) {
32
- super(logger, growler, settingsService, httpClient, router);
33
- this.logger = logger;
34
- this.growler = growler;
35
- this.httpClient = httpClient;
36
- this.router = router;
37
- }
38
- post(type, model, chained = false, contentType) {
39
- const apiVersions = this.settingsService.apiVersions || {};
40
- const prefix = apiVersions["edge-management"]?.v1?.path;
41
- const url = this.settingsService.settings.selectedEdgeController;
42
- const serviceUrl = url + prefix + "/" + type;
43
- let options = {};
44
- if (contentType) {
45
- const headers = {
46
- 'Content-Type': contentType
47
- };
48
- options = { headers };
49
- }
50
- return firstValueFrom(this.httpClient.post(serviceUrl, model, options).pipe(catchError((err) => {
51
- const error = "Server Not Accessible";
52
- if (err.code !== "ECONNREFUSED")
53
- throw (err);
54
- throw ({ error: error });
55
- }), map((result) => {
56
- return result;
57
- })));
58
- }
59
- put(type, model, id, chained = false) {
60
- const apiVersions = this.settingsService.apiVersions || {};
61
- const prefix = apiVersions["edge-management"]?.v1?.path || '/edge/management/v1';
62
- const url = this.settingsService.settings.selectedEdgeController;
63
- const serviceUrl = url + prefix + "/" + type + '/' + id;
64
- this.httpClient.patch(serviceUrl, model, {});
65
- return firstValueFrom(this.httpClient.put(serviceUrl, model, {}).pipe(catchError((err) => {
66
- const error = "Server Not Accessible";
67
- if (err.code !== "ECONNREFUSED")
68
- throw (err);
69
- throw ({ error: error });
70
- }), map((result) => {
71
- return result;
72
- })));
73
- }
74
- patch(type, model, id, chained = false) {
75
- const apiVersions = this.settingsService.apiVersions || {};
76
- const prefix = apiVersions["edge-management"]?.v1?.path || '/edge/management/v1';
77
- const url = this.settingsService.settings.selectedEdgeController;
78
- const serviceUrl = url + prefix + "/" + type + '/' + id;
79
- this.httpClient.patch(serviceUrl, model, {});
80
- return firstValueFrom(this.httpClient.patch(serviceUrl, model, {}).pipe(catchError((err) => {
81
- const error = "Server Not Accessible";
82
- if (err.code !== "ECONNREFUSED")
83
- throw (err);
84
- throw ({ error: error });
85
- }), map((result) => {
86
- return result;
87
- })));
88
- }
89
- get(type, paging, filters = [], url, useClient) {
90
- const apiVersions = this.settingsService.apiVersions || {};
91
- const managementUrl = apiVersions["edge-management"]?.v1?.path || '/edge/management/v1';
92
- const clientUrl = '/edge/client/v1';
93
- const prefix = useClient ? clientUrl : managementUrl;
94
- url = this.settingsService.settings.selectedEdgeController;
95
- const urlFilter = this.getUrlFilter(paging, filters);
96
- const serviceUrl = url + prefix + "/" + type + urlFilter;
97
- return firstValueFrom(this.httpClient.get(serviceUrl, {}).pipe(catchError((err) => {
98
- const error = "Server Not Accessible";
99
- if (err.code != "ECONNREFUSED")
100
- throw ({ error: err.code });
101
- throw ({ error: error });
102
- }), map((results) => {
103
- return results;
104
- })));
105
- }
106
- getSubdata(entityType, id, dataType, paging, contentType, filters = []) {
107
- const apiVersions = this.settingsService.apiVersions || {};
108
- const prefix = apiVersions["edge-management"]?.v1?.path || '/edge/management/v1';
109
- let urlFilter = '';
110
- if (!isEmpty(paging)) {
111
- urlFilter = this.getUrlFilter(paging, filters);
112
- }
113
- const url = this.settingsService.settings.selectedEdgeController + `${prefix}/${entityType}/${id}/${dataType}/${urlFilter}`;
114
- let options = {};
115
- if (contentType) {
116
- const headers = {
117
- 'Accept': contentType,
118
- 'Content-Type': contentType
119
- };
120
- options = { headers };
121
- if (contentType.indexOf('application/jwt') >= 0) {
122
- options.responseType = 'text';
123
- }
124
- }
125
- return firstValueFrom(this.httpClient.get(url, options).pipe(catchError((err) => {
126
- const error = "Server Not Accessible";
127
- if (err.code != "ECONNREFUSED")
128
- throw ({ error: err.code });
129
- throw ({ error: error });
130
- })));
131
- }
132
- saveSubdata(entityType, id, dataType, params) {
133
- const apiVersions = this.settingsService.apiVersions || {};
134
- const prefix = apiVersions["edge-management"]?.v1?.path || '/edge/management/v1';
135
- const url = this.settingsService.settings.selectedEdgeController + `${prefix}/${entityType}/${id}/${dataType}`;
136
- return firstValueFrom(this.httpClient.post(url, params, {}).pipe(catchError((err) => {
137
- const error = "Server Not Accessible";
138
- if (err.code != "ECONNREFUSED")
139
- throw ({ error: err.code });
140
- throw ({ error: error });
141
- })));
142
- }
143
- deleteSubdata(entityType, id, dataType, params) {
144
- const apiVersions = this.settingsService.apiVersions || {};
145
- const prefix = apiVersions["edge-management"]?.v1?.path || '/edge/management/v1';
146
- const url = this.settingsService.settings.selectedEdgeController + `${prefix}/${entityType}/${id}/${dataType}`;
147
- return firstValueFrom(this.httpClient.delete(url, { body: params }).pipe(catchError((err) => {
148
- const error = "Server Not Accessible";
149
- if (err.code != "ECONNREFUSED")
150
- throw ({ error: err.code });
151
- throw ({ error: error });
152
- })));
153
- }
154
- resetEnrollment(id, date) {
155
- const apiVersions = this.settingsService.apiVersions || {};
156
- const prefix = apiVersions["edge-management"]?.v1?.path || '/edge/management/v1';
157
- const url = this.settingsService.settings.selectedEdgeController + `${prefix}/authenticators/${id.trim()}/re-enroll`;
158
- const expiresAt = moment(date).utc().toISOString();
159
- const body = { expiresAt: expiresAt };
160
- return firstValueFrom(this.httpClient.post(url, body).pipe(catchError((err) => {
161
- const error = "Server Not Accessible";
162
- if (err.code != "ECONNREFUSED")
163
- throw ({ error: err.code });
164
- throw ({ error: error });
165
- })));
166
- }
167
- deleteEnrollment(enrollmentId) {
168
- const apiVersions = this.settingsService.apiVersions || {};
169
- const prefix = apiVersions["edge-management"]?.v1?.path || '/edge/management/v1';
170
- const url = this.settingsService.settings.selectedEdgeController + `${prefix}/enrollments/${enrollmentId}`;
171
- return firstValueFrom(this.httpClient.delete(url).pipe(catchError((err) => {
172
- const error = "Server Not Accessible";
173
- if (err.code != "ECONNREFUSED")
174
- throw ({ error: err.code });
175
- throw ({ error: error });
176
- })));
177
- }
178
- reissueEnrollment(id, date) {
179
- const apiVersions = this.settingsService.apiVersions || {};
180
- const prefix = apiVersions["edge-management"]?.v1?.path || '/edge/management/v1';
181
- const url = this.settingsService.settings.selectedEdgeController + `${prefix}/enrollments/${id}/refresh`;
182
- const expiresAt = moment(date).utc().toISOString();
183
- const body = { expiresAt: expiresAt };
184
- return firstValueFrom(this.httpClient.post(url, body).pipe(catchError((err) => {
185
- const error = "Server Not Accessible";
186
- if (err.code != "ECONNREFUSED")
187
- throw ({ error: err.code });
188
- throw ({ error: error });
189
- })));
190
- }
191
- resetMFA(id) {
192
- const apiVersions = this.settingsService.apiVersions || {};
193
- const prefix = apiVersions["edge-management"]?.v1?.path || '/edge/management/v1';
194
- const url = this.settingsService.settings.selectedEdgeController + `${prefix}/identities/${id}/mfa`;
195
- return firstValueFrom(this.httpClient.delete(url).pipe(catchError((err) => {
196
- const error = "Server Not Accessible";
197
- if (err.code != "ECONNREFUSED")
198
- throw ({ error: err.code });
199
- throw ({ error: error });
200
- })));
201
- }
202
- resetPassword(oldPass, newPass, confirmPass) {
203
- const apiVersions = this.settingsService.apiVersions || {};
204
- const prefix = apiVersions["edge-management"]?.v1?.path || '/edge/management/v1';
205
- const authenticatorsUrl = this.settingsService.settings.selectedEdgeController + `${prefix}/current-identity/authenticators?filter=method=\"updb\"`;
206
- return firstValueFrom(this.httpClient.get(authenticatorsUrl)).then((authenticatorResult) => {
207
- const id = authenticatorResult?.data[0].id;
208
- const username = authenticatorResult.data[0].username;
209
- const params = {
210
- currentPassword: oldPass,
211
- password: newPass,
212
- username: username
213
- };
214
- const resetUrl = this.settingsService.settings.selectedEdgeController + `${prefix}/current-identity/authenticators/${id}`;
215
- return firstValueFrom(this.httpClient.put(resetUrl, params));
216
- });
217
- }
218
- delete(type, id) {
219
- const apiVersions = this.settingsService.apiVersions || {};
220
- const prefix = apiVersions["edge-management"]?.v1?.path;
221
- const url = this.settingsService.settings.selectedEdgeController;
222
- const serviceUrl = url + prefix + "/" + type + '/' + id;
223
- return firstValueFrom(this.httpClient.delete(serviceUrl, {}).pipe(catchError((err) => {
224
- const error = "Server Not Accessible";
225
- if (err.code != "ECONNREFUSED")
226
- throw err;
227
- throw ({ error: error });
228
- }), map((results) => {
229
- return results;
230
- })));
231
- }
232
- call(callUrl) {
233
- const apiVersions = this.settingsService.apiVersions || {};
234
- const prefix = apiVersions["edge-management"]?.v1?.path;
235
- const url = this.settingsService.settings.selectedEdgeController;
236
- const serviceUrl = url + prefix + "/" + callUrl;
237
- return firstValueFrom(this.httpClient.get(serviceUrl, {}).pipe(catchError((err) => {
238
- const error = "Server Not Accessible";
239
- if (err.code != "ECONNREFUSED")
240
- throw ({ error: err.code });
241
- throw ({ error: error });
242
- }), map((results) => {
243
- return results;
244
- })));
245
- }
246
- getUrlFilter(paging, filters) {
247
- let urlFilter = '';
248
- let toSearchOn = "name";
249
- let noSearch = filters?.length <= 0;
250
- if (isEmpty(paging)) {
251
- paging = this.DEFAULT_PAGING;
252
- }
253
- if (paging && paging.sort != null) {
254
- if (paging.searchOn)
255
- toSearchOn = paging.searchOn;
256
- if (paging.noSearch)
257
- noSearch = true;
258
- if (!paging.filter)
259
- paging.filter = "";
260
- if (!isArray(paging.filter) && isNaN(paging.filter)) {
261
- paging.filter = paging.filter.split('#').join('');
262
- }
263
- }
264
- filters.forEach((filter, index) => {
265
- let filterVal = '';
266
- switch (filter.type) {
267
- case 'TEXTINPUT':
268
- const verb = filter.verb ? filter.verb : 'icontains';
269
- filterVal = `${filter.columnId} ${verb} "${filter.value}"`;
270
- break;
271
- case 'SELECT':
272
- case 'COMBO':
273
- const val = (isNumber(filter.value) || isBoolean(filter.value)) ? `${filter.value}` : `"${filter.value}"`;
274
- filterVal = `${filter.columnId} = ${val}`;
275
- break;
276
- case 'DATETIME':
277
- filterVal = `${filter.columnId} >= datetime(${filter.value[0]}) and ${filter.columnId} <= datetime(${filter.value[1]})`;
278
- break;
279
- case 'ATTRIBUTE':
280
- filterVal = this.getAttributeFilter(filter.value, filter.columnId, filter.semantic);
281
- break;
282
- case 'BOOLEAN':
283
- filterVal = `${filter.columnId}=${filter.value}`;
284
- break;
285
- default:
286
- filterVal = `${filter.columnId} icontains "${filter.value}"`;
287
- break;
288
- }
289
- if (index <= 0) {
290
- urlFilter = `?filter= ${filterVal}`;
291
- }
292
- else {
293
- urlFilter += ` and ${filterVal}`;
294
- }
295
- });
296
- if (noSearch) {
297
- if (paging.page !== -1)
298
- urlFilter = "?limit=" + paging.total + "&offset=" + ((paging.page - 1) * paging.total) + "&sort=" + paging.sort + " " + paging.order;
299
- }
300
- else {
301
- urlFilter += `&limit=${paging.total}&offset=${((paging.page - 1) * paging.total)}&sort=${paging.sort} ${paging.order}`;
302
- }
303
- return urlFilter;
304
- }
305
- schema(data) {
306
- return Promise.resolve(this.dereferenceJSONSchema(data));
307
- }
308
- async dereferenceJSONSchema(data) {
309
- const resolver = new Resolver();
310
- const schema = await resolver.resolve(data);
311
- return schema.result;
312
- }
313
- getAttributeFilter(val, columnId, semantic = 'AnyOf') {
314
- let filter = '';
315
- if (isArray(val)) {
316
- val.forEach((attr, index) => {
317
- if (index > 0) {
318
- filter += ` ${semantic === 'AllOf' ? 'and' : 'or'} `;
319
- }
320
- filter += `anyOf(${columnId}) = "${attr}"`;
321
- });
322
- }
323
- else {
324
- filter = `anyOf(${columnId}) = "${val}"`;
325
- }
326
- return filter;
327
- }
328
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ZitiControllerDataService, deps: [{ token: i1.LoggerService }, { token: i2.GrowlerService }, { token: SETTINGS_SERVICE }, { token: i3.HttpClient }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
329
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ZitiControllerDataService, providedIn: 'root' }); }
330
- }
331
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ZitiControllerDataService, decorators: [{
332
- type: Injectable,
333
- args: [{
334
- providedIn: 'root'
335
- }]
336
- }], ctorParameters: function () { return [{ type: i1.LoggerService }, { type: i2.GrowlerService }, { type: i5.SettingsService, decorators: [{
337
- type: Inject,
338
- args: [SETTINGS_SERVICE]
339
- }] }, { type: i3.HttpClient }, { type: i4.Router }]; } });
340
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieml0aS1jb250cm9sbGVyLWRhdGEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9zZXJ2aWNlcy96aXRpLWNvbnRyb2xsZXItZGF0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkQsT0FBTyxFQUFDLGdCQUFnQixFQUFrQixNQUFNLG9CQUFvQixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxjQUFjLEVBQUUsR0FBRyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUcxQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUM3RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDdEQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7Ozs7O0FBSzVCLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxlQUFlO0lBRTFELFlBQXFCLE1BQXFCLEVBQ3JCLE9BQXVCLEVBQ04sZUFBZ0MsRUFDakQsVUFBc0IsRUFDdEIsTUFBYztRQUUvQixLQUFLLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBTjNDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFFdkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBR25DLENBQUM7SUFFRCxJQUFJLENB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LElBQUksU0FBUyxRQUFRLFFBQVEsSUFBSSxHQUFHLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0gsTUFBTSxHQUFHLFNBQVMsUUFBUSxRQUFRLEdBQUcsR0FBRyxDQUFDO1NBQzVDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzsrR0FoV1EseUJBQXlCLDZFQUlkLGdCQUFnQjttSEFKM0IseUJBQXlCLGNBRnRCLE1BQU07OzRGQUVULHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUtnQixNQUFNOzJCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tIFwiLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2xvZ2dlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0dyb3dsZXJTZXJ2aWNlfSBmcm9tIFwiLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2dyb3dsZXIuc2VydmljZVwiO1xuaW1wb3J0IHtTRVRUSU5HU19TRVJWSUNFLCBTZXR0aW5nc1NlcnZpY2V9IGZyb20gXCIuL3NldHRpbmdzLnNlcnZpY2VcIjtcbmltcG9ydCB7Zmlyc3RWYWx1ZUZyb20sIG1hcCwgT2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7Y2F0Y2hFcnJvcn0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHtGaWx0ZXJPYmp9IGZyb20gXCIuLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUtZmlsdGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7Wml0aURhdGFTZXJ2aWNlfSBmcm9tIFwiLi96aXRpLWRhdGEuc2VydmljZVwiO1xuaW1wb3J0IHtpc0VtcHR5LCBpc0FycmF5LCBpc051bWJlciwgaXNCb29sZWFufSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQge1Jlc29sdmVyfSBmcm9tIFwiQHN0b3BsaWdodC9qc29uLXJlZi1yZXNvbHZlclwiO1xuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgWml0aUNvbnRyb2xsZXJEYXRhU2VydmljZSBleHRlbmRzIFppdGlEYXRhU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3RvcihvdmVycmlkZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgb3ZlcnJpZGUgZ3Jvd2xlcjogR3Jvd2xlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQEluamVjdChTRVRUSU5HU19TRVJWSUNFKSBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcbiAgICAgICAgICAgICAgICBvdmVycmlkZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgICAgICAgICAgICAgIG92ZXJyaWRlIHJvdXRlcjogUm91dGVyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGxvZ2dlciwgZ3Jvd2xlciwgc2V0dGluZ3NTZXJ2aWNlLCBodHRwQ2xpZW50LCByb3V0ZXIpO1xuICAgIH1cblxuICAgIHBvc3QodHlwZSwgbW9kZWwsIGNoYWluZWQgPSBmYWxzZSwgY29udGVudFR5cGU/KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVmVyc2lvbnMgPSB0aGlzLnNldHRpbmdzU2VydmljZS5hcGlWZXJzaW9ucyB8fCB7fTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gYXBpVmVyc2lvbnNbXCJlZGdlLW1hbmFnZW1lbnRcIl0/LnYxPy5wYXRoO1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5ncy5zZWxlY3RlZEVkZ2VDb250cm9sbGVyO1xuICAgICAgICBjb25zdCBzZXJ2aWNlVXJsID0gdXJsICsgcHJlZml4ICsgXCIvXCIgKyB0eXBlO1xuICAgICAgICBsZXQgb3B0aW9ucyA9IHt9O1xuICAgICAgICBpZiAoY29udGVudFR5cGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6IGNvbnRlbnRUeXBlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zID0geyBoZWFkZXJzIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5wb3N0KHNlcnZpY2VVcmwsIG1vZGVsLCBvcHRpb25zKS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9PSBcIkVDT05OUkVGVVNFRFwiKSB0aHJvdyhlcnIpO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IGVycm9yfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHV0KHR5cGUsIG1vZGVsLCBpZCwgY2hhaW5lZCA9IGZhbHNlKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVmVyc2lvbnMgPSB0aGlzLnNldHRpbmdzU2VydmljZS5hcGlWZXJzaW9ucyB8fCB7fTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gYXBpVmVyc2lvbnNbXCJlZGdlLW1hbmFnZW1lbnRcIl0/LnYxPy5wYXRoIHx8ICcvZWRnZS9tYW5hZ2VtZW50L3YxJztcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2VsZWN0ZWRFZGdlQ29udHJvbGxlcjtcbiAgICAgICAgY29uc3Qgc2VydmljZVVybCA9IHVybCArIHByZWZpeCArIFwiL1wiICsgdHlwZSArICcvJyArIGlkO1xuICAgICAgICB0aGlzLmh0dHBDbGllbnQucGF0Y2goc2VydmljZVVybCwgbW9kZWwsIHt9KTtcblxuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwQ2xpZW50LnB1dChzZXJ2aWNlVXJsLCBtb2RlbCwge30pLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT09IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KGVycik7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwYXRjaCh0eXBlLCBtb2RlbCwgaWQsIGNoYWluZWQgPSBmYWxzZSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IGFwaVZlcnNpb25zID0gdGhpcy5zZXR0aW5nc1NlcnZpY2UuYXBpVmVyc2lvbnMgfHwge307XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IGFwaVZlcnNpb25zW1wiZWRnZS1tYW5hZ2VtZW50XCJdPy52MT8ucGF0aCB8fCAnL2VkZ2UvbWFuYWdlbWVudC92MSc7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLnNlbGVjdGVkRWRnZUNvbnRyb2xsZXI7XG4gICAgICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB1cmwgKyBwcmVmaXggKyBcIi9cIiArIHR5cGUgKyAnLycgKyBpZDtcbiAgICAgICAgdGhpcy5odHRwQ2xpZW50LnBhdGNoKHNlcnZpY2VVcmwsIG1vZGVsLCB7fSk7XG5cbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5wYXRjaChzZXJ2aWNlVXJsLCBtb2RlbCwge30pLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT09IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KGVycik7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQodHlwZTogc3RyaW5nLCBwYWdpbmc6IGFueSwgZmlsdGVyczogRmlsdGVyT2JqW10gPSBbXSwgdXJsPywgdXNlQ2xpZW50Pyk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IGFwaVZlcnNpb25zID0gdGhpcy5zZXR0aW5nc1NlcnZpY2UuYXBpVmVyc2lvbnMgfHwge307XG4gICAgICAgIGNvbnN0IG1hbmFnZW1lbnRVcmwgPSBhcGlWZXJzaW9uc1tcImVkZ2UtbWFuYWdlbWVudFwiXT8udjE/LnBhdGggfHwgJy9lZGdlL21hbmFnZW1lbnQvdjEnO1xuICAgICAgICBjb25zdCBjbGllbnRVcmwgPSAnL2VkZ2UvY2xpZW50L3YxJztcbiAgICAgICAgY29uc3QgcHJlZml4ID0gdXNlQ2xpZW50ID8gY2xpZW50VXJsIDogbWFuYWdlbWVudFVybDtcbiAgICAgICAgdXJsID0gdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2VsZWN0ZWRFZGdlQ29udHJvbGxlcjtcbiAgICAgICAgY29uc3QgdXJsRmlsdGVyID0gdGhpcy5nZXRVcmxGaWx0ZXIocGFnaW5nLCBmaWx0ZXJzKTtcbiAgICAgICAgY29uc3Qgc2VydmljZVVybCA9IHVybCArIHByZWZpeCArIFwiL1wiICsgdHlwZSArIHVybEZpbHRlcjtcblxuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwQ2xpZW50LmdldChzZXJ2aWNlVXJsLHt9KS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KHtlcnJvcjogZXJyLmNvZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0U3ViZGF0YShlbnRpdHlUeXBlOiBzdHJpbmcsIGlkOiBhbnksIGRhdGFUeXBlOiBzdHJpbmcsIHBhZ2luZz86IGFueSwgY29udGVudFR5cGU/OiBhbnksIGZpbHRlcnM6IGFueVtdID0gW10pOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBhcGlWZXJzaW9ucyA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmFwaVZlcnNpb25zIHx8IHt9O1xuICAgICAgICBjb25zdCBwcmVmaXggPSBhcGlWZXJzaW9uc1tcImVkZ2UtbWFuYWdlbWVudFwiXT8udjE/LnBhdGggfHwgJy9lZGdlL21hbmFnZW1lbnQvdjEnO1xuXG4gICAgICAgIGxldCB1cmxGaWx0ZXIgPSAnJztcbiAgICAgICAgaWYgKCFpc0VtcHR5KHBhZ2luZykpIHtcbiAgICAgICAgICAgIHVybEZpbHRlciA9IHRoaXMuZ2V0VXJsRmlsdGVyKHBhZ2luZywgZmlsdGVycyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2VsZWN0ZWRFZGdlQ29udHJvbGxlciArIGAke3ByZWZpeH0vJHtlbnRpdHlUeXBlfS8ke2lkfS8ke2RhdGFUeXBlfS8ke3VybEZpbHRlcn1gO1xuXG4gICAgICAgIGxldCBvcHRpb25zOiBhbnkgPSB7fTtcbiAgICAgICAgaWYgKGNvbnRlbnRUeXBlKSB7XG4gICAgICAgICAgICBjb25zdCBoZWFkZXJzID0ge1xuICAgICAgICAgICAgICAgICdBY2NlcHQnOiBjb250ZW50VHlwZSxcbiAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogY29udGVudFR5cGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IGhlYWRlcnMgfTtcbiAgICAgICAgICAgIGlmIChjb250ZW50VHlwZS5pbmRleE9mKCdhcHBsaWNhdGlvbi9qd3QnKSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5yZXNwb25zZVR5cGUgPSAndGV4dCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwQ2xpZW50LmdldCh1cmwsIG9wdGlvbnMpLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT0gXCJFQ09OTlJFRlVTRURcIikgdGhyb3coe2Vycm9yOiBlcnIuY29kZX0pO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IGVycm9yfSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzYXZlU3ViZGF0YShlbnRpdHlUeXBlOiBzdHJpbmcsIGlkOiBhbnksIGRhdGFUeXBlOiBzdHJpbmcsIHBhcmFtczogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVmVyc2lvbnMgPSB0aGlzLnNldHRpbmdzU2VydmljZS5hcGlWZXJzaW9ucyB8fCB7fTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gYXBpVmVyc2lvbnNbXCJlZGdlLW1hbmFnZW1lbnRcIl0/LnYxPy5wYXRoIHx8ICcvZWRnZS9tYW5hZ2VtZW50L3YxJztcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2VsZWN0ZWRFZGdlQ29udHJvbGxlciArIGAke3ByZWZpeH0vJHtlbnRpdHlUeXBlfS8ke2lkfS8ke2RhdGFUeXBlfWA7XG5cbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5wb3N0KHVybCwgcGFyYW1zLCB7fSkucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IFwiU2VydmVyIE5vdCBBY2Nlc3NpYmxlXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPSBcIkVDT05OUkVGVVNFRFwiKSB0aHJvdyh7ZXJyb3I6IGVyci5jb2RlfSk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGRlbGV0ZVN1YmRhdGEoZW50aXR5VHlwZTogc3RyaW5nLCBpZDogYW55LCBkYXRhVHlwZTogc3RyaW5nLCBwYXJhbXM6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IGFwaVZlcnNpb25zID0gdGhpcy5zZXR0aW5nc1NlcnZpY2UuYXBpVmVyc2lvbnMgfHwge307XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IGFwaVZlcnNpb25zW1wiZWRnZS1tYW5hZ2VtZW50XCJdPy52MT8ucGF0aCB8fCAnL2VkZ2UvbWFuYWdlbWVudC92MSc7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLnNlbGVjdGVkRWRnZUNvbnRyb2xsZXIgKyBgJHtwcmVmaXh9LyR7ZW50aXR5VHlwZX0vJHtpZH0vJHtkYXRhVHlwZX1gO1xuXG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQuZGVsZXRlKHVybCwge2JvZHk6IHBhcmFtc30pLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT0gXCJFQ09OTlJFRlVTRURcIikgdGhyb3coe2Vycm9yOiBlcnIuY29kZX0pO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IGVycm9yfSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSByZXNldEVucm9sbG1lbnQoaWQ6IHN0cmluZywgZGF0ZTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVmVyc2lvbnMgPSB0aGlzLnNldHRpbmdzU2VydmljZS5hcGlWZXJzaW9ucyB8fCB7fTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gYXBpVmVyc2lvbnNbXCJlZGdlLW1hbmFnZW1lbnRcIl0/LnYxPy5wYXRoIHx8ICcvZWRnZS9tYW5hZ2VtZW50L3YxJztcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2VsZWN0ZWRFZGdlQ29udHJvbGxlciArIGAke3ByZWZpeH0vYXV0aGVudGljYXRvcnMvJHtpZC50cmltKCl9L3JlLWVucm9sbGA7XG4gICAgICAgIGNvbnN0IGV4cGlyZXNBdCA9IG1vbWVudChkYXRlKS51dGMoKS50b0lTT1N0cmluZygpO1xuICAgICAgICBjb25zdCBib2R5ID0geyBleHBpcmVzQXQ6IGV4cGlyZXNBdCB9O1xuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwQ2xpZW50LnBvc3QodXJsLCBib2R5KS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KHtlcnJvcjogZXJyLmNvZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgZGVsZXRlRW5yb2xsbWVudChlbnJvbGxtZW50SWQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgICBjb25zdCBhcGlWZXJzaW9ucyA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmFwaVZlcnNpb25zIHx8IHt9O1xuICAgICAgY29uc3QgcHJlZml4ID0gYXBpVmVyc2lvbnNbXCJlZGdlLW1hbmFnZW1lbnRcIl0/LnYxPy5wYXRoIHx8ICcvZWRnZS9tYW5hZ2VtZW50L3YxJztcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLnNlbGVjdGVkRWRnZUNvbnRyb2xsZXIgKyBgJHtwcmVmaXh9L2Vucm9sbG1lbnRzLyR7ZW5yb2xsbWVudElkfWA7XG4gICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwQ2xpZW50LmRlbGV0ZSh1cmwpLnBpcGUoXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPSBcIkVDT05OUkVGVVNFRFwiKSB0aHJvdyh7ZXJyb3I6IGVyci5jb2RlfSk7XG4gICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IGVycm9yfSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSByZWlzc3VlRW5yb2xsbWVudChpZDogc3RyaW5nLCBkYXRlKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVmVyc2lvbnMgPSB0aGlzLnNldHRpbmdzU2VydmljZS5hcGlWZXJzaW9ucyB8fCB7fTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gYXBpVmVyc2lvbnNbXCJlZGdlLW1hbmFnZW1lbnRcIl0/LnYxPy5wYXRoIHx8ICcvZWRnZS9tYW5hZ2VtZW50L3YxJztcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2VsZWN0ZWRFZGdlQ29udHJvbGxlciArIGAke3ByZWZpeH0vZW5yb2xsbWVudHMvJHtpZH0vcmVmcmVzaGA7XG4gICAgICAgIGNvbnN0IGV4cGlyZXNBdCA9IG1vbWVudChkYXRlKS51dGMoKS50b0lTT1N0cmluZygpO1xuICAgICAgICBjb25zdCBib2R5ID0geyBleHBpcmVzQXQ6IGV4cGlyZXNBdCB9O1xuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwQ2xpZW50LnBvc3QodXJsLCBib2R5KS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KHtlcnJvcjogZXJyLmNvZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVzZXRNRkEoaWQpIHtcbiAgICAgICAgY29uc3QgYXBpVmVyc2lvbnMgPSB0aGlzLnNldHRpbmdzU2VydmljZS5hcGlWZXJzaW9ucyB8fCB7fTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gYXBpVmVyc2lvbnNbXCJlZGdlLW1hbmFnZW1lbnRcIl0/LnYxPy5wYXRoIHx8ICcvZWRnZS9tYW5hZ2VtZW50L3YxJztcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2VsZWN0ZWRFZGdlQ29udHJvbGxlciArIGAke3ByZWZpeH0vaWRlbnRpdGllcy8ke2lkfS9tZmFgO1xuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwQ2xpZW50LmRlbGV0ZSh1cmwpLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT0gXCJFQ09OTlJFRlVTRURcIikgdGhyb3coe2Vycm9yOiBlcnIuY29kZX0pO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IGVycm9yfSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXNldFBhc3N3b3JkKG9sZFBhc3MsIG5ld1Bhc3MsIGNvbmZpcm1QYXNzKSB7XG4gICAgICAgIGNvbnN0IGFwaVZlcnNpb25zID0gdGhpcy5zZXR0aW5nc1NlcnZpY2UuYXBpVmVyc2lvbnMgfHwge307XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IGFwaVZlcnNpb25zW1wiZWRnZS1tYW5hZ2VtZW50XCJdPy52MT8ucGF0aCB8fCAnL2VkZ2UvbWFuYWdlbWVudC92MSc7XG4gICAgICAgIGNvbnN0IGF1dGhlbnRpY2F0b3JzVXJsID0gdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2VsZWN0ZWRFZGdlQ29udHJvbGxlciArIGAke3ByZWZpeH0vY3VycmVudC1pZGVudGl0eS9hdXRoZW50aWNhdG9ycz9maWx0ZXI9bWV0aG9kPVxcXCJ1cGRiXFxcImA7XG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQuZ2V0KGF1dGhlbnRpY2F0b3JzVXJsKSkudGhlbigoYXV0aGVudGljYXRvclJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpZCA9IGF1dGhlbnRpY2F0b3JSZXN1bHQ/LmRhdGFbMF0uaWQ7XG4gICAgICAgICAgICBjb25zdCB1c2VybmFtZSA9IGF1dGhlbnRpY2F0b3JSZXN1bHQuZGF0YVswXS51c2VybmFtZTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICBjdXJyZW50UGFzc3dvcmQ6IG9sZFBhc3MsXG4gICAgICAgICAgICAgICAgcGFzc3dvcmQ6IG5ld1Bhc3MsXG4gICAgICAgICAgICAgICAgdXNlcm5hbWU6IHVzZXJuYW1lXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZXNldFVybCA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLnNlbGVjdGVkRWRnZUNvbnRyb2xsZXIgKyBgJHtwcmVmaXh9L2N1cnJlbnQtaWRlbnRpdHkvYXV0aGVudGljYXRvcnMvJHtpZH1gO1xuICAgICAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5wdXQocmVzZXRVcmwsIHBhcmFtcykpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBkZWxldGUodHlwZTogc3RyaW5nLCBpZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVmVyc2lvbnMgPSB0aGlzLnNldHRpbmdzU2VydmljZS5hcGlWZXJzaW9ucyB8fCB7fTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gYXBpVmVyc2lvbnNbXCJlZGdlLW1hbmFnZW1lbnRcIl0/LnYxPy5wYXRoO1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5ncy5zZWxlY3RlZEVkZ2VDb250cm9sbGVyO1xuICAgICAgICBjb25zdCBzZXJ2aWNlVXJsID0gdXJsICsgcHJlZml4ICsgXCIvXCIgKyB0eXBlICsgJy8nICsgaWQ7XG5cbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5kZWxldGUoc2VydmljZVVybCwge30pLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT0gXCJFQ09OTlJFRlVTRURcIikgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IGVycm9yfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjYWxsKGNhbGxVcmwpIHtcbiAgICAgICAgY29uc3QgYXBpVmVyc2lvbnMgPSB0aGlzLnNldHRpbmdzU2VydmljZS5hcGlWZXJzaW9ucyB8fCB7fTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gYXBpVmVyc2lvbnNbXCJlZGdlLW1hbmFnZW1lbnRcIl0/LnYxPy5wYXRoO1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5ncy5zZWxlY3RlZEVkZ2VDb250cm9sbGVyO1xuICAgICAgICBjb25zdCBzZXJ2aWNlVXJsID0gdXJsICsgcHJlZml4ICsgXCIvXCIgKyBjYWxsVXJsO1xuXG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQuZ2V0KHNlcnZpY2VVcmwsIHt9KS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KHtlcnJvcjogZXJyLmNvZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRVcmxGaWx0ZXIocGFnaW5nLCBmaWx0ZXJzOiBhbnlbXSkge1xuICAgICAgICBsZXQgdXJsRmlsdGVyID0gJyc7XG4gICAgICAgIGxldCB0b1NlYXJjaE9uID0gXCJuYW1lXCI7XG4gICAgICAgIGxldCBub1NlYXJjaCA9IGZpbHRlcnM/Lmxlbmd0aCA8PSAwO1xuICAgICAgICBpZiAoaXNFbXB0eShwYWdpbmcpKSB7XG4gICAgICAgICAgICBwYWdpbmcgPSB0aGlzLkRFRkFVTFRfUEFHSU5HO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYWdpbmcgJiYgcGFnaW5nLnNvcnQgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHBhZ2luZy5zZWFyY2hPbikgdG9TZWFyY2hPbiA9IHBhZ2luZy5zZWFyY2hPbjtcbiAgICAgICAgICAgIGlmIChwYWdpbmcubm9TZWFyY2gpIG5vU2VhcmNoID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICghcGFnaW5nLmZpbHRlcikgcGFnaW5nLmZpbHRlciA9IFwiXCI7XG4gICAgICAgICAgICBpZiAoIWlzQXJyYXkocGFnaW5nLmZpbHRlcikgJiYgaXNOYU4ocGFnaW5nLmZpbHRlcikpIHtcbiAgICAgICAgICAgICAgICBwYWdpbmcuZmlsdGVyID0gcGFnaW5nLmZpbHRlci5zcGxpdCgnIycpLmpvaW4oJycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZpbHRlcnMuZm9yRWFjaCgoZmlsdGVyLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgbGV0IGZpbHRlclZhbCA9ICcnO1xuICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXIudHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ1RFWFRJTlBVVCc6XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlcmIgPSBmaWx0ZXIudmVyYiA/IGZpbHRlci52ZXJiIDogJ2ljb250YWlucyc7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclZhbCA9IGAke2ZpbHRlci5jb2x1bW5JZH0gJHt2ZXJifSBcIiR7ZmlsdGVyLnZhbHVlfVwiYDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnU0VMRUNUJzpcbiAgICAgICAgICAgICAgICBjYXNlICdDT01CTyc6XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IChpc051bWJlcihmaWx0ZXIudmFsdWUpIHx8IGlzQm9vbGVhbihmaWx0ZXIudmFsdWUpKSA/IGAke2ZpbHRlci52YWx1ZX1gIDogYFwiJHtmaWx0ZXIudmFsdWV9XCJgO1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJWYWwgPSBgJHtmaWx0ZXIuY29sdW1uSWR9ID0gJHt2YWx9YDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnREFURVRJTUUnOlxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJWYWwgPSBgJHtmaWx0ZXIuY29sdW1uSWR9ID49IGRhdGV0aW1lKCR7ZmlsdGVyLnZhbHVlWzBdfSkgYW5kICR7ZmlsdGVyLmNvbHVtbklkfSA8PSBkYXRldGltZSgke2ZpbHRlci52YWx1ZVsxXX0pYDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnQVRUUklCVVRFJzpcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyVmFsID0gdGhpcy5nZXRBdHRyaWJ1dGVGaWx0ZXIoZmlsdGVyLnZhbHVlLCBmaWx0ZXIuY29sdW1uSWQsIGZpbHRlci5zZW1hbnRpYyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ0JPT0xFQU4nOlxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJWYWwgPSBgJHtmaWx0ZXIuY29sdW1uSWR9PSR7ZmlsdGVyLnZhbHVlfWA7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclZhbCA9IGAke2ZpbHRlci5jb2x1bW5JZH0gaWNvbnRhaW5zIFwiJHtmaWx0ZXIudmFsdWV9XCJgO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpbmRleCA8PSAwKSB7XG4gICAgICAgICAgICAgICAgdXJsRmlsdGVyID0gYD9maWx0ZXI9ICR7ZmlsdGVyVmFsfWA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHVybEZpbHRlciArPSBgIGFuZCAke2ZpbHRlclZhbH1gXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAobm9TZWFyY2gpIHtcbiAgICAgICAgICAgIGlmIChwYWdpbmcucGFnZSAhPT0gLTEpIHVybEZpbHRlciA9IFwiP2xpbWl0PVwiICsgcGFnaW5nLnRvdGFsICsgXCImb2Zmc2V0PVwiICsgKChwYWdpbmcucGFnZSAtIDEpICogcGFnaW5nLnRvdGFsKSAgKyBcIiZzb3J0PVwiICsgcGFnaW5nLnNvcnQgKyBcIiBcIiArIHBhZ2luZy5vcmRlcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVybEZpbHRlciArPSBgJmxpbWl0PSR7cGFnaW5nLnRvdGFsfSZvZmZzZXQ9JHsoKHBhZ2luZy5wYWdlIC0gMSkgKiBwYWdpbmcudG90YWwpfSZzb3J0PSR7cGFnaW5nLnNvcnR9ICAke3BhZ2luZy5vcmRlcn1gXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVybEZpbHRlcjtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBzY2hlbWEoZGF0YSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5kZXJlZmVyZW5jZUpTT05TY2hlbWEoZGF0YSkpO1xuICAgIH1cblxuICAgIGFzeW5jIGRlcmVmZXJlbmNlSlNPTlNjaGVtYShkYXRhOiBhbnkpIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZXIgPSBuZXcgUmVzb2x2ZXIoKTtcbiAgICAgICAgY29uc3Qgc2NoZW1hID0gYXdhaXQgcmVzb2x2ZXIucmVzb2x2ZShkYXRhKTtcbiAgICAgICAgcmV0dXJuIHNjaGVtYS5yZXN1bHQ7XG4gICAgfVxuXG4gICAgZ2V0QXR0cmlidXRlRmlsdGVyKHZhbCwgY29sdW1uSWQsIHNlbWFudGljID0gJ0FueU9mJykge1xuICAgICAgICBsZXQgZmlsdGVyID0gJyc7XG4gICAgICAgIGlmIChpc0FycmF5KHZhbCkpIHtcbiAgICAgICAgICAgIHZhbC5mb3JFYWNoKChhdHRyLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyICs9IGAgJHtzZW1hbnRpYyA9PT0gJ0FsbE9mJyA/ICdhbmQnIDogJ29yJ30gYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZmlsdGVyICs9IGBhbnlPZigke2NvbHVtbklkfSkgPSBcIiR7YXR0cn1cImA7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpbHRlciA9IGBhbnlPZigke2NvbHVtbklkfSkgPSBcIiR7dmFsfVwiYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsdGVyO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,100 +0,0 @@
1
- /*
2
- Copyright NetFoundry Inc.
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- https://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- */
16
- import { Injectable, InjectionToken } from '@angular/core';
17
- import { cloneDeep, isString } from "lodash";
18
- import * as i0 from "@angular/core";
19
- import * as i1 from "../features/messaging/logger.service";
20
- import * as i2 from "../features/messaging/growler.service";
21
- import * as i3 from "./settings-service.class";
22
- import * as i4 from "@angular/common/http";
23
- import * as i5 from "@angular/router";
24
- export const ZITI_DATA_SERVICE = new InjectionToken('ZITI_DATA_SERVICE');
25
- export class ZitiDataService {
26
- static { this.NODE_DATA_SERVICE_TYPE = 'node'; }
27
- static { this.CONTROLLER_DATA_SERVICE_TYPE = 'controller'; }
28
- get DEFAULT_PAGING() {
29
- return cloneDeep({
30
- filter: "",
31
- noSearch: true,
32
- order: "asc",
33
- page: 1,
34
- searchOn: "name",
35
- sort: "name",
36
- total: 100
37
- });
38
- }
39
- constructor(logger, growler, settingsService, httpClient, router) {
40
- this.logger = logger;
41
- this.growler = growler;
42
- this.settingsService = settingsService;
43
- this.httpClient = httpClient;
44
- this.router = router;
45
- this.dataServiceType = '';
46
- }
47
- getRoleFilter(roleAttributes, semantic = 'AnyOf') {
48
- let hasAll = false;
49
- roleAttributes.forEach((attr) => {
50
- if (attr === 'all') {
51
- hasAll = true;
52
- }
53
- });
54
- let filters = [];
55
- if (!hasAll) {
56
- filters = [
57
- {
58
- columnId: "roleAttributes",
59
- filterName: "Attributes",
60
- label: "",
61
- type: "ATTRIBUTE",
62
- value: roleAttributes,
63
- semantic
64
- }
65
- ];
66
- }
67
- return filters;
68
- }
69
- getErrorMessage(resp) {
70
- let errorMessage;
71
- if (resp?.error?.error?.cause?.message) {
72
- errorMessage = resp?.error?.error?.cause?.message;
73
- }
74
- else if (resp?.error?.error?.cause?.reason) {
75
- errorMessage = resp?.error?.error?.cause?.reason;
76
- }
77
- else if (resp?.error?.message) {
78
- errorMessage = resp?.error?.message;
79
- }
80
- else if (resp?.error?.error?.message) {
81
- errorMessage = resp?.error?.error?.message;
82
- }
83
- else if (isString(resp?.error)) {
84
- errorMessage = resp?.error;
85
- }
86
- else {
87
- errorMessage = 'An unknown error occurred';
88
- }
89
- return errorMessage;
90
- }
91
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ZitiDataService, deps: [{ token: i1.LoggerService }, { token: i2.GrowlerService }, { token: i3.SettingsServiceClass }, { token: i4.HttpClient }, { token: i5.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
92
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ZitiDataService, providedIn: 'root' }); }
93
- }
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ZitiDataService, decorators: [{
95
- type: Injectable,
96
- args: [{
97
- providedIn: 'root'
98
- }]
99
- }], ctorParameters: function () { return [{ type: i1.LoggerService }, { type: i2.GrowlerService }, { type: i3.SettingsServiceClass }, { type: i4.HttpClient }, { type: i5.Router }]; } });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieml0aS1kYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvc2VydmljZXMveml0aS1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQUUsVUFBVSxFQUFVLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVNuRSxPQUFPLEVBQUMsU0FBUyxFQUF1QixRQUFRLEVBQUMsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7QUFHaEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQWtCLG1CQUFtQixDQUFDLENBQUM7QUFLMUYsTUFBTSxPQUFnQixlQUFlO2FBRTVCLDJCQUFzQixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQ2hDLGlDQUE0QixHQUFHLFlBQVksQUFBZixDQUFnQjtJQUluRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxTQUFTLENBQUM7WUFDZixNQUFNLEVBQUUsRUFBRTtZQUNWLFFBQVEsRUFBRSxJQUFJO1lBQ2QsS0FBSyxFQUFFLEtBQUs7WUFDWixJQUFJLEVBQUUsQ0FBQztZQUNQLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLEdBQUc7U0FDWCxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsWUFBc0IsTUFBcUIsRUFDckIsT0FBdUIsRUFDdkIsZUFBcUMsRUFDckMsVUFBc0IsRUFDdEIsTUFBYztRQUpkLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsb0JBQWUsR0FBZixlQUFlLENBQXNCO1FBQ3JDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWxCcEMsb0JBQWUsR0FBRyxFQUFFLENBQUM7SUFtQmxCLENBQUM7SUFrQkosYUFBYSxDQUFDLGNBQWMsRUFBRSxRQUFRLEdBQUcsT0FBTztRQUM5QyxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzlCLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRTtnQkFDbEIsTUFBTSxHQUFHLElBQUksQ0FBQzthQUNmO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE9BQU8sR0FBRztnQkFDUjtvQkFDRSxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsWUFBWTtvQkFDeEIsS0FBSyxFQUFFLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLEtBQUssRUFBRSxjQUFjO29CQUNyQixRQUFRO2lCQUNUO2FBQ0YsQ0FBQztTQUNIO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFJO1FBQ2xCLElBQUksWUFBWSxDQUFDO1FBRWpCLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtZQUN0QyxZQUFZLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQztTQUNuRDthQUFNLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUM1QyxZQUFZLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQztTQUNsRDthQUFNLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDL0IsWUFBWSxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDO1NBQ3JDO2FBQU0sSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDdEMsWUFBWSxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQztTQUM1QzthQUFNLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNoQyxZQUFZLEdBQUcsSUFBSSxFQUFFLEtBQUssQ0FBQztTQUM1QjthQUFNO1lBQ0wsWUFBWSxHQUFHLDJCQUEyQixDQUFDO1NBQzVDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQzsrR0FsRm1CLGVBQWU7bUhBQWYsZUFBZSxjQUZ2QixNQUFNOzs0RkFFRSxlQUFlO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSBcIi4uL2ZlYXR1cmVzL21lc3NhZ2luZy9sb2dnZXIuc2VydmljZVwiO1xuaW1wb3J0IHtHcm93bGVyU2VydmljZX0gZnJvbSBcIi4uL2ZlYXR1cmVzL21lc3NhZ2luZy9ncm93bGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7U0VUVElOR1NfU0VSVklDRSwgU2V0dGluZ3NTZXJ2aWNlfSBmcm9tIFwiLi9zZXR0aW5ncy5zZXJ2aWNlXCI7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHtGaWx0ZXJPYmp9IGZyb20gXCIuLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUtZmlsdGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7IExvZ2luU2VydmljZUNsYXNzIH0gZnJvbSAnLi9sb2dpbi1zZXJ2aWNlLmNsYXNzJztcblxuaW1wb3J0IHtjbG9uZURlZXAsIGlzRW1wdHksIHNvcnRlZFVuaXEsIGlzU3RyaW5nfSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQge1NldHRpbmdzU2VydmljZUNsYXNzfSBmcm9tIFwiLi9zZXR0aW5ncy1zZXJ2aWNlLmNsYXNzXCI7XG5cbmV4cG9ydCBjb25zdCBaSVRJX0RBVEFfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxaaXRpRGF0YVNlcnZpY2U+KCdaSVRJX0RBVEFfU0VSVklDRScpO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBaaXRpRGF0YVNlcnZpY2Uge1xuXG4gIHN0YXRpYyBOT0RFX0RBVEFfU0VSVklDRV9UWVBFID0gJ25vZGUnO1xuICBzdGF0aWMgQ09OVFJPTExFUl9EQVRBX1NFUlZJQ0VfVFlQRSA9ICdjb250cm9sbGVyJztcblxuICBkYXRhU2VydmljZVR5cGUgPSAnJztcblxuICBwdWJsaWMgZ2V0IERFRkFVTFRfUEFHSU5HKCkge1xuICAgIHJldHVybiBjbG9uZURlZXAoe1xuICAgICAgZmlsdGVyOiBcIlwiLFxuICAgICAgbm9TZWFyY2g6IHRydWUsXG4gICAgICBvcmRlcjogXCJhc2NcIixcbiAgICAgIHBhZ2U6IDEsXG4gICAgICBzZWFyY2hPbjogXCJuYW1lXCIsXG4gICAgICBzb3J0OiBcIm5hbWVcIixcbiAgICAgIHRvdGFsOiAxMDBcbiAgICB9KVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIGdyb3dsZXI6IEdyb3dsZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2VDbGFzcyxcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlclxuICApIHt9XG5cbiAgYWJzdHJhY3QgcG9zdCh0eXBlLCBtb2RlbCwgY2hhaW5lZD8sIGNvbnRlbnRUeXBlPyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgcHV0KHR5cGUsIG1vZGVsLCBpZCwgY2hhaW5lZD8pOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IHBhdGNoKHR5cGUsIG1vZGVsLCBpZCwgY2hhaW5lZD8pOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IGdldCh0eXBlOiBzdHJpbmcsIHBhZ2luZzogYW55LCBmaWx0ZXJzOiBGaWx0ZXJPYmpbXSwgdXJsPywgdXNlQ2xpZW50Pyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgZ2V0U3ViZGF0YShlbnRpdHlUeXBlOiBzdHJpbmcsIGlkOiBhbnksIGRhdGFUeXBlOiBzdHJpbmcsIHBhZ2luZz86IGFueSwgY29udGVudFR5cGU/LCBmaWx0ZXJzPyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3Qgc2F2ZVN1YmRhdGEoZW50aXR5VHlwZTogc3RyaW5nLCBpZDogYW55LCBkYXRhVHlwZTogc3RyaW5nLCBwYXJhbXM6IGFueSk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgZGVsZXRlU3ViZGF0YShlbnRpdHlUeXBlOiBzdHJpbmcsIGlkOiBhbnksIGRhdGFUeXBlOiBzdHJpbmcsIHBhcmFtczogYW55KTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCBkZWxldGUodHlwZTogc3RyaW5nLCBpZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCBjYWxsKHVybDogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCByZXNldEVucm9sbG1lbnQoaWQ6IHN0cmluZywgZGF0ZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCBkZWxldGVFbnJvbGxtZW50KGVucm9sbG1lbnRJZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+XG4gIGFic3RyYWN0IHJlaXNzdWVFbnJvbGxtZW50KGlkOiBzdHJpbmcsIGRhdGU6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgcmVzZXRNRkEoaWQ6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgcmVzZXRQYXNzd29yZChvbGRQYXNzLCBuZXdQYXNzLCBjb25maXJtUGFzcyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3Qgc2NoZW1hKGRhdGE6IGFueSk6IFByb21pc2U8YW55PjtcblxuICBnZXRSb2xlRmlsdGVyKHJvbGVBdHRyaWJ1dGVzLCBzZW1hbnRpYyA9ICdBbnlPZicpIHtcbiAgICBsZXQgaGFzQWxsID0gZmFsc2U7XG4gICAgcm9sZUF0dHJpYnV0ZXMuZm9yRWFjaCgoYXR0cikgPT4ge1xuICAgICAgaWYgKGF0dHIgPT09ICdhbGwnKSB7XG4gICAgICAgIGhhc0FsbCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gICAgbGV0IGZpbHRlcnMgPSBbXTtcbiAgICBpZiAoIWhhc0FsbCkge1xuICAgICAgZmlsdGVycyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbHVtbklkOiBcInJvbGVBdHRyaWJ1dGVzXCIsXG4gICAgICAgICAgZmlsdGVyTmFtZTogXCJBdHRyaWJ1dGVzXCIsXG4gICAgICAgICAgbGFiZWw6IFwiXCIsXG4gICAgICAgICAgdHlwZTogXCJBVFRSSUJVVEVcIixcbiAgICAgICAgICB2YWx1ZTogcm9sZUF0dHJpYnV0ZXMsXG4gICAgICAgICAgc2VtYW50aWNcbiAgICAgICAgfVxuICAgICAgXTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbHRlcnM7XG4gIH1cblxuICBnZXRFcnJvck1lc3NhZ2UocmVzcCkge1xuICAgIGxldCBlcnJvck1lc3NhZ2U7XG5cbiAgICBpZiAocmVzcD8uZXJyb3I/LmVycm9yPy5jYXVzZT8ubWVzc2FnZSkge1xuICAgICAgZXJyb3JNZXNzYWdlID0gcmVzcD8uZXJyb3I/LmVycm9yPy5jYXVzZT8ubWVzc2FnZTtcbiAgICB9IGVsc2UgaWYgKHJlc3A/LmVycm9yPy5lcnJvcj8uY2F1c2U/LnJlYXNvbikge1xuICAgICAgZXJyb3JNZXNzYWdlID0gcmVzcD8uZXJyb3I/LmVycm9yPy5jYXVzZT8ucmVhc29uO1xuICAgIH0gZWxzZSBpZiAocmVzcD8uZXJyb3I/Lm1lc3NhZ2UpIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9IHJlc3A/LmVycm9yPy5tZXNzYWdlO1xuICAgIH0gZWxzZSBpZiAocmVzcD8uZXJyb3I/LmVycm9yPy5tZXNzYWdlKSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSByZXNwPy5lcnJvcj8uZXJyb3I/Lm1lc3NhZ2U7XG4gICAgfSBlbHNlIGlmIChpc1N0cmluZyhyZXNwPy5lcnJvcikpIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9IHJlc3A/LmVycm9yO1xuICAgIH0gZWxzZSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSAnQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZCc7XG4gICAgfVxuICAgIHJldHVybiBlcnJvck1lc3NhZ2U7XG4gIH1cbn1cbiJdfQ==
@@ -1,3 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const ZITI_DOMAIN_CONTROLLER = new InjectionToken('ZITI_DOMAIN_CONTROLLER');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieml0aS1kb21haW4tY29udHJvbGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL3NlcnZpY2VzL3ppdGktZG9tYWluLWNvbnRyb2xsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUFNLHdCQUF3QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xuZXhwb3J0IGNvbnN0IFpJVElfRE9NQUlOX0NPTlRST0xMRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignWklUSV9ET01BSU5fQ09OVFJPTExFUicpO1xuXG5leHBvcnQgdHlwZSBaaXRpU2Vzc2lvbkRhdGEgPSB7XG4gICAgeml0aURvbWFpbjogYW55LFxuICAgIHppdGlTZXNzaW9uSWQ6IGFueSxcbiAgICBleHBpcmVzQXQ6IGFueVxufVxuZXhwb3J0IGludGVyZmFjZSBaaXRpRG9tYWluQ29udHJvbGxlclNlcnZpY2Uge1xuICAgIHppdGlTZXR0aW5nczogQmVoYXZpb3JTdWJqZWN0PFppdGlTZXNzaW9uRGF0YT47XG4gICAgaGFuZGxlVW5hdXRob3JpemVkKCk7XG59XG4iXX0=