@alauda-fe/common 1.4.31-beta.2 → 1.4.31-prod.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (642) hide show
  1. package/abnormal-page/abnormal-page.component.d.ts.map +1 -0
  2. package/abnormal-page/abnormal-page.module.d.ts.map +1 -0
  3. package/abnormal-page/public-api.d.ts.map +1 -0
  4. package/alauda-fe-common.d.ts.map +1 -0
  5. package/api/acp-common-api.service.d.ts.map +1 -0
  6. package/api/api-compatible.interceptor.d.ts.map +1 -0
  7. package/api/api-gateway.interceptor.d.ts.map +1 -0
  8. package/api/api-gateway.service.d.ts.map +1 -0
  9. package/api/auth-api.service.d.ts.map +1 -0
  10. package/api/cluster-version.service.d.ts.map +1 -0
  11. package/api/crypto.interceptor.d.ts.map +1 -0
  12. package/api/helpers.d.ts.map +1 -0
  13. package/api/k8s-api-resource.service.d.ts.map +1 -0
  14. package/api/k8s-api.service.d.ts.map +1 -0
  15. package/api/page-visibility.service.d.ts.map +1 -0
  16. package/api/platform-ui.service.d.ts.map +1 -0
  17. package/api/product.service.d.ts.map +1 -0
  18. package/api/project-api.service.d.ts.map +1 -0
  19. package/api/public-api.d.ts.map +1 -0
  20. package/api/resource-update.service.d.ts.map +1 -0
  21. package/api/types.d.ts.map +1 -0
  22. package/array-form-table/base-string-map-form.component.d.ts.map +1 -0
  23. package/array-form-table/form/component.d.ts +1 -1
  24. package/array-form-table/form/component.d.ts.map +1 -0
  25. package/array-form-table/form/module.d.ts.map +1 -0
  26. package/array-form-table/key-value-form/component.d.ts.map +1 -0
  27. package/array-form-table/key-value-table/component.d.ts.map +1 -0
  28. package/array-form-table/public-api.d.ts.map +1 -0
  29. package/array-form-table/string-array-form/component.d.ts.map +1 -0
  30. package/async-data/async-data-loader.d.ts.map +1 -0
  31. package/async-data/async-data.module.d.ts.map +1 -0
  32. package/async-data/error-page/component.d.ts.map +1 -0
  33. package/async-data/page-state/component.d.ts.map +1 -0
  34. package/async-data/public-api.d.ts.map +1 -0
  35. package/async-data/types.d.ts.map +1 -0
  36. package/authorization/app-init-url.d.ts.map +1 -0
  37. package/authorization/authorization.d.ts +3 -12
  38. package/authorization/authorization.d.ts.map +1 -0
  39. package/authorization/constants.d.ts +2 -0
  40. package/authorization/constants.d.ts.map +1 -0
  41. package/authorization/guard.service.d.ts.map +1 -0
  42. package/authorization/interceptor.service.d.ts +5 -3
  43. package/authorization/interceptor.service.d.ts.map +1 -0
  44. package/authorization/public-api.d.ts +1 -0
  45. package/authorization/public-api.d.ts.map +1 -0
  46. package/authorization/runtime.d.ts +33 -0
  47. package/authorization/runtime.d.ts.map +1 -0
  48. package/authorization/session-manage.service.d.ts +0 -2
  49. package/authorization/session-manage.service.d.ts.map +1 -0
  50. package/authorization/state.service.d.ts +7 -12
  51. package/authorization/state.service.d.ts.map +1 -0
  52. package/authorization/storage-token.d.ts.map +1 -0
  53. package/authorization/token-client.d.ts +48 -0
  54. package/business/notification-disabled-container/component.d.ts.map +1 -0
  55. package/business/notification-disabled-container/public-api.d.ts.map +1 -0
  56. package/business/public-api.d.ts.map +1 -0
  57. package/business/resource-select/base-list.d.ts.map +1 -0
  58. package/business/resource-select/context.service.d.ts.map +1 -0
  59. package/business/resource-select/exports/cluster-list/component.d.ts +1 -1
  60. package/business/resource-select/exports/cluster-list/component.d.ts.map +1 -0
  61. package/business/resource-select/exports/cluster-selector/component.d.ts.map +1 -0
  62. package/business/resource-select/exports/icon/component.d.ts.map +1 -0
  63. package/business/resource-select/exports/mesh-group-selector/component.d.ts.map +1 -0
  64. package/business/resource-select/exports/namespace-list/component.d.ts.map +1 -0
  65. package/business/resource-select/exports/namespace-page/component.d.ts.map +1 -0
  66. package/business/resource-select/exports/namespace-selector/component.d.ts.map +1 -0
  67. package/business/resource-select/exports/project-list/component.d.ts.map +1 -0
  68. package/business/resource-select/exports/project-page/component.d.ts.map +1 -0
  69. package/business/resource-select/exports/project-selector/component.d.ts.map +1 -0
  70. package/business/resource-select/helpers.directive.d.ts.map +1 -0
  71. package/business/resource-select/internals/data-grid/component.d.ts.map +1 -0
  72. package/business/resource-select/internals/meshgroup-list/component.d.ts.map +1 -0
  73. package/business/resource-select/internals/no-data/component.d.ts.map +1 -0
  74. package/business/resource-select/internals/resource-dashboard/component.d.ts.map +1 -0
  75. package/business/resource-select/internals/selector-popup/component.d.ts.map +1 -0
  76. package/business/resource-select/internals/selector-popup/ref.d.ts.map +1 -0
  77. package/business/resource-select/internals/selector-popup/service.d.ts.map +1 -0
  78. package/business/resource-select/module.d.ts.map +1 -0
  79. package/business/resource-select/project.service.d.ts.map +1 -0
  80. package/business/resource-select/public-api.d.ts.map +1 -0
  81. package/business/resource-select/types.d.ts.map +1 -0
  82. package/business/resource-select/utils.d.ts.map +1 -0
  83. package/chart/chart.module.d.ts.map +1 -0
  84. package/chart/chart.service.d.ts.map +1 -0
  85. package/chart/common/axis/axis-label.component.d.ts.map +1 -0
  86. package/chart/common/axis/x-axis-ticks.component.d.ts.map +1 -0
  87. package/chart/common/axis/x-axis.component.d.ts.map +1 -0
  88. package/chart/common/axis/x-plot-lines.component.d.ts.map +1 -0
  89. package/chart/common/axis/y-axis-ticks.component.d.ts.map +1 -0
  90. package/chart/common/axis/y-axis.component.d.ts.map +1 -0
  91. package/chart/common/axis/y-plot-lines.component.d.ts.map +1 -0
  92. package/chart/common/chart/chart.component.d.ts.map +1 -0
  93. package/chart/common/legend/legend.component.d.ts.map +1 -0
  94. package/chart/common/public-api.d.ts.map +1 -0
  95. package/chart/common/range-area/range-area.component.d.ts.map +1 -0
  96. package/chart/common/reference-area/reference-area.component.d.ts.map +1 -0
  97. package/chart/common/series/area-series.component.d.ts.map +1 -0
  98. package/chart/common/series/bar-path.component.d.ts.map +1 -0
  99. package/chart/common/series/bar-series.component.d.ts.map +1 -0
  100. package/chart/common/series/line-series.component.d.ts.map +1 -0
  101. package/chart/common/series/series.component.d.ts.map +1 -0
  102. package/chart/common/tooltip/tooltip.component.d.ts.map +1 -0
  103. package/chart/constants.d.ts.map +1 -0
  104. package/chart/custom-template/dropdown-legend.d.ts.map +1 -0
  105. package/chart/public-api.d.ts.map +1 -0
  106. package/chart/types.d.ts.map +1 -0
  107. package/chart/utils.d.ts.map +1 -0
  108. package/code/code-display-dialog/component.d.ts.map +1 -0
  109. package/code/code-editor-configs.d.ts.map +1 -0
  110. package/code/code.module.d.ts.map +1 -0
  111. package/code/k8s-yaml-display-dialog/component.d.ts.map +1 -0
  112. package/code/managed-fields-folder.util.d.ts.map +1 -0
  113. package/code/public-api.d.ts.map +1 -0
  114. package/code/resource-yaml-display/component.d.ts.map +1 -0
  115. package/code/resource-yaml-editor/component.d.ts.map +1 -0
  116. package/code/yaml-examples.d.ts.map +1 -0
  117. package/code/yaml-sidebar/component.d.ts.map +1 -0
  118. package/code/yaml-sidebar/types.d.ts.map +1 -0
  119. package/core/abstract/base-form-container.d.ts.map +1 -0
  120. package/core/abstract/base-nested-form-control.d.ts +1 -1
  121. package/core/abstract/base-nested-form-control.d.ts.map +1 -0
  122. package/core/abstract/public-api.d.ts.map +1 -0
  123. package/core/components/public-api.d.ts.map +1 -0
  124. package/core/components/tree/module.d.ts.map +1 -0
  125. package/core/components/tree/node/component.d.ts.map +1 -0
  126. package/core/components/tree/outlet.d.ts.map +1 -0
  127. package/core/components/tree/padding.d.ts.map +1 -0
  128. package/core/components/tree/toggle.d.ts.map +1 -0
  129. package/core/components/tree/tree/component.d.ts.map +1 -0
  130. package/core/constants/constants.d.ts.map +1 -0
  131. package/core/constants/patterns.d.ts.map +1 -0
  132. package/core/constants/public-api.d.ts.map +1 -0
  133. package/core/constants/status-icons.d.ts.map +1 -0
  134. package/core/constants/timezones.d.ts.map +1 -0
  135. package/core/constants/tokens.d.ts.map +1 -0
  136. package/core/directives/aui-code-editor.directive.d.ts.map +1 -0
  137. package/core/directives/click-outside.directive.d.ts.map +1 -0
  138. package/core/directives/declare.directive.d.ts.map +1 -0
  139. package/core/directives/disabled.directive.d.ts.map +1 -0
  140. package/core/directives/feature-gate.directive.d.ts.map +1 -0
  141. package/core/directives/intercept-deactivate.directive.d.ts.map +1 -0
  142. package/core/directives/last-form-item.directive.d.ts.map +1 -0
  143. package/core/directives/page-header-content.directive.d.ts.map +1 -0
  144. package/core/directives/public-api.d.ts.map +1 -0
  145. package/core/directives/readonly-field.directive.d.ts.map +1 -0
  146. package/core/directives/resize.directive.d.ts.map +1 -0
  147. package/core/directives/scroll-border-observer.directive.d.ts.map +1 -0
  148. package/core/directives/scroll-to-first-invalid.directive.d.ts.map +1 -0
  149. package/core/guards/feature.guard.d.ts.map +1 -0
  150. package/core/guards/intercept-deactivate.guard.d.ts.map +1 -0
  151. package/core/guards/leave-edit-page.guard.d.ts.map +1 -0
  152. package/core/guards/project-namespace.guard.d.ts.map +1 -0
  153. package/core/guards/public-api.d.ts.map +1 -0
  154. package/core/module.d.ts.map +1 -0
  155. package/core/pipes/calc.pipe.d.ts.map +1 -0
  156. package/core/pipes/cron-human-readable.pipe.d.ts.map +1 -0
  157. package/core/pipes/crontab-next.pipe.d.ts.map +1 -0
  158. package/core/pipes/duration.pipe.d.ts.map +1 -0
  159. package/core/pipes/field-not-available.pipe.d.ts.map +1 -0
  160. package/core/pipes/img-header.pipe.d.ts.map +1 -0
  161. package/core/pipes/img-theme.pipe.d.ts.map +1 -0
  162. package/core/pipes/k8s-util.pipe.d.ts.map +1 -0
  163. package/core/pipes/k8s-util.pipe.module.d.ts.map +1 -0
  164. package/core/pipes/keyvalue.pipe.d.ts.map +1 -0
  165. package/core/pipes/marked.pipe.d.ts.map +1 -0
  166. package/core/pipes/minimum-format.pipe.d.ts.map +1 -0
  167. package/core/pipes/page-env.pipe.d.ts.map +1 -0
  168. package/core/pipes/parse-json-translate.pipe.d.ts.map +1 -0
  169. package/core/pipes/parse-json.pipe.d.ts.map +1 -0
  170. package/core/pipes/public-api.d.ts.map +1 -0
  171. package/core/pipes/pure.pipe.d.ts.map +1 -0
  172. package/core/pipes/pure.pipe.module.d.ts.map +1 -0
  173. package/core/pipes/safe.pipe.d.ts.map +1 -0
  174. package/core/pipes/sanitize.pipe.d.ts.map +1 -0
  175. package/core/pipes/time.pipe.d.ts.map +1 -0
  176. package/core/pipes/timezone-display.pipe.d.ts.map +1 -0
  177. package/core/public-api.d.ts.map +1 -0
  178. package/core/services/aui-paginator-intl.service.d.ts.map +1 -0
  179. package/core/services/aui-tooltip-copy-intl.service.d.ts.map +1 -0
  180. package/core/services/context.service.d.ts.map +1 -0
  181. package/core/services/custom-code-editor-intl.service.d.ts.map +1 -0
  182. package/core/services/disaster-recovery.service.d.ts.map +1 -0
  183. package/core/services/encode-url-param.interceptor.d.ts.map +1 -0
  184. package/core/services/feature-gate.service.d.ts.map +1 -0
  185. package/core/services/form-row-duplicate/form-row-duplicate.service.d.ts.map +1 -0
  186. package/core/services/intercept-deactivate.service.d.ts.map +1 -0
  187. package/core/services/k8s-util.service.d.ts.map +1 -0
  188. package/core/services/kubernetes-schema.service.d.ts.map +1 -0
  189. package/core/services/on-resize.service.d.ts.map +1 -0
  190. package/core/services/plugin-util.service.d.ts.map +1 -0
  191. package/core/services/public-api.d.ts.map +1 -0
  192. package/core/services/silently-navigate.service.d.ts.map +1 -0
  193. package/core/services/time.service.d.ts.map +1 -0
  194. package/core/services/ui-state.service.d.ts.map +1 -0
  195. package/core/services/workspace-helper.service.d.ts.map +1 -0
  196. package/core/services/yaml-util.service.d.ts.map +1 -0
  197. package/core/types/commons.d.ts.map +1 -0
  198. package/core/types/helpers.d.ts.map +1 -0
  199. package/core/types/k8s/core.d.ts.map +1 -0
  200. package/core/types/k8s/crd.d.ts.map +1 -0
  201. package/core/types/k8s/public-api.d.ts.map +1 -0
  202. package/core/types/k8s/raw.d.ts.map +1 -0
  203. package/core/types/openapi.d.ts.map +1 -0
  204. package/core/types/public-api.d.ts.map +1 -0
  205. package/core/types/resource-definitions.d.ts.map +1 -0
  206. package/core/types/schema.d.ts.map +1 -0
  207. package/core/utils/browser.d.ts.map +1 -0
  208. package/core/utils/cache-store.d.ts.map +1 -0
  209. package/core/utils/color-helpers.d.ts.map +1 -0
  210. package/core/utils/common.d.ts.map +1 -0
  211. package/core/utils/create-recursive-filter.d.ts.map +1 -0
  212. package/core/utils/cron-util.d.ts.map +1 -0
  213. package/core/utils/decorators.d.ts.map +1 -0
  214. package/core/utils/dev-helpers.d.ts.map +1 -0
  215. package/core/utils/disabled-state.d.ts.map +1 -0
  216. package/core/utils/format-number.d.ts.map +1 -0
  217. package/core/utils/k8s-util.d.ts.map +1 -0
  218. package/core/utils/local-storage-constants.d.ts.map +1 -0
  219. package/core/utils/node.d.ts.map +1 -0
  220. package/core/utils/observable.d.ts.map +1 -0
  221. package/core/utils/operators.d.ts.map +1 -0
  222. package/core/utils/public-api.d.ts.map +1 -0
  223. package/core/utils/request-pool.d.ts.map +1 -0
  224. package/core/utils/resources.d.ts.map +1 -0
  225. package/core/utils/router.d.ts.map +1 -0
  226. package/core/utils/sort-fn.d.ts.map +1 -0
  227. package/core/utils/tree.d.ts.map +1 -0
  228. package/core/utils/unit.d.ts.map +1 -0
  229. package/core/utils/version.d.ts +1 -1
  230. package/core/utils/version.d.ts.map +1 -0
  231. package/core/utils/with-load-state.d.ts.map +1 -0
  232. package/core/utils/workload.d.ts.map +1 -0
  233. package/core/utils/workspace.d.ts.map +1 -0
  234. package/core/utils/yaml.d.ts.map +1 -0
  235. package/custom-columns-setting/component.d.ts.map +1 -0
  236. package/custom-columns-setting/public-api.d.ts.map +1 -0
  237. package/disabled-container/disabled-container.component.d.ts.map +1 -0
  238. package/disabled-container/disabled-container.module.d.ts.map +1 -0
  239. package/disabled-container/public-api.d.ts.map +1 -0
  240. package/editable/editable.component.d.ts.map +1 -0
  241. package/editable/editable.directive.d.ts.map +1 -0
  242. package/editable/editable.type.d.ts.map +1 -0
  243. package/editable/public-api.d.ts.map +1 -0
  244. package/editable-text/component.d.ts.map +1 -0
  245. package/editable-text/module.d.ts.map +1 -0
  246. package/editable-text/public-api.d.ts.map +1 -0
  247. package/effect-directive/coerce-number.directive.d.ts.map +1 -0
  248. package/effect-directive/e2e-attribute-binding.directive.d.ts.map +1 -0
  249. package/effect-directive/event.directive.d.ts.map +1 -0
  250. package/effect-directive/min-max.directive.d.ts.map +1 -0
  251. package/effect-directive/module.d.ts.map +1 -0
  252. package/effect-directive/public-api.d.ts.map +1 -0
  253. package/effect-directive/trim.directive.d.ts.map +1 -0
  254. package/effect-directive/validators.directive.d.ts.map +1 -0
  255. package/esm2022/abnormal-page/abnormal-page.component.mjs +6 -2
  256. package/esm2022/abnormal-page/abnormal-page.module.mjs +1 -6
  257. package/esm2022/authorization/authorization.mjs +82 -51
  258. package/esm2022/authorization/constants.mjs +3 -1
  259. package/esm2022/authorization/interceptor.service.mjs +67 -45
  260. package/esm2022/authorization/public-api.mjs +2 -1
  261. package/esm2022/authorization/runtime.mjs +96 -0
  262. package/esm2022/authorization/session-manage.service.mjs +3 -5
  263. package/esm2022/authorization/state.service.mjs +23 -64
  264. package/esm2022/authorization/token-client.mjs +101 -0
  265. package/esm2022/business/resource-select/exports/cluster-list/component.mjs +3 -2
  266. package/esm2022/business/resource-select/exports/cluster-selector/component.mjs +7 -2
  267. package/esm2022/business/resource-select/exports/icon/component.mjs +4 -2
  268. package/esm2022/business/resource-select/exports/mesh-group-selector/component.mjs +8 -2
  269. package/esm2022/business/resource-select/exports/namespace-list/component.mjs +12 -2
  270. package/esm2022/business/resource-select/exports/project-list/component.mjs +3 -2
  271. package/esm2022/business/resource-select/internals/data-grid/component.mjs +12 -2
  272. package/esm2022/business/resource-select/internals/meshgroup-list/component.mjs +3 -2
  273. package/esm2022/business/resource-select/internals/no-data/component.mjs +6 -2
  274. package/esm2022/business/resource-select/internals/resource-dashboard/component.mjs +6 -2
  275. package/esm2022/business/resource-select/module.mjs +6 -26
  276. package/esm2022/chart/chart.module.mjs +6 -13
  277. package/esm2022/chart/common/axis/x-axis-ticks.component.mjs +4 -2
  278. package/esm2022/chart/common/axis/y-axis-ticks.component.mjs +4 -2
  279. package/esm2022/chart/common/series/area-series.component.mjs +4 -2
  280. package/esm2022/chart/common/series/bar-path.component.mjs +4 -2
  281. package/esm2022/chart/common/series/line-series.component.mjs +4 -2
  282. package/esm2022/chart/common/tooltip/tooltip.component.mjs +7 -2
  283. package/esm2022/chart/custom-template/dropdown-legend.mjs +6 -2
  284. package/esm2022/core/constants/tokens.mjs +12 -12
  285. package/esm2022/editable-text/component.mjs +6 -2
  286. package/esm2022/editable-text/module.mjs +1 -6
  287. package/esm2022/exec/module.mjs +1 -9
  288. package/esm2022/exec/placeholder/component.mjs +4 -2
  289. package/esm2022/exec/terminal/component.mjs +6 -2
  290. package/esm2022/exec/terminal-group/component.mjs +7 -2
  291. package/esm2022/feature-gate-forbidden/component/component.mjs +7 -2
  292. package/esm2022/feature-gate-forbidden/module.mjs +1 -7
  293. package/esm2022/form/validators/strong-password/strong-password-tooltip/component.mjs +5 -2
  294. package/esm2022/form/validators/strong-password/strong-password-validator.module.mjs +1 -5
  295. package/esm2022/graph-canvas/components/graph-canvas.component.mjs +5 -2
  296. package/esm2022/graph-canvas/graph-canvas.module.mjs +1 -5
  297. package/esm2022/help-document/component.mjs +9 -2
  298. package/esm2022/help-document/module.mjs +1 -9
  299. package/esm2022/iframe-config/config.service.mjs +8 -2
  300. package/esm2022/k8s-resource-list/footer/component.mjs +5 -2
  301. package/esm2022/k8s-resource-list/k8s-resource-list.module.mjs +1 -5
  302. package/esm2022/license/license-error/component.mjs +11 -2
  303. package/esm2022/license/license-error/module.mjs +1 -11
  304. package/esm2022/page-scaffold/navigation/nav-menu/nav-item-li/nav-item-li.component.mjs +11 -2
  305. package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.component.mjs +8 -2
  306. package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.module.mjs +1 -12
  307. package/esm2022/page-scaffold/page/page.component.mjs +5 -2
  308. package/esm2022/page-scaffold/page/page.module.mjs +1 -4
  309. package/esm2022/page-scaffold/page-header/account-menu/component/component.mjs +4 -2
  310. package/esm2022/page-scaffold/page-header/account-menu/module.mjs +1 -5
  311. package/esm2022/page-scaffold/page-header/common-layout/common-layout.module.mjs +1 -11
  312. package/esm2022/page-scaffold/page-header/common-layout/namespace-select/component.mjs +7 -2
  313. package/esm2022/page-scaffold/page-header/common-layout/product-select/component.mjs +9 -2
  314. package/esm2022/page-scaffold/page-header/enterprise-support-status/component.mjs +5 -2
  315. package/esm2022/page-scaffold/page-header/header-notify/component/header-notify.component.mjs +7 -2
  316. package/esm2022/page-scaffold/page-header/header-notify/component/notification-list/notification-list.component.mjs +9 -2
  317. package/esm2022/page-scaffold/page-header/header-notify/header-notify.module.mjs +1 -12
  318. package/esm2022/page-scaffold/page-header/header-notify/notify.service.mjs +1 -1
  319. package/esm2022/page-scaffold/page-header/help-menu/component/component.mjs +7 -2
  320. package/esm2022/page-scaffold/page-header/help-menu/module.mjs +1 -7
  321. package/esm2022/page-scaffold/page-header/module.mjs +1 -4
  322. package/esm2022/pie-derivative-chart/pie-derivative-chart.module.mjs +6 -9
  323. package/esm2022/pie-derivative-chart/radial-bar/radial-bar-chart.component.mjs +9 -2
  324. package/esm2022/searchable-selector/component.mjs +8 -2
  325. package/esm2022/searchable-selector/module.mjs +1 -9
  326. package/esm2022/skeleton/item/component.mjs +4 -2
  327. package/esm2022/skeleton/module.mjs +1 -5
  328. package/esm2022/skeleton/nav-skeleton/component.mjs +4 -2
  329. package/esm2022/table/component.mjs +13 -2
  330. package/esm2022/table/module.mjs +1 -10
  331. package/esm2022/translate/i18n-assets-loader.mjs +12 -4
  332. package/esm2022/translate/i18n-config.mjs +2 -2
  333. package/esm2022/view-chart/custom-template/dropdown-legend.mjs +6 -2
  334. package/esm2022/view-chart/view-chart.component.mjs +6 -2
  335. package/esm2022/view-chart/view-chart.module.mjs +6 -8
  336. package/esm2022/view-zchart/custom-template/dropdown-legend.mjs +6 -2
  337. package/esm2022/view-zchart/view-zchart.component.mjs +5 -2
  338. package/esm2022/view-zchart/view-zchart.module.mjs +6 -8
  339. package/exec/constants.d.ts.map +1 -0
  340. package/exec/module.d.ts +1 -1
  341. package/exec/module.d.ts.map +1 -0
  342. package/exec/placeholder/component.d.ts.map +1 -0
  343. package/exec/public-api.d.ts.map +1 -0
  344. package/exec/service.d.ts.map +1 -0
  345. package/exec/terminal/component.d.ts.map +1 -0
  346. package/exec/terminal-group/component.d.ts.map +1 -0
  347. package/exec/types.d.ts.map +1 -0
  348. package/feature-gate-forbidden/component/component.d.ts.map +1 -0
  349. package/feature-gate-forbidden/module.d.ts.map +1 -0
  350. package/feature-gate-forbidden/public-api.d.ts.map +1 -0
  351. package/form/directives/value-trace.directive.d.ts.map +1 -0
  352. package/form/errors-mapper/base-errors-mapper.d.ts.map +1 -0
  353. package/form/errors-mapper/default-errors-mapper.service.d.ts.map +1 -0
  354. package/form/errors-mapper/errors-mapper-component/component.d.ts.map +1 -0
  355. package/form/errors-mapper/errors-mapper.directive.d.ts.map +1 -0
  356. package/form/errors-mapper/errors-mapper.module.d.ts.map +1 -0
  357. package/form/errors-mapper/public-api.d.ts.map +1 -0
  358. package/form/errors-mapper/types.d.ts.map +1 -0
  359. package/form/labels-editor/component.d.ts.map +1 -0
  360. package/form/public-api.d.ts.map +1 -0
  361. package/form/taints-editor/component.d.ts.map +1 -0
  362. package/form/upload-file/component.d.ts.map +1 -0
  363. package/form/utils.d.ts.map +1 -0
  364. package/form/validators/async-function-validator.directive.d.ts +1 -1
  365. package/form/validators/async-function-validator.directive.d.ts.map +1 -0
  366. package/form/validators/dns1123-subdomain.d.ts.map +1 -0
  367. package/form/validators/function-validator.directive.d.ts.map +1 -0
  368. package/form/validators/maxlength-minlength-validator.directive.d.ts.map +1 -0
  369. package/form/validators/module.d.ts.map +1 -0
  370. package/form/validators/not-be-validator.directive.d.ts.map +1 -0
  371. package/form/validators/one-of-validator.directive.d.ts.map +1 -0
  372. package/form/validators/public-api.d.ts.map +1 -0
  373. package/form/validators/resource-limit.d.ts.map +1 -0
  374. package/form/validators/strong-password/public-api.d.ts.map +1 -0
  375. package/form/validators/strong-password/strong-password-tooltip/component.d.ts.map +1 -0
  376. package/form/validators/strong-password/strong-password-validator.directive.d.ts.map +1 -0
  377. package/form/validators/strong-password/strong-password-validator.module.d.ts.map +1 -0
  378. package/form/validators/utils.d.ts.map +1 -0
  379. package/graph-canvas/components/graph-actions.component.d.ts.map +1 -0
  380. package/graph-canvas/components/graph-canvas.component.d.ts.map +1 -0
  381. package/graph-canvas/components/graph-link.component.d.ts.map +1 -0
  382. package/graph-canvas/components/graph-links.component.d.ts.map +1 -0
  383. package/graph-canvas/components/graph-node.directive.d.ts.map +1 -0
  384. package/graph-canvas/graph-canvas.module.d.ts.map +1 -0
  385. package/graph-canvas/graph-store.service.d.ts.map +1 -0
  386. package/graph-canvas/public-api.d.ts.map +1 -0
  387. package/graph-canvas/types.d.ts.map +1 -0
  388. package/graph-canvas/utils.d.ts.map +1 -0
  389. package/grid-layout/components/grid/component.d.ts.map +1 -0
  390. package/grid-layout/components/grid-items/component.d.ts.map +1 -0
  391. package/grid-layout/constant.d.ts.map +1 -0
  392. package/grid-layout/directives/drag-handler.directive.d.ts.map +1 -0
  393. package/grid-layout/directives/placeholder.directive.d.ts.map +1 -0
  394. package/grid-layout/directives/remove-handler.directive.d.ts.map +1 -0
  395. package/grid-layout/directives/resize-handler.directive.d.ts.map +1 -0
  396. package/grid-layout/grid-layout.service.d.ts.map +1 -0
  397. package/grid-layout/grid-placeholder.service.d.ts.map +1 -0
  398. package/grid-layout/module.d.ts.map +1 -0
  399. package/grid-layout/public-api.d.ts.map +1 -0
  400. package/grid-layout/type.d.ts.map +1 -0
  401. package/grid-layout/utils/client-rect.utils.d.ts.map +1 -0
  402. package/grid-layout/utils/grid.utils.d.ts.map +1 -0
  403. package/grid-layout/utils/mouse.utils.d.ts.map +1 -0
  404. package/grid-layout/utils/operator.d.ts.map +1 -0
  405. package/grid-layout/utils/react-grid-layout.utils.d.ts.map +1 -0
  406. package/grid-layout/utils/scroll.utils.d.ts.map +1 -0
  407. package/help-document/component.d.ts.map +1 -0
  408. package/help-document/directive.d.ts.map +1 -0
  409. package/help-document/module.d.ts.map +1 -0
  410. package/help-document/public-api.d.ts.map +1 -0
  411. package/help-document/service.d.ts.map +1 -0
  412. package/iframe-config/config.service.d.ts.map +1 -0
  413. package/iframe-config/constants.d.ts.map +1 -0
  414. package/iframe-config/public-api.d.ts.map +1 -0
  415. package/k8s-resource-list/footer/component.d.ts.map +1 -0
  416. package/k8s-resource-list/k8s-resource-list.d.ts.map +1 -0
  417. package/k8s-resource-list/k8s-resource-list.module.d.ts.map +1 -0
  418. package/k8s-resource-list/k8s-resource-paged-list.d.ts.map +1 -0
  419. package/k8s-resource-list/public-api.d.ts.map +1 -0
  420. package/k8s-resource-list/types.d.ts.map +1 -0
  421. package/k8s-resource-list/utils.d.ts.map +1 -0
  422. package/k8s-shared/constants.d.ts.map +1 -0
  423. package/k8s-shared/k8s-resource-translate-key.pipe.d.ts.map +1 -0
  424. package/k8s-shared/k8s-shared-util.service.d.ts.map +1 -0
  425. package/k8s-shared/public-api.d.ts.map +1 -0
  426. package/k8s-shared/resource-mark/k8s-resource-mark.component.d.ts.map +1 -0
  427. package/k8s-shared/resource-mark/util.d.ts.map +1 -0
  428. package/k8s-shared/update-description-dialog/component.d.ts.map +1 -0
  429. package/k8s-shared/update-display-name-dialog/component.d.ts.map +1 -0
  430. package/k8s-shared/update-key-value-dialog/component.d.ts.map +1 -0
  431. package/lazy-component/lazy-load-component.d.ts.map +1 -0
  432. package/lazy-component/public-api.d.ts.map +1 -0
  433. package/lazy-component/visibility.service.d.ts.map +1 -0
  434. package/license/license-api.d.ts.map +1 -0
  435. package/license/license-error/component.d.ts.map +1 -0
  436. package/license/license-error/module.d.ts.map +1 -0
  437. package/license/license.guard.d.ts.map +1 -0
  438. package/license/license.service.d.ts.map +1 -0
  439. package/license/license.type.d.ts.map +1 -0
  440. package/license/public-api.d.ts.map +1 -0
  441. package/list-display/component.d.ts.map +1 -0
  442. package/list-display/public-api.d.ts.map +1 -0
  443. package/metric-chart/common-chart.service.d.ts.map +1 -0
  444. package/metric-chart/helpers.d.ts.map +1 -0
  445. package/metric-chart/metric-chart.component.d.ts.map +1 -0
  446. package/metric-chart/metric-chart.module.d.ts.map +1 -0
  447. package/metric-chart/metric-time-pick.d.ts.map +1 -0
  448. package/metric-chart/public-api.d.ts.map +1 -0
  449. package/metric-chart/types.d.ts.map +1 -0
  450. package/metric-chart/utils.d.ts.map +1 -0
  451. package/multi-search/action-input/component.d.ts.map +1 -0
  452. package/multi-search/form/component.d.ts.map +1 -0
  453. package/multi-search/multi-search-tags/component.d.ts.map +1 -0
  454. package/multi-search/public-api.d.ts.map +1 -0
  455. package/multi-search/types.d.ts.map +1 -0
  456. package/multi-search/utils.d.ts.map +1 -0
  457. package/mutable/element.d.ts.map +1 -0
  458. package/mutable/mosaic/mosaic.component.d.ts.map +1 -0
  459. package/mutable/mosaic/mosaic.directive.d.ts.map +1 -0
  460. package/mutable/mutable.directive.d.ts.map +1 -0
  461. package/mutable/mutable.module.d.ts.map +1 -0
  462. package/mutable/public-api.d.ts.map +1 -0
  463. package/mutable/util.d.ts.map +1 -0
  464. package/notification/errors-mapper.d.ts.map +1 -0
  465. package/notification/feedback-notification/component.d.ts.map +1 -0
  466. package/notification/helpers.d.ts.map +1 -0
  467. package/notification/notification-util.service.d.ts.map +1 -0
  468. package/notification/public-api.d.ts.map +1 -0
  469. package/notification/resource-error.interceptor.d.ts.map +1 -0
  470. package/overview-banner/overview-banner.component.d.ts.map +1 -0
  471. package/overview-banner/overview-banner.module.d.ts.map +1 -0
  472. package/overview-banner/overview-banner.types.d.ts.map +1 -0
  473. package/overview-banner/public-api.d.ts.map +1 -0
  474. package/package.json +1 -1
  475. package/page-guard/component/component.d.ts.map +1 -0
  476. package/page-guard/component/helper-directives.d.ts.map +1 -0
  477. package/page-guard/component/page-guard.type.d.ts.map +1 -0
  478. package/page-guard/module.d.ts.map +1 -0
  479. package/page-guard/public-api.d.ts.map +1 -0
  480. package/page-scaffold/module.d.ts.map +1 -0
  481. package/page-scaffold/navigation/breadcrumb/breadcrumb-slot.directive.d.ts.map +1 -0
  482. package/page-scaffold/navigation/breadcrumb/breadcrumb.component.d.ts.map +1 -0
  483. package/page-scaffold/navigation/breadcrumb/breadcrumb.service.d.ts.map +1 -0
  484. package/page-scaffold/navigation/breadcrumb/module.d.ts.map +1 -0
  485. package/page-scaffold/navigation/breadcrumb/public-api.d.ts.map +1 -0
  486. package/page-scaffold/navigation/lottie-icons/animation-data.d.ts.map +1 -0
  487. package/page-scaffold/navigation/lottie-icons/lottie-icon.directive.d.ts.map +1 -0
  488. package/page-scaffold/navigation/lottie-icons/module.d.ts.map +1 -0
  489. package/page-scaffold/navigation/lottie-icons/public-api.d.ts.map +1 -0
  490. package/page-scaffold/navigation/lottie-icons/replace-lottie-colors.d.ts.map +1 -0
  491. package/page-scaffold/navigation/module.d.ts.map +1 -0
  492. package/page-scaffold/navigation/nav-menu/nav-item-li/nav-item-li.component.d.ts.map +1 -0
  493. package/page-scaffold/navigation/nav-menu/nav-item-ul/nav-item-ul.component.d.ts.map +1 -0
  494. package/page-scaffold/navigation/nav-menu/nav-menu.component.d.ts.map +1 -0
  495. package/page-scaffold/navigation/nav-menu/nav-menu.module.d.ts.map +1 -0
  496. package/page-scaffold/navigation/nav-menu/nav-menu.types.d.ts.map +1 -0
  497. package/page-scaffold/navigation/nav-menu/public-api.d.ts.map +1 -0
  498. package/page-scaffold/navigation/navconfig-loader/navconfig-loader.service.d.ts.map +1 -0
  499. package/page-scaffold/navigation/navconfig-loader/public-api.d.ts.map +1 -0
  500. package/page-scaffold/navigation/public-api.d.ts.map +1 -0
  501. package/page-scaffold/navigation/utils.d.ts.map +1 -0
  502. package/page-scaffold/page/context.service.d.ts.map +1 -0
  503. package/page-scaffold/page/helper-directives.d.ts.map +1 -0
  504. package/page-scaffold/page/notices/maintenance.component.d.ts.map +1 -0
  505. package/page-scaffold/page/notices/notice.component.d.ts.map +1 -0
  506. package/page-scaffold/page/page.component.d.ts.map +1 -0
  507. package/page-scaffold/page/page.module.d.ts.map +1 -0
  508. package/page-scaffold/page/public-api.d.ts.map +1 -0
  509. package/page-scaffold/page-header/account-menu/component/component.d.ts +0 -17
  510. package/page-scaffold/page-header/account-menu/component/component.d.ts.map +1 -0
  511. package/page-scaffold/page-header/account-menu/module.d.ts.map +1 -0
  512. package/page-scaffold/page-header/account-menu/public-api.d.ts.map +1 -0
  513. package/page-scaffold/page-header/common-layout/common-layout.module.d.ts.map +1 -0
  514. package/page-scaffold/page-header/common-layout/context.service.d.ts.map +1 -0
  515. package/page-scaffold/page-header/common-layout/namespace-select/component.d.ts.map +1 -0
  516. package/page-scaffold/page-header/common-layout/product-select/component.d.ts.map +1 -0
  517. package/page-scaffold/page-header/common-layout/product-select/service.d.ts.map +1 -0
  518. package/page-scaffold/page-header/common-layout/project-select/base-selection.d.ts.map +1 -0
  519. package/page-scaffold/page-header/common-layout/public-api.d.ts.map +1 -0
  520. package/page-scaffold/page-header/common-layout/store.service.d.ts.map +1 -0
  521. package/page-scaffold/page-header/common-layout/utils.d.ts.map +1 -0
  522. package/page-scaffold/page-header/component.d.ts.map +1 -0
  523. package/page-scaffold/page-header/enterprise-support-status/component.d.ts.map +1 -0
  524. package/page-scaffold/page-header/header-notify/component/header-notify.component.d.ts.map +1 -0
  525. package/page-scaffold/page-header/header-notify/component/notification-list/notification-list.component.d.ts.map +1 -0
  526. package/page-scaffold/page-header/header-notify/header-notify.module.d.ts.map +1 -0
  527. package/page-scaffold/page-header/header-notify/notify.service.d.ts.map +1 -0
  528. package/page-scaffold/page-header/header-notify/public-api.d.ts.map +1 -0
  529. package/page-scaffold/page-header/header-notify/utils.d.ts.map +1 -0
  530. package/page-scaffold/page-header/help-menu/component/component.d.ts.map +1 -0
  531. package/page-scaffold/page-header/help-menu/module.d.ts.map +1 -0
  532. package/page-scaffold/page-header/help-menu/public-api.d.ts.map +1 -0
  533. package/page-scaffold/page-header/module.d.ts.map +1 -0
  534. package/page-scaffold/page-header/public-api.d.ts.map +1 -0
  535. package/page-scaffold/public-api.d.ts.map +1 -0
  536. package/permission/constants.d.ts.map +1 -0
  537. package/permission/helpers.d.ts.map +1 -0
  538. package/permission/k8s-permission.service.d.ts.map +1 -0
  539. package/permission/permission.guard.d.ts.map +1 -0
  540. package/permission/public-api.d.ts.map +1 -0
  541. package/permission/types.d.ts.map +1 -0
  542. package/pie-derivative-chart/donut-status/component.d.ts.map +1 -0
  543. package/pie-derivative-chart/indicator-color.directive.d.ts.map +1 -0
  544. package/pie-derivative-chart/numerical-limit.pipe.d.ts.map +1 -0
  545. package/pie-derivative-chart/pie-derivative-chart.module.d.ts.map +1 -0
  546. package/pie-derivative-chart/public-api.d.ts.map +1 -0
  547. package/pie-derivative-chart/radial-bar/radial-bar-chart.component.d.ts.map +1 -0
  548. package/pie-derivative-chart/units.d.ts.map +1 -0
  549. package/pod-status/component.d.ts.map +1 -0
  550. package/pod-status/public-api.d.ts.map +1 -0
  551. package/pod-status/status.d.ts.map +1 -0
  552. package/pod-status/typings.d.ts.map +1 -0
  553. package/public-api.d.ts.map +1 -0
  554. package/searchable-selector/component.d.ts.map +1 -0
  555. package/searchable-selector/module.d.ts.map +1 -0
  556. package/searchable-selector/public-api.d.ts.map +1 -0
  557. package/skeleton/item/component.d.ts.map +1 -0
  558. package/skeleton/module.d.ts.map +1 -0
  559. package/skeleton/nav-skeleton/component.d.ts.map +1 -0
  560. package/skeleton/public-api.d.ts.map +1 -0
  561. package/table/component.d.ts.map +1 -0
  562. package/table/constants.d.ts.map +1 -0
  563. package/table/helper.d.ts +1 -1
  564. package/table/helper.d.ts.map +1 -0
  565. package/table/helpers.directive.d.ts.map +1 -0
  566. package/table/module.d.ts +1 -1
  567. package/table/module.d.ts.map +1 -0
  568. package/table/public-api.d.ts.map +1 -0
  569. package/table/types.d.ts.map +1 -0
  570. package/table/util.service.d.ts.map +1 -0
  571. package/translate/constants.d.ts.map +1 -0
  572. package/translate/helpers.d.ts.map +1 -0
  573. package/translate/i18n-assets-loader.d.ts.map +1 -0
  574. package/translate/i18n-config.d.ts.map +1 -0
  575. package/translate/intl-format.pipes.d.ts.map +1 -0
  576. package/translate/public-api.d.ts.map +1 -0
  577. package/translate/relative-time-manager.service.d.ts.map +1 -0
  578. package/translate/tokens.d.ts.map +1 -0
  579. package/translate/translate.directive.d.ts.map +1 -0
  580. package/translate/translate.module.d.ts.map +1 -0
  581. package/translate/translate.pipe.d.ts.map +1 -0
  582. package/translate/translate.service.d.ts.map +1 -0
  583. package/translate/types.d.ts.map +1 -0
  584. package/view-chart/custom-template/dropdown-legend.d.ts.map +1 -0
  585. package/view-chart/legend/legend.component.d.ts.map +1 -0
  586. package/view-chart/public-api.d.ts.map +1 -0
  587. package/view-chart/types.d.ts.map +1 -0
  588. package/view-chart/view-chart.component.d.ts +1 -1
  589. package/view-chart/view-chart.component.d.ts.map +1 -0
  590. package/view-chart/view-chart.module.d.ts.map +1 -0
  591. package/view-zchart/custom-template/dropdown-legend.d.ts.map +1 -0
  592. package/view-zchart/legend/legend.component.d.ts.map +1 -0
  593. package/view-zchart/public-api.d.ts.map +1 -0
  594. package/view-zchart/types.d.ts.map +1 -0
  595. package/view-zchart/units.d.ts.map +1 -0
  596. package/view-zchart/view-zchart.component.d.ts.map +1 -0
  597. package/view-zchart/view-zchart.module.d.ts.map +1 -0
  598. package/widget/card-section/card-section.component.d.ts.map +1 -0
  599. package/widget/confirm-delete/confirm-delete.component.d.ts.map +1 -0
  600. package/widget/confirm-delete/utils.d.ts.map +1 -0
  601. package/widget/current-time/component.d.ts.map +1 -0
  602. package/widget/date-range-picker/component.d.ts.map +1 -0
  603. package/widget/date-range-picker/public-api.d.ts.map +1 -0
  604. package/widget/date-range-picker/type.d.ts.map +1 -0
  605. package/widget/date-range-picker/util.d.ts.map +1 -0
  606. package/widget/field-set/column/component.d.ts.map +1 -0
  607. package/widget/field-set/group/component.d.ts.map +1 -0
  608. package/widget/field-set/index.d.ts.map +1 -0
  609. package/widget/field-set/item/component.d.ts.map +1 -0
  610. package/widget/foldable-block/component.d.ts.map +1 -0
  611. package/widget/foldable-item-in-table/component.d.ts.map +1 -0
  612. package/widget/loading-mask/loading-mask.component.d.ts.map +1 -0
  613. package/widget/password-input/component.d.ts.map +1 -0
  614. package/widget/public-api.d.ts.map +1 -0
  615. package/widget/relative-time/component.d.ts.map +1 -0
  616. package/widget/resource-label/component.d.ts.map +1 -0
  617. package/widget/resource-multi-select/component.d.ts.map +1 -0
  618. package/widget/resource-multi-select/util.d.ts.map +1 -0
  619. package/widget/search-panel/component.d.ts.map +1 -0
  620. package/widget/search-panel/helper.directive.d.ts.map +1 -0
  621. package/widget/search-panel/search-item/component.d.ts.map +1 -0
  622. package/widget/select-prefix-label/directive.d.ts.map +1 -0
  623. package/widget/status-icon/status-icon.component.d.ts.map +1 -0
  624. package/widget/tags-label/component.d.ts.map +1 -0
  625. package/widget/terminating-tag/component.d.ts.map +1 -0
  626. package/widget/text-ellipsis/component.d.ts.map +1 -0
  627. package/widget/text-tooltip/directive.d.ts.map +1 -0
  628. package/widget/text-with-url/component.d.ts.map +1 -0
  629. package/widget/widget.module.d.ts.map +1 -0
  630. package/widget/zero-state/zero-state.component.d.ts.map +1 -0
  631. package/window-channel/base-window-channel.d.ts.map +1 -0
  632. package/window-channel/directives/host-link.directive.d.ts.map +1 -0
  633. package/window-channel/host-window-channel.service.d.ts.map +1 -0
  634. package/window-channel/plugin-window-channel.service.d.ts.map +1 -0
  635. package/window-channel/public-api.d.ts.map +1 -0
  636. package/window-channel/utils.d.ts.map +1 -0
  637. package/workload-status-icon/component.d.ts.map +1 -0
  638. package/workload-status-icon/public-api.d.ts.map +1 -0
  639. package/xterm/public-api.d.ts.map +1 -0
  640. package/xterm/xterm-terminal/xterm-terminal.component.d.ts.map +1 -0
  641. package/xterm/xterm-terminal/xterm-terminal.directive.d.ts.map +1 -0
  642. package/xterm/xterm.component.d.ts.map +1 -0
