@alauda-fe/common 1.4.36 → 1.4.38
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.
- package/abnormal-page/abnormal-page.component.d.ts.map +1 -0
- package/abnormal-page/abnormal-page.module.d.ts.map +1 -0
- package/abnormal-page/public-api.d.ts.map +1 -0
- package/alauda-fe-common.d.ts.map +1 -0
- package/api/acp-common-api.service.d.ts.map +1 -0
- package/api/api-compatible.interceptor.d.ts.map +1 -0
- package/api/api-gateway.interceptor.d.ts.map +1 -0
- package/api/api-gateway.service.d.ts.map +1 -0
- package/api/auth-api.service.d.ts.map +1 -0
- package/api/cluster-version.service.d.ts.map +1 -0
- package/api/crypto.interceptor.d.ts.map +1 -0
- package/api/helpers.d.ts.map +1 -0
- package/api/k8s-api-resource.service.d.ts.map +1 -0
- package/api/k8s-api.service.d.ts.map +1 -0
- package/api/page-visibility.service.d.ts.map +1 -0
- package/api/platform-ui.service.d.ts.map +1 -0
- package/api/product.service.d.ts.map +1 -0
- package/api/project-api.service.d.ts.map +1 -0
- package/api/public-api.d.ts.map +1 -0
- package/api/resource-update.service.d.ts.map +1 -0
- package/api/types.d.ts.map +1 -0
- package/array-form-table/base-string-map-form.component.d.ts.map +1 -0
- package/array-form-table/form/component.d.ts.map +1 -0
- package/array-form-table/form/module.d.ts.map +1 -0
- package/array-form-table/key-value-form/component.d.ts.map +1 -0
- package/array-form-table/key-value-table/component.d.ts.map +1 -0
- package/array-form-table/public-api.d.ts.map +1 -0
- package/array-form-table/string-array-form/component.d.ts.map +1 -0
- package/async-data/async-data-loader.d.ts.map +1 -0
- package/async-data/async-data.module.d.ts.map +1 -0
- package/async-data/error-page/component.d.ts.map +1 -0
- package/async-data/page-state/component.d.ts.map +1 -0
- package/async-data/public-api.d.ts.map +1 -0
- package/async-data/types.d.ts.map +1 -0
- package/authorization/app-init-url.d.ts.map +1 -0
- package/authorization/authorization.d.ts +3 -12
- package/authorization/authorization.d.ts.map +1 -0
- package/authorization/constants.d.ts +2 -0
- package/authorization/constants.d.ts.map +1 -0
- package/authorization/guard.service.d.ts.map +1 -0
- package/authorization/interceptor.service.d.ts +5 -3
- package/authorization/interceptor.service.d.ts.map +1 -0
- package/authorization/public-api.d.ts +1 -0
- package/authorization/public-api.d.ts.map +1 -0
- package/authorization/runtime.d.ts +33 -0
- package/authorization/runtime.d.ts.map +1 -0
- package/authorization/session-manage.service.d.ts +0 -2
- package/authorization/session-manage.service.d.ts.map +1 -0
- package/authorization/state.service.d.ts +7 -12
- package/authorization/state.service.d.ts.map +1 -0
- package/authorization/storage-token.d.ts.map +1 -0
- package/authorization/token-client.d.ts +48 -0
- package/business/notification-disabled-container/component.d.ts.map +1 -0
- package/business/notification-disabled-container/public-api.d.ts.map +1 -0
- package/business/public-api.d.ts.map +1 -0
- package/business/resource-select/base-list.d.ts.map +1 -0
- package/business/resource-select/context.service.d.ts.map +1 -0
- package/business/resource-select/exports/cluster-list/component.d.ts +1 -1
- package/business/resource-select/exports/cluster-list/component.d.ts.map +1 -0
- package/business/resource-select/exports/cluster-selector/component.d.ts.map +1 -0
- package/business/resource-select/exports/icon/component.d.ts.map +1 -0
- package/business/resource-select/exports/mesh-group-selector/component.d.ts.map +1 -0
- package/business/resource-select/exports/namespace-list/component.d.ts.map +1 -0
- package/business/resource-select/exports/namespace-page/component.d.ts.map +1 -0
- package/business/resource-select/exports/namespace-selector/component.d.ts.map +1 -0
- package/business/resource-select/exports/project-list/component.d.ts.map +1 -0
- package/business/resource-select/exports/project-page/component.d.ts.map +1 -0
- package/business/resource-select/exports/project-selector/component.d.ts.map +1 -0
- package/business/resource-select/helpers.directive.d.ts.map +1 -0
- package/business/resource-select/internals/data-grid/component.d.ts.map +1 -0
- package/business/resource-select/internals/meshgroup-list/component.d.ts.map +1 -0
- package/business/resource-select/internals/no-data/component.d.ts.map +1 -0
- package/business/resource-select/internals/resource-dashboard/component.d.ts.map +1 -0
- package/business/resource-select/internals/selector-popup/component.d.ts.map +1 -0
- package/business/resource-select/internals/selector-popup/ref.d.ts.map +1 -0
- package/business/resource-select/internals/selector-popup/service.d.ts.map +1 -0
- package/business/resource-select/module.d.ts.map +1 -0
- package/business/resource-select/project.service.d.ts.map +1 -0
- package/business/resource-select/public-api.d.ts.map +1 -0
- package/business/resource-select/types.d.ts.map +1 -0
- package/business/resource-select/utils.d.ts.map +1 -0
- package/chart/chart.module.d.ts.map +1 -0
- package/chart/chart.service.d.ts.map +1 -0
- package/chart/common/axis/axis-label.component.d.ts.map +1 -0
- package/chart/common/axis/x-axis-ticks.component.d.ts.map +1 -0
- package/chart/common/axis/x-axis.component.d.ts.map +1 -0
- package/chart/common/axis/x-plot-lines.component.d.ts.map +1 -0
- package/chart/common/axis/y-axis-ticks.component.d.ts.map +1 -0
- package/chart/common/axis/y-axis.component.d.ts.map +1 -0
- package/chart/common/axis/y-plot-lines.component.d.ts.map +1 -0
- package/chart/common/chart/chart.component.d.ts.map +1 -0
- package/chart/common/legend/legend.component.d.ts.map +1 -0
- package/chart/common/public-api.d.ts.map +1 -0
- package/chart/common/range-area/range-area.component.d.ts.map +1 -0
- package/chart/common/reference-area/reference-area.component.d.ts.map +1 -0
- package/chart/common/series/area-series.component.d.ts.map +1 -0
- package/chart/common/series/bar-path.component.d.ts.map +1 -0
- package/chart/common/series/bar-series.component.d.ts.map +1 -0
- package/chart/common/series/line-series.component.d.ts.map +1 -0
- package/chart/common/series/series.component.d.ts.map +1 -0
- package/chart/common/tooltip/tooltip.component.d.ts.map +1 -0
- package/chart/constants.d.ts.map +1 -0
- package/chart/custom-template/dropdown-legend.d.ts.map +1 -0
- package/chart/public-api.d.ts.map +1 -0
- package/chart/types.d.ts.map +1 -0
- package/chart/utils.d.ts.map +1 -0
- package/code/code-display-dialog/component.d.ts.map +1 -0
- package/code/code-editor-configs.d.ts.map +1 -0
- package/code/code.module.d.ts.map +1 -0
- package/code/k8s-yaml-display-dialog/component.d.ts.map +1 -0
- package/code/managed-fields-folder.util.d.ts.map +1 -0
- package/code/public-api.d.ts.map +1 -0
- package/code/resource-yaml-display/component.d.ts.map +1 -0
- package/code/resource-yaml-editor/component.d.ts.map +1 -0
- package/code/yaml-examples.d.ts.map +1 -0
- package/code/yaml-sidebar/component.d.ts.map +1 -0
- package/code/yaml-sidebar/types.d.ts.map +1 -0
- package/core/abstract/base-form-container.d.ts.map +1 -0
- package/core/abstract/base-nested-form-control.d.ts.map +1 -0
- package/core/abstract/public-api.d.ts.map +1 -0
- package/core/components/public-api.d.ts.map +1 -0
- package/core/components/tree/module.d.ts.map +1 -0
- package/core/components/tree/node/component.d.ts.map +1 -0
- package/core/components/tree/outlet.d.ts.map +1 -0
- package/core/components/tree/padding.d.ts.map +1 -0
- package/core/components/tree/toggle.d.ts.map +1 -0
- package/core/components/tree/tree/component.d.ts.map +1 -0
- package/core/constants/constants.d.ts.map +1 -0
- package/core/constants/patterns.d.ts.map +1 -0
- package/core/constants/public-api.d.ts.map +1 -0
- package/core/constants/status-icons.d.ts.map +1 -0
- package/core/constants/timezones.d.ts.map +1 -0
- package/core/constants/tokens.d.ts.map +1 -0
- package/core/directives/aui-code-editor.directive.d.ts.map +1 -0
- package/core/directives/click-outside.directive.d.ts.map +1 -0
- package/core/directives/declare.directive.d.ts.map +1 -0
- package/core/directives/disabled.directive.d.ts.map +1 -0
- package/core/directives/feature-gate.directive.d.ts.map +1 -0
- package/core/directives/intercept-deactivate.directive.d.ts.map +1 -0
- package/core/directives/last-form-item.directive.d.ts.map +1 -0
- package/core/directives/page-header-content.directive.d.ts.map +1 -0
- package/core/directives/public-api.d.ts.map +1 -0
- package/core/directives/readonly-field.directive.d.ts.map +1 -0
- package/core/directives/resize.directive.d.ts.map +1 -0
- package/core/directives/scroll-border-observer.directive.d.ts.map +1 -0
- package/core/directives/scroll-to-first-invalid.directive.d.ts.map +1 -0
- package/core/guards/feature.guard.d.ts.map +1 -0
- package/core/guards/intercept-deactivate.guard.d.ts.map +1 -0
- package/core/guards/leave-edit-page.guard.d.ts.map +1 -0
- package/core/guards/project-namespace.guard.d.ts.map +1 -0
- package/core/guards/public-api.d.ts.map +1 -0
- package/core/module.d.ts.map +1 -0
- package/core/pipes/calc.pipe.d.ts.map +1 -0
- package/core/pipes/cron-human-readable.pipe.d.ts.map +1 -0
- package/core/pipes/crontab-next.pipe.d.ts.map +1 -0
- package/core/pipes/duration.pipe.d.ts.map +1 -0
- package/core/pipes/field-not-available.pipe.d.ts.map +1 -0
- package/core/pipes/img-header.pipe.d.ts.map +1 -0
- package/core/pipes/img-theme.pipe.d.ts.map +1 -0
- package/core/pipes/k8s-util.pipe.d.ts.map +1 -0
- package/core/pipes/k8s-util.pipe.module.d.ts.map +1 -0
- package/core/pipes/keyvalue.pipe.d.ts.map +1 -0
- package/core/pipes/marked.pipe.d.ts.map +1 -0
- package/core/pipes/minimum-format.pipe.d.ts.map +1 -0
- package/core/pipes/page-env.pipe.d.ts.map +1 -0
- package/core/pipes/parse-json-translate.pipe.d.ts.map +1 -0
- package/core/pipes/parse-json.pipe.d.ts.map +1 -0
- package/core/pipes/public-api.d.ts.map +1 -0
- package/core/pipes/pure.pipe.d.ts.map +1 -0
- package/core/pipes/pure.pipe.module.d.ts.map +1 -0
- package/core/pipes/safe.pipe.d.ts.map +1 -0
- package/core/pipes/sanitize.pipe.d.ts.map +1 -0
- package/core/pipes/time.pipe.d.ts.map +1 -0
- package/core/pipes/timezone-display.pipe.d.ts.map +1 -0
- package/core/public-api.d.ts.map +1 -0
- package/core/services/aui-paginator-intl.service.d.ts.map +1 -0
- package/core/services/aui-tooltip-copy-intl.service.d.ts.map +1 -0
- package/core/services/context.service.d.ts.map +1 -0
- package/core/services/custom-code-editor-intl.service.d.ts.map +1 -0
- package/core/services/disaster-recovery.service.d.ts.map +1 -0
- package/core/services/encode-url-param.interceptor.d.ts.map +1 -0
- package/core/services/feature-gate.service.d.ts.map +1 -0
- package/core/services/form-row-duplicate/form-row-duplicate.service.d.ts.map +1 -0
- package/core/services/intercept-deactivate.service.d.ts.map +1 -0
- package/core/services/k8s-util.service.d.ts.map +1 -0
- package/core/services/kubernetes-schema.service.d.ts.map +1 -0
- package/core/services/on-resize.service.d.ts.map +1 -0
- package/core/services/plugin-util.service.d.ts.map +1 -0
- package/core/services/public-api.d.ts.map +1 -0
- package/core/services/silently-navigate.service.d.ts.map +1 -0
- package/core/services/time.service.d.ts.map +1 -0
- package/core/services/ui-state.service.d.ts.map +1 -0
- package/core/services/workspace-helper.service.d.ts.map +1 -0
- package/core/services/yaml-util.service.d.ts.map +1 -0
- package/core/types/commons.d.ts.map +1 -0
- package/core/types/helpers.d.ts.map +1 -0
- package/core/types/k8s/core.d.ts.map +1 -0
- package/core/types/k8s/crd.d.ts.map +1 -0
- package/core/types/k8s/public-api.d.ts.map +1 -0
- package/core/types/k8s/raw.d.ts.map +1 -0
- package/core/types/openapi.d.ts.map +1 -0
- package/core/types/public-api.d.ts.map +1 -0
- package/core/types/resource-definitions.d.ts +1 -1
- package/core/types/resource-definitions.d.ts.map +1 -0
- package/core/types/schema.d.ts.map +1 -0
- package/core/utils/browser.d.ts.map +1 -0
- package/core/utils/cache-store.d.ts.map +1 -0
- package/core/utils/color-helpers.d.ts.map +1 -0
- package/core/utils/common.d.ts.map +1 -0
- package/core/utils/create-recursive-filter.d.ts.map +1 -0
- package/core/utils/cron-util.d.ts.map +1 -0
- package/core/utils/decorators.d.ts.map +1 -0
- package/core/utils/dev-helpers.d.ts.map +1 -0
- package/core/utils/disabled-state.d.ts.map +1 -0
- package/core/utils/format-number.d.ts.map +1 -0
- package/core/utils/k8s-util.d.ts.map +1 -0
- package/core/utils/local-storage-constants.d.ts.map +1 -0
- package/core/utils/node.d.ts.map +1 -0
- package/core/utils/observable.d.ts.map +1 -0
- package/core/utils/operators.d.ts.map +1 -0
- package/core/utils/public-api.d.ts.map +1 -0
- package/core/utils/request-pool.d.ts.map +1 -0
- package/core/utils/resources.d.ts.map +1 -0
- package/core/utils/router.d.ts.map +1 -0
- package/core/utils/sort-fn.d.ts.map +1 -0
- package/core/utils/tree.d.ts.map +1 -0
- package/core/utils/unit.d.ts.map +1 -0
- package/core/utils/version.d.ts.map +1 -0
- package/core/utils/with-load-state.d.ts.map +1 -0
- package/core/utils/workload.d.ts.map +1 -0
- package/core/utils/workspace.d.ts.map +1 -0
- package/core/utils/yaml.d.ts.map +1 -0
- package/custom-columns-setting/component.d.ts.map +1 -0
- package/custom-columns-setting/public-api.d.ts.map +1 -0
- package/disabled-container/disabled-container.component.d.ts.map +1 -0
- package/disabled-container/disabled-container.module.d.ts.map +1 -0
- package/disabled-container/public-api.d.ts.map +1 -0
- package/editable/editable.component.d.ts.map +1 -0
- package/editable/editable.directive.d.ts.map +1 -0
- package/editable/editable.type.d.ts.map +1 -0
- package/editable/public-api.d.ts.map +1 -0
- package/editable-text/component.d.ts.map +1 -0
- package/editable-text/module.d.ts.map +1 -0
- package/editable-text/public-api.d.ts.map +1 -0
- package/effect-directive/coerce-number.directive.d.ts.map +1 -0
- package/effect-directive/e2e-attribute-binding.directive.d.ts.map +1 -0
- package/effect-directive/event.directive.d.ts.map +1 -0
- package/effect-directive/min-max.directive.d.ts.map +1 -0
- package/effect-directive/module.d.ts.map +1 -0
- package/effect-directive/public-api.d.ts.map +1 -0
- package/effect-directive/trim.directive.d.ts.map +1 -0
- package/effect-directive/validators.directive.d.ts.map +1 -0
- package/esm2022/abnormal-page/abnormal-page.component.mjs +7 -3
- package/esm2022/abnormal-page/abnormal-page.module.mjs +1 -6
- package/esm2022/array-form-table/form/component.mjs +1 -1
- package/esm2022/array-form-table/key-value-form/component.mjs +1 -1
- package/esm2022/array-form-table/key-value-table/component.mjs +1 -1
- package/esm2022/array-form-table/string-array-form/component.mjs +1 -1
- package/esm2022/async-data/error-page/component.mjs +1 -1
- package/esm2022/async-data/page-state/component.mjs +1 -1
- package/esm2022/authorization/authorization.mjs +82 -51
- package/esm2022/authorization/constants.mjs +3 -1
- package/esm2022/authorization/interceptor.service.mjs +67 -45
- package/esm2022/authorization/public-api.mjs +2 -1
- package/esm2022/authorization/runtime.mjs +96 -0
- package/esm2022/authorization/session-manage.service.mjs +3 -5
- package/esm2022/authorization/state.service.mjs +23 -64
- package/esm2022/authorization/token-client.mjs +101 -0
- package/esm2022/business/notification-disabled-container/component.mjs +1 -1
- package/esm2022/business/resource-select/exports/cluster-list/component.mjs +4 -3
- package/esm2022/business/resource-select/exports/cluster-selector/component.mjs +8 -3
- package/esm2022/business/resource-select/exports/icon/component.mjs +5 -3
- package/esm2022/business/resource-select/exports/mesh-group-selector/component.mjs +9 -3
- package/esm2022/business/resource-select/exports/namespace-list/component.mjs +13 -3
- package/esm2022/business/resource-select/exports/namespace-page/component.mjs +1 -1
- package/esm2022/business/resource-select/exports/namespace-selector/component.mjs +1 -1
- package/esm2022/business/resource-select/exports/project-list/component.mjs +4 -3
- package/esm2022/business/resource-select/exports/project-page/component.mjs +1 -1
- package/esm2022/business/resource-select/exports/project-selector/component.mjs +1 -1
- package/esm2022/business/resource-select/internals/data-grid/component.mjs +13 -3
- package/esm2022/business/resource-select/internals/meshgroup-list/component.mjs +4 -3
- package/esm2022/business/resource-select/internals/no-data/component.mjs +7 -3
- package/esm2022/business/resource-select/internals/resource-dashboard/component.mjs +7 -3
- package/esm2022/business/resource-select/internals/selector-popup/component.mjs +1 -1
- package/esm2022/business/resource-select/module.mjs +6 -26
- package/esm2022/chart/chart.module.mjs +6 -13
- package/esm2022/chart/common/axis/axis-label.component.mjs +1 -1
- package/esm2022/chart/common/axis/x-axis-ticks.component.mjs +5 -3
- package/esm2022/chart/common/axis/x-axis.component.mjs +1 -1
- package/esm2022/chart/common/axis/x-plot-lines.component.mjs +1 -1
- package/esm2022/chart/common/axis/y-axis-ticks.component.mjs +5 -3
- package/esm2022/chart/common/axis/y-axis.component.mjs +1 -1
- package/esm2022/chart/common/axis/y-plot-lines.component.mjs +1 -1
- package/esm2022/chart/common/chart/chart.component.mjs +1 -1
- package/esm2022/chart/common/legend/legend.component.mjs +1 -1
- package/esm2022/chart/common/range-area/range-area.component.mjs +1 -1
- package/esm2022/chart/common/reference-area/reference-area.component.mjs +1 -1
- package/esm2022/chart/common/series/area-series.component.mjs +5 -3
- package/esm2022/chart/common/series/bar-path.component.mjs +5 -3
- package/esm2022/chart/common/series/bar-series.component.mjs +1 -1
- package/esm2022/chart/common/series/line-series.component.mjs +5 -3
- package/esm2022/chart/common/tooltip/tooltip.component.mjs +8 -3
- package/esm2022/chart/custom-template/dropdown-legend.mjs +7 -3
- package/esm2022/code/code-display-dialog/component.mjs +1 -1
- package/esm2022/code/k8s-yaml-display-dialog/component.mjs +1 -1
- package/esm2022/code/resource-yaml-display/component.mjs +1 -1
- package/esm2022/code/resource-yaml-editor/component.mjs +1 -1
- package/esm2022/code/yaml-sidebar/component.mjs +1 -1
- package/esm2022/core/components/tree/node/component.mjs +1 -1
- package/esm2022/core/components/tree/tree/component.mjs +1 -1
- package/esm2022/core/constants/tokens.mjs +12 -12
- package/esm2022/core/directives/readonly-field.directive.mjs +1 -1
- package/esm2022/custom-columns-setting/component.mjs +1 -1
- package/esm2022/disabled-container/disabled-container.component.mjs +1 -1
- package/esm2022/editable/editable.component.mjs +1 -1
- package/esm2022/editable-text/component.mjs +7 -3
- package/esm2022/editable-text/module.mjs +1 -6
- package/esm2022/exec/module.mjs +1 -9
- package/esm2022/exec/placeholder/component.mjs +5 -3
- package/esm2022/exec/terminal/component.mjs +7 -3
- package/esm2022/exec/terminal-group/component.mjs +8 -3
- package/esm2022/feature-gate-forbidden/component/component.mjs +8 -3
- package/esm2022/feature-gate-forbidden/module.mjs +1 -7
- package/esm2022/form/errors-mapper/errors-mapper-component/component.mjs +1 -1
- package/esm2022/form/errors-mapper/errors-mapper.directive.mjs +1 -1
- package/esm2022/form/labels-editor/component.mjs +1 -1
- package/esm2022/form/taints-editor/component.mjs +1 -1
- package/esm2022/form/upload-file/component.mjs +1 -1
- package/esm2022/form/validators/strong-password/strong-password-tooltip/component.mjs +6 -3
- package/esm2022/form/validators/strong-password/strong-password-validator.module.mjs +1 -5
- package/esm2022/graph-canvas/components/graph-actions.component.mjs +1 -1
- package/esm2022/graph-canvas/components/graph-canvas.component.mjs +6 -3
- package/esm2022/graph-canvas/components/graph-link.component.mjs +1 -1
- package/esm2022/graph-canvas/components/graph-links.component.mjs +1 -1
- package/esm2022/graph-canvas/graph-canvas.module.mjs +1 -5
- package/esm2022/grid-layout/components/grid/component.mjs +1 -1
- package/esm2022/grid-layout/components/grid-items/component.mjs +1 -1
- package/esm2022/help-document/component.mjs +10 -3
- package/esm2022/help-document/module.mjs +1 -9
- package/esm2022/iframe-config/config.service.mjs +8 -2
- package/esm2022/k8s-resource-list/footer/component.mjs +6 -3
- package/esm2022/k8s-resource-list/k8s-resource-list.module.mjs +1 -5
- package/esm2022/k8s-shared/resource-mark/k8s-resource-mark.component.mjs +1 -1
- package/esm2022/k8s-shared/update-description-dialog/component.mjs +1 -1
- package/esm2022/k8s-shared/update-display-name-dialog/component.mjs +1 -1
- package/esm2022/k8s-shared/update-key-value-dialog/component.mjs +1 -1
- package/esm2022/lazy-component/lazy-load-component.mjs +1 -1
- package/esm2022/license/license-error/component.mjs +12 -3
- package/esm2022/license/license-error/module.mjs +1 -11
- package/esm2022/list-display/component.mjs +1 -1
- package/esm2022/metric-chart/metric-chart.component.mjs +1 -1
- package/esm2022/metric-chart/metric-time-pick.mjs +1 -1
- package/esm2022/multi-search/action-input/component.mjs +1 -1
- package/esm2022/multi-search/form/component.mjs +1 -1
- package/esm2022/multi-search/multi-search-tags/component.mjs +1 -1
- package/esm2022/mutable/mosaic/mosaic.component.mjs +1 -1
- package/esm2022/notification/feedback-notification/component.mjs +1 -1
- package/esm2022/overview-banner/overview-banner.component.mjs +1 -1
- package/esm2022/page-guard/component/component.mjs +1 -1
- package/esm2022/page-scaffold/navigation/breadcrumb/breadcrumb.component.mjs +1 -1
- package/esm2022/page-scaffold/navigation/nav-menu/nav-item-li/nav-item-li.component.mjs +12 -3
- package/esm2022/page-scaffold/navigation/nav-menu/nav-item-ul/nav-item-ul.component.mjs +1 -1
- package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.component.mjs +9 -3
- package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.module.mjs +1 -12
- package/esm2022/page-scaffold/page/notices/maintenance.component.mjs +1 -1
- package/esm2022/page-scaffold/page/notices/notice.component.mjs +1 -1
- package/esm2022/page-scaffold/page/page.component.mjs +6 -3
- package/esm2022/page-scaffold/page/page.module.mjs +1 -4
- package/esm2022/page-scaffold/page-header/account-menu/component/component.mjs +5 -3
- package/esm2022/page-scaffold/page-header/account-menu/module.mjs +1 -5
- package/esm2022/page-scaffold/page-header/common-layout/common-layout.module.mjs +1 -10
- package/esm2022/page-scaffold/page-header/common-layout/namespace-select/component.mjs +8 -3
- package/esm2022/page-scaffold/page-header/common-layout/product-select/component.mjs +9 -3
- package/esm2022/page-scaffold/page-header/component.mjs +10 -9
- package/esm2022/page-scaffold/page-header/enterprise-support-status/component.mjs +6 -3
- package/esm2022/page-scaffold/page-header/header-notify/component/header-notify.component.mjs +8 -3
- package/esm2022/page-scaffold/page-header/header-notify/component/notification-list/notification-list.component.mjs +10 -3
- package/esm2022/page-scaffold/page-header/header-notify/header-notify.module.mjs +1 -12
- package/esm2022/page-scaffold/page-header/header-notify/notify.service.mjs +1 -1
- package/esm2022/page-scaffold/page-header/help-menu/component/component.mjs +8 -3
- package/esm2022/page-scaffold/page-header/help-menu/module.mjs +1 -7
- package/esm2022/page-scaffold/page-header/module.mjs +1 -4
- package/esm2022/pie-derivative-chart/donut-status/component.mjs +1 -1
- package/esm2022/pie-derivative-chart/pie-derivative-chart.module.mjs +6 -9
- package/esm2022/pie-derivative-chart/radial-bar/radial-bar-chart.component.mjs +10 -3
- package/esm2022/pod-status/component.mjs +1 -1
- package/esm2022/searchable-selector/component.mjs +9 -3
- package/esm2022/searchable-selector/module.mjs +1 -9
- package/esm2022/skeleton/item/component.mjs +5 -3
- package/esm2022/skeleton/module.mjs +1 -5
- package/esm2022/skeleton/nav-skeleton/component.mjs +5 -3
- package/esm2022/table/component.mjs +14 -3
- package/esm2022/table/module.mjs +1 -10
- package/esm2022/translate/i18n-assets-loader.mjs +12 -4
- package/esm2022/translate/i18n-config.mjs +2 -2
- package/esm2022/view-chart/custom-template/dropdown-legend.mjs +7 -3
- package/esm2022/view-chart/legend/legend.component.mjs +1 -1
- package/esm2022/view-chart/view-chart.component.mjs +7 -3
- package/esm2022/view-chart/view-chart.module.mjs +6 -8
- package/esm2022/view-zchart/custom-template/dropdown-legend.mjs +7 -3
- package/esm2022/view-zchart/legend/legend.component.mjs +1 -1
- package/esm2022/view-zchart/view-zchart.component.mjs +6 -3
- package/esm2022/view-zchart/view-zchart.module.mjs +6 -8
- package/esm2022/widget/card-section/card-section.component.mjs +1 -1
- package/esm2022/widget/confirm-delete/confirm-delete.component.mjs +1 -1
- package/esm2022/widget/current-time/component.mjs +1 -1
- package/esm2022/widget/date-range-picker/component.mjs +93 -26
- package/esm2022/widget/field-set/column/component.mjs +2 -2
- package/esm2022/widget/field-set/group/component.mjs +1 -1
- package/esm2022/widget/field-set/item/component.mjs +1 -1
- package/esm2022/widget/foldable-block/component.mjs +1 -1
- package/esm2022/widget/foldable-item-in-table/component.mjs +1 -1
- package/esm2022/widget/loading-mask/loading-mask.component.mjs +1 -1
- package/esm2022/widget/password-input/component.mjs +1 -1
- package/esm2022/widget/relative-time/component.mjs +1 -1
- package/esm2022/widget/resource-label/component.mjs +1 -1
- package/esm2022/widget/resource-multi-select/component.mjs +1 -1
- package/esm2022/widget/search-panel/component.mjs +1 -1
- package/esm2022/widget/search-panel/search-item/component.mjs +1 -1
- package/esm2022/widget/status-icon/status-icon.component.mjs +1 -1
- package/esm2022/widget/tags-label/component.mjs +1 -1
- package/esm2022/widget/terminating-tag/component.mjs +1 -1
- package/esm2022/widget/text-ellipsis/component.mjs +1 -1
- package/esm2022/widget/text-with-url/component.mjs +1 -1
- package/esm2022/widget/zero-state/zero-state.component.mjs +1 -1
- package/esm2022/workload-status-icon/component.mjs +1 -1
- package/esm2022/xterm/xterm-terminal/xterm-terminal.component.mjs +1 -1
- package/esm2022/xterm/xterm.component.mjs +1 -1
- package/exec/constants.d.ts.map +1 -0
- package/exec/module.d.ts +1 -1
- package/exec/module.d.ts.map +1 -0
- package/exec/placeholder/component.d.ts.map +1 -0
- package/exec/public-api.d.ts.map +1 -0
- package/exec/service.d.ts.map +1 -0
- package/exec/terminal/component.d.ts.map +1 -0
- package/exec/terminal-group/component.d.ts.map +1 -0
- package/exec/types.d.ts.map +1 -0
- package/feature-gate-forbidden/component/component.d.ts.map +1 -0
- package/feature-gate-forbidden/module.d.ts.map +1 -0
- package/feature-gate-forbidden/public-api.d.ts.map +1 -0
- package/form/directives/value-trace.directive.d.ts.map +1 -0
- package/form/errors-mapper/base-errors-mapper.d.ts.map +1 -0
- package/form/errors-mapper/default-errors-mapper.service.d.ts.map +1 -0
- package/form/errors-mapper/errors-mapper-component/component.d.ts.map +1 -0
- package/form/errors-mapper/errors-mapper.directive.d.ts.map +1 -0
- package/form/errors-mapper/errors-mapper.module.d.ts.map +1 -0
- package/form/errors-mapper/public-api.d.ts.map +1 -0
- package/form/errors-mapper/types.d.ts.map +1 -0
- package/form/labels-editor/component.d.ts.map +1 -0
- package/form/public-api.d.ts.map +1 -0
- package/form/taints-editor/component.d.ts.map +1 -0
- package/form/upload-file/component.d.ts.map +1 -0
- package/form/utils.d.ts.map +1 -0
- package/form/validators/async-function-validator.directive.d.ts +1 -1
- package/form/validators/async-function-validator.directive.d.ts.map +1 -0
- package/form/validators/dns1123-subdomain.d.ts.map +1 -0
- package/form/validators/function-validator.directive.d.ts.map +1 -0
- package/form/validators/maxlength-minlength-validator.directive.d.ts.map +1 -0
- package/form/validators/module.d.ts.map +1 -0
- package/form/validators/not-be-validator.directive.d.ts.map +1 -0
- package/form/validators/one-of-validator.directive.d.ts.map +1 -0
- package/form/validators/public-api.d.ts.map +1 -0
- package/form/validators/resource-limit.d.ts.map +1 -0
- package/form/validators/strong-password/public-api.d.ts.map +1 -0
- package/form/validators/strong-password/strong-password-tooltip/component.d.ts.map +1 -0
- package/form/validators/strong-password/strong-password-validator.directive.d.ts.map +1 -0
- package/form/validators/strong-password/strong-password-validator.module.d.ts.map +1 -0
- package/form/validators/utils.d.ts.map +1 -0
- package/graph-canvas/components/graph-actions.component.d.ts.map +1 -0
- package/graph-canvas/components/graph-canvas.component.d.ts.map +1 -0
- package/graph-canvas/components/graph-link.component.d.ts.map +1 -0
- package/graph-canvas/components/graph-links.component.d.ts.map +1 -0
- package/graph-canvas/components/graph-node.directive.d.ts.map +1 -0
- package/graph-canvas/graph-canvas.module.d.ts.map +1 -0
- package/graph-canvas/graph-store.service.d.ts.map +1 -0
- package/graph-canvas/public-api.d.ts.map +1 -0
- package/graph-canvas/types.d.ts.map +1 -0
- package/graph-canvas/utils.d.ts.map +1 -0
- package/grid-layout/components/grid/component.d.ts.map +1 -0
- package/grid-layout/components/grid-items/component.d.ts.map +1 -0
- package/grid-layout/constant.d.ts.map +1 -0
- package/grid-layout/directives/drag-handler.directive.d.ts.map +1 -0
- package/grid-layout/directives/placeholder.directive.d.ts.map +1 -0
- package/grid-layout/directives/remove-handler.directive.d.ts.map +1 -0
- package/grid-layout/directives/resize-handler.directive.d.ts.map +1 -0
- package/grid-layout/grid-layout.service.d.ts.map +1 -0
- package/grid-layout/grid-placeholder.service.d.ts.map +1 -0
- package/grid-layout/module.d.ts.map +1 -0
- package/grid-layout/public-api.d.ts.map +1 -0
- package/grid-layout/type.d.ts.map +1 -0
- package/grid-layout/utils/client-rect.utils.d.ts.map +1 -0
- package/grid-layout/utils/grid.utils.d.ts.map +1 -0
- package/grid-layout/utils/mouse.utils.d.ts.map +1 -0
- package/grid-layout/utils/operator.d.ts.map +1 -0
- package/grid-layout/utils/react-grid-layout.utils.d.ts.map +1 -0
- package/grid-layout/utils/scroll.utils.d.ts.map +1 -0
- package/help-document/component.d.ts.map +1 -0
- package/help-document/directive.d.ts.map +1 -0
- package/help-document/module.d.ts.map +1 -0
- package/help-document/public-api.d.ts.map +1 -0
- package/help-document/service.d.ts.map +1 -0
- package/iframe-config/config.service.d.ts.map +1 -0
- package/iframe-config/constants.d.ts.map +1 -0
- package/iframe-config/public-api.d.ts.map +1 -0
- package/k8s-resource-list/footer/component.d.ts.map +1 -0
- package/k8s-resource-list/k8s-resource-list.d.ts.map +1 -0
- package/k8s-resource-list/k8s-resource-list.module.d.ts.map +1 -0
- package/k8s-resource-list/k8s-resource-paged-list.d.ts.map +1 -0
- package/k8s-resource-list/public-api.d.ts.map +1 -0
- package/k8s-resource-list/types.d.ts.map +1 -0
- package/k8s-resource-list/utils.d.ts.map +1 -0
- package/k8s-shared/constants.d.ts.map +1 -0
- package/k8s-shared/k8s-resource-translate-key.pipe.d.ts.map +1 -0
- package/k8s-shared/k8s-shared-util.service.d.ts.map +1 -0
- package/k8s-shared/public-api.d.ts.map +1 -0
- package/k8s-shared/resource-mark/k8s-resource-mark.component.d.ts.map +1 -0
- package/k8s-shared/resource-mark/util.d.ts.map +1 -0
- package/k8s-shared/update-description-dialog/component.d.ts.map +1 -0
- package/k8s-shared/update-display-name-dialog/component.d.ts.map +1 -0
- package/k8s-shared/update-key-value-dialog/component.d.ts.map +1 -0
- package/lazy-component/lazy-load-component.d.ts.map +1 -0
- package/lazy-component/public-api.d.ts.map +1 -0
- package/lazy-component/visibility.service.d.ts.map +1 -0
- package/license/license-api.d.ts.map +1 -0
- package/license/license-error/component.d.ts.map +1 -0
- package/license/license-error/module.d.ts.map +1 -0
- package/license/license.guard.d.ts.map +1 -0
- package/license/license.service.d.ts.map +1 -0
- package/license/license.type.d.ts.map +1 -0
- package/license/public-api.d.ts.map +1 -0
- package/list-display/component.d.ts.map +1 -0
- package/list-display/public-api.d.ts.map +1 -0
- package/metric-chart/common-chart.service.d.ts.map +1 -0
- package/metric-chart/helpers.d.ts.map +1 -0
- package/metric-chart/metric-chart.component.d.ts.map +1 -0
- package/metric-chart/metric-chart.module.d.ts.map +1 -0
- package/metric-chart/metric-time-pick.d.ts.map +1 -0
- package/metric-chart/public-api.d.ts.map +1 -0
- package/metric-chart/types.d.ts.map +1 -0
- package/metric-chart/utils.d.ts.map +1 -0
- package/multi-search/action-input/component.d.ts.map +1 -0
- package/multi-search/form/component.d.ts.map +1 -0
- package/multi-search/multi-search-tags/component.d.ts.map +1 -0
- package/multi-search/public-api.d.ts.map +1 -0
- package/multi-search/types.d.ts.map +1 -0
- package/multi-search/utils.d.ts.map +1 -0
- package/mutable/element.d.ts.map +1 -0
- package/mutable/mosaic/mosaic.component.d.ts.map +1 -0
- package/mutable/mosaic/mosaic.directive.d.ts.map +1 -0
- package/mutable/mutable.directive.d.ts.map +1 -0
- package/mutable/mutable.module.d.ts.map +1 -0
- package/mutable/public-api.d.ts.map +1 -0
- package/mutable/util.d.ts.map +1 -0
- package/notification/errors-mapper.d.ts.map +1 -0
- package/notification/feedback-notification/component.d.ts.map +1 -0
- package/notification/helpers.d.ts.map +1 -0
- package/notification/notification-util.service.d.ts.map +1 -0
- package/notification/public-api.d.ts.map +1 -0
- package/notification/resource-error.interceptor.d.ts.map +1 -0
- package/overview-banner/overview-banner.component.d.ts.map +1 -0
- package/overview-banner/overview-banner.module.d.ts.map +1 -0
- package/overview-banner/overview-banner.types.d.ts.map +1 -0
- package/overview-banner/public-api.d.ts.map +1 -0
- package/package.json +1 -1
- package/page-guard/component/component.d.ts.map +1 -0
- package/page-guard/component/helper-directives.d.ts.map +1 -0
- package/page-guard/component/page-guard.type.d.ts.map +1 -0
- package/page-guard/module.d.ts.map +1 -0
- package/page-guard/public-api.d.ts.map +1 -0
- package/page-scaffold/module.d.ts.map +1 -0
- package/page-scaffold/navigation/breadcrumb/breadcrumb-slot.directive.d.ts.map +1 -0
- package/page-scaffold/navigation/breadcrumb/breadcrumb.component.d.ts.map +1 -0
- package/page-scaffold/navigation/breadcrumb/breadcrumb.service.d.ts.map +1 -0
- package/page-scaffold/navigation/breadcrumb/module.d.ts.map +1 -0
- package/page-scaffold/navigation/breadcrumb/public-api.d.ts.map +1 -0
- package/page-scaffold/navigation/lottie-icons/animation-data.d.ts.map +1 -0
- package/page-scaffold/navigation/lottie-icons/lottie-icon.directive.d.ts.map +1 -0
- package/page-scaffold/navigation/lottie-icons/module.d.ts.map +1 -0
- package/page-scaffold/navigation/lottie-icons/public-api.d.ts.map +1 -0
- package/page-scaffold/navigation/lottie-icons/replace-lottie-colors.d.ts.map +1 -0
- package/page-scaffold/navigation/module.d.ts.map +1 -0
- package/page-scaffold/navigation/nav-menu/nav-item-li/nav-item-li.component.d.ts.map +1 -0
- package/page-scaffold/navigation/nav-menu/nav-item-ul/nav-item-ul.component.d.ts.map +1 -0
- package/page-scaffold/navigation/nav-menu/nav-menu.component.d.ts.map +1 -0
- package/page-scaffold/navigation/nav-menu/nav-menu.module.d.ts.map +1 -0
- package/page-scaffold/navigation/nav-menu/nav-menu.types.d.ts.map +1 -0
- package/page-scaffold/navigation/nav-menu/public-api.d.ts.map +1 -0
- package/page-scaffold/navigation/navconfig-loader/navconfig-loader.service.d.ts.map +1 -0
- package/page-scaffold/navigation/navconfig-loader/public-api.d.ts.map +1 -0
- package/page-scaffold/navigation/public-api.d.ts.map +1 -0
- package/page-scaffold/navigation/utils.d.ts.map +1 -0
- package/page-scaffold/page/context.service.d.ts.map +1 -0
- package/page-scaffold/page/helper-directives.d.ts.map +1 -0
- package/page-scaffold/page/notices/maintenance.component.d.ts.map +1 -0
- package/page-scaffold/page/notices/notice.component.d.ts.map +1 -0
- package/page-scaffold/page/page.component.d.ts.map +1 -0
- package/page-scaffold/page/page.module.d.ts.map +1 -0
- package/page-scaffold/page/public-api.d.ts.map +1 -0
- package/page-scaffold/page-header/account-menu/component/component.d.ts +0 -17
- package/page-scaffold/page-header/account-menu/component/component.d.ts.map +1 -0
- package/page-scaffold/page-header/account-menu/module.d.ts.map +1 -0
- package/page-scaffold/page-header/account-menu/public-api.d.ts.map +1 -0
- package/page-scaffold/page-header/common-layout/common-layout.module.d.ts.map +1 -0
- package/page-scaffold/page-header/common-layout/context.service.d.ts.map +1 -0
- package/page-scaffold/page-header/common-layout/namespace-select/component.d.ts.map +1 -0
- package/page-scaffold/page-header/common-layout/product-select/component.d.ts.map +1 -0
- package/page-scaffold/page-header/common-layout/product-select/service.d.ts.map +1 -0
- package/page-scaffold/page-header/common-layout/project-select/base-selection.d.ts.map +1 -0
- package/page-scaffold/page-header/common-layout/public-api.d.ts.map +1 -0
- package/page-scaffold/page-header/common-layout/store.service.d.ts.map +1 -0
- package/page-scaffold/page-header/common-layout/utils.d.ts.map +1 -0
- package/page-scaffold/page-header/component.d.ts +1 -1
- package/page-scaffold/page-header/component.d.ts.map +1 -0
- package/page-scaffold/page-header/enterprise-support-status/component.d.ts.map +1 -0
- package/page-scaffold/page-header/header-notify/component/header-notify.component.d.ts.map +1 -0
- package/page-scaffold/page-header/header-notify/component/notification-list/notification-list.component.d.ts.map +1 -0
- package/page-scaffold/page-header/header-notify/header-notify.module.d.ts.map +1 -0
- package/page-scaffold/page-header/header-notify/notify.service.d.ts.map +1 -0
- package/page-scaffold/page-header/header-notify/public-api.d.ts.map +1 -0
- package/page-scaffold/page-header/header-notify/utils.d.ts.map +1 -0
- package/page-scaffold/page-header/help-menu/component/component.d.ts.map +1 -0
- package/page-scaffold/page-header/help-menu/module.d.ts.map +1 -0
- package/page-scaffold/page-header/help-menu/public-api.d.ts.map +1 -0
- package/page-scaffold/page-header/module.d.ts.map +1 -0
- package/page-scaffold/page-header/public-api.d.ts.map +1 -0
- package/page-scaffold/public-api.d.ts.map +1 -0
- package/permission/constants.d.ts.map +1 -0
- package/permission/helpers.d.ts.map +1 -0
- package/permission/k8s-permission.service.d.ts.map +1 -0
- package/permission/permission.guard.d.ts.map +1 -0
- package/permission/public-api.d.ts.map +1 -0
- package/permission/types.d.ts.map +1 -0
- package/pie-derivative-chart/donut-status/component.d.ts.map +1 -0
- package/pie-derivative-chart/indicator-color.directive.d.ts.map +1 -0
- package/pie-derivative-chart/numerical-limit.pipe.d.ts.map +1 -0
- package/pie-derivative-chart/pie-derivative-chart.module.d.ts.map +1 -0
- package/pie-derivative-chart/public-api.d.ts.map +1 -0
- package/pie-derivative-chart/radial-bar/radial-bar-chart.component.d.ts.map +1 -0
- package/pie-derivative-chart/units.d.ts.map +1 -0
- package/pod-status/component.d.ts.map +1 -0
- package/pod-status/public-api.d.ts.map +1 -0
- package/pod-status/status.d.ts.map +1 -0
- package/pod-status/typings.d.ts.map +1 -0
- package/public-api.d.ts.map +1 -0
- package/searchable-selector/component.d.ts.map +1 -0
- package/searchable-selector/module.d.ts.map +1 -0
- package/searchable-selector/public-api.d.ts.map +1 -0
- package/skeleton/item/component.d.ts.map +1 -0
- package/skeleton/module.d.ts.map +1 -0
- package/skeleton/nav-skeleton/component.d.ts.map +1 -0
- package/skeleton/public-api.d.ts.map +1 -0
- package/table/component.d.ts +1 -1
- package/table/component.d.ts.map +1 -0
- package/table/constants.d.ts.map +1 -0
- package/table/helper.d.ts.map +1 -0
- package/table/helpers.directive.d.ts.map +1 -0
- package/table/module.d.ts +1 -1
- package/table/module.d.ts.map +1 -0
- package/table/public-api.d.ts.map +1 -0
- package/table/types.d.ts.map +1 -0
- package/table/util.service.d.ts.map +1 -0
- package/translate/constants.d.ts.map +1 -0
- package/translate/helpers.d.ts.map +1 -0
- package/translate/i18n-assets-loader.d.ts.map +1 -0
- package/translate/i18n-config.d.ts.map +1 -0
- package/translate/intl-format.pipes.d.ts.map +1 -0
- package/translate/public-api.d.ts.map +1 -0
- package/translate/relative-time-manager.service.d.ts.map +1 -0
- package/translate/tokens.d.ts.map +1 -0
- package/translate/translate.directive.d.ts.map +1 -0
- package/translate/translate.module.d.ts.map +1 -0
- package/translate/translate.pipe.d.ts.map +1 -0
- package/translate/translate.service.d.ts.map +1 -0
- package/translate/types.d.ts.map +1 -0
- package/view-chart/custom-template/dropdown-legend.d.ts.map +1 -0
- package/view-chart/legend/legend.component.d.ts.map +1 -0
- package/view-chart/public-api.d.ts.map +1 -0
- package/view-chart/types.d.ts.map +1 -0
- package/view-chart/view-chart.component.d.ts +1 -1
- package/view-chart/view-chart.component.d.ts.map +1 -0
- package/view-chart/view-chart.module.d.ts.map +1 -0
- package/view-zchart/custom-template/dropdown-legend.d.ts.map +1 -0
- package/view-zchart/legend/legend.component.d.ts.map +1 -0
- package/view-zchart/public-api.d.ts.map +1 -0
- package/view-zchart/types.d.ts.map +1 -0
- package/view-zchart/units.d.ts.map +1 -0
- package/view-zchart/view-zchart.component.d.ts.map +1 -0
- package/view-zchart/view-zchart.module.d.ts.map +1 -0
- package/widget/card-section/card-section.component.d.ts.map +1 -0
- package/widget/confirm-delete/confirm-delete.component.d.ts.map +1 -0
- package/widget/confirm-delete/utils.d.ts.map +1 -0
- package/widget/current-time/component.d.ts.map +1 -0
- package/widget/date-range-picker/component.d.ts +0 -4
- package/widget/date-range-picker/component.d.ts.map +1 -0
- package/widget/date-range-picker/public-api.d.ts.map +1 -0
- package/widget/date-range-picker/type.d.ts.map +1 -0
- package/widget/date-range-picker/util.d.ts.map +1 -0
- package/widget/field-set/column/component.d.ts.map +1 -0
- package/widget/field-set/group/component.d.ts.map +1 -0
- package/widget/field-set/index.d.ts.map +1 -0
- package/widget/field-set/item/component.d.ts.map +1 -0
- package/widget/foldable-block/component.d.ts.map +1 -0
- package/widget/foldable-item-in-table/component.d.ts.map +1 -0
- package/widget/loading-mask/loading-mask.component.d.ts.map +1 -0
- package/widget/password-input/component.d.ts.map +1 -0
- package/widget/public-api.d.ts.map +1 -0
- package/widget/relative-time/component.d.ts.map +1 -0
- package/widget/resource-label/component.d.ts.map +1 -0
- package/widget/resource-multi-select/component.d.ts.map +1 -0
- package/widget/resource-multi-select/util.d.ts.map +1 -0
- package/widget/search-panel/component.d.ts.map +1 -0
- package/widget/search-panel/helper.directive.d.ts.map +1 -0
- package/widget/search-panel/search-item/component.d.ts.map +1 -0
- package/widget/select-prefix-label/directive.d.ts.map +1 -0
- package/widget/status-icon/status-icon.component.d.ts.map +1 -0
- package/widget/tags-label/component.d.ts.map +1 -0
- package/widget/terminating-tag/component.d.ts.map +1 -0
- package/widget/text-ellipsis/component.d.ts.map +1 -0
- package/widget/text-tooltip/directive.d.ts.map +1 -0
- package/widget/text-with-url/component.d.ts.map +1 -0
- package/widget/widget.module.d.ts.map +1 -0
- package/widget/zero-state/zero-state.component.d.ts.map +1 -0
- package/window-channel/base-window-channel.d.ts.map +1 -0
- package/window-channel/directives/host-link.directive.d.ts.map +1 -0
- package/window-channel/host-window-channel.service.d.ts.map +1 -0
- package/window-channel/plugin-window-channel.service.d.ts.map +1 -0
- package/window-channel/public-api.d.ts.map +1 -0
- package/window-channel/utils.d.ts.map +1 -0
- package/workload-status-icon/component.d.ts.map +1 -0
- package/workload-status-icon/public-api.d.ts.map +1 -0
- package/xterm/public-api.d.ts.map +1 -0
- package/xterm/xterm-terminal/xterm-terminal.component.d.ts.map +1 -0
- package/xterm/xterm-terminal/xterm-terminal.directive.d.ts.map +1 -0
- package/xterm/xterm.component.d.ts.map +1 -0
|
@@ -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 {
|
|
12
|
-
import {
|
|
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.
|
|
30
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
62
|
-
|
|
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
|
-
|
|
79
|
-
|
|
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
|
-
|
|
104
|
+
logout(true);
|
|
84
105
|
}
|
|
85
106
|
return throwError(() => error);
|
|
86
107
|
}));
|
|
87
108
|
}));
|
|
88
109
|
}
|
|
89
|
-
|
|
90
|
-
if (
|
|
91
|
-
this.
|
|
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.
|
|
115
|
+
return !this.anonymousApis.some(api => api instanceof RegExp ? api.test(req.url) : req.url.includes(api));
|
|
94
116
|
}
|
|
95
|
-
|
|
96
|
-
if (
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
15
|
+
export * from './token-client';
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hdXRob3JpemF0aW9uL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILGNBQWM7QUFDZCxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFtbaW5jbHVkZTphdXRob3JpemF0aW9uL1JFQURNRS5tZF1dXG4gKiBAbW9kdWxlIGF1dGhvcml6YXRpb25cbiAqIEBwcmVmZXJyZWRcbiAqL1xuXG4vKiogaW1wb3J0cyAqL1xuZXhwb3J0ICogZnJvbSAnLi9ndWFyZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJjZXB0b3Iuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC1pbml0LXVybCc7XG5leHBvcnQgKiBmcm9tICcuL3Nlc3Npb24tbWFuYWdlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0ZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZS10b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL2F1dGhvcml6YXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi90b2tlbi1jbGllbnQnO1xuIl19
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { noop } from '../core/public-api';
|
|
2
|
+
import { TOKEN_INFO_API, TOKEN_REFRESH_API } from './constants';
|
|
3
|
+
import { readStorageToken, writeStorageToken } from './storage-token';
|
|
4
|
+
let cachedAccountInfo;
|
|
5
|
+
export function resetAuthRuntimeCache() {
|
|
6
|
+
cachedAccountInfo = undefined;
|
|
7
|
+
}
|
|
8
|
+
export function getCachedAccountInfo() {
|
|
9
|
+
return cachedAccountInfo;
|
|
10
|
+
}
|
|
11
|
+
export function setCachedAccountInfo(info) {
|
|
12
|
+
cachedAccountInfo = info;
|
|
13
|
+
}
|
|
14
|
+
export function createAuthorizedFetchInit(init = {}) {
|
|
15
|
+
const headers = new Headers(init.headers);
|
|
16
|
+
const idToken = readStorageToken();
|
|
17
|
+
if (idToken && !headers.has('Authorization')) {
|
|
18
|
+
headers.set('Authorization', `Bearer ${idToken}`);
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
...init,
|
|
22
|
+
credentials: init.credentials ?? 'same-origin',
|
|
23
|
+
headers,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
// Sends request with auth header but no 401 retry — for token management APIs
|
|
27
|
+
export function fetchTokenApi(input, init) {
|
|
28
|
+
return fetch(input, createAuthorizedFetchInit(init));
|
|
29
|
+
}
|
|
30
|
+
export async function fetchAuthorizedResource(input, init) {
|
|
31
|
+
const response = await fetch(input, createAuthorizedFetchInit(init));
|
|
32
|
+
if (response.status !== 401) {
|
|
33
|
+
return response;
|
|
34
|
+
}
|
|
35
|
+
const { refreshAuthorizationToken, logout } = await import('./authorization');
|
|
36
|
+
const refreshed = await refreshAuthorizationToken().catch(() => null);
|
|
37
|
+
if (!refreshed) {
|
|
38
|
+
logout(true);
|
|
39
|
+
return new Promise(noop);
|
|
40
|
+
}
|
|
41
|
+
return fetch(input, createAuthorizedFetchInit(init));
|
|
42
|
+
}
|
|
43
|
+
export async function requestTokenInfo(force = false) {
|
|
44
|
+
if (!force && cachedAccountInfo !== undefined) {
|
|
45
|
+
return cachedAccountInfo;
|
|
46
|
+
}
|
|
47
|
+
return fetchTokenApi(TOKEN_INFO_API).then(async (response) => {
|
|
48
|
+
if (response.ok) {
|
|
49
|
+
const info = await response.json();
|
|
50
|
+
cachedAccountInfo = info;
|
|
51
|
+
return info;
|
|
52
|
+
}
|
|
53
|
+
if (response.status === 401) {
|
|
54
|
+
cachedAccountInfo = null;
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
throw createResponseError(response, 'Failed to fetch token info');
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
export async function requestTokenRefresh() {
|
|
61
|
+
return fetchTokenApi(TOKEN_REFRESH_API).then(async (response) => {
|
|
62
|
+
if (response.ok) {
|
|
63
|
+
const tokenResponse = await response.json();
|
|
64
|
+
if (tokenResponse.id_token) {
|
|
65
|
+
writeStorageToken(tokenResponse.id_token);
|
|
66
|
+
}
|
|
67
|
+
cachedAccountInfo = undefined;
|
|
68
|
+
return tokenResponse;
|
|
69
|
+
}
|
|
70
|
+
if (response.status === 401) {
|
|
71
|
+
cachedAccountInfo = null;
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
throw createResponseError(response, 'Failed to refresh token');
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
export async function resolveTokenInfoWithRefresh() {
|
|
78
|
+
const info = await requestTokenInfo();
|
|
79
|
+
if (info) {
|
|
80
|
+
return info;
|
|
81
|
+
}
|
|
82
|
+
const refreshed = await requestTokenRefresh();
|
|
83
|
+
if (!refreshed) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
return requestTokenInfo(true);
|
|
87
|
+
}
|
|
88
|
+
function createResponseError(response, message) {
|
|
89
|
+
const error = new Error(`${message}: ${response.status} ${response.statusText}`);
|
|
90
|
+
Object.assign(error, {
|
|
91
|
+
status: response.status,
|
|
92
|
+
statusText: response.statusText,
|
|
93
|
+
});
|
|
94
|
+
return error;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hdXRob3JpemF0aW9uL3J1bnRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFVdEUsSUFBSSxpQkFBaUQsQ0FBQztBQUV0RCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztBQUNoQyxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQjtJQUNsQyxPQUFPLGlCQUFpQixDQUFDO0FBQzNCLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsSUFBb0M7SUFDdkUsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0FBQzNCLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsT0FBb0IsRUFBRTtJQUM5RCxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUMsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztJQUVuQyxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUM3QyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxVQUFVLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELE9BQU87UUFDTCxHQUFHLElBQUk7UUFDUCxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsSUFBSSxhQUFhO1FBQzlDLE9BQU87S0FDYyxDQUFDO0FBQzFCLENBQUM7QUFFRCw4RUFBOEU7QUFDOUUsTUFB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QUFDO0lBRXRDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxNQUFNLG1CQUFtQixFQUFFLENBQUM7SUFFOUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxRQUFrQixFQUFFLE9BQWU7SUFDOUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQ3JCLEdBQUcsT0FBTyxLQUFLLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUN4RCxDQUFDO0lBRUYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7UUFDbkIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO1FBQ3ZCLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTtLQUNoQyxDQUFDLENBQUM7SUFFSCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB0eXBlIHsgQWNjb3VudEluZm8gfSBmcm9tICcuLi9wYWdlLXNjYWZmb2xkL3BhZ2UtaGVhZGVyL2FjY291bnQtbWVudS9jb21wb25lbnQvY29tcG9uZW50JztcblxuaW1wb3J0IHsgVE9LRU5fSU5GT19BUEksIFRPS0VOX1JFRlJFU0hfQVBJIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgcmVhZFN0b3JhZ2VUb2tlbiwgd3JpdGVTdG9yYWdlVG9rZW4gfSBmcm9tICcuL3N0b3JhZ2UtdG9rZW4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRva2VuUmVzcG9uc2Uge1xuICB0b2tlbl9zdG9yYWdlOiBzdHJpbmc7XG4gIHRva2VuX3R5cGU6IHN0cmluZztcbiAgZXhwaXJlX2F0OiBzdHJpbmc7XG4gIGlzc3VlZF9hdDogc3RyaW5nO1xuICBpZF90b2tlbj86IHN0cmluZztcbn1cblxubGV0IGNhY2hlZEFjY291bnRJbmZvOiBBY2NvdW50SW5mbyB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNldEF1dGhSdW50aW1lQ2FjaGUoKSB7XG4gIGNhY2hlZEFjY291bnRJbmZvID0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2FjaGVkQWNjb3VudEluZm8oKSB7XG4gIHJldHVybiBjYWNoZWRBY2NvdW50SW5mbztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldENhY2hlZEFjY291bnRJbmZvKGluZm86IEFjY291bnRJbmZvIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICBjYWNoZWRBY2NvdW50SW5mbyA9IGluZm87XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBdXRob3JpemVkRmV0Y2hJbml0KGluaXQ6IFJlcXVlc3RJbml0ID0ge30pIHtcbiAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGluaXQuaGVhZGVycyk7XG4gIGNvbnN0IGlkVG9rZW4gPSByZWFkU3RvcmFnZVRva2VuKCk7XG5cbiAgaWYgKGlkVG9rZW4gJiYgIWhlYWRlcnMuaGFzKCdBdXRob3JpemF0aW9uJykpIHtcbiAgICBoZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsIGBCZWFyZXIgJHtpZFRva2VufWApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5pbml0LFxuICAgIGNyZWRlbnRpYWxzOiBpbml0LmNyZWRlbnRpYWxzID8/ICdzYW1lLW9yaWdpbicsXG4gICAgaGVhZGVycyxcbiAgfSBzYXRpc2ZpZXMgUmVxdWVzdEluaXQ7XG59XG5cbi8vIFNlbmRzIHJlcXVlc3Qgd2l0aCBhdXRoIGhlYWRlciBidXQgbm8gNDAxIHJldHJ5IOKAlCBmb3IgdG9rZW4gbWFuYWdlbWVudCBBUElzXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2hUb2tlbkFwaShpbnB1dDogUmVxdWVzdEluZm8gfCBVUkwsIGluaXQ/OiBSZXF1ZXN0SW5pdCkge1xuICByZXR1cm4gZmV0Y2goaW5wdXQsIGNyZWF0ZUF1dGhvcml6ZWRGZXRjaEluaXQoaW5pdCkpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hBdXRob3JpemVkUmVzb3VyY2UoXG4gIGlucHV0OiBSZXF1ZXN0SW5mbyB8IFVSTCxcbiAgaW5pdD86IFJlcXVlc3RJbml0LFxuKSB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goaW5wdXQsIGNyZWF0ZUF1dGhvcml6ZWRGZXRjaEluaXQoaW5pdCkpO1xuXG4gIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IDQwMSkge1xuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIGNvbnN0IHsgcmVmcmVzaEF1dGhvcml6YXRpb25Ub2tlbiwgbG9nb3V0IH0gPSBhd2FpdCBpbXBvcnQoJy4vYXV0aG9yaXphdGlvbicpO1xuICBjb25zdCByZWZyZXNoZWQgPSBhd2FpdCByZWZyZXNoQXV0aG9yaXphdGlvblRva2VuKCkuY2F0Y2goKCkgPT4gbnVsbCk7XG5cbiAgaWYgKCFyZWZyZXNoZWQpIHtcbiAgICBsb2dvdXQodHJ1ZSk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPG5ldmVyPihub29wKTtcbiAgfVxuXG4gIHJldHVybiBmZXRjaChpbnB1dCwgY3JlYXRlQXV0aG9yaXplZEZldGNoSW5pdChpbml0KSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXF1ZXN0VG9rZW5JbmZvKGZvcmNlID0gZmFsc2UpIHtcbiAgaWYgKCFmb3JjZSAmJiBjYWNoZWRBY2NvdW50SW5mbyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGNhY2hlZEFjY291bnRJbmZvO1xuICB9XG5cbiAgcmV0dXJuIGZldGNoVG9rZW5BcGkoVE9LRU5fSU5GT19BUEkpLnRoZW4oYXN5bmMgcmVzcG9uc2UgPT4ge1xuICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgY29uc3QgaW5mbzogQWNjb3VudEluZm8gPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICBjYWNoZWRBY2NvdW50SW5mbyA9IGluZm87XG4gICAgICByZXR1cm4gaW5mbztcbiAgICB9XG5cbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDEpIHtcbiAgICAgIGNhY2hlZEFjY291bnRJbmZvID0gbnVsbDtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHRocm93IGNyZWF0ZVJlc3BvbnNlRXJyb3IocmVzcG9uc2UsICdGYWlsZWQgdG8gZmV0Y2ggdG9rZW4gaW5mbycpO1xuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlcXVlc3RUb2tlblJlZnJlc2goKSB7XG4gIHJldHVybiBmZXRjaFRva2VuQXBpKFRPS0VOX1JFRlJFU0hfQVBJKS50aGVuKGFzeW5jIHJlc3BvbnNlID0+IHtcbiAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgIGNvbnN0IHRva2VuUmVzcG9uc2U6IFRva2VuUmVzcG9uc2UgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cbiAgICAgIGlmICh0b2tlblJlc3BvbnNlLmlkX3Rva2VuKSB7XG4gICAgICAgIHdyaXRlU3RvcmFnZVRva2VuKHRva2VuUmVzcG9uc2UuaWRfdG9rZW4pO1xuICAgICAgfVxuICAgICAgY2FjaGVkQWNjb3VudEluZm8gPSB1bmRlZmluZWQ7XG5cbiAgICAgIHJldHVybiB0b2tlblJlc3BvbnNlO1xuICAgIH1cblxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgY2FjaGVkQWNjb3VudEluZm8gPSBudWxsO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdGhyb3cgY3JlYXRlUmVzcG9uc2VFcnJvcihyZXNwb25zZSwgJ0ZhaWxlZCB0byByZWZyZXNoIHRva2VuJyk7XG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZVRva2VuSW5mb1dpdGhSZWZyZXNoKCkge1xuICBjb25zdCBpbmZvID0gYXdhaXQgcmVxdWVzdFRva2VuSW5mbygpO1xuXG4gIGlmIChpbmZvKSB7XG4gICAgcmV0dXJuIGluZm87XG4gIH1cblxuICBjb25zdCByZWZyZXNoZWQgPSBhd2FpdCByZXF1ZXN0VG9rZW5SZWZyZXNoKCk7XG5cbiAgaWYgKCFyZWZyZXNoZWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiByZXF1ZXN0VG9rZW5JbmZvKHRydWUpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVSZXNwb25zZUVycm9yKHJlc3BvbnNlOiBSZXNwb25zZSwgbWVzc2FnZTogc3RyaW5nKSB7XG4gIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFxuICAgIGAke21lc3NhZ2V9OiAke3Jlc3BvbnNlLnN0YXR1c30gJHtyZXNwb25zZS5zdGF0dXNUZXh0fWAsXG4gICk7XG5cbiAgT2JqZWN0LmFzc2lnbihlcnJvciwge1xuICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLFxuICAgIHN0YXR1c1RleHQ6IHJlc3BvbnNlLnN0YXR1c1RleHQsXG4gIH0pO1xuXG4gIHJldHVybiBlcnJvcjtcbn1cbiJdfQ==
|
|
@@ -2,14 +2,12 @@ import { HttpClient } from '@angular/common/http';
|
|
|
2
2
|
import { Inject, Injectable } from '@angular/core';
|
|
3
3
|
import { bufferTime, filter, fromEvent, merge, switchMap, withLatestFrom, } from 'rxjs';
|
|
4
4
|
import { PageVisibilityService } from '../api/page-visibility.service';
|
|
5
|
-
import { getGlobalEnvironments } from '../core/
|
|
6
|
-
import {
|
|
5
|
+
import { skipError, API_GATEWAY, getGlobalEnvironments, TOKEN_DISABLE_SESSION_MANAGE, } from '../core/public-api';
|
|
6
|
+
import { HEARTBEAT_POLLING, SESSION_MANAGE_KEY } from './constants';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@angular/common/http";
|
|
9
9
|
import * as i2 from "../api/page-visibility.service";
|
|
10
10
|
const EVENT_TRIGGERS = ['click', 'keypress'];
|
|
11
|
-
export const HEARTBEAT_POLLING = 15_000;
|
|
12
|
-
export const SESSION_MANAGE_KEY = 'session-manage-construct-time';
|
|
13
11
|
export class SessionManageService {
|
|
14
12
|
constructor(http, pageVisibility, disabled) {
|
|
15
13
|
this.http = http;
|
|
@@ -44,4 +42,4 @@ export class SessionManageService {
|
|
|
44
42
|
type: Inject,
|
|
45
43
|
args: [TOKEN_DISABLE_SESSION_MANAGE]
|
|
46
44
|
}] }], null); })();
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1tYW5hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hdXRob3JpemF0aW9uL3Nlc3Npb24tbWFuYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFFTCxVQUFVLEVBQ1YsTUFBTSxFQUNOLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULGNBQWMsR0FDZixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLHFCQUFxQixFQUNyQiw0QkFBNEIsR0FDN0IsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUFFcEUsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFLN0MsTUFBTSxPQUFPLG9CQUFvQjtJQXNCL0IsWUFDbUIsSUFBZ0IsRUFDaEIsY0FBcUMsRUFDaEIsUUFBaUI7UUFGdEMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUF0QnZDLGdCQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXRELGdCQUFXLEdBQUcsS0FBSyxDQUNsQyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQ3JEO2FBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDckUsSUFBSSxDQUNILE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFDakMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ2hCLElBQUksQ0FBQyxJQUFJO2FBQ04sR0FBRyxDQUFDLEdBQUcsV0FBVyxvQkFBb0IsRUFBRTtZQUN2QyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7U0FDL0IsQ0FBQzthQUNELElBQUk7UUFDSCw0REFBNEQ7UUFDNUQsU0FBUyxFQUFFLENBQ1osQ0FDSixDQUNGLENBQUM7UUFPRixJQUFJLENBQUMsUUFBUSxJQUFJLHFCQUFxQixDQUFDLHNCQUFzQixDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDeEUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDO3FGQW5DVSxvQkFBb0IsaUZBeUJyQiw0QkFBNEI7dUVBekIzQixvQkFBb0IsV0FBcEIsb0JBQW9CLG1CQUZuQixNQUFNOztpRkFFUCxvQkFBb0I7Y0FIaEMsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COztzQkEwQkksTUFBTTt1QkFBQyw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTdWJzY3JpcHRpb24sXG4gIGJ1ZmZlclRpbWUsXG4gIGZpbHRlcixcbiAgZnJvbUV2ZW50LFxuICBtZXJnZSxcbiAgc3dpdGNoTWFwLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFBhZ2VWaXNpYmlsaXR5U2VydmljZSB9IGZyb20gJy4uL2FwaS9wYWdlLXZpc2liaWxpdHkuc2VydmljZSc7XG5pbXBvcnQge1xuICBza2lwRXJyb3IsXG4gIEFQSV9HQVRFV0FZLFxuICBnZXRHbG9iYWxFbnZpcm9ubWVudHMsXG4gIFRPS0VOX0RJU0FCTEVfU0VTU0lPTl9NQU5BR0UsXG59IGZyb20gJy4uL2NvcmUvcHVibGljLWFwaSc7XG5cbmltcG9ydCB7IEhFQVJUQkVBVF9QT0xMSU5HLCBTRVNTSU9OX01BTkFHRV9LRVkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmNvbnN0IEVWRU5UX1RSSUdHRVJTID0gWydjbGljaycsICdrZXlwcmVzcyddO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2Vzc2lvbk1hbmFnZVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IHZpc2liaWxpdHkkID0gdGhpcy5wYWdlVmlzaWJpbGl0eS5nZXRQYWdlVmlzaWJpbGl0eSgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlckFjdGlvbiQgPSBtZXJnZShcbiAgICAuLi5FVkVOVF9UUklHR0VSUy5tYXAoZXYgPT4gZnJvbUV2ZW50KGRvY3VtZW50LCBldikpLFxuICApXG4gICAgLnBpcGUoYnVmZmVyVGltZShIRUFSVEJFQVRfUE9MTElORyksIHdpdGhMYXRlc3RGcm9tKHRoaXMudmlzaWJpbGl0eSQpKVxuICAgIC5waXBlKFxuICAgICAgZmlsdGVyKChbXywgdmlzaWJsZV0pID0+IHZpc2libGUpLFxuICAgICAgc3dpdGNoTWFwKChbaV0pID0+XG4gICAgICAgIHRoaXMuaHR0cFxuICAgICAgICAgIC5nZXQoYCR7QVBJX0dBVEVXQVl9L2F1dGgvdjEvaGVhcnRiZWF0YCwge1xuICAgICAgICAgICAgcGFyYW1zOiB7IGFjdGlvbjogISFpLmxlbmd0aCB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAvLyDplJnor6/nlLEgSHR0cEludGVyY2VwdG9yIOWkhOeQhu+8jOS7heeUsSBIdHRwSW50ZXJjZXB0b3Ig5Li75Yqo57uT5p2f5q2k5rWB77yM6Ieq6Lqr5LiA55u06L+b6KGM5b+D6LezXG4gICAgICAgICAgICBza2lwRXJyb3IoKSxcbiAgICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VWaXNpYmlsaXR5OiBQYWdlVmlzaWJpbGl0eVNlcnZpY2UsXG4gICAgQEluamVjdChUT0tFTl9ESVNBQkxFX1NFU1NJT05fTUFOQUdFKSBkaXNhYmxlZDogYm9vbGVhbixcbiAgKSB7XG4gICAgaWYgKCFkaXNhYmxlZCAmJiBnZXRHbG9iYWxFbnZpcm9ubWVudHMoJ0NQQUFTX1NFU1NJT05fU1dJVENIJykgPT09ICdvbicpIHtcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oU0VTU0lPTl9NQU5BR0VfS0VZLCBTdHJpbmcoRGF0ZS5ub3coKSkpO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnVzZXJBY3Rpb24kLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBsZXRlKCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -2,47 +2,26 @@
|
|
|
2
2
|
* @packageDocumentation
|
|
3
3
|
* @module authorization
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { HEARTBEAT_POLLING } from './session-manage.service';
|
|
12
|
-
import { readStorageAliveRecord, readStorageToken, refreshStorageAliveRecord, writeStorageToken, } from './storage-token';
|
|
5
|
+
import { Injectable } from '@angular/core';
|
|
6
|
+
import { EMPTY, from, of, catchError, map, tap, timer, fromEvent, merge, timeout, } from 'rxjs';
|
|
7
|
+
import { getGlobalEnvironments, TRUE, catchPromise } from '../core/public-api';
|
|
8
|
+
import { checkAuthorizationToken, getAuthorizationState, logout, logoutAudit, refreshAuthorizationToken, } from './authorization';
|
|
9
|
+
import { LOADING_CACHE, HEARTBEAT_POLLING } from './constants';
|
|
10
|
+
import { readStorageAliveRecord, refreshStorageAliveRecord, readStorageToken, } from './storage-token';
|
|
13
11
|
import * as i0 from "@angular/core";
|
|
14
12
|
export class AuthorizationStateService {
|
|
15
13
|
constructor() {
|
|
16
|
-
this.
|
|
17
|
-
this.
|
|
18
|
-
.get(TOKEN_INFO_API, {
|
|
19
|
-
headers: attachAuthorizationHeader(),
|
|
20
|
-
})
|
|
21
|
-
.pipe(skipError(null), tap(info => {
|
|
22
|
-
if (!info) {
|
|
23
|
-
logout(true);
|
|
24
|
-
}
|
|
25
|
-
this.payloadSnapshot = info;
|
|
26
|
-
}), map(info => ({
|
|
27
|
-
...getAuthorizationState(),
|
|
28
|
-
info,
|
|
29
|
-
})), shareReplay(1));
|
|
30
|
-
this.checkTokenCache$ = null;
|
|
14
|
+
this.state = getAuthorizationState();
|
|
15
|
+
this.payloadSnapshot = this.state.info ?? null;
|
|
31
16
|
this.logout = logout;
|
|
32
17
|
if (getGlobalEnvironments('CLOSE_BROWSER_END_SESSION') === TRUE) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
return of(state);
|
|
42
|
-
}), switchMap(() => {
|
|
43
|
-
return merge(timer(0, HEARTBEAT_POLLING), fromEvent(window, 'beforeunload'));
|
|
44
|
-
}))
|
|
45
|
-
.subscribe(refreshStorageAliveRecord);
|
|
18
|
+
const aliveRecord = readStorageAliveRecord();
|
|
19
|
+
if (!aliveRecord ||
|
|
20
|
+
Date.now() - aliveRecord > HEARTBEAT_POLLING + LOADING_CACHE) {
|
|
21
|
+
this.logoutWithAudit();
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
merge(timer(0, HEARTBEAT_POLLING), fromEvent(window, 'beforeunload')).subscribe(refreshStorageAliveRecord);
|
|
46
25
|
}
|
|
47
26
|
}
|
|
48
27
|
logoutWithAudit() {
|
|
@@ -51,41 +30,21 @@ export class AuthorizationStateService {
|
|
|
51
30
|
.subscribe(redirectUrl => logout(redirectUrl));
|
|
52
31
|
}
|
|
53
32
|
refreshToken() {
|
|
54
|
-
|
|
55
|
-
return this.refreshTokenCache$;
|
|
56
|
-
}
|
|
57
|
-
this.refreshTokenCache$ = this.http
|
|
58
|
-
.get(TOKEN_REFRESH_API)
|
|
59
|
-
.pipe(tap(({ id_token: idToken }) => {
|
|
60
|
-
writeStorageToken(idToken);
|
|
61
|
-
this.refreshTokenCache$ = null;
|
|
62
|
-
}), catchError(() => {
|
|
33
|
+
return from(refreshAuthorizationToken()).pipe(catchError(() => {
|
|
63
34
|
logout(true);
|
|
64
35
|
return EMPTY;
|
|
65
|
-
})
|
|
66
|
-
return this.refreshTokenCache$;
|
|
36
|
+
}));
|
|
67
37
|
}
|
|
68
38
|
checkToken() {
|
|
69
|
-
|
|
70
|
-
this.
|
|
71
|
-
|
|
72
|
-
this.checkTokenCache$ = null;
|
|
73
|
-
},
|
|
74
|
-
error: () => {
|
|
75
|
-
this.checkTokenCache$ = null;
|
|
76
|
-
},
|
|
77
|
-
}), publishRef());
|
|
78
|
-
}
|
|
79
|
-
return this.checkTokenCache$;
|
|
39
|
+
return from(checkAuthorizationToken()).pipe(tap(info => {
|
|
40
|
+
this.payloadSnapshot = info;
|
|
41
|
+
}));
|
|
80
42
|
}
|
|
81
43
|
getTokenPayload() {
|
|
82
|
-
return this.state
|
|
44
|
+
return of(this.state.info);
|
|
83
45
|
}
|
|
84
46
|
getAccountInfo() {
|
|
85
|
-
|
|
86
|
-
return of(this.payloadSnapshot);
|
|
87
|
-
}
|
|
88
|
-
return this.state$.pipe(map(state => state.info || {}));
|
|
47
|
+
return of(this.payloadSnapshot || {});
|
|
89
48
|
}
|
|
90
49
|
getTokenByStorage() {
|
|
91
50
|
return readStorageToken();
|
|
@@ -97,4 +56,4 @@ export class AuthorizationStateService {
|
|
|
97
56
|
type: Injectable,
|
|
98
57
|
args: [{ providedIn: 'root' }]
|
|
99
58
|
}], () => [], null); })();
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hdXRob3JpemF0aW9uL3N0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsS0FBSyxFQUNMLElBQUksRUFDSixFQUFFLEVBQ0YsVUFBVSxFQUNWLEdBQUcsRUFDSCxHQUFHLEVBQ0gsS0FBSyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsT0FBTyxHQUNSLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUvRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQixNQUFNLEVBQ04sV0FBVyxFQUNYLHlCQUF5QixHQUMxQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0QsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIsZ0JBQWdCLEdBQ2pCLE1BQU0saUJBQWlCLENBQUM7O0FBR3pCLE1BQU0sT0FBTyx5QkFBeUI7SUFNcEM7UUFMaUIsVUFBSyxHQUFHLHFCQUFxQixFQUFFLENBQUM7UUFDakQsb0JBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUM7UUFFMUMsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUdkLElBQUkscUJBQXFCLENBQUMsMkJBQTJCLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNoRSxNQUFNLFdBQVcsR0FBRyxzQkFBc0IsRUFBRSxDQUFDO1lBQzdDLElBQ0UsQ0FBQyxXQUFXO2dCQUNaLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxXQUFXLEdBQUcsaUJBQWlCLEdBQUcsYUFBYSxFQUM1RCxDQUFDO2dCQUNELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDdkIsT0FBTztZQUNULENBQUM7WUFFRCxLQUFLLENBQ0gsS0FBSyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxFQUMzQixTQUFTLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUNsQyxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUN4QixJQUFJLENBQ0gsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUNiLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQyxDQUNyQzthQUNBLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDM0MsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNiLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDekMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ1QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFTLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDOzBGQTVEVSx5QkFBeUI7dUVBQXpCLHlCQUF5QixXQUF6Qix5QkFBeUIsbUJBRFosTUFBTTs7aUZBQ25CLHlCQUF5QjtjQURyQyxVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgYXV0aG9yaXphdGlvblxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEVNUFRZLFxuICBmcm9tLFxuICBvZixcbiAgY2F0Y2hFcnJvcixcbiAgbWFwLFxuICB0YXAsXG4gIHRpbWVyLFxuICBmcm9tRXZlbnQsXG4gIG1lcmdlLFxuICB0aW1lb3V0LFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgZ2V0R2xvYmFsRW52aXJvbm1lbnRzLCBUUlVFLCBjYXRjaFByb21pc2UgfSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuXG5pbXBvcnQge1xuICBjaGVja0F1dGhvcml6YXRpb25Ub2tlbixcbiAgZ2V0QXV0aG9yaXphdGlvblN0YXRlLFxuICBsb2dvdXQsXG4gIGxvZ291dEF1ZGl0LFxuICByZWZyZXNoQXV0aG9yaXphdGlvblRva2VuLFxufSBmcm9tICcuL2F1dGhvcml6YXRpb24nO1xuaW1wb3J0IHsgTE9BRElOR19DQUNIRSwgSEVBUlRCRUFUX1BPTExJTkcgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICByZWFkU3RvcmFnZUFsaXZlUmVjb3JkLFxuICByZWZyZXNoU3RvcmFnZUFsaXZlUmVjb3JkLFxuICByZWFkU3RvcmFnZVRva2VuLFxufSBmcm9tICcuL3N0b3JhZ2UtdG9rZW4nO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEF1dGhvcml6YXRpb25TdGF0ZVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlID0gZ2V0QXV0aG9yaXphdGlvblN0YXRlKCk7XG4gIHBheWxvYWRTbmFwc2hvdCA9IHRoaXMuc3RhdGUuaW5mbyA/PyBudWxsO1xuXG4gIGxvZ291dCA9IGxvZ291dDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoZ2V0R2xvYmFsRW52aXJvbm1lbnRzKCdDTE9TRV9CUk9XU0VSX0VORF9TRVNTSU9OJykgPT09IFRSVUUpIHtcbiAgICAgIGNvbnN0IGFsaXZlUmVjb3JkID0gcmVhZFN0b3JhZ2VBbGl2ZVJlY29yZCgpO1xuICAgICAgaWYgKFxuICAgICAgICAhYWxpdmVSZWNvcmQgfHxcbiAgICAgICAgRGF0ZS5ub3coKSAtIGFsaXZlUmVjb3JkID4gSEVBUlRCRUFUX1BPTExJTkcgKyBMT0FESU5HX0NBQ0hFXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5sb2dvdXRXaXRoQXVkaXQoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBtZXJnZShcbiAgICAgICAgdGltZXIoMCwgSEVBUlRCRUFUX1BPTExJTkcpLFxuICAgICAgICBmcm9tRXZlbnQod2luZG93LCAnYmVmb3JldW5sb2FkJyksXG4gICAgICApLnN1YnNjcmliZShyZWZyZXNoU3RvcmFnZUFsaXZlUmVjb3JkKTtcbiAgICB9XG4gIH1cblxuICBsb2dvdXRXaXRoQXVkaXQoKSB7XG4gICAgY2F0Y2hQcm9taXNlKGxvZ291dEF1ZGl0KCkpXG4gICAgICAucGlwZShcbiAgICAgICAgdGltZW91dCgxMDAwKSxcbiAgICAgICAgbWFwKHJlcyA9PiByZXM/LmxvZ291dF9yZWRpcmVjdF91cmwpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZWRpcmVjdFVybCA9PiBsb2dvdXQocmVkaXJlY3RVcmwpKTtcbiAgfVxuXG4gIHJlZnJlc2hUb2tlbigpIHtcbiAgICByZXR1cm4gZnJvbShyZWZyZXNoQXV0aG9yaXphdGlvblRva2VuKCkpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgbG9nb3V0KHRydWUpO1xuICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgY2hlY2tUb2tlbigpIHtcbiAgICByZXR1cm4gZnJvbShjaGVja0F1dGhvcml6YXRpb25Ub2tlbigpKS5waXBlKFxuICAgICAgdGFwKGluZm8gPT4ge1xuICAgICAgICB0aGlzLnBheWxvYWRTbmFwc2hvdCA9IGluZm87XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgZ2V0VG9rZW5QYXlsb2FkPFQ+KCkge1xuICAgIHJldHVybiBvZih0aGlzLnN0YXRlLmluZm8gYXMgVCk7XG4gIH1cblxuICBnZXRBY2NvdW50SW5mbygpIHtcbiAgICByZXR1cm4gb2YodGhpcy5wYXlsb2FkU25hcHNob3QgfHwge30pO1xuICB9XG5cbiAgZ2V0VG9rZW5CeVN0b3JhZ2UoKSB7XG4gICAgcmV0dXJuIHJlYWRTdG9yYWdlVG9rZW4oKTtcbiAgfVxufVxuIl19
|