@@ -2,17 +2,21 @@ import { getTopWindow, NOT_NOTIFY_ON_ERROR_HEADERS, } from '../core/public-api';
2
2
  import { getInitUrl, recordInitUrl } from './app-init-url';
3
3
  import { CALLBACK_API, CODE_KEY, EXTERNAL_REDIRECT_API, ID_TOKEN_KEY, LOGIN_API, LOGOUT_API, REDIRECT_URIS, } from './constants';
4
4
  import { cleanStorageToken, readStorageToken, refreshStorageAliveRecord, writeStorageToken, } from './storage-token';
5
+ import { fetchTokenApi, requestTokenInfo, requestTokenRefresh, resolveTokenInfoWithRefresh, resetAuthRuntimeCache, setCachedAccountInfo, } from './token-client';
5
6
  let AUTHORIZATION_STATE;
7
+ let checkTokenPromise = null;
8
+ let refreshTokenPromise = null;
6
9
  export async function fetchAuthorizationState() {
7
- if (AUTHORIZATION_STATE !== undefined) {
8
- return AUTHORIZATION_STATE;
9
- }
10
10
  recordInitUrl();
11
- const config = await getAuthConfiguration();
12
- const state = await getExistedToken(config);
13
- const authorizationState = { ...config, ...state };
14
- initAuthorizationState(authorizationState);
15
- return authorizationState;
11
+ const { authUrl, state: csrfState } = await getAuthConfiguration();
12
+ initAuthorizationState({ authUrl });
13
+ await getExistingToken(csrfState);
14
+ const info = await resolveTokenInfoWithRefresh();
15
+ if (!info) {
16
+ return redirectToLogin();
17
+ }
18
+ AUTHORIZATION_STATE.info = info;
19
+ return AUTHORIZATION_STATE;
16
20
  }
17
21
  export function getAuthorizationState() {
18
22
  if (AUTHORIZATION_STATE === undefined) {
@@ -30,23 +34,52 @@ export function initAuthorizationState(state) {
30
34
  }
31
35
  export function attachAuthorizationHeader() {
32
36
  const idToken = readStorageToken();
33
- return idToken
34
- ? {
35
- Authorization: `Bearer ${idToken}`,
37
+ return idToken ? { Authorization: `Bearer ${idToken}` } : {};
38
+ }
39
+ export async function checkAuthorizationToken() {
40
+ if (checkTokenPromise) {
41
+ return checkTokenPromise;
42
+ }
43
+ checkTokenPromise = requestTokenInfo(true)
44
+ .then(info => {
45
+ if (!info) {
46
+ throw new Error('Authorization token is invalid');
36
47
  }
37
- : {};
48
+ getAuthorizationState().info = info;
49
+ return info;
50
+ })
51
+ .finally(() => {
52
+ checkTokenPromise = null;
53
+ });
54
+ return checkTokenPromise;
55
+ }
56
+ export async function refreshAuthorizationToken() {
57
+ if (refreshTokenPromise) {
58
+ return refreshTokenPromise;
59
+ }
60
+ refreshTokenPromise = requestTokenRefresh()
61
+ .then(tokenResponse => {
62
+ if (!tokenResponse) {
63
+ throw new Error('Failed to refresh token');
64
+ }
65
+ return tokenResponse;
66
+ })
67
+ .finally(() => {
68
+ refreshTokenPromise = null;
69
+ });
70
+ return refreshTokenPromise;
38
71
  }
39
72
  export async function logoutAudit() {
40
- return fetch(LOGOUT_API, {
41
- headers: {
42
- ...attachAuthorizationHeader(),
43
- ...NOT_NOTIFY_ON_ERROR_HEADERS,
44
- },
73
+ return fetchTokenApi(LOGOUT_API, {
74
+ headers: NOT_NOTIFY_ON_ERROR_HEADERS,
45
75
  })
46
76
  .then(res => res?.json())
47
77
  .catch(() => null); // logout API 未指定 logout_redirect_url 时 res?.json() 会失败
48
78
  }
49
79
  export function logout(returnCurrentPage = false) {
80
+ checkTokenPromise = null;
81
+ refreshTokenPromise = null;
82
+ resetAuthRuntimeCache();
50
83
  cleanStorageToken();
51
84
  const logoutUrl = typeof returnCurrentPage === 'string' && returnCurrentPage !== ''
52
85
  ? returnCurrentPage
@@ -89,51 +122,39 @@ function replaceRedirectUrl(dexUrl, redirectUrl) {
89
122
  return `${path}?${replacedQueryParams}`;
90
123
  }
91
124
  async function getAuthConfiguration() {
92
- return fetch(LOGIN_API)
93
- .then(res => res.json())
94
- .then(({ auth_url: authUrl, state, logout_url: logoutUrl, }) => ({
95
- authUrl,
96
- state,
97
- logoutUrl,
98
- }));
99
- }
100
- async function getExistedToken(config) {
101
- try {
102
- return getTokenFromLocal(config);
103
- }
104
- catch {
105
- return {};
106
- }
125
+ const { auth_url: authUrl, state } = await fetch(LOGIN_API).then(res => res.json());
126
+ return { authUrl, state };
107
127
  }
108
- async function getTokenFromLocal(config) {
128
+ async function getExistingToken(csrfState) {
109
129
  const { queryParams, hashParams } = getParams();
110
130
  const code = queryParams[CODE_KEY] || hashParams[CODE_KEY];
111
131
  const idToken = queryParams[ID_TOKEN_KEY] || hashParams[ID_TOKEN_KEY];
112
132
  if (!code && !idToken) {
113
- return null;
133
+ return;
114
134
  }
115
135
  refreshStorageAliveRecord();
116
- return code ? setCookieByCode(code, config.state) : setCookieByToken(idToken);
136
+ if (code) {
137
+ await setCookieByCode(code, csrfState);
138
+ }
139
+ else {
140
+ await setCookieByToken(idToken);
141
+ }
117
142
  }
118
143
  async function setCookieByCode(code, state) {
119
144
  const queryParams = new URLSearchParams({ code, state });
120
145
  const tokenResponse = await fetch(`${CALLBACK_API}?${queryParams.toString()}`).then(res => res.json());
121
- return mapTokenResponse(tokenResponse);
146
+ mapTokenResponse(tokenResponse);
122
147
  }
123
148
  async function setCookieByToken(idToken) {
124
149
  const queryParams = new URLSearchParams({ id_token: idToken });
125
150
  const tokenResponse = await fetch(`${CALLBACK_API}?${queryParams.toString()}`).then(res => res.json());
126
- return mapTokenResponse(tokenResponse);
151
+ mapTokenResponse(tokenResponse);
127
152
  }
128
153
  function mapTokenResponse(response) {
129
- const { id_token: idToken, token_type, token_storage, expire_at, issued_at, } = response;
130
- writeStorageToken(idToken);
131
- return {
132
- storageType: token_storage,
133
- tokenType: token_type,
134
- expireAt: expire_at,
135
- issuedAt: issued_at,
136
- };
154
+ if (response.id_token) {
155
+ writeStorageToken(response.id_token);
156
+ }
157
+ setCachedAccountInfo(undefined);
137
158
  }
138
159
  function getParams() {
139
160
  const initUrl = getInitUrl();
@@ -147,11 +168,21 @@ function parseParams(query) {
147
168
  return {};
148
169
  }
149
170
  return query.split('&').reduce((acc, param) => {
150
- const [key, value] = param.split('=');
151
- return {
152
- ...acc,
153
- [key]: value,
154
- };
171
+ if (!param) {
172
+ return acc;
173
+ }
174
+ const separatorIndex = param.indexOf('=');
175
+ const key = separatorIndex === -1 ? param : param.slice(0, separatorIndex);
176
+ const value = separatorIndex === -1 ? '' : param.slice(separatorIndex + 1);
177
+ if (!key) {
178
+ return acc;
179
+ }
180
+ acc[key] = value;
181
+ return acc;
155
182
  }, {});
156
183
  }
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hdXRob3JpemF0aW9uL2F1dGhvcml6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFDWiwyQkFBMkIsR0FFNUIsTUFBTSxvQkFBb0IsQ0FBQztBQUc1QixPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFDTCxZQUFZLEVBQ1osUUFBUSxFQUNSLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixhQUFhLEdBQ2QsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIseUJBQXlCLEVBQ3pCLGlCQUFpQixHQUNsQixNQUFNLGlCQUFpQixDQUFDO0FBbUJ6QixJQUFJLG1CQUF1QyxDQUFDO0FBRTVDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsdUJBQXVCO0lBQzNDLElBQUksbUJBQW1CLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDdEMsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsYUFBYSxFQUFFLENBQUM7SUFFaEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxvQkFBb0IsRUFBRSxDQUFDO0lBRTVDLE1BQU0sS0FBSyxHQUFHLE1BQU0sZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTVDLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBRW5ELHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFM0MsT0FBTyxrQkFBa0IsQ0FBQztBQUM1QixDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQjtJQUNuQyxJQUFJLG1CQUFtQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsT0FBTyxtQkFBbUIsQ0FBQztBQUM3QixDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEtBQXlCO0lBQzlELElBQ0UsbUJBQW1CLEtBQUssU0FBUztRQUNqQyx1Q0FBdUM7UUFDdkMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUNYLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELG1CQUFtQixHQUFHLEtBQUssQ0FBQztBQUM5QixDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QjtJQUN2QyxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ25DLE9BQU8sT0FBTztRQUNaLENBQUMsQ0FBQztZQUNFLGFBQWEsRUFBRSxVQUFVLE9BQU8sRUFBRTtTQUNuQztRQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDVCxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXO0lBQy9CLE9BQU8sS0FBSyxDQUFDLFVBQVUsRUFBRTtRQUN2QixPQUFPLEVBQUU7WUFDUCxHQUFHLHlCQUF5QixFQUFFO1lBQzlCLEdBQUcsMkJBQTJCO1NBQy9CO0tBQ0YsQ0FBQztTQUNDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUN4QixLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx1REFBdUQ7QUFDL0UsQ0FBQztBQUVELE1BQU0sVUFBVSxNQUFNLENBQUMsb0JBQXNDLEtBQUs7SUFDaEUsaUJBQWlCLEVBQUUsQ0FBQztJQUVwQixNQUFNLFNBQVMsR0FDYixPQUFPLGlCQUFpQixLQUFLLFFBQVEsSUFBSSxpQkFBaUIsS0FBSyxFQUFFO1FBQy9ELENBQUMsQ0FBQyxpQkFBaUI7UUFDbkIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUV4QyxJQUFJLENBQUM7UUFDSCxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztJQUMzQyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsMEVBQTBFO1FBQzFFLFFBQVEsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO0lBQzVCLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWE7SUFDNUMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVyQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2IsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sR0FBRyxxQkFBcUIsaUJBQWlCLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQsT0FBTyxHQUFHLHFCQUFxQixpQkFBaUIsS0FBSyxFQUFFLENBQUM7QUFDMUQsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLGlCQUFpQixHQUFHLEtBQUs7SUFDN0MsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLHFCQUFxQixFQUFFLENBQUM7SUFDNUMsT0FBTyxrQkFBa0IsQ0FDdkIsT0FBTztJQUNQLGdFQUFnRTtJQUNoRSx1SUFBdUk7SUFDdkksMkNBQTJDO0lBQzNDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLGlCQUFpQixDQUN4RSxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsTUFBYyxFQUFFLFdBQW1CO0lBQzdELE1BQU0sQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUU5QyxNQUFNLG1CQUFtQixHQUFHLFdBQVc7U0FDcEMsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUNWLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNWLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQyxPQUFPLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUM3QyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRWIsT0FBTyxHQUFHLElBQUksSUFBSSxtQkFBbUIsRUFBRSxDQUFDO0FBQzFDLENBQUM7QUFFRCxLQUFLLFVBQVUsb0JBQW9CO0lBQ2pDLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQztTQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDdkIsSUFBSSxDQUNILENBQUMsRUFDQyxRQUFRLEVBQUUsT0FBTyxFQUNqQixLQUFLLEVBQ0wsVUFBVSxFQUFFLFNBQVMsR0FLdEIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNMLE9BQU87UUFDUCxLQUFLO1FBQ0wsU0FBUztLQUNWLENBQUMsQ0FDSCxDQUFDO0FBQ04sQ0FBQztBQUVELEtBQUssVUFBVSxlQUFlLENBQUMsTUFBMEI7SUFDdkQsSUFBSSxDQUFDO1FBQ0gsT0FBTyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxFQUF3QixDQUFDO0lBQ2xDLENBQUM7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLGlCQUFpQixDQUM5QixNQUEwQjtJQUUxQixNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBRWhELE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0QsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUV0RSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQseUJBQXlCLEVBQUUsQ0FBQztJQUU1QixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFFRCxLQUFLLFVBQVUsZUFBZSxDQUFDLElBQVksRUFBRSxLQUFhO0lBQ3hELE1BQU0sV0FBVyxHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFFekQsTUFBTSxhQUFhLEdBQWtCLE1BQU0sS0FBSyxDQUM5QyxHQUFHLFlBQVksSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDNUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUxQixPQUFPLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsT0FBZTtJQUM3QyxNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRS9ELE1BQU0sYUFBYSxHQUFrQixNQUFNLEtBQUssQ0FDOUMsR0FBRyxZQUFZLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQzVDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFFMUIsT0FBTyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxRQUF1QjtJQUMvQyxNQUFNLEVBQ0osUUFBUSxFQUFFLE9BQU8sRUFDakIsVUFBVSxFQUNWLGFBQWEsRUFDYixTQUFTLEVBQ1QsU0FBUyxHQUNWLEdBQUcsUUFBUSxDQUFDO0lBRWIsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFM0IsT0FBTztRQUNMLFdBQVcsRUFBRSxhQUFhO1FBQzFCLFNBQVMsRUFBRSxVQUFVO1FBQ3JCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLFFBQVEsRUFBRSxTQUFTO0tBQ3BCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxTQUFTO0lBQ2hCLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxDQUFDO0lBRTdCLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXRDLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FDN0IsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDeEQsQ0FBQztJQUVGLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FDNUIsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDcEQsQ0FBQztJQUVGLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLENBQUM7QUFDckMsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEtBQWE7SUFDaEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUM1QyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFdEMsT0FBTztZQUNMLEdBQUcsR0FBRztZQUNOLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSztTQUNiLENBQUM7SUFDSixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZ2V0VG9wV2luZG93LFxuICBOT1RfTk9USUZZX09OX0VSUk9SX0hFQURFUlMsXG4gIFN0cmluZ01hcCxcbn0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IEFjY291bnRJbmZvIH0gZnJvbSAnLi4vcGFnZS1zY2FmZm9sZC9wdWJsaWMtYXBpJztcblxuaW1wb3J0IHsgZ2V0SW5pdFVybCwgcmVjb3JkSW5pdFVybCB9IGZyb20gJy4vYXBwLWluaXQtdXJsJztcbmltcG9ydCB7XG4gIENBTExCQUNLX0FQSSxcbiAgQ09ERV9LRVksXG4gIEVYVEVSTkFMX1JFRElSRUNUX0FQSSxcbiAgSURfVE9LRU5fS0VZLFxuICBMT0dJTl9BUEksXG4gIExPR09VVF9BUEksXG4gIFJFRElSRUNUX1VSSVMsXG59IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIGNsZWFuU3RvcmFnZVRva2VuLFxuICByZWFkU3RvcmFnZVRva2VuLFxuICByZWZyZXNoU3RvcmFnZUFsaXZlUmVjb3JkLFxuICB3cml0ZVN0b3JhZ2VUb2tlbixcbn0gZnJvbSAnLi9zdG9yYWdlLXRva2VuJztcblxuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemF0aW9uU3RhdGUge1xuICBleHBpcmVBdD86IHN0cmluZztcbiAgaXNzdWVkQXQ/OiBzdHJpbmc7XG4gIHN0YXRlPzogc3RyaW5nO1xuICBhdXRoVXJsPzogc3RyaW5nO1xuICBsb2dvdXRVcmw/OiBzdHJpbmc7XG4gIGluZm8/OiBBY2NvdW50SW5mbztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb2tlblJlc3BvbnNlIHtcbiAgdG9rZW5fc3RvcmFnZTogc3RyaW5nO1xuICB0b2tlbl90eXBlOiBzdHJpbmc7XG4gIGV4cGlyZV9hdDogc3RyaW5nO1xuICBpc3N1ZWRfYXQ6IHN0cmluZztcbiAgaWRfdG9rZW4/OiBzdHJpbmc7XG59XG5cbmxldCBBVVRIT1JJWkFUSU9OX1NUQVRFOiBBdXRob3JpemF0aW9uU3RhdGU7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaEF1dGhvcml6YXRpb25TdGF0ZSgpIHtcbiAgaWYgKEFVVEhPUklaQVRJT05fU1RBVEUgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBBVVRIT1JJWkFUSU9OX1NUQVRFO1xuICB9XG5cbiAgcmVjb3JkSW5pdFVybCgpO1xuXG4gIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGdldEF1dGhDb25maWd1cmF0aW9uKCk7XG5cbiAgY29uc3Qgc3RhdGUgPSBhd2FpdCBnZXRFeGlzdGVkVG9rZW4oY29uZmlnKTtcblxuICBjb25zdCBhdXRob3JpemF0aW9uU3RhdGUgPSB7IC4uLmNvbmZpZywgLi4uc3RhdGUgfTtcblxuICBpbml0QXV0aG9yaXphdGlvblN0YXRlKGF1dGhvcml6YXRpb25TdGF0ZSk7XG5cbiAgcmV0dXJuIGF1dGhvcml6YXRpb25TdGF0ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEF1dGhvcml6YXRpb25TdGF0ZSgpIHtcbiAgaWYgKEFVVEhPUklaQVRJT05fU1RBVEUgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQXV0aG9yaXphdGlvblN0YXRlIGhhdmUgbm90IGJlZW4gaW5pdGlhbGl6ZWQnKTtcbiAgfVxuXG4gIHJldHVybiBBVVRIT1JJWkFUSU9OX1NUQVRFO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdEF1dGhvcml6YXRpb25TdGF0ZShzdGF0ZTogQXV0aG9yaXphdGlvblN0YXRlKTogdm9pZCB7XG4gIGlmIChcbiAgICBBVVRIT1JJWkFUSU9OX1NUQVRFICE9PSB1bmRlZmluZWQgJiZcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0tIHdlYnBhY2sgc3BlY2lmaWNcbiAgICAhbW9kdWxlLmhvdFxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2F1dGhvcml6YXRpb25TdGF0ZSBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQnKTtcbiAgfVxuXG4gIEFVVEhPUklaQVRJT05fU1RBVEUgPSBzdGF0ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF0dGFjaEF1dGhvcml6YXRpb25IZWFkZXIoKTogeyBBdXRob3JpemF0aW9uPzogc3RyaW5nIH0ge1xuICBjb25zdCBpZFRva2VuID0gcmVhZFN0b3JhZ2VUb2tlbigpO1xuICByZXR1cm4gaWRUb2tlblxuICAgID8ge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7aWRUb2tlbn1gLFxuICAgICAgfVxuICAgIDoge307XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2dvdXRBdWRpdCgpOiBQcm9taXNlPHsgbG9nb3V0X3JlZGlyZWN0X3VybD86IHN0cmluZyB9PiB7XG4gIHJldHVybiBmZXRjaChMT0dPVVRfQVBJLCB7XG4gICAgaGVhZGVyczoge1xuICAgICAgLi4uYXR0YWNoQXV0aG9yaXphdGlvbkhlYWRlcigpLFxuICAgICAgLi4uTk9UX05PVElGWV9PTl9FUlJPUl9IRUFERVJTLFxuICAgIH0sXG4gIH0pXG4gICAgLnRoZW4ocmVzID0+IHJlcz8uanNvbigpKVxuICAgIC5jYXRjaCgoKSA9PiBudWxsKTsgLy8gbG9nb3V0IEFQSSDmnKrmjIflrpogbG9nb3V0X3JlZGlyZWN0X3VybCDml7YgcmVzPy5qc29uKCkg5Lya5aSx6LSlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2dvdXQocmV0dXJuQ3VycmVudFBhZ2U6IGJvb2xlYW4gfCBzdHJpbmcgPSBmYWxzZSkge1xuICBjbGVhblN0b3JhZ2VUb2tlbigpO1xuXG4gIGNvbnN0IGxvZ291dFVybCA9XG4gICAgdHlwZW9mIHJldHVybkN1cnJlbnRQYWdlID09PSAnc3RyaW5nJyAmJiByZXR1cm5DdXJyZW50UGFnZSAhPT0gJydcbiAgICAgID8gcmV0dXJuQ3VycmVudFBhZ2VcbiAgICAgIDogZGV4TG9nb3V0VXJsKCEhcmV0dXJuQ3VycmVudFBhZ2UpO1xuXG4gIHRyeSB7XG4gICAgZ2V0VG9wV2luZG93KCkubG9jYXRpb24uaHJlZiA9IGxvZ291dFVybDtcbiAgfSBjYXRjaCB7XG4gICAgLy8gc2hvdWxkIG5ldmVyIGhhcHBlbiwganVzdCBmb3Igcm9idXN0bmVzcyBpbiBjYXNlIG9mIGNyb3NzLW9yaWdpbiBpZnJhbWVcbiAgICBsb2NhdGlvbi5ocmVmID0gbG9nb3V0VXJsO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWRpcmVjdFNTT0VudHJ5KGVudHJ5OiBzdHJpbmcpIHtcbiAgY29uc3QgaGFzUXVlcnkgPSBlbnRyeS5pbmNsdWRlcygnPycpO1xuXG4gIGlmIChoYXNRdWVyeSkge1xuICAgIGNvbnN0IFt1cmwsIHF1ZXJ5XSA9IGVudHJ5LnNwbGl0KCc/Jyk7XG4gICAgcmV0dXJuIGAke0VYVEVSTkFMX1JFRElSRUNUX0FQSX0/cmVkaXJlY3RfdXJsPSR7dXJsfSYke3F1ZXJ5fWA7XG4gIH1cblxuICByZXR1cm4gYCR7RVhURVJOQUxfUkVESVJFQ1RfQVBJfT9yZWRpcmVjdF91cmw9JHtlbnRyeX1gO1xufVxuXG5mdW5jdGlvbiBkZXhMb2dvdXRVcmwocmV0dXJuQ3VycmVudFBhZ2UgPSBmYWxzZSkge1xuICBjb25zdCB7IGF1dGhVcmwgfSA9IGdldEF1dGhvcml6YXRpb25TdGF0ZSgpO1xuICByZXR1cm4gcmVwbGFjZVJlZGlyZWN0VXJsKFxuICAgIGF1dGhVcmwsXG4gICAgLy8gYXV0aFVybCDkuK3nmoQgcmVkaXJlY3RVcmwg5piv5qC56Lev55Sx77yM5qC56Lev55Sx5LqM5qyh6YeN5a6a5ZCR5ZueIHBvcnRhbCDml7bkvJrkuKLlpLEgY29kZSDlr7zoh7TnmbvlvZXlpLHotKVcbiAgICAvLyDlpoLmnpzlkI7mnJ/mnInlrprliLbljJbopoHmsYLpu5jorqTpppbpobXkuI3mmK8gcG9ydGFs77yM5Y+v5Lul5pS55Zue5LmL5YmN55qE5pa55qGI77yM5L2/55So5rWP6KeI5Zmo5a+86Iiq5omT5byAIGxvZ291dFVybO+8jOeEtuWQjiBkZXgg6YeN5a6a5ZCR5Yiw5qC56Lev55Sx77yM5qC56Lev55Sx6YeN5a6a5ZCR5Yiw6buY6K6k6aaW6aG177yM6aaW6aG15YaN5bCGIGF1dGhVcmwg5Lit55qEIHJlZGlyZWN0VXJsIOabv+aNouS4uuW9k+WJjSB1cmwg6Lez6L2s5YiwIGRleCDov5vooYznmbvlvZXvvJtcbiAgICAvLyDmnIDlpb3njq/looPlj5jph4/lop7liqDpu5jorqTpppbpobXlnLDlnYDmiJbogIUgZGV4IHJlZGlyZWN0VXJsIOebtOaOpeaYr+ato+ehruWcsOWdgFxuICAgIHJldHVybkN1cnJlbnRQYWdlID8gbG9jYXRpb24uaHJlZiA6IGxvY2F0aW9uLm9yaWdpbiArICcvY29uc29sZS1wb3J0YWwnLFxuICApO1xufVxuXG5mdW5jdGlvbiByZXBsYWNlUmVkaXJlY3RVcmwoZGV4VXJsOiBzdHJpbmcsIHJlZGlyZWN0VXJsOiBzdHJpbmcpIHtcbiAgY29uc3QgW3BhdGgsIHF1ZXJ5UGFyYW1zXSA9IGRleFVybC5zcGxpdCgnPycpO1xuXG4gIGNvbnN0IHJlcGxhY2VkUXVlcnlQYXJhbXMgPSBxdWVyeVBhcmFtc1xuICAgIC5zcGxpdCgnJicpXG4gICAgLm1hcChwYWlyID0+IHtcbiAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IHBhaXIuc3BsaXQoJz0nKTtcbiAgICAgIHJldHVybiBSRURJUkVDVF9VUklTLmhhcyhrZXkpXG4gICAgICAgID8gYCR7a2V5fT0ke2VuY29kZVVSSUNvbXBvbmVudChyZWRpcmVjdFVybCl9YFxuICAgICAgICA6IGAke2tleX09JHt2YWx1ZX1gO1xuICAgIH0pXG4gICAgLmpvaW4oJyYnKTtcblxuICByZXR1cm4gYCR7cGF0aH0/JHtyZXBsYWNlZFF1ZXJ5UGFyYW1zfWA7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEF1dGhDb25maWd1cmF0aW9uKCkge1xuICByZXR1cm4gZmV0Y2goTE9HSU5fQVBJKVxuICAgIC50aGVuKHJlcyA9PiByZXMuanNvbigpKVxuICAgIC50aGVuKFxuICAgICAgKHtcbiAgICAgICAgYXV0aF91cmw6IGF1dGhVcmwsXG4gICAgICAgIHN0YXRlLFxuICAgICAgICBsb2dvdXRfdXJsOiBsb2dvdXRVcmwsXG4gICAgICB9OiB7XG4gICAgICAgIGF1dGhfdXJsOiBzdHJpbmc7XG4gICAgICAgIHN0YXRlOiBzdHJpbmc7XG4gICAgICAgIGxvZ291dF91cmw6IHN0cmluZztcbiAgICAgIH0pID0+ICh7XG4gICAgICAgIGF1dGhVcmwsXG4gICAgICAgIHN0YXRlLFxuICAgICAgICBsb2dvdXRVcmwsXG4gICAgICB9KSxcbiAgICApO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRFeGlzdGVkVG9rZW4oY29uZmlnOiBBdXRob3JpemF0aW9uU3RhdGUpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZ2V0VG9rZW5Gcm9tTG9jYWwoY29uZmlnKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHt9IGFzIEF1dGhvcml6YXRpb25TdGF0ZTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRUb2tlbkZyb21Mb2NhbChcbiAgY29uZmlnOiBBdXRob3JpemF0aW9uU3RhdGUsXG4pOiBQcm9taXNlPEF1dGhvcml6YXRpb25TdGF0ZT4ge1xuICBjb25zdCB7IHF1ZXJ5UGFyYW1zLCBoYXNoUGFyYW1zIH0gPSBnZXRQYXJhbXMoKTtcblxuICBjb25zdCBjb2RlID0gcXVlcnlQYXJhbXNbQ09ERV9LRVldIHx8IGhhc2hQYXJhbXNbQ09ERV9LRVldO1xuICBjb25zdCBpZFRva2VuID0gcXVlcnlQYXJhbXNbSURfVE9LRU5fS0VZXSB8fCBoYXNoUGFyYW1zW0lEX1RPS0VOX0tFWV07XG5cbiAgaWYgKCFjb2RlICYmICFpZFRva2VuKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZWZyZXNoU3RvcmFnZUFsaXZlUmVjb3JkKCk7XG5cbiAgcmV0dXJuIGNvZGUgPyBzZXRDb29raWVCeUNvZGUoY29kZSwgY29uZmlnLnN0YXRlKSA6IHNldENvb2tpZUJ5VG9rZW4oaWRUb2tlbik7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNldENvb2tpZUJ5Q29kZShjb2RlOiBzdHJpbmcsIHN0YXRlOiBzdHJpbmcpIHtcbiAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHsgY29kZSwgc3RhdGUgfSk7XG5cbiAgY29uc3QgdG9rZW5SZXNwb25zZTogVG9rZW5SZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgIGAke0NBTExCQUNLX0FQSX0/JHtxdWVyeVBhcmFtcy50b1N0cmluZygpfWAsXG4gICkudGhlbihyZXMgPT4gcmVzLmpzb24oKSk7XG5cbiAgcmV0dXJuIG1hcFRva2VuUmVzcG9uc2UodG9rZW5SZXNwb25zZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNldENvb2tpZUJ5VG9rZW4oaWRUb2tlbjogc3RyaW5nKSB7XG4gIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7IGlkX3Rva2VuOiBpZFRva2VuIH0pO1xuXG4gIGNvbnN0IHRva2VuUmVzcG9uc2U6IFRva2VuUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChcbiAgICBgJHtDQUxMQkFDS19BUEl9PyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gLFxuICApLnRoZW4ocmVzID0+IHJlcy5qc29uKCkpO1xuXG4gIHJldHVybiBtYXBUb2tlblJlc3BvbnNlKHRva2VuUmVzcG9uc2UpO1xufVxuXG5mdW5jdGlvbiBtYXBUb2tlblJlc3BvbnNlKHJlc3BvbnNlOiBUb2tlblJlc3BvbnNlKSB7XG4gIGNvbnN0IHtcbiAgICBpZF90b2tlbjogaWRUb2tlbixcbiAgICB0b2tlbl90eXBlLFxuICAgIHRva2VuX3N0b3JhZ2UsXG4gICAgZXhwaXJlX2F0LFxuICAgIGlzc3VlZF9hdCxcbiAgfSA9IHJlc3BvbnNlO1xuXG4gIHdyaXRlU3RvcmFnZVRva2VuKGlkVG9rZW4pO1xuXG4gIHJldHVybiB7XG4gICAgc3RvcmFnZVR5cGU6IHRva2VuX3N0b3JhZ2UsXG4gICAgdG9rZW5UeXBlOiB0b2tlbl90eXBlLFxuICAgIGV4cGlyZUF0OiBleHBpcmVfYXQsXG4gICAgaXNzdWVkQXQ6IGlzc3VlZF9hdCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0UGFyYW1zKCkge1xuICBjb25zdCBpbml0VXJsID0gZ2V0SW5pdFVybCgpO1xuXG4gIGNvbnN0IGluaXRMb2NhdGlvbiA9IG5ldyBVUkwoaW5pdFVybCk7XG5cbiAgY29uc3QgcXVlcnlQYXJhbXMgPSBwYXJzZVBhcmFtcyhcbiAgICBpbml0TG9jYXRpb24uc2VhcmNoID8gaW5pdExvY2F0aW9uLnNlYXJjaC5zbGljZSgxKSA6ICcnLFxuICApO1xuXG4gIGNvbnN0IGhhc2hQYXJhbXMgPSBwYXJzZVBhcmFtcyhcbiAgICBpbml0TG9jYXRpb24uaGFzaCA/IGluaXRMb2NhdGlvbi5oYXNoLnNsaWNlKDEpIDogJycsXG4gICk7XG5cbiAgcmV0dXJuIHsgcXVlcnlQYXJhbXMsIGhhc2hQYXJhbXMgfTtcbn1cblxuZnVuY3Rpb24gcGFyc2VQYXJhbXMocXVlcnk6IHN0cmluZyk6IFN0cmluZ01hcCB7XG4gIGlmICghcXVlcnkpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICByZXR1cm4gcXVlcnkuc3BsaXQoJyYnKS5yZWR1Y2UoKGFjYywgcGFyYW0pID0+IHtcbiAgICBjb25zdCBba2V5LCB2YWx1ZV0gPSBwYXJhbS5zcGxpdCgnPScpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjYyxcbiAgICAgIFtrZXldOiB2YWx1ZSxcbiAgICB9O1xuICB9LCB7fSk7XG59XG4iXX0=
184
+ function redirectToLogin() {
185
+ logout(true);
186
+ return new Promise(() => undefined);
187
+ }
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hdXRob3JpemF0aW9uL2F1dGhvcml6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFDWiwyQkFBMkIsR0FFNUIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFDTCxZQUFZLEVBQ1osUUFBUSxFQUNSLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixhQUFhLEdBQ2QsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIseUJBQXlCLEVBQ3pCLGlCQUFpQixHQUNsQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFDTCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQiwyQkFBMkIsRUFDM0IscUJBQXFCLEVBQ3JCLG9CQUFvQixHQUNyQixNQUFNLGdCQUFnQixDQUFDO0FBUXhCLElBQUksbUJBQXVDLENBQUM7QUFDNUMsSUFBSSxpQkFBaUIsR0FBZ0MsSUFBSSxDQUFDO0FBQzFELElBQUksbUJBQW1CLEdBQWtDLElBQUksQ0FBQztBQUU5RCxNQUFNLENBQUMsS0FBSyxVQUFVLHVCQUF1QjtJQUMzQyxhQUFhLEVBQUUsQ0FBQztJQUVoQixNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLG9CQUFvQixFQUFFLENBQUM7SUFFbkUsc0JBQXNCLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRXBDLE1BQU0sZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFbEMsTUFBTSxJQUFJLEdBQUcsTUFBTSwyQkFBMkIsRUFBRSxDQUFD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QUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUMzRSxNQUFNLEtBQUssR0FBRyxjQUFjLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFM0UsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO1FBRUQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUVqQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUFlLENBQUMsQ0FBQztBQUN0QixDQUFDO0FBRUQsU0FBUyxlQUFlO0lBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNiLE9BQU8sSUFBSSxPQUFPLENBQVEsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGdldFRvcFdpbmRvdyxcbiAgTk9UX05PVElGWV9PTl9FUlJPUl9IRUFERVJTLFxuICBTdHJpbmdNYXAsXG59IGZyb20gJy4uL2NvcmUvcHVibGljLWFwaSc7XG5cbmltcG9ydCB7IGdldEluaXRVcmwsIHJlY29yZEluaXRVcmwgfSBmcm9tICcuL2FwcC1pbml0LXVybCc7XG5pbXBvcnQge1xuICBDQUxMQkFDS19BUEksXG4gIENPREVfS0VZLFxuICBFWFRFUk5BTF9SRURJUkVDVF9BUEksXG4gIElEX1RPS0VOX0tFWSxcbiAgTE9HSU5fQVBJLFxuICBMT0dPVVRfQVBJLFxuICBSRURJUkVDVF9VUklTLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBjbGVhblN0b3JhZ2VUb2tlbixcbiAgcmVhZFN0b3JhZ2VUb2tlbixcbiAgcmVmcmVzaFN0b3JhZ2VBbGl2ZVJlY29yZCxcbiAgd3JpdGVTdG9yYWdlVG9rZW4sXG59IGZyb20gJy4vc3RvcmFnZS10b2tlbic7XG5pbXBvcnQge1xuICBmZXRjaFRva2VuQXBpLFxuICByZXF1ZXN0VG9rZW5JbmZvLFxuICByZXF1ZXN0VG9rZW5SZWZyZXNoLFxuICByZXNvbHZlVG9rZW5JbmZvV2l0aFJlZnJlc2gsXG4gIHJlc2V0QXV0aFJ1bnRpbWVDYWNoZSxcbiAgc2V0Q2FjaGVkQWNjb3VudEluZm8sXG59IGZyb20gJy4vdG9rZW4tY2xpZW50JztcbmltcG9ydCB0eXBlIHsgQWNjb3VudEluZm8sIFRva2VuUmVzcG9uc2UgfSBmcm9tICcuL3Rva2VuLWNsaWVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yaXphdGlvblN0YXRlIHtcbiAgYXV0aFVybD86IHN0cmluZztcbiAgaW5mbz86IEFjY291bnRJbmZvO1xufVxuXG5sZXQgQVVUSE9SSVpBVElPTl9TVEFURTogQXV0aG9yaXphdGlvblN0YXRlO1xubGV0IGNoZWNrVG9rZW5Qcm9taXNlOiBQcm9taXNlPEFjY291bnRJbmZvPiB8IG51bGwgPSBudWxsO1xubGV0IHJlZnJlc2hUb2tlblByb21pc2U6IFByb21pc2U8VG9rZW5SZXNwb25zZT4gfCBudWxsID0gbnVsbDtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoQXV0aG9yaXphdGlvblN0YXRlKCkge1xuICByZWNvcmRJbml0VXJsKCk7XG5cbiAgY29uc3QgeyBhdXRoVXJsLCBzdGF0ZTogY3NyZlN0YXRlIH0gPSBhd2FpdCBnZXRBdXRoQ29uZmlndXJhdGlvbigpO1xuXG4gIGluaXRBdXRob3JpemF0aW9uU3RhdGUoeyBhdXRoVXJsIH0pO1xuXG4gIGF3YWl0IGdldEV4aXN0aW5nVG9rZW4oY3NyZlN0YXRlKTtcblxuICBjb25zdCBpbmZvID0gYXdhaXQgcmVzb2x2ZVRva2VuSW5mb1dpdGhSZWZyZXNoKCk7XG5cbiAgaWYgKCFpbmZvKSB7XG4gICAgcmV0dXJuIHJlZGlyZWN0VG9Mb2dpbigpO1xuICB9XG5cbiAgQVVUSE9SSVpBVElPTl9TVEFURS5pbmZvID0gaW5mbztcblxuICByZXR1cm4gQVVUSE9SSVpBVElPTl9TVEFURTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEF1dGhvcml6YXRpb25TdGF0ZSgpIHtcbiAgaWYgKEFVVEhPUklaQVRJT05fU1RBVEUgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQXV0aG9yaXphdGlvblN0YXRlIGhhdmUgbm90IGJlZW4gaW5pdGlhbGl6ZWQnKTtcbiAgfVxuXG4gIHJldHVybiBBVVRIT1JJWkFUSU9OX1NUQVRFO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdEF1dGhvcml6YXRpb25TdGF0ZShzdGF0ZTogQXV0aG9yaXphdGlvblN0YXRlKTogdm9pZCB7XG4gIGlmIChcbiAgICBBVVRIT1JJWkFUSU9OX1NUQVRFICE9PSB1bmRlZmluZWQgJiZcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0tIHdlYnBhY2sgc3BlY2lmaWNcbiAgICAhbW9kdWxlLmhvdFxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2F1dGhvcml6YXRpb25TdGF0ZSBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQnKTtcbiAgfVxuXG4gIEFVVEhPUklaQVRJT05fU1RBVEUgPSBzdGF0ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF0dGFjaEF1dGhvcml6YXRpb25IZWFkZXIoKTogeyBBdXRob3JpemF0aW9uPzogc3RyaW5nIH0ge1xuICBjb25zdCBpZFRva2VuID0gcmVhZFN0b3JhZ2VUb2tlbigpO1xuICByZXR1cm4gaWRUb2tlbiA/IHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2lkVG9rZW59YCB9IDoge307XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjaGVja0F1dGhvcml6YXRpb25Ub2tlbigpOiBQcm9taXNlPEFjY291bnRJbmZvPiB7XG4gIGlmIChjaGVja1Rva2VuUHJvbWlzZSkge1xuICAgIHJldHVybiBjaGVja1Rva2VuUHJvbWlzZTtcbiAgfVxuXG4gIGNoZWNrVG9rZW5Qcm9taXNlID0gcmVxdWVzdFRva2VuSW5mbyh0cnVlKVxuICAgIC50aGVuKGluZm8gPT4ge1xuICAgICAgaWYgKCFpbmZvKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQXV0aG9yaXphdGlvbiB0b2tlbiBpcyBpbnZhbGlkJyk7XG4gICAgICB9XG5cbiAgICAgIGdldEF1dGhvcml6YXRpb25TdGF0ZSgpLmluZm8gPSBpbmZvO1xuXG4gICAgICByZXR1cm4gaW5mbztcbiAgICB9KVxuICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgIGNoZWNrVG9rZW5Qcm9taXNlID0gbnVsbDtcbiAgICB9KTtcblxuICByZXR1cm4gY2hlY2tUb2tlblByb21pc2U7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWZyZXNoQXV0aG9yaXphdGlvblRva2VuKCk6IFByb21pc2U8VG9rZW5SZXNwb25zZT4ge1xuICBpZiAocmVmcmVzaFRva2VuUHJvbWlzZSkge1xuICAgIHJldHVybiByZWZyZXNoVG9rZW5Qcm9taXNlO1xuICB9XG5cbiAgcmVmcmVzaFRva2VuUHJvbWlzZSA9IHJlcXVlc3RUb2tlblJlZnJlc2goKVxuICAgIC50aGVuKHRva2VuUmVzcG9uc2UgPT4ge1xuICAgICAgaWYgKCF0b2tlblJlc3BvbnNlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHJlZnJlc2ggdG9rZW4nKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRva2VuUmVzcG9uc2U7XG4gICAgfSlcbiAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICByZWZyZXNoVG9rZW5Qcm9taXNlID0gbnVsbDtcbiAgICB9KTtcblxuICByZXR1cm4gcmVmcmVzaFRva2VuUHJvbWlzZTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvZ291dEF1ZGl0KCk6IFByb21pc2U8eyBsb2dvdXRfcmVkaXJlY3RfdXJsPzogc3RyaW5nIH0+IHtcbiAgcmV0dXJuIGZldGNoVG9rZW5BcGkoTE9HT1VUX0FQSSwge1xuICAgIGhlYWRlcnM6IE5PVF9OT1RJRllfT05fRVJST1JfSEVBREVSUyxcbiAgfSlcbiAgICAudGhlbihyZXMgPT4gcmVzPy5qc29uKCkpXG4gICAgLmNhdGNoKCgpID0+IG51bGwpOyAvLyBsb2dvdXQgQVBJIOacquaMh+WumiBsb2dvdXRfcmVkaXJlY3RfdXJsIOaXtiByZXM/Lmpzb24oKSDkvJrlpLHotKVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvZ291dChyZXR1cm5DdXJyZW50UGFnZTogYm9vbGVhbiB8IHN0cmluZyA9IGZhbHNlKSB7XG4gIGNoZWNrVG9rZW5Qcm9taXNlID0gbnVsbDtcbiAgcmVmcmVzaFRva2VuUHJvbWlzZSA9IG51bGw7XG4gIHJlc2V0QXV0aFJ1bnRpbWVDYWNoZSgpO1xuICBjbGVhblN0b3JhZ2VUb2tlbigpO1xuXG4gIGNvbnN0IGxvZ291dFVybCA9XG4gICAgdHlwZW9mIHJldHVybkN1cnJlbnRQYWdlID09PSAnc3RyaW5nJyAmJiByZXR1cm5DdXJyZW50UGFnZSAhPT0gJydcbiAgICAgID8gcmV0dXJuQ3VycmVudFBhZ2VcbiAgICAgIDogZGV4TG9nb3V0VXJsKCEhcmV0dXJuQ3VycmVudFBhZ2UpO1xuXG4gIHRyeSB7XG4gICAgZ2V0VG9wV2luZG93KCkubG9jYXRpb24uaHJlZiA9IGxvZ291dFVybDtcbiAgfSBjYXRjaCB7XG4gICAgLy8gc2hvdWxkIG5ldmVyIGhhcHBlbiwganVzdCBmb3Igcm9idXN0bmVzcyBpbiBjYXNlIG9mIGNyb3NzLW9yaWdpbiBpZnJhbWVcbiAgICBsb2NhdGlvbi5ocmVmID0gbG9nb3V0VXJsO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWRpcmVjdFNTT0VudHJ5KGVudHJ5OiBzdHJpbmcpIHtcbiAgY29uc3QgaGFzUXVlcnkgPSBlbnRyeS5pbmNsdWRlcygnPycpO1xuXG4gIGlmIChoYXNRdWVyeSkge1xuICAgIGNvbnN0IFt1cmwsIHF1ZXJ5XSA9IGVudHJ5LnNwbGl0KCc/Jyk7XG4gICAgcmV0dXJuIGAke0VYVEVSTkFMX1JFRElSRUNUX0FQSX0/cmVkaXJlY3RfdXJsPSR7dXJsfSYke3F1ZXJ5fWA7XG4gIH1cblxuICByZXR1cm4gYCR7RVhURVJOQUxfUkVESVJFQ1RfQVBJfT9yZWRpcmVjdF91cmw9JHtlbnRyeX1gO1xufVxuXG5mdW5jdGlvbiBkZXhMb2dvdXRVcmwocmV0dXJuQ3VycmVudFBhZ2UgPSBmYWxzZSkge1xuICBjb25zdCB7IGF1dGhVcmwgfSA9IGdldEF1dGhvcml6YXRpb25TdGF0ZSgpO1xuICByZXR1cm4gcmVwbGFjZVJlZGlyZWN0VXJsKFxuICAgIGF1dGhVcmwsXG4gICAgLy8gYXV0aFVybCDkuK3nmoQgcmVkaXJlY3RVcmwg5piv5qC56Lev55Sx77yM5qC56Lev55Sx5LqM5qyh6YeN5a6a5ZCR5ZueIHBvcnRhbCDml7bkvJrkuKLlpLEgY29kZSDlr7zoh7TnmbvlvZXlpLHotKVcbiAgICAvLyDlpoLmnpzlkI7mnJ/mnInlrprliLbljJbopoHmsYLpu5jorqTpppbpobXkuI3mmK8gcG9ydGFs77yM5Y+v5Lul5pS55Zue5LmL5YmN55qE5pa55qGI77yM5L2/55So5rWP6KeI5Zmo5a+86Iiq5omT5byAIGxvZ291dFVybO+8jOeEtuWQjiBkZXgg6YeN5a6a5ZCR5Yiw5qC56Lev55Sx77yM5qC56Lev55Sx6YeN5a6a5ZCR5Yiw6buY6K6k6aaW6aG177yM6aaW6aG15YaN5bCGIGF1dGhVcmwg5Lit55qEIHJlZGlyZWN0VXJsIOabv+aNouS4uuW9k+WJjSB1cmwg6Lez6L2s5YiwIGRleCDov5vooYznmbvlvZXvvJtcbiAgICAvLyDmnIDlpb3njq/looPlj5jph4/lop7liqDpu5jorqTpppbpobXlnLDlnYDmiJbogIUgZGV4IHJlZGlyZWN0VXJsIOebtOaOpeaYr+ato+ehruWcsOWdgFxuICAgIHJldHVybkN1cnJlbnRQYWdlID8gbG9jYXRpb24uaHJlZiA6IGxvY2F0aW9uLm9yaWdpbiArICcvY29uc29sZS1wb3J0YWwnLFxuICApO1xufVxuXG5mdW5jdGlvbiByZXBsYWNlUmVkaXJlY3RVcmwoZGV4VXJsOiBzdHJpbmcsIHJlZGlyZWN0VXJsOiBzdHJpbmcpIHtcbiAgY29uc3QgW3BhdGgsIHF1ZXJ5UGFyYW1zXSA9IGRleFVybC5zcGxpdCgnPycpO1xuXG4gIGNvbnN0IHJlcGxhY2VkUXVlcnlQYXJhbXMgPSBxdWVyeVBhcmFtc1xuICAgIC5zcGxpdCgnJicpXG4gICAgLm1hcChwYWlyID0+IHtcbiAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IHBhaXIuc3BsaXQoJz0nKTtcbiAgICAgIHJldHVybiBSRURJUkVDVF9VUklTLmhhcyhrZXkpXG4gICAgICAgID8gYCR7a2V5fT0ke2VuY29kZVVSSUNvbXBvbmVudChyZWRpcmVjdFVybCl9YFxuICAgICAgICA6IGAke2tleX09JHt2YWx1ZX1gO1xuICAgIH0pXG4gICAgLmpvaW4oJyYnKTtcblxuICByZXR1cm4gYCR7cGF0aH0/JHtyZXBsYWNlZFF1ZXJ5UGFyYW1zfWA7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEF1dGhDb25maWd1cmF0aW9uKCk6IFByb21pc2U8e1xuICBhdXRoVXJsOiBzdHJpbmc7XG4gIHN0YXRlOiBzdHJpbmc7XG59PiB7XG4gIGNvbnN0IHsgYXV0aF91cmw6IGF1dGhVcmwsIHN0YXRlIH0gPSBhd2FpdCBmZXRjaChMT0dJTl9BUEkpLnRoZW4ocmVzID0+XG4gICAgcmVzLmpzb24oKSxcbiAgKTtcbiAgcmV0dXJuIHsgYXV0aFVybCwgc3RhdGUgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0RXhpc3RpbmdUb2tlbihjc3JmU3RhdGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IHF1ZXJ5UGFyYW1zLCBoYXNoUGFyYW1zIH0gPSBnZXRQYXJhbXMoKTtcblxuICBjb25zdCBjb2RlID0gcXVlcnlQYXJhbXNbQ09ERV9LRVldIHx8IGhhc2hQYXJhbXNbQ09ERV9LRVldO1xuICBjb25zdCBpZFRva2VuID0gcXVlcnlQYXJhbXNbSURfVE9LRU5fS0VZXSB8fCBoYXNoUGFyYW1zW0lEX1RPS0VOX0tFWV07XG5cbiAgaWYgKCFjb2RlICYmICFpZFRva2VuKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmVmcmVzaFN0b3JhZ2VBbGl2ZVJlY29yZCgpO1xuXG4gIGlmIChjb2RlKSB7XG4gICAgYXdhaXQgc2V0Q29va2llQnlDb2RlKGNvZGUsIGNzcmZTdGF0ZSk7XG4gIH0gZWxzZSB7XG4gICAgYXdhaXQgc2V0Q29va2llQnlUb2tlbihpZFRva2VuKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBzZXRDb29raWVCeUNvZGUoY29kZTogc3RyaW5nLCBzdGF0ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7IGNvZGUsIHN0YXRlIH0pO1xuXG4gIGNvbnN0IHRva2VuUmVzcG9uc2U6IFRva2VuUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChcbiAgICBgJHtDQUxMQkFDS19BUEl9PyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gLFxuICApLnRoZW4ocmVzID0+IHJlcy5qc29uKCkpO1xuXG4gIG1hcFRva2VuUmVzcG9uc2UodG9rZW5SZXNwb25zZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNldENvb2tpZUJ5VG9rZW4oaWRUb2tlbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7IGlkX3Rva2VuOiBpZFRva2VuIH0pO1xuXG4gIGNvbnN0IHRva2VuUmVzcG9uc2U6IFRva2VuUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChcbiAgICBgJHtDQUxMQkFDS19BUEl9PyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gLFxuICApLnRoZW4ocmVzID0+IHJlcy5qc29uKCkpO1xuXG4gIG1hcFRva2VuUmVzcG9uc2UodG9rZW5SZXNwb25zZSk7XG59XG5cbmZ1bmN0aW9uIG1hcFRva2VuUmVzcG9uc2UocmVzcG9uc2U6IFRva2VuUmVzcG9uc2UpIHtcbiAgaWYgKHJlc3BvbnNlLmlkX3Rva2VuKSB7XG4gICAgd3JpdGVTdG9yYWdlVG9rZW4ocmVzcG9uc2UuaWRfdG9rZW4pO1xuICB9XG4gIHNldENhY2hlZEFjY291bnRJbmZvKHVuZGVmaW5lZCk7XG59XG5cbmZ1bmN0aW9uIGdldFBhcmFtcygpIHtcbiAgY29uc3QgaW5pdFVybCA9IGdldEluaXRVcmwoKTtcblxuICBjb25zdCBpbml0TG9jYXRpb24gPSBuZXcgVVJMKGluaXRVcmwpO1xuXG4gIGNvbnN0IHF1ZXJ5UGFyYW1zID0gcGFyc2VQYXJhbXMoXG4gICAgaW5pdExvY2F0aW9uLnNlYXJjaCA/IGluaXRMb2NhdGlvbi5zZWFyY2guc2xpY2UoMSkgOiAnJyxcbiAgKTtcblxuICBjb25zdCBoYXNoUGFyYW1zID0gcGFyc2VQYXJhbXMoXG4gICAgaW5pdExvY2F0aW9uLmhhc2ggPyBpbml0TG9jYXRpb24uaGFzaC5zbGljZSgxKSA6ICcnLFxuICApO1xuXG4gIHJldHVybiB7IHF1ZXJ5UGFyYW1zLCBoYXNoUGFyYW1zIH07XG59XG5cbmZ1bmN0aW9uIHBhcnNlUGFyYW1zKHF1ZXJ5OiBzdHJpbmcpOiBTdHJpbmdNYXAge1xuICBpZiAoIXF1ZXJ5KSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgcmV0dXJuIHF1ZXJ5LnNwbGl0KCcmJykucmVkdWNlKChhY2MsIHBhcmFtKSA9PiB7XG4gICAgaWYgKCFwYXJhbSkge1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9XG5cbiAgICBjb25zdCBzZXBhcmF0b3JJbmRleCA9IHBhcmFtLmluZGV4T2YoJz0nKTtcbiAgICBjb25zdCBrZXkgPSBzZXBhcmF0b3JJbmRleCA9PT0gLTEgPyBwYXJhbSA6IHBhcmFtLnNsaWNlKDAsIHNlcGFyYXRvckluZGV4KTtcbiAgICBjb25zdCB2YWx1ZSA9IHNlcGFyYXRvckluZGV4ID09PSAtMSA/ICcnIDogcGFyYW0uc2xpY2Uoc2VwYXJhdG9ySW5kZXggKyAxKTtcblxuICAgIGlmICgha2V5KSB7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH1cblxuICAgIGFjY1trZXldID0gdmFsdWU7XG5cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSBhcyBTdHJpbmdNYXApO1xufVxuXG5mdW5jdGlvbiByZWRpcmVjdFRvTG9naW4oKSB7XG4gIGxvZ291dCh0cnVlKTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPG5ldmVyPigoKSA9PiB1bmRlZmluZWQpO1xufVxuIl19
@@ -2,6 +2,8 @@ export const STORAGE_TYPE_KEY = 'token_storage';
2
2
  export const CODE_KEY = 'code';
3
3
  export const ID_TOKEN_KEY = 'id_token';
4
4
  export const LOADING_CACHE = 15_000;
5
+ export const HEARTBEAT_POLLING = 15_000;
6
+ export const SESSION_MANAGE_KEY = 'session-manage-construct-time';
5
7
  export const LOGIN_API = '/console/api/v2/token/login';
6
8
  export const LOGOUT_API = '/console/api/v2/token/logout';
7
9
  export const CALLBACK_API = '/console/api/v2/token/callback';
@@ -12,4 +14,4 @@ export const REDIRECT_URIS = new Set([
12
14
  'redirect_uri',
13
15
  'post_logout_redirect_uri',
14
16
  ]);
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2F1dGhvcml6YXRpb24vY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztBQUNoRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQztBQUVwQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsNkJBQTZCLENBQUM7QUFDdkQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLDhCQUE4QixDQUFDO0FBQ3pELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxnQ0FBZ0MsQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRywrQkFBK0IsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsNEJBQTRCLENBQUM7QUFDM0QsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsZ0NBQWdDLENBQUM7QUFFdEUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxDQUFDO0lBQ25DLGNBQWM7SUFDZCwwQkFBMEI7Q0FDM0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFNUT1JBR0VfVFlQRV9LRVkgPSAndG9rZW5fc3RvcmFnZSc7XG5leHBvcnQgY29uc3QgQ09ERV9LRVkgPSAnY29kZSc7XG5leHBvcnQgY29uc3QgSURfVE9LRU5fS0VZID0gJ2lkX3Rva2VuJztcblxuZXhwb3J0IGNvbnN0IExPQURJTkdfQ0FDSEUgPSAxNV8wMDA7XG5cbmV4cG9ydCBjb25zdCBMT0dJTl9BUEkgPSAnL2NvbnNvbGUvYXBpL3YyL3Rva2VuL2xvZ2luJztcbmV4cG9ydCBjb25zdCBMT0dPVVRfQVBJID0gJy9jb25zb2xlL2FwaS92Mi90b2tlbi9sb2dvdXQnO1xuZXhwb3J0IGNvbnN0IENBTExCQUNLX0FQSSA9ICcvY29uc29sZS9hcGkvdjIvdG9rZW4vY2FsbGJhY2snO1xuZXhwb3J0IGNvbnN0IFRPS0VOX1JFRlJFU0hfQVBJID0gJy9jb25zb2xlL2FwaS92Mi90b2tlbi9yZWZyZXNoJztcbmV4cG9ydCBjb25zdCBUT0tFTl9JTkZPX0FQSSA9ICcvY29uc29sZS9hcGkvdjIvdG9rZW4vaW5mbyc7XG5leHBvcnQgY29uc3QgRVhURVJOQUxfUkVESVJFQ1RfQVBJID0gJy9jb25zb2xlL2FwaS92Mi90b2tlbi9yZWRpcmVjdCc7XG5cbmV4cG9ydCBjb25zdCBSRURJUkVDVF9VUklTID0gbmV3IFNldChbXG4gICdyZWRpcmVjdF91cmknLFxuICAncG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpJyxcbl0pO1xuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2F1dGhvcml6YXRpb24vY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztBQUNoRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQztBQUNwQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUM7QUFDeEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsK0JBQStCLENBQUM7QUFFbEUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLDZCQUE2QixDQUFDO0FBQ3ZELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyw4QkFBOEIsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsZ0NBQWdDLENBQUM7QUFDN0QsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsK0JBQStCLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLDRCQUE0QixDQUFDO0FBQzNELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLGdDQUFnQyxDQUFDO0FBRXRFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUNuQyxjQUFjO0lBQ2QsMEJBQTBCO0NBQzNCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBTVE9SQUdFX1RZUEVfS0VZID0gJ3Rva2VuX3N0b3JhZ2UnO1xuZXhwb3J0IGNvbnN0IENPREVfS0VZID0gJ2NvZGUnO1xuZXhwb3J0IGNvbnN0IElEX1RPS0VOX0tFWSA9ICdpZF90b2tlbic7XG5cbmV4cG9ydCBjb25zdCBMT0FESU5HX0NBQ0hFID0gMTVfMDAwO1xuZXhwb3J0IGNvbnN0IEhFQVJUQkVBVF9QT0xMSU5HID0gMTVfMDAwO1xuZXhwb3J0IGNvbnN0IFNFU1NJT05fTUFOQUdFX0tFWSA9ICdzZXNzaW9uLW1hbmFnZS1jb25zdHJ1Y3QtdGltZSc7XG5cbmV4cG9ydCBjb25zdCBMT0dJTl9BUEkgPSAnL2NvbnNvbGUvYXBpL3YyL3Rva2VuL2xvZ2luJztcbmV4cG9ydCBjb25zdCBMT0dPVVRfQVBJID0gJy9jb25zb2xlL2FwaS92Mi90b2tlbi9sb2dvdXQnO1xuZXhwb3J0IGNvbnN0IENBTExCQUNLX0FQSSA9ICcvY29uc29sZS9hcGkvdjIvdG9rZW4vY2FsbGJhY2snO1xuZXhwb3J0IGNvbnN0IFRPS0VOX1JFRlJFU0hfQVBJID0gJy9jb25zb2xlL2FwaS92Mi90b2tlbi9yZWZyZXNoJztcbmV4cG9ydCBjb25zdCBUT0tFTl9JTkZPX0FQSSA9ICcvY29uc29sZS9hcGkvdjIvdG9rZW4vaW5mbyc7XG5leHBvcnQgY29uc3QgRVhURVJOQUxfUkVESVJFQ1RfQVBJID0gJy9jb25zb2xlL2FwaS92Mi90b2tlbi9yZWRpcmVjdCc7XG5cbmV4cG9ydCBjb25zdCBSRURJUkVDVF9VUklTID0gbmV3IFNldChbXG4gICdyZWRpcmVjdF91cmknLFxuICAncG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpJyxcbl0pO1xuIl19
@@ -4,16 +4,19 @@
4
4
  */
5
5
  import { DialogService } from '@alauda/ui';
6
6
  import { Inject, Injectable, Injector } from '@angular/core';
7
- import { NEVER, throwError, catchError, concatMap, take, map, of, switchMap, } from 'rxjs';
7
+ import { EMPTY, NEVER, from, throwError, catchError, concatMap, take, map, of, switchMap, } from 'rxjs';
8
8
  import { ApiGatewayService } from '../api/public-api';
9
9
  import { ANONYMOUS_APIS, catchPromise } from '../core/public-api';
10
- import { TranslateService } from '../public-api';
11
- import { SESSION_MANAGE_KEY, SessionManageService, } from './session-manage.service';
12
- import { AuthorizationStateService } from './state.service';
10
+ import { TranslateService } from '../translate/public-api';
11
+ import { checkAuthorizationToken, logout, refreshAuthorizationToken, } from './authorization';
12
+ import { SESSION_MANAGE_KEY } from './constants';
13
+ import { SessionManageService } from './session-manage.service';
14
+ import { readStorageToken } from './storage-token';
13
15
  import * as i0 from "@angular/core";
14
16
  import * as i1 from "../api/public-api";
15
17
  import * as i2 from "@alauda/ui";
16
18
  import * as i3 from "./session-manage.service";
19
+ const AUTHORIZATION_API_PREFIX = '/console/api/v2/token/';
17
20
  // Interceptor must provide with correct order, not provide in root here
18
21
  // https://angular.cn/guide/http#interceptor-order
19
22
  export class AuthorizationInterceptorService {
@@ -26,47 +29,34 @@ export class AuthorizationInterceptorService {
26
29
  this.sessionInvalidConfirm = false;
27
30
  }
28
31
  intercept(req, next) {
29
- if (this.isConsoleRelative(req.url)) {
30
- return next.handle(req);
32
+ if (this.isRelativeUrl(req.url)) {
33
+ if (!this.isConsoleApi(req.url) || !this.needConsoleAuthorization(req)) {
34
+ return next.handle(req);
35
+ }
36
+ return this.handleAuthorizedRequest(next, req, null);
31
37
  }
32
- const auth = this.getAuth();
33
- return auth.getTokenPayload().pipe(switchMap(() => this.apiGateway.getApiAddress()), take(1), concatMap(apiAddress => {
38
+ return this.apiGateway.getApiAddress().pipe(take(1), concatMap(apiAddress => {
34
39
  if (!this.needAuthorization(apiAddress, req)) {
35
40
  return next.handle(req);
36
41
  }
37
- const idToken = auth.getTokenByStorage();
38
- const authReq = this.cloneReq(req, idToken);
39
- return next.handle(authReq).pipe(catchError((error) => {
40
- if (this.isSessionInvalid(error)) {
41
- this.handleSessionInvalid();
42
- return NEVER;
43
- }
44
- // 当用户被禁用自动登出
45
- if (this.isInvalidUser(error)) {
46
- auth.logout(true);
47
- return NEVER;
48
- }
49
- if (!this.isUnauthorized(error)) {
50
- return throwError(() => error);
51
- }
52
- if (this.isWatchReq(apiAddress, authReq)) {
53
- return NEVER;
54
- }
55
- return auth.checkToken().pipe(map(() => false), catchError(() => of(true)), switchMap(expired => expired
56
- ? this.retryAuth(next, authReq)
57
- : throwError(() => error)));
58
- }));
42
+ return this.handleAuthorizedRequest(next, req, apiAddress);
59
43
  }));
60
44
  }
61
- // console relative means url protocol+hostname+port same with console, for this case, just check url start with ```http(s)://``` or ```//```
62
- isConsoleRelative(url) {
45
+ // A relative URL shares the same origin as the console (no http(s):// or // prefix)
46
+ isRelativeUrl(url) {
63
47
  const lowerCaseUrl = (url || '').toLowerCase();
64
48
  return (!lowerCaseUrl.startsWith('http://') &&
65
49
  !lowerCaseUrl.startsWith('https://') &&
66
50
  !lowerCaseUrl.startsWith('//'));
67
51
  }
52
+ isConsoleApi(url) {
53
+ return this.isRelativeUrl(url) && url.startsWith('/console/api/');
54
+ }
55
+ isAuthorizationApi(url) {
56
+ return url.startsWith(AUTHORIZATION_API_PREFIX);
57
+ }
68
58
  cloneReq(req, idToken) {
69
- return idToken
59
+ return idToken && !req.headers.get('Authorization')
70
60
  ? req.clone({
71
61
  setHeaders: {
72
62
  Authorization: `Bearer ${idToken}`,
@@ -74,26 +64,58 @@ export class AuthorizationInterceptorService {
74
64
  })
75
65
  : req;
76
66
  }
67
+ handleAuthorizedRequest(next, req, apiAddress) {
68
+ const isConsoleApi = this.isConsoleApi(req.url);
69
+ const isAuthorizationApi = this.isAuthorizationApi(req.url);
70
+ const idToken = readStorageToken();
71
+ const authReq = this.cloneReq(req, idToken);
72
+ return next.handle(authReq).pipe(catchError((error) => {
73
+ if (this.isSessionInvalid(error)) {
74
+ this.handleSessionInvalid();
75
+ return NEVER;
76
+ }
77
+ // 当用户被禁用自动登出
78
+ if (this.isInvalidUser(error)) {
79
+ logout(true);
80
+ return NEVER;
81
+ }
82
+ if (!this.isUnauthorized(error)) {
83
+ return throwError(() => error);
84
+ }
85
+ if (isAuthorizationApi) {
86
+ return throwError(() => error);
87
+ }
88
+ if (!isConsoleApi && this.isWatchReq(apiAddress, authReq)) {
89
+ return NEVER;
90
+ }
91
+ return from(checkAuthorizationToken()).pipe(map(() => false), catchError(() => of(true)), switchMap(expired => expired || (isConsoleApi && !idToken)
92
+ ? this.retryAuth(next, authReq)
93
+ : throwError(() => error)));
94
+ }));
95
+ }
77
96
  retryAuth(next, req) {
78
- const auth = this.getAuth();
79
- return auth.refreshToken().pipe(concatMap(({ id_token: idToken }) => {
97
+ return from(refreshAuthorizationToken()).pipe(catchError(() => {
98
+ logout(true);
99
+ return EMPTY;
100
+ }), concatMap(({ id_token: idToken }) => {
80
101
  const authReq = this.cloneReq(req, idToken);
81
102
  return next.handle(authReq).pipe(catchError((error) => {
82
103
  if (this.isUnauthorized(error)) {
83
- auth.logout(true);
104
+ logout(true);
84
105
  }
85
106
  return throwError(() => error);
86
107
  }));
87
108
  }));
88
109
  }
89
- getAuth() {
90
- if (!this.auth) {
91
- this.auth = this.injector.get(AuthorizationStateService);
110
+ needAuthorization(apiAddress, req) {
111
+ if (req.headers.get('Authorization') ||
112
+ (!this.isConsoleApi(req.url) && !req.url.startsWith(apiAddress))) {
113
+ return false;
92
114
  }
93
- return this.auth;
115
+ return !this.anonymousApis.some(api => api instanceof RegExp ? api.test(req.url) : req.url.includes(api));
94
116
  }
95
- needAuthorization(apiAddress, req) {
96
- if (!req.url.startsWith(apiAddress) || req.headers.get('Authorization')) {
117
+ needConsoleAuthorization(req) {
118
+ if (req.headers.get('Authorization')) {
97
119
  return false;
98
120
  }
99
121
  return !this.anonymousApis.some(api => api instanceof RegExp ? api.test(req.url) : req.url.includes(api));
@@ -110,7 +132,7 @@ export class AuthorizationInterceptorService {
110
132
  if (Date.now() - parseInt(sessionStorage.getItem(SESSION_MANAGE_KEY)) <
111
133
  5000) {
112
134
  sessionStorage.removeItem(SESSION_MANAGE_KEY);
113
- this.auth.logout(true);
135
+ logout(true);
114
136
  return;
115
137
  }
116
138
  if (this.sessionInvalidConfirm) {
@@ -125,7 +147,7 @@ export class AuthorizationInterceptorService {
125
147
  cancelButton: false,
126
148
  })).subscribe(() => {
127
149
  this.sessionInvalidConfirm = false;
128
- this.auth.logout(true);
150
+ logout(true);
129
151
  });
130
152
  }
131
153
  isUnauthorized(errorRes) {
@@ -153,4 +175,4 @@ export class AuthorizationInterceptorService {
153
175
  type: Inject,
154
176
  args: [ANONYMOUS_APIS]
155
177
  }] }, { type: i1.ApiGatewayService }, { type: i0.Injector }, { type: i2.DialogService }, { type: i3.SessionManageService }], null); })();
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hdXRob3JpemF0aW9uL2ludGVyY2VwdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQU8zQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFNBQVMsRUFDVCxJQUFJLEVBQ0osR0FBRyxFQUNILEVBQUUsRUFDRixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xFLE9BQU8sRUFBVSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUNyQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUU1RCx3RUFBd0U7QUFDeEUsa0RBQWtEO0FBRWxELE1BQU0sT0FBTywrQkFBK0I7SUFLMUMsWUFFbUIsYUFBcUMsRUFDckMsVUFBNkIsRUFDN0IsUUFBa0IsRUFDbEIsTUFBcUIsRUFDckIsYUFBbUM7UUFKbkMsa0JBQWEsR0FBYixhQUFhLENBQXdCO1FBQ3JDLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFSOUMsMEJBQXFC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QUUsR0FBRyxFQUFFLE1BQU0sRUFBd0I7UUFFckMsTUFBTSxhQUFhLEdBQ2pCLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztZQUNwQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7WUFDckMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsY0FBYyxDQUFDLENBQUM7UUFDOUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxNQUFNLENBQUM7UUFDaEUsT0FBTyxhQUFhLElBQUksU0FBUyxDQUFDO0lBQ3BDLENBQUM7Z0dBN0xVLCtCQUErQixjQU1oQyxjQUFjO3VFQU5iLCtCQUErQixXQUEvQiwrQkFBK0I7O2lGQUEvQiwrQkFBK0I7Y0FEM0MsVUFBVTs7c0JBT04sTUFBTTt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgYXV0aG9yaXphdGlvblxuICovXG5cbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7XG4gIEh0dHBFcnJvclJlc3BvbnNlLFxuICBIdHRwSGFuZGxlcixcbiAgSHR0cEludGVyY2VwdG9yLFxuICBIdHRwUmVxdWVzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTkVWRVIsXG4gIHRocm93RXJyb3IsXG4gIGNhdGNoRXJyb3IsXG4gIGNvbmNhdE1hcCxcbiAgdGFrZSxcbiAgbWFwLFxuICBvZixcbiAgc3dpdGNoTWFwLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXBpR2F0ZXdheVNlcnZpY2UgfSBmcm9tICcuLi9hcGkvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBBTk9OWU1PVVNfQVBJUywgY2F0Y2hQcm9taXNlIH0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFN0YXR1cywgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL3B1YmxpYy1hcGknO1xuXG5pbXBvcnQge1xuICBTRVNTSU9OX01BTkFHRV9LRVksXG4gIFNlc3Npb25NYW5hZ2VTZXJ2aWNlLFxufSBmcm9tICcuL3Nlc3Npb24tbWFuYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aG9yaXphdGlvblN0YXRlU2VydmljZSB9IGZyb20gJy4vc3RhdGUuc2VydmljZSc7XG5cbi8vIEludGVyY2VwdG9yIG11c3QgcHJvdmlkZSB3aXRoIGNvcnJlY3Qgb3JkZXIsIG5vdCBwcm92aWRlIGluIHJvb3QgaGVyZVxuLy8gaHR0cHM6Ly9hbmd1bGFyLmNuL2d1aWRlL2h0dHAjaW50ZXJjZXB0b3Itb3JkZXJcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBdXRob3JpemF0aW9uSW50ZXJjZXB0b3JTZXJ2aWNlIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgcHJpdmF0ZSBhdXRoOiBBdXRob3JpemF0aW9uU3RhdGVTZXJ2aWNlO1xuXG4gIHByaXZhdGUgc2Vzc2lvbkludmFsaWRDb25maXJtID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChBTk9OWU1PVVNfQVBJUylcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFub255bW91c0FwaXM6IEFycmF5PHN0cmluZyB8IFJlZ0V4cD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcGlHYXRld2F5OiBBcGlHYXRld2F5U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogRGlhbG9nU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25NYW5hZ2U6IFNlc3Npb25NYW5hZ2VTZXJ2aWNlLFxuICApIHt9XG5cbiAgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyKSB7XG4gICAgaWYgKHRoaXMuaXNDb25zb2xlUmVsYXRpdmUocmVxLnVybCkpIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xuICAgIH1cblxuICAgIGNvbnN0IGF1dGggPSB0aGlzLmdldEF1dGgoKTtcblxuICAgIHJldHVybiBhdXRoLmdldFRva2VuUGF5bG9hZCgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5hcGlHYXRld2F5LmdldEFwaUFkZHJlc3MoKSksXG4gICAgICB0YWtlKDEpLFxuICAgICAgY29uY2F0TWFwKGFwaUFkZHJlc3MgPT4ge1xuICAgICAgICBpZiAoIXRoaXMubmVlZEF1dGhvcml6YXRpb24oYXBpQWRkcmVzcywgcmVxKSkge1xuICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaWRUb2tlbiA9IGF1dGguZ2V0VG9rZW5CeVN0b3JhZ2UoKTtcblxuICAgICAgICBjb25zdCBhdXRoUmVxID0gdGhpcy5jbG9uZVJlcShyZXEsIGlkVG9rZW4pO1xuXG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShhdXRoUmVxKS5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNTZXNzaW9uSW52YWxpZChlcnJvcikpIHtcbiAgICAgICAgICAgICAgdGhpcy5oYW5kbGVTZXNzaW9uSW52YWxpZCgpO1xuICAgICAgICAgICAgICByZXR1cm4gTkVWRVI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIOW9k+eUqOaIt+iiq+emgeeUqOiHquWKqOeZu+WHulxuICAgICAgICAgICAgaWYgKHRoaXMuaXNJbnZhbGlkVXNlcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgYXV0aC5sb2dvdXQodHJ1ZSk7XG4gICAgICAgICAgICAgIHJldHVybiBORVZFUjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzVW5hdXRob3JpemVkKGVycm9yKSkge1xuICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzV2F0Y2hSZXEoYXBpQWRkcmVzcywgYXV0aFJlcSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIE5FVkVSO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYXV0aC5jaGVja1Rva2VuKCkucGlwZShcbiAgICAgICAgICAgICAgbWFwKCgpID0+IGZhbHNlKSxcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZih0cnVlKSksXG4gICAgICAgICAgICAgIHN3aXRjaE1hcChleHBpcmVkID0+XG4gICAgICAgICAgICAgICAgZXhwaXJlZFxuICAgICAgICAgICAgICAgICAgPyB0aGlzLnJldHJ5QXV0aChuZXh0LCBhdXRoUmVxKVxuICAgICAgICAgICAgICAgICAgOiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLy8gY29uc29sZSByZWxhdGl2ZSBtZWFucyB1cmwgcHJvdG9jb2wraG9zdG5hbWUrcG9ydCBzYW1lIHdpdGggY29uc29sZSwgZm9yIHRoaXMgY2FzZSwganVzdCBjaGVjayB1cmwgc3RhcnQgd2l0aCBgYGBodHRwKHMpOi8vYGBgIG9yIGBgYC8vYGBgXG4gIGlzQ29uc29sZVJlbGF0aXZlKHVybDogc3RyaW5nKSB7XG4gICAgY29uc3QgbG93ZXJDYXNlVXJsID0gKHVybCB8fCAnJykudG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiAoXG4gICAgICAhbG93ZXJDYXNlVXJsLnN0YXJ0c1dpdGgoJ2h0dHA6Ly8nKSAmJlxuICAgICAgIWxvd2VyQ2FzZVVybC5zdGFydHNXaXRoKCdodHRwczovLycpICYmXG4gICAgICAhbG93ZXJDYXNlVXJsLnN0YXJ0c1dpdGgoJy8vJylcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9uZVJlcShyZXE6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBpZFRva2VuOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaWRUb2tlblxuICAgICAgPyByZXEuY2xvbmUoe1xuICAgICAgICAgIHNldEhlYWRlcnM6IHtcbiAgICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtpZFRva2VufWAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIDogcmVxO1xuICB9XG5cbiAgcHJpdmF0ZSByZXRyeUF1dGgobmV4dDogSHR0cEhhbmRsZXIsIHJlcTogSHR0cFJlcXVlc3Q8dW5rbm93bj4pIHtcbiAgICBjb25zdCBhdXRoID0gdGhpcy5nZXRBdXRoKCk7XG4gICAgcmV0dXJuIGF1dGgucmVmcmVzaFRva2VuKCkucGlwZShcbiAgICAgIGNvbmNhdE1hcCgoeyBpZF90b2tlbjogaWRUb2tlbiB9KSA9PiB7XG4gICAgICAgIGNvbnN0IGF1dGhSZXEgPSB0aGlzLmNsb25lUmVxKHJlcSwgaWRUb2tlbik7XG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShhdXRoUmVxKS5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNVbmF1dGhvcml6ZWQoZXJyb3IpKSB7XG4gICAgICAgICAgICAgIGF1dGgubG9nb3V0KHRydWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBdXRoKCkge1xuICAgIGlmICghdGhpcy5hdXRoKSB7XG4gICAgICB0aGlzLmF1dGggPSB0aGlzLmluamVjdG9yLmdldChBdXRob3JpemF0aW9uU3RhdGVTZXJ2aWNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXV0aDtcbiAgfVxuXG4gIHByaXZhdGUgbmVlZEF1dGhvcml6YXRpb24oXG4gICAgYXBpQWRkcmVzczogc3RyaW5nLFxuICAgIHJlcTogSHR0cFJlcXVlc3Q8dW5rbm93bj4sXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICghcmVxLnVybC5zdGFydHNXaXRoKGFwaUFkZHJlc3MpIHx8IHJlcS5oZWFkZXJzLmdldCgnQXV0aG9yaXphdGlvbicpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuICF0aGlzLmFub255bW91c0FwaXMuc29tZShhcGkgPT5cbiAgICAgIGFwaSBpbnN0YW5jZW9mIFJlZ0V4cCA/IGFwaS50ZXN0KHJlcS51cmwpIDogcmVxLnVybC5pbmNsdWRlcyhhcGkpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGlzNDAxKHsgZXJyb3IgfTogSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICByZXR1cm4gdGhpcy5pc1N0YXR1cyhlcnJvcikgJiYgZXJyb3IuY29kZSA9PT0gNDAxO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Nlc3Npb25JbnZhbGlkKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgIGNvbnN0IHsgZXJyb3IgfSA9IGVycm9yUmVzO1xuICAgIHJldHVybiB0aGlzLmlzNDAxKGVycm9yUmVzKSAmJiBlcnJvci5yZWFzb24gPT09ICdTZXNzaW9uSW52YWxpZCc7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNlc3Npb25JbnZhbGlkKCkge1xuICAgIHRoaXMuc2Vzc2lvbk1hbmFnZS5jb21wbGV0ZSgpO1xuICAgIGlmIChcbiAgICAgIERhdGUubm93KCkgLSBwYXJzZUludChzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFNFU1NJT05fTUFOQUdFX0tFWSkpIDxcbiAgICAgIDUwMDBcbiAgICApIHtcbiAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oU0VTU0lPTl9NQU5BR0VfS0VZKTtcbiAgICAgIHRoaXMuYXV0aC5sb2dvdXQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2Vzc2lvbkludmFsaWRDb25maXJtKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXNzaW9uSW52YWxpZENvbmZpcm0gPSB0cnVlO1xuICAgIC8vIGZpeCBjaXJjbGUgZGVwZW5kZW5jeSBlcnJvclxuICAgIGNvbnN0IHRyYW5zbGF0ZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICAgIGNhdGNoUHJvbWlzZShcbiAgICAgIHRoaXMuZGlhbG9nLmNvbmZpcm0oe1xuICAgICAgICB0aXRsZTogdHJhbnNsYXRlLmdldCgnc2Vzc2lvbl9pbnZhbGlkX2hpbnQnKSxcbiAgICAgICAgY29uZmlybVRleHQ6IHRyYW5zbGF0ZS5nZXQoJ2lfa25vdycpLFxuICAgICAgICBjYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgfSksXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZXNzaW9uSW52YWxpZENvbmZpcm0gPSBmYWxzZTtcbiAgICAgIHRoaXMuYXV0aC5sb2dvdXQodHJ1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGlzVW5hdXRob3JpemVkKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgIHJldHVybiB0aGlzLmlzNDAxKGVycm9yUmVzKSAmJiBlcnJvclJlcy5lcnJvci5yZWFzb24gPT09ICdVbmF1dGhvcml6ZWQnO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0ludmFsaWRVc2VyKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgIHJldHVybiB0aGlzLmlzNDAxKGVycm9yUmVzKSAmJiBlcnJvclJlcy5lcnJvci5yZWFzb24gPT09ICdJbnZhbGlkVXNlcic7XG4gIH1cblxuICBwcml2YXRlIGlzU3RhdHVzKGVycm9yOiBzdHJpbmcgfCBTdGF0dXMpOiBlcnJvciBpcyBTdGF0dXMge1xuICAgIHJldHVybiBlcnJvciAmJiB0eXBlb2YgZXJyb3IgIT09ICdzdHJpbmcnICYmICdjb2RlJyBpbiBlcnJvcjtcbiAgfVxuXG4gIHByaXZhdGUgaXNXYXRjaFJlcShcbiAgICBhcGlBZGRyZXNzOiBzdHJpbmcsXG4gICAgeyB1cmwsIHBhcmFtcyB9OiBIdHRwUmVxdWVzdDx1bmtub3duPixcbiAgKSB7XG4gICAgY29uc3QgaXNTdGFuZGFyZEFwaSA9XG4gICAgICB1cmwuc3RhcnRzV2l0aChhcGlBZGRyZXNzICsgJy9hcGkvJykgfHxcbiAgICAgIHVybC5zdGFydHNXaXRoKGFwaUFkZHJlc3MgKyAnL2FwaXMvJykgfHxcbiAgICAgIHVybC5zdGFydHNXaXRoKGFwaUFkZHJlc3MgKyAnL2t1YmVybmV0ZXMvJyk7XG4gICAgY29uc3QgaXNXYXRjaE9uID0gcGFyYW1zLmdldCgnd2F0Y2gnKT8udG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnO1xuICAgIHJldHVybiBpc1N0YW5kYXJkQXBpICYmIGlzV2F0Y2hPbjtcbiAgfVxufVxuIl19
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hdXRob3JpemF0aW9uL2ludGVyY2VwdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQU8zQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUNMLEtBQUssRUFDTCxLQUFLLEVBQ0wsSUFBSSxFQUNKLFVBQVUsRUFDVixVQUFVLEVBQ1YsU0FBUyxFQUNULElBQUksRUFDSixHQUFHLEVBQ0gsRUFBRSxFQUNGLFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFVLE1BQU0sb0JBQW9CLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFM0QsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixNQUFNLEVBQ04seUJBQXlCLEdBQzFCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUVuRCxNQUFNLHdCQUF3QixHQUFHLHdCQUF3QixDQUFDO0FBRTFELHdFQUF3RTtBQUN4RSxrREFBa0Q7QUFFbEQsTUFBTSxPQUFPLCtCQUErQjtJQUcxQyxZQUVtQixhQUFxQyxFQUNyQyxVQUE2QixFQUM3QixRQUFrQixFQUNsQixNQUFxQixFQUNy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QUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxhQUFhLENBQUM7SUFDekUsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFzQjtRQUNyQyxPQUFPLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQztJQUMvRCxDQUFDO0lBRU8sVUFBVSxDQUNoQixVQUFrQixFQUNsQixFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQXdCO1FBRXJDLE1BQU0sYUFBYSxHQUNqQixHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7WUFDcEMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1lBQ3JDLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssTUFBTSxDQUFDO1FBQ2hFLE9BQU8sYUFBYSxJQUFJLFNBQVMsQ0FBQztJQUNwQyxDQUFDO2dHQTFOVSwrQkFBK0IsY0FJaEMsY0FBYzt1RUFKYiwrQkFBK0IsV0FBL0IsK0JBQStCOztpRkFBL0IsK0JBQStCO2NBRDNDLFVBQVU7O3NCQUtOLE1BQU07dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIGF1dGhvcml6YXRpb25cbiAqL1xuXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQge1xuICBIdHRwRXJyb3JSZXNwb25zZSxcbiAgSHR0cEhhbmRsZXIsXG4gIEh0dHBJbnRlcmNlcHRvcixcbiAgSHR0cFJlcXVlc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEVNUFRZLFxuICBORVZFUixcbiAgZnJvbSxcbiAgdGhyb3dFcnJvcixcbiAgY2F0Y2hFcnJvcixcbiAgY29uY2F0TWFwLFxuICB0YWtlLFxuICBtYXAsXG4gIG9mLFxuICBzd2l0Y2hNYXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBcGlHYXRld2F5U2VydmljZSB9IGZyb20gJy4uL2FwaS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IEFOT05ZTU9VU19BUElTLCBjYXRjaFByb21pc2UsIFN0YXR1cyB9IGZyb20gJy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vdHJhbnNsYXRlL3B1YmxpYy1hcGknO1xuXG5pbXBvcnQge1xuICBjaGVja0F1dGhvcml6YXRpb25Ub2tlbixcbiAgbG9nb3V0LFxuICByZWZyZXNoQXV0aG9yaXphdGlvblRva2VuLFxufSBmcm9tICcuL2F1dGhvcml6YXRpb24nO1xuaW1wb3J0IHsgU0VTU0lPTl9NQU5BR0VfS0VZIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU2Vzc2lvbk1hbmFnZVNlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24tbWFuYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgcmVhZFN0b3JhZ2VUb2tlbiB9IGZyb20gJy4vc3RvcmFnZS10b2tlbic7XG5cbmNvbnN0IEFVVEhPUklaQVRJT05fQVBJX1BSRUZJWCA9ICcvY29uc29sZS9hcGkvdjIvdG9rZW4vJztcblxuLy8gSW50ZXJjZXB0b3IgbXVzdCBwcm92aWRlIHdpdGggY29ycmVjdCBvcmRlciwgbm90IHByb3ZpZGUgaW4gcm9vdCBoZXJlXG4vLyBodHRwczovL2FuZ3VsYXIuY24vZ3VpZGUvaHR0cCNpbnRlcmNlcHRvci1vcmRlclxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEF1dGhvcml6YXRpb25JbnRlcmNlcHRvclNlcnZpY2UgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuICBwcml2YXRlIHNlc3Npb25JbnZhbGlkQ29uZmlybSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQU5PTllNT1VTX0FQSVMpXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbm9ueW1vdXNBcGlzOiBBcnJheTxzdHJpbmcgfCBSZWdFeHA+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBpR2F0ZXdheTogQXBpR2F0ZXdheVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IERpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uTWFuYWdlOiBTZXNzaW9uTWFuYWdlU2VydmljZSxcbiAgKSB7fVxuXG4gIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBuZXh0OiBIdHRwSGFuZGxlcikge1xuICAgIGlmICh0aGlzLmlzUmVsYXRpdmVVcmwocmVxLnVybCkpIHtcbiAgICAgIGlmICghdGhpcy5pc0NvbnNvbGVBcGkocmVxLnVybCkgfHwgIXRoaXMubmVlZENvbnNvbGVBdXRob3JpemF0aW9uKHJlcSkpIHtcbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZUF1dGhvcml6ZWRSZXF1ZXN0KG5leHQsIHJlcSwgbnVsbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBpR2F0ZXdheS5nZXRBcGlBZGRyZXNzKCkucGlwZShcbiAgICAgIHRha2UoMSksXG4gICAgICBjb25jYXRNYXAoYXBpQWRkcmVzcyA9PiB7XG4gICAgICAgIGlmICghdGhpcy5uZWVkQXV0aG9yaXphdGlvbihhcGlBZGRyZXNzLCByZXEpKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVBdXRob3JpemVkUmVxdWVzdChuZXh0LCByZXEsIGFwaUFkZHJlc3MpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8vIEEgcmVsYXRpdmUgVVJMIHNoYXJlcyB0aGUgc2FtZSBvcmlnaW4gYXMgdGhlIGNvbnNvbGUgKG5vIGh0dHAocyk6Ly8gb3IgLy8gcHJlZml4KVxuICBwcml2YXRlIGlzUmVsYXRpdmVVcmwodXJsOiBzdHJpbmcpIHtcbiAgICBjb25zdCBsb3dlckNhc2VVcmwgPSAodXJsIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICFsb3dlckNhc2VVcmwuc3RhcnRzV2l0aCgnaHR0cDovLycpICYmXG4gICAgICAhbG93ZXJDYXNlVXJsLnN0YXJ0c1dpdGgoJ2h0dHBzOi8vJykgJiZcbiAgICAgICFsb3dlckNhc2VVcmwuc3RhcnRzV2l0aCgnLy8nKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGlzQ29uc29sZUFwaSh1cmw6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlzUmVsYXRpdmVVcmwodXJsKSAmJiB1cmwuc3RhcnRzV2l0aCgnL2NvbnNvbGUvYXBpLycpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0F1dGhvcml6YXRpb25BcGkodXJsOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdXJsLnN0YXJ0c1dpdGgoQVVUSE9SSVpBVElPTl9BUElfUFJFRklYKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvbmVSZXEocmVxOiBIdHRwUmVxdWVzdDx1bmtub3duPiwgaWRUb2tlbjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGlkVG9rZW4gJiYgIXJlcS5oZWFkZXJzLmdldCgnQXV0aG9yaXphdGlvbicpXG4gICAgICA/IHJlcS5jbG9uZSh7XG4gICAgICAgICAgc2V0SGVhZGVyczoge1xuICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2lkVG9rZW59YCxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgOiByZXE7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUF1dGhvcml6ZWRSZXF1ZXN0KFxuICAgIG5leHQ6IEh0dHBIYW5kbGVyLFxuICAgIHJlcTogSHR0cFJlcXVlc3Q8dW5rbm93bj4sXG4gICAgYXBpQWRkcmVzczogc3RyaW5nIHwgbnVsbCxcbiAgKSB7XG4gICAgY29uc3QgaXNDb25zb2xlQXBpID0gdGhpcy5pc0NvbnNvbGVBcGkocmVxLnVybCk7XG4gICAgY29uc3QgaXNBdXRob3JpemF0aW9uQXBpID0gdGhpcy5pc0F1dGhvcml6YXRpb25BcGkocmVxLnVybCk7XG4gICAgY29uc3QgaWRUb2tlbiA9IHJlYWRTdG9yYWdlVG9rZW4oKTtcbiAgICBjb25zdCBhdXRoUmVxID0gdGhpcy5jbG9uZVJlcShyZXEsIGlkVG9rZW4pO1xuXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKGF1dGhSZXEpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNTZXNzaW9uSW52YWxpZChlcnJvcikpIHtcbiAgICAgICAgICB0aGlzLmhhbmRsZVNlc3Npb25JbnZhbGlkKCk7XG4gICAgICAgICAgcmV0dXJuIE5FVkVSO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8g5b2T55So5oi36KKr56aB55So6Ieq5Yqo55m75Ye6XG4gICAgICAgIGlmICh0aGlzLmlzSW52YWxpZFVzZXIoZXJyb3IpKSB7XG4gICAgICAgICAgbG9nb3V0KHRydWUpO1xuICAgICAgICAgIHJldHVybiBORVZFUjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5pc1VuYXV0aG9yaXplZChlcnJvcikpIHtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNBdXRob3JpemF0aW9uQXBpKSB7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc0NvbnNvbGVBcGkgJiYgdGhpcy5pc1dhdGNoUmVxKGFwaUFkZHJlc3MsIGF1dGhSZXEpKSB7XG4gICAgICAgICAgcmV0dXJuIE5FVkVSO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZyb20oY2hlY2tBdXRob3JpemF0aW9uVG9rZW4oKSkucGlwZShcbiAgICAgICAgICBtYXAoKCkgPT4gZmFsc2UpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YodHJ1ZSkpLFxuICAgICAgICAgIHN3aXRjaE1hcChleHBpcmVkID0+XG4gICAgICAgICAgICBleHBpcmVkIHx8IChpc0NvbnNvbGVBcGkgJiYgIWlkVG9rZW4pXG4gICAgICAgICAgICAgID8gdGhpcy5yZXRyeUF1dGgobmV4dCwgYXV0aFJlcSlcbiAgICAgICAgICAgICAgOiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKSxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmV0cnlBdXRoKG5leHQ6IEh0dHBIYW5kbGVyLCByZXE6IEh0dHBSZXF1ZXN0PHVua25vd24+KSB7XG4gICAgcmV0dXJuIGZyb20ocmVmcmVzaEF1dGhvcml6YXRpb25Ub2tlbigpKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgIGxvZ291dCh0cnVlKTtcbiAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgfSksXG4gICAgICBjb25jYXRNYXAoKHsgaWRfdG9rZW46IGlkVG9rZW4gfSkgPT4ge1xuICAgICAgICBjb25zdCBhdXRoUmVxID0gdGhpcy5jbG9uZVJlcShyZXEsIGlkVG9rZW4pO1xuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUoYXV0aFJlcSkucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzVW5hdXRob3JpemVkKGVycm9yKSkge1xuICAgICAgICAgICAgICBsb2dvdXQodHJ1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG5lZWRBdXRob3JpemF0aW9uKFxuICAgIGFwaUFkZHJlc3M6IHN0cmluZyxcbiAgICByZXE6IEh0dHBSZXF1ZXN0PHVua25vd24+LFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoXG4gICAgICByZXEuaGVhZGVycy5nZXQoJ0F1dGhvcml6YXRpb24nKSB8fFxuICAgICAgKCF0aGlzLmlzQ29uc29sZUFwaShyZXEudXJsKSAmJiAhcmVxLnVybC5zdGFydHNXaXRoKGFwaUFkZHJlc3MpKVxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiAhdGhpcy5hbm9ueW1vdXNBcGlzLnNvbWUoYXBpID0+XG4gICAgICBhcGkgaW5zdGFuY2VvZiBSZWdFeHAgPyBhcGkudGVzdChyZXEudXJsKSA6IHJlcS51cmwuaW5jbHVkZXMoYXBpKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBuZWVkQ29uc29sZUF1dGhvcml6YXRpb24ocmVxOiBIdHRwUmVxdWVzdDx1bmtub3duPikge1xuICAgIGlmIChyZXEuaGVhZGVycy5nZXQoJ0F1dGhvcml6YXRpb24nKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiAhdGhpcy5hbm9ueW1vdXNBcGlzLnNvbWUoYXBpID0+XG4gICAgICBhcGkgaW5zdGFuY2VvZiBSZWdFeHAgPyBhcGkudGVzdChyZXEudXJsKSA6IHJlcS51cmwuaW5jbHVkZXMoYXBpKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpczQwMSh7IGVycm9yIH06IEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNTdGF0dXMoZXJyb3IpICYmIGVycm9yLmNvZGUgPT09IDQwMTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTZXNzaW9uSW52YWxpZChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICBjb25zdCB7IGVycm9yIH0gPSBlcnJvclJlcztcbiAgICByZXR1cm4gdGhpcy5pczQwMShlcnJvclJlcykgJiYgZXJyb3IucmVhc29uID09PSAnU2Vzc2lvbkludmFsaWQnO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTZXNzaW9uSW52YWxpZCgpIHtcbiAgICB0aGlzLnNlc3Npb25NYW5hZ2UuY29tcGxldGUoKTtcbiAgICBpZiAoXG4gICAgICBEYXRlLm5vdygpIC0gcGFyc2VJbnQoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShTRVNTSU9OX01BTkFHRV9LRVkpKSA8XG4gICAgICA1MDAwXG4gICAgKSB7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFNFU1NJT05fTUFOQUdFX0tFWSk7XG4gICAgICBsb2dvdXQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2Vzc2lvbkludmFsaWRDb25maXJtKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXNzaW9uSW52YWxpZENvbmZpcm0gPSB0cnVlO1xuICAgIC8vIGZpeCBjaXJjbGUgZGVwZW5kZW5jeSBlcnJvclxuICAgIGNvbnN0IHRyYW5zbGF0ZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICAgIGNhdGNoUHJvbWlzZShcbiAgICAgIHRoaXMuZGlhbG9nLmNvbmZpcm0oe1xuICAgICAgICB0aXRsZTogdHJhbnNsYXRlLmdldCgnc2Vzc2lvbl9pbnZhbGlkX2hpbnQnKSxcbiAgICAgICAgY29uZmlybVRleHQ6IHRyYW5zbGF0ZS5nZXQoJ2lfa25vdycpLFxuICAgICAgICBjYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgfSksXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZXNzaW9uSW52YWxpZENvbmZpcm0gPSBmYWxzZTtcbiAgICAgIGxvZ291dCh0cnVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNVbmF1dGhvcml6ZWQoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgcmV0dXJuIHRoaXMuaXM0MDEoZXJyb3JSZXMpICYmIGVycm9yUmVzLmVycm9yLnJlYXNvbiA9PT0gJ1VuYXV0aG9yaXplZCc7XG4gIH1cblxuICBwcml2YXRlIGlzSW52YWxpZFVzZXIoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgcmV0dXJuIHRoaXMuaXM0MDEoZXJyb3JSZXMpICYmIGVycm9yUmVzLmVycm9yLnJlYXNvbiA9PT0gJ0ludmFsaWRVc2VyJztcbiAgfVxuXG4gIHByaXZhdGUgaXNTdGF0dXMoZXJyb3I6IHN0cmluZyB8IFN0YXR1cyk6IGVycm9yIGlzIFN0YXR1cyB7XG4gICAgcmV0dXJuIGVycm9yICYmIHR5cGVvZiBlcnJvciAhPT0gJ3N0cmluZycgJiYgJ2NvZGUnIGluIGVycm9yO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1dhdGNoUmVxKFxuICAgIGFwaUFkZHJlc3M6IHN0cmluZyxcbiAgICB7IHVybCwgcGFyYW1zIH06IEh0dHBSZXF1ZXN0PHVua25vd24+LFxuICApIHtcbiAgICBjb25zdCBpc1N0YW5kYXJkQXBpID1cbiAgICAgIHVybC5zdGFydHNXaXRoKGFwaUFkZHJlc3MgKyAnL2FwaS8nKSB8fFxuICAgICAgdXJsLnN0YXJ0c1dpdGgoYXBpQWRkcmVzcyArICcvYXBpcy8nKSB8fFxuICAgICAgdXJsLnN0YXJ0c1dpdGgoYXBpQWRkcmVzcyArICcva3ViZXJuZXRlcy8nKTtcbiAgICBjb25zdCBpc1dhdGNoT24gPSBwYXJhbXMuZ2V0KCd3YXRjaCcpPy50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZSc7XG4gICAgcmV0dXJuIGlzU3RhbmRhcmRBcGkgJiYgaXNXYXRjaE9uO1xuICB9XG59XG4iXX0=
@@ -12,4 +12,5 @@ export * from './state.service';
12
12
  export * from './storage-token';
13
13
  export * from './authorization';
14
14
  export * from './constants';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hdXRob3JpemF0aW9uL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILGNBQWM7QUFDZCxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBbW2luY2x1ZGU6YXV0aG9yaXphdGlvbi9SRUFETUUubWRdXVxuICogQG1vZHVsZSBhdXRob3JpemF0aW9uXG4gKiBAcHJlZmVycmVkXG4gKi9cblxuLyoqIGltcG9ydHMgKi9cbmV4cG9ydCAqIGZyb20gJy4vZ3VhcmQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyY2VwdG9yLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcHAtaW5pdC11cmwnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXNzaW9uLW1hbmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RhdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JhZ2UtdG9rZW4nO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRob3JpemF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcbiJdfQ==
15
+ export * from './token-client';
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hdXRob3JpemF0aW9uL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILGNBQWM7QUFDZCxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFtbaW5jbHVkZTphdXRob3JpemF0aW9uL1JFQURNRS5tZF1dXG4gKiBAbW9kdWxlIGF1dGhvcml6YXRpb25cbiAqIEBwcmVmZXJyZWRcbiAqL1xuXG4vKiogaW1wb3J0cyAqL1xuZXhwb3J0ICogZnJvbSAnLi9ndWFyZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJjZXB0b3Iuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC1pbml0LXVybCc7XG5leHBvcnQgKiBmcm9tICcuL3Nlc3Npb24tbWFuYWdlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0ZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZS10b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL2F1dGhvcml6YXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi90b2tlbi1jbGllbnQnO1xuIl19