From 9efcccf621167b4c30657cefa525af4ea75eb96e Mon Sep 17 00:00:00 2001 From: shyallegro <52773084+shyallegro@users.noreply.github.com> Date: Thu, 22 Dec 2022 15:07:25 +0200 Subject: [PATCH] release v1.9 (#43) Co-authored-by: Shay Halsband --- angular.json | 127 +- package-lock.json | 4862 +++++++++-------- package.json | 85 +- src/app/app.component.scss | 8 + src/app/app.component.ts | 26 +- src/app/app.constants.ts | 4 +- src/app/app.routes.ts | 4 + .../api-services/reports.service.ts | 578 ++ .../business-logic/business-logic.module.ts | 4 +- .../model/models/modelsGetAllExRequest.ts | 8 + .../organizationGetEntitiesCountRequest.ts | 17 +- .../organizationGetEntitiesCountResponse.ts | 12 +- .../model/projects/projectsGetAllExRequest.ts | 28 +- .../business-logic/model/reports/artifact.ts | 48 + .../model/reports/artifactModeEnum.ts | 20 + .../model/reports/artifactTypeData.ts | 28 + .../model/reports/augmentation.ts | 25 + .../model/reports/augmentationSet.ts | 32 + .../model/reports/configurationItem.ts | 32 + .../reports/debugImagesResponseTaskMetrics.ts | 22 + ...ebugImagesResponseTaskMetricsIterations.ts | 21 + .../business-logic/model/reports/execution.ts | 57 + .../model/reports/filterByRoiEnum.ts | 21 + .../model/reports/filterLabelRule.ts | 32 + .../model/reports/filterRule.ts | 43 + .../business-logic/model/reports/filtering.ts | 23 + src/app/business-logic/model/reports/input.ts | 30 + .../business-logic/model/reports/iteration.ts | 41 + src/app/business-logic/model/reports/jump.ts | 20 + .../model/reports/labelSource.ts | 28 + .../model/reports/lastMetricsEvent.ts | 36 + .../business-logic/model/reports/mapping.ts | 21 + .../model/reports/mappingRule.ts | 22 + .../business-logic/model/reports/models.ts | 63 + .../model/reports/multiFieldPatternData.ts | 24 + .../business-logic/model/reports/output.ts | 34 + .../model/reports/outputRoisEnum.ts | 21 + .../model/reports/paramsItem.ts | 36 + .../model/reports/plotsResponseTaskMetrics.ts | 22 + .../plotsResponseTaskMetricsIterations.ts | 21 + .../business-logic/model/reports/report.ts | 76 + .../model/reports/reportStatusEnum.ts | 20 + .../model/reports/reportsArchiveRequest.ts | 24 + .../model/reports/reportsArchiveResponse.ts | 20 + .../model/reports/reportsCreateRequest.ts | 36 + .../model/reports/reportsCreateResponse.ts | 24 + .../model/reports/reportsDeleteRequest.ts | 24 + .../model/reports/reportsDeleteResponse.ts | 20 + .../model/reports/reportsGetAllExRequest.ts | 84 + .../model/reports/reportsGetAllExResponse.ts | 25 + .../model/reports/reportsGetTagsResponse.ts | 20 + .../reports/reportsGetTaskDataRequest.ts | 98 + .../reportsGetTaskDataRequestDebugImages.ts | 24 + .../reports/reportsGetTaskDataRequestPlots.ts | 24 + ...skDataRequestScalarMetricsIterHistogram.ts | 26 + .../reports/reportsGetTaskDataResponse.ts | 31 + .../reportsGetTaskDataResponseDebugImages.ts | 21 + .../reportsGetTaskDataResponsePlots.ts | 21 + ...kDataResponseScalarMetricsIterHistogram.ts | 21 + .../model/reports/reportsMoveRequest.ts | 28 + .../model/reports/reportsMoveResponse.ts | 20 + .../model/reports/reportsPublishRequest.ts | 24 + .../model/reports/reportsPublishResponse.ts | 24 + .../model/reports/reportsShareRequest.ts | 24 + .../model/reports/reportsShareResponse.ts | 20 + .../model/reports/reportsUnarchiveRequest.ts | 24 + .../model/reports/reportsUnarchiveResponse.ts | 20 + .../model/reports/reportsUpdateRequest.ts | 36 + .../model/reports/reportsUpdateResponse.ts | 24 + .../model/reports/scalarKeyEnum.ts | 21 + .../business-logic/model/reports/script.ts | 52 + src/app/business-logic/model/reports/task.ts | 141 + .../model/reports/taskModelItem.ts | 24 + .../model/reports/taskModels.ts | 25 + .../model/reports/taskStatusEnum.ts | 28 + .../model/reports/taskTypeEnum.ts | 32 + src/app/business-logic/model/reports/view.ts | 21 + .../business-logic/model/reports/viewEntry.ts | 28 + .../model/tasks/tasksGetAllExRequest.ts | 12 +- .../model/tasks/tasksGetByIdExRequest.ts | 10 +- .../model/users/featuresEnum.ts | 5 +- src/app/core/core.module.ts | 6 +- src/app/core/effects/projects.effects.ts | 2 + .../dashboard-search.consts.ts | 9 +- .../dashboard-search.effects.ts | 13 +- .../dashboard-search.module.ts | 2 + .../dashboard/dashboard.component.scss | 28 +- .../features/dashboard/dashboard.module.ts | 30 +- .../search-results-page.component.html | 8 + .../search-results-page.component.ts | 7 + .../features/experiments/reducers/index.ts | 3 +- .../layout/breadcrumbs/breadcrumbs.utils.ts | 7 +- .../layout/side-nav/side-nav.component.html | 7 + .../styles/themes/theme-material.scss | 2 +- .../assets/fonts/trains-icons.scss | 28 +- src/app/webapp-common/assets/fonts/trains.ttf | Bin 61456 -> 62316 bytes .../webapp-common/assets/fonts/variables.scss | 5 + .../report-widgets/.browserslistrc | 16 + .../report-widgets/karma.conf.js | 44 + .../report-widgets/src/app/app.actions.ts | 34 + .../report-widgets/src/app/app.component.html | 50 + .../report-widgets/src/app/app.component.scss | 42 + .../report-widgets/src/app/app.component.ts | 249 + .../report-widgets/src/app/app.effects.ts | 114 + .../report-widgets/src/app/app.module.ts | 47 + .../report-widgets/src/app/app.reducer.ts | 55 + .../src/app/webapp-common/assets | 1 + .../report-widgets/src/assets/.gitkeep | 0 .../src/assets/pallete-cursor.png | Bin 0 -> 1422 bytes .../report-widgets/src/environments/base.ts | 104 + .../src/environments/environment.prod.ts | 7 + .../src/environments/environment.ts | 44 + .../report-widgets/src/favicon.ico | Bin 0 -> 948 bytes .../report-widgets/src/index.html | 13 + .../report-widgets/src/main.ts | 25 + .../report-widgets/src/polyfills.ts | 53 + .../report-widgets/src/styles.scss | 180 + .../report-widgets/src/test.ts | 26 + .../report-widgets/tsconfig.app.json | 15 + .../report-widgets/tsconfig.spec.json | 18 + src/app/webapp-common/common-styles.scss | 33 +- src/app/webapp-common/constants.ts | 13 + .../core/actions/http.actions.ts | 2 +- .../core/actions/layout.actions.ts | 3 +- .../core/actions/projects.actions.ts | 15 + .../core/effects/common-auth.effects.ts | 2 +- .../core/effects/layout.effects.ts | 3 +- .../core/effects/projects.effects.ts | 2 +- .../core/effects/router.effects.ts | 3 +- .../core/effects/users.effects.ts | 2 +- .../core/reducers/common-auth-reducer.ts | 10 +- .../core/reducers/projects.reducer.ts | 17 +- .../core/reducers/view.reducer.ts | 6 +- .../dashboard-search.actions.ts | 11 + .../dashboard-search.effects.ts | 117 +- .../dashboard-search.reducer.ts | 37 +- .../dashboard/common-dashboard.effects.ts | 15 +- .../dashboard-projects.component.scss | 3 +- .../dashboard-search.component.base.ts | 19 +- .../recent-experiment-table.component.html | 12 +- .../recent-experiment-table.component.scss | 7 + .../simple-dataset-card.component.html | 2 + .../simple-dataset-card.component.scss | 2 +- ...ple-dataset-version-preview.component.html | 2 +- .../simple-datasets.component.html | 74 +- .../simple-datasets.component.scss | 16 +- .../debug-image-snippet.component.html | 57 - .../debug-images/debug-images-actions.ts | 17 - .../debug-images/debug-images-effects.ts | 89 +- .../debug-images/debug-images-reducer.ts | 61 +- .../debug-images-view.component.html | 3 +- .../debug-images-view.component.scss | 2 +- .../debug-images-view.component.ts | 3 +- .../debug-images/debug-images.component.html | 27 +- .../debug-images/debug-images.component.scss | 45 +- .../debug-images/debug-images.component.ts | 38 +- .../debug-images/debug-images.module.ts | 12 +- .../experiment-compare-base.component.scss | 2 +- .../containers/experiment-compare-base.ts | 35 +- .../experiment-compare-details.component.html | 5 +- .../experiment-compare-details.component.ts | 32 +- ...-compare-hyper-params-graph.component.scss | 2 +- ...nt-compare-hyper-params-graph.component.ts | 41 +- ...iment-compare-scalar-charts.component.html | 1 + ...eriment-compare-scalar-charts.component.ts | 61 +- ...iment-compare-metric-values.component.html | 3 +- ...iment-compare-metric-values.component.scss | 2 +- ...eriment-compare-metric-values.component.ts | 22 +- .../experiment-compare-params.component.html | 32 +- .../experiment-compare-params.component.ts | 17 +- .../experiment-compare-plots.component.html | 1 + .../experiment-compare-plots.component.ts | 41 +- ...ect-experiments-for-compare.component.scss | 2 +- ...elect-experiments-for-compare.component.ts | 44 +- .../compare-card-list.component.html | 11 +- .../compare-card-list.component.scss | 20 +- .../compare-card-list.component.ts | 1 + ...riment-compare-general-data.component.scss | 2 +- .../experiment-compare-header.component.scss | 2 +- .../parallel-coordinates-graph.component.scss | 4 +- .../parallel-coordinates-graph.component.ts | 2 +- .../experiments-compare-details.effects.ts | 1 + .../experiments-compare-params.effects.ts | 3 +- ...-experiment-for-compare-effects.service.ts | 37 +- .../experiments-compare-routing.module.ts | 11 +- .../experiments-compare.component.scss | 2 +- .../experiments-compare.constants.ts | 2 + .../experiments-compare.module.ts | 32 +- .../reducers/compare-header.reducer.ts | 8 +- .../experiments-compare/reducers/index.ts | 25 +- .../experiment-details-reverter.service.ts | 2 +- .../common-experiment-output.actions.ts | 51 +- .../common-experiments-info.actions.ts | 2 +- .../experiment-info-aritfacts.component.scss | 2 +- .../experiment-info-execution.component.scss | 2 +- .../experiment-info-general.component.ts | 2 +- ...r-parameters-form-container.component.scss | 2 +- ...per-parameters-form-container.component.ts | 2 +- .../base-experiment-output.component.scss | 2 +- .../base-experiment-output.component.ts | 4 +- .../experiment-output-plots.component.html | 1 + .../experiment-output-plots.component.scss | 2 +- .../experiment-output-plots.component.ts | 18 +- .../experiment-output-scalars.component.html | 1 + .../experiment-output-scalars.component.ts | 22 +- ...experiment-artifacts-navbar.component.scss | 2 +- ...riment-execution-parameters.component.scss | 2 +- ...eriment-hyper-params-navbar.component.scss | 2 +- .../experiment-info-header.component.html | 2 + .../experiment-type-icon-label.component.scss | 2 +- .../experiments-table.component.scss | 2 +- .../experiments-table.component.ts | 26 +- .../image-viewer/image-viewer.component.scss | 199 - .../image-viewer/image-viewer.component.ts | 339 -- .../common-experiment-output.effects.ts | 127 +- .../common-experiments-info.effects.ts | 27 +- .../common-experiments-menu.effects.ts | 3 +- .../common-experiments-view.effects.ts | 6 +- .../experiments/experiments.component.scss | 2 +- .../experiments/experiments.component.ts | 3 +- .../common-experiment-output.reducer.ts | 52 +- .../experiments/reducers/index.ts | 23 +- .../shared/common-experiment-shared.module.ts | 23 +- .../shared/common-experiments.const.ts | 5 - .../change-project-dialog.component.ts | 18 +- .../clone-dialog/clone-dialog.component.html | 43 +- .../clone-dialog/clone-dialog.component.ts | 6 +- .../experiment-menu.component.html | 2 +- .../experiment-menu.component.scss | 9 - .../experiment-menu.component.ts | 3 +- .../select-queue/select-queue.component.scss | 2 +- .../common-experiment-reverter.service.ts | 3 +- .../breadcrumbs/breadcrumbs-common.utils.ts | 5 +- .../breadcrumbs/breadcrumbs.component.html | 2 +- .../breadcrumbs/breadcrumbs.component.ts | 2 +- .../layout/header/header.component.html | 6 +- .../layout/header/header.component.ts | 2 +- src/app/webapp-common/layout/layout.scss | 2 +- .../tip-of-the-day-modal.component.scss | 2 +- .../tip-of-the-day-modal.component.ts | 2 +- .../welcome-message.component.html | 17 +- .../welcome-message.component.scss | 2 +- .../login/login-page.component.scss | 2 +- .../login/login/login.component.scss | 2 +- .../model-info-general.component.ts | 3 +- .../model-info/model-info.component.ts | 4 +- .../model-menu/model-menu.component.html | 2 +- .../model-menu/model-menu.component.scss | 9 - .../model-menu/model-menu.component.ts | 3 +- .../model-general-info.component.html | 4 +- .../model-general-info.component.scss | 3 +- .../model-info-header.component.html | 2 + .../model-info-header.component.scss | 2 +- .../models/effects/models-info.effects.ts | 3 +- .../models/effects/models-view.effects.ts | 6 +- .../models/models.component.scss | 2 +- .../model-status-icon-label.component.scss | 2 +- .../model-tags/model-tags.component.scss | 2 +- .../model-type-icon-label.component.scss | 2 +- .../models-table/models-table.component.scss | 2 +- .../pipeline-controller-menu.component.scss | 9 - .../pipeline-info.component.ts | 2 +- .../pipeline-card.component.html | 2 + .../pipelines-page.component.html | 11 +- .../pipelines-page.component.scss | 15 +- .../pipelines-page.component.ts | 33 +- .../project-info/project-info.component.html | 58 +- .../project-info/project-info.component.scss | 427 +- .../project-info/project-info.component.ts | 95 +- .../project-info/project-info.module.ts | 2 +- .../projects/common-projects.actions.ts | 6 +- .../projects/common-projects.effects.ts | 38 +- .../projects/common-projects.reducer.ts | 2 +- .../common-projects-page.component.scss | 1 + .../common-projects-page.component.ts | 14 +- .../projects-header.component.html | 3 +- .../projects-header.component.ts | 2 + .../report-card-menu.component.html | 38 + .../report-card-menu.component.scss | 18 + .../report-card-menu.component.ts | 32 + .../report-card/report-card.component.html | 65 + .../report-card/report-card.component.scss | 58 + .../report-card/report-card.component.ts | 42 + .../create-new-report-form.component.html | 81 + .../create-new-report-form.component.scss | 21 + .../create-new-report-form.component.ts | 110 + .../report-dialog.component.html | 7 + .../report-dialog.component.scss | 4 + .../report-dialog/report-dialog.component.ts | 57 + .../reports/report/report.component.html | 99 + .../reports/report/report.component.scss | 157 + .../reports/report/report.component.spec.ts | 23 + .../reports/report/report.component.ts | 196 + .../reports-header.component.html | 31 + .../reports-header.component.scss | 21 + .../reports-header.component.ts | 34 + .../reports-list/reports-list.component.html | 42 + .../reports-list/reports-list.component.scss | 38 + .../reports-list/reports-list.component.ts | 31 + .../reports-page/reports-page.component.html | 32 + .../reports-page/reports-page.component.scss | 11 + .../reports-page/reports-page.component.ts | 173 + .../reports/reports-routing.module.ts | 21 + .../reports/reports-shared.module.ts | 28 + .../webapp-common/reports/reports.actions.ts | 103 + .../webapp-common/reports/reports.consts.ts | 14 + .../webapp-common/reports/reports.effects.ts | 349 ++ .../webapp-common/reports/reports.module.ts | 50 + .../webapp-common/reports/reports.reducer.ts | 107 + .../select-model/select-model.effects.ts | 3 +- .../admin-credential-table.component.scss | 2 +- .../admin-dialog-template.component.scss | 2 +- .../admin-footer/admin-footer.component.scss | 2 +- .../settings/admin/admin.component.scss | 2 +- .../settings/admin/base-admin-utils.ts | 73 + .../settings/admin/base-admin.service.ts | 184 +- .../profile-key-storage.component.scss | 2 +- .../profile-name/profile-name.component.html | 2 + .../profile-name/profile-name.component.scss | 2 +- .../profile-preferences.component.html | 5 + .../profile-preferences.component.scss | 2 +- .../profile-preferences.component.ts | 11 +- .../admin/s3-access/s3-access.component.scss | 2 +- .../line-chart/line-chart.component.scss | 2 +- .../experiment-settings.scss | 2 +- .../main-pages-header-filter.component.html | 46 + .../main-pages-header-filter.component.scss | 49 + .../main-pages-header-filter.component.ts | 104 + .../markdown-editor.component.html | 51 + .../markdown-editor.component.scss | 522 ++ .../markdown-editor.component.spec.ts | 23 + .../markdown-editor.component.ts | 160 + .../section-header.component.scss | 2 +- .../show-only-user-work.component.scss | 2 +- .../debug-image-snippet.component.html | 81 + .../debug-image-snippet.component.scss | 66 +- .../debug-image-snippet.component.ts | 22 +- .../debug-sample/debug-sample.actions.ts | 23 + .../debug-sample/debug-sample.effects.ts | 78 + .../debug-sample/debug-sample.module.ts | 33 + .../debug-sample/debug-sample.reducer.ts | 72 + .../base-image-viewer.component.ts | 180 + .../image-viewer/image-viewer.component.html | 65 +- .../image-viewer/image-viewer.component.scss | 203 + .../image-viewer/image-viewer.component.ts | 197 + .../shared/entity-page/base-entity-page.ts | 2 +- .../base-delete-dialog.effects.ts | 2 +- .../common-delete-dialog.component.scss | 2 +- .../common-delete-dialog.reducer.ts | 2 +- .../footer-items/compare-footer-item.ts | 4 +- .../shared/entity-page/items.utils.ts | 2 +- .../experiment-graphs.component.html | 10 +- .../experiment-graphs.component.scss | 3 +- .../experiment-graphs.component.ts | 9 +- .../experiment-graphs.module.ts | 20 +- .../graph-plot-data-to-metric.pipe.ts | 7 +- .../graph-scalar-data-to-metric.pipe.ts | 5 +- .../graph-settings-bar.component.scss | 2 +- .../single-value-summary-table.component.scss | 1 + ...fo-header-status-icon-label.component.scss | 2 +- ...-header-status-progress-bar.component.scss | 2 +- .../shared/pipes/clean-project-path.pipe.ts | 2 +- .../shared/pipes/has-example-item.pipe.ts | 2 +- .../pipes/highlight-search-text.pipe.ts | 2 +- .../shared/pipes/highlight-search.pipe.ts | 2 +- .../pipes/selectOptionValueToLabel.pipe.ts | 5 +- .../shared/pipes/shared-pipes.module.ts | 2 +- .../project-dialog/project-dialog.actions.ts | 7 +- .../project-dialog.component.ts | 13 +- .../project-dialog/project-dialog.effects.ts | 11 +- .../project-move-to-form.component.scss | 2 +- .../project-move-to-form.component.ts | 23 +- .../queue-create-dialog.effects.ts | 2 +- .../report-code-embed.service.spec.ts | 32 + .../services/report-code-embed.service.ts | 67 + src/app/webapp-common/shared/shared.module.ts | 35 +- .../graph-viewer/graph-viewer.component.html | 7 +- .../graph-viewer/graph-viewer.component.scss | 11 +- .../graph-viewer/graph-viewer.component.ts | 68 +- .../single-graph/plotly-graph-base.ts | 2 +- .../single-graph/single-graph.actions.ts | 45 + .../single-graph/single-graph.component.html | 0 .../single-graph/single-graph.component.scss | 19 +- .../single-graph/single-graph.component.ts | 115 +- .../single-graph/single-graph.effects.ts | 134 + .../single-graph/single-graph.module.ts | 31 + .../single-graph/single-graph.reducer.ts | 86 + .../buttons/chips/chips.component.scss | 2 +- .../neon-button/neon-button.component.scss | 2 +- .../toggle-archive.component.html | 3 +- .../toggle-archive.component.scss | 16 +- .../toggle-archive.component.ts | 2 +- .../code-editor/code-editor.component.html | 6 + .../code-editor/code-editor.component.scss | 15 + .../data/code-editor/code-editor.component.ts | 7 + .../grouped-selectable-list.component.scss | 4 +- .../grouped-selectable-list.component.ts | 2 +- .../selectable-filter-list.component.scss | 2 +- ...ectable-grouped-filter-list.component.scss | 2 +- ...electable-grouped-filter-list.component.ts | 6 +- .../selectable-list.component.scss | 4 +- .../simple-table/simple-table.component.scss | 2 +- .../data/table-card/table-card.component.scss | 2 +- .../data/table-diff/table-diff.component.scss | 2 +- .../table-card-filter-template.component.scss | 4 +- .../table-card-filter-template.component.ts | 1 - ...e-filter-duration-date-time.component.html | 2 + ...e-filter-duration-date-time.component.scss | 2 +- ...table-filter-duration-error.component.scss | 2 +- ...ble-filter-duration-numeric.component.html | 4 + ...ble-filter-duration-numeric.component.scss | 2 +- .../table-filter-duration.component.scss | 2 +- .../table-filter-sort-template.component.html | 2 +- .../table-filter-sort-template.component.scss | 2 +- .../data/table/table.component.scss | 17 +- .../data/table/table.component.ts | 15 +- .../checkbox-control.component.scss | 2 +- .../circle-status.component.scss | 2 +- .../copy-clipboard.component.scss | 5 +- .../number-counter.component.scss | 2 +- .../snippet-error.component.html | 17 +- .../snippet-error.component.scss | 2 +- .../snippet-error/snippet-error.component.ts | 22 +- .../indicators/tag/tag.component.scss | 2 +- .../show-tooltip-if-ellipsis.directive.ts | 3 +- .../indicators/tooltip/tooltip.directive.ts | 5 + .../button-toggle.component.scss | 2 +- .../duration-input-list.component.scss | 2 +- .../duration-input.component.scss | 2 +- .../inline-edit/inline-edit.component.html | 4 +- .../inline-edit/inline-edit.component.scss | 10 +- .../inline-edit/inline-edit.component.ts | 1 + ...complete-for-template-forms.component.scss | 2 +- .../edit-json/edit-json.component.html | 1 - .../edit-json/edit-json.component.scss | 2 +- .../overlay/edit-json/edit-json.component.ts | 8 +- .../share-dialog/share-dialog.component.ts | 2 +- .../overlay/spinner/spinner.component.scss | 2 +- .../update-notifier.component.scss | 2 +- .../wizard-dialog-step.component.scss | 2 +- .../card2/card-component2.component.scss | 2 +- .../checkbox-three-state-list.component.html | 2 +- .../compare-footer.component.scss | 2 +- .../panel/drawer/drawer.component.scss | 2 +- .../experiment-card.component.scss | 2 +- .../panel/menu/menu.component.scss | 2 +- .../panel/plus-card/plus-card.component.scss | 2 +- .../project-card-menu.component.scss | 2 +- .../project-card/project-card.component.html | 2 + .../styles/bootstrap-settings.scss | 22 +- .../shared/ui-components/styles/index.scss | 4 + .../styles/material-palette.scss | 2 +- .../ui-components/styles/mixins/common.scss | 2 +- .../styles/mixins/navbar-item.scss | 2 +- .../ui-components/styles/notifications.scss | 2 +- .../ui-components/styles/themes/dark.scss | 4 +- .../ui-components/styles/themes/light.scss | 2 +- .../tag-color-menu.component.scss | 2 +- .../tag-color-menu.component.ts | 14 +- .../tags/tags-menu/tags-menu.component.scss | 2 +- .../exist-name-validator.directive.ts | 24 + .../ui-components/ui-components.module.ts | 14 +- .../shared/utils/choose-time-unit.ts | 17 + .../shared/utils/escape-regex.ts | 1 + .../shared/utils/is-html-page.ts | 10 + .../shared/utils/is-read-only.ts | 8 + .../shared/utils/is-shared-and-not-owner.ts | 4 + .../shared/utils/is-text-file.ts | 10 + .../shared/utils/load-external-library.ts | 20 + .../shared/utils/scroll-factory.ts | 3 + .../shared/utils/shared-utils.ts | 54 - src/app/webapp-common/tasks/tasks.utils.ts | 90 +- .../queue-stats/queue-stats.component.scss | 2 +- .../workers-stats.component.scss | 2 +- .../dumb/queue-info/queue-info.component.scss | 2 +- .../queues-menu/queues-menu.component.scss | 2 +- .../queues-table/queues-table.component.scss | 2 +- .../worker-info/worker-info.component.scss | 4 +- .../effects/queues.effects.ts | 3 +- .../effects/workers.effects.ts | 2 +- .../workers-and-queues.component.scss | 2 +- src/environments/base.ts | 7 +- src/version.json | 2 +- 483 files changed, 12968 insertions(+), 5116 deletions(-) create mode 100644 src/app/business-logic/api-services/reports.service.ts create mode 100644 src/app/business-logic/model/reports/artifact.ts create mode 100644 src/app/business-logic/model/reports/artifactModeEnum.ts create mode 100644 src/app/business-logic/model/reports/artifactTypeData.ts create mode 100644 src/app/business-logic/model/reports/augmentation.ts create mode 100644 src/app/business-logic/model/reports/augmentationSet.ts create mode 100644 src/app/business-logic/model/reports/configurationItem.ts create mode 100644 src/app/business-logic/model/reports/debugImagesResponseTaskMetrics.ts create mode 100644 src/app/business-logic/model/reports/debugImagesResponseTaskMetricsIterations.ts create mode 100644 src/app/business-logic/model/reports/execution.ts create mode 100644 src/app/business-logic/model/reports/filterByRoiEnum.ts create mode 100644 src/app/business-logic/model/reports/filterLabelRule.ts create mode 100644 src/app/business-logic/model/reports/filterRule.ts create mode 100644 src/app/business-logic/model/reports/filtering.ts create mode 100644 src/app/business-logic/model/reports/input.ts create mode 100644 src/app/business-logic/model/reports/iteration.ts create mode 100644 src/app/business-logic/model/reports/jump.ts create mode 100644 src/app/business-logic/model/reports/labelSource.ts create mode 100644 src/app/business-logic/model/reports/lastMetricsEvent.ts create mode 100644 src/app/business-logic/model/reports/mapping.ts create mode 100644 src/app/business-logic/model/reports/mappingRule.ts create mode 100644 src/app/business-logic/model/reports/models.ts create mode 100644 src/app/business-logic/model/reports/multiFieldPatternData.ts create mode 100644 src/app/business-logic/model/reports/output.ts create mode 100644 src/app/business-logic/model/reports/outputRoisEnum.ts create mode 100644 src/app/business-logic/model/reports/paramsItem.ts create mode 100644 src/app/business-logic/model/reports/plotsResponseTaskMetrics.ts create mode 100644 src/app/business-logic/model/reports/plotsResponseTaskMetricsIterations.ts create mode 100644 src/app/business-logic/model/reports/report.ts create mode 100644 src/app/business-logic/model/reports/reportStatusEnum.ts create mode 100644 src/app/business-logic/model/reports/reportsArchiveRequest.ts create mode 100644 src/app/business-logic/model/reports/reportsArchiveResponse.ts create mode 100644 src/app/business-logic/model/reports/reportsCreateRequest.ts create mode 100644 src/app/business-logic/model/reports/reportsCreateResponse.ts create mode 100644 src/app/business-logic/model/reports/reportsDeleteRequest.ts create mode 100644 src/app/business-logic/model/reports/reportsDeleteResponse.ts create mode 100644 src/app/business-logic/model/reports/reportsGetAllExRequest.ts create mode 100644 src/app/business-logic/model/reports/reportsGetAllExResponse.ts create mode 100644 src/app/business-logic/model/reports/reportsGetTagsResponse.ts create mode 100644 src/app/business-logic/model/reports/reportsGetTaskDataRequest.ts create mode 100644 src/app/business-logic/model/reports/reportsGetTaskDataRequestDebugImages.ts create mode 100644 src/app/business-logic/model/reports/reportsGetTaskDataRequestPlots.ts create mode 100644 src/app/business-logic/model/reports/reportsGetTaskDataRequestScalarMetricsIterHistogram.ts create mode 100644 src/app/business-logic/model/reports/reportsGetTaskDataResponse.ts create mode 100644 src/app/business-logic/model/reports/reportsGetTaskDataResponseDebugImages.ts create mode 100644 src/app/business-logic/model/reports/reportsGetTaskDataResponsePlots.ts create mode 100644 src/app/business-logic/model/reports/reportsGetTaskDataResponseScalarMetricsIterHistogram.ts create mode 100644 src/app/business-logic/model/reports/reportsMoveRequest.ts create mode 100644 src/app/business-logic/model/reports/reportsMoveResponse.ts create mode 100644 src/app/business-logic/model/reports/reportsPublishRequest.ts create mode 100644 src/app/business-logic/model/reports/reportsPublishResponse.ts create mode 100644 src/app/business-logic/model/reports/reportsShareRequest.ts create mode 100644 src/app/business-logic/model/reports/reportsShareResponse.ts create mode 100644 src/app/business-logic/model/reports/reportsUnarchiveRequest.ts create mode 100644 src/app/business-logic/model/reports/reportsUnarchiveResponse.ts create mode 100644 src/app/business-logic/model/reports/reportsUpdateRequest.ts create mode 100644 src/app/business-logic/model/reports/reportsUpdateResponse.ts create mode 100644 src/app/business-logic/model/reports/scalarKeyEnum.ts create mode 100644 src/app/business-logic/model/reports/script.ts create mode 100644 src/app/business-logic/model/reports/task.ts create mode 100644 src/app/business-logic/model/reports/taskModelItem.ts create mode 100644 src/app/business-logic/model/reports/taskModels.ts create mode 100644 src/app/business-logic/model/reports/taskStatusEnum.ts create mode 100644 src/app/business-logic/model/reports/taskTypeEnum.ts create mode 100644 src/app/business-logic/model/reports/view.ts create mode 100644 src/app/business-logic/model/reports/viewEntry.ts create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/.browserslistrc create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/karma.conf.js create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/src/app/app.actions.ts create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/src/app/app.component.html create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/src/app/app.component.scss create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/src/app/app.component.ts create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/src/app/app.effects.ts create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/src/app/app.module.ts create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/src/app/app.reducer.ts create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/src/app/webapp-common/assets create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/src/assets/.gitkeep create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/src/assets/pallete-cursor.png create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/src/environments/base.ts create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/src/environments/environment.prod.ts create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/src/environments/environment.ts create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/src/favicon.ico create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/src/index.html create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/src/main.ts create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/src/polyfills.ts create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/src/styles.scss create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/src/test.ts create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/tsconfig.app.json create mode 100644 src/app/webapp-common/clearml-applications/report-widgets/tsconfig.spec.json delete mode 100644 src/app/webapp-common/debug-images/debug-image-snippet/debug-image-snippet.component.html delete mode 100644 src/app/webapp-common/experiments/dumb/image-viewer/image-viewer.component.scss delete mode 100644 src/app/webapp-common/experiments/dumb/image-viewer/image-viewer.component.ts create mode 100644 src/app/webapp-common/reports/report-card-menu/report-card-menu.component.html create mode 100644 src/app/webapp-common/reports/report-card-menu/report-card-menu.component.scss create mode 100644 src/app/webapp-common/reports/report-card-menu/report-card-menu.component.ts create mode 100644 src/app/webapp-common/reports/report-card/report-card.component.html create mode 100644 src/app/webapp-common/reports/report-card/report-card.component.scss create mode 100644 src/app/webapp-common/reports/report-card/report-card.component.ts create mode 100644 src/app/webapp-common/reports/report-dialog/create-new-report-form/create-new-report-form.component.html create mode 100644 src/app/webapp-common/reports/report-dialog/create-new-report-form/create-new-report-form.component.scss create mode 100644 src/app/webapp-common/reports/report-dialog/create-new-report-form/create-new-report-form.component.ts create mode 100644 src/app/webapp-common/reports/report-dialog/report-dialog.component.html create mode 100644 src/app/webapp-common/reports/report-dialog/report-dialog.component.scss create mode 100644 src/app/webapp-common/reports/report-dialog/report-dialog.component.ts create mode 100644 src/app/webapp-common/reports/report/report.component.html create mode 100644 src/app/webapp-common/reports/report/report.component.scss create mode 100644 src/app/webapp-common/reports/report/report.component.spec.ts create mode 100644 src/app/webapp-common/reports/report/report.component.ts create mode 100644 src/app/webapp-common/reports/reports-filters/reports-header.component.html create mode 100644 src/app/webapp-common/reports/reports-filters/reports-header.component.scss create mode 100644 src/app/webapp-common/reports/reports-filters/reports-header.component.ts create mode 100644 src/app/webapp-common/reports/reports-list/reports-list.component.html create mode 100644 src/app/webapp-common/reports/reports-list/reports-list.component.scss create mode 100644 src/app/webapp-common/reports/reports-list/reports-list.component.ts create mode 100644 src/app/webapp-common/reports/reports-page/reports-page.component.html create mode 100644 src/app/webapp-common/reports/reports-page/reports-page.component.scss create mode 100644 src/app/webapp-common/reports/reports-page/reports-page.component.ts create mode 100644 src/app/webapp-common/reports/reports-routing.module.ts create mode 100644 src/app/webapp-common/reports/reports-shared.module.ts create mode 100644 src/app/webapp-common/reports/reports.actions.ts create mode 100644 src/app/webapp-common/reports/reports.consts.ts create mode 100644 src/app/webapp-common/reports/reports.effects.ts create mode 100644 src/app/webapp-common/reports/reports.module.ts create mode 100644 src/app/webapp-common/reports/reports.reducer.ts create mode 100644 src/app/webapp-common/settings/admin/base-admin-utils.ts create mode 100644 src/app/webapp-common/shared/components/main-pages-header-filter/main-pages-header-filter.component.html create mode 100644 src/app/webapp-common/shared/components/main-pages-header-filter/main-pages-header-filter.component.scss create mode 100644 src/app/webapp-common/shared/components/main-pages-header-filter/main-pages-header-filter.component.ts create mode 100644 src/app/webapp-common/shared/components/markdown-editor/markdown-editor.component.html create mode 100644 src/app/webapp-common/shared/components/markdown-editor/markdown-editor.component.scss create mode 100644 src/app/webapp-common/shared/components/markdown-editor/markdown-editor.component.spec.ts create mode 100644 src/app/webapp-common/shared/components/markdown-editor/markdown-editor.component.ts create mode 100644 src/app/webapp-common/shared/debug-sample/debug-image-snippet/debug-image-snippet.component.html rename src/app/webapp-common/{debug-images => shared/debug-sample}/debug-image-snippet/debug-image-snippet.component.scss (70%) rename src/app/webapp-common/{debug-images => shared/debug-sample}/debug-image-snippet/debug-image-snippet.component.ts (77%) create mode 100644 src/app/webapp-common/shared/debug-sample/debug-sample.actions.ts create mode 100644 src/app/webapp-common/shared/debug-sample/debug-sample.effects.ts create mode 100644 src/app/webapp-common/shared/debug-sample/debug-sample.module.ts create mode 100644 src/app/webapp-common/shared/debug-sample/debug-sample.reducer.ts create mode 100644 src/app/webapp-common/shared/debug-sample/image-viewer/base-image-viewer.component.ts rename src/app/webapp-common/{experiments/dumb => shared/debug-sample}/image-viewer/image-viewer.component.html (63%) create mode 100644 src/app/webapp-common/shared/debug-sample/image-viewer/image-viewer.component.scss create mode 100644 src/app/webapp-common/shared/debug-sample/image-viewer/image-viewer.component.ts create mode 100644 src/app/webapp-common/shared/services/report-code-embed.service.spec.ts create mode 100644 src/app/webapp-common/shared/services/report-code-embed.service.ts rename src/app/webapp-common/shared/{experiment-graphs => single-graph}/graph-viewer/graph-viewer.component.html (96%) rename src/app/webapp-common/shared/{experiment-graphs => single-graph}/graph-viewer/graph-viewer.component.scss (92%) rename src/app/webapp-common/shared/{experiment-graphs => single-graph}/graph-viewer/graph-viewer.component.ts (89%) rename src/app/webapp-common/shared/{experiment-graphs => }/single-graph/plotly-graph-base.ts (98%) create mode 100644 src/app/webapp-common/shared/single-graph/single-graph.actions.ts rename src/app/webapp-common/shared/{experiment-graphs => }/single-graph/single-graph.component.html (100%) rename src/app/webapp-common/shared/{experiment-graphs => }/single-graph/single-graph.component.scss (89%) rename src/app/webapp-common/shared/{experiment-graphs => }/single-graph/single-graph.component.ts (91%) create mode 100644 src/app/webapp-common/shared/single-graph/single-graph.effects.ts create mode 100644 src/app/webapp-common/shared/single-graph/single-graph.module.ts create mode 100644 src/app/webapp-common/shared/single-graph/single-graph.reducer.ts create mode 100644 src/app/webapp-common/shared/ui-components/template-forms-ui/exist-name-validator.directive.ts create mode 100644 src/app/webapp-common/shared/utils/choose-time-unit.ts create mode 100644 src/app/webapp-common/shared/utils/escape-regex.ts create mode 100644 src/app/webapp-common/shared/utils/is-html-page.ts create mode 100644 src/app/webapp-common/shared/utils/is-read-only.ts create mode 100644 src/app/webapp-common/shared/utils/is-shared-and-not-owner.ts create mode 100644 src/app/webapp-common/shared/utils/is-text-file.ts create mode 100644 src/app/webapp-common/shared/utils/load-external-library.ts create mode 100644 src/app/webapp-common/shared/utils/scroll-factory.ts diff --git a/angular.json b/angular.json index 51d8e4cb..603c42c8 100644 --- a/angular.json +++ b/angular.json @@ -182,27 +182,126 @@ } } }, - "trains-webapp-e2e": { - "root": "", - "sourceRoot": "", + "report-widgets": { "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "src/app/webapp-common/clearml-applications/report-widgets", + "sourceRoot": "src/app/webapp-common/clearml-applications/report-widgets/src", + "prefix": "app", "architect": { - "e2e": { - "builder": "@angular-devkit/build-angular:protractor", + "build": { + "builder": "@angular-devkit/build-angular:browser", "options": { - "protractorConfig": "./protractor.conf.js", - "devServerTarget": "trains-webapp:serve" + "preserveSymlinks": true, + "outputPath": "dist/report-widgets", + "baseHref": "widgets", + "index": "src/app/webapp-common/clearml-applications/report-widgets/src/index.html", + "main": "src/app/webapp-common/clearml-applications/report-widgets/src/main.ts", + "polyfills": "src/app/webapp-common/clearml-applications/report-widgets/src/polyfills.ts", + "tsConfig": "src/app/webapp-common/clearml-applications/report-widgets/tsconfig.app.json", + "inlineStyleLanguage": "scss", + "assets": [ + "src/app/webapp-common/clearml-applications/report-widgets/src/favicon.ico", + "src/app/webapp-common/clearml-applications/report-widgets/src/assets", + "src/app/webapp-common/clearml-applications/report-widgets/src/app/webapp-common/assets" + ], + "stylePreprocessorOptions": { + "includePaths": [ + "src/app/webapp-common/shared/ui-components/styles/" + ] + }, + "styles": [ + "src/app/webapp-common/clearml-applications/report-widgets/src/styles.scss", + { + "input": "src/app/webapp-common/assets/fonts/trains-icons.scss", + "bundleName": "trains-icons", + "inject": false + } + ], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "1mb", + "maximumError": "2mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" + } + ], + "fileReplacements": [ + { + "replace": "src/app/webapp-common/clearml-applications/report-widgets/src/environments/environment.ts", + "with": "src/app/webapp-common/clearml-applications/report-widgets/src/environments/environment.prod.ts" + } + ], + "outputHashing": "all" + }, + "development": { + "buildOptimizer": false, + "optimization": false, + "vendorChunk": true, + "extractLicenses": false, + "sourceMap": true, + "namedChunks": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "browserTarget": "report-widgets:build:production", + "headers": { + "Content-Security-Policy": "frame-ancestors *" + } + }, + "development": { + "browserTarget": "report-widgets:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "report-widgets:build" } }, - "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "test": { + "builder": "@angular-devkit/build-angular:karma", "options": { - "tsConfig": [ - "e2e/tsconfig.e2e.json" + "main": "src/app/webapp-common/clearml-applications/report-widgets/src/test.ts", + "polyfills": "src/app/webapp-common/clearml-applications/report-widgets/src/polyfills.ts", + "tsConfig": "src/app/webapp-common/clearml-applications/report-widgets/tsconfig.spec.json", + "karmaConfig": "src/app/webapp-common/clearml-applications/report-widgets/karma.conf.js", + "inlineStyleLanguage": "scss", + "assets": [ + "src/app/webapp-common/clearml-applications/report-widgets/src/favicon.ico", + "src/app/webapp-common/clearml-applications/report-widgets/src/assets", + "src/app/webapp-common/clearml-applications/report-widgets/src/app/webapp-common/assets", + "src/app/webapp-common/clearml-applications/report-widgets/src/app/webapp-common/assets/fonts/trains.ttf" ], - "exclude": [ - "**/node_modules/**" - ] + + "styles": [ + "src/app/webapp-common/clearml-applications/report-widgets/src/styles.scss", + { + "input": "src/app/webapp-common/assets/fonts/trains-icons.scss", + "bundleName": "trains-icons", + "inject": false + } + ], + "scripts": [] } } } diff --git a/package-lock.json b/package-lock.json index c839aab9..21fceea6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,34 +1,34 @@ { "name": "clearml-webapp", - "version": "1.8.0", + "version": "1.9.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "clearml-webapp", - "version": "1.8.0", + "version": "1.9.0", "dependencies": { - "@angular/animations": "^14.2.8", - "@angular/cdk": "^14.2.6", - "@angular/common": "^14.2.8", - "@angular/compiler": "^14.2.8", - "@angular/core": "^14.2.8", - "@angular/forms": "^14.2.8", - "@angular/material": "^14.2.6", - "@angular/platform-browser": "^14.2.8", - "@angular/platform-browser-dynamic": "^14.2.8", - "@angular/platform-server": "^14.2.8", - "@angular/router": "^14.2.8", - "@angular/service-worker": "^14.2.8", - "@angular/youtube-player": "^14.2.6", - "@aws-sdk/client-s3": "^3.197.0", - "@aws-sdk/s3-request-presigner": "^3.197.0", + "@angular/animations": "^14.2.12", + "@angular/cdk": "^14.2.7", + "@angular/common": "^14.2.12", + "@angular/compiler": "^14.2.12", + "@angular/core": "^14.2.12", + "@angular/forms": "^14.2.12", + "@angular/material": "^14.2.7", + "@angular/platform-browser": "^14.2.12", + "@angular/platform-browser-dynamic": "^14.2.12", + "@angular/platform-server": "^14.2.12", + "@angular/router": "^14.2.12", + "@angular/service-worker": "^14.2.12", + "@angular/youtube-player": "^14.2.7", + "@aws-sdk/client-s3": "^3.216.0", + "@aws-sdk/s3-request-presigner": "^3.216.0", "@ngneat/dag": "^2.0.0", "@ngrx/effects": "^14.3.2", "@ngrx/entity": "^14.3.2", "@ngrx/router-store": "^14.3.2", "@ngrx/store": "^14.3.2", - "ace-builds": "^1.12.3", + "ace-builds": "^1.13.1", "angular-google-tag-manager": "^1.6.1", "angular-resizable-element": "^6.0.0", "angular-split": "^14.1.0", @@ -48,46 +48,47 @@ "ngx-clipboard": "^15.1.0", "ngx-color-picker": "^13.0.0", "ngx-device-detector": "^4.0.1", - "ngx-markdown-editor": "^4.2.0", + "ngx-markdown-editor": "^4.3.0", + "ngx-print": "^1.2.1", "ngx-window-token": "^6.0.0", "object-hash": "^3.0.0", "primeicons": "^6.0.1", - "primeng": "^14.1.2", + "primeng": "^14.2.2", "process": "^0.11.10", "rxjs": "^7.5.7", "string-to-color": "^2.2.2", - "tslib": "^2.4.0", + "tslib": "^2.4.1", "url": "^0.11.0", "uuid": "^9.0.0", "zone.js": "~0.11.8" }, "devDependencies": { - "@angular-devkit/build-angular": "^14.2.7", - "@angular-devkit/core": "^14.2.7", - "@angular-devkit/schematics": "^14.2.7", + "@angular-devkit/build-angular": "^14.2.10", + "@angular-devkit/core": "^14.2.10", + "@angular-devkit/schematics": "^14.2.10", "@angular-devkit/schematics-cli": "^14.2.7", - "@angular-eslint/builder": "^14.1.2", - "@angular-eslint/eslint-plugin": "^14.1.2", - "@angular-eslint/eslint-plugin-template": "^14.1.2", - "@angular-eslint/schematics": "14.1.2", - "@angular-eslint/template-parser": "^14.1.2", - "@angular/cli": "^14.2.7", - "@angular/compiler-cli": "^14.2.8", - "@angular/language-service": "^14.2.8", - "@fortawesome/fontawesome-free": "^6.2.0", + "@angular-eslint/builder": "^14.4.0", + "@angular-eslint/eslint-plugin": "^14.4.0", + "@angular-eslint/eslint-plugin-template": "^14.4.0", + "@angular-eslint/schematics": "14.4.0", + "@angular-eslint/template-parser": "^14.4.0", + "@angular/cli": "^14.2.10", + "@angular/compiler-cli": "^14.2.12", + "@angular/language-service": "^14.2.12", + "@fortawesome/fontawesome-free": "^6.2.1", "@ngrx/schematics": "^14.3.2", "@ngrx/store-devtools": "^14.3.2", "@types/d3-selection": "^3.0.3", - "@types/lodash": "^4.14.186", - "@types/node": "^16.18.2", - "@types/plotly.js": "^2.12.8", + "@types/lodash": "^4.14.191", + "@types/node": "^18.11.9", + "@types/plotly.js": "^2.12.9", "@types/uuid": "^8.3.4", - "@typescript-eslint/eslint-plugin": "^5.41.0", - "@typescript-eslint/parser": "^5.41.0", - "codelyzer": "^6.0.2", - "eslint": "^8.26.0", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "codelyzer": "^0.0.28", + "eslint": "^8.28.0", "eslint-plugin-import": "2.26.0", - "eslint-plugin-jsdoc": "39.3.25", + "eslint-plugin-jsdoc": "39.6.2", "eslint-plugin-prefer-arrow": "1.2.3", "typescript": "~4.8.4" } @@ -112,12 +113,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1402.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.7.tgz", - "integrity": "sha512-YZchteri2iUq5JICSH0BQjOU3ehE57+CMU8PBigcJZiaLa/GPiCuwD9QOsnwSzHJNYYx5C94uhtZUjPwUtIAIw==", + "version": "0.1402.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.10.tgz", + "integrity": "sha512-/6YmPrgataj1jD2Uqd1ED+CG4DaZGacoeZd/89hH7hF76Nno8K18DrSOqJAEmDnOWegpSRGVLd0qP09IHmaG5w==", "dev": true, "dependencies": { - "@angular-devkit/core": "14.2.7", + "@angular-devkit/core": "14.2.10", "rxjs": "6.6.7" }, "engines": { @@ -145,15 +146,15 @@ "dev": true }, "node_modules/@angular-devkit/build-angular": { - "version": "14.2.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-14.2.7.tgz", - "integrity": "sha512-Y58kcEmy8bSFyODtUFQzkuoZHNCji3fzRwGCiQYdAh/mkBf53CuVWoT9q7MrvGOc7Nmo2JiuwR/b7c543eVgfw==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-14.2.10.tgz", + "integrity": "sha512-VCeZAyq4uPCJukKInaSiD4i/GgxgcU4jFlLFQtoYNmaBS4xbPOymL19forRIihiV0dwNEa2L694vRTAPMBxIfw==", "dev": true, "dependencies": { "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1402.7", - "@angular-devkit/build-webpack": "0.1402.7", - "@angular-devkit/core": "14.2.7", + "@angular-devkit/architect": "0.1402.10", + "@angular-devkit/build-webpack": "0.1402.10", + "@angular-devkit/core": "14.2.10", "@babel/core": "7.18.10", "@babel/generator": "7.18.12", "@babel/helper-annotate-as-pure": "7.18.6", @@ -164,7 +165,7 @@ "@babel/runtime": "7.18.9", "@babel/template": "7.18.10", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "14.2.7", + "@ngtools/webpack": "14.2.10", "ansi-colors": "4.1.3", "babel-loader": "8.2.5", "babel-plugin-istanbul": "6.1.1", @@ -182,7 +183,7 @@ "less": "4.1.3", "less-loader": "11.0.0", "license-webpack-plugin": "4.0.2", - "loader-utils": "3.2.0", + "loader-utils": "3.2.1", "mini-css-extract-plugin": "2.6.1", "minimatch": "5.1.0", "open": "8.4.0", @@ -310,13 +311,19 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, + "node_modules/@angular-devkit/build-angular/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1402.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1402.7.tgz", - "integrity": "sha512-aDhS/ODt8BwgtnNN73R7SuMC1GgoT5Pajn1nnIWvvpGj8XchLUbguptyl2v7D2QeYXXsd34Gtx8cDOr9PxYFTA==", + "version": "0.1402.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1402.10.tgz", + "integrity": "sha512-h+2MaSY7QSvoJ3R+Hvin21jVCfPGOTLdASIUk4Jmq6J3y5BSku3KSSaV8dWoBOBkFCwQyPQMRjiHoHKLpC1K7g==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1402.7", + "@angular-devkit/architect": "0.1402.10", "rxjs": "6.6.7" }, "engines": { @@ -348,9 +355,9 @@ "dev": true }, "node_modules/@angular-devkit/core": { - "version": "14.2.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.7.tgz", - "integrity": "sha512-83SCYP3h6fglWMgAXFDc8HfOxk9t3ugK0onATXchctvA7blW4Vx8BSg3/DgbqCv+fF380SN8bYqqLJl8fQFdzg==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.10.tgz", + "integrity": "sha512-K4AO7mROTdbhQ7chtyQd6oPwmuL+BPUh+wn6Aq1qrmYJK4UZYFOPp8fi/Ehs8meCEeywtrssOPfrOE4Gsre9dg==", "dev": true, "dependencies": { "ajv": "8.11.0", @@ -392,12 +399,12 @@ "dev": true }, "node_modules/@angular-devkit/schematics": { - "version": "14.2.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.7.tgz", - "integrity": "sha512-3e2dpFXWl2Z4Gfm+KgY3gAeqsyu8utJMcDIg5sWRAXDeJJdAPc5LweCa8YZEn33Zr9cl8oK+FxlOr15RCyWLcA==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.10.tgz", + "integrity": "sha512-MMp31KpJTwKHisXOq+6VOXYApq97hZxFaFmZk396X5aIFTCELUwjcezQDk+u2nEs5iK/COUfnN3plGcfJxYhQA==", "dev": true, "dependencies": { - "@angular-devkit/core": "14.2.7", + "@angular-devkit/core": "14.2.10", "jsonc-parser": "3.1.0", "magic-string": "0.26.2", "ora": "5.4.1", @@ -431,6 +438,68 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@angular-devkit/schematics-cli/node_modules/@angular-devkit/core": { + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.7.tgz", + "integrity": "sha512-83SCYP3h6fglWMgAXFDc8HfOxk9t3ugK0onATXchctvA7blW4Vx8BSg3/DgbqCv+fF380SN8bYqqLJl8fQFdzg==", + "dev": true, + "dependencies": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/@angular-devkit/schematics": { + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.7.tgz", + "integrity": "sha512-3e2dpFXWl2Z4Gfm+KgY3gAeqsyu8utJMcDIg5sWRAXDeJJdAPc5LweCa8YZEn33Zr9cl8oK+FxlOr15RCyWLcA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "14.2.7", + "jsonc-parser": "3.1.0", + "magic-string": "0.26.2", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/@angular-devkit/schematics/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -450,9 +519,9 @@ "dev": true }, "node_modules/@angular-eslint/builder": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-14.1.2.tgz", - "integrity": "sha512-J+LRidjlJOGfRNXJwUyOhz5TnasEBK+kL3QkkCE4ZSt/dH40QqT+3q9qV5zc45wdaAeJM4/jp1IhI6kPwWI5Yw==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-14.4.0.tgz", + "integrity": "sha512-AhAUFvSg0urtb6Lsowvuxwu6DMXUy0BPwrnfNOBGjRt9vG7F9kgXXAsm5DnIS0GNy/mLZ9mSfa86fv++1e0KUA==", "dev": true, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0", @@ -460,19 +529,19 @@ } }, "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-14.1.2.tgz", - "integrity": "sha512-d5/jTKXP+t9hNSucj3m8zZYBl62fZ2xFMVNbAOArYAkA7WwwX3D7Gae57BNW54cd2fl2/is7Dn6UgYhu1wqkSQ==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-14.4.0.tgz", + "integrity": "sha512-KMHPHd24s0HVvAP/DxSSqhYBWhwW8FgS/r0Uwv8eWpsIdc/z/Chd2ush2SgPchmmquAXTgOZsbEY7ZmW+XkJfQ==", "dev": true }, "node_modules/@angular-eslint/eslint-plugin": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-14.1.2.tgz", - "integrity": "sha512-5pJaTcFfM7yDHNtMxw3uNTpBTLjNYH9mlOLX5FFQ9EahAuycwCtV8VJkIntK2ZiOTdRVJYA9/PEdD/xVxX02rw==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-14.4.0.tgz", + "integrity": "sha512-2rZQ4mt7tEUW+lI5jjuj3HWaT4VQtWTG6+LDnmuUmx76m8hqQ7NvFUpOcNDofu5KbEVBP+oF2DA6wjoZOIuSOA==", "dev": true, "dependencies": { - "@angular-eslint/utils": "14.1.2", - "@typescript-eslint/utils": "5.37.0" + "@angular-eslint/utils": "14.4.0", + "@typescript-eslint/utils": "5.43.0" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0", @@ -480,16 +549,17 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-14.1.2.tgz", - "integrity": "sha512-gMgYJ8ZwPvq2H/YEzPztVRAK2NYs2cJFUDZD4iGjSRtDgYq9OHjyTo+r6tkcyjcK2qvesy0RccHQKh+x3hYMTA==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-14.4.0.tgz", + "integrity": "sha512-d3GM/EU2iWzr+BrITwO4gBf9WfDfuOdTjfinV/zN84oXMFaK2ENo+IP6OEsD9hh36rdPps+m2gFGDdx+rTzBpg==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "14.1.2", - "@typescript-eslint/type-utils": "5.37.0", - "@typescript-eslint/utils": "5.37.0", - "aria-query": "5.0.2", - "axobject-query": "3.0.1" + "@angular-eslint/bundled-angular-compiler": "14.4.0", + "@angular-eslint/utils": "14.4.0", + "@typescript-eslint/type-utils": "5.43.0", + "@typescript-eslint/utils": "5.43.0", + "aria-query": "5.1.3", + "axobject-query": "3.1.1" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0", @@ -497,13 +567,13 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template/node_modules/@typescript-eslint/scope-manager": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.37.0.tgz", - "integrity": "sha512-F67MqrmSXGd/eZnujjtkPgBQzgespu/iCZ+54Ok9X5tALb9L2v3G+QBSoWkXG0p3lcTJsL+iXz5eLUEdSiJU9Q==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz", + "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.37.0", - "@typescript-eslint/visitor-keys": "5.37.0" + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -514,13 +584,13 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template/node_modules/@typescript-eslint/type-utils": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.37.0.tgz", - "integrity": "sha512-BSx/O0Z0SXOF5tY0bNTBcDEKz2Ec20GVYvq/H/XNKiUorUFilH7NPbFUuiiyzWaSdN3PA8JV0OvYx0gH/5aFAQ==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.43.0.tgz", + "integrity": "sha512-K21f+KY2/VvYggLf5Pk4tgBOPs2otTaIHy2zjclo7UZGLyFH86VfUOm5iq+OtDtxq/Zwu2I3ujDBykVW4Xtmtg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.37.0", - "@typescript-eslint/utils": "5.37.0", + "@typescript-eslint/typescript-estree": "5.43.0", + "@typescript-eslint/utils": "5.43.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -541,9 +611,9 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template/node_modules/@typescript-eslint/types": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.37.0.tgz", - "integrity": "sha512-3frIJiTa5+tCb2iqR/bf7XwU20lnU05r/sgPJnRpwvfZaqCJBrl8Q/mw9vr3NrNdB/XtVyMA0eppRMMBqdJ1bA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz", + "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -554,13 +624,13 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.37.0.tgz", - "integrity": "sha512-JkFoFIt/cx59iqEDSgIGnQpCTRv96MQnXCYvJi7QhBC24uyuzbD8wVbajMB1b9x4I0octYFJ3OwjAwNqk1AjDA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz", + "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.37.0", - "@typescript-eslint/visitor-keys": "5.37.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -581,17 +651,19 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template/node_modules/@typescript-eslint/utils": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.37.0.tgz", - "integrity": "sha512-jUEJoQrWbZhmikbcWSMDuUSxEE7ID2W/QCV/uz10WtQqfOuKZUqFGjqLJ+qhDd17rjgp+QJPqTdPIBWwoob2NQ==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.43.0.tgz", + "integrity": "sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.37.0", - "@typescript-eslint/types": "5.37.0", - "@typescript-eslint/typescript-estree": "5.37.0", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -605,12 +677,12 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.37.0.tgz", - "integrity": "sha512-Hp7rT4cENBPIzMwrlehLW/28EVCOcE9U1Z1BQTc8EA8v5qpr7GRGuG+U58V5tTY48zvUOA3KHvw3rA8tY9fbdA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz", + "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.37.0", + "@typescript-eslint/types": "5.43.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -622,13 +694,13 @@ } }, "node_modules/@angular-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.37.0.tgz", - "integrity": "sha512-F67MqrmSXGd/eZnujjtkPgBQzgespu/iCZ+54Ok9X5tALb9L2v3G+QBSoWkXG0p3lcTJsL+iXz5eLUEdSiJU9Q==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz", + "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.37.0", - "@typescript-eslint/visitor-keys": "5.37.0" + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -639,9 +711,9 @@ } }, "node_modules/@angular-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.37.0.tgz", - "integrity": "sha512-3frIJiTa5+tCb2iqR/bf7XwU20lnU05r/sgPJnRpwvfZaqCJBrl8Q/mw9vr3NrNdB/XtVyMA0eppRMMBqdJ1bA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz", + "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -652,13 +724,13 @@ } }, "node_modules/@angular-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.37.0.tgz", - "integrity": "sha512-JkFoFIt/cx59iqEDSgIGnQpCTRv96MQnXCYvJi7QhBC24uyuzbD8wVbajMB1b9x4I0octYFJ3OwjAwNqk1AjDA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz", + "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.37.0", - "@typescript-eslint/visitor-keys": "5.37.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -679,17 +751,19 @@ } }, "node_modules/@angular-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.37.0.tgz", - "integrity": "sha512-jUEJoQrWbZhmikbcWSMDuUSxEE7ID2W/QCV/uz10WtQqfOuKZUqFGjqLJ+qhDd17rjgp+QJPqTdPIBWwoob2NQ==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.43.0.tgz", + "integrity": "sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.37.0", - "@typescript-eslint/types": "5.37.0", - "@typescript-eslint/typescript-estree": "5.37.0", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -703,12 +777,12 @@ } }, "node_modules/@angular-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.37.0.tgz", - "integrity": "sha512-Hp7rT4cENBPIzMwrlehLW/28EVCOcE9U1Z1BQTc8EA8v5qpr7GRGuG+U58V5tTY48zvUOA3KHvw3rA8tY9fbdA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz", + "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.37.0", + "@typescript-eslint/types": "5.43.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -720,13 +794,13 @@ } }, "node_modules/@angular-eslint/schematics": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-14.1.2.tgz", - "integrity": "sha512-jyaCDQf+MGjMCf+U6KXvvpPESKMUoSGXYhsh2XYtSSUhXook9f2cPI6bHBMyrDgV43zH42jMS+yMC1EO24ZP1w==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-14.4.0.tgz", + "integrity": "sha512-BrGkPug+CZQWOfmNRsJDrEtYJcxvzF/kLlV7RjvIN9Ky5TjUiJVCeafl3VY6COSY32tjlh2GvBdl1AQKWWovbA==", "dev": true, "dependencies": { - "@angular-eslint/eslint-plugin": "14.1.2", - "@angular-eslint/eslint-plugin-template": "14.1.2", + "@angular-eslint/eslint-plugin": "14.4.0", + "@angular-eslint/eslint-plugin-template": "14.4.0", "ignore": "5.2.0", "strip-json-comments": "3.1.1", "tmp": "0.2.1" @@ -736,27 +810,49 @@ } }, "node_modules/@angular-eslint/template-parser": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-14.1.2.tgz", - "integrity": "sha512-bQI+poQDIyR3OU9EQzJeLYRtmsvjFGtV5dc+4XPJ6eIyRAc8baCG/0V/cOrpofIdSf7e/sCV8H7rXcFg6tSdUw==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-14.4.0.tgz", + "integrity": "sha512-zq888KpQB0YTEK26mkKcT4fs8LDWWT1oAEXU8DrXhvkikS8XavTSHOWJye/bVZR4oJRFCF5YTJV75DEMcGNIpQ==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "14.1.2", - "eslint-scope": "^5.1.0" + "@angular-eslint/bundled-angular-compiler": "14.4.0", + "eslint-scope": "^7.0.0" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0", "typescript": "*" } }, - "node_modules/@angular-eslint/utils": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-14.1.2.tgz", - "integrity": "sha512-EtblG9zO0+kWG9EHsoEshFKvsH5DMSK1DqwQsNOVGAF0Aa5DFOqrwouJUyBNJ0d4fSWI9QcuzVkZ1x9JyLIeXQ==", + "node_modules/@angular-eslint/template-parser/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "14.1.2", - "@typescript-eslint/utils": "5.37.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@angular-eslint/template-parser/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@angular-eslint/utils": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-14.4.0.tgz", + "integrity": "sha512-dPHklAVfh+JfueDfXre9Xooq7p5bFyKO2Z6y1agYeofAgHCPIJOPx2AhtFPrOtsc4VXFFiyE9XbowlXh4ogoKQ==", + "dev": true, + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "14.4.0", + "@typescript-eslint/utils": "5.43.0" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0", @@ -764,13 +860,13 @@ } }, "node_modules/@angular-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.37.0.tgz", - "integrity": "sha512-F67MqrmSXGd/eZnujjtkPgBQzgespu/iCZ+54Ok9X5tALb9L2v3G+QBSoWkXG0p3lcTJsL+iXz5eLUEdSiJU9Q==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz", + "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.37.0", - "@typescript-eslint/visitor-keys": "5.37.0" + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -781,9 +877,9 @@ } }, "node_modules/@angular-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.37.0.tgz", - "integrity": "sha512-3frIJiTa5+tCb2iqR/bf7XwU20lnU05r/sgPJnRpwvfZaqCJBrl8Q/mw9vr3NrNdB/XtVyMA0eppRMMBqdJ1bA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz", + "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -794,13 +890,13 @@ } }, "node_modules/@angular-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.37.0.tgz", - "integrity": "sha512-JkFoFIt/cx59iqEDSgIGnQpCTRv96MQnXCYvJi7QhBC24uyuzbD8wVbajMB1b9x4I0octYFJ3OwjAwNqk1AjDA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz", + "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.37.0", - "@typescript-eslint/visitor-keys": "5.37.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -821,17 +917,19 @@ } }, "node_modules/@angular-eslint/utils/node_modules/@typescript-eslint/utils": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.37.0.tgz", - "integrity": "sha512-jUEJoQrWbZhmikbcWSMDuUSxEE7ID2W/QCV/uz10WtQqfOuKZUqFGjqLJ+qhDd17rjgp+QJPqTdPIBWwoob2NQ==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.43.0.tgz", + "integrity": "sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.37.0", - "@typescript-eslint/types": "5.37.0", - "@typescript-eslint/typescript-estree": "5.37.0", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -845,12 +943,12 @@ } }, "node_modules/@angular-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.37.0.tgz", - "integrity": "sha512-Hp7rT4cENBPIzMwrlehLW/28EVCOcE9U1Z1BQTc8EA8v5qpr7GRGuG+U58V5tTY48zvUOA3KHvw3rA8tY9fbdA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz", + "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.37.0", + "@typescript-eslint/types": "5.43.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -862,9 +960,9 @@ } }, "node_modules/@angular/animations": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-14.2.8.tgz", - "integrity": "sha512-9YKmaebHW1F/N63TS1EboBQ5Gniq1ogWQ2XEypy057LfcnoPtVkRbAsl2pUJWbUjDZK9f2BpWfXXm9i5ZxIW3A==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-14.2.12.tgz", + "integrity": "sha512-gwdnFZkvVUr+enUNfhfCGRGGqNHn1+vTA81apLfHYhJxgjiLUtETc4KTOrQevtDm022pEd+LSrvr8r+7ag+jkw==", "dependencies": { "tslib": "^2.3.0" }, @@ -872,13 +970,13 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/core": "14.2.8" + "@angular/core": "14.2.12" } }, "node_modules/@angular/cdk": { - "version": "14.2.6", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-14.2.6.tgz", - "integrity": "sha512-sihrwk/0emYbE2X+DOIlan7mohED9pKiH2gQh2hk3Ud8jjeW6VmbaGtTCkjs+HRbFc9/44uDHasizxrKnjseyw==", + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-14.2.7.tgz", + "integrity": "sha512-/tEsYaUbDSnfEmKVvAMramIptmhI67O+9STjOV0i+74XR2NospeK0fkbywIANu1n3w6AHGMotvRWJrjmbCElFg==", "dependencies": { "tslib": "^2.3.0" }, @@ -892,15 +990,15 @@ } }, "node_modules/@angular/cli": { - "version": "14.2.7", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-14.2.7.tgz", - "integrity": "sha512-RM4CJwtqD7cKFQ7hNGJ56s9YMeJxYqCN5Ss0SzsKN1nXYqz8HykMW8fhUbZQ9HFVy/Ml3LGoh1yGo/tXywAWcA==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-14.2.10.tgz", + "integrity": "sha512-gX9sAKOwq4lKdPWeABB7TzKDHdjQXvkUU8NmPJA6mEAVXvm3lhQtFvHDalZstwK8au2LY0LaXTcEtcKYOt3AXQ==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1402.7", - "@angular-devkit/core": "14.2.7", - "@angular-devkit/schematics": "14.2.7", - "@schematics/angular": "14.2.7", + "@angular-devkit/architect": "0.1402.10", + "@angular-devkit/core": "14.2.10", + "@angular-devkit/schematics": "14.2.10", + "@schematics/angular": "14.2.10", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "debug": "4.3.4", @@ -937,9 +1035,9 @@ } }, "node_modules/@angular/common": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.2.8.tgz", - "integrity": "sha512-JSPN2h1EcyWjHWtOzRQmoX48ZacTjLAYwW9ZRmBpYs6Ptw5xZ39ARTJfQNcNnJleqYju2E6BNkGnLpbtWQjNDA==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.2.12.tgz", + "integrity": "sha512-oZunh9wfInFWhNO1P8uoEs/o4u8kerKMhw8GruywKm1TV7gHDP2Fi5WHGjFqq3XYptgBTPCTSEfyLX6Cwq1PUw==", "dependencies": { "tslib": "^2.3.0" }, @@ -947,14 +1045,14 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/core": "14.2.8", + "@angular/core": "14.2.12", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.2.8.tgz", - "integrity": "sha512-lKwp3B4ZKNLgk/25Iyur8bjAwRL20auRoB4EuHrBf+928ftsjYUXTgi+0++DUjPENbpi59k6GcvMCNa6qccvIw==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.2.12.tgz", + "integrity": "sha512-u2MH9+NRwbbFDRNiPWPexed9CnCq9+pGHLuyACSP2uR6Ik68cE6cayeZbIeoEV5vWpda/XsLmJgPJysw7dAZLQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -962,7 +1060,7 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/core": "14.2.8" + "@angular/core": "14.2.12" }, "peerDependenciesMeta": { "@angular/core": { @@ -971,9 +1069,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.2.8.tgz", - "integrity": "sha512-QTftNrAyXOWzKFGY6/i9jh0LB2cOxmykepG4c53wH9LblGvWFztlVOhcoU8tpQSSH8t3EYvGs2r8oUuxcYm5Cw==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.2.12.tgz", + "integrity": "sha512-9Gkb9KFkaQPz8XaS8ZwwTioRZ4ywykdAWyceICEi78/Y9ConYrTX2SbFogzI2dPUZU8a04tMlbqTSmHjVbJftQ==", "dev": true, "dependencies": { "@babel/core": "^7.17.2", @@ -996,14 +1094,14 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/compiler": "14.2.8", + "@angular/compiler": "14.2.12", "typescript": ">=4.6.2 <4.9" } }, "node_modules/@angular/core": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.2.8.tgz", - "integrity": "sha512-cgnII9vJGJDLsfr7KsBfU2l+QQUmQIRIP3ImKhBxicw2IHKCSb2mYwoeLV46jaLyHyUMTLRHKUYUR4XtSPnb8A==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.2.12.tgz", + "integrity": "sha512-sGQxU5u4uawwvJa6jOTmGoisJiQ5HIN/RoBw99CmoqZIVyUSg9IRJJC1KVdH8gbpWBNLkElZv21lwJTL/msWyg==", "dependencies": { "tslib": "^2.3.0" }, @@ -1012,13 +1110,13 @@ }, "peerDependencies": { "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.11.4" + "zone.js": "~0.11.4 || ~0.12.0" } }, "node_modules/@angular/forms": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.2.8.tgz", - "integrity": "sha512-OaL7Gi6STxJza7yn0qgmh6+hV6NVbtGmunpzrn9cR1k5TeE4ZtXu1z7VZesbZ9kZ3F6U9CmygFt0csf7j1d+Ow==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.2.12.tgz", + "integrity": "sha512-7abYlGIT2JnAtutQUlH3fQS6QEpbfftgvsVcZJCyvX0rXL3u2w2vUQkDHJH4YJJp3AHFVCH4/l7R4VcaPnrwvA==", "dependencies": { "tslib": "^2.3.0" }, @@ -1026,31 +1124,31 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/common": "14.2.8", - "@angular/core": "14.2.8", - "@angular/platform-browser": "14.2.8", + "@angular/common": "14.2.12", + "@angular/core": "14.2.12", + "@angular/platform-browser": "14.2.12", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-service": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-14.2.8.tgz", - "integrity": "sha512-XvLmZB2RbawDjJSwU41XoZvmkHGnKTZ4gM6LyNnER2rSaEQVHmADh39UF/hAHeEosHVeau/PKAvwIcxyPW6YxA==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-14.2.12.tgz", + "integrity": "sha512-YmW6simyEVmpDmbYVUhZ2IxSP6pmsWrV120rB9Y21/BeM39WIXA4NCNirVWlAd/KAKY9O7Sbn1nXI6rSDfhopQ==", "dev": true, "engines": { "node": "^14.15.0 || >=16.10.0" } }, "node_modules/@angular/material": { - "version": "14.2.6", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-14.2.6.tgz", - "integrity": "sha512-HykrjDdDoH03oJkV6REW4cx8mVku38LPAagnfJVtqaKsNxG2KtF+LkSlkumeL2cqacFGen/Pf3QV8hxo4FLWhQ==", + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-14.2.7.tgz", + "integrity": "sha512-WXHh8pEStpgkXZJmYOg2cI8BSHkV82ET4XTJCNPdveumaCn1UYnaNzsXD13kw5z+zmy8CufhFEzdXTrv/yt7KQ==", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { "@angular/animations": "^14.0.0 || ^15.0.0", - "@angular/cdk": "14.2.6", + "@angular/cdk": "14.2.7", "@angular/common": "^14.0.0 || ^15.0.0", "@angular/core": "^14.0.0 || ^15.0.0", "@angular/forms": "^14.0.0 || ^15.0.0", @@ -1059,9 +1157,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.2.8.tgz", - "integrity": "sha512-tSASBLXoBE0/Gt6d2nC6BJ1DvbGY5wo2Lb+8WCLSvkfsgVqOh4uRuJ2a0wwjeLFd0ZNmpjG42Ijba4btmCpIjg==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.2.12.tgz", + "integrity": "sha512-vOarWym8ucl1gjYWCzdwyBha+MTvL381mvTTUu8aUx6nVhHFjv4bvpjlZnZgojecqUPyxOwmPLLHvCZPJVHZYg==", "dependencies": { "tslib": "^2.3.0" }, @@ -1069,9 +1167,9 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/animations": "14.2.8", - "@angular/common": "14.2.8", - "@angular/core": "14.2.8" + "@angular/animations": "14.2.12", + "@angular/common": "14.2.12", + "@angular/core": "14.2.12" }, "peerDependenciesMeta": { "@angular/animations": { @@ -1080,9 +1178,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.2.8.tgz", - "integrity": "sha512-CPK8wHnKke8AUKR92XrFuanaKNXDzDm3uVI3DD0NxBo+fLAkiuVaDVIGgO6n6SxQVtwjXJtMXqQuNdzUg4Q9uQ==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.2.12.tgz", + "integrity": "sha512-oZhNJeaBmgw8+KBSYpKz2RYqEDyETC+HJXH8dwIFcP6BqqwL2NE70FdSR7EnOa5c41MEtTmMCGhrJSFR60x5/w==", "dependencies": { "tslib": "^2.3.0" }, @@ -1090,16 +1188,16 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/common": "14.2.8", - "@angular/compiler": "14.2.8", - "@angular/core": "14.2.8", - "@angular/platform-browser": "14.2.8" + "@angular/common": "14.2.12", + "@angular/compiler": "14.2.12", + "@angular/core": "14.2.12", + "@angular/platform-browser": "14.2.12" } }, "node_modules/@angular/platform-server": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-14.2.8.tgz", - "integrity": "sha512-P80uFfTBi4WXRqYzqVQBvNh/FYBUt4fkRMx2byAizBHdwtmLlXLsRgzIXKA0K0dleo6gZ9MsTVqXZ94R8d4ORw==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-14.2.12.tgz", + "integrity": "sha512-RDxNh47Rp0EYrimbzviqhagdbL58Z3S88PDYybYbshFwV+MgWsvWasK/WntTMP/JtRP4FBU0Uiwxy7mgVdxb0g==", "dependencies": { "domino": "^2.1.2", "tslib": "^2.3.0", @@ -1109,18 +1207,18 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/animations": "14.2.8", - "@angular/common": "14.2.8", - "@angular/compiler": "14.2.8", - "@angular/core": "14.2.8", - "@angular/platform-browser": "14.2.8", - "@angular/platform-browser-dynamic": "14.2.8" + "@angular/animations": "14.2.12", + "@angular/common": "14.2.12", + "@angular/compiler": "14.2.12", + "@angular/core": "14.2.12", + "@angular/platform-browser": "14.2.12", + "@angular/platform-browser-dynamic": "14.2.12" } }, "node_modules/@angular/router": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.2.8.tgz", - "integrity": "sha512-rbKLsa4/scPP8AxaDRQfkLqfg8CbZ163dPqHMixou90uK/dx00LjCyUeS38/otdAYNZhrD0i5nu+k65qwhLX8w==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.2.12.tgz", + "integrity": "sha512-r5tVus5RJDNc4U2v0jMtjPiAS1xDsVsJ70lS313DgZmBDHIVZP1cWIehdxwgNlGwQQtAA36eG7toBwqUU3gb/A==", "dependencies": { "tslib": "^2.3.0" }, @@ -1128,16 +1226,16 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/common": "14.2.8", - "@angular/core": "14.2.8", - "@angular/platform-browser": "14.2.8", + "@angular/common": "14.2.12", + "@angular/core": "14.2.12", + "@angular/platform-browser": "14.2.12", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/service-worker": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-14.2.8.tgz", - "integrity": "sha512-9Wm/oPOCQ9vdrUfJcip+Bbyx6u/10JebUs+ZUQVLpfk2k7SfhiqaQU0H38mLdcSaMGrUOhs/bIdrBgHQP1ydyw==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-14.2.12.tgz", + "integrity": "sha512-7aAHb9XfToHQyHoPF9CmZSfsO5vFmKALDmTBWf8i3DCztrZvY+B8PCbfpJkpgFiF7LyF+hGaExI4fa6GmHZv+g==", "dependencies": { "tslib": "^2.3.0" }, @@ -1148,14 +1246,14 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/common": "14.2.8", - "@angular/core": "14.2.8" + "@angular/common": "14.2.12", + "@angular/core": "14.2.12" } }, "node_modules/@angular/youtube-player": { - "version": "14.2.6", - "resolved": "https://registry.npmjs.org/@angular/youtube-player/-/youtube-player-14.2.6.tgz", - "integrity": "sha512-ylmBt1z80xIycOHNME4i4Qyzi3vl71nT1RdNHHQvdtBixVklGAJkUngRH49zh8dMoN+O1KYNMXfwxEZAamZgLQ==", + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular/youtube-player/-/youtube-player-14.2.7.tgz", + "integrity": "sha512-/TtM2QtCIfrhUbrCd79g0jI/BzNMKNmvKR/oKVpAqfH2UZveJOq1YNNJG9Rw+rXE2yIteKNkco8ADU4Sz+32LQ==", "dependencies": { "@types/youtube": "^0.0.42", "tslib": "^2.3.0" @@ -1297,15 +1395,15 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-sdk/abort-controller": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.197.0.tgz", - "integrity": "sha512-ROuuIICJmkF/VxfOjoPgp79PXjqwXU/z2HmXB+gtYPzwPCyMhb8WwclevyxG3E/t5VflYvPv0NDxQMiU0obOqw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.215.0.tgz", + "integrity": "sha512-HTvL542nawhVqe0oC1AJchdcomEOmPivJEzYUT1LqiG3e8ikxMNa2KWSqqLPeKi2t0A/cfQy7wDUyg9+BZhDSQ==", "dependencies": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/chunked-blob-reader": { @@ -1317,572 +1415,612 @@ } }, "node_modules/@aws-sdk/chunked-blob-reader-native": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.188.0.tgz", - "integrity": "sha512-WielYjaAHfT/HAOW7Tj6yVeNdaOtts3aUm9Sf/3D+ElbCTGyaaMNfE4x0a+qn6dJZXewf1eAxybOIU5ftIeSGw==", + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.208.0.tgz", + "integrity": "sha512-JeOZ95PW+fJ6bbuqPySYqLqHk1n4+4ueEEraJsiUrPBV0S1ZtyvOGHcnGztKUjr2PYNaiexmpWuvUve9K12HRA==", "dependencies": { - "@aws-sdk/util-base64-browser": "3.188.0", + "@aws-sdk/util-base64": "3.208.0", "tslib": "^2.3.1" } }, "node_modules/@aws-sdk/client-s3": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.197.0.tgz", - "integrity": "sha512-vyVvCCoDvTIcc7/w++WGp/xY+qCr47Hca7pw9BuIvv7deglNtX2EZu7TQe14F9lRO3EK2q4thKRCy7R5pg3kvw==", + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.216.0.tgz", + "integrity": "sha512-zja00+kLB7Kw8X326ueXvCgMJNF5iuTPrFDUgI+JClk1rjXVMa/T1sOLTgZg9W2pbtOO+3GloxwNGVygXNjt8A==", "dependencies": { "@aws-crypto/sha1-browser": "2.0.0", "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/client-sts": "3.197.0", - "@aws-sdk/config-resolver": "3.197.0", - "@aws-sdk/credential-provider-node": "3.197.0", - "@aws-sdk/eventstream-serde-browser": "3.197.0", - "@aws-sdk/eventstream-serde-config-resolver": "3.197.0", - "@aws-sdk/eventstream-serde-node": "3.197.0", - "@aws-sdk/fetch-http-handler": "3.197.0", - "@aws-sdk/hash-blob-browser": "3.197.0", - "@aws-sdk/hash-node": "3.197.0", - "@aws-sdk/hash-stream-node": "3.197.0", - "@aws-sdk/invalid-dependency": "3.197.0", - "@aws-sdk/md5-js": "3.197.0", - "@aws-sdk/middleware-bucket-endpoint": "3.197.0", - "@aws-sdk/middleware-content-length": "3.197.0", - "@aws-sdk/middleware-endpoint": "3.197.0", - "@aws-sdk/middleware-expect-continue": "3.197.0", - "@aws-sdk/middleware-flexible-checksums": "3.197.0", - "@aws-sdk/middleware-host-header": "3.197.0", - "@aws-sdk/middleware-location-constraint": "3.197.0", - "@aws-sdk/middleware-logger": "3.197.0", - "@aws-sdk/middleware-recursion-detection": "3.197.0", - "@aws-sdk/middleware-retry": "3.197.0", - "@aws-sdk/middleware-sdk-s3": "3.197.0", - "@aws-sdk/middleware-serde": "3.197.0", - "@aws-sdk/middleware-signing": "3.197.0", - "@aws-sdk/middleware-ssec": "3.197.0", - "@aws-sdk/middleware-stack": "3.197.0", - "@aws-sdk/middleware-user-agent": "3.197.0", - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/node-http-handler": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/signature-v4-multi-region": "3.197.0", - "@aws-sdk/smithy-client": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", - "@aws-sdk/util-base64-browser": "3.188.0", - "@aws-sdk/util-base64-node": "3.188.0", + "@aws-sdk/client-sts": "3.216.0", + "@aws-sdk/config-resolver": "3.215.0", + "@aws-sdk/credential-provider-node": "3.216.0", + "@aws-sdk/eventstream-serde-browser": "3.215.0", + "@aws-sdk/eventstream-serde-config-resolver": "3.215.0", + "@aws-sdk/eventstream-serde-node": "3.215.0", + "@aws-sdk/fetch-http-handler": "3.215.0", + "@aws-sdk/hash-blob-browser": "3.215.0", + "@aws-sdk/hash-node": "3.215.0", + "@aws-sdk/hash-stream-node": "3.215.0", + "@aws-sdk/invalid-dependency": "3.215.0", + "@aws-sdk/md5-js": "3.215.0", + "@aws-sdk/middleware-bucket-endpoint": "3.215.0", + "@aws-sdk/middleware-content-length": "3.215.0", + "@aws-sdk/middleware-endpoint": "3.215.0", + "@aws-sdk/middleware-expect-continue": "3.215.0", + "@aws-sdk/middleware-flexible-checksums": "3.215.0", + "@aws-sdk/middleware-host-header": "3.215.0", + "@aws-sdk/middleware-location-constraint": "3.215.0", + "@aws-sdk/middleware-logger": "3.215.0", + "@aws-sdk/middleware-recursion-detection": "3.215.0", + "@aws-sdk/middleware-retry": "3.215.0", + "@aws-sdk/middleware-sdk-s3": "3.215.0", + "@aws-sdk/middleware-serde": "3.215.0", + "@aws-sdk/middleware-signing": "3.215.0", + "@aws-sdk/middleware-ssec": "3.215.0", + "@aws-sdk/middleware-stack": "3.215.0", + "@aws-sdk/middleware-user-agent": "3.215.0", + "@aws-sdk/node-config-provider": "3.215.0", + "@aws-sdk/node-http-handler": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/signature-v4-multi-region": "3.215.0", + "@aws-sdk/smithy-client": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/url-parser": "3.215.0", + "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", - "@aws-sdk/util-body-length-node": "3.188.0", - "@aws-sdk/util-defaults-mode-browser": "3.197.0", - "@aws-sdk/util-defaults-mode-node": "3.197.0", - "@aws-sdk/util-endpoints": "3.197.0", - "@aws-sdk/util-stream-browser": "3.197.0", - "@aws-sdk/util-stream-node": "3.197.0", - "@aws-sdk/util-user-agent-browser": "3.197.0", - "@aws-sdk/util-user-agent-node": "3.197.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.215.0", + "@aws-sdk/util-defaults-mode-node": "3.215.0", + "@aws-sdk/util-endpoints": "3.216.0", + "@aws-sdk/util-stream-browser": "3.215.0", + "@aws-sdk/util-stream-node": "3.215.0", + "@aws-sdk/util-user-agent-browser": "3.215.0", + "@aws-sdk/util-user-agent-node": "3.215.0", "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.188.0", - "@aws-sdk/util-waiter": "3.197.0", - "@aws-sdk/xml-builder": "3.188.0", + "@aws-sdk/util-utf8-node": "3.208.0", + "@aws-sdk/util-waiter": "3.215.0", + "@aws-sdk/xml-builder": "3.201.0", "fast-xml-parser": "4.0.11", "tslib": "^2.3.1" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.197.0.tgz", - "integrity": "sha512-jqH0DrZSVFhv61wPp0fqjfwUuMDbXEE4dq31K342kJlFyzrtt+XvHPUa1BC5ow8wpLkIn+ZZmt372hiGVKzrxw==", + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.216.0.tgz", + "integrity": "sha512-9F7JLx9RXEXovg6V4ylqQtpH+sIqQBMIPIrRSGWiQu65rmQQLskRkUka94JsGsBzq1IQwrnqtsuP3Lb0XtwLRA==", "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.197.0", - "@aws-sdk/fetch-http-handler": "3.197.0", - "@aws-sdk/hash-node": "3.197.0", - "@aws-sdk/invalid-dependency": "3.197.0", - "@aws-sdk/middleware-content-length": "3.197.0", - "@aws-sdk/middleware-endpoint": "3.197.0", - "@aws-sdk/middleware-host-header": "3.197.0", - "@aws-sdk/middleware-logger": "3.197.0", - "@aws-sdk/middleware-recursion-detection": "3.197.0", - "@aws-sdk/middleware-retry": "3.197.0", - "@aws-sdk/middleware-serde": "3.197.0", - "@aws-sdk/middleware-stack": "3.197.0", - "@aws-sdk/middleware-user-agent": "3.197.0", - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/node-http-handler": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/smithy-client": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", - "@aws-sdk/util-base64-browser": "3.188.0", - "@aws-sdk/util-base64-node": "3.188.0", + "@aws-sdk/config-resolver": "3.215.0", + "@aws-sdk/fetch-http-handler": "3.215.0", + "@aws-sdk/hash-node": "3.215.0", + "@aws-sdk/invalid-dependency": "3.215.0", + "@aws-sdk/middleware-content-length": "3.215.0", + "@aws-sdk/middleware-endpoint": "3.215.0", + "@aws-sdk/middleware-host-header": "3.215.0", + "@aws-sdk/middleware-logger": "3.215.0", + "@aws-sdk/middleware-recursion-detection": "3.215.0", + "@aws-sdk/middleware-retry": "3.215.0", + "@aws-sdk/middleware-serde": "3.215.0", + "@aws-sdk/middleware-stack": "3.215.0", + "@aws-sdk/middleware-user-agent": "3.215.0", + "@aws-sdk/node-config-provider": "3.215.0", + "@aws-sdk/node-http-handler": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/smithy-client": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/url-parser": "3.215.0", + "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", - "@aws-sdk/util-body-length-node": "3.188.0", - "@aws-sdk/util-defaults-mode-browser": "3.197.0", - "@aws-sdk/util-defaults-mode-node": "3.197.0", - "@aws-sdk/util-endpoints": "3.197.0", - "@aws-sdk/util-user-agent-browser": "3.197.0", - "@aws-sdk/util-user-agent-node": "3.197.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.215.0", + "@aws-sdk/util-defaults-mode-node": "3.215.0", + "@aws-sdk/util-endpoints": "3.216.0", + "@aws-sdk/util-user-agent-browser": "3.215.0", + "@aws-sdk/util-user-agent-node": "3.215.0", "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.188.0", + "@aws-sdk/util-utf8-node": "3.208.0", "tslib": "^2.3.1" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-sts": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.197.0.tgz", - "integrity": "sha512-ybDqIpY5AsESFhgojlpCN8qJDOfrl7aDmfOOc4MAyhr5au0UlPcq+Vp51sHLvKtWFvdfbAoggcW/mXILtgw+TA==", + "node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.216.0.tgz", + "integrity": "sha512-O8kmM86BHwiSwyNoIe+iHXuSpUE9PBWl3re8u+/igt/w5W5VmMVz+zQr7gRUDQ1FDgLWNEdAJa0r+JFx3pZdzA==", "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.197.0", - "@aws-sdk/credential-provider-node": "3.197.0", - "@aws-sdk/fetch-http-handler": "3.197.0", - "@aws-sdk/hash-node": "3.197.0", - "@aws-sdk/invalid-dependency": "3.197.0", - "@aws-sdk/middleware-content-length": "3.197.0", - "@aws-sdk/middleware-endpoint": "3.197.0", - "@aws-sdk/middleware-host-header": "3.197.0", - "@aws-sdk/middleware-logger": "3.197.0", - "@aws-sdk/middleware-recursion-detection": "3.197.0", - "@aws-sdk/middleware-retry": "3.197.0", - "@aws-sdk/middleware-sdk-sts": "3.197.0", - "@aws-sdk/middleware-serde": "3.197.0", - "@aws-sdk/middleware-signing": "3.197.0", - "@aws-sdk/middleware-stack": "3.197.0", - "@aws-sdk/middleware-user-agent": "3.197.0", - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/node-http-handler": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/smithy-client": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", - "@aws-sdk/util-base64-browser": "3.188.0", - "@aws-sdk/util-base64-node": "3.188.0", + "@aws-sdk/config-resolver": "3.215.0", + "@aws-sdk/fetch-http-handler": "3.215.0", + "@aws-sdk/hash-node": "3.215.0", + "@aws-sdk/invalid-dependency": "3.215.0", + "@aws-sdk/middleware-content-length": "3.215.0", + "@aws-sdk/middleware-endpoint": "3.215.0", + "@aws-sdk/middleware-host-header": "3.215.0", + "@aws-sdk/middleware-logger": "3.215.0", + "@aws-sdk/middleware-recursion-detection": "3.215.0", + "@aws-sdk/middleware-retry": "3.215.0", + "@aws-sdk/middleware-serde": "3.215.0", + "@aws-sdk/middleware-stack": "3.215.0", + "@aws-sdk/middleware-user-agent": "3.215.0", + "@aws-sdk/node-config-provider": "3.215.0", + "@aws-sdk/node-http-handler": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/smithy-client": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/url-parser": "3.215.0", + "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", - "@aws-sdk/util-body-length-node": "3.188.0", - "@aws-sdk/util-defaults-mode-browser": "3.197.0", - "@aws-sdk/util-defaults-mode-node": "3.197.0", - "@aws-sdk/util-endpoints": "3.197.0", - "@aws-sdk/util-user-agent-browser": "3.197.0", - "@aws-sdk/util-user-agent-node": "3.197.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.215.0", + "@aws-sdk/util-defaults-mode-node": "3.215.0", + "@aws-sdk/util-endpoints": "3.216.0", + "@aws-sdk/util-user-agent-browser": "3.215.0", + "@aws-sdk/util-user-agent-node": "3.215.0", "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.188.0", + "@aws-sdk/util-utf8-node": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts": { + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.216.0.tgz", + "integrity": "sha512-8rpMZhZXh1kjsAvQ0WNBMDrnP4XneKkBQtt5XcDEmv/GpULt8jOIJnSIJQxt2gkRfd/I9MUC9C3aZNQoSMxa+g==", + "dependencies": { + "@aws-crypto/sha256-browser": "2.0.0", + "@aws-crypto/sha256-js": "2.0.0", + "@aws-sdk/config-resolver": "3.215.0", + "@aws-sdk/credential-provider-node": "3.216.0", + "@aws-sdk/fetch-http-handler": "3.215.0", + "@aws-sdk/hash-node": "3.215.0", + "@aws-sdk/invalid-dependency": "3.215.0", + "@aws-sdk/middleware-content-length": "3.215.0", + "@aws-sdk/middleware-endpoint": "3.215.0", + "@aws-sdk/middleware-host-header": "3.215.0", + "@aws-sdk/middleware-logger": "3.215.0", + "@aws-sdk/middleware-recursion-detection": "3.215.0", + "@aws-sdk/middleware-retry": "3.215.0", + "@aws-sdk/middleware-sdk-sts": "3.215.0", + "@aws-sdk/middleware-serde": "3.215.0", + "@aws-sdk/middleware-signing": "3.215.0", + "@aws-sdk/middleware-stack": "3.215.0", + "@aws-sdk/middleware-user-agent": "3.215.0", + "@aws-sdk/node-config-provider": "3.215.0", + "@aws-sdk/node-http-handler": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/smithy-client": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/url-parser": "3.215.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-body-length-browser": "3.188.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.215.0", + "@aws-sdk/util-defaults-mode-node": "3.215.0", + "@aws-sdk/util-endpoints": "3.216.0", + "@aws-sdk/util-user-agent-browser": "3.215.0", + "@aws-sdk/util-user-agent-node": "3.215.0", + "@aws-sdk/util-utf8-browser": "3.188.0", + "@aws-sdk/util-utf8-node": "3.208.0", "fast-xml-parser": "4.0.11", "tslib": "^2.3.1" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/config-resolver": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.197.0.tgz", - "integrity": "sha512-G7SfNvS4MlADPt06Yb2FV+uHUt3eli17atuzoHjtFGtNzHvoZzTrulJfKxni1F5gswREyYBLMT4kbNxVwLOpqg==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.215.0.tgz", + "integrity": "sha512-DxX4R+YYLQOtg0qfceKBrjVD4t1mQBG1eb7IVr2QSlckFCX8ztUNymFMuaSEo3938Jyy/NpgfUDpFqPDaSKnng==", "dependencies": { - "@aws-sdk/signature-v4": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-config-provider": "3.188.0", - "@aws-sdk/util-middleware": "3.197.0", + "@aws-sdk/signature-v4": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-config-provider": "3.208.0", + "@aws-sdk/util-middleware": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.197.0.tgz", - "integrity": "sha512-Y1B8A9I78/5OPo7TKwAZCP0CvEi2Q2tXF7fr0Yl6iUOr57WY/QhKz54CsnhwYFL1DFQx62wNHvvWmOopcO6Urg==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.215.0.tgz", + "integrity": "sha512-n5G7I7Pxfsn81+tNsSOzspKp9SYai78oRfImsfFY4JLTcWutv7szMgFUbtEzBfUUINHpOxLiO2Lk5yu5K1C7IQ==", "dependencies": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/credential-provider-imds": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.197.0.tgz", - "integrity": "sha512-DiNwnOolX61Kk5gUoP/yxX1JkPeX1EeT73OKJPYFwe5tHN9Mc/at5TYcbG8qVrvMfNkem314wiZHSOt6EdJZBA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.215.0.tgz", + "integrity": "sha512-/4FUUR6u9gkNfxB6mEwBr0kk0myIkrDcXbAocWN3fPd/t7otzxpx/JqPZXgM6kcVP7M4T/QT75l1E1RRHLWCCQ==", "dependencies": { - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", + "@aws-sdk/node-config-provider": "3.215.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/url-parser": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.197.0.tgz", - "integrity": "sha512-ngH6vivhi0ss4NdnYLDZiZboCPzEupL94AgTrzIuZVbN8DXcYB7BzccGjNCY196RXeL+UQJqH7Z71DXyOM95cA==", + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.216.0.tgz", + "integrity": "sha512-tSfrhgRO/l83Ou6WSOE4HauTLbDCOLMo/23Q6oGO8cs/d874J5rE4UM7a9OzE3QdM3eVbdAP7kXUgUS6i71cUw==", "dependencies": { - "@aws-sdk/credential-provider-env": "3.197.0", - "@aws-sdk/credential-provider-imds": "3.197.0", - "@aws-sdk/credential-provider-sso": "3.197.0", - "@aws-sdk/credential-provider-web-identity": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/credential-provider-env": "3.215.0", + "@aws-sdk/credential-provider-imds": "3.215.0", + "@aws-sdk/credential-provider-sso": "3.216.0", + "@aws-sdk/credential-provider-web-identity": "3.215.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/shared-ini-file-loader": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.197.0.tgz", - "integrity": "sha512-0vHkgsmrE8p3M0VqHUbq/WSR5a1wuqPggVEiYz8K6HYiKy3hXhmcGBnU923Fv9ZRVWat2QodYNe2HM7FRXcRpw==", + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.216.0.tgz", + "integrity": "sha512-Tumt53phB454DTkNB7a1tyCfrkA4JUGHzNLya14VLResGIGW5Re64atahUcO/WS7aTEs5vfAhBXO+p9o4K1rhQ==", "dependencies": { - "@aws-sdk/credential-provider-env": "3.197.0", - "@aws-sdk/credential-provider-imds": "3.197.0", - "@aws-sdk/credential-provider-ini": "3.197.0", - "@aws-sdk/credential-provider-process": "3.197.0", - "@aws-sdk/credential-provider-sso": "3.197.0", - "@aws-sdk/credential-provider-web-identity": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/credential-provider-env": "3.215.0", + "@aws-sdk/credential-provider-imds": "3.215.0", + "@aws-sdk/credential-provider-ini": "3.216.0", + "@aws-sdk/credential-provider-process": "3.215.0", + "@aws-sdk/credential-provider-sso": "3.216.0", + "@aws-sdk/credential-provider-web-identity": "3.215.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/shared-ini-file-loader": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.197.0.tgz", - "integrity": "sha512-tyKztm3ylza2i7wAaTwGTQTXG5rJgsglIunNsbC9CEsylGwf7PgQrFFlDYtOAprUTqFSkIaVa4D0nKVFtgkGAA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.215.0.tgz", + "integrity": "sha512-JNvj4L5B7W8byoFdfn/8Y4scoPiwCi+Ha/fRsFCrdSC7C+snDuxM/oQj33HI8DpKY1cjuigzEnpnxiNWaA09EA==", "dependencies": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/shared-ini-file-loader": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.197.0.tgz", - "integrity": "sha512-do6fcurJTJ+SOD7zCwyFmiqM1ix8W9QiEgAyQsf9kKoHxnfWQGNgTsmF0PxtaGE8NZMRg8G+F4JUYbfY7UfcNQ==", + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.216.0.tgz", + "integrity": "sha512-1Cag6AUPU4wkeMnZDJvcXXJgwrlrIxbTcRsresJYBFvs1vGJGcTbjtWV0K6fiBRP66GtvuOL9WzQ/eqRf2J7Ag==", "dependencies": { - "@aws-sdk/client-sso": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/client-sso": "3.216.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/shared-ini-file-loader": "3.215.0", + "@aws-sdk/token-providers": "3.216.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.197.0.tgz", - "integrity": "sha512-ls91XURhYKAbF5T1wDjSpTZuRdoW7PPwtAUjHBKzfXee4F7KhrLPSgxTBvHI81vG8b2J2VRbb/0kXtisdF7TAQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.215.0.tgz", + "integrity": "sha512-AWaDDEE3VU1HeLrXvyUrkQ6Wb3PQij5bvvrMil9L0da3b1yrcpoDanQQy7wBFBXcZIVmcmSFe5MMA/nyh2Le4g==", "dependencies": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/eventstream-codec": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-codec/-/eventstream-codec-3.197.0.tgz", - "integrity": "sha512-JYhajhfadjfBBIXqeKdVaHaJoY3tqyysG/m8InuUL7MecXHn4u+niSzz6x3OW2LpMP0JGVJVdcHUboeh+7Pl5g==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-codec/-/eventstream-codec-3.215.0.tgz", + "integrity": "sha512-Uwgkq6ViQnfd1l+qhWPGdzxh+YhD1N6RYL0kEcp1ovsR+rC/0qUsM9VZrSckZn4jB+0ATqIoOXtcUYP4+xrNmg==", "dependencies": { "@aws-crypto/crc32": "2.0.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-hex-encoding": "3.188.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-hex-encoding": "3.201.0", "tslib": "^2.3.1" } }, "node_modules/@aws-sdk/eventstream-serde-browser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.197.0.tgz", - "integrity": "sha512-Sj1/AgRjljR5rla0zmh4gQHkeTWxkgpCaW+ess7adCVcgBFkj/UL4y64Kc0Jipnrc5EWJ3eQJu3V5cM+tg7r6w==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.215.0.tgz", + "integrity": "sha512-VfTl69/C/cOjm47blgvdBz2pw8//6qkLPvQetfDOgf40JvsjBp9afUDNiKV08ulzoUeVZBosgHs09oZ2VDj09Q==", "dependencies": { - "@aws-sdk/eventstream-serde-universal": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/eventstream-serde-universal": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/eventstream-serde-config-resolver": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.197.0.tgz", - "integrity": "sha512-PjW5IvK1vi9NnsY2qEwU5CGvpeTR9awPdQuwupFJpLAIGFKpKXQ7Loh+PHHe52yA4LxcRs2b1TL6oDxK48yWzQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.215.0.tgz", + "integrity": "sha512-NrVb8HA0tUsruAj8yVWTaRIfcAB9lsajzksCqS7W917x/esoIRwoeF2zua63Ivro7hLeCjzS2Mws5IhvSl+/tQ==", "dependencies": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/eventstream-serde-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.197.0.tgz", - "integrity": "sha512-WSrGq7plnokRbtSoiuq/7w7eZyIVRBrNxIthw42ZJjJmHcUGV7aVw7R1ydkHp4Vhtc/VU4gaoBzYvNDSMSF99g==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.215.0.tgz", + "integrity": "sha512-DxABFUIpmFV1NOfwF8FtX+l7kzmMTTJf2BfXvGoYemmBtv9Cc31Qg83ouD8xuNSx9qlbFOgpWaNpzEZ400porA==", "dependencies": { - "@aws-sdk/eventstream-serde-universal": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/eventstream-serde-universal": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/eventstream-serde-universal": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.197.0.tgz", - "integrity": "sha512-zQmrWtaJeNjrjskZbH3Lv+JkBg9LHR9s9BT4hE2w90bvLQhdyFuzR7OfxWSGbIRYFquxT31r0BYNwx3QgqIxAQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.215.0.tgz", + "integrity": "sha512-8DmY3vVZtXAKzW0wOSC0bN+WF8qNZKaCqe5JCM3WwS1Wu6F6qI7b064VSe5b3d9BbJzeMccOcJeCg3ZU/3nYUQ==", "dependencies": { - "@aws-sdk/eventstream-codec": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/eventstream-codec": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/fetch-http-handler": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.197.0.tgz", - "integrity": "sha512-Ztp71HP/qeG/6AwQDRq49cUlc4UTLAUuAZ7ivcrDaTV/T8HaNtnEde00RnT9MVr3OZCou3I1H37qRwas5+wOVQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.215.0.tgz", + "integrity": "sha512-JfZyrJOE+0ik1PumsIUZd0NfgEx4sZ43VSdPCD9GRhssRWudNsSF1B5fz3xA5v+1y5oQPjXZyaWCzKtnYruiWw==", "dependencies": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/querystring-builder": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-base64-browser": "3.188.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/querystring-builder": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-base64": "3.208.0", "tslib": "^2.3.1" } }, "node_modules/@aws-sdk/hash-blob-browser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.197.0.tgz", - "integrity": "sha512-3NZKhcFRlZPdwx9WmSMKutrtKGpGuFxFQq/j1usFoaFylEEcUaO2nz0jPqIaqRabRyjQHdHtzx8hObLVbwhJ5g==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.215.0.tgz", + "integrity": "sha512-plHPFOSEHig0g/ou1H4QW31AyPGzwR0qgUKIEUFf3lWIfBI3BnvA4t24cJ87I204oqENj/+ZSNAj5qeAZfMFXw==", "dependencies": { "@aws-sdk/chunked-blob-reader": "3.188.0", - "@aws-sdk/chunked-blob-reader-native": "3.188.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/chunked-blob-reader-native": "3.208.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "node_modules/@aws-sdk/hash-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.197.0.tgz", - "integrity": "sha512-NCXDY9IsTDNKPjJBY2yMmpM1GMfc5zcNxTInFeMpIhOjz3yYf6UqrYLtgqdzvTjgZlXhuFneBweqpfWo77KFbg==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.215.0.tgz", + "integrity": "sha512-MkSRuZvo1RCRmI0VNEmRYCGGD/DkMd9lqnLtOyglMPnSX1mhyD4/DyXmcc3rYa7PsjDRAfykGWJRiMqpoMLjiQ==", "dependencies": { - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-buffer-from": "3.188.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/hash-stream-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.197.0.tgz", - "integrity": "sha512-lcj1y7te8NI8Byn1C5P4XgJHEtCRjEfT65gHsxW6NgSBzay2NjU42Z15n5gL00SZAXUeSYSwz012Xjse1Fcxcw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.215.0.tgz", + "integrity": "sha512-1VEpiXu0jH7bSRYfEeSrznYq41zpUV4TtStoBXdcEVaOqT4LNQ5k1g1602544UWKUJ7D+E9NCNXpjM6TSMmG4A==", "dependencies": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/invalid-dependency": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.197.0.tgz", - "integrity": "sha512-C5yz97yskupjLkj1zKefPzLjPuhV3Ci27zNfQkI1XcjnYyrOJm5bNuR6DUuMEd7flgjOvWL//5L0hmW/sF7vNg==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.215.0.tgz", + "integrity": "sha512-++bK4BUQe8/CL/YcLZcQB8qPOhiXxhbuhYzfFS7PNVvW1QOLqKRZL/lKs24gzjcOmw7IhAbCybDZwvu2TM4DAg==", "dependencies": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "node_modules/@aws-sdk/is-array-buffer": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.188.0.tgz", - "integrity": "sha512-n69N4zJZCNd87Rf4NzufPzhactUeM877Y0Tp/F3KiHqGeTnVjYUa4Lv1vLBjqtfjYb2HWT3NKlYn5yzrhaEwiQ==", + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz", + "integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==", "dependencies": { "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/md5-js": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.197.0.tgz", - "integrity": "sha512-SGH0SAO46utojYcD9xbeIQYIJQz9UGKYMeexkm2xYvkaWvtAkse2LPCQr1vvD3iZId6ZTru/39EF2FVqyJit2w==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.215.0.tgz", + "integrity": "sha512-2f5r2raNDG9USKHKRgAW2r1MzCrkemLASlDXASgAuAD3gYGURVi4ZDhI3I1GECY5dPEgGC+3B2rkEb9MfQAaEg==", "dependencies": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.188.0", + "@aws-sdk/util-utf8-node": "3.208.0", "tslib": "^2.3.1" } }, "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.197.0.tgz", - "integrity": "sha512-RZG2KV0AMX7nAr/uCYfJefyfWvS4SgarcRbWjwlL4QdLespfVRXWtMzr2dRt8gLxg6EFA06A22YMKg3ZCPGDXw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.215.0.tgz", + "integrity": "sha512-zMeYrnHX8S9VFDPH3fryXdPXW1DWeX9URKAkU1oxZLGpBX91CsWzUDjaMhbkDgvwO2oeKgjnZ2vCwcNNKP266w==", "dependencies": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-arn-parser": "3.188.0", - "@aws-sdk/util-config-provider": "3.188.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-arn-parser": "3.208.0", + "@aws-sdk/util-config-provider": "3.208.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/middleware-content-length": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.197.0.tgz", - "integrity": "sha512-Qvy92+YObZdAR7Qza4dT3yzSe4NfCbPGzw4kvmsUttP/z2cm5knqNk6FUIAvaXhRh3nTnrebGGwxQjbphYNYCQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.215.0.tgz", + "integrity": "sha512-zKJRb6jDLFl9nl/muSFbiQHA4uK3skinuDRcyLbpMvvzhuK/PVodv9QI1+wIUsFdXkaSxAlva1oG4bL8ZFi+sQ==", "dependencies": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/middleware-endpoint": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.197.0.tgz", - "integrity": "sha512-o6Uc3KoqfPn4xhwVaLO5IDOKw0mvQeQSqzS3hgGgq9uT8yLoDhs8y40cLNWCThYBBVueuXKh71QSUF7FO+X05g==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.215.0.tgz", + "integrity": "sha512-W0QXL5emcN9IXtMbnWT/abLxBFH2tGIfnre2jPNmZ9M7uVFxUwwv5OTUXxNLGNehJHKhiJPwhfQvMy20IDzVcw==", "dependencies": { - "@aws-sdk/middleware-serde": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/signature-v4": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", - "@aws-sdk/util-config-provider": "3.188.0", - "@aws-sdk/util-middleware": "3.197.0", + "@aws-sdk/middleware-serde": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/signature-v4": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/url-parser": "3.215.0", + "@aws-sdk/util-config-provider": "3.208.0", + "@aws-sdk/util-middleware": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.197.0.tgz", - "integrity": "sha512-6EtgTlpFj+QURCnM3WvEDvtiTwh3NZpJNip1CqzB+8luJxOw50/lh0uogDwrdEZG1jKfh3htIoTfqtaxFCJlfA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.215.0.tgz", + "integrity": "sha512-X2G7MnBSYPPmLqqd9xDGl2ik9dUsGYcYzulf2Z1HVEGJO6btZJtPfC+IIwuJjsiCWCgbypM1X/oOSxdrmRkUNQ==", "dependencies": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.197.0.tgz", - "integrity": "sha512-tPwGf4ZADhQptZ7QvxXo4t9WbFFIuWHv1EnTzR/g3ANUvHhlIxWYV38HWvU2rYCVXEkY7pHEwM8yUpALoqNx1Q==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.215.0.tgz", + "integrity": "sha512-fAFcR+QsrGPCgYssdTYmayoCXDKYzlv0a14jaJtZsacXQNGefXly9D856lri+yG2jxqQ6Sa0FzU4Pm7s3j4mvg==", "dependencies": { "@aws-crypto/crc32": "2.0.0", "@aws-crypto/crc32c": "2.0.0", - "@aws-sdk/is-array-buffer": "3.188.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/is-array-buffer": "3.201.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.197.0.tgz", - "integrity": "sha512-Haa5uP0l2IqMOCzIvPp4oDMAo8lBZUKhCp6Ck4ERJ33rHW669dTF6C2xQaevnVYPoL8D4S7mgyEpCFgvFf+CHQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.215.0.tgz", + "integrity": "sha512-GOqI7VwoENZwn+6tIMrrJ4SipIqL2JCh+BNvORVcy7CQxn1ViKkna7iaCx+QMjpg/kn9cR6kfY0n1FmgZR1w9A==", "dependencies": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.197.0.tgz", - "integrity": "sha512-QjSBlHfvbGD8o/x9JxI5Jzo1OBBBlrwTm0IRkxEbEddLX/O9NxIe/EIhvIE1TVlLpTz7+qZK9ykvIjtm4S8K3w==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.215.0.tgz", + "integrity": "sha512-taDOIGv2rsAyDEJxSm/nhKS4nsBPUKKCvIpK26E7uGshQZFLtTLTJMp8zGb1IBfUSxRngdWljRmOS5AJUexNbQ==", "dependencies": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.197.0.tgz", - "integrity": "sha512-AdMB5eNHLpUphtwbVNPLMQzZFFht3N/QbblHtMzchzVvgvjVhiZoS4cVxIzNSpSibMPfZr8ysnPN2bhHcCc1iw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.215.0.tgz", + "integrity": "sha512-0h4GGF0rV3jnY3jxmcAWsOdqHCYf25s0biSjmgTei+l/5S+geOGrovRPCNep0LLg0i9D8bkZsXISojilETbf+g==", "dependencies": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.197.0.tgz", - "integrity": "sha512-nPi2iRnqkq0eRYitwFSZfdRrhrHe79Hjq/Iaf9jGSFBs5IJalKl+ximQ28HJrxjQfsp4NWpntAxhol1vpqI1UQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.215.0.tgz", + "integrity": "sha512-KQ+kiEsaluM4i6opjusUukxY78+UhfR7vzXHDkzZK/GplQ1hY0B+rwVO1eaULmlnmf3FK+Wd6lwrPV7xS2W+EA==", "dependencies": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/middleware-retry": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.197.0.tgz", - "integrity": "sha512-mEWVL5n/zeF+2MhvT4ROn+5tG3rOX4GJc0aZBz8aUJAqU0Zn6euA1z75XoYXxA6E2zrq20adcWOLxmAvtoHOlg==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.215.0.tgz", + "integrity": "sha512-I/dnUPVg2Kp3lW+MywBoPp06EOng8IfuaS9ph4bcJpQKrhNU5ekRgCHH2C4k1A6GcP8uyHxQ5TVV6j+l0QPIsA==", "dependencies": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/service-error-classification": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-middleware": "3.197.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/service-error-classification": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-middleware": "3.215.0", "tslib": "^2.3.1", "uuid": "^8.3.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/middleware-retry/node_modules/uuid": { @@ -1894,246 +2032,246 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.197.0.tgz", - "integrity": "sha512-M99wM6H/3pMKAgZMyWoJTVfFJPPOVE2wWk2Scp+UfegZeeNTGJ5U8/RZx7hplawySqvdveBNff4vlzCUiWVg5A==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.215.0.tgz", + "integrity": "sha512-+SM+xCIFNSFIKM9KyvgIu4Ah5Z/SbHS8mDkinHkY8X/iUryrsKKBs7xnpMAaJCTFkK/8gO6Lhdda1nbvGozhdA==", "dependencies": { - "@aws-sdk/middleware-bucket-endpoint": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-arn-parser": "3.188.0", + "@aws-sdk/middleware-bucket-endpoint": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-arn-parser": "3.208.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.197.0.tgz", - "integrity": "sha512-hon/cQhC/SP0QEA+hLM53rPchGxy9n1nX6/VCyflj6iPaY/OYV6HmbuktmrrISSm5tf4LnXNrUjA9XaeT1DGPA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.215.0.tgz", + "integrity": "sha512-wJRxoDf+2egbRgochaQL8+zzADx8FM/2W0spKNj8x+t/3iqw70QwxCfuEKW/uFQ3ph6eaIrv7gYc8RRjwhD8rg==", "dependencies": { - "@aws-sdk/middleware-signing": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/signature-v4": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/middleware-signing": "3.215.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/signature-v4": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/middleware-serde": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.197.0.tgz", - "integrity": "sha512-UzQmQrR5QakldkBCKSGl3ei+VM9GFBO0OTL08VYHmU5wuQTOJcBnZ+8qa+lUf2BzLdTTlliR0NfUlr9r1XDx+w==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.215.0.tgz", + "integrity": "sha512-+uhLXdKvvQZcRRFc3UmemSr/YUHA4Jc+1YMjHxc3v8vvfztFJBb0wgBx999myOi8PmkYThlRBQDzXy9UCIhIJw==", "dependencies": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/middleware-signing": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.197.0.tgz", - "integrity": "sha512-PHdtbV92lUtqtuYcMYfYXknh2Lsv6KHeYvy1MZaJouahgJ2urpPsuWlQHjcjEA2dYDpSetjCAtDQvnke0siSTA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.215.0.tgz", + "integrity": "sha512-3BqzYqkmdPeOxjI8DVQE7Bm7J5QIvDy30abglXqrDg6npw6KonKI2Q3FIPFf+oLpZTMStwkoQOnwXHTPrSZ6Tg==", "dependencies": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/signature-v4": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-middleware": "3.197.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/signature-v4": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-middleware": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.197.0.tgz", - "integrity": "sha512-6ms0h78PhmWPaxSLaHYvZDb4JkmTQ1AGtQEk7ymhCse7TDpS9cpoo/MNU5wWPj0HX1JHSNce39S0ot2oSjYIBA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.215.0.tgz", + "integrity": "sha512-iIiB2fGneR8iZN2tgQoACq1jQlG50zU49cus/jAAKjy6B7QeKXy5Ld8/+eNnzcjLuBzzeLtER2YWwFLWqUOZpw==", "dependencies": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/middleware-stack": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.197.0.tgz", - "integrity": "sha512-+5mDVmoTrFgglTygOwi/6nXv127d9ipite+BeIo18kmkY1JV5uld8ccErXJIcP7vrxsxNt4rt/bUenrL/sDpZg==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.215.0.tgz", + "integrity": "sha512-rdSVL7LxRgjlvoluqwODD4ypBy2k/YVl6FrDplyCMSi8m2WHZG99FzdmR9bpnWK+0DGzYZSMRYx6ynJ9N9PsSw==", "dependencies": { "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.197.0.tgz", - "integrity": "sha512-slEmyYlctQmQWkltfMH02cj6z5NWlCodLQQVGdinFzy+jPhfCLtcwxAfFhT+dGLc9/UtVXqtn+OfqkIoUBs+fw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.215.0.tgz", + "integrity": "sha512-X6GfoMNoEITTw7rGL/gWs8UZ0cmmmezvKcl+KtHsA642R05OR4mY5G7LdbWAw0bcrwKsuKOGmwUrC9lzGqbWUw==", "dependencies": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/node-config-provider": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.197.0.tgz", - "integrity": "sha512-gDlha5uTEvacrhLnwKDo2nzfPE1CQpoU+eNUJF7JEfoUv69GGS/23C6Lo1PueWI5UtdkqBP12aY8woKRjwjQfA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.215.0.tgz", + "integrity": "sha512-notckD94QwwxC0GsfpTxB7VH8SREIIlMsUSddqGtpModa0cq/wRb9rqnydZSoznbYpK1ND6h0C9hr/2PNz89zw==", "dependencies": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/shared-ini-file-loader": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/node-http-handler": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.197.0.tgz", - "integrity": "sha512-ZkXqafE0KgOlUdXuFos2VAMoSniGARBGubWkfTnKV8Ky4npXRHNV293dOpxH4KUy38siRIQruv0b+sDU5wxeFw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.215.0.tgz", + "integrity": "sha512-btKWSR7m0UuWIN3p5MfSIvhqeYik7xri7U6nWuVI5GVzIYjzxEZOMvPAinDLDxL5wipodi0ZvTUNdDJdm7BcGQ==", "dependencies": { - "@aws-sdk/abort-controller": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/querystring-builder": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/abort-controller": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/querystring-builder": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/property-provider": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.197.0.tgz", - "integrity": "sha512-5kLErMu1ELZTwU2oQtJSE6fhaPMRODp9uidUMRvozJLuCqmijygXVb+7adFnX1X/pl5Wv9mi7GkiOncWvjDKjA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.215.0.tgz", + "integrity": "sha512-dDPjMCCopkRURAmOJCMSlpIQ5BGWCpYj0+FIfZ5qWQs24fn1PAkQHecOiBhJO0ZSVuQy3xcIyWsAp1NE5e+7ug==", "dependencies": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/protocol-http": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.197.0.tgz", - "integrity": "sha512-fKM7GDTQigDnjRlEHu8L2oZRcgTitSgdAHovJ/wu9131H+nM9gbiqvKh4CXToygqA1NUMYoJDUpZTv1LGMwsDQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.215.0.tgz", + "integrity": "sha512-qp6Y6v4S534LAjadiVl9p7ErK7ImphOKq6yhFyQwxko6iITLcz8ib3yU27fs4QJcnNj5ZooqW/YlL/0EikDxCQ==", "dependencies": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/querystring-builder": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.197.0.tgz", - "integrity": "sha512-+t4oit2tpCD9hJQtKFEOgL+9hPtXJbkCNxLwnNgu9Vr0wr1T0orso825Dbaxh8VM39mnDOaId+zQ9wZJPpXkHA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.215.0.tgz", + "integrity": "sha512-eilk8CqG37BVhQklLif00K2dOJgDzacUi8h3KVQ72ry1V3h345i4HsmaFIxvnz8XtNyDvV8qFAzeYg9n2P9RQA==", "dependencies": { - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-uri-escape": "3.188.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-uri-escape": "3.201.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/querystring-parser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.197.0.tgz", - "integrity": "sha512-FluJGKzNmXBZ6/yJFlsZQ+xrpnVcg7dK/cWR3vZo/jCB0muw3QpbEMCdC7/frh0C+0zHfClbYh0TbmEuS21XTw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.215.0.tgz", + "integrity": "sha512-8h/9H8dWM4fZO27UGzo8W5JXln4yJMugPyUl4qFA437gzPgNFN95+oLJWXtHMlfCHC5T/PDKetY9TarMDgBD0Q==", "dependencies": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/s3-request-presigner": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.197.0.tgz", - "integrity": "sha512-r07RXjc9S4ya/1x7HEPNZKqX81sVQp4YVfo+9yQk79qHTFVWM0IcUXXQdvVjn9YvF3iy6rKtM0ZgSxv3FjkKQg==", + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.216.0.tgz", + "integrity": "sha512-JK7W/F3yFh0Bm585mBBTqYdkGPDelDT8OO6vv/NwzjxHkqfN3MTc1/sGPWd0XqJ4EHnscck+rq4jYHyYcem7mQ==", "dependencies": { - "@aws-sdk/middleware-endpoint": "3.197.0", - "@aws-sdk/middleware-sdk-s3": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/signature-v4-multi-region": "3.197.0", - "@aws-sdk/smithy-client": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-create-request": "3.197.0", - "@aws-sdk/util-format-url": "3.197.0", + "@aws-sdk/middleware-endpoint": "3.215.0", + "@aws-sdk/middleware-sdk-s3": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/signature-v4-multi-region": "3.215.0", + "@aws-sdk/smithy-client": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-create-request": "3.215.0", + "@aws-sdk/util-format-url": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/service-error-classification": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.197.0.tgz", - "integrity": "sha512-ok1Nw5plwlTKPkyMVRJI+SVWjiitjfVveiV6zEIN87RXKPjlzQGIuHXFkDChsHT5P2TueHwzPG8lnpGBlHqBBw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.215.0.tgz", + "integrity": "sha512-SKBvClGFGzMPsjBBKjneaUazLCNr6bSxe9eFvOr3gCwuwE2jPQwW3VE1mb62howuvm6cLthEDwLQp/FsT1gMsw==", "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/shared-ini-file-loader": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.197.0.tgz", - "integrity": "sha512-dVgGmieJLgnw+OZdGxuifAc/I1zJm/W4Ixf2zowV66KisCScqpJJGhtSylBoTqE4ssWUH804TJHy0fFOxD2GAQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.215.0.tgz", + "integrity": "sha512-unzQeLOyUiYHr8WxxandHo0OaCj31gx0wpt8dn2cZcHm/MdCqHcHcsQqOVnQsWQrrxY/XZ27cPyMVQeicNKYwQ==", "dependencies": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/signature-v4": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.197.0.tgz", - "integrity": "sha512-8eTw9PeW4146WDGqXUxpFwB4neuW/GYbjJxdjDN29Ec6rThazADHZyKwYOBn/wGUUiiqeBL37deRsBk6x2FgRw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.215.0.tgz", + "integrity": "sha512-Rc73uUCi3eJneO25DydLTfJYamXeuKS9YIhNMTKlpvcN1UQAmAnUbAmCuEmqvkYOiGD1i4/kd8kBga708iIikQ==", "dependencies": { - "@aws-sdk/is-array-buffer": "3.188.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-hex-encoding": "3.188.0", - "@aws-sdk/util-middleware": "3.197.0", - "@aws-sdk/util-uri-escape": "3.188.0", + "@aws-sdk/is-array-buffer": "3.201.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-hex-encoding": "3.201.0", + "@aws-sdk/util-middleware": "3.215.0", + "@aws-sdk/util-uri-escape": "3.201.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.197.0.tgz", - "integrity": "sha512-MkDKSrRXN2q6S1NGS0fH2NcUxGR5WV62657yQKwZw14BQuD0YtUQ5W39UZGY0Tn8cePMYD+NVqNJg1ndtW7oMQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.215.0.tgz", + "integrity": "sha512-XOUUNWs6I4vAa+Byj6qL/+DCWA5CjcRyA9sitYy8sNqhLcet8WoYf7vJL2LW1nvdzRb/pGBNWLiQOZ+9sadYeg==", "dependencies": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/signature-v4": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-arn-parser": "3.188.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/signature-v4": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-arn-parser": "3.208.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" }, "peerDependencies": { "@aws-sdk/signature-v4-crt": "^3.118.0" @@ -2145,65 +2283,72 @@ } }, "node_modules/@aws-sdk/smithy-client": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.197.0.tgz", - "integrity": "sha512-8E+OhE/WzC/SGQxtSDc88i5PDxGNCYrrtJRSYJ5JoPSgQ6qPMMizGVbK54ZffridC1Y+Bud2+dntkbRL8NNddQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.215.0.tgz", + "integrity": "sha512-PiZfCdZkPohzMPrRmJ46TPOf2Tr/dhKYdwQArRnOOIsJABUGXjlzCUE8vysDN35XZYRx5f9hd+/U7kayhniq2w==", "dependencies": { - "@aws-sdk/middleware-stack": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/middleware-stack": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/token-providers": { + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.216.0.tgz", + "integrity": "sha512-cEmOfG7njWl0OA5lR65Sp2SW1i8ZLjf7C95TZ1e6t2Oo5aUFeN3aKBxMOV//1yc+BNzcFBnoHP/f29GhWxUOxA==", + "dependencies": { + "@aws-sdk/client-sso-oidc": "3.216.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/shared-ini-file-loader": "3.215.0", + "@aws-sdk/types": "3.215.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/types": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.197.0.tgz", - "integrity": "sha512-ZM6s4AIWLWeKiuigPCSbSSBn9i7s1o+/U/dRpLax3bSpH7E6PU5hEnIXEzWsIXWU1/8bmTttY8qmYEx3RCmbpw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.215.0.tgz", + "integrity": "sha512-eRbCVjwzTYd9C5e2mceScJ6D2kYDDEC3PLkYfJa+1wH9iiF2JlbiYozAokyeYBHQ+AjmD93MK58RBoM8iZfH0Q==", "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/url-parser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.197.0.tgz", - "integrity": "sha512-+ffKdbdEKOja1sjIeLR+IUYx3YgRJ+wnlkXj/8kPt1iGog8RZjoINdz3VYaojtA9GfoTw0pFwehxmLJ+UVBfXQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.215.0.tgz", + "integrity": "sha512-r/qIk3TUlV36JvoRjTErFm0LzzgNKLB1YUG8zVZCGAc2TEATi8OVEmsZvi+KfTmsbszulITJVcjZKbHLbGoUzg==", "dependencies": { - "@aws-sdk/querystring-parser": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/querystring-parser": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "node_modules/@aws-sdk/util-arn-parser": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.188.0.tgz", - "integrity": "sha512-q4nZzt/g3sRY9a3sj1PaNFwql5bXfKSW4fRy0zLdbZHcYdgq2oQfVsJTIlL9lUNjifkXiIsmk61Q16JExtrLyw==", + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.208.0.tgz", + "integrity": "sha512-QV4af+kscova9dv4VuHOgH8wEr/IIYHDGcnyVtkUEqahCejWr1Kuk+SBK0xMwnZY5LSycOtQ8aeqHOn9qOjZtA==", "dependencies": { "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/util-base64-browser": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.188.0.tgz", - "integrity": "sha512-qlH+5NZBLiyKziL335BEPedYxX6j+p7KFRWXvDQox9S+s+gLCayednpK+fteOhBenCcR9fUZOVuAPScy1I8qCg==", + "node_modules/@aws-sdk/util-base64": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz", + "integrity": "sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg==", "dependencies": { - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/util-base64-node": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.188.0.tgz", - "integrity": "sha512-r1dccRsRjKq+OhVRUfqFiW3sGgZBjHbMeHLbrAs9jrOjU2PTQ8PSzAXLvX/9lmp7YjmX17Qvlsg0NCr1tbB9OA==", - "dependencies": { - "@aws-sdk/util-buffer-from": "3.188.0", + "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/util-body-length-browser": { @@ -2215,60 +2360,60 @@ } }, "node_modules/@aws-sdk/util-body-length-node": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.188.0.tgz", - "integrity": "sha512-XwqP3vxk60MKp4YDdvDeCD6BPOiG2e+/Ou4AofZOy5/toB6NKz2pFNibQIUg2+jc7mPMnGnvOW3MQEgSJ+gu/Q==", + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz", + "integrity": "sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg==", "dependencies": { "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/util-buffer-from": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.188.0.tgz", - "integrity": "sha512-NX1WXZ8TH20IZb4jPFT2CnLKSqZWddGxtfiWxD9M47YOtq/SSQeR82fhqqVjJn4P8w2F5E28f+Du4ntg/sGcxA==", + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz", + "integrity": "sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==", "dependencies": { - "@aws-sdk/is-array-buffer": "3.188.0", + "@aws-sdk/is-array-buffer": "3.201.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/util-config-provider": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.188.0.tgz", - "integrity": "sha512-LBA7tLbi7v4uvbOJhSnjJrxbcRifKK/1ZVK94JTV2MNSCCyNkFotyEI5UWDl10YKriTIUyf7o5cakpiDZ3O4xg==", + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz", + "integrity": "sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg==", "dependencies": { "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/util-create-request": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-create-request/-/util-create-request-3.197.0.tgz", - "integrity": "sha512-pWpv4Nezed9rACFi+dQWASO203SEtBNn6FKDUW+XF3rCuu1m8cIiX6AG4NB2Sy9Tw8Ua+aAfW+9p3Rae0ZvpjQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-create-request/-/util-create-request-3.215.0.tgz", + "integrity": "sha512-V+f6YYSUHGNWVLQpdTgpbCPgnkXmHtC9uEk/rQjzJAvzAZmqYuPc2hheBSAt7gN6yzLoMeDBmjhZMh79fFZ3UQ==", "dependencies": { - "@aws-sdk/middleware-stack": "3.197.0", - "@aws-sdk/smithy-client": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/middleware-stack": "3.215.0", + "@aws-sdk/smithy-client": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/util-defaults-mode-browser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.197.0.tgz", - "integrity": "sha512-5DaTKR0DLJR02wd844I+GR0HnRpYO2IZAtXK444ubLL2Mi9M8AZ/aGXNvZpIsAIjy/InTK0K2B/c/8DJzLU23Q==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.215.0.tgz", + "integrity": "sha512-MiNfZgB0I4dR8CBxH163W7c9KvE38sgCHNPWopMqSX5ezz7cuCPohCU0XsWd4I7K31PvzuqmKgOiKBAZraQJMA==", "dependencies": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/types": "3.215.0", "bowser": "^2.11.0", "tslib": "^2.3.1" }, @@ -2277,15 +2422,15 @@ } }, "node_modules/@aws-sdk/util-defaults-mode-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.197.0.tgz", - "integrity": "sha512-dZtw/rSHlQ0uCDkSU4Jdxwx/hIdw9lbwW3hCjo0EtjQrRN9c5Cs3NNaYQg3Ghs6VT2F0aO0BcF7KTPQ6ZPcGeg==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.215.0.tgz", + "integrity": "sha512-mSp3R8GljQ+4UT3QMOksQk9L0cWbFLvR7bBmAlt4+GobgTjpRfzFjBP3uwrCqFa3BKDUR3FeJq3qwo+xeY1Krg==", "dependencies": { - "@aws-sdk/config-resolver": "3.197.0", - "@aws-sdk/credential-provider-imds": "3.197.0", - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/config-resolver": "3.215.0", + "@aws-sdk/credential-provider-imds": "3.215.0", + "@aws-sdk/node-config-provider": "3.215.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { @@ -2293,39 +2438,39 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.197.0.tgz", - "integrity": "sha512-ZcR2sSTfIO7p05MFRbGnp5KJT5WaXTZe675jQKWbgJ2VizQz0loOyoofFS4R1CTIuNitGY9+g5pmMZelULa/Aw==", + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.216.0.tgz", + "integrity": "sha512-uHje4H6Qj/z/op8UZoSuvGpEZhz/r+AGY0rCihFo7XjhT4RYVxb2Eb9uHRK/IAeHU4kjHAdpQiWGMSmnT/UacA==", "dependencies": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/util-format-url": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.197.0.tgz", - "integrity": "sha512-4LgRupwAB4dKTby7j4luomdUuq4n9SxRDJT3fuAEw1KSZJCDFqnQGJWRAW0jjYyk54vzktnzK0npWByumYq54w==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.215.0.tgz", + "integrity": "sha512-j8X2pIwpSxtS23Za6t36pQjeVe5ouunoMuOj4wdj2uB3Cbf2vvd84J5lF8bUHQA35f5PRqdYtU1KyolQudCXsA==", "dependencies": { - "@aws-sdk/querystring-builder": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/querystring-builder": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/util-hex-encoding": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.188.0.tgz", - "integrity": "sha512-QyWovTtjQ2RYxqVM+STPh65owSqzuXURnfoof778spyX4iQ4z46wOge1YV2ZtwS8w5LWd9eeVvDrLu5POPYOnA==", + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz", + "integrity": "sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA==", "dependencies": { "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/util-locate-window": { @@ -2340,75 +2485,75 @@ } }, "node_modules/@aws-sdk/util-middleware": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.197.0.tgz", - "integrity": "sha512-ynruKtZuxMT97ZcmbF262GeUeaQKjnSOm4T4HHLgdJx4LeW8vo4xla4ffNh5Tb+MGEJz22V5ldcddrpF4FobnA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.215.0.tgz", + "integrity": "sha512-DfHGlFlQCr+T/xhjS36HH8JEThDVB5lg5NZ6x4Cibhyeps9YX/4ovLAIx3B19H34sdWhZi7q6LfslCHLRu2+7Q==", "dependencies": { "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/util-stream-browser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-stream-browser/-/util-stream-browser-3.197.0.tgz", - "integrity": "sha512-iwMKvtVTArfGAEJLob3LE2XnIPyl3uZHwo8jNRZKd6zz/ukI4SlLYHMnNA8F75QT0p8/6tbWFGoBojYqljYjLQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-stream-browser/-/util-stream-browser-3.215.0.tgz", + "integrity": "sha512-UVyCJJ5sCYLVHCW4Lpm8+ae+ISHPHZ/OqAoLbUpehk2RLGP6QhpQOrpJADLXPuB8YuWFMkoLLIVL8VE7mmTPWA==", "dependencies": { - "@aws-sdk/fetch-http-handler": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-base64-browser": "3.188.0", - "@aws-sdk/util-hex-encoding": "3.188.0", + "@aws-sdk/fetch-http-handler": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-hex-encoding": "3.201.0", "@aws-sdk/util-utf8-browser": "3.188.0", "tslib": "^2.3.1" } }, "node_modules/@aws-sdk/util-stream-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-stream-node/-/util-stream-node-3.197.0.tgz", - "integrity": "sha512-hkWYe4bmIx9sOiZBqGlOx3gYQcduHr1rJNBKQ4nU0M64MZ0R4WhBklI6iW9vn4HYNNPXeTGNzZXrByEcASjOWw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-stream-node/-/util-stream-node-3.215.0.tgz", + "integrity": "sha512-7Vyp61P/2dGA9Fzn6uN/KdRd+Z7n8gCGmXBd/dQSrHx3UFIm1TuEmMwROzbWWxPOS6qDWY/dwQgMZH/tq78Llg==", "dependencies": { - "@aws-sdk/node-http-handler": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-buffer-from": "3.188.0", + "@aws-sdk/node-http-handler": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/util-uri-escape": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.188.0.tgz", - "integrity": "sha512-4Y6AYZMT483Tiuq8dxz5WHIiPNdSFPGrl6tRTo2Oi2FcwypwmFhqgEGcqxeXDUJktvaCBxeA08DLr/AemVhPCg==", + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz", + "integrity": "sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA==", "dependencies": { "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.197.0.tgz", - "integrity": "sha512-0BhG18FL+qvRiTKJ1kG1vKrMvnCpgh1XuMRTTBjFPl7j/XbW9JMPgnJaZSN/uZqS2ianK2V1Yc+FTv/qfPiNeA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.215.0.tgz", + "integrity": "sha512-uZz6BJWr8sJcA+onveS1lFqnbIXBHwvkyHLgCuuGhAxd5yY6YNLhpJBnhy9Fb8/aSbk6yao3qxlokqw9gthmAw==", "dependencies": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "bowser": "^2.11.0", "tslib": "^2.3.1" } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.197.0.tgz", - "integrity": "sha512-ymsZ3rwsmPJWISxpwpEf9MmRkr1Av5cTNyZgHo8Yi+LveeUelZ+41HLjP10p540K8x4iUnCHNP5yUN1UTtNnfA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.215.0.tgz", + "integrity": "sha512-4lrdd1oGRwJEwfvgvg1jcJ2O0bwElsvtiqZfTRHN6MNTFUqsKl0xHlgFChQsz3Hfrc1niWtZCmbqQKGdO5ARpw==", "dependencies": { - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/node-config-provider": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" }, "peerDependencies": { "aws-crt": ">=1.0.0" @@ -2428,39 +2573,39 @@ } }, "node_modules/@aws-sdk/util-utf8-node": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.188.0.tgz", - "integrity": "sha512-hCgP4+C0Lekjpjt2zFJ2R/iHes5sBGljXa5bScOFAEkRUc0Qw0VNgTv7LpEbIOAwGmqyxBoCwBW0YHPW1DfmYQ==", + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz", + "integrity": "sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ==", "dependencies": { - "@aws-sdk/util-buffer-from": "3.188.0", + "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/util-waiter": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.197.0.tgz", - "integrity": "sha512-UMqymn5Fuc5TS7lTQK3sBG672DBBNXNzPJdJNooNP4L1jau1CoysHxqDFsr/5sv0hZ4/TMjT68w90f7YQxHyDg==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.215.0.tgz", + "integrity": "sha512-RX/EkRcuDjWKP/5K6XOnbq5cPaO9KSJ5Etotn+z5sPGUJ0xmGWEyFyfXKSL51az32tHcNoGAqboBTFDISB0LyA==", "dependencies": { - "@aws-sdk/abort-controller": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/abort-controller": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@aws-sdk/xml-builder": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.188.0.tgz", - "integrity": "sha512-/Hah3gAtrBpEaDInX3eSS0nXw/IUeb+rWiGspXxb5O8bh5kyjQqeu8/sVJQlpOtq4aPDbMDmloH4k696qTqgbw==", + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.201.0.tgz", + "integrity": "sha512-brRdB1wwMgjWEnOQsv7zSUhIQuh7DEicrfslAqHop4S4FtSI3GQAShpQqgOpMTNFYcpaWKmE/Y1MJmNY7xLCnw==", "dependencies": { "tslib": "^2.3.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" } }, "node_modules/@babel/code-frame": { @@ -4430,9 +4575,9 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.33.4.tgz", - "integrity": "sha512-02XyYuvR/Gn+3BT6idHVNQ4SSQlA1X1FeEfeKm2ypv8ANB6Lt9KRFZ2S7y5xjwR+EPQ/Rzb0XFaD+xKyqe4ALw==", + "version": "0.36.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.36.0.tgz", + "integrity": "sha512-u0XZyvUF6Urb2cSivSXA8qXIpT/CxkHcdtZKoWusAzgzmsTWpg0F2FpWXsolHmMUyVY3dLWaoy+0ccJ5uf2QjA==", "dev": true, "dependencies": { "comment-parser": "1.3.1", @@ -4550,9 +4695,9 @@ } }, "node_modules/@fortawesome/fontawesome-free": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.2.0.tgz", - "integrity": "sha512-CNR7qRIfCwWHNN7FnKUniva94edPdyQzil/zCwk3v6k4R6rR2Fr8i4s3PM7n/lyfPA6Zfko9z5WDzFxG9SW1uQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.2.1.tgz", + "integrity": "sha512-viouXhegu/TjkvYQoiRZK3aax69dGXxgEjpvZW81wIJdxm5Fnvp3VVIP4VHKqX4SvFw6qpmkILkD4RJWAdrt7A==", "dev": true, "hasInstallScript": true, "engines": { @@ -4787,9 +4932,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "14.2.7", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.7.tgz", - "integrity": "sha512-I47BdEybpzjfFFMFB691o9C+69RexLTgSm/VCyDn4M8DrGrZpgYNhxN+AEr1uA6Bi6MaPG6w+TMac5tNIaO4Yw==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.10.tgz", + "integrity": "sha512-sLHapZLVub6mEz5b19tf1VfIV1w3tYfg7FNPLeni79aldxu1FbP1v2WmiFAnMzrswqyK0bhTtxrl+Z/CLKqyoQ==", "dev": true, "engines": { "node": "^14.15.0 || >=16.10.0", @@ -4946,13 +5091,13 @@ } }, "node_modules/@schematics/angular": { - "version": "14.2.7", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.7.tgz", - "integrity": "sha512-ujtLu0gWARtJsRbN+P+McDO0Y0ygJjUN5016SdbmYDMcDJkwi+GYHU8Yvh/UONtmNor3JdV8AnZ8OmWTlswTDA==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.10.tgz", + "integrity": "sha512-YFTc/9QJdx422XcApizEcVLKoyknu8b9zHIlAepZCu7WkV8GPT0hvVEHQ7KBWys5aQ7pPZMT0JpZLeAz0F2xYQ==", "dev": true, "dependencies": { - "@angular-devkit/core": "14.2.7", - "@angular-devkit/schematics": "14.2.7", + "@angular-devkit/core": "14.2.10", + "@angular-devkit/schematics": "14.2.10", "jsonc-parser": "3.1.0" }, "engines": { @@ -5085,9 +5230,9 @@ "dev": true }, "node_modules/@types/lodash": { - "version": "4.14.186", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.186.tgz", - "integrity": "sha512-eHcVlLXP0c2FlMPm56ITode2AgLMSa6aJ05JTTbYbI+7EMkCEE5qk2E41d5g2lCVTqRe0GnnRFurmlCsDODrPw==", + "version": "4.14.191", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", + "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==", "dev": true }, "node_modules/@types/mime": { @@ -5097,9 +5242,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "16.18.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.2.tgz", - "integrity": "sha512-KIGQJyya+opDCFvDSZMNNS899ov5jlNdtN7PypgHWeb8e+5vWISdwTRo/ClsNVlmDihzOGqFyNBDamUs7TQQCA==", + "version": "18.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", "dev": true }, "node_modules/@types/parse-json": { @@ -5109,9 +5254,9 @@ "dev": true }, "node_modules/@types/plotly.js": { - "version": "2.12.8", - "resolved": "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-2.12.8.tgz", - "integrity": "sha512-h7gkIDxjC7ZgAZTActvrMJNDFsEPIAOr6kvMIhTOgxOrXTnXH3ywnmjtfoUViuKFNhos3zhhTtcT5QQT/bH/2w==", + "version": "2.12.9", + "resolved": "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-2.12.9.tgz", + "integrity": "sha512-ML5pFv06KSozZqRO74Yt2XQg7A6Q2vtL3qGmO7nbKGpkk39vNdHYHD9w96Y4XK2TrhZKOxGirFjkou7IK5xdoA==", "dev": true }, "node_modules/@types/qs": { @@ -5187,16 +5332,17 @@ "integrity": "sha512-Nqo3HMPFPcNyZ7HNFZJjpH+N4yXqpxBItG+41e7nL9zednovMRZMXWj36CctSznbBcbj6ucvkJDo5iZ8SKqLIw==" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.41.0.tgz", - "integrity": "sha512-DXUS22Y57/LAFSg3x7Vi6RNAuLpTXwxB9S2nIA7msBb/Zt8p7XqMwdpdc1IU7CkOQUPgAqR5fWvxuKCbneKGmA==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.44.0.tgz", + "integrity": "sha512-j5ULd7FmmekcyWeArx+i8x7sdRHzAtXTkmDPthE4amxZOWKFK7bomoJ4r7PJ8K7PoMzD16U8MmuZFAonr1ERvw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.41.0", - "@typescript-eslint/type-utils": "5.41.0", - "@typescript-eslint/utils": "5.41.0", + "@typescript-eslint/scope-manager": "5.44.0", + "@typescript-eslint/type-utils": "5.44.0", + "@typescript-eslint/utils": "5.44.0", "debug": "^4.3.4", "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" @@ -5219,14 +5365,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.41.0.tgz", - "integrity": "sha512-HQVfix4+RL5YRWZboMD1pUfFN8MpRH4laziWkkAzyO1fvNOY/uinZcvo3QiFJVS/siNHupV8E5+xSwQZrl6PZA==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.44.0.tgz", + "integrity": "sha512-H7LCqbZnKqkkgQHaKLGC6KUjt3pjJDx8ETDqmwncyb6PuoigYajyAwBGz08VU/l86dZWZgI4zm5k2VaKqayYyA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.41.0", - "@typescript-eslint/types": "5.41.0", - "@typescript-eslint/typescript-estree": "5.41.0", + "@typescript-eslint/scope-manager": "5.44.0", + "@typescript-eslint/types": "5.44.0", + "@typescript-eslint/typescript-estree": "5.44.0", "debug": "^4.3.4" }, "engines": { @@ -5246,13 +5392,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.41.0.tgz", - "integrity": "sha512-xOxPJCnuktUkY2xoEZBKXO5DBCugFzjrVndKdUnyQr3+9aDWZReKq9MhaoVnbL+maVwWJu/N0SEtrtEUNb62QQ==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.44.0.tgz", + "integrity": "sha512-2pKml57KusI0LAhgLKae9kwWeITZ7IsZs77YxyNyIVOwQ1kToyXRaJLl+uDEXzMN5hnobKUOo2gKntK9H1YL8g==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.41.0", - "@typescript-eslint/visitor-keys": "5.41.0" + "@typescript-eslint/types": "5.44.0", + "@typescript-eslint/visitor-keys": "5.44.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -5263,13 +5409,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.41.0.tgz", - "integrity": "sha512-L30HNvIG6A1Q0R58e4hu4h+fZqaO909UcnnPbwKiN6Rc3BUEx6ez2wgN7aC0cBfcAjZfwkzE+E2PQQ9nEuoqfA==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.44.0.tgz", + "integrity": "sha512-A1u0Yo5wZxkXPQ7/noGkRhV4J9opcymcr31XQtOzcc5nO/IHN2E2TPMECKWYpM3e6olWEM63fq/BaL1wEYnt/w==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.41.0", - "@typescript-eslint/utils": "5.41.0", + "@typescript-eslint/typescript-estree": "5.44.0", + "@typescript-eslint/utils": "5.44.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -5290,9 +5436,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.41.0.tgz", - "integrity": "sha512-5BejraMXMC+2UjefDvrH0Fo/eLwZRV6859SXRg+FgbhA0R0l6lDqDGAQYhKbXhPN2ofk2kY5sgGyLNL907UXpA==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.44.0.tgz", + "integrity": "sha512-Tp+zDnHmGk4qKR1l+Y1rBvpjpm5tGXX339eAlRBDg+kgZkz9Bw+pqi4dyseOZMsGuSH69fYfPJCBKBrbPCxYFQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -5303,13 +5449,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.41.0.tgz", - "integrity": "sha512-SlzFYRwFSvswzDSQ/zPkIWcHv8O5y42YUskko9c4ki+fV6HATsTODUPbRbcGDFYP86gaJL5xohUEytvyNNcXWg==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.44.0.tgz", + "integrity": "sha512-M6Jr+RM7M5zeRj2maSfsZK2660HKAJawv4Ud0xT+yauyvgrsHu276VtXlKDFnEmhG+nVEd0fYZNXGoAgxwDWJw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.41.0", - "@typescript-eslint/visitor-keys": "5.41.0", + "@typescript-eslint/types": "5.44.0", + "@typescript-eslint/visitor-keys": "5.44.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -5330,16 +5476,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.41.0.tgz", - "integrity": "sha512-QlvfwaN9jaMga9EBazQ+5DDx/4sAdqDkcs05AsQHMaopluVCUyu1bTRUVKzXbgjDlrRAQrYVoi/sXJ9fmG+KLQ==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.44.0.tgz", + "integrity": "sha512-fMzA8LLQ189gaBjS0MZszw5HBdZgVwxVFShCO3QN+ws3GlPkcy9YuS3U4wkT6su0w+Byjq3mS3uamy9HE4Yfjw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.41.0", - "@typescript-eslint/types": "5.41.0", - "@typescript-eslint/typescript-estree": "5.41.0", + "@typescript-eslint/scope-manager": "5.44.0", + "@typescript-eslint/types": "5.44.0", + "@typescript-eslint/typescript-estree": "5.44.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0", "semver": "^7.3.7" @@ -5356,12 +5502,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.41.0.tgz", - "integrity": "sha512-vilqeHj267v8uzzakbm13HkPMl7cbYpKVjgFWZPIOHIJHZtinvypUhJ5xBXfWYg4eFKqztbMMpOgFpT9Gfx4fw==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.44.0.tgz", + "integrity": "sha512-a48tLG8/4m62gPFbJ27FxwCOqPKxsb8KC3HkmYoq2As/4YyjQl1jDbRr1s63+g4FS/iIehjmN3L5UjmKva1HzQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.41.0", + "@typescript-eslint/types": "5.44.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -5562,9 +5708,9 @@ } }, "node_modules/ace-builds": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.12.3.tgz", - "integrity": "sha512-LHAsa5oOaRqmIlb8gBe81nj2kOqlfbV0XkWkFZL4mIfPXL4zoeTUcandHvBgHQCyjif3tGfoLTXelWSlnCT/dA==" + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.13.1.tgz", + "integrity": "sha512-HvkZv/AhDRSA4k5Co5Dg8dWOTfID0AQ7Sa5cU6V82fz/XfCA0A/icC3sdBoh9yg0WQoJqbFrRYc+ogr/971Vww==" }, "node_modules/acorn": { "version": "8.8.1", @@ -5829,15 +5975,6 @@ "node": ">= 8" } }, - "node_modules/app-root-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", - "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", - "dev": true, - "engines": { - "node": ">= 6.0.0" - } - }, "node_modules/aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", @@ -5873,12 +6010,12 @@ "dev": true }, "node_modules/aria-query": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.2.tgz", - "integrity": "sha512-eigU3vhqSO+Z8BKDnVLN/ompjhf3pYzecKXz8+whRy+9gZu8n1TCGfwzQUUPnqdHl9ax1Hr9031orZ+UOEYr7Q==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", "dev": true, - "engines": { - "node": ">=6.0" + "dependencies": { + "deep-equal": "^2.0.5" } }, "node_modules/array-flatten": { @@ -5932,12 +6069,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", - "dev": true - }, "node_modules/autoprefixer": { "version": "10.4.12", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz", @@ -5971,13 +6102,25 @@ "postcss": "^8.1.0" } }, - "node_modules/axobject-query": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.0.1.tgz", - "integrity": "sha512-vy5JPSOibF9yAeC2PoemRdA1MuSXX7vX5osdoxKf/6OUeppAWekZ3JIJVNWFMH6wgj7uHYyqZUSqE/b/3JLV1A==", + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true, "engines": { - "node": ">=6.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axobject-query": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", + "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" } }, "node_modules/babel-loader": { @@ -6332,16 +6475,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/builtins": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", @@ -6627,104 +6760,17 @@ } }, "node_modules/codelyzer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.2.tgz", - "integrity": "sha512-v3+E0Ucu2xWJMOJ2fA/q9pDT/hlxHftHGPUay1/1cTgyPV5JTHFdO9hqo837Sx2s9vKBMTt5gO+lhF95PO6J+g==", + "version": "0.0.28", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-0.0.28.tgz", + "integrity": "sha512-DfrZrFWP4MnowANXJHUL0ZMhLqAEFLjC3lJofkHZM+QAczdOvlq8CmLrvqspCXmIdyotVD0xyjUWoPGOPo4lKA==", "dev": true, "dependencies": { - "@angular/compiler": "9.0.0", - "@angular/core": "9.0.0", - "app-root-path": "^3.0.0", - "aria-query": "^3.0.0", - "axobject-query": "2.0.2", - "css-selector-tokenizer": "^0.7.1", - "cssauron": "^1.4.0", - "damerau-levenshtein": "^1.0.4", - "rxjs": "^6.5.3", - "semver-dsl": "^1.0.1", - "source-map": "^0.5.7", - "sprintf-js": "^1.1.2", - "tslib": "^1.10.0", - "zone.js": "~0.10.3" + "sprintf-js": "^1.0.3" }, "peerDependencies": { - "@angular/compiler": ">=2.3.1 <13.0.0 || ^12.0.0-next || ^12.1.0-next || ^12.2.0-next", - "@angular/core": ">=2.3.1 <13.0.0 || ^12.0.0-next || ^12.1.0-next || ^12.2.0-next", - "tslint": "^5.0.0 || ^6.0.0" + "tslint": "^3.9.0" } }, - "node_modules/codelyzer/node_modules/@angular/compiler": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", - "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", - "dev": true, - "peerDependencies": { - "tslib": "^1.10.0" - } - }, - "node_modules/codelyzer/node_modules/@angular/core": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", - "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", - "dev": true, - "peerDependencies": { - "rxjs": "^6.5.3", - "tslib": "^1.10.0", - "zone.js": "~0.10.2" - } - }, - "node_modules/codelyzer/node_modules/aria-query": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", - "integrity": "sha512-majUxHgLehQTeSA+hClx+DY09OVUqG3GtezWkF1krgLGNdlDu9l9V8DaqNMWbq4Eddc8wsyDA0hpDUtnYxQEXw==", - "dev": true, - "dependencies": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" - } - }, - "node_modules/codelyzer/node_modules/axobject-query": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", - "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", - "dev": true, - "dependencies": { - "ast-types-flow": "0.0.7" - } - }, - "node_modules/codelyzer/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/codelyzer/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/codelyzer/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/codelyzer/node_modules/zone.js": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", - "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==", - "dev": true - }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -7233,16 +7279,6 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/css-selector-tokenizer": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", - "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2" - } - }, "node_modules/css-what": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", @@ -7255,15 +7291,6 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/cssauron": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", - "integrity": "sha512-Ht70DcFBh+/ekjVrYS2PlDMdSQEl3OFNmjK6lcn49HptBgilXf/Zwg4uFh9Xn0pX3Q8YOkSjIFOfK2osvdqpBw==", - "dev": true, - "dependencies": { - "through": "X.X.X" - } - }, "node_modules/cssdb": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.0.2.tgz", @@ -7597,12 +7624,6 @@ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true - }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -7620,6 +7641,38 @@ } } }, + "node_modules/deep-equal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.1.0.tgz", + "integrity": "sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-equal/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -7657,15 +7710,19 @@ } }, "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "dependencies": { - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/delegates": { @@ -7974,6 +8031,31 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-get-iterator": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", + "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.0", + "has-symbols": "^1.0.1", + "is-arguments": "^1.1.0", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-get-iterator/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, "node_modules/es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", @@ -8391,9 +8473,9 @@ } }, "node_modules/eslint": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz", - "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==", + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz", + "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.3.3", @@ -8609,12 +8691,12 @@ "dev": true }, "node_modules/eslint-plugin-jsdoc": { - "version": "39.3.25", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.3.25.tgz", - "integrity": "sha512-7JiFOOaipz7Z7lNQ9sMJ6cdvclmVUwNYtFWGS3a0k0uEFcdZPPD64WOfENuyNHpl86C0AKIEPgOpZby5kd+pew==", + "version": "39.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.6.2.tgz", + "integrity": "sha512-dvgY/W7eUFoAIIiaWHERIMI61ZWqcz9YFjEeyTzdPlrZc3TY/3aZm5aB91NUoTLWYZmO/vFlYSuQi15tF7uE5A==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.33.4", + "@es-joy/jsdoccomment": "~0.36.0", "comment-parser": "1.3.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", @@ -9248,12 +9330,6 @@ "url": "https://paypal.me/naturalintelligence" } }, - "node_modules/fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "dev": true - }, "node_modules/fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -9424,13 +9500,13 @@ } } }, - "node_modules/font-awesome": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz", - "integrity": "sha512-U6kGnykA/6bFmg1M/oT9EkFeIYv7JlX3bozwQJWiiLz6L0w3F5vBVPxHlwyX/vtNq1ckcpRKOB9f2Qal/VtFpg==", - "peer": true, - "engines": { - "node": ">=0.10.3" + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" } }, "node_modules/forwarded": { @@ -9508,6 +9584,15 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gauge": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", @@ -9546,14 +9631,14 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9663,6 +9748,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", @@ -9725,10 +9822,22 @@ "node": ">=4" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, "engines": { "node": ">= 0.4" @@ -10280,6 +10389,22 @@ "node": ">= 10" } }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -10425,6 +10550,15 @@ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -10510,6 +10644,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-shared-array-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", @@ -10561,6 +10704,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -10573,6 +10735,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -10585,6 +10756,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-what": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", @@ -10696,12 +10880,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", - "peer": true - }, "node_modules/js-sdsl": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", @@ -10961,9 +11139,9 @@ } }, "node_modules/loader-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", - "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", "dev": true, "engines": { "node": ">= 12.13.0" @@ -11203,9 +11381,9 @@ } }, "node_modules/memfs": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.7.tgz", - "integrity": "sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw==", + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.12.tgz", + "integrity": "sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==", "dev": true, "dependencies": { "fs-monkey": "^1.0.3" @@ -11516,6 +11694,12 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, "node_modules/needle": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/needle/-/needle-3.1.0.tgz", @@ -11611,9 +11795,9 @@ } }, "node_modules/ngx-markdown-editor": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ngx-markdown-editor/-/ngx-markdown-editor-4.2.0.tgz", - "integrity": "sha512-EM4QJPIjmYjZQbXy+10nKtsGtLLTROks3sgOz3BcrUuC5rcCHPmSgstn/YW6gaInolMmC0hTIeGP0XwH6l9O+g==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ngx-markdown-editor/-/ngx-markdown-editor-4.3.0.tgz", + "integrity": "sha512-JzUemZUDqDFbvAGKoI/wk1nHdmy2btIWqwcnAKv+UmWuDH2uSOWJH0pEiua2H5iVeN7ANe8a9kItRoQmh7ogew==", "dependencies": { "tslib": "^2.3.0" }, @@ -11623,6 +11807,23 @@ "font-awesome": ">=4.0.0" } }, + "node_modules/ngx-print": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ngx-print/-/ngx-print-1.2.1.tgz", + "integrity": "sha512-+xz5wbVO9N5vAT/W6dgTzbE1RBB1jUeBOSF04Gs66QqTrb46paRAjHgqMr4TvE8CUiTp5aMmkL54QEKat9gj6w==", + "dependencies": { + "tslib": "^1.9.3" + }, + "peerDependencies": { + "@angular/common": "*", + "@angular/core": "*" + } + }, + "node_modules/ngx-print/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, "node_modules/ngx-window-token": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/ngx-window-token/-/ngx-window-token-6.0.0.tgz", @@ -11969,6 +12170,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -11979,14 +12196,14 @@ } }, "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, "engines": { @@ -12515,17 +12732,6 @@ "node": ">=8" } }, - "node_modules/popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", - "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, "node_modules/postcss": { "version": "8.4.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", @@ -13223,9 +13429,9 @@ "integrity": "sha512-KDeO94CbWI4pKsPnYpA1FPjo79EsY9I+M8ywoPBSf9XMXoe/0crjbUK7jcQEDHuc0ZMRIZsxH3TYLv4TUtHmAA==" }, "node_modules/primeng": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/primeng/-/primeng-14.1.2.tgz", - "integrity": "sha512-iLMeORiLD46SNAotxCwRXoaRMXLs3ZbFzyePrPSNAFQbKEbsLfpUvsAUAatb/TA0jd8TnXgdCjZ07ee4664XVQ==", + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/primeng/-/primeng-14.2.2.tgz", + "integrity": "sha512-CV7dWwpBYqMgKliryJ6+CJZgdawl04V1Cp5mQmziEedJVhMGPg/QwU2Fi0v7AS9i1uXQRI9c420BDn+yZ+GrDQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -13235,7 +13441,7 @@ "@angular/forms": "^14.0.0", "primeicons": "^6.0.1", "rxjs": "^6.0.0 || ^7.0.0", - "zone.js": "^0.10.2 || ^0.11.0" + "zone.js": "^0.10.2 || ^0.11.0 || ^0.12.0" } }, "node_modules/proc-log": { @@ -13561,6 +13767,23 @@ "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", "dev": true }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", @@ -13974,24 +14197,6 @@ "node": ">=10" } }, - "node_modules/semver-dsl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", - "integrity": "sha512-e8BOaTo007E3dMuQQTnPdalbKTABKNS7UxoBIDnwOqRa+QwMrCPjynB8zAlPF6xlqUfdLPPLIJ13hJNmhtq8Ng==", - "dev": true, - "dependencies": { - "semver": "^5.3.0" - } - }, - "node_modules/semver-dsl/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, "node_modules/send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", @@ -14881,94 +15086,9 @@ } }, "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "node_modules/tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", - "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", - "dev": true, - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" - }, - "bin": { - "tslint": "bin/tslint" - }, - "engines": { - "node": ">=4.8.0" - }, - "peerDependencies": { - "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" - } - }, - "node_modules/tslint/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/tslint/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "peer": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/tslint/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/tslint/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "peer": true - }, - "node_modules/tslint/node_modules/tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "peer": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "peerDependencies": { - "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" - } + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "node_modules/tsutils": { "version": "3.21.0", @@ -15572,6 +15692,41 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", @@ -15653,9 +15808,9 @@ "dev": true }, "node_modules/ws": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz", - "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true, "engines": { "node": ">=10.0.0" @@ -15771,12 +15926,12 @@ } }, "@angular-devkit/architect": { - "version": "0.1402.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.7.tgz", - "integrity": "sha512-YZchteri2iUq5JICSH0BQjOU3ehE57+CMU8PBigcJZiaLa/GPiCuwD9QOsnwSzHJNYYx5C94uhtZUjPwUtIAIw==", + "version": "0.1402.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.10.tgz", + "integrity": "sha512-/6YmPrgataj1jD2Uqd1ED+CG4DaZGacoeZd/89hH7hF76Nno8K18DrSOqJAEmDnOWegpSRGVLd0qP09IHmaG5w==", "dev": true, "requires": { - "@angular-devkit/core": "14.2.7", + "@angular-devkit/core": "14.2.10", "rxjs": "6.6.7" }, "dependencies": { @@ -15798,15 +15953,15 @@ } }, "@angular-devkit/build-angular": { - "version": "14.2.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-14.2.7.tgz", - "integrity": "sha512-Y58kcEmy8bSFyODtUFQzkuoZHNCji3fzRwGCiQYdAh/mkBf53CuVWoT9q7MrvGOc7Nmo2JiuwR/b7c543eVgfw==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-14.2.10.tgz", + "integrity": "sha512-VCeZAyq4uPCJukKInaSiD4i/GgxgcU4jFlLFQtoYNmaBS4xbPOymL19forRIihiV0dwNEa2L694vRTAPMBxIfw==", "dev": true, "requires": { "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1402.7", - "@angular-devkit/build-webpack": "0.1402.7", - "@angular-devkit/core": "14.2.7", + "@angular-devkit/architect": "0.1402.10", + "@angular-devkit/build-webpack": "0.1402.10", + "@angular-devkit/core": "14.2.10", "@babel/core": "7.18.10", "@babel/generator": "7.18.12", "@babel/helper-annotate-as-pure": "7.18.6", @@ -15817,7 +15972,7 @@ "@babel/runtime": "7.18.9", "@babel/template": "7.18.10", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "14.2.7", + "@ngtools/webpack": "14.2.10", "ansi-colors": "4.1.3", "babel-loader": "8.2.5", "babel-plugin-istanbul": "6.1.1", @@ -15836,7 +15991,7 @@ "less": "4.1.3", "less-loader": "11.0.0", "license-webpack-plugin": "4.0.2", - "loader-utils": "3.2.0", + "loader-utils": "3.2.1", "mini-css-extract-plugin": "2.6.1", "minimatch": "5.1.0", "open": "8.4.0", @@ -15915,16 +16070,22 @@ "dev": true } } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true } } }, "@angular-devkit/build-webpack": { - "version": "0.1402.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1402.7.tgz", - "integrity": "sha512-aDhS/ODt8BwgtnNN73R7SuMC1GgoT5Pajn1nnIWvvpGj8XchLUbguptyl2v7D2QeYXXsd34Gtx8cDOr9PxYFTA==", + "version": "0.1402.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1402.10.tgz", + "integrity": "sha512-h+2MaSY7QSvoJ3R+Hvin21jVCfPGOTLdASIUk4Jmq6J3y5BSku3KSSaV8dWoBOBkFCwQyPQMRjiHoHKLpC1K7g==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1402.7", + "@angular-devkit/architect": "0.1402.10", "rxjs": "6.6.7" }, "dependencies": { @@ -15946,9 +16107,9 @@ } }, "@angular-devkit/core": { - "version": "14.2.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.7.tgz", - "integrity": "sha512-83SCYP3h6fglWMgAXFDc8HfOxk9t3ugK0onATXchctvA7blW4Vx8BSg3/DgbqCv+fF380SN8bYqqLJl8fQFdzg==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.10.tgz", + "integrity": "sha512-K4AO7mROTdbhQ7chtyQd6oPwmuL+BPUh+wn6Aq1qrmYJK4UZYFOPp8fi/Ehs8meCEeywtrssOPfrOE4Gsre9dg==", "dev": true, "requires": { "ajv": "8.11.0", @@ -15976,12 +16137,12 @@ } }, "@angular-devkit/schematics": { - "version": "14.2.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.7.tgz", - "integrity": "sha512-3e2dpFXWl2Z4Gfm+KgY3gAeqsyu8utJMcDIg5sWRAXDeJJdAPc5LweCa8YZEn33Zr9cl8oK+FxlOr15RCyWLcA==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.10.tgz", + "integrity": "sha512-MMp31KpJTwKHisXOq+6VOXYApq97hZxFaFmZk396X5aIFTCELUwjcezQDk+u2nEs5iK/COUfnN3plGcfJxYhQA==", "dev": true, "requires": { - "@angular-devkit/core": "14.2.7", + "@angular-devkit/core": "14.2.10", "jsonc-parser": "3.1.0", "magic-string": "0.26.2", "ora": "5.4.1", @@ -16017,55 +16178,97 @@ "inquirer": "8.2.4", "symbol-observable": "4.0.0", "yargs-parser": "21.1.1" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.7.tgz", + "integrity": "sha512-83SCYP3h6fglWMgAXFDc8HfOxk9t3ugK0onATXchctvA7blW4Vx8BSg3/DgbqCv+fF380SN8bYqqLJl8fQFdzg==", + "dev": true, + "requires": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + } + }, + "@angular-devkit/schematics": { + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.7.tgz", + "integrity": "sha512-3e2dpFXWl2Z4Gfm+KgY3gAeqsyu8utJMcDIg5sWRAXDeJJdAPc5LweCa8YZEn33Zr9cl8oK+FxlOr15RCyWLcA==", + "dev": true, + "requires": { + "@angular-devkit/core": "14.2.7", + "jsonc-parser": "3.1.0", + "magic-string": "0.26.2", + "ora": "5.4.1", + "rxjs": "6.6.7" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } } }, "@angular-eslint/builder": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-14.1.2.tgz", - "integrity": "sha512-J+LRidjlJOGfRNXJwUyOhz5TnasEBK+kL3QkkCE4ZSt/dH40QqT+3q9qV5zc45wdaAeJM4/jp1IhI6kPwWI5Yw==", - "dev": true, - "requires": {} + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-14.4.0.tgz", + "integrity": "sha512-AhAUFvSg0urtb6Lsowvuxwu6DMXUy0BPwrnfNOBGjRt9vG7F9kgXXAsm5DnIS0GNy/mLZ9mSfa86fv++1e0KUA==", + "dev": true }, "@angular-eslint/bundled-angular-compiler": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-14.1.2.tgz", - "integrity": "sha512-d5/jTKXP+t9hNSucj3m8zZYBl62fZ2xFMVNbAOArYAkA7WwwX3D7Gae57BNW54cd2fl2/is7Dn6UgYhu1wqkSQ==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-14.4.0.tgz", + "integrity": "sha512-KMHPHd24s0HVvAP/DxSSqhYBWhwW8FgS/r0Uwv8eWpsIdc/z/Chd2ush2SgPchmmquAXTgOZsbEY7ZmW+XkJfQ==", "dev": true }, "@angular-eslint/eslint-plugin": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-14.1.2.tgz", - "integrity": "sha512-5pJaTcFfM7yDHNtMxw3uNTpBTLjNYH9mlOLX5FFQ9EahAuycwCtV8VJkIntK2ZiOTdRVJYA9/PEdD/xVxX02rw==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-14.4.0.tgz", + "integrity": "sha512-2rZQ4mt7tEUW+lI5jjuj3HWaT4VQtWTG6+LDnmuUmx76m8hqQ7NvFUpOcNDofu5KbEVBP+oF2DA6wjoZOIuSOA==", "dev": true, "requires": { - "@angular-eslint/utils": "14.1.2", - "@typescript-eslint/utils": "5.37.0" + "@angular-eslint/utils": "14.4.0", + "@typescript-eslint/utils": "5.43.0" }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.37.0.tgz", - "integrity": "sha512-F67MqrmSXGd/eZnujjtkPgBQzgespu/iCZ+54Ok9X5tALb9L2v3G+QBSoWkXG0p3lcTJsL+iXz5eLUEdSiJU9Q==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz", + "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.37.0", - "@typescript-eslint/visitor-keys": "5.37.0" + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0" } }, "@typescript-eslint/types": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.37.0.tgz", - "integrity": "sha512-3frIJiTa5+tCb2iqR/bf7XwU20lnU05r/sgPJnRpwvfZaqCJBrl8Q/mw9vr3NrNdB/XtVyMA0eppRMMBqdJ1bA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz", + "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.37.0.tgz", - "integrity": "sha512-JkFoFIt/cx59iqEDSgIGnQpCTRv96MQnXCYvJi7QhBC24uyuzbD8wVbajMB1b9x4I0octYFJ3OwjAwNqk1AjDA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz", + "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.37.0", - "@typescript-eslint/visitor-keys": "5.37.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -16074,80 +16277,83 @@ } }, "@typescript-eslint/utils": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.37.0.tgz", - "integrity": "sha512-jUEJoQrWbZhmikbcWSMDuUSxEE7ID2W/QCV/uz10WtQqfOuKZUqFGjqLJ+qhDd17rjgp+QJPqTdPIBWwoob2NQ==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.43.0.tgz", + "integrity": "sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.37.0", - "@typescript-eslint/types": "5.37.0", - "@typescript-eslint/typescript-estree": "5.37.0", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" } }, "@typescript-eslint/visitor-keys": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.37.0.tgz", - "integrity": "sha512-Hp7rT4cENBPIzMwrlehLW/28EVCOcE9U1Z1BQTc8EA8v5qpr7GRGuG+U58V5tTY48zvUOA3KHvw3rA8tY9fbdA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz", + "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.37.0", + "@typescript-eslint/types": "5.43.0", "eslint-visitor-keys": "^3.3.0" } } } }, "@angular-eslint/eslint-plugin-template": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-14.1.2.tgz", - "integrity": "sha512-gMgYJ8ZwPvq2H/YEzPztVRAK2NYs2cJFUDZD4iGjSRtDgYq9OHjyTo+r6tkcyjcK2qvesy0RccHQKh+x3hYMTA==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-14.4.0.tgz", + "integrity": "sha512-d3GM/EU2iWzr+BrITwO4gBf9WfDfuOdTjfinV/zN84oXMFaK2ENo+IP6OEsD9hh36rdPps+m2gFGDdx+rTzBpg==", "dev": true, "requires": { - "@angular-eslint/bundled-angular-compiler": "14.1.2", - "@typescript-eslint/type-utils": "5.37.0", - "@typescript-eslint/utils": "5.37.0", - "aria-query": "5.0.2", - "axobject-query": "3.0.1" + "@angular-eslint/bundled-angular-compiler": "14.4.0", + "@angular-eslint/utils": "14.4.0", + "@typescript-eslint/type-utils": "5.43.0", + "@typescript-eslint/utils": "5.43.0", + "aria-query": "5.1.3", + "axobject-query": "3.1.1" }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.37.0.tgz", - "integrity": "sha512-F67MqrmSXGd/eZnujjtkPgBQzgespu/iCZ+54Ok9X5tALb9L2v3G+QBSoWkXG0p3lcTJsL+iXz5eLUEdSiJU9Q==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz", + "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.37.0", - "@typescript-eslint/visitor-keys": "5.37.0" + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0" } }, "@typescript-eslint/type-utils": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.37.0.tgz", - "integrity": "sha512-BSx/O0Z0SXOF5tY0bNTBcDEKz2Ec20GVYvq/H/XNKiUorUFilH7NPbFUuiiyzWaSdN3PA8JV0OvYx0gH/5aFAQ==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.43.0.tgz", + "integrity": "sha512-K21f+KY2/VvYggLf5Pk4tgBOPs2otTaIHy2zjclo7UZGLyFH86VfUOm5iq+OtDtxq/Zwu2I3ujDBykVW4Xtmtg==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.37.0", - "@typescript-eslint/utils": "5.37.0", + "@typescript-eslint/typescript-estree": "5.43.0", + "@typescript-eslint/utils": "5.43.0", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.37.0.tgz", - "integrity": "sha512-3frIJiTa5+tCb2iqR/bf7XwU20lnU05r/sgPJnRpwvfZaqCJBrl8Q/mw9vr3NrNdB/XtVyMA0eppRMMBqdJ1bA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz", + "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.37.0.tgz", - "integrity": "sha512-JkFoFIt/cx59iqEDSgIGnQpCTRv96MQnXCYvJi7QhBC24uyuzbD8wVbajMB1b9x4I0octYFJ3OwjAwNqk1AjDA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz", + "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.37.0", - "@typescript-eslint/visitor-keys": "5.37.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -16156,88 +16362,108 @@ } }, "@typescript-eslint/utils": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.37.0.tgz", - "integrity": "sha512-jUEJoQrWbZhmikbcWSMDuUSxEE7ID2W/QCV/uz10WtQqfOuKZUqFGjqLJ+qhDd17rjgp+QJPqTdPIBWwoob2NQ==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.43.0.tgz", + "integrity": "sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.37.0", - "@typescript-eslint/types": "5.37.0", - "@typescript-eslint/typescript-estree": "5.37.0", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" } }, "@typescript-eslint/visitor-keys": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.37.0.tgz", - "integrity": "sha512-Hp7rT4cENBPIzMwrlehLW/28EVCOcE9U1Z1BQTc8EA8v5qpr7GRGuG+U58V5tTY48zvUOA3KHvw3rA8tY9fbdA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz", + "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.37.0", + "@typescript-eslint/types": "5.43.0", "eslint-visitor-keys": "^3.3.0" } } } }, "@angular-eslint/schematics": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-14.1.2.tgz", - "integrity": "sha512-jyaCDQf+MGjMCf+U6KXvvpPESKMUoSGXYhsh2XYtSSUhXook9f2cPI6bHBMyrDgV43zH42jMS+yMC1EO24ZP1w==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-14.4.0.tgz", + "integrity": "sha512-BrGkPug+CZQWOfmNRsJDrEtYJcxvzF/kLlV7RjvIN9Ky5TjUiJVCeafl3VY6COSY32tjlh2GvBdl1AQKWWovbA==", "dev": true, "requires": { - "@angular-eslint/eslint-plugin": "14.1.2", - "@angular-eslint/eslint-plugin-template": "14.1.2", + "@angular-eslint/eslint-plugin": "14.4.0", + "@angular-eslint/eslint-plugin-template": "14.4.0", "ignore": "5.2.0", "strip-json-comments": "3.1.1", "tmp": "0.2.1" } }, "@angular-eslint/template-parser": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-14.1.2.tgz", - "integrity": "sha512-bQI+poQDIyR3OU9EQzJeLYRtmsvjFGtV5dc+4XPJ6eIyRAc8baCG/0V/cOrpofIdSf7e/sCV8H7rXcFg6tSdUw==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-14.4.0.tgz", + "integrity": "sha512-zq888KpQB0YTEK26mkKcT4fs8LDWWT1oAEXU8DrXhvkikS8XavTSHOWJye/bVZR4oJRFCF5YTJV75DEMcGNIpQ==", "dev": true, "requires": { - "@angular-eslint/bundled-angular-compiler": "14.1.2", - "eslint-scope": "^5.1.0" + "@angular-eslint/bundled-angular-compiler": "14.4.0", + "eslint-scope": "^7.0.0" + }, + "dependencies": { + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, "@angular-eslint/utils": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-14.1.2.tgz", - "integrity": "sha512-EtblG9zO0+kWG9EHsoEshFKvsH5DMSK1DqwQsNOVGAF0Aa5DFOqrwouJUyBNJ0d4fSWI9QcuzVkZ1x9JyLIeXQ==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-14.4.0.tgz", + "integrity": "sha512-dPHklAVfh+JfueDfXre9Xooq7p5bFyKO2Z6y1agYeofAgHCPIJOPx2AhtFPrOtsc4VXFFiyE9XbowlXh4ogoKQ==", "dev": true, "requires": { - "@angular-eslint/bundled-angular-compiler": "14.1.2", - "@typescript-eslint/utils": "5.37.0" + "@angular-eslint/bundled-angular-compiler": "14.4.0", + "@typescript-eslint/utils": "5.43.0" }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.37.0.tgz", - "integrity": "sha512-F67MqrmSXGd/eZnujjtkPgBQzgespu/iCZ+54Ok9X5tALb9L2v3G+QBSoWkXG0p3lcTJsL+iXz5eLUEdSiJU9Q==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz", + "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.37.0", - "@typescript-eslint/visitor-keys": "5.37.0" + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0" } }, "@typescript-eslint/types": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.37.0.tgz", - "integrity": "sha512-3frIJiTa5+tCb2iqR/bf7XwU20lnU05r/sgPJnRpwvfZaqCJBrl8Q/mw9vr3NrNdB/XtVyMA0eppRMMBqdJ1bA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz", + "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.37.0.tgz", - "integrity": "sha512-JkFoFIt/cx59iqEDSgIGnQpCTRv96MQnXCYvJi7QhBC24uyuzbD8wVbajMB1b9x4I0octYFJ3OwjAwNqk1AjDA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz", + "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.37.0", - "@typescript-eslint/visitor-keys": "5.37.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -16246,58 +16472,60 @@ } }, "@typescript-eslint/utils": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.37.0.tgz", - "integrity": "sha512-jUEJoQrWbZhmikbcWSMDuUSxEE7ID2W/QCV/uz10WtQqfOuKZUqFGjqLJ+qhDd17rjgp+QJPqTdPIBWwoob2NQ==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.43.0.tgz", + "integrity": "sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.37.0", - "@typescript-eslint/types": "5.37.0", - "@typescript-eslint/typescript-estree": "5.37.0", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" } }, "@typescript-eslint/visitor-keys": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.37.0.tgz", - "integrity": "sha512-Hp7rT4cENBPIzMwrlehLW/28EVCOcE9U1Z1BQTc8EA8v5qpr7GRGuG+U58V5tTY48zvUOA3KHvw3rA8tY9fbdA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz", + "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.37.0", + "@typescript-eslint/types": "5.43.0", "eslint-visitor-keys": "^3.3.0" } } } }, "@angular/animations": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-14.2.8.tgz", - "integrity": "sha512-9YKmaebHW1F/N63TS1EboBQ5Gniq1ogWQ2XEypy057LfcnoPtVkRbAsl2pUJWbUjDZK9f2BpWfXXm9i5ZxIW3A==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-14.2.12.tgz", + "integrity": "sha512-gwdnFZkvVUr+enUNfhfCGRGGqNHn1+vTA81apLfHYhJxgjiLUtETc4KTOrQevtDm022pEd+LSrvr8r+7ag+jkw==", "requires": { "tslib": "^2.3.0" } }, "@angular/cdk": { - "version": "14.2.6", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-14.2.6.tgz", - "integrity": "sha512-sihrwk/0emYbE2X+DOIlan7mohED9pKiH2gQh2hk3Ud8jjeW6VmbaGtTCkjs+HRbFc9/44uDHasizxrKnjseyw==", + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-14.2.7.tgz", + "integrity": "sha512-/tEsYaUbDSnfEmKVvAMramIptmhI67O+9STjOV0i+74XR2NospeK0fkbywIANu1n3w6AHGMotvRWJrjmbCElFg==", "requires": { "parse5": "^5.0.0", "tslib": "^2.3.0" } }, "@angular/cli": { - "version": "14.2.7", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-14.2.7.tgz", - "integrity": "sha512-RM4CJwtqD7cKFQ7hNGJ56s9YMeJxYqCN5Ss0SzsKN1nXYqz8HykMW8fhUbZQ9HFVy/Ml3LGoh1yGo/tXywAWcA==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-14.2.10.tgz", + "integrity": "sha512-gX9sAKOwq4lKdPWeABB7TzKDHdjQXvkUU8NmPJA6mEAVXvm3lhQtFvHDalZstwK8au2LY0LaXTcEtcKYOt3AXQ==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1402.7", - "@angular-devkit/core": "14.2.7", - "@angular-devkit/schematics": "14.2.7", - "@schematics/angular": "14.2.7", + "@angular-devkit/architect": "0.1402.10", + "@angular-devkit/core": "14.2.10", + "@angular-devkit/schematics": "14.2.10", + "@schematics/angular": "14.2.10", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "debug": "4.3.4", @@ -16325,25 +16553,25 @@ } }, "@angular/common": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.2.8.tgz", - "integrity": "sha512-JSPN2h1EcyWjHWtOzRQmoX48ZacTjLAYwW9ZRmBpYs6Ptw5xZ39ARTJfQNcNnJleqYju2E6BNkGnLpbtWQjNDA==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.2.12.tgz", + "integrity": "sha512-oZunh9wfInFWhNO1P8uoEs/o4u8kerKMhw8GruywKm1TV7gHDP2Fi5WHGjFqq3XYptgBTPCTSEfyLX6Cwq1PUw==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.2.8.tgz", - "integrity": "sha512-lKwp3B4ZKNLgk/25Iyur8bjAwRL20auRoB4EuHrBf+928ftsjYUXTgi+0++DUjPENbpi59k6GcvMCNa6qccvIw==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.2.12.tgz", + "integrity": "sha512-u2MH9+NRwbbFDRNiPWPexed9CnCq9+pGHLuyACSP2uR6Ik68cE6cayeZbIeoEV5vWpda/XsLmJgPJysw7dAZLQ==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler-cli": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.2.8.tgz", - "integrity": "sha512-QTftNrAyXOWzKFGY6/i9jh0LB2cOxmykepG4c53wH9LblGvWFztlVOhcoU8tpQSSH8t3EYvGs2r8oUuxcYm5Cw==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.2.12.tgz", + "integrity": "sha512-9Gkb9KFkaQPz8XaS8ZwwTioRZ4ywykdAWyceICEi78/Y9ConYrTX2SbFogzI2dPUZU8a04tMlbqTSmHjVbJftQ==", "dev": true, "requires": { "@babel/core": "^7.17.2", @@ -16359,55 +16587,55 @@ } }, "@angular/core": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.2.8.tgz", - "integrity": "sha512-cgnII9vJGJDLsfr7KsBfU2l+QQUmQIRIP3ImKhBxicw2IHKCSb2mYwoeLV46jaLyHyUMTLRHKUYUR4XtSPnb8A==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.2.12.tgz", + "integrity": "sha512-sGQxU5u4uawwvJa6jOTmGoisJiQ5HIN/RoBw99CmoqZIVyUSg9IRJJC1KVdH8gbpWBNLkElZv21lwJTL/msWyg==", "requires": { "tslib": "^2.3.0" } }, "@angular/forms": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.2.8.tgz", - "integrity": "sha512-OaL7Gi6STxJza7yn0qgmh6+hV6NVbtGmunpzrn9cR1k5TeE4ZtXu1z7VZesbZ9kZ3F6U9CmygFt0csf7j1d+Ow==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.2.12.tgz", + "integrity": "sha512-7abYlGIT2JnAtutQUlH3fQS6QEpbfftgvsVcZJCyvX0rXL3u2w2vUQkDHJH4YJJp3AHFVCH4/l7R4VcaPnrwvA==", "requires": { "tslib": "^2.3.0" } }, "@angular/language-service": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-14.2.8.tgz", - "integrity": "sha512-XvLmZB2RbawDjJSwU41XoZvmkHGnKTZ4gM6LyNnER2rSaEQVHmADh39UF/hAHeEosHVeau/PKAvwIcxyPW6YxA==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-14.2.12.tgz", + "integrity": "sha512-YmW6simyEVmpDmbYVUhZ2IxSP6pmsWrV120rB9Y21/BeM39WIXA4NCNirVWlAd/KAKY9O7Sbn1nXI6rSDfhopQ==", "dev": true }, "@angular/material": { - "version": "14.2.6", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-14.2.6.tgz", - "integrity": "sha512-HykrjDdDoH03oJkV6REW4cx8mVku38LPAagnfJVtqaKsNxG2KtF+LkSlkumeL2cqacFGen/Pf3QV8hxo4FLWhQ==", + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-14.2.7.tgz", + "integrity": "sha512-WXHh8pEStpgkXZJmYOg2cI8BSHkV82ET4XTJCNPdveumaCn1UYnaNzsXD13kw5z+zmy8CufhFEzdXTrv/yt7KQ==", "requires": { "tslib": "^2.3.0" } }, "@angular/platform-browser": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.2.8.tgz", - "integrity": "sha512-tSASBLXoBE0/Gt6d2nC6BJ1DvbGY5wo2Lb+8WCLSvkfsgVqOh4uRuJ2a0wwjeLFd0ZNmpjG42Ijba4btmCpIjg==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.2.12.tgz", + "integrity": "sha512-vOarWym8ucl1gjYWCzdwyBha+MTvL381mvTTUu8aUx6nVhHFjv4bvpjlZnZgojecqUPyxOwmPLLHvCZPJVHZYg==", "requires": { "tslib": "^2.3.0" } }, "@angular/platform-browser-dynamic": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.2.8.tgz", - "integrity": "sha512-CPK8wHnKke8AUKR92XrFuanaKNXDzDm3uVI3DD0NxBo+fLAkiuVaDVIGgO6n6SxQVtwjXJtMXqQuNdzUg4Q9uQ==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.2.12.tgz", + "integrity": "sha512-oZhNJeaBmgw8+KBSYpKz2RYqEDyETC+HJXH8dwIFcP6BqqwL2NE70FdSR7EnOa5c41MEtTmMCGhrJSFR60x5/w==", "requires": { "tslib": "^2.3.0" } }, "@angular/platform-server": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-14.2.8.tgz", - "integrity": "sha512-P80uFfTBi4WXRqYzqVQBvNh/FYBUt4fkRMx2byAizBHdwtmLlXLsRgzIXKA0K0dleo6gZ9MsTVqXZ94R8d4ORw==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-14.2.12.tgz", + "integrity": "sha512-RDxNh47Rp0EYrimbzviqhagdbL58Z3S88PDYybYbshFwV+MgWsvWasK/WntTMP/JtRP4FBU0Uiwxy7mgVdxb0g==", "requires": { "domino": "^2.1.2", "tslib": "^2.3.0", @@ -16415,25 +16643,25 @@ } }, "@angular/router": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.2.8.tgz", - "integrity": "sha512-rbKLsa4/scPP8AxaDRQfkLqfg8CbZ163dPqHMixou90uK/dx00LjCyUeS38/otdAYNZhrD0i5nu+k65qwhLX8w==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.2.12.tgz", + "integrity": "sha512-r5tVus5RJDNc4U2v0jMtjPiAS1xDsVsJ70lS313DgZmBDHIVZP1cWIehdxwgNlGwQQtAA36eG7toBwqUU3gb/A==", "requires": { "tslib": "^2.3.0" } }, "@angular/service-worker": { - "version": "14.2.8", - "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-14.2.8.tgz", - "integrity": "sha512-9Wm/oPOCQ9vdrUfJcip+Bbyx6u/10JebUs+ZUQVLpfk2k7SfhiqaQU0H38mLdcSaMGrUOhs/bIdrBgHQP1ydyw==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-14.2.12.tgz", + "integrity": "sha512-7aAHb9XfToHQyHoPF9CmZSfsO5vFmKALDmTBWf8i3DCztrZvY+B8PCbfpJkpgFiF7LyF+hGaExI4fa6GmHZv+g==", "requires": { "tslib": "^2.3.0" } }, "@angular/youtube-player": { - "version": "14.2.6", - "resolved": "https://registry.npmjs.org/@angular/youtube-player/-/youtube-player-14.2.6.tgz", - "integrity": "sha512-ylmBt1z80xIycOHNME4i4Qyzi3vl71nT1RdNHHQvdtBixVklGAJkUngRH49zh8dMoN+O1KYNMXfwxEZAamZgLQ==", + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/@angular/youtube-player/-/youtube-player-14.2.7.tgz", + "integrity": "sha512-/TtM2QtCIfrhUbrCd79g0jI/BzNMKNmvKR/oKVpAqfH2UZveJOq1YNNJG9Rw+rXE2yIteKNkco8ADU4Sz+32LQ==", "requires": { "@types/youtube": "^0.0.42", "tslib": "^2.3.0" @@ -16586,11 +16814,11 @@ } }, "@aws-sdk/abort-controller": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.197.0.tgz", - "integrity": "sha512-ROuuIICJmkF/VxfOjoPgp79PXjqwXU/z2HmXB+gtYPzwPCyMhb8WwclevyxG3E/t5VflYvPv0NDxQMiU0obOqw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.215.0.tgz", + "integrity": "sha512-HTvL542nawhVqe0oC1AJchdcomEOmPivJEzYUT1LqiG3e8ikxMNa2KWSqqLPeKi2t0A/cfQy7wDUyg9+BZhDSQ==", "requires": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, @@ -16603,486 +16831,523 @@ } }, "@aws-sdk/chunked-blob-reader-native": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.188.0.tgz", - "integrity": "sha512-WielYjaAHfT/HAOW7Tj6yVeNdaOtts3aUm9Sf/3D+ElbCTGyaaMNfE4x0a+qn6dJZXewf1eAxybOIU5ftIeSGw==", + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.208.0.tgz", + "integrity": "sha512-JeOZ95PW+fJ6bbuqPySYqLqHk1n4+4ueEEraJsiUrPBV0S1ZtyvOGHcnGztKUjr2PYNaiexmpWuvUve9K12HRA==", "requires": { - "@aws-sdk/util-base64-browser": "3.188.0", + "@aws-sdk/util-base64": "3.208.0", "tslib": "^2.3.1" } }, "@aws-sdk/client-s3": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.197.0.tgz", - "integrity": "sha512-vyVvCCoDvTIcc7/w++WGp/xY+qCr47Hca7pw9BuIvv7deglNtX2EZu7TQe14F9lRO3EK2q4thKRCy7R5pg3kvw==", + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.216.0.tgz", + "integrity": "sha512-zja00+kLB7Kw8X326ueXvCgMJNF5iuTPrFDUgI+JClk1rjXVMa/T1sOLTgZg9W2pbtOO+3GloxwNGVygXNjt8A==", "requires": { "@aws-crypto/sha1-browser": "2.0.0", "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/client-sts": "3.197.0", - "@aws-sdk/config-resolver": "3.197.0", - "@aws-sdk/credential-provider-node": "3.197.0", - "@aws-sdk/eventstream-serde-browser": "3.197.0", - "@aws-sdk/eventstream-serde-config-resolver": "3.197.0", - "@aws-sdk/eventstream-serde-node": "3.197.0", - "@aws-sdk/fetch-http-handler": "3.197.0", - "@aws-sdk/hash-blob-browser": "3.197.0", - "@aws-sdk/hash-node": "3.197.0", - "@aws-sdk/hash-stream-node": "3.197.0", - "@aws-sdk/invalid-dependency": "3.197.0", - "@aws-sdk/md5-js": "3.197.0", - "@aws-sdk/middleware-bucket-endpoint": "3.197.0", - "@aws-sdk/middleware-content-length": "3.197.0", - "@aws-sdk/middleware-endpoint": "3.197.0", - "@aws-sdk/middleware-expect-continue": "3.197.0", - "@aws-sdk/middleware-flexible-checksums": "3.197.0", - "@aws-sdk/middleware-host-header": "3.197.0", - "@aws-sdk/middleware-location-constraint": "3.197.0", - "@aws-sdk/middleware-logger": "3.197.0", - "@aws-sdk/middleware-recursion-detection": "3.197.0", - "@aws-sdk/middleware-retry": "3.197.0", - "@aws-sdk/middleware-sdk-s3": "3.197.0", - "@aws-sdk/middleware-serde": "3.197.0", - "@aws-sdk/middleware-signing": "3.197.0", - "@aws-sdk/middleware-ssec": "3.197.0", - "@aws-sdk/middleware-stack": "3.197.0", - "@aws-sdk/middleware-user-agent": "3.197.0", - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/node-http-handler": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/signature-v4-multi-region": "3.197.0", - "@aws-sdk/smithy-client": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", - "@aws-sdk/util-base64-browser": "3.188.0", - "@aws-sdk/util-base64-node": "3.188.0", + "@aws-sdk/client-sts": "3.216.0", + "@aws-sdk/config-resolver": "3.215.0", + "@aws-sdk/credential-provider-node": "3.216.0", + "@aws-sdk/eventstream-serde-browser": "3.215.0", + "@aws-sdk/eventstream-serde-config-resolver": "3.215.0", + "@aws-sdk/eventstream-serde-node": "3.215.0", + "@aws-sdk/fetch-http-handler": "3.215.0", + "@aws-sdk/hash-blob-browser": "3.215.0", + "@aws-sdk/hash-node": "3.215.0", + "@aws-sdk/hash-stream-node": "3.215.0", + "@aws-sdk/invalid-dependency": "3.215.0", + "@aws-sdk/md5-js": "3.215.0", + "@aws-sdk/middleware-bucket-endpoint": "3.215.0", + "@aws-sdk/middleware-content-length": "3.215.0", + "@aws-sdk/middleware-endpoint": "3.215.0", + "@aws-sdk/middleware-expect-continue": "3.215.0", + "@aws-sdk/middleware-flexible-checksums": "3.215.0", + "@aws-sdk/middleware-host-header": "3.215.0", + "@aws-sdk/middleware-location-constraint": "3.215.0", + "@aws-sdk/middleware-logger": "3.215.0", + "@aws-sdk/middleware-recursion-detection": "3.215.0", + "@aws-sdk/middleware-retry": "3.215.0", + "@aws-sdk/middleware-sdk-s3": "3.215.0", + "@aws-sdk/middleware-serde": "3.215.0", + "@aws-sdk/middleware-signing": "3.215.0", + "@aws-sdk/middleware-ssec": "3.215.0", + "@aws-sdk/middleware-stack": "3.215.0", + "@aws-sdk/middleware-user-agent": "3.215.0", + "@aws-sdk/node-config-provider": "3.215.0", + "@aws-sdk/node-http-handler": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/signature-v4-multi-region": "3.215.0", + "@aws-sdk/smithy-client": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/url-parser": "3.215.0", + "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", - "@aws-sdk/util-body-length-node": "3.188.0", - "@aws-sdk/util-defaults-mode-browser": "3.197.0", - "@aws-sdk/util-defaults-mode-node": "3.197.0", - "@aws-sdk/util-endpoints": "3.197.0", - "@aws-sdk/util-stream-browser": "3.197.0", - "@aws-sdk/util-stream-node": "3.197.0", - "@aws-sdk/util-user-agent-browser": "3.197.0", - "@aws-sdk/util-user-agent-node": "3.197.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.215.0", + "@aws-sdk/util-defaults-mode-node": "3.215.0", + "@aws-sdk/util-endpoints": "3.216.0", + "@aws-sdk/util-stream-browser": "3.215.0", + "@aws-sdk/util-stream-node": "3.215.0", + "@aws-sdk/util-user-agent-browser": "3.215.0", + "@aws-sdk/util-user-agent-node": "3.215.0", "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.188.0", - "@aws-sdk/util-waiter": "3.197.0", - "@aws-sdk/xml-builder": "3.188.0", + "@aws-sdk/util-utf8-node": "3.208.0", + "@aws-sdk/util-waiter": "3.215.0", + "@aws-sdk/xml-builder": "3.201.0", "fast-xml-parser": "4.0.11", "tslib": "^2.3.1" } }, "@aws-sdk/client-sso": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.197.0.tgz", - "integrity": "sha512-jqH0DrZSVFhv61wPp0fqjfwUuMDbXEE4dq31K342kJlFyzrtt+XvHPUa1BC5ow8wpLkIn+ZZmt372hiGVKzrxw==", + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.216.0.tgz", + "integrity": "sha512-9F7JLx9RXEXovg6V4ylqQtpH+sIqQBMIPIrRSGWiQu65rmQQLskRkUka94JsGsBzq1IQwrnqtsuP3Lb0XtwLRA==", "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.197.0", - "@aws-sdk/fetch-http-handler": "3.197.0", - "@aws-sdk/hash-node": "3.197.0", - "@aws-sdk/invalid-dependency": "3.197.0", - "@aws-sdk/middleware-content-length": "3.197.0", - "@aws-sdk/middleware-endpoint": "3.197.0", - "@aws-sdk/middleware-host-header": "3.197.0", - "@aws-sdk/middleware-logger": "3.197.0", - "@aws-sdk/middleware-recursion-detection": "3.197.0", - "@aws-sdk/middleware-retry": "3.197.0", - "@aws-sdk/middleware-serde": "3.197.0", - "@aws-sdk/middleware-stack": "3.197.0", - "@aws-sdk/middleware-user-agent": "3.197.0", - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/node-http-handler": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/smithy-client": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", - "@aws-sdk/util-base64-browser": "3.188.0", - "@aws-sdk/util-base64-node": "3.188.0", + "@aws-sdk/config-resolver": "3.215.0", + "@aws-sdk/fetch-http-handler": "3.215.0", + "@aws-sdk/hash-node": "3.215.0", + "@aws-sdk/invalid-dependency": "3.215.0", + "@aws-sdk/middleware-content-length": "3.215.0", + "@aws-sdk/middleware-endpoint": "3.215.0", + "@aws-sdk/middleware-host-header": "3.215.0", + "@aws-sdk/middleware-logger": "3.215.0", + "@aws-sdk/middleware-recursion-detection": "3.215.0", + "@aws-sdk/middleware-retry": "3.215.0", + "@aws-sdk/middleware-serde": "3.215.0", + "@aws-sdk/middleware-stack": "3.215.0", + "@aws-sdk/middleware-user-agent": "3.215.0", + "@aws-sdk/node-config-provider": "3.215.0", + "@aws-sdk/node-http-handler": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/smithy-client": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/url-parser": "3.215.0", + "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", - "@aws-sdk/util-body-length-node": "3.188.0", - "@aws-sdk/util-defaults-mode-browser": "3.197.0", - "@aws-sdk/util-defaults-mode-node": "3.197.0", - "@aws-sdk/util-endpoints": "3.197.0", - "@aws-sdk/util-user-agent-browser": "3.197.0", - "@aws-sdk/util-user-agent-node": "3.197.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.215.0", + "@aws-sdk/util-defaults-mode-node": "3.215.0", + "@aws-sdk/util-endpoints": "3.216.0", + "@aws-sdk/util-user-agent-browser": "3.215.0", + "@aws-sdk/util-user-agent-node": "3.215.0", "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.188.0", + "@aws-sdk/util-utf8-node": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/client-sso-oidc": { + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.216.0.tgz", + "integrity": "sha512-O8kmM86BHwiSwyNoIe+iHXuSpUE9PBWl3re8u+/igt/w5W5VmMVz+zQr7gRUDQ1FDgLWNEdAJa0r+JFx3pZdzA==", + "requires": { + "@aws-crypto/sha256-browser": "2.0.0", + "@aws-crypto/sha256-js": "2.0.0", + "@aws-sdk/config-resolver": "3.215.0", + "@aws-sdk/fetch-http-handler": "3.215.0", + "@aws-sdk/hash-node": "3.215.0", + "@aws-sdk/invalid-dependency": "3.215.0", + "@aws-sdk/middleware-content-length": "3.215.0", + "@aws-sdk/middleware-endpoint": "3.215.0", + "@aws-sdk/middleware-host-header": "3.215.0", + "@aws-sdk/middleware-logger": "3.215.0", + "@aws-sdk/middleware-recursion-detection": "3.215.0", + "@aws-sdk/middleware-retry": "3.215.0", + "@aws-sdk/middleware-serde": "3.215.0", + "@aws-sdk/middleware-stack": "3.215.0", + "@aws-sdk/middleware-user-agent": "3.215.0", + "@aws-sdk/node-config-provider": "3.215.0", + "@aws-sdk/node-http-handler": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/smithy-client": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/url-parser": "3.215.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-body-length-browser": "3.188.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.215.0", + "@aws-sdk/util-defaults-mode-node": "3.215.0", + "@aws-sdk/util-endpoints": "3.216.0", + "@aws-sdk/util-user-agent-browser": "3.215.0", + "@aws-sdk/util-user-agent-node": "3.215.0", + "@aws-sdk/util-utf8-browser": "3.188.0", + "@aws-sdk/util-utf8-node": "3.208.0", "tslib": "^2.3.1" } }, "@aws-sdk/client-sts": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.197.0.tgz", - "integrity": "sha512-ybDqIpY5AsESFhgojlpCN8qJDOfrl7aDmfOOc4MAyhr5au0UlPcq+Vp51sHLvKtWFvdfbAoggcW/mXILtgw+TA==", + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.216.0.tgz", + "integrity": "sha512-8rpMZhZXh1kjsAvQ0WNBMDrnP4XneKkBQtt5XcDEmv/GpULt8jOIJnSIJQxt2gkRfd/I9MUC9C3aZNQoSMxa+g==", "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.197.0", - "@aws-sdk/credential-provider-node": "3.197.0", - "@aws-sdk/fetch-http-handler": "3.197.0", - "@aws-sdk/hash-node": "3.197.0", - "@aws-sdk/invalid-dependency": "3.197.0", - "@aws-sdk/middleware-content-length": "3.197.0", - "@aws-sdk/middleware-endpoint": "3.197.0", - "@aws-sdk/middleware-host-header": "3.197.0", - "@aws-sdk/middleware-logger": "3.197.0", - "@aws-sdk/middleware-recursion-detection": "3.197.0", - "@aws-sdk/middleware-retry": "3.197.0", - "@aws-sdk/middleware-sdk-sts": "3.197.0", - "@aws-sdk/middleware-serde": "3.197.0", - "@aws-sdk/middleware-signing": "3.197.0", - "@aws-sdk/middleware-stack": "3.197.0", - "@aws-sdk/middleware-user-agent": "3.197.0", - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/node-http-handler": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/smithy-client": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", - "@aws-sdk/util-base64-browser": "3.188.0", - "@aws-sdk/util-base64-node": "3.188.0", + "@aws-sdk/config-resolver": "3.215.0", + "@aws-sdk/credential-provider-node": "3.216.0", + "@aws-sdk/fetch-http-handler": "3.215.0", + "@aws-sdk/hash-node": "3.215.0", + "@aws-sdk/invalid-dependency": "3.215.0", + "@aws-sdk/middleware-content-length": "3.215.0", + "@aws-sdk/middleware-endpoint": "3.215.0", + "@aws-sdk/middleware-host-header": "3.215.0", + "@aws-sdk/middleware-logger": "3.215.0", + "@aws-sdk/middleware-recursion-detection": "3.215.0", + "@aws-sdk/middleware-retry": "3.215.0", + "@aws-sdk/middleware-sdk-sts": "3.215.0", + "@aws-sdk/middleware-serde": "3.215.0", + "@aws-sdk/middleware-signing": "3.215.0", + "@aws-sdk/middleware-stack": "3.215.0", + "@aws-sdk/middleware-user-agent": "3.215.0", + "@aws-sdk/node-config-provider": "3.215.0", + "@aws-sdk/node-http-handler": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/smithy-client": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/url-parser": "3.215.0", + "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", - "@aws-sdk/util-body-length-node": "3.188.0", - "@aws-sdk/util-defaults-mode-browser": "3.197.0", - "@aws-sdk/util-defaults-mode-node": "3.197.0", - "@aws-sdk/util-endpoints": "3.197.0", - "@aws-sdk/util-user-agent-browser": "3.197.0", - "@aws-sdk/util-user-agent-node": "3.197.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.215.0", + "@aws-sdk/util-defaults-mode-node": "3.215.0", + "@aws-sdk/util-endpoints": "3.216.0", + "@aws-sdk/util-user-agent-browser": "3.215.0", + "@aws-sdk/util-user-agent-node": "3.215.0", "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.188.0", + "@aws-sdk/util-utf8-node": "3.208.0", "fast-xml-parser": "4.0.11", "tslib": "^2.3.1" } }, "@aws-sdk/config-resolver": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.197.0.tgz", - "integrity": "sha512-G7SfNvS4MlADPt06Yb2FV+uHUt3eli17atuzoHjtFGtNzHvoZzTrulJfKxni1F5gswREyYBLMT4kbNxVwLOpqg==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.215.0.tgz", + "integrity": "sha512-DxX4R+YYLQOtg0qfceKBrjVD4t1mQBG1eb7IVr2QSlckFCX8ztUNymFMuaSEo3938Jyy/NpgfUDpFqPDaSKnng==", "requires": { - "@aws-sdk/signature-v4": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-config-provider": "3.188.0", - "@aws-sdk/util-middleware": "3.197.0", + "@aws-sdk/signature-v4": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-config-provider": "3.208.0", + "@aws-sdk/util-middleware": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-env": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.197.0.tgz", - "integrity": "sha512-Y1B8A9I78/5OPo7TKwAZCP0CvEi2Q2tXF7fr0Yl6iUOr57WY/QhKz54CsnhwYFL1DFQx62wNHvvWmOopcO6Urg==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.215.0.tgz", + "integrity": "sha512-n5G7I7Pxfsn81+tNsSOzspKp9SYai78oRfImsfFY4JLTcWutv7szMgFUbtEzBfUUINHpOxLiO2Lk5yu5K1C7IQ==", "requires": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-imds": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.197.0.tgz", - "integrity": "sha512-DiNwnOolX61Kk5gUoP/yxX1JkPeX1EeT73OKJPYFwe5tHN9Mc/at5TYcbG8qVrvMfNkem314wiZHSOt6EdJZBA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.215.0.tgz", + "integrity": "sha512-/4FUUR6u9gkNfxB6mEwBr0kk0myIkrDcXbAocWN3fPd/t7otzxpx/JqPZXgM6kcVP7M4T/QT75l1E1RRHLWCCQ==", "requires": { - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", + "@aws-sdk/node-config-provider": "3.215.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/url-parser": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-ini": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.197.0.tgz", - "integrity": "sha512-ngH6vivhi0ss4NdnYLDZiZboCPzEupL94AgTrzIuZVbN8DXcYB7BzccGjNCY196RXeL+UQJqH7Z71DXyOM95cA==", + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.216.0.tgz", + "integrity": "sha512-tSfrhgRO/l83Ou6WSOE4HauTLbDCOLMo/23Q6oGO8cs/d874J5rE4UM7a9OzE3QdM3eVbdAP7kXUgUS6i71cUw==", "requires": { - "@aws-sdk/credential-provider-env": "3.197.0", - "@aws-sdk/credential-provider-imds": "3.197.0", - "@aws-sdk/credential-provider-sso": "3.197.0", - "@aws-sdk/credential-provider-web-identity": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/credential-provider-env": "3.215.0", + "@aws-sdk/credential-provider-imds": "3.215.0", + "@aws-sdk/credential-provider-sso": "3.216.0", + "@aws-sdk/credential-provider-web-identity": "3.215.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/shared-ini-file-loader": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.197.0.tgz", - "integrity": "sha512-0vHkgsmrE8p3M0VqHUbq/WSR5a1wuqPggVEiYz8K6HYiKy3hXhmcGBnU923Fv9ZRVWat2QodYNe2HM7FRXcRpw==", + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.216.0.tgz", + "integrity": "sha512-Tumt53phB454DTkNB7a1tyCfrkA4JUGHzNLya14VLResGIGW5Re64atahUcO/WS7aTEs5vfAhBXO+p9o4K1rhQ==", "requires": { - "@aws-sdk/credential-provider-env": "3.197.0", - "@aws-sdk/credential-provider-imds": "3.197.0", - "@aws-sdk/credential-provider-ini": "3.197.0", - "@aws-sdk/credential-provider-process": "3.197.0", - "@aws-sdk/credential-provider-sso": "3.197.0", - "@aws-sdk/credential-provider-web-identity": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/credential-provider-env": "3.215.0", + "@aws-sdk/credential-provider-imds": "3.215.0", + "@aws-sdk/credential-provider-ini": "3.216.0", + "@aws-sdk/credential-provider-process": "3.215.0", + "@aws-sdk/credential-provider-sso": "3.216.0", + "@aws-sdk/credential-provider-web-identity": "3.215.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/shared-ini-file-loader": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-process": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.197.0.tgz", - "integrity": "sha512-tyKztm3ylza2i7wAaTwGTQTXG5rJgsglIunNsbC9CEsylGwf7PgQrFFlDYtOAprUTqFSkIaVa4D0nKVFtgkGAA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.215.0.tgz", + "integrity": "sha512-JNvj4L5B7W8byoFdfn/8Y4scoPiwCi+Ha/fRsFCrdSC7C+snDuxM/oQj33HI8DpKY1cjuigzEnpnxiNWaA09EA==", "requires": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/shared-ini-file-loader": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-sso": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.197.0.tgz", - "integrity": "sha512-do6fcurJTJ+SOD7zCwyFmiqM1ix8W9QiEgAyQsf9kKoHxnfWQGNgTsmF0PxtaGE8NZMRg8G+F4JUYbfY7UfcNQ==", + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.216.0.tgz", + "integrity": "sha512-1Cag6AUPU4wkeMnZDJvcXXJgwrlrIxbTcRsresJYBFvs1vGJGcTbjtWV0K6fiBRP66GtvuOL9WzQ/eqRf2J7Ag==", "requires": { - "@aws-sdk/client-sso": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/client-sso": "3.216.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/shared-ini-file-loader": "3.215.0", + "@aws-sdk/token-providers": "3.216.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-web-identity": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.197.0.tgz", - "integrity": "sha512-ls91XURhYKAbF5T1wDjSpTZuRdoW7PPwtAUjHBKzfXee4F7KhrLPSgxTBvHI81vG8b2J2VRbb/0kXtisdF7TAQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.215.0.tgz", + "integrity": "sha512-AWaDDEE3VU1HeLrXvyUrkQ6Wb3PQij5bvvrMil9L0da3b1yrcpoDanQQy7wBFBXcZIVmcmSFe5MMA/nyh2Le4g==", "requires": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/eventstream-codec": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-codec/-/eventstream-codec-3.197.0.tgz", - "integrity": "sha512-JYhajhfadjfBBIXqeKdVaHaJoY3tqyysG/m8InuUL7MecXHn4u+niSzz6x3OW2LpMP0JGVJVdcHUboeh+7Pl5g==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-codec/-/eventstream-codec-3.215.0.tgz", + "integrity": "sha512-Uwgkq6ViQnfd1l+qhWPGdzxh+YhD1N6RYL0kEcp1ovsR+rC/0qUsM9VZrSckZn4jB+0ATqIoOXtcUYP4+xrNmg==", "requires": { "@aws-crypto/crc32": "2.0.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-hex-encoding": "3.188.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-hex-encoding": "3.201.0", "tslib": "^2.3.1" } }, "@aws-sdk/eventstream-serde-browser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.197.0.tgz", - "integrity": "sha512-Sj1/AgRjljR5rla0zmh4gQHkeTWxkgpCaW+ess7adCVcgBFkj/UL4y64Kc0Jipnrc5EWJ3eQJu3V5cM+tg7r6w==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.215.0.tgz", + "integrity": "sha512-VfTl69/C/cOjm47blgvdBz2pw8//6qkLPvQetfDOgf40JvsjBp9afUDNiKV08ulzoUeVZBosgHs09oZ2VDj09Q==", "requires": { - "@aws-sdk/eventstream-serde-universal": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/eventstream-serde-universal": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/eventstream-serde-config-resolver": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.197.0.tgz", - "integrity": "sha512-PjW5IvK1vi9NnsY2qEwU5CGvpeTR9awPdQuwupFJpLAIGFKpKXQ7Loh+PHHe52yA4LxcRs2b1TL6oDxK48yWzQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.215.0.tgz", + "integrity": "sha512-NrVb8HA0tUsruAj8yVWTaRIfcAB9lsajzksCqS7W917x/esoIRwoeF2zua63Ivro7hLeCjzS2Mws5IhvSl+/tQ==", "requires": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/eventstream-serde-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.197.0.tgz", - "integrity": "sha512-WSrGq7plnokRbtSoiuq/7w7eZyIVRBrNxIthw42ZJjJmHcUGV7aVw7R1ydkHp4Vhtc/VU4gaoBzYvNDSMSF99g==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.215.0.tgz", + "integrity": "sha512-DxABFUIpmFV1NOfwF8FtX+l7kzmMTTJf2BfXvGoYemmBtv9Cc31Qg83ouD8xuNSx9qlbFOgpWaNpzEZ400porA==", "requires": { - "@aws-sdk/eventstream-serde-universal": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/eventstream-serde-universal": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/eventstream-serde-universal": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.197.0.tgz", - "integrity": "sha512-zQmrWtaJeNjrjskZbH3Lv+JkBg9LHR9s9BT4hE2w90bvLQhdyFuzR7OfxWSGbIRYFquxT31r0BYNwx3QgqIxAQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.215.0.tgz", + "integrity": "sha512-8DmY3vVZtXAKzW0wOSC0bN+WF8qNZKaCqe5JCM3WwS1Wu6F6qI7b064VSe5b3d9BbJzeMccOcJeCg3ZU/3nYUQ==", "requires": { - "@aws-sdk/eventstream-codec": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/eventstream-codec": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/fetch-http-handler": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.197.0.tgz", - "integrity": "sha512-Ztp71HP/qeG/6AwQDRq49cUlc4UTLAUuAZ7ivcrDaTV/T8HaNtnEde00RnT9MVr3OZCou3I1H37qRwas5+wOVQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.215.0.tgz", + "integrity": "sha512-JfZyrJOE+0ik1PumsIUZd0NfgEx4sZ43VSdPCD9GRhssRWudNsSF1B5fz3xA5v+1y5oQPjXZyaWCzKtnYruiWw==", "requires": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/querystring-builder": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-base64-browser": "3.188.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/querystring-builder": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-base64": "3.208.0", "tslib": "^2.3.1" } }, "@aws-sdk/hash-blob-browser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.197.0.tgz", - "integrity": "sha512-3NZKhcFRlZPdwx9WmSMKutrtKGpGuFxFQq/j1usFoaFylEEcUaO2nz0jPqIaqRabRyjQHdHtzx8hObLVbwhJ5g==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.215.0.tgz", + "integrity": "sha512-plHPFOSEHig0g/ou1H4QW31AyPGzwR0qgUKIEUFf3lWIfBI3BnvA4t24cJ87I204oqENj/+ZSNAj5qeAZfMFXw==", "requires": { "@aws-sdk/chunked-blob-reader": "3.188.0", - "@aws-sdk/chunked-blob-reader-native": "3.188.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/chunked-blob-reader-native": "3.208.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/hash-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.197.0.tgz", - "integrity": "sha512-NCXDY9IsTDNKPjJBY2yMmpM1GMfc5zcNxTInFeMpIhOjz3yYf6UqrYLtgqdzvTjgZlXhuFneBweqpfWo77KFbg==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.215.0.tgz", + "integrity": "sha512-MkSRuZvo1RCRmI0VNEmRYCGGD/DkMd9lqnLtOyglMPnSX1mhyD4/DyXmcc3rYa7PsjDRAfykGWJRiMqpoMLjiQ==", "requires": { - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-buffer-from": "3.188.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" } }, "@aws-sdk/hash-stream-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.197.0.tgz", - "integrity": "sha512-lcj1y7te8NI8Byn1C5P4XgJHEtCRjEfT65gHsxW6NgSBzay2NjU42Z15n5gL00SZAXUeSYSwz012Xjse1Fcxcw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.215.0.tgz", + "integrity": "sha512-1VEpiXu0jH7bSRYfEeSrznYq41zpUV4TtStoBXdcEVaOqT4LNQ5k1g1602544UWKUJ7D+E9NCNXpjM6TSMmG4A==", "requires": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/invalid-dependency": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.197.0.tgz", - "integrity": "sha512-C5yz97yskupjLkj1zKefPzLjPuhV3Ci27zNfQkI1XcjnYyrOJm5bNuR6DUuMEd7flgjOvWL//5L0hmW/sF7vNg==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.215.0.tgz", + "integrity": "sha512-++bK4BUQe8/CL/YcLZcQB8qPOhiXxhbuhYzfFS7PNVvW1QOLqKRZL/lKs24gzjcOmw7IhAbCybDZwvu2TM4DAg==", "requires": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/is-array-buffer": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.188.0.tgz", - "integrity": "sha512-n69N4zJZCNd87Rf4NzufPzhactUeM877Y0Tp/F3KiHqGeTnVjYUa4Lv1vLBjqtfjYb2HWT3NKlYn5yzrhaEwiQ==", + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz", + "integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==", "requires": { "tslib": "^2.3.1" } }, "@aws-sdk/md5-js": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.197.0.tgz", - "integrity": "sha512-SGH0SAO46utojYcD9xbeIQYIJQz9UGKYMeexkm2xYvkaWvtAkse2LPCQr1vvD3iZId6ZTru/39EF2FVqyJit2w==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.215.0.tgz", + "integrity": "sha512-2f5r2raNDG9USKHKRgAW2r1MzCrkemLASlDXASgAuAD3gYGURVi4ZDhI3I1GECY5dPEgGC+3B2rkEb9MfQAaEg==", "requires": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.188.0", + "@aws-sdk/util-utf8-node": "3.208.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-bucket-endpoint": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.197.0.tgz", - "integrity": "sha512-RZG2KV0AMX7nAr/uCYfJefyfWvS4SgarcRbWjwlL4QdLespfVRXWtMzr2dRt8gLxg6EFA06A22YMKg3ZCPGDXw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.215.0.tgz", + "integrity": "sha512-zMeYrnHX8S9VFDPH3fryXdPXW1DWeX9URKAkU1oxZLGpBX91CsWzUDjaMhbkDgvwO2oeKgjnZ2vCwcNNKP266w==", "requires": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-arn-parser": "3.188.0", - "@aws-sdk/util-config-provider": "3.188.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-arn-parser": "3.208.0", + "@aws-sdk/util-config-provider": "3.208.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-content-length": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.197.0.tgz", - "integrity": "sha512-Qvy92+YObZdAR7Qza4dT3yzSe4NfCbPGzw4kvmsUttP/z2cm5knqNk6FUIAvaXhRh3nTnrebGGwxQjbphYNYCQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.215.0.tgz", + "integrity": "sha512-zKJRb6jDLFl9nl/muSFbiQHA4uK3skinuDRcyLbpMvvzhuK/PVodv9QI1+wIUsFdXkaSxAlva1oG4bL8ZFi+sQ==", "requires": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-endpoint": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.197.0.tgz", - "integrity": "sha512-o6Uc3KoqfPn4xhwVaLO5IDOKw0mvQeQSqzS3hgGgq9uT8yLoDhs8y40cLNWCThYBBVueuXKh71QSUF7FO+X05g==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.215.0.tgz", + "integrity": "sha512-W0QXL5emcN9IXtMbnWT/abLxBFH2tGIfnre2jPNmZ9M7uVFxUwwv5OTUXxNLGNehJHKhiJPwhfQvMy20IDzVcw==", "requires": { - "@aws-sdk/middleware-serde": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/signature-v4": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", - "@aws-sdk/util-config-provider": "3.188.0", - "@aws-sdk/util-middleware": "3.197.0", + "@aws-sdk/middleware-serde": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/signature-v4": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/url-parser": "3.215.0", + "@aws-sdk/util-config-provider": "3.208.0", + "@aws-sdk/util-middleware": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-expect-continue": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.197.0.tgz", - "integrity": "sha512-6EtgTlpFj+QURCnM3WvEDvtiTwh3NZpJNip1CqzB+8luJxOw50/lh0uogDwrdEZG1jKfh3htIoTfqtaxFCJlfA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.215.0.tgz", + "integrity": "sha512-X2G7MnBSYPPmLqqd9xDGl2ik9dUsGYcYzulf2Z1HVEGJO6btZJtPfC+IIwuJjsiCWCgbypM1X/oOSxdrmRkUNQ==", "requires": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-flexible-checksums": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.197.0.tgz", - "integrity": "sha512-tPwGf4ZADhQptZ7QvxXo4t9WbFFIuWHv1EnTzR/g3ANUvHhlIxWYV38HWvU2rYCVXEkY7pHEwM8yUpALoqNx1Q==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.215.0.tgz", + "integrity": "sha512-fAFcR+QsrGPCgYssdTYmayoCXDKYzlv0a14jaJtZsacXQNGefXly9D856lri+yG2jxqQ6Sa0FzU4Pm7s3j4mvg==", "requires": { "@aws-crypto/crc32": "2.0.0", "@aws-crypto/crc32c": "2.0.0", - "@aws-sdk/is-array-buffer": "3.188.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/is-array-buffer": "3.201.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-host-header": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.197.0.tgz", - "integrity": "sha512-Haa5uP0l2IqMOCzIvPp4oDMAo8lBZUKhCp6Ck4ERJ33rHW669dTF6C2xQaevnVYPoL8D4S7mgyEpCFgvFf+CHQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.215.0.tgz", + "integrity": "sha512-GOqI7VwoENZwn+6tIMrrJ4SipIqL2JCh+BNvORVcy7CQxn1ViKkna7iaCx+QMjpg/kn9cR6kfY0n1FmgZR1w9A==", "requires": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-location-constraint": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.197.0.tgz", - "integrity": "sha512-QjSBlHfvbGD8o/x9JxI5Jzo1OBBBlrwTm0IRkxEbEddLX/O9NxIe/EIhvIE1TVlLpTz7+qZK9ykvIjtm4S8K3w==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.215.0.tgz", + "integrity": "sha512-taDOIGv2rsAyDEJxSm/nhKS4nsBPUKKCvIpK26E7uGshQZFLtTLTJMp8zGb1IBfUSxRngdWljRmOS5AJUexNbQ==", "requires": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-logger": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.197.0.tgz", - "integrity": "sha512-AdMB5eNHLpUphtwbVNPLMQzZFFht3N/QbblHtMzchzVvgvjVhiZoS4cVxIzNSpSibMPfZr8ysnPN2bhHcCc1iw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.215.0.tgz", + "integrity": "sha512-0h4GGF0rV3jnY3jxmcAWsOdqHCYf25s0biSjmgTei+l/5S+geOGrovRPCNep0LLg0i9D8bkZsXISojilETbf+g==", "requires": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-recursion-detection": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.197.0.tgz", - "integrity": "sha512-nPi2iRnqkq0eRYitwFSZfdRrhrHe79Hjq/Iaf9jGSFBs5IJalKl+ximQ28HJrxjQfsp4NWpntAxhol1vpqI1UQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.215.0.tgz", + "integrity": "sha512-KQ+kiEsaluM4i6opjusUukxY78+UhfR7vzXHDkzZK/GplQ1hY0B+rwVO1eaULmlnmf3FK+Wd6lwrPV7xS2W+EA==", "requires": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-retry": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.197.0.tgz", - "integrity": "sha512-mEWVL5n/zeF+2MhvT4ROn+5tG3rOX4GJc0aZBz8aUJAqU0Zn6euA1z75XoYXxA6E2zrq20adcWOLxmAvtoHOlg==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.215.0.tgz", + "integrity": "sha512-I/dnUPVg2Kp3lW+MywBoPp06EOng8IfuaS9ph4bcJpQKrhNU5ekRgCHH2C4k1A6GcP8uyHxQ5TVV6j+l0QPIsA==", "requires": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/service-error-classification": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-middleware": "3.197.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/service-error-classification": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-middleware": "3.215.0", "tslib": "^2.3.1", "uuid": "^8.3.2" }, @@ -17095,241 +17360,245 @@ } }, "@aws-sdk/middleware-sdk-s3": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.197.0.tgz", - "integrity": "sha512-M99wM6H/3pMKAgZMyWoJTVfFJPPOVE2wWk2Scp+UfegZeeNTGJ5U8/RZx7hplawySqvdveBNff4vlzCUiWVg5A==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.215.0.tgz", + "integrity": "sha512-+SM+xCIFNSFIKM9KyvgIu4Ah5Z/SbHS8mDkinHkY8X/iUryrsKKBs7xnpMAaJCTFkK/8gO6Lhdda1nbvGozhdA==", "requires": { - "@aws-sdk/middleware-bucket-endpoint": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-arn-parser": "3.188.0", + "@aws-sdk/middleware-bucket-endpoint": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-arn-parser": "3.208.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-sdk-sts": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.197.0.tgz", - "integrity": "sha512-hon/cQhC/SP0QEA+hLM53rPchGxy9n1nX6/VCyflj6iPaY/OYV6HmbuktmrrISSm5tf4LnXNrUjA9XaeT1DGPA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.215.0.tgz", + "integrity": "sha512-wJRxoDf+2egbRgochaQL8+zzADx8FM/2W0spKNj8x+t/3iqw70QwxCfuEKW/uFQ3ph6eaIrv7gYc8RRjwhD8rg==", "requires": { - "@aws-sdk/middleware-signing": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/signature-v4": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/middleware-signing": "3.215.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/signature-v4": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-serde": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.197.0.tgz", - "integrity": "sha512-UzQmQrR5QakldkBCKSGl3ei+VM9GFBO0OTL08VYHmU5wuQTOJcBnZ+8qa+lUf2BzLdTTlliR0NfUlr9r1XDx+w==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.215.0.tgz", + "integrity": "sha512-+uhLXdKvvQZcRRFc3UmemSr/YUHA4Jc+1YMjHxc3v8vvfztFJBb0wgBx999myOi8PmkYThlRBQDzXy9UCIhIJw==", "requires": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-signing": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.197.0.tgz", - "integrity": "sha512-PHdtbV92lUtqtuYcMYfYXknh2Lsv6KHeYvy1MZaJouahgJ2urpPsuWlQHjcjEA2dYDpSetjCAtDQvnke0siSTA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.215.0.tgz", + "integrity": "sha512-3BqzYqkmdPeOxjI8DVQE7Bm7J5QIvDy30abglXqrDg6npw6KonKI2Q3FIPFf+oLpZTMStwkoQOnwXHTPrSZ6Tg==", "requires": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/signature-v4": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-middleware": "3.197.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/signature-v4": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-middleware": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-ssec": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.197.0.tgz", - "integrity": "sha512-6ms0h78PhmWPaxSLaHYvZDb4JkmTQ1AGtQEk7ymhCse7TDpS9cpoo/MNU5wWPj0HX1JHSNce39S0ot2oSjYIBA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.215.0.tgz", + "integrity": "sha512-iIiB2fGneR8iZN2tgQoACq1jQlG50zU49cus/jAAKjy6B7QeKXy5Ld8/+eNnzcjLuBzzeLtER2YWwFLWqUOZpw==", "requires": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-stack": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.197.0.tgz", - "integrity": "sha512-+5mDVmoTrFgglTygOwi/6nXv127d9ipite+BeIo18kmkY1JV5uld8ccErXJIcP7vrxsxNt4rt/bUenrL/sDpZg==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.215.0.tgz", + "integrity": "sha512-rdSVL7LxRgjlvoluqwODD4ypBy2k/YVl6FrDplyCMSi8m2WHZG99FzdmR9bpnWK+0DGzYZSMRYx6ynJ9N9PsSw==", "requires": { "tslib": "^2.3.1" } }, "@aws-sdk/middleware-user-agent": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.197.0.tgz", - "integrity": "sha512-slEmyYlctQmQWkltfMH02cj6z5NWlCodLQQVGdinFzy+jPhfCLtcwxAfFhT+dGLc9/UtVXqtn+OfqkIoUBs+fw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.215.0.tgz", + "integrity": "sha512-X6GfoMNoEITTw7rGL/gWs8UZ0cmmmezvKcl+KtHsA642R05OR4mY5G7LdbWAw0bcrwKsuKOGmwUrC9lzGqbWUw==", "requires": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/node-config-provider": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.197.0.tgz", - "integrity": "sha512-gDlha5uTEvacrhLnwKDo2nzfPE1CQpoU+eNUJF7JEfoUv69GGS/23C6Lo1PueWI5UtdkqBP12aY8woKRjwjQfA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.215.0.tgz", + "integrity": "sha512-notckD94QwwxC0GsfpTxB7VH8SREIIlMsUSddqGtpModa0cq/wRb9rqnydZSoznbYpK1ND6h0C9hr/2PNz89zw==", "requires": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/shared-ini-file-loader": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/node-http-handler": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.197.0.tgz", - "integrity": "sha512-ZkXqafE0KgOlUdXuFos2VAMoSniGARBGubWkfTnKV8Ky4npXRHNV293dOpxH4KUy38siRIQruv0b+sDU5wxeFw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.215.0.tgz", + "integrity": "sha512-btKWSR7m0UuWIN3p5MfSIvhqeYik7xri7U6nWuVI5GVzIYjzxEZOMvPAinDLDxL5wipodi0ZvTUNdDJdm7BcGQ==", "requires": { - "@aws-sdk/abort-controller": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/querystring-builder": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/abort-controller": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/querystring-builder": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/property-provider": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.197.0.tgz", - "integrity": "sha512-5kLErMu1ELZTwU2oQtJSE6fhaPMRODp9uidUMRvozJLuCqmijygXVb+7adFnX1X/pl5Wv9mi7GkiOncWvjDKjA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.215.0.tgz", + "integrity": "sha512-dDPjMCCopkRURAmOJCMSlpIQ5BGWCpYj0+FIfZ5qWQs24fn1PAkQHecOiBhJO0ZSVuQy3xcIyWsAp1NE5e+7ug==", "requires": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/protocol-http": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.197.0.tgz", - "integrity": "sha512-fKM7GDTQigDnjRlEHu8L2oZRcgTitSgdAHovJ/wu9131H+nM9gbiqvKh4CXToygqA1NUMYoJDUpZTv1LGMwsDQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.215.0.tgz", + "integrity": "sha512-qp6Y6v4S534LAjadiVl9p7ErK7ImphOKq6yhFyQwxko6iITLcz8ib3yU27fs4QJcnNj5ZooqW/YlL/0EikDxCQ==", "requires": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/querystring-builder": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.197.0.tgz", - "integrity": "sha512-+t4oit2tpCD9hJQtKFEOgL+9hPtXJbkCNxLwnNgu9Vr0wr1T0orso825Dbaxh8VM39mnDOaId+zQ9wZJPpXkHA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.215.0.tgz", + "integrity": "sha512-eilk8CqG37BVhQklLif00K2dOJgDzacUi8h3KVQ72ry1V3h345i4HsmaFIxvnz8XtNyDvV8qFAzeYg9n2P9RQA==", "requires": { - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-uri-escape": "3.188.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-uri-escape": "3.201.0", "tslib": "^2.3.1" } }, "@aws-sdk/querystring-parser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.197.0.tgz", - "integrity": "sha512-FluJGKzNmXBZ6/yJFlsZQ+xrpnVcg7dK/cWR3vZo/jCB0muw3QpbEMCdC7/frh0C+0zHfClbYh0TbmEuS21XTw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.215.0.tgz", + "integrity": "sha512-8h/9H8dWM4fZO27UGzo8W5JXln4yJMugPyUl4qFA437gzPgNFN95+oLJWXtHMlfCHC5T/PDKetY9TarMDgBD0Q==", "requires": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/s3-request-presigner": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.197.0.tgz", - "integrity": "sha512-r07RXjc9S4ya/1x7HEPNZKqX81sVQp4YVfo+9yQk79qHTFVWM0IcUXXQdvVjn9YvF3iy6rKtM0ZgSxv3FjkKQg==", + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.216.0.tgz", + "integrity": "sha512-JK7W/F3yFh0Bm585mBBTqYdkGPDelDT8OO6vv/NwzjxHkqfN3MTc1/sGPWd0XqJ4EHnscck+rq4jYHyYcem7mQ==", "requires": { - "@aws-sdk/middleware-endpoint": "3.197.0", - "@aws-sdk/middleware-sdk-s3": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/signature-v4-multi-region": "3.197.0", - "@aws-sdk/smithy-client": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-create-request": "3.197.0", - "@aws-sdk/util-format-url": "3.197.0", + "@aws-sdk/middleware-endpoint": "3.215.0", + "@aws-sdk/middleware-sdk-s3": "3.215.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/signature-v4-multi-region": "3.215.0", + "@aws-sdk/smithy-client": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-create-request": "3.215.0", + "@aws-sdk/util-format-url": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/service-error-classification": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.197.0.tgz", - "integrity": "sha512-ok1Nw5plwlTKPkyMVRJI+SVWjiitjfVveiV6zEIN87RXKPjlzQGIuHXFkDChsHT5P2TueHwzPG8lnpGBlHqBBw==" + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.215.0.tgz", + "integrity": "sha512-SKBvClGFGzMPsjBBKjneaUazLCNr6bSxe9eFvOr3gCwuwE2jPQwW3VE1mb62howuvm6cLthEDwLQp/FsT1gMsw==" }, "@aws-sdk/shared-ini-file-loader": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.197.0.tgz", - "integrity": "sha512-dVgGmieJLgnw+OZdGxuifAc/I1zJm/W4Ixf2zowV66KisCScqpJJGhtSylBoTqE4ssWUH804TJHy0fFOxD2GAQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.215.0.tgz", + "integrity": "sha512-unzQeLOyUiYHr8WxxandHo0OaCj31gx0wpt8dn2cZcHm/MdCqHcHcsQqOVnQsWQrrxY/XZ27cPyMVQeicNKYwQ==", "requires": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/signature-v4": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.197.0.tgz", - "integrity": "sha512-8eTw9PeW4146WDGqXUxpFwB4neuW/GYbjJxdjDN29Ec6rThazADHZyKwYOBn/wGUUiiqeBL37deRsBk6x2FgRw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.215.0.tgz", + "integrity": "sha512-Rc73uUCi3eJneO25DydLTfJYamXeuKS9YIhNMTKlpvcN1UQAmAnUbAmCuEmqvkYOiGD1i4/kd8kBga708iIikQ==", "requires": { - "@aws-sdk/is-array-buffer": "3.188.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-hex-encoding": "3.188.0", - "@aws-sdk/util-middleware": "3.197.0", - "@aws-sdk/util-uri-escape": "3.188.0", + "@aws-sdk/is-array-buffer": "3.201.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-hex-encoding": "3.201.0", + "@aws-sdk/util-middleware": "3.215.0", + "@aws-sdk/util-uri-escape": "3.201.0", "tslib": "^2.3.1" } }, "@aws-sdk/signature-v4-multi-region": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.197.0.tgz", - "integrity": "sha512-MkDKSrRXN2q6S1NGS0fH2NcUxGR5WV62657yQKwZw14BQuD0YtUQ5W39UZGY0Tn8cePMYD+NVqNJg1ndtW7oMQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.215.0.tgz", + "integrity": "sha512-XOUUNWs6I4vAa+Byj6qL/+DCWA5CjcRyA9sitYy8sNqhLcet8WoYf7vJL2LW1nvdzRb/pGBNWLiQOZ+9sadYeg==", "requires": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/signature-v4": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-arn-parser": "3.188.0", + "@aws-sdk/protocol-http": "3.215.0", + "@aws-sdk/signature-v4": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-arn-parser": "3.208.0", "tslib": "^2.3.1" } }, "@aws-sdk/smithy-client": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.197.0.tgz", - "integrity": "sha512-8E+OhE/WzC/SGQxtSDc88i5PDxGNCYrrtJRSYJ5JoPSgQ6qPMMizGVbK54ZffridC1Y+Bud2+dntkbRL8NNddQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.215.0.tgz", + "integrity": "sha512-PiZfCdZkPohzMPrRmJ46TPOf2Tr/dhKYdwQArRnOOIsJABUGXjlzCUE8vysDN35XZYRx5f9hd+/U7kayhniq2w==", "requires": { - "@aws-sdk/middleware-stack": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/middleware-stack": "3.215.0", + "@aws-sdk/types": "3.215.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/token-providers": { + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.216.0.tgz", + "integrity": "sha512-cEmOfG7njWl0OA5lR65Sp2SW1i8ZLjf7C95TZ1e6t2Oo5aUFeN3aKBxMOV//1yc+BNzcFBnoHP/f29GhWxUOxA==", + "requires": { + "@aws-sdk/client-sso-oidc": "3.216.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/shared-ini-file-loader": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/types": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.197.0.tgz", - "integrity": "sha512-ZM6s4AIWLWeKiuigPCSbSSBn9i7s1o+/U/dRpLax3bSpH7E6PU5hEnIXEzWsIXWU1/8bmTttY8qmYEx3RCmbpw==" + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.215.0.tgz", + "integrity": "sha512-eRbCVjwzTYd9C5e2mceScJ6D2kYDDEC3PLkYfJa+1wH9iiF2JlbiYozAokyeYBHQ+AjmD93MK58RBoM8iZfH0Q==" }, "@aws-sdk/url-parser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.197.0.tgz", - "integrity": "sha512-+ffKdbdEKOja1sjIeLR+IUYx3YgRJ+wnlkXj/8kPt1iGog8RZjoINdz3VYaojtA9GfoTw0pFwehxmLJ+UVBfXQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.215.0.tgz", + "integrity": "sha512-r/qIk3TUlV36JvoRjTErFm0LzzgNKLB1YUG8zVZCGAc2TEATi8OVEmsZvi+KfTmsbszulITJVcjZKbHLbGoUzg==", "requires": { - "@aws-sdk/querystring-parser": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/querystring-parser": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/util-arn-parser": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.188.0.tgz", - "integrity": "sha512-q4nZzt/g3sRY9a3sj1PaNFwql5bXfKSW4fRy0zLdbZHcYdgq2oQfVsJTIlL9lUNjifkXiIsmk61Q16JExtrLyw==", + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.208.0.tgz", + "integrity": "sha512-QV4af+kscova9dv4VuHOgH8wEr/IIYHDGcnyVtkUEqahCejWr1Kuk+SBK0xMwnZY5LSycOtQ8aeqHOn9qOjZtA==", "requires": { "tslib": "^2.3.1" } }, - "@aws-sdk/util-base64-browser": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.188.0.tgz", - "integrity": "sha512-qlH+5NZBLiyKziL335BEPedYxX6j+p7KFRWXvDQox9S+s+gLCayednpK+fteOhBenCcR9fUZOVuAPScy1I8qCg==", + "@aws-sdk/util-base64": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz", + "integrity": "sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg==", "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-base64-node": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.188.0.tgz", - "integrity": "sha512-r1dccRsRjKq+OhVRUfqFiW3sGgZBjHbMeHLbrAs9jrOjU2PTQ8PSzAXLvX/9lmp7YjmX17Qvlsg0NCr1tbB9OA==", - "requires": { - "@aws-sdk/util-buffer-from": "3.188.0", + "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" } }, @@ -17342,88 +17611,88 @@ } }, "@aws-sdk/util-body-length-node": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.188.0.tgz", - "integrity": "sha512-XwqP3vxk60MKp4YDdvDeCD6BPOiG2e+/Ou4AofZOy5/toB6NKz2pFNibQIUg2+jc7mPMnGnvOW3MQEgSJ+gu/Q==", + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz", + "integrity": "sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg==", "requires": { "tslib": "^2.3.1" } }, "@aws-sdk/util-buffer-from": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.188.0.tgz", - "integrity": "sha512-NX1WXZ8TH20IZb4jPFT2CnLKSqZWddGxtfiWxD9M47YOtq/SSQeR82fhqqVjJn4P8w2F5E28f+Du4ntg/sGcxA==", + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz", + "integrity": "sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==", "requires": { - "@aws-sdk/is-array-buffer": "3.188.0", + "@aws-sdk/is-array-buffer": "3.201.0", "tslib": "^2.3.1" } }, "@aws-sdk/util-config-provider": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.188.0.tgz", - "integrity": "sha512-LBA7tLbi7v4uvbOJhSnjJrxbcRifKK/1ZVK94JTV2MNSCCyNkFotyEI5UWDl10YKriTIUyf7o5cakpiDZ3O4xg==", + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz", + "integrity": "sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg==", "requires": { "tslib": "^2.3.1" } }, "@aws-sdk/util-create-request": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-create-request/-/util-create-request-3.197.0.tgz", - "integrity": "sha512-pWpv4Nezed9rACFi+dQWASO203SEtBNn6FKDUW+XF3rCuu1m8cIiX6AG4NB2Sy9Tw8Ua+aAfW+9p3Rae0ZvpjQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-create-request/-/util-create-request-3.215.0.tgz", + "integrity": "sha512-V+f6YYSUHGNWVLQpdTgpbCPgnkXmHtC9uEk/rQjzJAvzAZmqYuPc2hheBSAt7gN6yzLoMeDBmjhZMh79fFZ3UQ==", "requires": { - "@aws-sdk/middleware-stack": "3.197.0", - "@aws-sdk/smithy-client": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/middleware-stack": "3.215.0", + "@aws-sdk/smithy-client": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/util-defaults-mode-browser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.197.0.tgz", - "integrity": "sha512-5DaTKR0DLJR02wd844I+GR0HnRpYO2IZAtXK444ubLL2Mi9M8AZ/aGXNvZpIsAIjy/InTK0K2B/c/8DJzLU23Q==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.215.0.tgz", + "integrity": "sha512-MiNfZgB0I4dR8CBxH163W7c9KvE38sgCHNPWopMqSX5ezz7cuCPohCU0XsWd4I7K31PvzuqmKgOiKBAZraQJMA==", "requires": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/types": "3.215.0", "bowser": "^2.11.0", "tslib": "^2.3.1" } }, "@aws-sdk/util-defaults-mode-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.197.0.tgz", - "integrity": "sha512-dZtw/rSHlQ0uCDkSU4Jdxwx/hIdw9lbwW3hCjo0EtjQrRN9c5Cs3NNaYQg3Ghs6VT2F0aO0BcF7KTPQ6ZPcGeg==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.215.0.tgz", + "integrity": "sha512-mSp3R8GljQ+4UT3QMOksQk9L0cWbFLvR7bBmAlt4+GobgTjpRfzFjBP3uwrCqFa3BKDUR3FeJq3qwo+xeY1Krg==", "requires": { - "@aws-sdk/config-resolver": "3.197.0", - "@aws-sdk/credential-provider-imds": "3.197.0", - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/config-resolver": "3.215.0", + "@aws-sdk/credential-provider-imds": "3.215.0", + "@aws-sdk/node-config-provider": "3.215.0", + "@aws-sdk/property-provider": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/util-endpoints": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.197.0.tgz", - "integrity": "sha512-ZcR2sSTfIO7p05MFRbGnp5KJT5WaXTZe675jQKWbgJ2VizQz0loOyoofFS4R1CTIuNitGY9+g5pmMZelULa/Aw==", + "version": "3.216.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.216.0.tgz", + "integrity": "sha512-uHje4H6Qj/z/op8UZoSuvGpEZhz/r+AGY0rCihFo7XjhT4RYVxb2Eb9uHRK/IAeHU4kjHAdpQiWGMSmnT/UacA==", "requires": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/util-format-url": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.197.0.tgz", - "integrity": "sha512-4LgRupwAB4dKTby7j4luomdUuq4n9SxRDJT3fuAEw1KSZJCDFqnQGJWRAW0jjYyk54vzktnzK0npWByumYq54w==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.215.0.tgz", + "integrity": "sha512-j8X2pIwpSxtS23Za6t36pQjeVe5ouunoMuOj4wdj2uB3Cbf2vvd84J5lF8bUHQA35f5PRqdYtU1KyolQudCXsA==", "requires": { - "@aws-sdk/querystring-builder": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/querystring-builder": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/util-hex-encoding": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.188.0.tgz", - "integrity": "sha512-QyWovTtjQ2RYxqVM+STPh65owSqzuXURnfoof778spyX4iQ4z46wOge1YV2ZtwS8w5LWd9eeVvDrLu5POPYOnA==", + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz", + "integrity": "sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA==", "requires": { "tslib": "^2.3.1" } @@ -17437,62 +17706,62 @@ } }, "@aws-sdk/util-middleware": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.197.0.tgz", - "integrity": "sha512-ynruKtZuxMT97ZcmbF262GeUeaQKjnSOm4T4HHLgdJx4LeW8vo4xla4ffNh5Tb+MGEJz22V5ldcddrpF4FobnA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.215.0.tgz", + "integrity": "sha512-DfHGlFlQCr+T/xhjS36HH8JEThDVB5lg5NZ6x4Cibhyeps9YX/4ovLAIx3B19H34sdWhZi7q6LfslCHLRu2+7Q==", "requires": { "tslib": "^2.3.1" } }, "@aws-sdk/util-stream-browser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-stream-browser/-/util-stream-browser-3.197.0.tgz", - "integrity": "sha512-iwMKvtVTArfGAEJLob3LE2XnIPyl3uZHwo8jNRZKd6zz/ukI4SlLYHMnNA8F75QT0p8/6tbWFGoBojYqljYjLQ==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-stream-browser/-/util-stream-browser-3.215.0.tgz", + "integrity": "sha512-UVyCJJ5sCYLVHCW4Lpm8+ae+ISHPHZ/OqAoLbUpehk2RLGP6QhpQOrpJADLXPuB8YuWFMkoLLIVL8VE7mmTPWA==", "requires": { - "@aws-sdk/fetch-http-handler": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-base64-browser": "3.188.0", - "@aws-sdk/util-hex-encoding": "3.188.0", + "@aws-sdk/fetch-http-handler": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-hex-encoding": "3.201.0", "@aws-sdk/util-utf8-browser": "3.188.0", "tslib": "^2.3.1" } }, "@aws-sdk/util-stream-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-stream-node/-/util-stream-node-3.197.0.tgz", - "integrity": "sha512-hkWYe4bmIx9sOiZBqGlOx3gYQcduHr1rJNBKQ4nU0M64MZ0R4WhBklI6iW9vn4HYNNPXeTGNzZXrByEcASjOWw==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-stream-node/-/util-stream-node-3.215.0.tgz", + "integrity": "sha512-7Vyp61P/2dGA9Fzn6uN/KdRd+Z7n8gCGmXBd/dQSrHx3UFIm1TuEmMwROzbWWxPOS6qDWY/dwQgMZH/tq78Llg==", "requires": { - "@aws-sdk/node-http-handler": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-buffer-from": "3.188.0", + "@aws-sdk/node-http-handler": "3.215.0", + "@aws-sdk/types": "3.215.0", + "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" } }, "@aws-sdk/util-uri-escape": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.188.0.tgz", - "integrity": "sha512-4Y6AYZMT483Tiuq8dxz5WHIiPNdSFPGrl6tRTo2Oi2FcwypwmFhqgEGcqxeXDUJktvaCBxeA08DLr/AemVhPCg==", + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz", + "integrity": "sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA==", "requires": { "tslib": "^2.3.1" } }, "@aws-sdk/util-user-agent-browser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.197.0.tgz", - "integrity": "sha512-0BhG18FL+qvRiTKJ1kG1vKrMvnCpgh1XuMRTTBjFPl7j/XbW9JMPgnJaZSN/uZqS2ianK2V1Yc+FTv/qfPiNeA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.215.0.tgz", + "integrity": "sha512-uZz6BJWr8sJcA+onveS1lFqnbIXBHwvkyHLgCuuGhAxd5yY6YNLhpJBnhy9Fb8/aSbk6yao3qxlokqw9gthmAw==", "requires": { - "@aws-sdk/types": "3.197.0", + "@aws-sdk/types": "3.215.0", "bowser": "^2.11.0", "tslib": "^2.3.1" } }, "@aws-sdk/util-user-agent-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.197.0.tgz", - "integrity": "sha512-ymsZ3rwsmPJWISxpwpEf9MmRkr1Av5cTNyZgHo8Yi+LveeUelZ+41HLjP10p540K8x4iUnCHNP5yUN1UTtNnfA==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.215.0.tgz", + "integrity": "sha512-4lrdd1oGRwJEwfvgvg1jcJ2O0bwElsvtiqZfTRHN6MNTFUqsKl0xHlgFChQsz3Hfrc1niWtZCmbqQKGdO5ARpw==", "requires": { - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/node-config-provider": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, @@ -17505,28 +17774,28 @@ } }, "@aws-sdk/util-utf8-node": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.188.0.tgz", - "integrity": "sha512-hCgP4+C0Lekjpjt2zFJ2R/iHes5sBGljXa5bScOFAEkRUc0Qw0VNgTv7LpEbIOAwGmqyxBoCwBW0YHPW1DfmYQ==", + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz", + "integrity": "sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ==", "requires": { - "@aws-sdk/util-buffer-from": "3.188.0", + "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" } }, "@aws-sdk/util-waiter": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.197.0.tgz", - "integrity": "sha512-UMqymn5Fuc5TS7lTQK3sBG672DBBNXNzPJdJNooNP4L1jau1CoysHxqDFsr/5sv0hZ4/TMjT68w90f7YQxHyDg==", + "version": "3.215.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.215.0.tgz", + "integrity": "sha512-RX/EkRcuDjWKP/5K6XOnbq5cPaO9KSJ5Etotn+z5sPGUJ0xmGWEyFyfXKSL51az32tHcNoGAqboBTFDISB0LyA==", "requires": { - "@aws-sdk/abort-controller": "3.197.0", - "@aws-sdk/types": "3.197.0", + "@aws-sdk/abort-controller": "3.215.0", + "@aws-sdk/types": "3.215.0", "tslib": "^2.3.1" } }, "@aws-sdk/xml-builder": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.188.0.tgz", - "integrity": "sha512-/Hah3gAtrBpEaDInX3eSS0nXw/IUeb+rWiGspXxb5O8bh5kyjQqeu8/sVJQlpOtq4aPDbMDmloH4k696qTqgbw==", + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.201.0.tgz", + "integrity": "sha512-brRdB1wwMgjWEnOQsv7zSUhIQuh7DEicrfslAqHop4S4FtSI3GQAShpQqgOpMTNFYcpaWKmE/Y1MJmNY7xLCnw==", "requires": { "tslib": "^2.3.1" } @@ -18833,15 +19102,13 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", - "dev": true, - "requires": {} + "dev": true }, "@csstools/selector-specificity": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", - "dev": true, - "requires": {} + "dev": true }, "@discoveryjs/json-ext": { "version": "0.5.7", @@ -18850,9 +19117,9 @@ "dev": true }, "@es-joy/jsdoccomment": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.33.4.tgz", - "integrity": "sha512-02XyYuvR/Gn+3BT6idHVNQ4SSQlA1X1FeEfeKm2ypv8ANB6Lt9KRFZ2S7y5xjwR+EPQ/Rzb0XFaD+xKyqe4ALw==", + "version": "0.36.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.36.0.tgz", + "integrity": "sha512-u0XZyvUF6Urb2cSivSXA8qXIpT/CxkHcdtZKoWusAzgzmsTWpg0F2FpWXsolHmMUyVY3dLWaoy+0ccJ5uf2QjA==", "dev": true, "requires": { "comment-parser": "1.3.1", @@ -18935,9 +19202,9 @@ } }, "@fortawesome/fontawesome-free": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.2.0.tgz", - "integrity": "sha512-CNR7qRIfCwWHNN7FnKUniva94edPdyQzil/zCwk3v6k4R6rR2Fr8i4s3PM7n/lyfPA6Zfko9z5WDzFxG9SW1uQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.2.1.tgz", + "integrity": "sha512-viouXhegu/TjkvYQoiRZK3aax69dGXxgEjpvZW81wIJdxm5Fnvp3VVIP4VHKqX4SvFw6qpmkILkD4RJWAdrt7A==", "dev": true }, "@gar/promisify": { @@ -19111,11 +19378,10 @@ } }, "@ngtools/webpack": { - "version": "14.2.7", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.7.tgz", - "integrity": "sha512-I47BdEybpzjfFFMFB691o9C+69RexLTgSm/VCyDn4M8DrGrZpgYNhxN+AEr1uA6Bi6MaPG6w+TMac5tNIaO4Yw==", - "dev": true, - "requires": {} + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.10.tgz", + "integrity": "sha512-sLHapZLVub6mEz5b19tf1VfIV1w3tYfg7FNPLeni79aldxu1FbP1v2WmiFAnMzrswqyK0bhTtxrl+Z/CLKqyoQ==", + "dev": true }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -19227,13 +19493,13 @@ } }, "@schematics/angular": { - "version": "14.2.7", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.7.tgz", - "integrity": "sha512-ujtLu0gWARtJsRbN+P+McDO0Y0ygJjUN5016SdbmYDMcDJkwi+GYHU8Yvh/UONtmNor3JdV8AnZ8OmWTlswTDA==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.10.tgz", + "integrity": "sha512-YFTc/9QJdx422XcApizEcVLKoyknu8b9zHIlAepZCu7WkV8GPT0hvVEHQ7KBWys5aQ7pPZMT0JpZLeAz0F2xYQ==", "dev": true, "requires": { - "@angular-devkit/core": "14.2.7", - "@angular-devkit/schematics": "14.2.7", + "@angular-devkit/core": "14.2.10", + "@angular-devkit/schematics": "14.2.10", "jsonc-parser": "3.1.0" } }, @@ -19358,9 +19624,9 @@ "dev": true }, "@types/lodash": { - "version": "4.14.186", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.186.tgz", - "integrity": "sha512-eHcVlLXP0c2FlMPm56ITode2AgLMSa6aJ05JTTbYbI+7EMkCEE5qk2E41d5g2lCVTqRe0GnnRFurmlCsDODrPw==", + "version": "4.14.191", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", + "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==", "dev": true }, "@types/mime": { @@ -19370,9 +19636,9 @@ "dev": true }, "@types/node": { - "version": "16.18.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.2.tgz", - "integrity": "sha512-KIGQJyya+opDCFvDSZMNNS899ov5jlNdtN7PypgHWeb8e+5vWISdwTRo/ClsNVlmDihzOGqFyNBDamUs7TQQCA==", + "version": "18.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", "dev": true }, "@types/parse-json": { @@ -19382,9 +19648,9 @@ "dev": true }, "@types/plotly.js": { - "version": "2.12.8", - "resolved": "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-2.12.8.tgz", - "integrity": "sha512-h7gkIDxjC7ZgAZTActvrMJNDFsEPIAOr6kvMIhTOgxOrXTnXH3ywnmjtfoUViuKFNhos3zhhTtcT5QQT/bH/2w==", + "version": "2.12.9", + "resolved": "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-2.12.9.tgz", + "integrity": "sha512-ML5pFv06KSozZqRO74Yt2XQg7A6Q2vtL3qGmO7nbKGpkk39vNdHYHD9w96Y4XK2TrhZKOxGirFjkou7IK5xdoA==", "dev": true }, "@types/qs": { @@ -19460,69 +19726,70 @@ "integrity": "sha512-Nqo3HMPFPcNyZ7HNFZJjpH+N4yXqpxBItG+41e7nL9zednovMRZMXWj36CctSznbBcbj6ucvkJDo5iZ8SKqLIw==" }, "@typescript-eslint/eslint-plugin": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.41.0.tgz", - "integrity": "sha512-DXUS22Y57/LAFSg3x7Vi6RNAuLpTXwxB9S2nIA7msBb/Zt8p7XqMwdpdc1IU7CkOQUPgAqR5fWvxuKCbneKGmA==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.44.0.tgz", + "integrity": "sha512-j5ULd7FmmekcyWeArx+i8x7sdRHzAtXTkmDPthE4amxZOWKFK7bomoJ4r7PJ8K7PoMzD16U8MmuZFAonr1ERvw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.41.0", - "@typescript-eslint/type-utils": "5.41.0", - "@typescript-eslint/utils": "5.41.0", + "@typescript-eslint/scope-manager": "5.44.0", + "@typescript-eslint/type-utils": "5.44.0", + "@typescript-eslint/utils": "5.44.0", "debug": "^4.3.4", "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" } }, "@typescript-eslint/parser": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.41.0.tgz", - "integrity": "sha512-HQVfix4+RL5YRWZboMD1pUfFN8MpRH4laziWkkAzyO1fvNOY/uinZcvo3QiFJVS/siNHupV8E5+xSwQZrl6PZA==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.44.0.tgz", + "integrity": "sha512-H7LCqbZnKqkkgQHaKLGC6KUjt3pjJDx8ETDqmwncyb6PuoigYajyAwBGz08VU/l86dZWZgI4zm5k2VaKqayYyA==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.41.0", - "@typescript-eslint/types": "5.41.0", - "@typescript-eslint/typescript-estree": "5.41.0", + "@typescript-eslint/scope-manager": "5.44.0", + "@typescript-eslint/types": "5.44.0", + "@typescript-eslint/typescript-estree": "5.44.0", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.41.0.tgz", - "integrity": "sha512-xOxPJCnuktUkY2xoEZBKXO5DBCugFzjrVndKdUnyQr3+9aDWZReKq9MhaoVnbL+maVwWJu/N0SEtrtEUNb62QQ==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.44.0.tgz", + "integrity": "sha512-2pKml57KusI0LAhgLKae9kwWeITZ7IsZs77YxyNyIVOwQ1kToyXRaJLl+uDEXzMN5hnobKUOo2gKntK9H1YL8g==", "dev": true, "requires": { - "@typescript-eslint/types": "5.41.0", - "@typescript-eslint/visitor-keys": "5.41.0" + "@typescript-eslint/types": "5.44.0", + "@typescript-eslint/visitor-keys": "5.44.0" } }, "@typescript-eslint/type-utils": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.41.0.tgz", - "integrity": "sha512-L30HNvIG6A1Q0R58e4hu4h+fZqaO909UcnnPbwKiN6Rc3BUEx6ez2wgN7aC0cBfcAjZfwkzE+E2PQQ9nEuoqfA==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.44.0.tgz", + "integrity": "sha512-A1u0Yo5wZxkXPQ7/noGkRhV4J9opcymcr31XQtOzcc5nO/IHN2E2TPMECKWYpM3e6olWEM63fq/BaL1wEYnt/w==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.41.0", - "@typescript-eslint/utils": "5.41.0", + "@typescript-eslint/typescript-estree": "5.44.0", + "@typescript-eslint/utils": "5.44.0", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.41.0.tgz", - "integrity": "sha512-5BejraMXMC+2UjefDvrH0Fo/eLwZRV6859SXRg+FgbhA0R0l6lDqDGAQYhKbXhPN2ofk2kY5sgGyLNL907UXpA==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.44.0.tgz", + "integrity": "sha512-Tp+zDnHmGk4qKR1l+Y1rBvpjpm5tGXX339eAlRBDg+kgZkz9Bw+pqi4dyseOZMsGuSH69fYfPJCBKBrbPCxYFQ==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.41.0.tgz", - "integrity": "sha512-SlzFYRwFSvswzDSQ/zPkIWcHv8O5y42YUskko9c4ki+fV6HATsTODUPbRbcGDFYP86gaJL5xohUEytvyNNcXWg==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.44.0.tgz", + "integrity": "sha512-M6Jr+RM7M5zeRj2maSfsZK2660HKAJawv4Ud0xT+yauyvgrsHu276VtXlKDFnEmhG+nVEd0fYZNXGoAgxwDWJw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.41.0", - "@typescript-eslint/visitor-keys": "5.41.0", + "@typescript-eslint/types": "5.44.0", + "@typescript-eslint/visitor-keys": "5.44.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -19531,28 +19798,28 @@ } }, "@typescript-eslint/utils": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.41.0.tgz", - "integrity": "sha512-QlvfwaN9jaMga9EBazQ+5DDx/4sAdqDkcs05AsQHMaopluVCUyu1bTRUVKzXbgjDlrRAQrYVoi/sXJ9fmG+KLQ==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.44.0.tgz", + "integrity": "sha512-fMzA8LLQ189gaBjS0MZszw5HBdZgVwxVFShCO3QN+ws3GlPkcy9YuS3U4wkT6su0w+Byjq3mS3uamy9HE4Yfjw==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.41.0", - "@typescript-eslint/types": "5.41.0", - "@typescript-eslint/typescript-estree": "5.41.0", + "@typescript-eslint/scope-manager": "5.44.0", + "@typescript-eslint/types": "5.44.0", + "@typescript-eslint/typescript-estree": "5.44.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0", "semver": "^7.3.7" } }, "@typescript-eslint/visitor-keys": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.41.0.tgz", - "integrity": "sha512-vilqeHj267v8uzzakbm13HkPMl7cbYpKVjgFWZPIOHIJHZtinvypUhJ5xBXfWYg4eFKqztbMMpOgFpT9Gfx4fw==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.44.0.tgz", + "integrity": "sha512-a48tLG8/4m62gPFbJ27FxwCOqPKxsb8KC3HkmYoq2As/4YyjQl1jDbRr1s63+g4FS/iIehjmN3L5UjmKva1HzQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.41.0", + "@typescript-eslint/types": "5.44.0", "eslint-visitor-keys": "^3.3.0" } }, @@ -19743,9 +20010,9 @@ } }, "ace-builds": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.12.3.tgz", - "integrity": "sha512-LHAsa5oOaRqmIlb8gBe81nj2kOqlfbV0XkWkFZL4mIfPXL4zoeTUcandHvBgHQCyjif3tGfoLTXelWSlnCT/dA==" + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.13.1.tgz", + "integrity": "sha512-HvkZv/AhDRSA4k5Co5Dg8dWOTfID0AQ7Sa5cU6V82fz/XfCA0A/icC3sdBoh9yg0WQoJqbFrRYc+ogr/971Vww==" }, "acorn": { "version": "8.8.1", @@ -19757,15 +20024,13 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, - "requires": {} + "dev": true }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} + "dev": true }, "adjust-sourcemap-loader": { "version": "4.0.0", @@ -19927,12 +20192,6 @@ "picomatch": "^2.0.4" } }, - "app-root-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", - "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", - "dev": true - }, "aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", @@ -19967,10 +20226,13 @@ } }, "aria-query": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.2.tgz", - "integrity": "sha512-eigU3vhqSO+Z8BKDnVLN/ompjhf3pYzecKXz8+whRy+9gZu8n1TCGfwzQUUPnqdHl9ax1Hr9031orZ+UOEYr7Q==", - "dev": true + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "requires": { + "deep-equal": "^2.0.5" + } }, "array-flatten": { "version": "2.1.2", @@ -20008,12 +20270,6 @@ "es-abstract": "^1.19.0" } }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", - "dev": true - }, "autoprefixer": { "version": "10.4.12", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz", @@ -20028,12 +20284,21 @@ "postcss-value-parser": "^4.2.0" } }, - "axobject-query": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.0.1.tgz", - "integrity": "sha512-vy5JPSOibF9yAeC2PoemRdA1MuSXX7vX5osdoxKf/6OUeppAWekZ3JIJVNWFMH6wgj7uHYyqZUSqE/b/3JLV1A==", + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true }, + "axobject-query": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", + "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "dev": true, + "requires": { + "deep-equal": "^2.0.5" + } + }, "babel-loader": { "version": "8.2.5", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", @@ -20226,8 +20491,7 @@ "bootstrap": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz", - "integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==", - "requires": {} + "integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==" }, "bowser": { "version": "2.11.0", @@ -20291,13 +20555,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", - "dev": true, - "peer": true - }, "builtins": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", @@ -20507,87 +20764,12 @@ } }, "codelyzer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.2.tgz", - "integrity": "sha512-v3+E0Ucu2xWJMOJ2fA/q9pDT/hlxHftHGPUay1/1cTgyPV5JTHFdO9hqo837Sx2s9vKBMTt5gO+lhF95PO6J+g==", + "version": "0.0.28", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-0.0.28.tgz", + "integrity": "sha512-DfrZrFWP4MnowANXJHUL0ZMhLqAEFLjC3lJofkHZM+QAczdOvlq8CmLrvqspCXmIdyotVD0xyjUWoPGOPo4lKA==", "dev": true, "requires": { - "@angular/compiler": "9.0.0", - "@angular/core": "9.0.0", - "app-root-path": "^3.0.0", - "aria-query": "^3.0.0", - "axobject-query": "2.0.2", - "css-selector-tokenizer": "^0.7.1", - "cssauron": "^1.4.0", - "damerau-levenshtein": "^1.0.4", - "rxjs": "^6.5.3", - "semver-dsl": "^1.0.1", - "source-map": "^0.5.7", - "sprintf-js": "^1.1.2", - "tslib": "^1.10.0", - "zone.js": "~0.10.3" - }, - "dependencies": { - "@angular/compiler": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", - "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", - "dev": true, - "requires": {} - }, - "@angular/core": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", - "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", - "dev": true, - "requires": {} - }, - "aria-query": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", - "integrity": "sha512-majUxHgLehQTeSA+hClx+DY09OVUqG3GtezWkF1krgLGNdlDu9l9V8DaqNMWbq4Eddc8wsyDA0hpDUtnYxQEXw==", - "dev": true, - "requires": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" - } - }, - "axobject-query": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", - "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", - "dev": true, - "requires": { - "ast-types-flow": "0.0.7" - } - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "zone.js": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", - "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==", - "dev": true - } + "sprintf-js": "^1.0.3" } }, "color-convert": { @@ -20961,8 +21143,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "dev": true, - "requires": {} + "dev": true }, "css-select": { "version": "4.2.1", @@ -20977,31 +21158,12 @@ "nth-check": "^2.0.1" } }, - "css-selector-tokenizer": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", - "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2" - } - }, "css-what": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", "dev": true }, - "cssauron": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", - "integrity": "sha512-Ht70DcFBh+/ekjVrYS2PlDMdSQEl3OFNmjK6lcn49HptBgilXf/Zwg4uFh9Xn0pX3Q8YOkSjIFOfK2osvdqpBw==", - "dev": true, - "requires": { - "through": "X.X.X" - } - }, "cssdb": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.0.2.tgz", @@ -21318,12 +21480,6 @@ } } }, - "damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true - }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -21333,6 +21489,37 @@ "ms": "2.1.2" } }, + "deep-equal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.1.0.tgz", + "integrity": "sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.8" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + } + } + }, "deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -21364,12 +21551,13 @@ "dev": true }, "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "requires": { - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" } }, "delegates": { @@ -21613,6 +21801,30 @@ "unbox-primitive": "^1.0.1" } }, + "es-get-iterator": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", + "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.0", + "has-symbols": "^1.0.1", + "is-arguments": "^1.1.0", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + } + } + }, "es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", @@ -21825,9 +22037,9 @@ "dev": true }, "eslint": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz", - "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==", + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz", + "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==", "dev": true, "requires": { "@eslint/eslintrc": "^1.3.3", @@ -22177,12 +22389,12 @@ } }, "eslint-plugin-jsdoc": { - "version": "39.3.25", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.3.25.tgz", - "integrity": "sha512-7JiFOOaipz7Z7lNQ9sMJ6cdvclmVUwNYtFWGS3a0k0uEFcdZPPD64WOfENuyNHpl86C0AKIEPgOpZby5kd+pew==", + "version": "39.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.6.2.tgz", + "integrity": "sha512-dvgY/W7eUFoAIIiaWHERIMI61ZWqcz9YFjEeyTzdPlrZc3TY/3aZm5aB91NUoTLWYZmO/vFlYSuQi15tF7uE5A==", "dev": true, "requires": { - "@es-joy/jsdoccomment": "~0.33.4", + "@es-joy/jsdoccomment": "~0.36.0", "comment-parser": "1.3.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", @@ -22212,8 +22424,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz", "integrity": "sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ==", - "dev": true, - "requires": {} + "dev": true }, "eslint-scope": { "version": "5.1.1", @@ -22481,12 +22692,6 @@ "strnum": "^1.0.5" } }, - "fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "dev": true - }, "fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -22612,11 +22817,14 @@ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "dev": true }, - "font-awesome": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz", - "integrity": "sha512-U6kGnykA/6bFmg1M/oT9EkFeIYv7JlX3bozwQJWiiLz6L0w3F5vBVPxHlwyX/vtNq1ckcpRKOB9f2Qal/VtFpg==", - "peer": true + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } }, "forwarded": { "version": "0.2.0", @@ -22670,6 +22878,12 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, "gauge": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", @@ -22699,14 +22913,14 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" } }, "get-package-type": { @@ -22780,6 +22994,15 @@ "slash": "^3.0.0" } }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", @@ -22827,10 +23050,19 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true }, "has-tostringtag": { @@ -23044,8 +23276,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "requires": {} + "dev": true }, "ieee754": { "version": "1.2.1", @@ -23256,6 +23487,16 @@ "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", "dev": true }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -23353,6 +23594,12 @@ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true }, + "is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true + }, "is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -23405,6 +23652,12 @@ "has-tostringtag": "^1.0.0" } }, + "is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true + }, "is-shared-array-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", @@ -23435,12 +23688,31 @@ "has-symbols": "^1.0.2" } }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, + "is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true + }, "is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -23450,6 +23722,16 @@ "call-bind": "^1.0.2" } }, + "is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, "is-what": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", @@ -23538,12 +23820,6 @@ } } }, - "jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", - "peer": true - }, "js-sdsl": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", @@ -23733,9 +24009,9 @@ "dev": true }, "loader-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", - "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", "dev": true }, "locate-path": { @@ -23924,9 +24200,9 @@ "dev": true }, "memfs": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.7.tgz", - "integrity": "sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw==", + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.12.tgz", + "integrity": "sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==", "dev": true, "requires": { "fs-monkey": "^1.0.3" @@ -24154,6 +24430,12 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, "needle": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/needle/-/needle-3.1.0.tgz", @@ -24226,13 +24508,28 @@ } }, "ngx-markdown-editor": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ngx-markdown-editor/-/ngx-markdown-editor-4.2.0.tgz", - "integrity": "sha512-EM4QJPIjmYjZQbXy+10nKtsGtLLTROks3sgOz3BcrUuC5rcCHPmSgstn/YW6gaInolMmC0hTIeGP0XwH6l9O+g==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ngx-markdown-editor/-/ngx-markdown-editor-4.3.0.tgz", + "integrity": "sha512-JzUemZUDqDFbvAGKoI/wk1nHdmy2btIWqwcnAKv+UmWuDH2uSOWJH0pEiua2H5iVeN7ANe8a9kItRoQmh7ogew==", "requires": { "tslib": "^2.3.0" } }, + "ngx-print": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ngx-print/-/ngx-print-1.2.1.tgz", + "integrity": "sha512-+xz5wbVO9N5vAT/W6dgTzbE1RBB1jUeBOSF04Gs66QqTrb46paRAjHgqMr4TvE8CUiTp5aMmkL54QEKat9gj6w==", + "requires": { + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, "ngx-window-token": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/ngx-window-token/-/ngx-window-token-6.0.0.tgz", @@ -24493,6 +24790,16 @@ "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", "dev": true }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -24500,14 +24807,14 @@ "dev": true }, "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } }, @@ -24912,12 +25219,6 @@ "find-up": "^4.0.0" } }, - "popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", - "peer": true - }, "postcss": { "version": "8.4.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", @@ -25051,15 +25352,13 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "dev": true, - "requires": {} + "dev": true }, "postcss-gap-properties": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", - "dev": true, - "requires": {} + "dev": true }, "postcss-image-set-function": { "version": "4.0.7", @@ -25085,8 +25384,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "dev": true, - "requires": {} + "dev": true }, "postcss-lab-function": { "version": "4.2.1", @@ -25113,22 +25411,19 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "dev": true, - "requires": {} + "dev": true }, "postcss-media-minmax": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "dev": true, - "requires": {} + "dev": true }, "postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true, - "requires": {} + "dev": true }, "postcss-modules-local-by-default": { "version": "4.0.0", @@ -25188,8 +25483,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "dev": true, - "requires": {} + "dev": true }, "postcss-place": { "version": "7.0.5", @@ -25270,8 +25564,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "dev": true, - "requires": {} + "dev": true }, "postcss-selector-not": { "version": "6.0.1", @@ -25316,9 +25609,9 @@ "integrity": "sha512-KDeO94CbWI4pKsPnYpA1FPjo79EsY9I+M8ywoPBSf9XMXoe/0crjbUK7jcQEDHuc0ZMRIZsxH3TYLv4TUtHmAA==" }, "primeng": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/primeng/-/primeng-14.1.2.tgz", - "integrity": "sha512-iLMeORiLD46SNAotxCwRXoaRMXLs3ZbFzyePrPSNAFQbKEbsLfpUvsAUAatb/TA0jd8TnXgdCjZ07ee4664XVQ==", + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/primeng/-/primeng-14.2.2.tgz", + "integrity": "sha512-CV7dWwpBYqMgKliryJ6+CJZgdawl04V1Cp5mQmziEedJVhMGPg/QwU2Fi0v7AS9i1uXQRI9c420BDn+yZ+GrDQ==", "requires": { "tslib": "^2.3.0" } @@ -25574,6 +25867,17 @@ "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", "dev": true }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, "regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", @@ -25813,8 +26117,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} + "dev": true }, "json-schema-traverse": { "version": "0.4.1", @@ -25848,23 +26151,6 @@ "lru-cache": "^6.0.0" } }, - "semver-dsl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", - "integrity": "sha512-e8BOaTo007E3dMuQQTnPdalbKTABKNS7UxoBIDnwOqRa+QwMrCPjynB8zAlPF6xlqUfdLPPLIJ13hJNmhtq8Ng==", - "dev": true, - "requires": { - "semver": "^5.3.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, "send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", @@ -26450,8 +26736,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} + "dev": true }, "json-schema-traverse": { "version": "0.4.1", @@ -26567,74 +26852,9 @@ } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", - "dev": true, - "peer": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" - }, - "dependencies": { - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "peer": true - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "peer": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "peer": true - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "peer": true - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "peer": true, - "requires": { - "tslib": "^1.8.1" - } - } - } + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "tsutils": { "version": "3.21.0", @@ -26907,8 +27127,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} + "dev": true }, "json-schema-traverse": { "version": "0.4.1", @@ -27071,6 +27290,32 @@ "is-symbol": "^1.0.3" } }, + "which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "requires": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, "wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", @@ -27136,11 +27381,10 @@ "dev": true }, "ws": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz", - "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==", - "dev": true, - "requires": {} + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true }, "xhr2": { "version": "0.2.1", diff --git a/package.json b/package.json index 1c48bf5d..ce97a530 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,15 @@ { "name": "clearml-webapp", - "version": "1.8.0", + "version": "1.9.0", "license": "", "scripts": { "ng": "ng", "start": "npx ng serve --proxy-config proxy.config.js --live-reload false --port 4300", + "start-widgets": "npx ng serve --port 4201 --project report-widgets --proxy-config proxy.config.js --live-reload false", "hmr": "npx ng serve --proxy-config proxy.config.js --hmr --port 4300", - "build": "node --max_old_space_size=3248 ./node_modules/.bin/ng build --configuration production --source-map --vendor-chunk", + "build": "npx ng build --configuration production --source-map --vendor-chunk", "build-dev": "node ./node_modules/.bin/ng build --extract-css=false", + "build-widgets": "npx ng build --project report-widgets --configuration production", "fetch": "./scripts/get-remote-build.sh", "test": "ng test", "lint": "ng lint", @@ -17,27 +19,27 @@ }, "private": true, "dependencies": { - "@angular/animations": "^14.2.8", - "@angular/cdk": "^14.2.6", - "@angular/common": "^14.2.8", - "@angular/compiler": "^14.2.8", - "@angular/core": "^14.2.8", - "@angular/forms": "^14.2.8", - "@angular/material": "^14.2.6", - "@angular/platform-browser": "^14.2.8", - "@angular/platform-browser-dynamic": "^14.2.8", - "@angular/platform-server": "^14.2.8", - "@angular/router": "^14.2.8", - "@angular/service-worker": "^14.2.8", - "@angular/youtube-player": "^14.2.6", - "@aws-sdk/client-s3": "^3.197.0", - "@aws-sdk/s3-request-presigner": "^3.197.0", + "@angular/animations": "^14.2.12", + "@angular/cdk": "^14.2.7", + "@angular/common": "^14.2.12", + "@angular/compiler": "^14.2.12", + "@angular/core": "^14.2.12", + "@angular/forms": "^14.2.12", + "@angular/material": "^14.2.7", + "@angular/platform-browser": "^14.2.12", + "@angular/platform-browser-dynamic": "^14.2.12", + "@angular/platform-server": "^14.2.12", + "@angular/router": "^14.2.12", + "@angular/service-worker": "^14.2.12", + "@angular/youtube-player": "^14.2.7", + "@aws-sdk/client-s3": "^3.216.0", + "@aws-sdk/s3-request-presigner": "^3.216.0", "@ngneat/dag": "^2.0.0", "@ngrx/effects": "^14.3.2", "@ngrx/entity": "^14.3.2", "@ngrx/router-store": "^14.3.2", "@ngrx/store": "^14.3.2", - "ace-builds": "^1.12.3", + "ace-builds": "^1.13.1", "angular-google-tag-manager": "^1.6.1", "angular-resizable-element": "^6.0.0", "angular-split": "^14.1.0", @@ -57,46 +59,47 @@ "ngx-clipboard": "^15.1.0", "ngx-color-picker": "^13.0.0", "ngx-device-detector": "^4.0.1", - "ngx-markdown-editor": "^4.2.0", + "ngx-markdown-editor": "^4.3.0", + "ngx-print": "^1.2.1", "ngx-window-token": "^6.0.0", "object-hash": "^3.0.0", "primeicons": "^6.0.1", - "primeng": "^14.1.2", + "primeng": "^14.2.2", "process": "^0.11.10", "rxjs": "^7.5.7", "string-to-color": "^2.2.2", - "tslib": "^2.4.0", + "tslib": "^2.4.1", "url": "^0.11.0", "uuid": "^9.0.0", "zone.js": "~0.11.8" }, "devDependencies": { - "@angular-devkit/build-angular": "^14.2.7", - "@angular-devkit/core": "^14.2.7", - "@angular-devkit/schematics": "^14.2.7", + "@angular-devkit/build-angular": "^14.2.10", + "@angular-devkit/core": "^14.2.10", + "@angular-devkit/schematics": "^14.2.10", "@angular-devkit/schematics-cli": "^14.2.7", - "@angular-eslint/builder": "^14.1.2", - "@angular-eslint/eslint-plugin": "^14.1.2", - "@angular-eslint/eslint-plugin-template": "^14.1.2", - "@angular-eslint/schematics": "14.1.2", - "@angular-eslint/template-parser": "^14.1.2", - "@angular/cli": "^14.2.7", - "@angular/compiler-cli": "^14.2.8", - "@angular/language-service": "^14.2.8", - "@fortawesome/fontawesome-free": "^6.2.0", + "@angular-eslint/builder": "^14.4.0", + "@angular-eslint/eslint-plugin": "^14.4.0", + "@angular-eslint/eslint-plugin-template": "^14.4.0", + "@angular-eslint/schematics": "14.4.0", + "@angular-eslint/template-parser": "^14.4.0", + "@angular/cli": "^14.2.10", + "@angular/compiler-cli": "^14.2.12", + "@angular/language-service": "^14.2.12", + "@fortawesome/fontawesome-free": "^6.2.1", "@ngrx/schematics": "^14.3.2", "@ngrx/store-devtools": "^14.3.2", "@types/d3-selection": "^3.0.3", - "@types/lodash": "^4.14.186", - "@types/node": "^16.18.2", - "@types/plotly.js": "^2.12.8", + "@types/lodash": "^4.14.191", + "@types/node": "^18.11.9", + "@types/plotly.js": "^2.12.9", "@types/uuid": "^8.3.4", - "@typescript-eslint/eslint-plugin": "^5.41.0", - "@typescript-eslint/parser": "^5.41.0", - "codelyzer": "^6.0.2", - "eslint": "^8.26.0", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "codelyzer": "^0.0.28", + "eslint": "^8.28.0", "eslint-plugin-import": "2.26.0", - "eslint-plugin-jsdoc": "39.3.25", + "eslint-plugin-jsdoc": "39.6.2", "eslint-plugin-prefer-arrow": "1.2.3", "typescript": "~4.8.4" } diff --git a/src/app/app.component.scss b/src/app/app.component.scss index e866b5f2..8df23981 100644 --- a/src/app/app.component.scss +++ b/src/app/app.component.scss @@ -45,3 +45,11 @@ notification-container { visibility: hidden; } +iframe.iframe-maximized { + position: fixed; + top: 0; + left: 0; + height: 100%; + width: 100%; + z-index: 999; +} \ No newline at end of file diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 60c1f62a..2f1d2b61 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -5,7 +5,6 @@ import {ActivatedRoute, NavigationEnd, Router, Params, RouterEvent} from '@angul import {Title} from '@angular/platform-browser'; import {selectLoggedOut} from '@common/core/reducers/view.reducer'; import {Store} from '@ngrx/store'; -import {castArray, get, last} from 'lodash/fp'; import {selectRouterParams, selectRouterUrl} from '@common/core/reducers/router-reducer'; import {ApiProjectsService} from './business-logic/api-services/projects.service'; import {Project} from './business-logic/model/projects/project'; @@ -27,7 +26,7 @@ import {aceReady, firstLogin, plotlyReady, setScaleFactor, visibilityChanged} fr import {UiUpdatesService} from '@common/shared/services/ui-updates.service'; import {UsageStatsService} from './core/services/usage-stats.service'; import {dismissSurvey} from './core/actions/layout.actions'; -import {getScaleFactor, loadExternalLibrary} from '@common/shared/utils/shared-utils'; +import {getScaleFactor} from '@common/shared/utils/shared-utils'; import {User} from './business-logic/model/users/user'; import {ConfigurationService} from '@common/shared/services/configuration.service'; import {GoogleTagManagerService} from 'angular-google-tag-manager'; @@ -36,6 +35,7 @@ import {TipsService} from '@common/shared/services/tips.service'; import {USER_PREFERENCES_KEY} from '@common/user-preferences'; import {selectIsPipelines} from '@common/experiments-compare/reducers'; import {Environment} from '../environments/base'; +import {loadExternalLibrary} from '@common/shared/utils/load-external-library'; @Component({ selector: 'sm-root', @@ -111,6 +111,20 @@ export class AppComponent implements OnInit, OnDestroy { } ngOnInit(): void { + window.addEventListener('message', e => { + if (e.data.maximizing) { + const drawerContent = document.querySelector('sm-report mat-drawer-container'); + const iframeElement = document.querySelector(`iframe[name="${e.data.name}"]`); + if (iframeElement?.classList.contains('iframe-maximized')) { + this.renderer.removeClass(iframeElement, 'iframe-maximized'); + this.renderer.removeClass(drawerContent, 'iframe-maximized'); + } else { + this.renderer.addClass(iframeElement, 'iframe-maximized'); + this.renderer.addClass(drawerContent, 'iframe-maximized'); + } + } + }); + this.configService.globalEnvironmentObservable.subscribe(env => { this.hideUpdate = env.hideUpdateNotice; this.showSurvey = env.showSurvey; @@ -156,7 +170,7 @@ export class AppComponent implements OnInit, OnDestroy { this.urlSubscription = combineLatest([this.store.select(selectRouterUrl), this.store.select(selectRouterParams)]) .subscribe(([url, params]) => { - this.projectId = get('projectId', params); + this.projectId = params?.projectId; this.isLoginContext = url && url.includes('login'); this.isWorkersContext = url && url.includes('workers-and-queues'); if (this.projectId) { @@ -226,9 +240,11 @@ export class AppComponent implements OnInit, OnDestroy { const crumbs = routeConfig .reduce((acc, config) => { const dynamicCrumb = this.breadcrumbsStrings[config]; - return acc.concat(last(castArray(dynamicCrumb ? dynamicCrumb.name : formatStaticCrumb(config))).name); + let crumb = dynamicCrumb ? dynamicCrumb : formatStaticCrumb(config); + crumb = Array.isArray(crumb) ? crumb.at(-1) : crumb; + return acc.concat(crumb.name); }, ['']) - .filter(name => !!name); + .filter(name => !!name && name !== ':project'); this.titleService.setTitle(`ClearML - ${crumbs.join(' / ')}`); } diff --git a/src/app/app.constants.ts b/src/app/app.constants.ts index f6df26e4..077e6c2a 100644 --- a/src/app/app.constants.ts +++ b/src/app/app.constants.ts @@ -17,7 +17,7 @@ export const BASE_REGEX = { SCHEME : '^[hH][tT][tT][pP][sS]?:\\/\\/', FILE_SUFFIX : '\\/\\S*[^\\/ ]+$', FOLDER : '\\/\\S*[^\\/ ]', - S3_BUCKET_NAME : '(\\w[A-Za-z0-9\\-]+\\w\\.)*\\w[A-Za-z0-9\\-]+\\w', + S3_BUCKET_NAME : '(?!(xn--|.+-s3alias$|.*\\.{2}.*))[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]', GS_BUCKET_NAME : '(\\w[A-Za-z0-9\\-_]+\\w\\.)*\\w[A-Za-z0-9\\-_]+\\w', AZURE_BUCKET_NAME: '(\\w[A-Za-z0-9\\-_]+\\w\\.)*\\w[A-Za-z0-9\\-_]+\\w' }; @@ -99,6 +99,8 @@ export const guessAPIServerURL = () => { return url.replace(/(https?):\/\/(demo|)app/, '$1://$2api'); } else if (window.location.port === '30080') { return url.replace(/:\d+/, '') + ':30008'; + } else if (window.location.pathname === '/widgets') { + return url + '/api'; } return url.replace(/:\d+/, '') + ':8008'; }; diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index 78f92caf..c4cf8d6e 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -81,6 +81,10 @@ export const routes: Routes = [ data: {search: true}, loadChildren: () => import('./features/datasets/datasets.module').then(m => m.DatasetsModule) }, + { + path: 'reports', + loadChildren: () => import('./webapp-common/reports/reports.module').then(m => m.ReportsModule) + }, {path: 'workers-and-queues', loadChildren: () => import('./features/workers-and-queues/workers-and-queues.module').then(m => m.WorkersAndQueuesModule)}, {path: '404', loadChildren: () => import('./features/not-found/not-found.module').then(m => m.NotFoundModule)}, {path: '**', loadChildren: () => import('./features/not-found/not-found.module').then(m => m.NotFoundModule)}, diff --git a/src/app/business-logic/api-services/reports.service.ts b/src/app/business-logic/api-services/reports.service.ts new file mode 100644 index 00000000..a3b2cb96 --- /dev/null +++ b/src/app/business-logic/api-services/reports.service.ts @@ -0,0 +1,578 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/member-ordering */ + +import {HTTP} from '../../app.constants'; +import {SmApiRequestsService} from "./api-requests.service"; + +import { Inject, Injectable, Optional } from '@angular/core'; +import { HttpClient, HttpHeaders, HttpParams, + HttpResponse, HttpEvent } from '@angular/common/http'; +import { CustomHttpUrlEncodingCodec } from '../encoder'; + +import { Observable } from 'rxjs'; + +import { ReportsArchiveRequest } from '../model/reports/reportsArchiveRequest'; +import { ReportsArchiveResponse } from '../model/reports/reportsArchiveResponse'; +import { ReportsCreateRequest } from '../model/reports/reportsCreateRequest'; +import { ReportsCreateResponse } from '../model/reports/reportsCreateResponse'; +import { ReportsDeleteRequest } from '../model/reports/reportsDeleteRequest'; +import { ReportsDeleteResponse } from '../model/reports/reportsDeleteResponse'; +import { ReportsGetAllExRequest } from '../model/reports/reportsGetAllExRequest'; +import { ReportsGetAllExResponse } from '../model/reports/reportsGetAllExResponse'; +import { ReportsGetTagsResponse } from '../model/reports/reportsGetTagsResponse'; +import { ReportsGetTaskDataRequest } from '../model/reports/reportsGetTaskDataRequest'; +import { ReportsGetTaskDataResponse } from '../model/reports/reportsGetTaskDataResponse'; +import { ReportsMoveRequest } from '../model/reports/reportsMoveRequest'; +import { ReportsMoveResponse } from '../model/reports/reportsMoveResponse'; +import { ReportsPublishRequest } from '../model/reports/reportsPublishRequest'; +import { ReportsPublishResponse } from '../model/reports/reportsPublishResponse'; +import { ReportsShareRequest } from '../model/reports/reportsShareRequest'; +import { ReportsShareResponse } from '../model/reports/reportsShareResponse'; +import { ReportsUnarchiveRequest } from '../model/reports/reportsUnarchiveRequest'; +import { ReportsUnarchiveResponse } from '../model/reports/reportsUnarchiveResponse'; +import { ReportsUpdateRequest } from '../model/reports/reportsUpdateRequest'; +import { ReportsUpdateResponse } from '../model/reports/reportsUpdateResponse'; + +import { BASE_PATH, COLLECTION_FORMATS } from '../variables'; +import { Configuration } from '../configuration'; + + +@Injectable() +export class ApiReportsService { + + protected basePath = HTTP.API_BASE_URL; + public defaultHeaders = new HttpHeaders(); + public configuration = new Configuration(); + + constructor(protected apiRequest: SmApiRequestsService, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) { + if (basePath) { + this.basePath = basePath; + } + if (configuration) { + this.configuration = configuration; + this.basePath = basePath || configuration.basePath || this.basePath; + } + } + + /** + * @param consumes string[] mime-types + * @return true: consumes contains 'multipart/form-data', false: otherwise + */ + private canConsumeForm(consumes: string[]): boolean { + const form = 'multipart/form-data'; + for (const consume of consumes) { + if (form === consume) { + return true; + } + } + return false; + } + + + /** + * + * Archive report + * @param request request body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public reportsArchive(request: ReportsArchiveRequest, options?: any, observe: any = 'body', reportProgress: boolean = false ): Observable { + if (request === null || request === undefined) { + throw new Error('Required parameter request was null or undefined when calling reportsArchive.'); + } + + let headers = this.defaultHeaders; + if (options && options.async_enable) { + headers = headers.set(this.configuration.asyncHeader, '1'); + } + + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/json' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set("Accept", httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + const httpContentTypeSelected:string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set("Content-Type", httpContentTypeSelected); + } + + return this.apiRequest.post(`${this.basePath}/reports.archive`, + request, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * Create a new report + * @param request request body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public reportsCreate(request: ReportsCreateRequest, options?: any, observe: any = 'body', reportProgress: boolean = false ): Observable { + if (request === null || request === undefined) { + throw new Error('Required parameter request was null or undefined when calling reportsCreate.'); + } + + let headers = this.defaultHeaders; + if (options && options.async_enable) { + headers = headers.set(this.configuration.asyncHeader, '1'); + } + + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/json' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set("Accept", httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + const httpContentTypeSelected:string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set("Content-Type", httpContentTypeSelected); + } + + return this.apiRequest.post(`${this.basePath}/reports.create`, + request, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * Delete report + * @param request request body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public reportsDelete(request: ReportsDeleteRequest, options?: any, observe: any = 'body', reportProgress: boolean = false ): Observable { + if (request === null || request === undefined) { + throw new Error('Required parameter request was null or undefined when calling reportsDelete.'); + } + + let headers = this.defaultHeaders; + if (options && options.async_enable) { + headers = headers.set(this.configuration.asyncHeader, '1'); + } + + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/json' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set("Accept", httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + const httpContentTypeSelected:string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set("Content-Type", httpContentTypeSelected); + } + + return this.apiRequest.post(`${this.basePath}/reports.delete`, + request, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * Get all the company\'s and public report tasks + * @param request request body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public reportsGetAllEx(request: ReportsGetAllExRequest, options?: any, observe: any = 'body', reportProgress: boolean = false ): Observable { + if (request === null || request === undefined) { + throw new Error('Required parameter request was null or undefined when calling reportsGetAllEx.'); + } + + let headers = this.defaultHeaders; + if (options && options.async_enable) { + headers = headers.set(this.configuration.asyncHeader, '1'); + } + + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/json' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set("Accept", httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + const httpContentTypeSelected:string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set("Content-Type", httpContentTypeSelected); + } + + return this.apiRequest.post(`${this.basePath}/reports.get_all_ex`, + request, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * Get all the user tags used for the company reports + * @param request request body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public reportsGetTags(request: object, options?: any, observe: any = 'body', reportProgress: boolean = false ): Observable { + if (request === null || request === undefined) { + throw new Error('Required parameter request was null or undefined when calling reportsGetTags.'); + } + + let headers = this.defaultHeaders; + if (options && options.async_enable) { + headers = headers.set(this.configuration.asyncHeader, '1'); + } + + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/json' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set("Accept", httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + const httpContentTypeSelected:string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set("Content-Type", httpContentTypeSelected); + } + + return this.apiRequest.post(`${this.basePath}/reports.get_tags`, + request, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * Get the tasks data according the passed search criteria + requested events + * @param request request body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public reportsGetTaskData(request: ReportsGetTaskDataRequest, options?: any, observe: any = 'body', reportProgress: boolean = false ): Observable { + if (request === null || request === undefined) { + throw new Error('Required parameter request was null or undefined when calling reportsGetTaskData.'); + } + + let headers = this.defaultHeaders; + if (options && options.async_enable) { + headers = headers.set(this.configuration.asyncHeader, '1'); + } + + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/json' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set("Accept", httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + const httpContentTypeSelected:string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set("Content-Type", httpContentTypeSelected); + } + + return this.apiRequest.post(`${this.basePath}/reports.get_task_data`, + request, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * Move reports to a project + * @param request request body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public reportsMove(request: ReportsMoveRequest, options?: any, observe: any = 'body', reportProgress: boolean = false ): Observable { + if (request === null || request === undefined) { + throw new Error('Required parameter request was null or undefined when calling reportsMove.'); + } + + let headers = this.defaultHeaders; + if (options && options.async_enable) { + headers = headers.set(this.configuration.asyncHeader, '1'); + } + + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/json' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set("Accept", httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + const httpContentTypeSelected:string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set("Content-Type", httpContentTypeSelected); + } + + return this.apiRequest.post(`${this.basePath}/reports.move`, + request, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * Publish report + * @param request request body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public reportsPublish(request: ReportsPublishRequest, options?: any, observe: any = 'body', reportProgress: boolean = false ): Observable { + if (request === null || request === undefined) { + throw new Error('Required parameter request was null or undefined when calling reportsPublish.'); + } + + let headers = this.defaultHeaders; + if (options && options.async_enable) { + headers = headers.set(this.configuration.asyncHeader, '1'); + } + + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/json' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set("Accept", httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + const httpContentTypeSelected:string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set("Content-Type", httpContentTypeSelected); + } + + return this.apiRequest.post(`${this.basePath}/reports.publish`, + request, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * Share or unshare report + * @param request request body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public reportsShare(request: ReportsShareRequest, options?: any, observe: any = 'body', reportProgress: boolean = false ): Observable { + if (request === null || request === undefined) { + throw new Error('Required parameter request was null or undefined when calling reportsShare.'); + } + + let headers = this.defaultHeaders; + if (options && options.async_enable) { + headers = headers.set(this.configuration.asyncHeader, '1'); + } + + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/json' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set("Accept", httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + const httpContentTypeSelected:string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set("Content-Type", httpContentTypeSelected); + } + + return this.apiRequest.post(`${this.basePath}/reports.share`, + request, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * Unarchive report + * @param request request body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public reportsUnarchive(request: ReportsUnarchiveRequest, options?: any, observe: any = 'body', reportProgress: boolean = false ): Observable { + if (request === null || request === undefined) { + throw new Error('Required parameter request was null or undefined when calling reportsUnarchive.'); + } + + let headers = this.defaultHeaders; + if (options && options.async_enable) { + headers = headers.set(this.configuration.asyncHeader, '1'); + } + + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/json' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set("Accept", httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + const httpContentTypeSelected:string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set("Content-Type", httpContentTypeSelected); + } + + return this.apiRequest.post(`${this.basePath}/reports.unarchive`, + request, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * + * Create a new report + * @param request request body + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public reportsUpdate(request: ReportsUpdateRequest, options?: any, observe: any = 'body', reportProgress: boolean = false ): Observable { + if (request === null || request === undefined) { + throw new Error('Required parameter request was null or undefined when calling reportsUpdate.'); + } + + let headers = this.defaultHeaders; + if (options && options.async_enable) { + headers = headers.set(this.configuration.asyncHeader, '1'); + } + + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/json' + ]; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected != undefined) { + headers = headers.set("Accept", httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = [ + ]; + const httpContentTypeSelected:string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected != undefined) { + headers = headers.set("Content-Type", httpContentTypeSelected); + } + + return this.apiRequest.post(`${this.basePath}/reports.update`, + request, + { + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + +} diff --git a/src/app/business-logic/business-logic.module.ts b/src/app/business-logic/business-logic.module.ts index b2795eb8..3958527a 100644 --- a/src/app/business-logic/business-logic.module.ts +++ b/src/app/business-logic/business-logic.module.ts @@ -16,6 +16,7 @@ import {ApiServerService} from './api-services/server.service'; import {ApiOrganizationService} from './api-services/organization.service'; import {ApiLoginService} from './api-services/login.service'; import {ApiPipelinesService} from '~/business-logic/api-services/pipelines.service'; +import {ApiReportsService} from '~/business-logic/api-services/reports.service'; @NgModule({ imports : [CommonModule, HttpClientModule], @@ -36,7 +37,8 @@ import {ApiPipelinesService} from '~/business-logic/api-services/pipelines.servi ApiServerService, ApiOrganizationService, ApiLoginService, - ApiPipelinesService + ApiPipelinesService, + ApiReportsService, ] }) export class BusinessLogicModule { diff --git a/src/app/business-logic/model/models/modelsGetAllExRequest.ts b/src/app/business-logic/model/models/modelsGetAllExRequest.ts index 57c7e0fb..34dea4c6 100644 --- a/src/app/business-logic/model/models/modelsGetAllExRequest.ts +++ b/src/app/business-logic/model/models/modelsGetAllExRequest.ts @@ -74,6 +74,10 @@ export interface ModelsGetAllExRequest { * List of model URIs */ uri?: Array; + /** + * List of last_update constraint strings (utcformat, epoch) with an optional prefix modifier (>, >=, <, <=) + */ + last_update?: Array; _all_?: MultiFieldPatternData; _any_?: MultiFieldPatternData; /** @@ -96,4 +100,8 @@ export interface ModelsGetAllExRequest { * If true, include models statistic in response */ include_stats?: boolean; + /** + * Allow public models to be returned in the results + */ + allow_public?: boolean; } diff --git a/src/app/business-logic/model/organization/organizationGetEntitiesCountRequest.ts b/src/app/business-logic/model/organization/organizationGetEntitiesCountRequest.ts index 75364e5e..1733f4ee 100644 --- a/src/app/business-logic/model/organization/organizationGetEntitiesCountRequest.ts +++ b/src/app/business-logic/model/organization/organizationGetEntitiesCountRequest.ts @@ -25,6 +25,10 @@ export interface OrganizationGetEntitiesCountRequest { * Search criteria for models */ models?: object; + /** + * Search criteria for dataviews + */ + dataviews?: object; /** * Search criteria for pipelines */ @@ -32,13 +36,18 @@ export interface OrganizationGetEntitiesCountRequest { /** * Search criteria for datasets */ - datasets: object; + datasets?: object; /** - * If set to 'true' then hidden projects and tasks are included in the search results + * If set to \'true\' then hidden projects and tasks are included in the search results */ search_hidden?: boolean; + active_users?: Array; /** - * The list of users that were active in the project. If passes then the resulting projects are filtered to the ones that have tasks created by these users + * Search criteria for reports */ - active_users?: string[]; + reports?: object; + /** + * Allow public entities to be counted in the results + */ + allow_public?: boolean; } diff --git a/src/app/business-logic/model/organization/organizationGetEntitiesCountResponse.ts b/src/app/business-logic/model/organization/organizationGetEntitiesCountResponse.ts index 35f76cfa..d56b5ce1 100644 --- a/src/app/business-logic/model/organization/organizationGetEntitiesCountResponse.ts +++ b/src/app/business-logic/model/organization/organizationGetEntitiesCountResponse.ts @@ -29,12 +29,16 @@ export interface OrganizationGetEntitiesCountResponse { * The number of dataviews matching the criteria */ dataviews?: number; - /** - * The number of hyper datasets matching the criteria - */ - hyper_datasets?: number; /** * The number of pipelines matching the criteria */ pipelines?: number; + /** + * The number of datasets matching the criteria + */ + datasets?: number; + /** + * The number of reports matching the criteria + */ + reports?: number; } diff --git a/src/app/business-logic/model/projects/projectsGetAllExRequest.ts b/src/app/business-logic/model/projects/projectsGetAllExRequest.ts index 165a811c..099e5bff 100644 --- a/src/app/business-logic/model/projects/projectsGetAllExRequest.ts +++ b/src/app/business-logic/model/projects/projectsGetAllExRequest.ts @@ -2,7 +2,7 @@ * projects * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * OpenAPI spec version: 2.14 + * OpenAPI spec version: 999.0 * * * NOTE: This class is auto generated by the swagger code generator program. @@ -22,6 +22,10 @@ export interface ProjectsGetAllExRequest { * Get only projects whose name matches this pattern (python regular expression syntax) */ name?: string; + /** + * Project base name + */ + basename?: string; /** * Get only projects whose description matches this pattern (python regular expression syntax) */ @@ -39,7 +43,7 @@ export interface ProjectsGetAllExRequest { */ order_by?: Array; /** - * Page number, returns a specific page out of the resulting list of projects + * Page number, returns a specific page out of the resulting list of dataviews */ page?: number; /** @@ -74,7 +78,7 @@ export interface ProjectsGetAllExRequest { */ shallow_search?: boolean; /** - * If set to \'true\' and project ids are passed to the query then for these projects their own tasks and models are counted + * If set to \'true\' and project ids are passed to the query then for these projects their own tasks, models and dataviews are counted */ check_own_contents?: boolean; /** @@ -93,12 +97,26 @@ export interface ProjectsGetAllExRequest { * The number of projects to retrieve */ size?: number; - stats_with_children?: boolean; - include_stats_filter?: any; + /** + * If include_stats flag is set then this flag contols whether the child projects tasks are taken into statistics or not + */ + stats_with_children?: boolean; + /** + * The filter for selecting entities that participate in statistics calculation. For each task field that you want to filter on pass the list of allowed values. Prepend the value with \'-\' to exclude + */ + include_stats_filter?: object; /** * If true, include project dataset statistic in response */ include_dataset_stats?: boolean; + /** + * If Truethen the shallow search is done among all the top projects that the user has access to beneath the requested parent. Even if these projects are not direct children of the parent + */ + permission_roots_only?: boolean; + /** + * Allow public projects to be returned in the results + */ + allow_public?: boolean; } export namespace ProjectsGetAllExRequest { export type StatsForStateEnum = 'active' | 'archived'; diff --git a/src/app/business-logic/model/reports/artifact.ts b/src/app/business-logic/model/reports/artifact.ts new file mode 100644 index 00000000..dd2c90f4 --- /dev/null +++ b/src/app/business-logic/model/reports/artifact.ts @@ -0,0 +1,48 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { ArtifactModeEnum } from '././artifactModeEnum'; +import { ArtifactTypeData } from '././artifactTypeData'; + + +export interface Artifact { + /** + * Entry key + */ + key: string; + /** + * System defined type + */ + type: string; + mode?: ArtifactModeEnum; + /** + * Raw data location + */ + uri?: string; + /** + * Raw data length in bytes + */ + content_size?: number; + /** + * Hash of entire raw data + */ + hash?: string; + /** + * Epoch time when artifact was created + */ + timestamp?: number; + type_data?: ArtifactTypeData; + /** + * User-defined list of key/value pairs, sorted + */ + display_data?: Array>; +} diff --git a/src/app/business-logic/model/reports/artifactModeEnum.ts b/src/app/business-logic/model/reports/artifactModeEnum.ts new file mode 100644 index 00000000..664b2b00 --- /dev/null +++ b/src/app/business-logic/model/reports/artifactModeEnum.ts @@ -0,0 +1,20 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export type ArtifactModeEnum = 'input' | 'output'; + +export const ArtifactModeEnum = { + Input: 'input' as ArtifactModeEnum, + Output: 'output' as ArtifactModeEnum +} diff --git a/src/app/business-logic/model/reports/artifactTypeData.ts b/src/app/business-logic/model/reports/artifactTypeData.ts new file mode 100644 index 00000000..e9330038 --- /dev/null +++ b/src/app/business-logic/model/reports/artifactTypeData.ts @@ -0,0 +1,28 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ArtifactTypeData { + /** + * Description or textual data + */ + preview?: string; + /** + * System defined raw data content type + */ + content_type?: string; + /** + * Hash of raw data, without any headers or descriptive parts + */ + data_hash?: string; +} diff --git a/src/app/business-logic/model/reports/augmentation.ts b/src/app/business-logic/model/reports/augmentation.ts new file mode 100644 index 00000000..b962d0a5 --- /dev/null +++ b/src/app/business-logic/model/reports/augmentation.ts @@ -0,0 +1,25 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { AugmentationSet } from '././augmentationSet'; + + +export interface Augmentation { + /** + * List of augmentation sets + */ + sets?: Array; + /** + * Crop image data around all frame ROIs + */ + crop_around_rois?: boolean; +} diff --git a/src/app/business-logic/model/reports/augmentationSet.ts b/src/app/business-logic/model/reports/augmentationSet.ts new file mode 100644 index 00000000..49058edc --- /dev/null +++ b/src/app/business-logic/model/reports/augmentationSet.ts @@ -0,0 +1,32 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface AugmentationSet { + /** + * Augmentation class + */ + cls?: string; + /** + * Augmentation type + */ + types?: Array; + /** + * Augmentation strength. Range [0,). + */ + strength?: number; + /** + * Arguments dictionary per custom augmentation type. + */ + arguments?: { [key: string]: object; }; +} diff --git a/src/app/business-logic/model/reports/configurationItem.ts b/src/app/business-logic/model/reports/configurationItem.ts new file mode 100644 index 00000000..45f91a8b --- /dev/null +++ b/src/app/business-logic/model/reports/configurationItem.ts @@ -0,0 +1,32 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ConfigurationItem { + /** + * Name of the parameter. Should be unique + */ + name?: string; + /** + * Value of the parameter + */ + value?: string; + /** + * Type of the parameter. Optional + */ + type?: string; + /** + * The parameter description. Optional + */ + description?: string; +} diff --git a/src/app/business-logic/model/reports/debugImagesResponseTaskMetrics.ts b/src/app/business-logic/model/reports/debugImagesResponseTaskMetrics.ts new file mode 100644 index 00000000..e9f93969 --- /dev/null +++ b/src/app/business-logic/model/reports/debugImagesResponseTaskMetrics.ts @@ -0,0 +1,22 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { DebugImagesResponseTaskMetricsIterations } from '././debugImagesResponseTaskMetricsIterations'; + + +export interface DebugImagesResponseTaskMetrics { + /** + * Task ID + */ + task?: string; + iterations?: Array; +} diff --git a/src/app/business-logic/model/reports/debugImagesResponseTaskMetricsIterations.ts b/src/app/business-logic/model/reports/debugImagesResponseTaskMetricsIterations.ts new file mode 100644 index 00000000..f0dbbfbb --- /dev/null +++ b/src/app/business-logic/model/reports/debugImagesResponseTaskMetricsIterations.ts @@ -0,0 +1,21 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface DebugImagesResponseTaskMetricsIterations { + /** + * Iteration number + */ + iter?: number; + events?: Array; +} diff --git a/src/app/business-logic/model/reports/execution.ts b/src/app/business-logic/model/reports/execution.ts new file mode 100644 index 00000000..ca4acec4 --- /dev/null +++ b/src/app/business-logic/model/reports/execution.ts @@ -0,0 +1,57 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { Artifact } from '././artifact'; + + +export interface Execution { + /** + * Queue ID where task was queued. + */ + queue?: string; + /** + * Percentage of frames to use for testing only + */ + test_split?: number; + /** + * Json object containing the Task parameters + */ + parameters?: object; + /** + * Execution input model ID Not applicable for Register (Import) tasks + */ + model?: string; + /** + * Json object representing the Model descriptors + */ + model_desc?: object; + /** + * Json object representing the ids of the labels in the model. The keys are the layers\' names and the values are the IDs. Not applicable for Register (Import) tasks. Mandatory for Training tasks + */ + model_labels?: { [key: string]: number; }; + /** + * Framework related to the task. Case insensitive. Mandatory for Training tasks. + */ + framework?: string; + /** + * Additional dataviews for the task + */ + dataviews?: Array; + /** + * Command for running docker script for the execution of the task + */ + docker_cmd?: string; + /** + * Task artifacts + */ + artifacts?: Array; +} diff --git a/src/app/business-logic/model/reports/filterByRoiEnum.ts b/src/app/business-logic/model/reports/filterByRoiEnum.ts new file mode 100644 index 00000000..bb5160e3 --- /dev/null +++ b/src/app/business-logic/model/reports/filterByRoiEnum.ts @@ -0,0 +1,21 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export type FilterByRoiEnum = 'disabled' | 'no_rois' | 'label_rules'; + +export const FilterByRoiEnum = { + Disabled: 'disabled' as FilterByRoiEnum, + NoRois: 'no_rois' as FilterByRoiEnum, + LabelRules: 'label_rules' as FilterByRoiEnum +} diff --git a/src/app/business-logic/model/reports/filterLabelRule.ts b/src/app/business-logic/model/reports/filterLabelRule.ts new file mode 100644 index 00000000..a504b0ac --- /dev/null +++ b/src/app/business-logic/model/reports/filterLabelRule.ts @@ -0,0 +1,32 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface FilterLabelRule { + /** + * Lucene format query (see lucene query syntax). Default search field is label.keyword and default operator is AND, so searching for: \'Bus Stop\' Blue is equivalent to: Label.keyword:\'Bus Stop\' AND label.keyword:\'Blue\' + */ + label: string; + /** + * Range of times ROI appears in the frame (min, max). -1 for not applicable. Both integers must be larger than or equal to -1. 2nd integer (max) must be either -1 or larger than or equal to the 1st integer (min) + */ + count_range?: Array; + /** + * Range of ROI confidence level in the frame (min, max). -1 for not applicable Both min and max can be either -1 or positive. 2nd number (max) must be either -1 or larger than or equal to the 1st number (min) + */ + conf_range?: Array; + /** + * If set then the label must not exist or lucene query must not be true. The default value is false + */ + must_not?: boolean; +} diff --git a/src/app/business-logic/model/reports/filterRule.ts b/src/app/business-logic/model/reports/filterRule.ts new file mode 100644 index 00000000..6bcb5d54 --- /dev/null +++ b/src/app/business-logic/model/reports/filterRule.ts @@ -0,0 +1,43 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { FilterByRoiEnum } from '././filterByRoiEnum'; +import { FilterLabelRule } from '././filterLabelRule'; + + +export interface FilterRule { + /** + * List of FilterLabelRule (\'AND\' connection) disabled - No filtering by ROIs. Select all frames, even if they don\'t have ROIs (all frames) no_rois - Select only frames without ROIs (empty frames) label_rules - Select frames according to label rules + */ + label_rules?: Array; + filter_by_roi?: FilterByRoiEnum; + /** + * Frame filter, in Lucene query syntax + */ + frame_query?: string; + /** + * Sources filter, in Lucene query syntax. Filters sources in each frame. + */ + sources_query?: string; + /** + * Dataset ID. Must be a dataset which is in the task\'s view. If set to \'*\' all datasets in View are used. + */ + dataset: string; + /** + * Dataset version to apply rule to. Must belong to the dataset and be in the task\'s view. If set to \'*\' all version of the datasets in View are used. + */ + version?: string; + /** + * Rule weight. Default is 1 + */ + weight?: number; +} diff --git a/src/app/business-logic/model/reports/filtering.ts b/src/app/business-logic/model/reports/filtering.ts new file mode 100644 index 00000000..76669ee9 --- /dev/null +++ b/src/app/business-logic/model/reports/filtering.ts @@ -0,0 +1,23 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { OutputRoisEnum } from '././outputRoisEnum'; +import { FilterRule } from '././filterRule'; + + +export interface Filtering { + /** + * List of FilterRule (\'OR\' connection) + */ + filtering_rules?: Array; + output_rois?: OutputRoisEnum; +} diff --git a/src/app/business-logic/model/reports/input.ts b/src/app/business-logic/model/reports/input.ts new file mode 100644 index 00000000..1be09a81 --- /dev/null +++ b/src/app/business-logic/model/reports/input.ts @@ -0,0 +1,30 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { Augmentation } from '././augmentation'; +import { Filtering } from '././filtering'; +import { Iteration } from '././iteration'; +import { Mapping } from '././mapping'; +import { View } from '././view'; + + +export interface Input { + view?: View; + frames_filter?: Filtering; + mapping?: Mapping; + augmentation?: Augmentation; + iteration?: Iteration; + /** + * Key to DataView ID Mapping + */ + dataviews?: { [key: string]: string; }; +} diff --git a/src/app/business-logic/model/reports/iteration.ts b/src/app/business-logic/model/reports/iteration.ts new file mode 100644 index 00000000..d84cb78e --- /dev/null +++ b/src/app/business-logic/model/reports/iteration.ts @@ -0,0 +1,41 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { Jump } from '././jump'; + + +/** + * Sequential Iteration API configuration + */ +export interface Iteration { + /** + * Input frames order. Values: \'sequential\', \'random\' In Sequential mode frames will be returned according to the order in which the frames were added to the dataset. + */ + order?: string; + jump?: Jump; + /** + * Length (in ms) of video clips to return. This is used in random order, and in sequential order only if jumping is provided and only for video frames + */ + min_sequence?: number; + /** + * Infinite iteration + */ + infinite?: boolean; + /** + * Maximum frames per task. If not passed, frames will end when no more matching frames are found, unless infinite is True. + */ + limit?: number; + /** + * Random seed used during iteration + */ + random_seed: number; +} diff --git a/src/app/business-logic/model/reports/jump.ts b/src/app/business-logic/model/reports/jump.ts new file mode 100644 index 00000000..129ad178 --- /dev/null +++ b/src/app/business-logic/model/reports/jump.ts @@ -0,0 +1,20 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface Jump { + /** + * Max time in milliseconds between frames + */ + time?: number; +} diff --git a/src/app/business-logic/model/reports/labelSource.ts b/src/app/business-logic/model/reports/labelSource.ts new file mode 100644 index 00000000..5604b332 --- /dev/null +++ b/src/app/business-logic/model/reports/labelSource.ts @@ -0,0 +1,28 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface LabelSource { + /** + * List of source labels (AND connection). \'*\' indicates any label. Labels must exist in at least one of the dataset versions in the task\'s view + */ + labels?: Array; + /** + * Source dataset id. \'*\' for all datasets in view + */ + dataset?: string; + /** + * Source dataset version id. Default is \'*\' (for all versions in dataset in the view) Version must belong to the selected dataset, and must be in the task\'s view[i] + */ + version?: string; +} diff --git a/src/app/business-logic/model/reports/lastMetricsEvent.ts b/src/app/business-logic/model/reports/lastMetricsEvent.ts new file mode 100644 index 00000000..0c37875a --- /dev/null +++ b/src/app/business-logic/model/reports/lastMetricsEvent.ts @@ -0,0 +1,36 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface LastMetricsEvent { + /** + * Metric name + */ + metric?: string; + /** + * Variant name + */ + variant?: string; + /** + * Last value reported + */ + value?: number; + /** + * Minimum value reported + */ + min_value?: number; + /** + * Maximum value reported + */ + max_value?: number; +} diff --git a/src/app/business-logic/model/reports/mapping.ts b/src/app/business-logic/model/reports/mapping.ts new file mode 100644 index 00000000..5fd0b05e --- /dev/null +++ b/src/app/business-logic/model/reports/mapping.ts @@ -0,0 +1,21 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { MappingRule } from '././mappingRule'; + + +export interface Mapping { + /** + * Rules list + */ + rules?: Array; +} diff --git a/src/app/business-logic/model/reports/mappingRule.ts b/src/app/business-logic/model/reports/mappingRule.ts new file mode 100644 index 00000000..36d6645c --- /dev/null +++ b/src/app/business-logic/model/reports/mappingRule.ts @@ -0,0 +1,22 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { LabelSource } from '././labelSource'; + + +export interface MappingRule { + source?: LabelSource; + /** + * Target label name + */ + target?: string; +} diff --git a/src/app/business-logic/model/reports/models.ts b/src/app/business-logic/model/reports/models.ts new file mode 100644 index 00000000..10e6cd28 --- /dev/null +++ b/src/app/business-logic/model/reports/models.ts @@ -0,0 +1,63 @@ +export * from '././artifact'; +export * from '././artifactModeEnum'; +export * from '././artifactTypeData'; +export * from '././augmentation'; +export * from '././augmentationSet'; +export * from '././configurationItem'; +export * from '././debugImagesResponseTaskMetrics'; +export * from '././debugImagesResponseTaskMetricsIterations'; +export * from '././execution'; +export * from '././filterByRoiEnum'; +export * from '././filterLabelRule'; +export * from '././filterRule'; +export * from '././filtering'; +export * from '././input'; +export * from '././iteration'; +export * from '././jump'; +export * from '././labelSource'; +export * from '././lastMetricsEvent'; +export * from '././mapping'; +export * from '././mappingRule'; +export * from '././multiFieldPatternData'; +export * from '././output'; +export * from '././outputRoisEnum'; +export * from '././paramsItem'; +export * from '././plotsResponseTaskMetrics'; +export * from '././plotsResponseTaskMetricsIterations'; +export * from '././report'; +export * from '././reportStatusEnum'; +export * from '././reportsArchiveRequest'; +export * from '././reportsArchiveResponse'; +export * from '././reportsCreateRequest'; +export * from '././reportsCreateResponse'; +export * from '././reportsDeleteRequest'; +export * from '././reportsDeleteResponse'; +export * from '././reportsGetAllExRequest'; +export * from '././reportsGetAllExResponse'; +export * from '././reportsGetTaskDataRequest'; +export * from '././reportsGetTaskDataRequestDebugImages'; +export * from '././reportsGetTaskDataRequestPlots'; +export * from '././reportsGetTaskDataRequestScalarMetricsIterHistogram'; +export * from '././reportsGetTaskDataResponse'; +export * from '././reportsGetTaskDataResponseDebugImages'; +export * from '././reportsGetTaskDataResponsePlots'; +export * from '././reportsGetTaskDataResponseScalarMetricsIterHistogram'; +export * from '././reportsMoveRequest'; +export * from '././reportsMoveResponse'; +export * from '././reportsPublishRequest'; +export * from '././reportsPublishResponse'; +export * from '././reportsShareRequest'; +export * from '././reportsShareResponse'; +export * from '././reportsUnarchiveRequest'; +export * from '././reportsUnarchiveResponse'; +export * from '././reportsUpdateRequest'; +export * from '././reportsUpdateResponse'; +export * from '././scalarKeyEnum'; +export * from '././script'; +export * from '././task'; +export * from '././taskModelItem'; +export * from '././taskModels'; +export * from '././taskStatusEnum'; +export * from '././taskTypeEnum'; +export * from '././view'; +export * from '././viewEntry'; diff --git a/src/app/business-logic/model/reports/multiFieldPatternData.ts b/src/app/business-logic/model/reports/multiFieldPatternData.ts new file mode 100644 index 00000000..12b5dd3c --- /dev/null +++ b/src/app/business-logic/model/reports/multiFieldPatternData.ts @@ -0,0 +1,24 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface MultiFieldPatternData { + /** + * Pattern string (regex) + */ + pattern?: string; + /** + * List of field names + */ + fields?: Array; +} diff --git a/src/app/business-logic/model/reports/output.ts b/src/app/business-logic/model/reports/output.ts new file mode 100644 index 00000000..fbaebc56 --- /dev/null +++ b/src/app/business-logic/model/reports/output.ts @@ -0,0 +1,34 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { View } from '././view'; + + +export interface Output { + view?: View; + /** + * Storage id. This is where output files will be stored. + */ + destination?: string; + /** + * Model id. + */ + model?: string; + /** + * Task result. Values: \'success\', \'failure\' + */ + result?: string; + /** + * Last error text + */ + error?: string; +} diff --git a/src/app/business-logic/model/reports/outputRoisEnum.ts b/src/app/business-logic/model/reports/outputRoisEnum.ts new file mode 100644 index 00000000..9ea54fb8 --- /dev/null +++ b/src/app/business-logic/model/reports/outputRoisEnum.ts @@ -0,0 +1,21 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export type OutputRoisEnum = 'all_in_frame' | 'only_filtered' | 'frame_per_roi'; + +export const OutputRoisEnum = { + AllInFrame: 'all_in_frame' as OutputRoisEnum, + OnlyFiltered: 'only_filtered' as OutputRoisEnum, + FramePerRoi: 'frame_per_roi' as OutputRoisEnum +} diff --git a/src/app/business-logic/model/reports/paramsItem.ts b/src/app/business-logic/model/reports/paramsItem.ts new file mode 100644 index 00000000..a010d378 --- /dev/null +++ b/src/app/business-logic/model/reports/paramsItem.ts @@ -0,0 +1,36 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ParamsItem { + /** + * Section that the parameter belongs to + */ + section?: string; + /** + * Name of the parameter. The combination of section and name should be unique + */ + name?: string; + /** + * Value of the parameter + */ + value?: string; + /** + * Type of the parameter. Optional + */ + type?: string; + /** + * The parameter description. Optional + */ + description?: string; +} diff --git a/src/app/business-logic/model/reports/plotsResponseTaskMetrics.ts b/src/app/business-logic/model/reports/plotsResponseTaskMetrics.ts new file mode 100644 index 00000000..ec1b1aaa --- /dev/null +++ b/src/app/business-logic/model/reports/plotsResponseTaskMetrics.ts @@ -0,0 +1,22 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { PlotsResponseTaskMetricsIterations } from '././plotsResponseTaskMetricsIterations'; + + +export interface PlotsResponseTaskMetrics { + /** + * Task ID + */ + task?: string; + iterations?: Array; +} diff --git a/src/app/business-logic/model/reports/plotsResponseTaskMetricsIterations.ts b/src/app/business-logic/model/reports/plotsResponseTaskMetricsIterations.ts new file mode 100644 index 00000000..aac4a472 --- /dev/null +++ b/src/app/business-logic/model/reports/plotsResponseTaskMetricsIterations.ts @@ -0,0 +1,21 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface PlotsResponseTaskMetricsIterations { + /** + * Iteration number + */ + iter?: number; + events?: Array; +} diff --git a/src/app/business-logic/model/reports/report.ts b/src/app/business-logic/model/reports/report.ts new file mode 100644 index 00000000..61a181de --- /dev/null +++ b/src/app/business-logic/model/reports/report.ts @@ -0,0 +1,76 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { ReportStatusEnum } from '././reportStatusEnum'; + + +export interface Report { + /** + * Report id + */ + id?: string; + /** + * Report Name + */ + name?: string; + /** + * Associated user id + */ + user?: string; + /** + * Company ID + */ + company?: string; + status?: ReportStatusEnum; + /** + * Free text comment + */ + comment?: string; + /** + * Report creation time (UTC) + */ + created?: string; + /** + * Project ID of the project to which this report is assigned + */ + project?: string; + /** + * User-defined tags list + */ + tags?: Array; + /** + * System tags list. This field is reserved for system use, please don\'t use it. + */ + system_tags?: Array; + /** + * Last status change time + */ + status_changed?: string; + /** + * free text string representing info about the status + */ + status_message?: string; + /** + * Reason for last status change + */ + status_reason?: string; + /** + * Report publish time + */ + published?: string; + /** + * Last time this report was created, edited, changed + */ + last_update?: string; + + report?: string; +} diff --git a/src/app/business-logic/model/reports/reportStatusEnum.ts b/src/app/business-logic/model/reports/reportStatusEnum.ts new file mode 100644 index 00000000..3f7dbab0 --- /dev/null +++ b/src/app/business-logic/model/reports/reportStatusEnum.ts @@ -0,0 +1,20 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export type ReportStatusEnum = 'created' | 'published'; + +export const ReportStatusEnum = { + Created: 'created' as ReportStatusEnum, + Published: 'published' as ReportStatusEnum +} diff --git a/src/app/business-logic/model/reports/reportsArchiveRequest.ts b/src/app/business-logic/model/reports/reportsArchiveRequest.ts new file mode 100644 index 00000000..97d96615 --- /dev/null +++ b/src/app/business-logic/model/reports/reportsArchiveRequest.ts @@ -0,0 +1,24 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ReportsArchiveRequest { + /** + * The ID of the report task to archive + */ + task: string; + /** + * The client message + */ + comment?: string; +} diff --git a/src/app/business-logic/model/reports/reportsArchiveResponse.ts b/src/app/business-logic/model/reports/reportsArchiveResponse.ts new file mode 100644 index 00000000..a9f1984f --- /dev/null +++ b/src/app/business-logic/model/reports/reportsArchiveResponse.ts @@ -0,0 +1,20 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ReportsArchiveResponse { + /** + * Number of reports archived (0 or 1) + */ + archived?: number; +} diff --git a/src/app/business-logic/model/reports/reportsCreateRequest.ts b/src/app/business-logic/model/reports/reportsCreateRequest.ts new file mode 100644 index 00000000..a32fff38 --- /dev/null +++ b/src/app/business-logic/model/reports/reportsCreateRequest.ts @@ -0,0 +1,36 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ReportsCreateRequest { + /** + * Report name. Unique within the company. + */ + name: string; + /** + * User-defined tags list + */ + tags?: Array; + /** + * Free text comment + */ + comment?: string; + /** + * Report template + */ + report?: string; + /** + * Project ID of the project to which this report is assigned Must exist[ab] + */ + project?: string; +} diff --git a/src/app/business-logic/model/reports/reportsCreateResponse.ts b/src/app/business-logic/model/reports/reportsCreateResponse.ts new file mode 100644 index 00000000..a1610399 --- /dev/null +++ b/src/app/business-logic/model/reports/reportsCreateResponse.ts @@ -0,0 +1,24 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ReportsCreateResponse { + /** + * ID of the report + */ + id?: string; + /** + * ID of the project that the report belongs to + */ + project_id?: string; +} diff --git a/src/app/business-logic/model/reports/reportsDeleteRequest.ts b/src/app/business-logic/model/reports/reportsDeleteRequest.ts new file mode 100644 index 00000000..62c677ab --- /dev/null +++ b/src/app/business-logic/model/reports/reportsDeleteRequest.ts @@ -0,0 +1,24 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ReportsDeleteRequest { + /** + * The ID of the report task to delete + */ + task: string; + /** + * If not set then published or unarchived reports cannot be deleted + */ + force?: boolean; +} diff --git a/src/app/business-logic/model/reports/reportsDeleteResponse.ts b/src/app/business-logic/model/reports/reportsDeleteResponse.ts new file mode 100644 index 00000000..1e33c1e0 --- /dev/null +++ b/src/app/business-logic/model/reports/reportsDeleteResponse.ts @@ -0,0 +1,20 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ReportsDeleteResponse { + /** + * Number of deleted reports (0 or 1) + */ + deleted?: number; +} diff --git a/src/app/business-logic/model/reports/reportsGetAllExRequest.ts b/src/app/business-logic/model/reports/reportsGetAllExRequest.ts new file mode 100644 index 00000000..a98e4969 --- /dev/null +++ b/src/app/business-logic/model/reports/reportsGetAllExRequest.ts @@ -0,0 +1,84 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { ReportStatusEnum } from '././reportStatusEnum'; +import { MultiFieldPatternData } from '././multiFieldPatternData'; + + +export interface ReportsGetAllExRequest { + /** + * List of IDs to filter by + */ + id?: Array; + /** + * Get only reports whose name matches this pattern (python regular expression syntax) + */ + name?: string; + /** + * List of user IDs used to filter results by the reports\'s creating user + */ + user?: Array; + /** + * Page number, returns a specific page out of the resulting list of reports + */ + page?: number; + /** + * Page size, specifies the number of results returned in each page (last page may contain fewer results) + */ + page_size?: number; + /** + * List of field names to order by. When search_text is used, \'@text_score\' can be used as a field representing the text score of returned documents. Use \'-\' prefix to specify descending order. Optional, recommended when using page + */ + order_by?: Array; + /** + * List of report user-defined tags. Use \'-\' prefix to exclude tags + */ + tags?: Array; + /** + * List of report system tags. Use \'-\' prefix to exclude system tags + */ + system_tags?: Array; + /** + * List of report status. + */ + status?: Array; + /** + * List of project IDs + */ + project?: Array; + /** + * List of report field names (nesting is supported using \'.\'). If provided, this list defines the query\'s projection (only these fields will be returned for each result entry) + */ + only_fields?: Array; + /** + * List of status changed constraint strings (utcformat, epoch) with an optional prefix modifier (>, >=, <, <=) + */ + status_changed?: Array; + /** + * Free text search query + */ + search_text?: string; + /** + * Scroll ID returned from the previos calls to get_all + */ + scroll_id?: string; + /** + * If set then all the data received with this scroll will be requeried + */ + refresh_scroll?: boolean; + /** + * The number of tasks to retrieve + */ + size?: number; + _all_?: MultiFieldPatternData; + _any_?: MultiFieldPatternData; +} diff --git a/src/app/business-logic/model/reports/reportsGetAllExResponse.ts b/src/app/business-logic/model/reports/reportsGetAllExResponse.ts new file mode 100644 index 00000000..db0c7859 --- /dev/null +++ b/src/app/business-logic/model/reports/reportsGetAllExResponse.ts @@ -0,0 +1,25 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { Report } from '././report'; + + +export interface ReportsGetAllExResponse { + /** + * List of report tasks + */ + tasks?: Array; + /** + * Scroll ID that can be used with the next calls to get_all to retrieve more data + */ + scroll_id?: string; +} diff --git a/src/app/business-logic/model/reports/reportsGetTagsResponse.ts b/src/app/business-logic/model/reports/reportsGetTagsResponse.ts new file mode 100644 index 00000000..272966fd --- /dev/null +++ b/src/app/business-logic/model/reports/reportsGetTagsResponse.ts @@ -0,0 +1,20 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ReportsGetTagsResponse { + /** + * The list of unique tag values + */ + tags?: Array; +} diff --git a/src/app/business-logic/model/reports/reportsGetTaskDataRequest.ts b/src/app/business-logic/model/reports/reportsGetTaskDataRequest.ts new file mode 100644 index 00000000..2508c958 --- /dev/null +++ b/src/app/business-logic/model/reports/reportsGetTaskDataRequest.ts @@ -0,0 +1,98 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { ReportsGetTaskDataRequestPlots } from '././reportsGetTaskDataRequestPlots'; +import { MultiFieldPatternData } from '././multiFieldPatternData'; +import { ReportsGetTaskDataRequestScalarMetricsIterHistogram } from '././reportsGetTaskDataRequestScalarMetricsIterHistogram'; +import { TaskStatusEnum } from '././taskStatusEnum'; +import { ReportsGetTaskDataRequestDebugImages } from '././reportsGetTaskDataRequestDebugImages'; + + +export interface ReportsGetTaskDataRequest { + /** + * List of IDs to filter by + */ + id?: Array; + /** + * Get only tasks whose name matches this pattern (python regular expression syntax) + */ + name?: string; + /** + * List of user IDs used to filter results by the task\'s creating user + */ + user?: Array; + /** + * The number of tasks to retrieve + */ + size?: number; + /** + * List of field names to order by. When search_text is used, \'@text_score\' can be used as a field representing the text score of returned documents. Use \'-\' prefix to specify descending order. Optional, recommended when using page + */ + order_by?: Array; + /** + * List of task types. One or more of: \'import\', \'annotation\', \'training\' or \'testing\' (case insensitive) + */ + type?: Array; + /** + * List of task user-defined tags. Use \'-\' prefix to exclude tags + */ + tags?: Array; + /** + * List of task system tags. Use \'-\' prefix to exclude system tags + */ + system_tags?: Array; + /** + * List of task status. + */ + status?: Array; + /** + * List of project IDs + */ + project?: Array; + /** + * List of task field names (nesting is supported using \'.\', e.g. execution.model_labels). If provided, this list defines the query\'s projection (only these fields will be returned for each result entry) + */ + only_fields?: Array; + /** + * Parent ID + */ + parent?: string; + /** + * List of status changed constraint strings (utcformat, epoch) with an optional prefix modifier (>, >=, <, <=) + */ + status_changed?: Array; + /** + * Free text search query + */ + search_text?: string; + _all_?: MultiFieldPatternData; + _any_?: MultiFieldPatternData; + /** + * List of input dataset IDs + */ + input_view_entries_dataset?: Array; + /** + * List of input dataset version IDs + */ + input_view_entries_version?: Array; + /** + * If set to \'true\' then hidden tasks are included in the search results + */ + search_hidden?: boolean; + /** + * If set to \'true\' and project field is set then tasks from the subprojects are searched too + */ + include_subprojects?: boolean; + plots?: ReportsGetTaskDataRequestPlots; + debug_images?: ReportsGetTaskDataRequestDebugImages; + scalar_metrics_iter_histogram?: ReportsGetTaskDataRequestScalarMetricsIterHistogram; +} diff --git a/src/app/business-logic/model/reports/reportsGetTaskDataRequestDebugImages.ts b/src/app/business-logic/model/reports/reportsGetTaskDataRequestDebugImages.ts new file mode 100644 index 00000000..6585494c --- /dev/null +++ b/src/app/business-logic/model/reports/reportsGetTaskDataRequestDebugImages.ts @@ -0,0 +1,24 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ReportsGetTaskDataRequestDebugImages { + /** + * Max number of latest iterations for which to return debug images + */ + iters?: number; + /** + * List of metrics and variants + */ + metrics?: Array; +} diff --git a/src/app/business-logic/model/reports/reportsGetTaskDataRequestPlots.ts b/src/app/business-logic/model/reports/reportsGetTaskDataRequestPlots.ts new file mode 100644 index 00000000..ceec2992 --- /dev/null +++ b/src/app/business-logic/model/reports/reportsGetTaskDataRequestPlots.ts @@ -0,0 +1,24 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ReportsGetTaskDataRequestPlots { + /** + * Max number of latest iterations for which to return plots + */ + iters?: number; + /** + * List of metrics and variants + */ + metrics?: Array; +} diff --git a/src/app/business-logic/model/reports/reportsGetTaskDataRequestScalarMetricsIterHistogram.ts b/src/app/business-logic/model/reports/reportsGetTaskDataRequestScalarMetricsIterHistogram.ts new file mode 100644 index 00000000..c730053e --- /dev/null +++ b/src/app/business-logic/model/reports/reportsGetTaskDataRequestScalarMetricsIterHistogram.ts @@ -0,0 +1,26 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { ScalarKeyEnum } from '././scalarKeyEnum'; + + +export interface ReportsGetTaskDataRequestScalarMetricsIterHistogram { + /** + * The amount of histogram points to return (0 to return all the points). Optional, the default value is 6000. + */ + samples?: number; + key?: ScalarKeyEnum; + /** + * List of metrics and variants + */ + metrics?: Array; +} diff --git a/src/app/business-logic/model/reports/reportsGetTaskDataResponse.ts b/src/app/business-logic/model/reports/reportsGetTaskDataResponse.ts new file mode 100644 index 00000000..7bfb8948 --- /dev/null +++ b/src/app/business-logic/model/reports/reportsGetTaskDataResponse.ts @@ -0,0 +1,31 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { Task } from '././task'; +import { DebugImagesResponseTaskMetrics } from '././debugImagesResponseTaskMetrics'; + + +export interface ReportsGetTaskDataResponse { + /** + * List of tasks + */ + tasks?: Array; + /** + * Plot events grouped by tasks and iterations + */ + plots?: object; + /** + * Debug image events grouped by tasks and iterations + */ + debug_images?: Array; + scalar_metrics_iter_histogram?: object; +} diff --git a/src/app/business-logic/model/reports/reportsGetTaskDataResponseDebugImages.ts b/src/app/business-logic/model/reports/reportsGetTaskDataResponseDebugImages.ts new file mode 100644 index 00000000..db68207d --- /dev/null +++ b/src/app/business-logic/model/reports/reportsGetTaskDataResponseDebugImages.ts @@ -0,0 +1,21 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { DebugImagesResponseTaskMetrics } from '././debugImagesResponseTaskMetrics'; + + +export interface ReportsGetTaskDataResponseDebugImages { + /** + * Debug image events grouped by tasks and iterations + */ + metrics?: Array; +} diff --git a/src/app/business-logic/model/reports/reportsGetTaskDataResponsePlots.ts b/src/app/business-logic/model/reports/reportsGetTaskDataResponsePlots.ts new file mode 100644 index 00000000..fedc8ac2 --- /dev/null +++ b/src/app/business-logic/model/reports/reportsGetTaskDataResponsePlots.ts @@ -0,0 +1,21 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { PlotsResponseTaskMetrics } from '././plotsResponseTaskMetrics'; + + +export interface ReportsGetTaskDataResponsePlots { + /** + * Plot events grouped by tasks and iterations + */ + metrics?: Array; +} diff --git a/src/app/business-logic/model/reports/reportsGetTaskDataResponseScalarMetricsIterHistogram.ts b/src/app/business-logic/model/reports/reportsGetTaskDataResponseScalarMetricsIterHistogram.ts new file mode 100644 index 00000000..4f58186f --- /dev/null +++ b/src/app/business-logic/model/reports/reportsGetTaskDataResponseScalarMetricsIterHistogram.ts @@ -0,0 +1,21 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { DebugImagesResponseTaskMetrics } from '././debugImagesResponseTaskMetrics'; + + +export interface ReportsGetTaskDataResponseScalarMetricsIterHistogram { + /** + * Scalar metric histograms grouped by tasks + */ + histograms?: Array; +} diff --git a/src/app/business-logic/model/reports/reportsMoveRequest.ts b/src/app/business-logic/model/reports/reportsMoveRequest.ts new file mode 100644 index 00000000..c2861c6f --- /dev/null +++ b/src/app/business-logic/model/reports/reportsMoveRequest.ts @@ -0,0 +1,28 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ReportsMoveRequest { + /** + * ID of the report to move + */ + task: string; + /** + * Target project ID. If not provided, `project_name` must be provided. + */ + project?: string; + /** + * Target project name. If provided and a project with this name does not exist, a new project will be created. If not provided, `project` must be provided. + */ + project_name?: string; +} diff --git a/src/app/business-logic/model/reports/reportsMoveResponse.ts b/src/app/business-logic/model/reports/reportsMoveResponse.ts new file mode 100644 index 00000000..c2f35108 --- /dev/null +++ b/src/app/business-logic/model/reports/reportsMoveResponse.ts @@ -0,0 +1,20 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ReportsMoveResponse { + /** + * The ID of the target project + */ + project_id?: string; +} diff --git a/src/app/business-logic/model/reports/reportsPublishRequest.ts b/src/app/business-logic/model/reports/reportsPublishRequest.ts new file mode 100644 index 00000000..e3703d55 --- /dev/null +++ b/src/app/business-logic/model/reports/reportsPublishRequest.ts @@ -0,0 +1,24 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ReportsPublishRequest { + /** + * The ID of the report task to publish + */ + task: string; + /** + * The client message + */ + comment?: string; +} diff --git a/src/app/business-logic/model/reports/reportsPublishResponse.ts b/src/app/business-logic/model/reports/reportsPublishResponse.ts new file mode 100644 index 00000000..12859708 --- /dev/null +++ b/src/app/business-logic/model/reports/reportsPublishResponse.ts @@ -0,0 +1,24 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ReportsPublishResponse { + /** + * Number of reports updated (0 or 1) + */ + updated?: number; + /** + * Updated fields names and values + */ + fields?: object; +} diff --git a/src/app/business-logic/model/reports/reportsShareRequest.ts b/src/app/business-logic/model/reports/reportsShareRequest.ts new file mode 100644 index 00000000..90f3a90c --- /dev/null +++ b/src/app/business-logic/model/reports/reportsShareRequest.ts @@ -0,0 +1,24 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ReportsShareRequest { + /** + * The ID of the report task to share/unshare + */ + task: string; + /** + * If set to \'true\' then the report will be shared. Otherwise unshared. + */ + share?: boolean; +} diff --git a/src/app/business-logic/model/reports/reportsShareResponse.ts b/src/app/business-logic/model/reports/reportsShareResponse.ts new file mode 100644 index 00000000..bb7b276f --- /dev/null +++ b/src/app/business-logic/model/reports/reportsShareResponse.ts @@ -0,0 +1,20 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ReportsShareResponse { + /** + * Number of changed reports (0 or 1) + */ + changed?: number; +} diff --git a/src/app/business-logic/model/reports/reportsUnarchiveRequest.ts b/src/app/business-logic/model/reports/reportsUnarchiveRequest.ts new file mode 100644 index 00000000..f708bc91 --- /dev/null +++ b/src/app/business-logic/model/reports/reportsUnarchiveRequest.ts @@ -0,0 +1,24 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ReportsUnarchiveRequest { + /** + * The ID of the report task to unarchive + */ + task: string; + /** + * The client message + */ + comment?: string; +} diff --git a/src/app/business-logic/model/reports/reportsUnarchiveResponse.ts b/src/app/business-logic/model/reports/reportsUnarchiveResponse.ts new file mode 100644 index 00000000..0d868d03 --- /dev/null +++ b/src/app/business-logic/model/reports/reportsUnarchiveResponse.ts @@ -0,0 +1,20 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ReportsUnarchiveResponse { + /** + * Number of reports unarchived (0 or 1) + */ + unarchived?: number; +} diff --git a/src/app/business-logic/model/reports/reportsUpdateRequest.ts b/src/app/business-logic/model/reports/reportsUpdateRequest.ts new file mode 100644 index 00000000..657b2d21 --- /dev/null +++ b/src/app/business-logic/model/reports/reportsUpdateRequest.ts @@ -0,0 +1,36 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ReportsUpdateRequest { + /** + * The ID of the report task to update + */ + task: string; + /** + * Report name. Unique within the company. + */ + name?: string; + /** + * User-defined tags list + */ + tags?: Array; + /** + * Free text comment + */ + comment?: string; + /** + * Report template + */ + report?: string; +} diff --git a/src/app/business-logic/model/reports/reportsUpdateResponse.ts b/src/app/business-logic/model/reports/reportsUpdateResponse.ts new file mode 100644 index 00000000..e88b929f --- /dev/null +++ b/src/app/business-logic/model/reports/reportsUpdateResponse.ts @@ -0,0 +1,24 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ReportsUpdateResponse { + /** + * Number of reports updated (0 or 1) + */ + updated?: number; + /** + * Updated fields names and values + */ + fields?: object; +} diff --git a/src/app/business-logic/model/reports/scalarKeyEnum.ts b/src/app/business-logic/model/reports/scalarKeyEnum.ts new file mode 100644 index 00000000..ca6b56ac --- /dev/null +++ b/src/app/business-logic/model/reports/scalarKeyEnum.ts @@ -0,0 +1,21 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export type ScalarKeyEnum = 'iter' | 'timestamp' | 'iso_time'; + +export const ScalarKeyEnum = { + Iter: 'iter' as ScalarKeyEnum, + Timestamp: 'timestamp' as ScalarKeyEnum, + IsoTime: 'iso_time' as ScalarKeyEnum +} diff --git a/src/app/business-logic/model/reports/script.ts b/src/app/business-logic/model/reports/script.ts new file mode 100644 index 00000000..0132cf8e --- /dev/null +++ b/src/app/business-logic/model/reports/script.ts @@ -0,0 +1,52 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface Script { + /** + * Binary to use when running the script + */ + binary?: string; + /** + * Name of the repository where the script is located + */ + repository?: string; + /** + * Repository tag + */ + tag?: string; + /** + * Repository branch id If not provided and tag not provided, default repository branch is used. + */ + branch?: string; + /** + * Version (changeset) number. Optional (default is head version) Unused if tag is provided. + */ + version_num?: string; + /** + * Path to execute within the repository + */ + entry_point?: string; + /** + * Path to the folder from which to run the script Default - root folder of repository + */ + working_dir?: string; + /** + * A JSON object containing requirements strings by key + */ + requirements?: object; + /** + * Uncommitted changes found in the repository when task was run + */ + diff?: string; +} diff --git a/src/app/business-logic/model/reports/task.ts b/src/app/business-logic/model/reports/task.ts new file mode 100644 index 00000000..38720597 --- /dev/null +++ b/src/app/business-logic/model/reports/task.ts @@ -0,0 +1,141 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { Script } from '././script'; +import { ConfigurationItem } from '././configurationItem'; +import { Input } from '././input'; +import { ParamsItem } from '././paramsItem'; +import { Execution } from '././execution'; +import { TaskModels } from '././taskModels'; +import { Output } from '././output'; +import { TaskStatusEnum } from '././taskStatusEnum'; +import { LastMetricsEvent } from '././lastMetricsEvent'; +import { TaskTypeEnum } from '././taskTypeEnum'; + + +export interface Task { + /** + * Task id + */ + id?: string; + /** + * Task Name + */ + name?: string; + /** + * Associated user id + */ + user?: string; + /** + * Company ID + */ + company?: string; + type?: TaskTypeEnum; + status?: TaskStatusEnum; + /** + * Free text comment + */ + comment?: string; + /** + * Task creation time (UTC) + */ + created?: string; + /** + * Task start time (UTC) + */ + started?: string; + /** + * Task end time (UTC) + */ + completed?: string; + /** + * Task duration time (seconds) + */ + active_duration?: number; + /** + * Parent task id + */ + parent?: string; + /** + * Project ID of the project to which this task is assigned + */ + project?: string; + input?: Input; + output?: Output; + execution?: Execution; + /** + * Docker container parameters + */ + container?: object; + models?: TaskModels; + script?: Script; + /** + * User-defined tags list + */ + tags?: Array; + /** + * System tags list. This field is reserved for system use, please don\'t use it. + */ + system_tags?: Array; + /** + * Last status change time + */ + status_changed?: string; + /** + * free text string representing info about the status + */ + status_message?: string; + /** + * Reason for last status change + */ + status_reason?: string; + /** + * Task publish time + */ + published?: string; + /** + * ID of last worker that handled the task + */ + last_worker?: string; + /** + * Last time a worker reported while working on this task + */ + last_worker_report?: string; + /** + * Last time this task was created, edited, changed or events for this task were reported + */ + last_update?: string; + /** + * Last time any update was done to the task + */ + last_change?: string; + /** + * Last iteration reported for this task + */ + last_iteration?: number; + /** + * Last metric variants (hash to events), one for each metric hash + */ + last_metrics?: { [key: string]: { [key: string]: LastMetricsEvent; }; }; + /** + * Task hyper params per section + */ + hyperparams?: { [key: string]: { [key: string]: ParamsItem; }; }; + /** + * Task configuration params + */ + configuration?: { [key: string]: ConfigurationItem; }; + /** + * Task runtime mapping + */ + runtime?: object; +} diff --git a/src/app/business-logic/model/reports/taskModelItem.ts b/src/app/business-logic/model/reports/taskModelItem.ts new file mode 100644 index 00000000..5cabd88a --- /dev/null +++ b/src/app/business-logic/model/reports/taskModelItem.ts @@ -0,0 +1,24 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface TaskModelItem { + /** + * The task model name + */ + name: string; + /** + * The model ID + */ + model: string; +} diff --git a/src/app/business-logic/model/reports/taskModels.ts b/src/app/business-logic/model/reports/taskModels.ts new file mode 100644 index 00000000..a4a9d139 --- /dev/null +++ b/src/app/business-logic/model/reports/taskModels.ts @@ -0,0 +1,25 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { TaskModelItem } from '././taskModelItem'; + + +export interface TaskModels { + /** + * The list of task input models + */ + input?: Array; + /** + * The list of task output models + */ + output?: Array; +} diff --git a/src/app/business-logic/model/reports/taskStatusEnum.ts b/src/app/business-logic/model/reports/taskStatusEnum.ts new file mode 100644 index 00000000..f2819718 --- /dev/null +++ b/src/app/business-logic/model/reports/taskStatusEnum.ts @@ -0,0 +1,28 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export type TaskStatusEnum = 'created' | 'queued' | 'in_progress' | 'stopped' | 'published' | 'publishing' | 'closed' | 'failed' | 'completed' | 'unknown'; + +export const TaskStatusEnum = { + Created: 'created' as TaskStatusEnum, + Queued: 'queued' as TaskStatusEnum, + InProgress: 'in_progress' as TaskStatusEnum, + Stopped: 'stopped' as TaskStatusEnum, + Published: 'published' as TaskStatusEnum, + Publishing: 'publishing' as TaskStatusEnum, + Closed: 'closed' as TaskStatusEnum, + Failed: 'failed' as TaskStatusEnum, + Completed: 'completed' as TaskStatusEnum, + Unknown: 'unknown' as TaskStatusEnum +} diff --git a/src/app/business-logic/model/reports/taskTypeEnum.ts b/src/app/business-logic/model/reports/taskTypeEnum.ts new file mode 100644 index 00000000..01344acc --- /dev/null +++ b/src/app/business-logic/model/reports/taskTypeEnum.ts @@ -0,0 +1,32 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export type TaskTypeEnum = 'dataset_import' | 'annotation' | 'annotation_manual' | 'training' | 'testing' | 'inference' | 'data_processing' | 'application' | 'monitor' | 'controller' | 'optimizer' | 'service' | 'qc' | 'custom'; + +export const TaskTypeEnum = { + DatasetImport: 'dataset_import' as TaskTypeEnum, + Annotation: 'annotation' as TaskTypeEnum, + AnnotationManual: 'annotation_manual' as TaskTypeEnum, + Training: 'training' as TaskTypeEnum, + Testing: 'testing' as TaskTypeEnum, + Inference: 'inference' as TaskTypeEnum, + DataProcessing: 'data_processing' as TaskTypeEnum, + Application: 'application' as TaskTypeEnum, + Monitor: 'monitor' as TaskTypeEnum, + Controller: 'controller' as TaskTypeEnum, + Optimizer: 'optimizer' as TaskTypeEnum, + Service: 'service' as TaskTypeEnum, + Qc: 'qc' as TaskTypeEnum, + Custom: 'custom' as TaskTypeEnum +} diff --git a/src/app/business-logic/model/reports/view.ts b/src/app/business-logic/model/reports/view.ts new file mode 100644 index 00000000..0157602a --- /dev/null +++ b/src/app/business-logic/model/reports/view.ts @@ -0,0 +1,21 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { ViewEntry } from '././viewEntry'; + + +export interface View { + /** + * List of view entries. All tasks must have at least one view. + */ + entries?: Array; +} diff --git a/src/app/business-logic/model/reports/viewEntry.ts b/src/app/business-logic/model/reports/viewEntry.ts new file mode 100644 index 00000000..7093cd77 --- /dev/null +++ b/src/app/business-logic/model/reports/viewEntry.ts @@ -0,0 +1,28 @@ +/** + * reports + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 999.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +export interface ViewEntry { + /** + * Version id of a version belonging to the dataset + */ + version?: string; + /** + * Existing Dataset id + */ + dataset?: string; + /** + * Version ID to merge with + */ + merge_with?: string; +} diff --git a/src/app/business-logic/model/tasks/tasksGetAllExRequest.ts b/src/app/business-logic/model/tasks/tasksGetAllExRequest.ts index 83047e08..dd59c8f3 100644 --- a/src/app/business-logic/model/tasks/tasksGetAllExRequest.ts +++ b/src/app/business-logic/model/tasks/tasksGetAllExRequest.ts @@ -2,7 +2,7 @@ * tasks * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * OpenAPI spec version: 2.14 + * OpenAPI spec version: 999.0 * * * NOTE: This class is auto generated by the swagger code generator program. @@ -40,11 +40,11 @@ export interface TasksGetAllExRequest { */ page_size?: number; /** - * List of field names to order by. When search_text is used, \'@text_score\' can be used as a field representing the text score of returned documents. Use \'-\' prefix to specify descending order. Optional, recommended when using page. If the first order field is a hyper parameter or metric then string values are ordered according to numeric ordering rules where applicable + * List of field names to order by. When search_text is used, \'@text_score\' can be used as a field representing the text score of returned documents. Use \'-\' prefix to specify descending order. Optional, recommended when using page */ order_by?: Array; /** - * List of task types. One or more of: \'import\', \'annotation\', \'training\' or \'testing\' (case insensitive) + * List of task types. One or more of: \'training\', \'testing\', \'import\', \'annotation\', \'inference\', \'data_processing\', \'application\', \'monitor\', \'controller\', \'optimizer\', \'service\', \'qc\' or \'custom\' (case insensitive) */ type?: Array; /** @@ -66,7 +66,7 @@ export interface TasksGetAllExRequest { /** * Parent ID */ - parent?: string[]; + parent?: string; /** * List of status changed constraint strings (utcformat, epoch) with an optional prefix modifier (>, >=, <, <=) */ @@ -97,4 +97,8 @@ export interface TasksGetAllExRequest { * The number of tasks to retrieve */ size?: number; + /** + * Allow public tasks to be returned in the results + */ + allow_public?: boolean; } diff --git a/src/app/business-logic/model/tasks/tasksGetByIdExRequest.ts b/src/app/business-logic/model/tasks/tasksGetByIdExRequest.ts index 1f6a1a27..30ce9c3e 100644 --- a/src/app/business-logic/model/tasks/tasksGetByIdExRequest.ts +++ b/src/app/business-logic/model/tasks/tasksGetByIdExRequest.ts @@ -2,7 +2,7 @@ * tasks * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * OpenAPI spec version: 2.14 + * OpenAPI spec version: 999.0 * * * NOTE: This class is auto generated by the swagger code generator program. @@ -40,11 +40,11 @@ export interface TasksGetByIdExRequest { */ page_size?: number; /** - * List of field names to order by. When search_text is used, \'@text_score\' can be used as a field representing the text score of returned documents. Use \'-\' prefix to specify descending order. Optional, recommended when using page. If the first order field is a hyper parameter or metric then string values are ordered according to numeric ordering rules where applicable + * List of field names to order by. When search_text is used, \'@text_score\' can be used as a field representing the text score of returned documents. Use \'-\' prefix to specify descending order. Optional, recommended when using page */ order_by?: Array; /** - * List of task types. One or more of: \'import\', \'annotation\', \'training\' or \'testing\' (case insensitive) + * List of task types. One or more of: \'training\', \'testing\', \'import\', \'annotation\', \'inference\', \'data_processing\', \'application\', \'monitor\', \'controller\', \'optimizer\', \'service\', \'qc\' or \'custom\' (case insensitive) */ type?: Array; /** @@ -77,4 +77,8 @@ export interface TasksGetByIdExRequest { search_text?: string; _all_?: MultiFieldPatternData; _any_?: MultiFieldPatternData; + /** + * List of input dataset version IDs + */ + input_view_entries_version?: Array; } diff --git a/src/app/business-logic/model/users/featuresEnum.ts b/src/app/business-logic/model/users/featuresEnum.ts index 1164d4a3..5474942d 100644 --- a/src/app/business-logic/model/users/featuresEnum.ts +++ b/src/app/business-logic/model/users/featuresEnum.ts @@ -12,10 +12,11 @@ -export type FeaturesEnum = 'experiments' | 'queues' | 'pipelines'; +export type FeaturesEnum = 'experiments' | 'queues' | 'pipelines' | 'reports'; export const FeaturesEnum = { Experiments: 'experiments' as FeaturesEnum, Queues: 'queues' as FeaturesEnum, - Pipelines: 'pipelines' as FeaturesEnum + Pipelines: 'pipelines' as FeaturesEnum, + Reports: 'reports' as FeaturesEnum }; diff --git a/src/app/core/core.module.ts b/src/app/core/core.module.ts index 64ccab50..bb9a043a 100644 --- a/src/app/core/core.module.ts +++ b/src/app/core/core.module.ts @@ -9,7 +9,7 @@ import {RouterEffects} from '@common/core/effects/router.effects'; import {CommonUserEffects} from '@common/core/effects/users.effects'; import {createUserPrefReducer} from '@common/core/meta-reducers/user-pref-reducer'; import {messagesReducer} from '@common/core/reducers/messages-reducer'; -import {projectsReducer} from '@common/core/reducers/projects.reducer'; +import {projectsReducer, RootProjects} from '@common/core/reducers/projects.reducer'; import {routerReducer} from '@common/core/reducers/router-reducer'; import {SmSyncStateSelectorService} from '@common/core/services/sync-state-selector.service'; import {EXPERIMENTS_COMPARE_METRICS_CHARTS_} from '@common/experiments-compare/actions/experiments-compare-charts.actions'; @@ -62,6 +62,8 @@ const syncedKeys = [ 'datasets.selected', 'projects.selectedProjectId', 'projects.selectedProject', + 'rootProjects.showHidden', + 'rootProjects.hideExamples', 'views.availableUpdates', 'views.showSurvey', 'views.neverShowPopupAgain' @@ -96,7 +98,7 @@ const userPrefMetaFactory = (userPreferences: UserPreferences): MetaReducer (reducer: ActionReducer) => createUserPrefReducer('users', ['activeWorkspace', 'showOnlyUserWork'], [USERS_PREFIX], userPreferences, reducer), (reducer: ActionReducer) => - createUserPrefReducer('rootProjects', ['tagsColors', 'graphVariant', 'showHidden'], [ROOT_PROJECTS_PREFIX], userPreferences, reducer), + createUserPrefReducer('rootProjects', ['tagsColors', 'graphVariant', 'showHidden', 'hideExamples', 'aa'] as (keyof RootProjects)[], [ROOT_PROJECTS_PREFIX], userPreferences, reducer), (reducer: ActionReducer) => createUserPrefReducer('views', ['autoRefresh', 'neverShowPopupAgain', 'redactedArguments', 'hideRedactedArguments'], [VIEW_PREFIX], userPreferences, reducer), localStorageReducer, diff --git a/src/app/core/effects/projects.effects.ts b/src/app/core/effects/projects.effects.ts index a82d418c..bc06acb1 100644 --- a/src/app/core/effects/projects.effects.ts +++ b/src/app/core/effects/projects.effects.ts @@ -63,6 +63,8 @@ export class ProjectsEffects { mergeMap(({projects}) => [ actions.setSelectedProject({project: projects[0]}), actions.getProjectUsers(action), + actions.getTags(), + actions.getCompanyTags(), deactivateLoader(action.type), ] ), diff --git a/src/app/features/dashboard-search/dashboard-search.consts.ts b/src/app/features/dashboard-search/dashboard-search.consts.ts index 4563a965..9326ce2b 100644 --- a/src/app/features/dashboard-search/dashboard-search.consts.ts +++ b/src/app/features/dashboard-search/dashboard-search.consts.ts @@ -5,7 +5,8 @@ export const activeSearchLink = { experiments: 'experiments' as ActiveSearchLink, models: 'models' as ActiveSearchLink, pipelines: 'pipelines' as ActiveSearchLink, - openDatasets: 'datasets' as ActiveSearchLink + openDatasets: 'datasets' as ActiveSearchLink, + reports: 'reports' as ActiveSearchLink }; export const activeLinksList = [ @@ -28,5 +29,9 @@ export const activeLinksList = [ { label: 'PIPELINES', name: activeSearchLink.pipelines, - } + }, + { + label: 'REPORTS', + name: activeSearchLink.reports, + }, ]; diff --git a/src/app/features/dashboard/dashboard-search/dashboard-search.effects.ts b/src/app/features/dashboard/dashboard-search/dashboard-search.effects.ts index 12cd0864..0c26d2c4 100644 --- a/src/app/features/dashboard/dashboard-search/dashboard-search.effects.ts +++ b/src/app/features/dashboard/dashboard-search/dashboard-search.effects.ts @@ -6,7 +6,7 @@ import {getEntityStatQuery} from '@common/dashboard-search/dashboard-search.effe import {ApiOrganizationService} from '~/business-logic/api-services/organization.service'; import {Store} from '@ngrx/store'; import {selectCurrentUser, selectShowOnlyUserWork} from '@common/core/reducers/users-reducer'; -import {selectShowHidden} from '@common/core/reducers/projects.reducer'; +import {selectHideExamples, selectShowHidden} from '@common/core/reducers/projects.reducer'; @Injectable() @@ -14,8 +14,8 @@ export class DashboardSearchEffects { constructor( private actions: Actions, private store: Store, - public organizationApi: ApiOrganizationService) { - } + private organizationApi: ApiOrganizationService, + ) {} getResultsCount = createEffect(() => this.actions.pipe( ofType(getResultsCount), @@ -23,12 +23,15 @@ export class DashboardSearchEffects { this.store.select(selectShowOnlyUserWork), this.store.select(selectCurrentUser), this.store.select(selectShowHidden), + this.store.select(selectHideExamples), ), - switchMap(([action, userFocus, user, hidden]) => this.organizationApi.organizationGetEntitiesCount({ + switchMap(([action, userFocus, user, hidden, hideExamples]) => this.organizationApi.organizationGetEntitiesCount({ /* eslint-disable @typescript-eslint/naming-convention */ ...(userFocus && {active_users: [user.id]}), ...(hidden && {search_hidden: true}), - ...getEntityStatQuery(action) + ...(hideExamples && {allow_public: false}), + ...getEntityStatQuery(action, hidden) + /* eslint-enable @typescript-eslint/naming-convention */ })), map(({tasks: experiments, ...rest}) => setResultsCount({counts: {...rest, experiments}})) diff --git a/src/app/features/dashboard/dashboard-search/dashboard-search.module.ts b/src/app/features/dashboard/dashboard-search/dashboard-search.module.ts index d5dbcc82..b9618265 100644 --- a/src/app/features/dashboard/dashboard-search/dashboard-search.module.ts +++ b/src/app/features/dashboard/dashboard-search/dashboard-search.module.ts @@ -8,12 +8,14 @@ import {DashboardSearchEffects} from '~/features/dashboard/dashboard-search/dash import {ProjectsSharedModule} from '../../projects/shared/projects-shared.module'; import {SharedModule} from '~/shared/shared.module'; import {dashboardSearchReducer} from '@common/dashboard-search/dashboard-search.reducer'; +import {ReportsSharedModule} from '../../../webapp-common/reports/reports-shared.module'; @NgModule({ imports : [ CommonModule, SMSharedModule, ProjectsSharedModule, + ReportsSharedModule, StoreModule.forFeature('search', dashboardSearchReducer), EffectsModule.forFeature([DashboardSearchEffects, commonDashboardSearchEffects]), SharedModule diff --git a/src/app/features/dashboard/dashboard.component.scss b/src/app/features/dashboard/dashboard.component.scss index 1eb4df93..a7b753c6 100644 --- a/src/app/features/dashboard/dashboard.component.scss +++ b/src/app/features/dashboard/dashboard.component.scss @@ -11,29 +11,8 @@ .recent { height: 100%; overflow: auto; - } - - .search-bar { - padding-top: 16px; - padding-bottom: 16px; - margin-left: 64px; - background-color: $blue-900; - text-align: center; - position: relative; - - ::ng-deep sm-search { - input { - font-size: 16px; - - &::-webkit-input-placeholder { - font-size: 16px; - } - - &::-moz-placeholder { - font-size: 16px; - } - } - } + max-width: 2400px; + margin: 0 auto; } .clear-search { @@ -45,12 +24,11 @@ .view-all { font-size: 12px; font-weight: bold; - color: $blue-400; } sm-dashboard-experiments { display: block; - margin: 0 auto; + margin: 24px auto 0; height: calc(100% - 356px); } diff --git a/src/app/features/dashboard/dashboard.module.ts b/src/app/features/dashboard/dashboard.module.ts index afd696c5..9715ae42 100644 --- a/src/app/features/dashboard/dashboard.module.ts +++ b/src/app/features/dashboard/dashboard.module.ts @@ -16,22 +16,24 @@ import {ProjectsSharedModule} from '../projects/shared/projects-shared.module'; import {DashboardSearchBaseComponent} from '@common/dashboard/dashboard-search.component.base'; import {DatasetsSharedModule} from '~/features/datasets/shared/datasets-shared.module'; import {ScrollingModule} from '@angular/cdk/scrolling'; +import {ReportsSharedModule} from '../../webapp-common/reports/reports-shared.module'; @NgModule({ - imports: [ - CommonModule, - ProjectsSharedModule, - ProjectDialogModule, - SMSharedModule, - ExperimentSharedModule, - DashboardRoutingModule, - StoreModule.forFeature('dashboard', commonDashboardReducer), - CommonDashboardModule, - SharedModule, - DashboardSearchModule, - DatasetsSharedModule, - ScrollingModule - ], + imports: [ + CommonModule, + ProjectsSharedModule, + ProjectDialogModule, + SMSharedModule, + ExperimentSharedModule, + DashboardRoutingModule, + StoreModule.forFeature('dashboard', commonDashboardReducer), + CommonDashboardModule, + SharedModule, + DashboardSearchModule, + DatasetsSharedModule, + ScrollingModule, + ReportsSharedModule + ], declarations : [DashboardComponent, GettingStartedCardComponent, DashboardSearchBaseComponent, SearchResultsPageComponent] }) export class DashboardModule { diff --git a/src/app/features/dashboard/dumb/search-results-page/search-results-page.component.html b/src/app/features/dashboard/dumb/search-results-page/search-results-page.component.html index a0761d5d..dd121dd0 100644 --- a/src/app/features/dashboard/dumb/search-results-page/search-results-page.component.html +++ b/src/app/features/dashboard/dumb/search-results-page/search-results-page.component.html @@ -15,6 +15,7 @@ activeLink === searchPages.models ? ModelsTemplate : activeLink === searchPages.openDatasets ? openDatasetTemplate : activeLink === searchPages.pipelines ? PipelineTemplate : + activeLink === searchPages.reports ? ReportsTemplate : ProjectTemplate" [items]="getResults()" [cardHeight]="getCardHeight()" @@ -61,5 +62,12 @@ (projectCardClicked)="openDatasetClicked($event)" > + + + diff --git a/src/app/features/dashboard/dumb/search-results-page/search-results-page.component.ts b/src/app/features/dashboard/dumb/search-results-page/search-results-page.component.ts index e370b74d..c6efb089 100644 --- a/src/app/features/dashboard/dumb/search-results-page/search-results-page.component.ts +++ b/src/app/features/dashboard/dumb/search-results-page/search-results-page.component.ts @@ -4,6 +4,7 @@ import {Task} from '~/business-logic/model/tasks/task'; import {ITask} from '~/business-logic/model/al-task'; import {Model} from '~/business-logic/model/models/model'; import {activeLinksList, ActiveSearchLink, activeSearchLink} from '~/features/dashboard-search/dashboard-search.consts'; +import {IReport} from '../../../../webapp-common/reports/reports.consts'; @Component({ selector: 'sm-search-results-page', @@ -19,6 +20,7 @@ export class SearchResultsPageComponent { @Input() modelsList: Array = []; @Input() pipelinesList: Array = []; @Input() datasetsList: Array = []; + @Input() reportsList: Array = []; @Input() activeLink: ActiveSearchLink; @Input() resultsCount: Map; @@ -27,6 +29,7 @@ export class SearchResultsPageComponent { @Output() experimentSelected = new EventEmitter(); @Output() modelSelected = new EventEmitter(); @Output() pipelineSelected = new EventEmitter(); + @Output() reportSelected = new EventEmitter(); @Output() openDatasetSelected = new EventEmitter(); @Output() loadMoreClicked = new EventEmitter(); @@ -50,6 +53,10 @@ export class SearchResultsPageComponent { this.openDatasetSelected.emit(project); } + reportClicked(report: IReport) { + this.reportSelected.emit(report); + } + getResults = () => this[`${this.activeLink}List`]; getCardHeight() { diff --git a/src/app/features/experiments/reducers/index.ts b/src/app/features/experiments/reducers/index.ts index 66624518..157c16c1 100644 --- a/src/app/features/experiments/reducers/index.ts +++ b/src/app/features/experiments/reducers/index.ts @@ -4,9 +4,10 @@ import {experimentInfoReducer, ExperimentInfoState, initialState as infoInitialS import {experimentOutputReducer, ExperimentOutputState, initialState as outputInitialState} from './experiment-output.reducer'; import {IExperimentInfo} from '../shared/experiment-info.model'; import {TaskStatusEnum} from '~/business-logic/model/tasks/taskStatusEnum'; -import {isReadOnly, isSharedAndNotOwner} from '@common/shared/utils/shared-utils'; import {selectSelectedModel} from '@common/models/reducers'; import {selectCurrentUser} from '@common/core/reducers/users-reducer'; +import {isReadOnly} from '@common/shared/utils/is-read-only'; +import {isSharedAndNotOwner} from '@common/shared/utils/is-shared-and-not-owner'; export interface ExperimentState { view: ExperimentsViewState; diff --git a/src/app/layout/breadcrumbs/breadcrumbs.utils.ts b/src/app/layout/breadcrumbs/breadcrumbs.utils.ts index a3725b49..2167b50b 100644 --- a/src/app/layout/breadcrumbs/breadcrumbs.utils.ts +++ b/src/app/layout/breadcrumbs/breadcrumbs.utils.ts @@ -4,10 +4,11 @@ import {selectSelectedExperiment} from '~/features/experiments/reducers'; import {selectRootProjects, selectSelectedProject} from '@common/core/reducers/projects.reducer'; export {formatStaticCrumb} from '@common/layout/breadcrumbs/breadcrumbs-common.utils'; import {IBreadcrumbs} from '@common/layout/breadcrumbs/breadcrumbs-common.utils'; +import {selectReport} from '@common/reports/reports.reducer'; export {prepareNames, IBreadcrumbs} from '@common/layout/breadcrumbs/breadcrumbs-common.utils'; export const selectBreadcrumbsStringsBase = createSelector( - selectSelectedProject, selectSelectedExperiment, selectSelectedTableModel, selectRootProjects, - (project, experiment, model, projects) => - ({project, experiment, model, projects}) as IBreadcrumbs); + selectSelectedProject, selectSelectedExperiment, selectSelectedTableModel, selectRootProjects, selectReport, + (project, experiment, model, projects, report) => + ({project, experiment, model, projects, report}) as IBreadcrumbs); diff --git a/src/app/layout/side-nav/side-nav.component.html b/src/app/layout/side-nav/side-nav.component.html index f0a9e8f4..c5a95393 100644 --- a/src/app/layout/side-nav/side-nav.component.html +++ b/src/app/layout/side-nav/side-nav.component.html @@ -33,6 +33,13 @@ [matTooltipShowDelay]="0" matTooltipPosition="right"> + + -@import "../../../shared/ui-components/styles/variables"; +@import "variables"; $notifier-shadow-color: rgba(0, 0, 0, .2) !default; diff --git a/src/app/webapp-common/assets/fonts/trains-icons.scss b/src/app/webapp-common/assets/fonts/trains-icons.scss index 73c561d0..f34807d1 100644 --- a/src/app/webapp-common/assets/fonts/trains-icons.scss +++ b/src/app/webapp-common/assets/fonts/trains-icons.scss @@ -1,8 +1,9 @@ @import "variables"; +@import "src/app/webapp-common/shared/ui-components/styles/variables.scss"; @font-face { font-family: '#{$icomoon-font-family}'; - src: url('./#{$icomoon-font-family}.ttf?84hl5c') format('truetype'); + src: url('./#{$icomoon-font-family}.ttf?f4pbms') format('truetype'); font-weight: normal; font-style: normal; font-display: block; @@ -23,6 +24,31 @@ -moz-osx-font-smoothing: grayscale; } +.al-ico-md-copy { + &:before { + content: $al-ico-md-copy; + } +} +.al-ico-hor-expand { + &:before { + content: $al-ico-hor-expand; + } +} +.al-ico-hor-minimize { + &:before { + content: $al-ico-hor-minimize; + } +} +.al-ico-pdf { + &:before { + content: $al-ico-pdf; + } +} +.al-ico-reports { + &:before { + content: $al-ico-reports; + } +} .al-ico-gpu { &:before { content: $al-ico-gpu; diff --git a/src/app/webapp-common/assets/fonts/trains.ttf b/src/app/webapp-common/assets/fonts/trains.ttf index d7837c5ef619ec6d823ac0c8d9b5435e2e9697a9..4f82c6510bf6828787834ad299d4c7a47a2049a4 100644 GIT binary patch delta 1121 zcmZ9LU2NM_6vxlC<2Z?9XEwGoS6x!aX~UYZQm1Z)Hdr;77^BjVkfRBKMwGP4s+M+3 zg~o)4ftNk-P*e$3f`{>l{W1}WPTC7Xz{`d-A;JTy1R4_R)Cz|9P?$Q0uj(f<988e`EGm@9w9l*8uKaZOl|^ zkEVZk8(?b)^OFq>@Gr-zsL!F!HWrpIr`O-Aqka=0G&H|ht!PUdDS+QT0-&UY%H<_; zIQ%NW@7MA9q1P%4GY7BTefDDv+`&n%EG;&dfyNa4G5!9HRkFQ0O>*pxdQaU{ziVG1 zFMicx!0vf8ULb%5Sr`Ko-_$cT|ZcbVvA%-|Hd5oB394sM-%gs)^Rjxbl2rY?Q;UOXJ&Ui!!!-bA^9D9f`FuHQV)nHYMSWVP9Pns z-0R_2v)};G4sAmMB*?&Ha01T4`PJ(;hFgymt)gWFrsO6@az{v>C>Sy)OHUCixgXip zIYZgY^b-boh6$R;$#VPvLyi;hJ0x!!58dF?h%+)?smy)&faBuB15b}j1H*BS`$ph} zLdvpI1sq&x34)-6`%MwZrH~MdCFl_I9L`GQsW$CFdhXtetZ z-cs@r{c#~7bcIA>EOYi+G#X2*YAP0u;-YD=!A2qgF=QeIG^`|R=}NAo5V0ugXvAp| z@Vp+H-zigWnRFc2a~#ige24NL+JRv$2<;c6aW@l?#BxQ^I7UQ+;GQU@oT6K7GT27q z*tTcezEdu{F6FvzxlBV)$?w=f;b4M(O(vky>SIyy%p8U%;01tTWMQhw6v2Lo$YE9> z*bQ3L8C{gahMpO*@E8?!ku}(Whm}hfOKiYwj}3x*lJxoXX;L3(1DwdR938?&b1W-y z>OQFY9;u^KCr?g|Gp91AnDMbQVv6TwmW@PMR_5a=@%e9ECdBa3h|0&~YBb8DqTc-< zpR4QZ-P6sRH=C!sT{glhJfD{0QkoZJRPEbe59x#NoqOFopE&*(aG_vV;m7tZ{0n#e zYGkuSBJHWoHZ9ticF+RfAGhysm8cV&)l1d2>KC=6wdvYg?e@&U*>`5|)X&t{>VGzz o#)At}bA`FT=jRsOMPc#&#ledkO=xZ`e~A+i?2-0MzkWvk1?i6yWdHyG delta 312 zcmaF!jCsNX<_U`RGAr*gFfht6Fff#)Cl(g~X#pUA0+8lNpPZLGNjYJ-+_UFg(oLJIq{MWj|l_A z8y^M+CXU?1iULLzwgd)-cOgLa3VDgSsS*nwxi16?lmIQMD#$M`VPFPIF}(jUamQrF z=aYRH)w#cmJrR2>b{;6fI63gM@aBn(Hb*yeo|0FTnXqB9b3DJzR|aktkS2!vbsYa=5Qh%j|r9DcINne!Fml=_DCWj}t lATKDtuE4G^smQKaje!y99%i;U1_h9L3`}5)FMpiL2mtruWa|I` diff --git a/src/app/webapp-common/assets/fonts/variables.scss b/src/app/webapp-common/assets/fonts/variables.scss index 14e6e89d..1ffb0487 100644 --- a/src/app/webapp-common/assets/fonts/variables.scss +++ b/src/app/webapp-common/assets/fonts/variables.scss @@ -1,6 +1,11 @@ $icomoon-font-family: "trains" !default; $icomoon-font-path: "fonts" !default; +$al-ico-md-copy: "\e9ec"; +$al-ico-hor-expand: "\e9ea"; +$al-ico-hor-minimize: "\e9eb"; +$al-ico-pdf: "\e9e9"; +$al-ico-reports: "\e9e8"; $al-ico-gpu: "\e9e7"; $al-ico-project-path: "\e9e6"; $al-ico-tree-view: "\e9e5"; diff --git a/src/app/webapp-common/clearml-applications/report-widgets/.browserslistrc b/src/app/webapp-common/clearml-applications/report-widgets/.browserslistrc new file mode 100644 index 00000000..4f9ac269 --- /dev/null +++ b/src/app/webapp-common/clearml-applications/report-widgets/.browserslistrc @@ -0,0 +1,16 @@ +# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries + +# For the full list of supported browsers by the Angular framework, please see: +# https://angular.io/guide/browser-support + +# You can see what browsers were selected by your queries by running: +# npx browserslist + +last 1 Chrome version +last 1 Firefox version +last 2 Edge major versions +last 2 Safari major versions +last 2 iOS major versions +Firefox ESR diff --git a/src/app/webapp-common/clearml-applications/report-widgets/karma.conf.js b/src/app/webapp-common/clearml-applications/report-widgets/karma.conf.js new file mode 100644 index 00000000..b7dd43eb --- /dev/null +++ b/src/app/webapp-common/clearml-applications/report-widgets/karma.conf.js @@ -0,0 +1,44 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + jasmine: { + // you can add configuration options for Jasmine here + // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html + // for example, you can disable the random execution with `random: false` + // or set a specific seed with `seed: 4321` + }, + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + jasmineHtmlReporter: { + suppressAll: true // removes the duplicated traces + }, + coverageReporter: { + dir: require('path').join(__dirname, '../../coverage/report-widgets'), + subdir: '.', + reporters: [ + { type: 'html' }, + { type: 'text-summary' } + ] + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.actions.ts b/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.actions.ts new file mode 100644 index 00000000..2d393c3f --- /dev/null +++ b/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.actions.ts @@ -0,0 +1,34 @@ +import {createAction, props} from '@ngrx/store'; +import {ExtFrame} from '@common/shared/single-graph/plotly-graph-base'; +import {DebugSample} from '@common/shared/debug-sample/debug-sample.reducer'; +import {ReportsApiMultiplotsResponse} from '@common/clearml-applications/report-widgets/src/app/app.reducer'; + +export const getPlot = createAction('[App] getPlot', props<{ + tasks: string[]; + iterations: number[]; + metrics: string[]; + variants: string[]; + company: string; +}>()); + +export const getScalar = createAction('[App] getScalar', props<{ + tasks: string[]; + iterations: number[]; + metrics: string[]; + variants: string[]; + company: string; +}>()); +export const getSample = createAction('[App] getSample', props<{ + tasks: string[]; + iterations: number[]; + metrics: string[]; + variants: string[]; + company: string; +}>()); + +export const setPlotData = createAction('[App] setPlot', props<{ data: ReportsApiMultiplotsResponse }>()); +export const setScalarData = createAction('[App] setScalar', props<{ data: ExtFrame[] }>()); +export const setSampleData = createAction('[App] setSample', props<{ data: DebugSample }>()); + +export const reportsPlotlyReady = createAction('[App] plotly ready'); +export const setSignIsNeeded = createAction('[App] set sign is needed'); diff --git a/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.component.html b/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.component.html new file mode 100644 index 00000000..8a0e01a1 --- /dev/null +++ b/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.component.html @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + +
+ + + + Show preview +
+
+ + + +
+ diff --git a/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.component.scss b/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.component.scss new file mode 100644 index 00000000..115231f0 --- /dev/null +++ b/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.component.scss @@ -0,0 +1,42 @@ +@import "src/app/webapp-common/shared/ui-components/styles/variables"; + +.placeholder { + color: $blue-400; + min-height: 150px; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + font-size: 14px; +} + +.s3message { + color: $blue-400; + min-height: 150px; + display: flex; + align-items: center; + justify-content: center; + gap: 6px; + font-size: 14px; +} + +.show-text { + cursor: pointer; + color: $neon-yellow; + margin-top: 12px; +} + + +.link { + display: inline; + cursor: pointer; + color: $neon-yellow; + + &:hover { + color: $neon-yellow; + } +} + +.no-pointer { + pointer-events: none; +} \ No newline at end of file diff --git a/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.component.ts b/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.component.ts new file mode 100644 index 00000000..7481e77d --- /dev/null +++ b/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.component.ts @@ -0,0 +1,249 @@ +import {ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, ViewChild} from '@angular/core'; +import {Store} from '@ngrx/store'; +import {MatDialog} from '@angular/material/dialog'; +import {Observable} from 'rxjs'; +import {filter, map, switchMap, take} from 'rxjs/operators'; +import {Environment} from '../environments/base'; +import {getPlot, getSample, getScalar, reportsPlotlyReady} from './app.actions'; +import {ReportsApiMultiplotsResponse, selectPlotData, selectReportsPlotlyReady, selectSampleData, selectSignIsNeeded, State} from './app.reducer'; +import {ExtFrame} from '@common/shared/single-graph/plotly-graph-base'; +import {DebugSample} from '@common/shared/debug-sample/debug-sample.reducer'; +import {getSignedUrl, setS3Credentials} from '@common/core/actions/common-auth.actions'; +import {ConfigurationService} from '@common/shared/services/configuration.service'; +import {_mergeVariants, convertMultiPlots, mergeMultiMetricsGroupedVariant, prepareMultiPlots, tryParseJson} from '@common/tasks/tasks.utils'; +import {selectSignedUrl} from '@common/core/reducers/common-auth-reducer'; +import {loadExternalLibrary} from '@common/shared/utils/load-external-library'; +import {ImageViewerComponent} from '@common/shared/debug-sample/image-viewer/image-viewer.component'; +import {cloneDeep} from 'lodash/fp'; +import {MetricsPlotEvent} from '~/business-logic/model/events/metricsPlotEvent'; +import {SingleGraphComponent} from '@common/shared/single-graph/single-graph.component'; +import {setCurrentDebugImage} from '@common/shared/debug-sample/debug-sample.actions'; + + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class AppComponent implements OnInit { + title = 'report-widgets'; + public plotData: ExtFrame; + public frame: DebugSample; + public plotLoaded: boolean; + private environment: Environment; + public activated: boolean = false; + private searchParams: URLSearchParams; + public type: string; + public singleGraphHeight; + public hideMaximize: 'show' | 'hide' | 'disabled' = 'show'; + public signIsNeeded: Observable; + + @ViewChild(SingleGraphComponent) 'singleGraph': SingleGraphComponent; + + constructor( + private store: Store, + private configService: ConfigurationService, + private dialog: MatDialog, + private cdr: ChangeDetectorRef) { + this.configService.globalEnvironmentObservable.subscribe(env => { + this.environment = env; + }); + this.signIsNeeded = store.select(selectSignIsNeeded); + this.searchParams = new URLSearchParams(window.location.search); + this.type = this.searchParams.get('type'); + this.singleGraphHeight = window.innerHeight; + + try { + const lala = JSON.parse(localStorage.getItem('_saved_state_')); + this.store.dispatch(setS3Credentials(lala.auth.s3BucketCredentials)); + } catch (e) { + console.log(e); + } + + } + + ngOnInit(): void { + try { + if (!(window.top as any).holdIframe) { + this.activate(); + } + } catch (e) { + this.hideMaximize = 'hide'; + console.log('no-access-to-parent-window'); + this.activate(); + } + + switch (this.type) { + case 'plot': + this.getPlotData(); + break; + case 'scalar': + this.getScalars(); + break; + case 'sample': + this.getSample(); + + } + + window.addEventListener('message', (e) => { + if (e.data == 'renderPlot') { + this.activate(); + } else if (e.data == 'resizePlot' && this.plotLoaded) { + this.singleGraph?.redrawPlot(); + } else if (e.data == 'disableMaximize' && this.hideMaximize !== 'hide') { + this.hideMaximize = 'disabled'; + } + }); + } + + /// Merging all variants of same metric to same graph. (single experiment) + mergeVariants = (plots: ReportsApiMultiplotsResponse): { [metric: string]: any } => { + let previousPlotIsMergable = true; + return (Object.values(plots) as any).reduce((groupedPlots, pplot) => { + Object.values(pplot).forEach((exp) => { + (Object.values(Object.values(exp)[0])[0] as { name: string; plots: Array }).plots.forEach((plot, index) => { + const metric = plot.metric; + groupedPlots[metric] = cloneDeep(groupedPlots[metric]) || null; + const plotParsed = tryParseJson(plot.plot_str); + if (groupedPlots[metric] && ['scatter', 'bar'].includes(plotParsed?.data?.[0]?.type) && previousPlotIsMergable) { + groupedPlots[metric].plotParsed = {...groupedPlots[metric].plotParsed, data: _mergeVariants(groupedPlots[metric].plotParsed.data, plotParsed.data)}; + } else { + groupedPlots[metric] = {...plot, plotParsed}; + } + previousPlotIsMergable = index > -1 || (index === -1 && ['scatter', 'bar'].includes(plotParsed.data[0]?.type)); + }); + }); + return groupedPlots; + }, {}); + }; + + private getPlotData() { + this.store.select(selectReportsPlotlyReady).pipe( + filter(ready => !!ready), + switchMap(() => this.store.select(selectPlotData)), + filter(plot => !!plot), + take(1)) + .subscribe((metricsPlots) => { + this.plotLoaded = true; + if (this.isSingleExperiment(metricsPlots)) { + const merged = this.mergeVariants(metricsPlots as ReportsApiMultiplotsResponse); + this.plotData = Object.values(merged)[0].plotParsed; + } else { + const {merged, parsingError} = prepareMultiPlots(metricsPlots); + const newGraphs = convertMultiPlots(merged); + this.plotData = Object.values(newGraphs)[0]?.[0]; + } + this.plotLoaded = true; + this.cdr.detectChanges(); + }); + }; + + private isSingleExperiment(metricsPlots: any) { + try { + return Object.keys(Object.values(Object.values(metricsPlots)[0])[0]).length === 1; + } catch (e) { + return false; + } + } + + private getScalars() { + this.store.select(selectReportsPlotlyReady).pipe( + filter(ready => !!ready), + switchMap(() => this.store.select(selectPlotData)), + filter(plot => !!plot), + take(1)) + .subscribe(metrics => { + this.plotLoaded = true; + this.plotData = Object.values(mergeMultiMetricsGroupedVariant(metrics))?.[0]?.[0]; + this.cdr.detectChanges(); + }); + } + + private getSample() { + this.store.select(selectSampleData) + .pipe(filter(sample => !!sample)) + .subscribe(sample => { + this.store.dispatch(getSignedUrl({url: sample.url})); + this.store.select(selectSignedUrl(sample.url)) + .pipe( + filter(signed => !!signed?.signed), + map(({signed: signedUrl}) => signedUrl), + take(1) + ).subscribe(() => { + this.frame = sample; + this.activated = true; + this.cdr.detectChanges(); + }); + + }); + } + + activate = () => { + this.type !== 'sample' && loadExternalLibrary(this.store, this.environment.plotlyURL, reportsPlotlyReady); + const queryParams = { + tasks: this.searchParams.getAll('tasks'), + metrics: this.searchParams.getAll('metrics'), + variants: this.searchParams.getAll('variants'), + iterations: this.searchParams.getAll('iterations').map(iteration => parseInt(iteration, 10)), + company: this.searchParams.get('company') || '', + }; + + switch (this.type) { + case 'plot': + this.store.dispatch(getPlot(queryParams)); + break; + case 'scalar': + this.store.dispatch(getScalar(queryParams)); + break; + case 'sample': + this.store.dispatch(getSample(queryParams)); + } + this.activated = true; + }; + + + loadStyle(styleName: string) { + const head = document.getElementsByTagName('head')[0]; + + const themeLink = document.getElementById( + 'client-theme' + ) as HTMLLinkElement; + if (themeLink) { + themeLink.href = styleName; + } else { + const style = document.createElement('link'); + style.id = 'client-theme'; + style.rel = 'stylesheet'; + style.href = `${styleName}`; + + head.appendChild(style); + } + } + + maximize() { + this.loadStyle('trains-icons.css'); + window.top.postMessage({ + maximizing: true, + name: window.name, + src: window.location.href + }, '*'); + } + + sampleClicked({src}) { + this.store.dispatch(setCurrentDebugImage({event: this.frame})); + this.maximize(); + this.dialog.open(ImageViewerComponent, { + data: { + url: src, + withoutNavigation: true + }, + panelClass: ['image-viewer-dialog'], + height: '100%', + maxHeight: 'auto', + width: '100%', + maxWidth: 'auto' + }).beforeClosed().subscribe(() => this.maximize()); + } + +} diff --git a/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.effects.ts b/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.effects.ts new file mode 100644 index 00000000..e2ddea17 --- /dev/null +++ b/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.effects.ts @@ -0,0 +1,114 @@ +import {Injectable} from '@angular/core'; +import {Actions, createEffect, ofType} from '@ngrx/effects'; +import {getPlot, getSample, getScalar, setPlotData, setSampleData, setSignIsNeeded} from './app.actions'; +import {EMPTY, mergeMap, of, switchMap} from 'rxjs'; +import {Store} from '@ngrx/store'; +import {filter} from 'rxjs/operators'; +import {ReportsApiMultiplotsResponse, State} from './app.reducer'; +import {ApiReportsService} from '~/business-logic/api-services/reports.service'; +import {BaseAdminService} from '@common/settings/admin/base-admin.service'; +import {ReportsGetTaskDataResponse} from '~/business-logic/model/reports/reportsGetTaskDataResponse'; +import {setCurrentDebugImage} from '@common/shared/debug-sample/debug-sample.actions'; +import {getSignedUrl, setSignedUrl} from '@common/core/actions/common-auth.actions'; +import {SignResponse} from '@common/settings/admin/base-admin-utils'; +import {HttpClient, HttpHeaders} from '@angular/common/http'; +import {HTTP} from '~/app.constants'; +import {DebugSample} from '@common/shared/debug-sample/debug-sample.reducer'; + + +@Injectable() +export class AppEffects { + + protected basePath = HTTP.API_BASE_URL; + + constructor( + private httpClient: HttpClient, + private store: Store, + private actions$: Actions, + private reportsApi: ApiReportsService, + private adminService: BaseAdminService) { + } + + getHeaders(company: string): HttpHeaders { + let headers = new HttpHeaders(); + headers = headers.append('X-Allegro-Tenant', company); + return headers; + } + + getPlot = createEffect(() => this.actions$.pipe( + ofType(getPlot), + switchMap(action => this.httpClient.post<{ data: ReportsGetTaskDataResponse }>(`${this.basePath}/reports.get_task_data`, + { + id: action.tasks, + plots: { + iters: 1, + metrics: action.metrics.map(metric => ({metric, variants: action.variants})) + } + }, + {headers: this.getHeaders(action.company)} + )), + mergeMap((res) => [setPlotData({data: res.data.plots as unknown as ReportsApiMultiplotsResponse})]) + )); + + getScalar = createEffect(() => this.actions$.pipe( + ofType(getScalar), + mergeMap(action => this.httpClient.post<{ data: ReportsGetTaskDataResponse }>(`${this.basePath}/reports.get_task_data`, + { + id: action.tasks, + // eslint-disable-next-line @typescript-eslint/naming-convention + scalar_metrics_iter_histogram: { + metrics: action.metrics.map(metric => ({metric, variants: action.variants})) + } + }, + {headers: this.getHeaders(action.company)} + ).pipe( + mergeMap(res => [ + setPlotData({data: res.data.scalar_metrics_iter_histogram as ReportsApiMultiplotsResponse})] + ) + ) + ) + )); + + getSample = createEffect(() => this.actions$.pipe( + ofType(getSample), + switchMap(action => this.httpClient.post<{ data: ReportsGetTaskDataResponse }>(`${this.basePath}/reports.get_task_data`, + { + id: action.tasks, + // eslint-disable-next-line @typescript-eslint/naming-convention + debug_images: { + iters: 1, + metrics: action.metrics.map(metric => ({metric, variants: action.variants})) + } + }, + {headers: this.getHeaders(action.company)} + ).pipe( + mergeMap(res => [ + setSampleData({data: res.data.debug_images?.[0]?.iterations?.[0]?.events[0] as DebugSample}) + ]) + ) + )) + ); + + signUrl = createEffect(() => this.actions$.pipe( + ofType(getSignedUrl), + filter(action => !!action.url), + mergeMap(action => + of(action).pipe( + switchMap(() => this.adminService.signUrlIfNeeded(action.url, action.config)), + filter(res => !!res), + switchMap((res: SignResponse) => { + switch (res.type) { + case 'popup': + return [setSignIsNeeded()]; + case 'sign': + return [setSignedUrl({url: action.url, signed: res.signed, expires: res.expires})]; + default: + return EMPTY; + } + } + ), + ), + ) + )); + +} diff --git a/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.module.ts b/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.module.ts new file mode 100644 index 00000000..657eaa7b --- /dev/null +++ b/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.module.ts @@ -0,0 +1,47 @@ +import {NgModule} from '@angular/core'; +import {BrowserModule} from '@angular/platform-browser'; +import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; + +import {AppComponent} from './app.component'; +import {EffectsModule} from '@ngrx/effects'; +import {AppEffects} from './app.effects'; +import {StoreModule} from '@ngrx/store'; +import {appReducer} from './app.reducer'; +import {HttpClientModule} from '@angular/common/http'; +import {MatDialogModule} from '@angular/material/dialog'; +import {ChooseColorModule} from '@common/shared/ui-components/directives/choose-color/choose-color.module'; +import {SingleGraphModule} from '@common/shared/single-graph/single-graph.module'; +import {DebugSampleModule} from '@common/shared/debug-sample/debug-sample.module'; +import {ApiEventsService} from '~/business-logic/api-services/events.service'; +import {ApiReportsService} from '~/business-logic/api-services/reports.service'; +import {BaseAdminService} from '@common/settings/admin/base-admin.service'; +import {ColorHashService} from '@common/shared/services/color-hash/color-hash.service'; +import {authReducer} from '~/features/settings/containers/admin/auth.reducers'; +import {extCoreModules} from '~/build-specifics'; +import {SmApiRequestsService} from '~/business-logic/api-services/api-requests.service'; + +if (!localStorage.getItem('_saved_state_')) { + localStorage.setItem('_saved_state_', '{}'); +} + +@NgModule({ + declarations: [ + AppComponent + ], + imports: [ + BrowserAnimationsModule, + BrowserModule, + HttpClientModule, + MatDialogModule, + ChooseColorModule, + SingleGraphModule, + DebugSampleModule, + StoreModule.forRoot({appReducer, auth: authReducer}), + EffectsModule.forRoot([AppEffects]), + ...extCoreModules + ], + providers: [ApiEventsService, ApiReportsService, SmApiRequestsService, ColorHashService, BaseAdminService], + bootstrap: [AppComponent] +}) +export class AppModule { +} diff --git a/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.reducer.ts b/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.reducer.ts new file mode 100644 index 00000000..ee98110e --- /dev/null +++ b/src/app/webapp-common/clearml-applications/report-widgets/src/app/app.reducer.ts @@ -0,0 +1,55 @@ +import {createReducer, createSelector, on} from '@ngrx/store'; +import {reportsPlotlyReady, setPlotData, setSampleData, setSignIsNeeded} from './app.actions'; +import {DebugSample} from '@common/shared/debug-sample/debug-sample.reducer'; +import {MetricsPlotEvent} from '~/business-logic/model/events/metricsPlotEvent'; + +export interface ReportsApiMultiplotsResponse { + [metric: string]: { + [variant: string]: { + [expId: string]: { + [iteration: string]: { + name: string; + plots: Array; + }; + }; + }; + }; +} + + +export const appFeatureKey = 'app'; + +export interface State { + plotData: MetricsPlotEvent[] | ReportsApiMultiplotsResponse; + sampleData: DebugSample; + scaleFactor: number; + plotlyReady: boolean; + signIsNeeded: boolean; +} + +export const initialState: State = { + plotData: null, + sampleData: null, + scaleFactor: 100, + plotlyReady: false, + signIsNeeded: false +}; + +export const appReducer = createReducer( + initialState, + on(reportsPlotlyReady, (state) => ({...state, plotlyReady: true})), + on(setPlotData, (state, action) => ({...state, plotData: action.data as ReportsApiMultiplotsResponse})), + on(setSampleData, (state, action) => ({...state, sampleData: action.data})), + on(setSignIsNeeded, (state) => { + debugger + return ({...state, signIsNeeded: true}) + }), +); + +export const selectFeature = state => state.appReducer as State; + +export const selectScaleFactor = createSelector(selectFeature, state => state.scaleFactor); +export const selectReportsPlotlyReady = createSelector(selectFeature, state => state.plotlyReady); +export const selectPlotData = createSelector(selectFeature, state => state.plotData); +export const selectSampleData = createSelector(selectFeature, state => state.sampleData); +export const selectSignIsNeeded = createSelector(selectFeature, state => state.signIsNeeded); diff --git a/src/app/webapp-common/clearml-applications/report-widgets/src/app/webapp-common/assets b/src/app/webapp-common/clearml-applications/report-widgets/src/app/webapp-common/assets new file mode 100644 index 00000000..50aff6c0 --- /dev/null +++ b/src/app/webapp-common/clearml-applications/report-widgets/src/app/webapp-common/assets @@ -0,0 +1 @@ +../../../../../assets \ No newline at end of file diff --git a/src/app/webapp-common/clearml-applications/report-widgets/src/assets/.gitkeep b/src/app/webapp-common/clearml-applications/report-widgets/src/assets/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/src/app/webapp-common/clearml-applications/report-widgets/src/assets/pallete-cursor.png b/src/app/webapp-common/clearml-applications/report-widgets/src/assets/pallete-cursor.png new file mode 100644 index 0000000000000000000000000000000000000000..e8a17d728801a1cab9e4a15238eec43655dbd8a7 GIT binary patch literal 1422 zcmV;91#$X`P)P000{Z1^@s6i6JCt00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY32OiV32OnA79|Y;000McNliru;{y~8GZ-rX7oh+E1sh33 zK~zY`wU%9Il-U`_fA7bvG+V0YurB%AshGj2$p&3!6OM*zYyM9zz6W2OSl6U5v_dVy|i za0=K41VG^{H-2bnNGk@Yt*y;=c6M5z1}r_z>?SY-i~*a!EXZ%41mO4>$HBBO|(X>y{+xz<~ogcI=qKFx1%C zm>kFX^nV3j1Dpr$0Dm1A7*M5BktCfyeOksCNz&xxq>?0&B;B}iL-l%Hl63OqNqL^9 z{|4XyAN2I}4DQ^ylS`K_(bd(()YKGf*REYv>XVa`jE;_y%jZuSYtxPdj?)OfxVVVl z)YLS1?%X-{?Ab%9RH9fcVy#`C=i9egzkWT<&CSfr%#hFLDHIBnN+p6IV8@OfSZk># z3BUQlkKRZ}bxcne;lnwQXzA?W=Wo4*8%5D#sZ;`B*REYmOibXq%ac7mKF+mk*8n(r z^eAV~o&{iHVuItxj|1R&9`Zbf-nqcHfB#2DYB7D2@6&hbJ-+eaA)D5(!!^ddcH+bd zu3x_n!0_;Jqf`$bJmAWeD*!AlEm5gdmLHSr5=9XJv$L~c3_W3$s8S)WR;e#65G^iJ z4?|=vuJ8NjYPH%g4<0*0rI50^Wgn#+KGL`ZF{%L>Ptu?A^PU>FH?zWNbF#Qj3eQX9c^PnnFQoA)VC=||Bfr|Z zb*sC3_ipaqz1yh2Bpy9_#KOV?0Pp>IlJ53a-h9}P`wvJIvv<=v{+8=Ovh-)#NgU_j zwIY>D{W=W8uN^vc=(U!X7OK@M)mn{AVnCu6)u>AN=`_(AkMIAu$cdR*5*tHOM|(p4 z6wYI@yb_g3^aX+x$FT)|QZARzl*{Ffz?S2$kDvb8_P(w-p936Tu0Q7TU)}~|aXMQ_ z)f|$i!r=kF<6!0BtwQzgJYAm-YVn~s@d(YboGryJkE0Y;P>FrC+E0S(dNk!T zjZCsl8S?oo)>yLHG|e`^H=^nrvgs80w1bt%rBk?$yDAX(-SZdo`SuQ$1sSTf+jMNK zfyCcGxyN=~jKErP|J@SZwPpHwGSkG}k3Pg%1xRxyllf*-E}Lt3K9dY2eeO46tr~aW cP+45!pL+GLwY)poS^xk507*qoM6N<$f-8H$A^-pY literal 0 HcmV?d00001 diff --git a/src/app/webapp-common/clearml-applications/report-widgets/src/environments/base.ts b/src/app/webapp-common/clearml-applications/report-widgets/src/environments/base.ts new file mode 100644 index 00000000..d42d86ac --- /dev/null +++ b/src/app/webapp-common/clearml-applications/report-widgets/src/environments/base.ts @@ -0,0 +1,104 @@ +export interface CommercialContext { + title?: string; + subtitle?: string; + background?: string; + backgroundPosition?: string; + list?: { icon: string; title: string; text: string }[]; +} + +export interface GettingStartedContext { + install?: string; + configure?: string; + packageName?: string; +} + +export interface Legal { + TOULink?: string; + pricingLink?: string; +} + +export interface Environment { + production: boolean; + apiBaseUrl: string; + fileBaseUrl: string; + displayedServerUrls?: {apiServer?: string; filesServer?: string}; + alternativeFilesBaseUrl?: string; + demo: boolean; + headerPrefix: string; + version: string; + userKey: string; + userSecret: string; + companyID: string; + loginNotice?: string; + loginBanner?: string; + cookieName?: string; + baseUrl?: string; + autoLogin?: boolean; + whiteLabelLogo?: boolean; + whiteLabelLink?: any; + whiteLabelLoginTitle?: string; + whiteLabelLoginSubtitle?: string; + whiteLabelSlogan?: string; + communityServer?: boolean; + enterpriseServer?: boolean; + gettingStartedContext?: GettingStartedContext; + accountAdministration: boolean; + communityContext?: CommercialContext; + GTM_ID?: string; + gtmResourcePath?: string; + hideUpdateNotice?: boolean; + updateCheck?: boolean; + showSurvey?: boolean; + plotlyURL?: string; + slackLink?: string; + docsLink?: string; + useFilesProxy?: boolean; + branding?: { faviconUrl?: string; logo?: string; logoSmall?: string }; + serverDownMessage?: string; + appsYouTubeIntroVideoId?: string; + newExperimentYouTubeVideoId?: string; + appAwareness?: boolean; + appAwarenessMenu?: boolean; + baseHref?: string; + billingServiceUrl?: string; + legal?: Legal; + loginPopup?: string; + showMaskWithoutLabels?: boolean; + autoLogoutInactiveDurationMinutes?: number; + appcuesURL?: string; +} + +export const BASE_ENV: Environment = { + communityServer: false, + enterpriseServer: true, + accountAdministration: true, + production: true, + cookieName: 'allegro_token', + demo: false, + updateCheck: false, + autoLogin: false, + apiBaseUrl: null, + fileBaseUrl: null, + version: require('../../../../../../../package.json').version, + baseUrl: 'https://app.allegro.ai', + headerPrefix: 'X-Allegro', + loginBanner: '', + loginNotice: '', + userKey: '', + userSecret: '', + companyID: '', + whiteLabelLogo: null, + whiteLabelLink: null, + whiteLabelLoginTitle: null, + whiteLabelLoginSubtitle: null, + whiteLabelSlogan: null, + plotlyURL: 'app/webapp-common/assets/plotly-2.16.1.min.js', + docsLink: '/docs', + useFilesProxy: true, + branding: {logo: '/assets/logo-white.svg?v=7', logoSmall: '/assets/c-logo.svg?=2'}, + serverDownMessage: 'The ClearML server is currently unavailable.
' + + 'Please try to reload this page in a little while.', + legal: {TOULink: 'https://clear.ml/legal-platform-tou/', pricingLink: 'https://clear.ml/pricing/'}, + showMaskWithoutLabels: true, + newExperimentYouTubeVideoId: 'bjWwZAzDxTY' +}; diff --git a/src/app/webapp-common/clearml-applications/report-widgets/src/environments/environment.prod.ts b/src/app/webapp-common/clearml-applications/report-widgets/src/environments/environment.prod.ts new file mode 100644 index 00000000..cb869589 --- /dev/null +++ b/src/app/webapp-common/clearml-applications/report-widgets/src/environments/environment.prod.ts @@ -0,0 +1,7 @@ +import {BASE_ENV} from '../../../../../../environments/base'; + +export const environment = { + ...BASE_ENV, + production: true, + apiBaseUrl: '/api', +}; diff --git a/src/app/webapp-common/clearml-applications/report-widgets/src/environments/environment.ts b/src/app/webapp-common/clearml-applications/report-widgets/src/environments/environment.ts new file mode 100644 index 00000000..cce89f42 --- /dev/null +++ b/src/app/webapp-common/clearml-applications/report-widgets/src/environments/environment.ts @@ -0,0 +1,44 @@ +import {BASE_ENV, Environment} from './base'; +/* + 1 https://api1.rnd.dev2.allegro.ai (community) + 2 https://api2.rnd.dev2.allegro.ai (enterprise) + 3 https://api.qa.hosted.allegro.ai + 4 https://api.allegro-master.hosted.allegro.ai + 5 https://api.allegro.ai + 6 https://api2.qa.hosted.allegro.ai + 7 https://api1.testing2.dev2.allegro.ai + 8 https://api2.testing2.dev2.allegro.ai + 9 https://api.vimeo.hosted.allegro.ai + 10 https://api.maxq.hosted.allegro.ai + 11 https://api.community-master.hosted.allegro.ai + 12 https://api.dev.hosted.allegro.ai + 13 https://api.staging.hosted.allegro.ai + 14 https://api.clear.ml + 15 https://api.dev.hosted.clear.ml + */ + +export const environment = { + ...BASE_ENV, + production: false, + baseUrl: 'localhost:4200', + autoLogin: false, + apiBaseUrl: 'service/4/api', + // communityServer: true, + accountAdministration: true, + fileBaseUrl: 'https://files.allegro.ai', + userKey: 'EYVQ385RW7Y2QQUH88CZ7DWIQ1WUHP', + userSecret: 'yfc8KQo*GMXb*9p((qcYC7ByFIpF7I&4VH3BfUYXH%o9vX1ZUZQEEw1Inc)S', + companyID: 'd1bd92a3b039400cbafc60a7a5b1e52b', + // billingServiceUrl: 'https://cdn.paddle.com/paddle/paddle.js', + alternativeFilesBaseUrl: 'https://files.allegro-master.hosted.allegro.ai' +} as Environment; + +if (document.URL.includes('localhost')) { + if (!['/api1/service', '/api2/service'].includes(environment.apiBaseUrl)) { + console.log(`Current environment is ${environment.apiBaseUrl}`); + if (environment.apiBaseUrl.includes('production')) { + console.groupCollapsed('Working on Production!'); + console.groupEnd(); + } + } +} diff --git a/src/app/webapp-common/clearml-applications/report-widgets/src/favicon.ico b/src/app/webapp-common/clearml-applications/report-widgets/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..997406ad22c29aae95893fb3d666c30258a09537 GIT binary patch literal 948 zcmV;l155mgP)CBYU7IjCFmI-B}4sMJt3^s9NVg!P0 z6hDQy(L`XWMkB@zOLgN$4KYz;j0zZxq9KKdpZE#5@k0crP^5f9KO};h)ZDQ%ybhht z%t9#h|nu0K(bJ ztIkhEr!*UyrZWQ1k2+YkGqDi8Z<|mIN&$kzpKl{cNP=OQzXHz>vn+c)F)zO|Bou>E z2|-d_=qY#Y+yOu1a}XI?cU}%04)zz%anD(XZC{#~WreV!a$7k2Ug`?&CUEc0EtrkZ zL49MB)h!_K{H(*l_93D5tO0;BUnvYlo+;yss%n^&qjt6fZOa+}+FDO(~2>G z2dx@=JZ?DHP^;b7*Y1as5^uphBsh*s*z&MBd?e@I>-9kU>63PjP&^#5YTOb&x^6Cf z?674rmSHB5Fk!{Gv7rv!?qX#ei_L(XtwVqLX3L}$MI|kJ*w(rhx~tc&L&xP#?cQow zX_|gx$wMr3pRZIIr_;;O|8fAjd;1`nOeu5K(pCu7>^3E&D2OBBq?sYa(%S?GwG&_0-s%_v$L@R!5H_fc)lOb9ZoOO#p`Nn`KU z3LTTBtjwo`7(HA6 z7gmO$yTR!5L>Bsg!X8616{JUngg_@&85%>W=mChTR;x4`P=?PJ~oPuy5 zU-L`C@_!34D21{fD~Y8NVnR3t;aqZI3fIhmgmx}$oc-dKDC6Ap$Gy>a!`A*x2L1v0 WcZ@i?LyX}70000 + + + + ReportsHelper + + + + + + + + diff --git a/src/app/webapp-common/clearml-applications/report-widgets/src/main.ts b/src/app/webapp-common/clearml-applications/report-widgets/src/main.ts new file mode 100644 index 00000000..b2523c4a --- /dev/null +++ b/src/app/webapp-common/clearml-applications/report-widgets/src/main.ts @@ -0,0 +1,25 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import {APP_BASE_HREF} from '@angular/common'; +import {Environment} from '../../../../../environments/base'; +import {environment} from './environments/environment'; +import {updateHttpUrlBaseConstant} from '~/app.constants'; + +if (environment.production) { + enableProdMode(); +} + +(async () => { + const configData = {baseHref: ''} as Environment; + try { + // configData = await fetchConfigOutSideAngular(); + (window as any).configuration = {}; + } finally { + updateHttpUrlBaseConstant({...environment, ...configData}); + await platformBrowserDynamic([ + {provide: APP_BASE_HREF, useValue: configData.baseHref} + ]).bootstrapModule(AppModule); + } +})(); diff --git a/src/app/webapp-common/clearml-applications/report-widgets/src/polyfills.ts b/src/app/webapp-common/clearml-applications/report-widgets/src/polyfills.ts new file mode 100644 index 00000000..429bb9ef --- /dev/null +++ b/src/app/webapp-common/clearml-applications/report-widgets/src/polyfills.ts @@ -0,0 +1,53 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes recent versions of Safari, Chrome (including + * Opera), Edge on the desktop, and iOS and Chrome on mobile. + * + * Learn more in https://angular.io/guide/browser-support + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + * because those flags need to be set before `zone.js` being loaded, and webpack + * will put import in the top of bundle, so user need to create a separate file + * in this directory (for example: zone-flags.ts), and put the following flags + * into that file, and then add the following code before importing zone.js. + * import './zone-flags'; + * + * The flags allowed in zone-flags.ts are listed here. + * + * The following flags will work for all browsers. + * + * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + * + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + * + * (window as any).__Zone_enable_cross_context_check = true; + * + */ + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js'; // Included with Angular CLI. + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/src/app/webapp-common/clearml-applications/report-widgets/src/styles.scss b/src/app/webapp-common/clearml-applications/report-widgets/src/styles.scss new file mode 100644 index 00000000..918beabe --- /dev/null +++ b/src/app/webapp-common/clearml-applications/report-widgets/src/styles.scss @@ -0,0 +1,180 @@ +// Custom Theming for Angular Material +// For more information: https://material.angular.io/guide/theming +@use '../../../../../../node_modules/@angular/material/index' as mat; +// Plus imports for other components in your app. + +// Include the common styles for Angular Material. We include this here so that you only +// have to load a single css file for Angular Material in your app. +// Be sure that you only ever include this mixin once! +@include mat.core(); + +// Define the palettes for your theme using the Material Design palettes available in palette.scss +// (imported above). For each palette, you can optionally specify a default, lighter, and darker +// hue. Available color palettes: https://material.io/design/color/ +$theme-primary: mat.define-palette(mat.$indigo-palette); +$theme-accent: mat.define-palette(mat.$pink-palette, A200, A100, A400); + +// The warn palette is optional (defaults to red). +$theme-warn: mat.define-palette(mat.$red-palette); + +// Create the theme object. A theme consists of configurations for individual +// theming systems such as "color" or "typography". +$theme: mat.define-light-theme(( + color: ( + primary: $theme-primary, + accent: $theme-accent, + warn: $theme-warn, + ) +)); + +// Include theme styles for core and each component used in your app. +// Alternatively, you can import and @include the theme mixins for each component +// that you are using. +@include mat.dialog-theme($theme); + +@import "src/app/webapp-common/shared/ui-components/styles/variables"; + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html, body { + height: 100%; + overflow: hidden; +} + +body { + font-family: sans-serif; + border: 1px solid $dark-border; + border-radius: 4px; + display: flex; + align-items: center; + justify-content: center; +} + +.pointer { + cursor: pointer; +} + +.d-flex-center { + display: flex !important; + align-items: center !important; + justify-content: center !important; + + &.gap { + gap: 12px !important; + } +} + +.mat-dialog-container { + padding: 0 !important; +} + +.d-flex { + display: flex; +} + +.dark-theme .plot-container .hoverlayer { + line[stroke-width="1"] { + stroke: $blue-300; + } + + line[stroke-width="3"] { + stroke: $blue-900; + } + + .hovertext { + rect { + fill: #000 !important; + } + path { + stroke: #000 !important; + } + } +} + +.al-icon, .icon { + width: 24px; + height: 24px; + font-size: 24px; + + &.xs { + width: 10px; + height: 10px; + font-size: 10px; + } + + &.msm { + width: 13px; + height: 13px; + font-size: 13px; + } + + &.sm { + width: 16px; + min-width: 16px; + height: 16px; + font-size: 16px; + } + + &.sm-md { + width: 20px; + height: 20px; + font-size: 20px; + } + + &.md { + width: 28px; + height: 28px; + font-size: 28px; + } + + &.lg { + width: 32px; + height: 32px; + font-size: 32px; + } + + &.l-40 { + width: 40px; + height: 40px; + font-size: 40px; + } + + &.xl { + width: 48px; + height: 48px; + font-size: 48px; + } + + &.xxl { + width: 64px; + height: 64px; + font-size: 64px; + } +} + +.al-icon { + text-align: center; + display: inline-block; +} + + +.modebar { + top: 20px !important; +} + +.modebar-btn[data-attr="plotly-disabled-maximize"] { + cursor: default !important; + + path { + fill: $blue-600 !important; + } +} + +.legendlines path, +.legendpoints path { + cursor: default !important; +} diff --git a/src/app/webapp-common/clearml-applications/report-widgets/src/test.ts b/src/app/webapp-common/clearml-applications/report-widgets/src/test.ts new file mode 100644 index 00000000..c04c8760 --- /dev/null +++ b/src/app/webapp-common/clearml-applications/report-widgets/src/test.ts @@ -0,0 +1,26 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: { + context(path: string, deep?: boolean, filter?: RegExp): { + (id: string): T; + keys(): string[]; + }; +}; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting(), +); + +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().forEach(context); diff --git a/src/app/webapp-common/clearml-applications/report-widgets/tsconfig.app.json b/src/app/webapp-common/clearml-applications/report-widgets/tsconfig.app.json new file mode 100644 index 00000000..f3f2fb33 --- /dev/null +++ b/src/app/webapp-common/clearml-applications/report-widgets/tsconfig.app.json @@ -0,0 +1,15 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "../../../../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/src/app/webapp-common/clearml-applications/report-widgets/tsconfig.spec.json b/src/app/webapp-common/clearml-applications/report-widgets/tsconfig.spec.json new file mode 100644 index 00000000..cc10b21a --- /dev/null +++ b/src/app/webapp-common/clearml-applications/report-widgets/tsconfig.spec.json @@ -0,0 +1,18 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "../../../../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "files": [ + "src/test.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/src/app/webapp-common/common-styles.scss b/src/app/webapp-common/common-styles.scss index 8a71f3ce..e5cd7fd3 100644 --- a/src/app/webapp-common/common-styles.scss +++ b/src/app/webapp-common/common-styles.scss @@ -99,6 +99,7 @@ $sm-theme: mat.define-light-theme($sm-theme-primary, $sm-theme-accent, $sm-theme border-radius: 4px; box-shadow: 0 0 0 1px $white, 0 0 0 3px lighten($purple, 30%); } + .mat-progress-bar-fill::after { background-color: lighten($purple, 10%); } @@ -184,7 +185,8 @@ span.highlight-text { hr { border: none; border-top: 1px solid rgba(0, 0, 0, .1); - &.dark{ + + &.dark { border-top: 1px solid $blue-600; } } @@ -525,11 +527,17 @@ html { border-bottom: 1px solid $blue-200; } -.mat-menu-content .mat-menu-item { - height: 40px; - font-size: 14px; - padding: 0 32px 0 16px; - border-radius: 4px; +.mat-menu-content { + .mat-menu-item { + height: 40px; + font-size: 14px; + padding: 0 32px 0 16px; + border-radius: 4px; + } + + hr { + margin: 4px -4px; + } } // hide arrows for number inputs @@ -730,7 +738,8 @@ button.btn.button-outline-dark { .sm-card-list-header { display: flex; justify-content: space-between; - padding: $projects-header-padding 0 $projects-header-padding * 0.5; + height: inherit; + align-items: center; .recent-title { display: flex; @@ -761,3 +770,13 @@ button.btn.button-outline-dark { font-family: SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace; color: $blue-grey !important; } + +.modebar-btn[data-attr="plotly-embedded-modebar-button"] { + path { + fill: $orangada !important; + } + + &:hover path { + fill: rgb(77, 102, 255) !important; + } +} diff --git a/src/app/webapp-common/constants.ts b/src/app/webapp-common/constants.ts index d7378be1..de78f68e 100644 --- a/src/app/webapp-common/constants.ts +++ b/src/app/webapp-common/constants.ts @@ -95,3 +95,16 @@ export const PALLET = { blue900: '#141722', //20,23,34 blue950: '#0d0e15', //20,23,34 }; + +export enum ThemeEnum { + Dark = 'dark', + Light = 'light' +} + +export type MessageSeverityEnum = 'success' | 'error' | 'info' | 'warn'; +export const MESSAGES_SEVERITY = { + SUCCESS: 'success' as MessageSeverityEnum, + ERROR: 'error' as MessageSeverityEnum, + INFO: 'info' as MessageSeverityEnum, + WARN: 'warn' as MessageSeverityEnum +}; diff --git a/src/app/webapp-common/core/actions/http.actions.ts b/src/app/webapp-common/core/actions/http.actions.ts index ed085bb1..8b04a44d 100644 --- a/src/app/webapp-common/core/actions/http.actions.ts +++ b/src/app/webapp-common/core/actions/http.actions.ts @@ -7,7 +7,7 @@ export const requestFailed = createAction( (err: HttpErrorResponse) => { // eslint-disable-next-line @typescript-eslint/no-unused-vars const {headers, ...others} = err; - return {err: {...others, error: {meta: others.error.meta}}}; + return {err: {...others, error: {meta: others.error?.meta}}}; } ); diff --git a/src/app/webapp-common/core/actions/layout.actions.ts b/src/app/webapp-common/core/actions/layout.actions.ts index 0c5ebaf8..3b1110f6 100644 --- a/src/app/webapp-common/core/actions/layout.actions.ts +++ b/src/app/webapp-common/core/actions/layout.actions.ts @@ -1,8 +1,9 @@ -import {MessageSeverityEnum, VIEW_PREFIX} from '~/app.constants'; +import {VIEW_PREFIX} from '~/app.constants'; import {createAction, props} from '@ngrx/store'; import {omit} from 'lodash/fp'; import {HttpErrorResponse} from '@angular/common/http'; import {Ace} from 'ace-builds'; +import {MessageSeverityEnum} from '@common/constants'; export const setAutoRefresh = createAction( VIEW_PREFIX + '[set auto refresh]', diff --git a/src/app/webapp-common/core/actions/projects.actions.ts b/src/app/webapp-common/core/actions/projects.actions.ts index 993f3c1b..62e690c7 100644 --- a/src/app/webapp-common/core/actions/projects.actions.ts +++ b/src/app/webapp-common/core/actions/projects.actions.ts @@ -112,6 +112,16 @@ export const setCompanyTags = createAction( props<{ tags: string[]; systemTags: string[] }>() ); +export const setMainPageTagsFilter = createAction( + PROJECTS_PREFIX + '[set main page tags filters]', + props<{ tags: string[] }>() +); + +export const setMainPageTagsFilterMatchMode = createAction( + PROJECTS_PREFIX + '[set main page tags filters match mode]', + props<{ matchMode: string }>() +); + export const addProjectTags = createAction( PROJECTS_PREFIX + '[add all projects tags]', props<{ tags: string[]; systemTags: string[] }>() @@ -166,3 +176,8 @@ export const setShowHidden = createAction( PROJECTS_PREFIX + ' [set show hidden]', props<{ show: boolean }>() ); + +export const setHideExamples = createAction( + PROJECTS_PREFIX + ' [set hide examples]', + props<{ hide: boolean }>() +); diff --git a/src/app/webapp-common/core/effects/common-auth.effects.ts b/src/app/webapp-common/core/effects/common-auth.effects.ts index 41154e52..ca3dde90 100644 --- a/src/app/webapp-common/core/effects/common-auth.effects.ts +++ b/src/app/webapp-common/core/effects/common-auth.effects.ts @@ -12,10 +12,10 @@ import {GetCurrentUserResponseUserObject} from '~/business-logic/model/users/get import {AdminService} from '~/shared/services/admin.service'; import {selectDontShowAgainForBucketEndpoint, selectS3BucketCredentialsBucketCredentials, selectSignedUrl} from '@common/core/reducers/common-auth-reducer'; import {EMPTY, of} from 'rxjs'; -import {SignResponse} from '@common/settings/admin/base-admin.service'; import {S3AccessResolverComponent} from '@common/layout/s3-access-resolver/s3-access-resolver.component'; import {MatDialog} from '@angular/material/dialog'; import {setCredentialLabel} from '../actions/common-auth.actions'; +import {SignResponse} from '@common/settings/admin/base-admin-utils'; @Injectable() export class CommonAuthEffects { diff --git a/src/app/webapp-common/core/effects/layout.effects.ts b/src/app/webapp-common/core/effects/layout.effects.ts index 1a788c47..386c31e8 100644 --- a/src/app/webapp-common/core/effects/layout.effects.ts +++ b/src/app/webapp-common/core/effects/layout.effects.ts @@ -1,6 +1,6 @@ import {Injectable} from '@angular/core'; import {Actions, createEffect, Effect, ofType} from '@ngrx/effects'; -import {EmptyAction, MESSAGES_SEVERITY} from '../../../app.constants'; +import {EmptyAction} from '../../../app.constants'; import * as layoutActions from '../actions/layout.actions'; import {filter, map, switchMap, take, mergeMap, bufferTime} from 'rxjs/operators'; import {get} from 'lodash/fp'; @@ -12,6 +12,7 @@ import {AlertDialogComponent} from '../../shared/ui-components/overlay/alert-dia import {NotifierService} from '../../angular-notifier'; import {requestFailed} from '@common/core/actions/http.actions'; import {addMessage} from '../actions/layout.actions'; +import {MESSAGES_SEVERITY} from '@common/constants'; const ERROR_AGGREGATION = 600000; diff --git a/src/app/webapp-common/core/effects/projects.effects.ts b/src/app/webapp-common/core/effects/projects.effects.ts index 6136f739..4ed5bded 100644 --- a/src/app/webapp-common/core/effects/projects.effects.ts +++ b/src/app/webapp-common/core/effects/projects.effects.ts @@ -160,7 +160,7 @@ export class ProjectsEffects { ofType(actions.getTags), withLatestFrom(this.store.select(selectRouterParams).pipe( map(params => (params === null || params?.projectId === '*') ? [] : [params.projectId]))), - switchMap(([action, projects]) => { + mergeMap(([action, projects]) => { const ids = action?.projectId ? [action.projectId] : projects; if (ids.length === 0 || !ids[0]) { return EMPTY; diff --git a/src/app/webapp-common/core/effects/router.effects.ts b/src/app/webapp-common/core/effects/router.effects.ts index 4f51b248..6aa5604d 100644 --- a/src/app/webapp-common/core/effects/router.effects.ts +++ b/src/app/webapp-common/core/effects/router.effects.ts @@ -6,7 +6,6 @@ import {map, tap} from 'rxjs/operators'; import {NAVIGATION_ACTIONS} from '~/app.constants'; import {encodeFilters, encodeOrder} from '../../shared/utils/tableParamEncode'; import {NavigateTo, NavigationEnd, SetRouterSegments, setURLParams} from '../actions/router.actions'; -import {from} from 'rxjs'; @Injectable() @@ -46,7 +45,7 @@ export class RouterEffects { ...(action.orders && {order: encodeOrder(action.orders)}), ...(action.filters && {filter: encodeFilters(action.filters)}), ...(action.isArchived !== undefined && {archive: action.isArchived ? 'true' : null}), - ...(action.isDeep && {deep: true}), + ...(action.isDeep && {deep: true}), ...(action.version && {version: action.version}) } } as NavigationExtras; diff --git a/src/app/webapp-common/core/effects/users.effects.ts b/src/app/webapp-common/core/effects/users.effects.ts index f620e822..80e59c44 100644 --- a/src/app/webapp-common/core/effects/users.effects.ts +++ b/src/app/webapp-common/core/effects/users.effects.ts @@ -2,7 +2,6 @@ import {Injectable} from '@angular/core'; import {Router} from '@angular/router'; import {Actions, createEffect, ofType} from '@ngrx/effects'; import {Store} from '@ngrx/store'; -import {MESSAGES_SEVERITY} from '~/app.constants'; import {ApiUsersService} from '~/business-logic/api-services/users.service'; import { fetchCurrentUser, @@ -22,6 +21,7 @@ import {ApiServerService} from '~/business-logic/api-services/server.service'; import {ServerInfoResponse} from '~/business-logic/model/server/serverInfoResponse'; import {setCurrentUser} from '~/core/actions/users.action'; import {UsersUpdateResponse} from '~/business-logic/model/users/usersUpdateResponse'; +import {MESSAGES_SEVERITY} from '@common/constants'; @Injectable() diff --git a/src/app/webapp-common/core/reducers/common-auth-reducer.ts b/src/app/webapp-common/core/reducers/common-auth-reducer.ts index 43cc1e07..2f7f1b3e 100644 --- a/src/app/webapp-common/core/reducers/common-auth-reducer.ts +++ b/src/app/webapp-common/core/reducers/common-auth-reducer.ts @@ -1,4 +1,6 @@ import {createSelector, on, ReducerTypes, select, Store} from '@ngrx/store'; +import {filter, map, takeWhile, timeout} from 'rxjs/operators'; +import {isEqual} from 'lodash/fp'; import { addCredential, cancelS3Credentials, @@ -10,9 +12,7 @@ import { updateS3Credential } from '../actions/common-auth.actions'; import {CredentialKey} from '~/business-logic/model/auth/credentialKey'; -import {inBucket} from '@common/settings/admin/base-admin.service'; -import {filter, map, takeWhile, timeout} from 'rxjs/operators'; -import {isEqual} from 'lodash/fp'; +import {inBucket} from '@common/settings/admin/base-admin-utils'; export interface Credentials { Bucket?: string; @@ -58,8 +58,8 @@ export const selectAuth = state => state.auth as AuthState; export const selectRevokeSucceed = createSelector(selectAuth, state => state.revokeSucceed); export const selectCredentials = createSelector(selectAuth, state => state.credentials); export const selectNewCredential = createSelector(selectAuth, state => state.newCredential); -export const selectS3BucketCredentials = createSelector(selectAuth, state => state.s3BucketCredentials); -export const selectS3BucketCredentialsBucketCredentials = createSelector(selectAuth, state => state.s3BucketCredentials?.bucketCredentials); +export const selectS3BucketCredentials = createSelector(selectAuth, state => state?.s3BucketCredentials); +export const selectS3BucketCredentialsBucketCredentials = createSelector(selectAuth, state => state?.s3BucketCredentials?.bucketCredentials); export const selectShowLocalFilesPopUp = createSelector(selectAuth, state => state.showLocalFilePopup); export const selectDontShowAgainForBucketEndpoint = createSelector(selectAuth, state => state.dontShowAgainForBucketEndpoint); export const selectSignedUrls = createSelector(selectAuth, state => state.signedUrls); diff --git a/src/app/webapp-common/core/reducers/projects.reducer.ts b/src/app/webapp-common/core/reducers/projects.reducer.ts index 14f16087..e2255424 100644 --- a/src/app/webapp-common/core/reducers/projects.reducer.ts +++ b/src/app/webapp-common/core/reducers/projects.reducer.ts @@ -37,9 +37,14 @@ export interface RootProjects { allUsers: User[]; extraUsers: User[]; showHidden: boolean; + hideExamples: boolean; + mainPageTagsFilter: string[]; + mainPageTagsFilterMatchMode: string; } const initRootProjects: RootProjects = { + mainPageTagsFilter: [], + mainPageTagsFilterMatchMode: 'AND', projects: null, selectedProject: null, archive: false, @@ -55,7 +60,8 @@ const initRootProjects: RootProjects = { users: [], allUsers: [], extraUsers: [], - showHidden: false + showHidden: false, + hideExamples: false }; export const projects = state => state.rootProjects as RootProjects; @@ -67,6 +73,8 @@ export const selectIsArchivedMode = createSelector(projects, state => state.arch export const selectIsDeepMode = createSelector(projects, state => state.deep); export const selectTagsFilterByProject = createSelector(projects, state => state.tagsFilterByProject); export const selectProjectTags = createSelector(projects, state => state.projectTags); +export const selectMainPageTagsFilter = createSelector(projects, state => state.mainPageTagsFilter); +export const selectMainPageTagsFilterMatchMode = createSelector(projects, state => state.mainPageTagsFilterMatchMode); export const selectCompanyTags = createSelector(projects, state => state.companyTags); // eslint-disable-next-line @typescript-eslint/naming-convention export const selectProjectSystemTags = createSelector(projects, state => getSystemTags({system_tags: state.systemTags} as ITableExperiment)); @@ -138,6 +146,8 @@ export const projectsReducer = createReducer( on(projectsActions.setTagsFilterByProject, (state, action) => ({...state, tagsFilterByProject: action.tagsFilterByProject})), on(projectsActions.setCompanyTags, (state, action) => ({...state, companyTags: action.tags, systemTags: action.systemTags})), on(projectsActions.addProjectTags, (state, action) => ({...state, projectTags: Array.from(new Set(state.projectTags.concat(action.tags))).sort()})), + on(projectsActions.setMainPageTagsFilter, (state, action) => ({...state, mainPageTagsFilter: action.tags})), + on(projectsActions.setMainPageTagsFilterMatchMode, (state, action) => ({...state, mainPageTagsFilterMatchMode: action.matchMode})), on(projectsActions.setTagColors, (state, action) => ({...state, tagsColors: {...state.tagsColors, [action.tag]: action.colors}})), on(projectsActions.setMetricVariant, (state, action) => ({ ...state, graphVariant: {...state.graphVariant, [action.projectId]: action.col} @@ -147,7 +157,10 @@ export const projectsReducer = createReducer( on(projectsActions.setProjectUsers, (state, action) => ({...state, users: action.users, extraUsers: []})), on(projectsActions.setAllProjectUsers, (state, action) => ({...state, allUsers: action.users})), on(projectsActions.setProjectExtraUsers, (state, action) => ({...state, extraUsers: action.users})), - on(projectsActions.setShowHidden, (state, action) => ({...state, showHidden: action.show})) + on(projectsActions.setShowHidden, (state, action) => ({...state, showHidden: action.show})), + on(projectsActions.setHideExamples, (state, action) => ({...state, hideExamples: action.hide})) ); export const selectShowHidden = createSelector(projects, selectSelectedProject, (state, selectedProject) => (state?.showHidden || selectedProject?.system_tags?.includes('hidden'))); + +export const selectHideExamples = createSelector(projects, state => state?.hideExamples); diff --git a/src/app/webapp-common/core/reducers/view.reducer.ts b/src/app/webapp-common/core/reducers/view.reducer.ts index 11fd83d2..42315d05 100644 --- a/src/app/webapp-common/core/reducers/view.reducer.ts +++ b/src/app/webapp-common/core/reducers/view.reducer.ts @@ -60,10 +60,10 @@ export const selectBackdropActive = createSelector(views, state => state.backdro export const selectNotification = createSelector(views, state => state.notification); export const selectLoggedOut = createSelector(views, state => state.loggedOut); -export const selectAutoRefresh = createSelector(views, state => state && state.autoRefresh); +export const selectAutoRefresh = createSelector(views, state => state?.autoRefresh); export const selectCompareAutoRefresh = createSelector(views, state => state.compareAutoRefresh); -export const selectAppVisible = createSelector(views, state => state.applicationVisible); -export const selectScaleFactor = createSelector(views, state => state.scaleFactor); +export const selectAppVisible = createSelector(views, state => state?.applicationVisible); +export const selectScaleFactor = createSelector(views, state => state?.scaleFactor); export const selectFirstLogin = createSelector(views, state => state.firstLogin); export const selectFirstLoginAt = createSelector(views, state => state.firstLoginAt); export const selectPlotlyReady = createSelector(views, state => state.plotlyReady); diff --git a/src/app/webapp-common/dashboard-search/dashboard-search.actions.ts b/src/app/webapp-common/dashboard-search/dashboard-search.actions.ts index f123ea72..a2f1ec4e 100644 --- a/src/app/webapp-common/dashboard-search/dashboard-search.actions.ts +++ b/src/app/webapp-common/dashboard-search/dashboard-search.actions.ts @@ -5,6 +5,7 @@ import {Task} from '~/business-logic/model/tasks/task'; import {Model} from '~/business-logic/model/models/model'; import {ActiveSearchLink} from '~/features/dashboard-search/dashboard-search.consts'; import {DASHBOARD_PREFIX} from '@common/dashboard/common-dashboard.const'; +import {IReport} from "@common/reports/reports.consts"; export const searchSetTerm = createAction( @@ -31,6 +32,16 @@ export const searchPipelines = createAction( props<{ query: string; regExp?: boolean }>() ); +export const searchReports = createAction( + SEARCH_PREFIX + 'SEARCH_REPORTS', + props<{ query: string; regExp?: boolean }>() +); + +export const setReportsResults = createAction( + 'Set Reports Results', + props<{ reports: IReport[]; scrollId: string }>() +); + export const searchOpenDatasets = createAction( SEARCH_PREFIX + 'SEARCH_OPEN_"DATASETS', props<{ query: string; regExp?: boolean }>() diff --git a/src/app/webapp-common/dashboard-search/dashboard-search.effects.ts b/src/app/webapp-common/dashboard-search/dashboard-search.effects.ts index 78942886..e6dc6636 100644 --- a/src/app/webapp-common/dashboard-search/dashboard-search.effects.ts +++ b/src/app/webapp-common/dashboard-search/dashboard-search.effects.ts @@ -10,13 +10,13 @@ import { searchModels, searchOpenDatasets, searchPipelines, - searchProjects, + searchProjects, searchReports, searchSetTerm, searchStart, setExperimentsResults, setModelsResults, setOpenDatasetsResults, setPipelinesResults, - setProjectsResults + setProjectsResults, setReportsResults } from './dashboard-search.actions'; import {EXPERIMENT_SEARCH_ONLY_FIELDS, SEARCH_PAGE_SIZE} from './dashboard-search.consts'; import {ApiProjectsService} from '~/business-logic/api-services/projects.service'; @@ -27,48 +27,65 @@ import {ProjectsGetAllExRequest} from '~/business-logic/model/projects/projectsG import {ApiTasksService} from '~/business-logic/api-services/tasks.service'; import {ApiModelsService} from '~/business-logic/api-services/models.service'; import {catchError, mergeMap, map, switchMap, withLatestFrom} from 'rxjs/operators'; -import {escapeRegex} from '../shared/utils/shared-utils'; import {isEqual} from 'lodash/fp'; import {activeSearchLink} from '~/features/dashboard-search/dashboard-search.consts'; import {EmptyAction} from '~/app.constants'; +import {escapeRegex} from '@common/shared/utils/escape-regex'; import {selectCurrentUser, selectShowOnlyUserWork} from '@common/core/reducers/users-reducer'; +import {selectHideExamples, selectShowHidden} from '@common/core/reducers/projects.reducer'; +import {ApiReportsService} from '~/business-logic/api-services/reports.service'; +import {Report} from '~/business-logic/model/reports/report'; -export const getEntityStatQuery = action => ({ +export const getEntityStatQuery = (action, searchHidden) => ({ /* eslint-disable @typescript-eslint/naming-convention */ projects: { _any_: { ...(action.query && {pattern: action.regExp ? action.query : escapeRegex(action.query)}), fields: ['basename', 'id'] }, + search_hidden: searchHidden, system_tags: ['-pipeline', '-dataset'], }, - tasks: {_any_: { + tasks: { + _any_: { ...(action.query && {pattern: action.regExp ? action.query : escapeRegex(action.query)}), fields: ['name', 'id'] }, + search_hidden: searchHidden, type: ['__$not', 'annotation_manual', '__$not', 'annotation', '__$not', 'dataset_import'], system_tags: ['-archived', '-pipeline', '-dataset'], }, - models: {_any_: { + models: { + _any_: { ...(action.query && {pattern: action.regExp ? action.query : escapeRegex(action.query)}), fields: ['name', 'id'] }, }, - datasets: {_any_: { + datasets: { + _any_: { ...(action.query && {pattern: action.regExp ? action.query : escapeRegex(action.query)}), fields: ['basename', 'id'] }, - search_hidden: true, + search_hidden: searchHidden, system_tags: ['dataset'], name: '/\\.datasets/', }, - pipelines: {_any_: { + pipelines: { + _any_: { ...(action.query && {pattern: action.regExp ? action.query : escapeRegex(action.query)}), fields: ['basename', 'id'] }, - search_hidden: true, + search_hidden: searchHidden, system_tags: ['pipeline'], - } + }, + reports: { + _any_: { + ...(action.query && {pattern: action.regExp ? action.query : escapeRegex(action.query)}), + fields: ['name', 'id'] + }, + system_tags: ['-archived'], + search_hidden: searchHidden, + }, /* eslint-enable @typescript-eslint/naming-convention */ }); @@ -79,6 +96,7 @@ export class DashboardSearchEffects { public projectsApi: ApiProjectsService, public modelsApi: ApiModelsService, public experimentsApi: ApiTasksService, + public reportsApi: ApiReportsService, private store: Store ) { } @@ -125,6 +143,8 @@ export class DashboardSearchEffects { return searchPipelines(term); case activeSearchLink.openDatasets: return searchOpenDatasets(term); + case activeSearchLink.reports: + return searchReports(term); } return new EmptyAction(); } @@ -137,8 +157,10 @@ export class DashboardSearchEffects { this.store.select(selectSearchScrollIds), this.store.select(selectShowOnlyUserWork), this.store.select(selectCurrentUser), + this.store.select(selectHideExamples), + this.store.select(selectShowHidden), ), - switchMap(([action, scrollIds, userFocus, user]) => this.projectsApi.projectsGetAllEx({ + switchMap(([action, scrollIds, userFocus, user, hideExamples, showHidden]) => this.projectsApi.projectsGetAllEx({ _any_: { ...(action.query && {pattern: action.regExp ? action.query : escapeRegex(action.query)}), fields: ['basename', 'id'] @@ -146,14 +168,20 @@ export class DashboardSearchEffects { /* eslint-disable @typescript-eslint/naming-convention */ system_tags: ['-pipeline', '-dataset'], stats_for_state: ProjectsGetAllExRequest.StatsForStateEnum.Active, + ...(!showHidden && {include_stats_filter: {system_tags: ['-pipeline', '-dataset', '-Annotation']}}), + search_hidden: showHidden, scroll_id: scrollIds?.[activeSearchLink.projects] || null, size: SEARCH_PAGE_SIZE, ...(userFocus && {active_users: [user.id]}), + ...(hideExamples && {allow_public: false}), include_stats: true, only_fields: ['name', 'company', 'user', 'created', 'default_output_destination', 'basename'] /* eslint-enable @typescript-eslint/naming-convention */ }).pipe( - mergeMap(res => [setProjectsResults({projects: res.projects, scrollId: res.scroll_id}), deactivateLoader(action.type)]), + mergeMap(res => [setProjectsResults({ + projects: res.projects, + scrollId: res.scroll_id + }), deactivateLoader(action.type)]), catchError(error => [deactivateLoader(action.type), requestFailed(error)]))) )); @@ -163,14 +191,16 @@ export class DashboardSearchEffects { this.store.select(selectSearchScrollIds), this.store.select(selectShowOnlyUserWork), this.store.select(selectCurrentUser), + this.store.select(selectHideExamples), ), - switchMap(([action, scrollIds, userFocus, user]) => this.projectsApi.projectsGetAllEx({ + switchMap(([action, scrollIds, userFocus, user, hideExamples]) => this.projectsApi.projectsGetAllEx({ _any_: { ...(action.query && {pattern: action.regExp ? action.query : escapeRegex(action.query)}), fields: ['basename', 'id'] }, /* eslint-disable @typescript-eslint/naming-convention */ search_hidden: true, + ...(hideExamples && {allow_public: false}), shallow_search: false, system_tags: ['pipeline'], stats_for_state: ProjectsGetAllExRequest.StatsForStateEnum.Active, @@ -181,7 +211,10 @@ export class DashboardSearchEffects { only_fields: ['name', 'company', 'user', 'created', 'default_output_destination', 'tags', 'system_tags', 'basename'] /* eslint-enable @typescript-eslint/naming-convention */ }).pipe( - mergeMap(res => [setPipelinesResults({pipelines: res.projects, scrollId: res.scroll_id}), deactivateLoader(action.type)]), + mergeMap(res => [setPipelinesResults({ + pipelines: res.projects, + scrollId: res.scroll_id + }), deactivateLoader(action.type)]), catchError(error => [deactivateLoader(action.type), requestFailed(error)]))) )); @@ -191,8 +224,9 @@ export class DashboardSearchEffects { this.store.select(selectSearchScrollIds), this.store.select(selectShowOnlyUserWork), this.store.select(selectCurrentUser), + this.store.select(selectHideExamples), ), - switchMap(([action, scrollIds, userFocus, user]) => this.projectsApi.projectsGetAllEx({ + switchMap(([action, scrollIds, userFocus, user, hideExamples]) => this.projectsApi.projectsGetAllEx({ /* eslint-disable @typescript-eslint/naming-convention */ _any_: { ...(action.query && {pattern: action.regExp ? action.query : escapeRegex(action.query)}), @@ -206,13 +240,17 @@ export class DashboardSearchEffects { scroll_id: scrollIds?.[activeSearchLink.openDatasets] || null, size: SEARCH_PAGE_SIZE, ...(userFocus && {active_users: [user.id]}), + ...(hideExamples && {allow_public: false}), include_dataset_stats: true, stats_with_children: false, include_stats: true, only_fields: ['name', 'company', 'user', 'created', 'default_output_destination', 'tags', 'system_tags', 'basename'] /* eslint-enable @typescript-eslint/naming-convention */ }).pipe( - mergeMap(res => [setOpenDatasetsResults({openDatasets: res.projects, scrollId: res.scroll_id}), deactivateLoader(action.type)]), + mergeMap(res => [setOpenDatasetsResults({ + openDatasets: res.projects, + scrollId: res.scroll_id + }), deactivateLoader(action.type)]), catchError(error => [deactivateLoader(action.type), requestFailed(error)]))) )); @@ -223,8 +261,9 @@ export class DashboardSearchEffects { this.store.select(selectSearchScrollIds), this.store.select(selectShowOnlyUserWork), this.store.select(selectCurrentUser), + this.store.select(selectHideExamples), ), - switchMap(([action, scrollIds, userFocus, user]) => this.modelsApi.modelsGetAllEx({ + switchMap(([action, scrollIds, userFocus, user, hideExamples]) => this.modelsApi.modelsGetAllEx({ /* eslint-disable @typescript-eslint/naming-convention */ _any_: { ...(action.query && {pattern: action.regExp ? action.query : escapeRegex(action.query)}), @@ -233,6 +272,7 @@ export class DashboardSearchEffects { scroll_id: scrollIds?.[activeSearchLink.models] || null, size: SEARCH_PAGE_SIZE, ...(userFocus && {user: [user.id]}), + ...(hideExamples && {allow_public: false}), system_tags: ['-archived'], include_stats: true, only_fields: ['ready', 'created', 'framework', 'user.name', 'name', 'parent.name', 'task.name', 'id', 'company'] @@ -248,8 +288,10 @@ export class DashboardSearchEffects { this.store.select(selectSearchScrollIds), this.store.select(selectShowOnlyUserWork), this.store.select(selectCurrentUser), + this.store.select(selectHideExamples), + this.store.select(selectShowHidden), ), - switchMap(([action, scrollIds, userFocus, user]) => this.experimentsApi.tasksGetAllEx({ + switchMap(([action, scrollIds, userFocus, user, hideExamples, showHidden]) => this.experimentsApi.tasksGetAllEx({ /* eslint-disable @typescript-eslint/naming-convention */ _any_: { ...(action.query && {pattern: action.regExp ? action.query : escapeRegex(action.query)}), @@ -258,12 +300,45 @@ export class DashboardSearchEffects { scroll_id: scrollIds?.[activeSearchLink.experiments] || null, size: SEARCH_PAGE_SIZE, ...(userFocus && {user: [user.id]}), + ...(hideExamples && {allow_public: false}), only_fields: EXPERIMENT_SEARCH_ONLY_FIELDS, type: ['__$not', 'annotation_manual', '__$not', 'annotation', '__$not', 'dataset_import'], - system_tags: ['-archived', '-pipeline', '-dataset'] + system_tags: ['-archived', '-pipeline', '-dataset'], + search_hidden: showHidden, /* eslint-enable @typescript-eslint/naming-convention */ }).pipe( - mergeMap(res => [setExperimentsResults({experiments: res.tasks, scrollId: res.scroll_id}), deactivateLoader(action.type)]), + mergeMap(res => [setExperimentsResults({ + experiments: res.tasks, + scrollId: res.scroll_id + }), deactivateLoader(action.type)]), + catchError(error => [deactivateLoader(action.type), requestFailed(error)]))) + )); + + searchReports = createEffect(() => this.actions.pipe( + ofType(searchReports), + withLatestFrom( + this.store.select(selectSearchScrollIds), + this.store.select(selectShowOnlyUserWork), + this.store.select(selectCurrentUser), + this.store.select(selectHideExamples), + ), + switchMap(([action, scrollIds, userFocus, user, hideExamples]) => this.reportsApi.reportsGetAllEx({ + _any_: { + ...(action.query && {pattern: action.regExp ? action.query : escapeRegex(action.query)}), + fields: ['name', 'id'] + }, + /* eslint-disable @typescript-eslint/naming-convention */ + scroll_id: scrollIds?.[activeSearchLink.reports] || null, + ...(hideExamples && {allow_public: false}), + size: SEARCH_PAGE_SIZE, + ...(userFocus && {user: [user.id]}), + system_tags: ['-archived'], + only_fields: ['name', 'comment', 'company', 'tags', 'report', 'project.name', 'user.name', 'status', 'last_update', 'system_tags'] as (keyof Report)[], + }).pipe( + mergeMap(res => [setReportsResults({ + reports: res.tasks, + scrollId: res.scroll_id + }), deactivateLoader(action.type)]), catchError(error => [deactivateLoader(action.type), requestFailed(error)]))) )); } diff --git a/src/app/webapp-common/dashboard-search/dashboard-search.reducer.ts b/src/app/webapp-common/dashboard-search/dashboard-search.reducer.ts index 4980b7f2..c849a085 100644 --- a/src/app/webapp-common/dashboard-search/dashboard-search.reducer.ts +++ b/src/app/webapp-common/dashboard-search/dashboard-search.reducer.ts @@ -10,16 +10,18 @@ import { searchDeactivate, searchSetTerm, setExperimentsResults, setModelsResults, setOpenDatasetsResults, setPipelinesResults, - setProjectsResults, setResultsCount + setProjectsResults, setReportsResults, setResultsCount } from './dashboard-search.actions'; import {SearchState} from '../common-search/common-search.reducer'; import {ActiveSearchLink, activeSearchLink} from '~/features/dashboard-search/dashboard-search.consts'; +import {IReport} from "@common/reports/reports.consts"; export interface DashboardSearchState { projects: Project[]; experiments: Task[]; models: Model[]; pipelines: Project[]; + reports: IReport[]; openDatasets: Project[]; users: User[]; term: SearchState['searchQuery']; @@ -39,6 +41,7 @@ export const searchInitialState: DashboardSearchState = { users: [], experiments: [], models: [], + reports: [], resultsCount: null, scrollIds: null, active: false @@ -46,28 +49,45 @@ export const searchInitialState: DashboardSearchState = { export const dashboardSearchReducers = [ on(searchActivate, (state) => ({...state, active: true})), - on(searchDeactivate, (state) => ({...state, active: false, term: searchInitialState.term, forceSearch: false, scrollIds: null, resultsCount: null})), + on(searchDeactivate, (state) => ({ + ...state, + active: false, + term: searchInitialState.term, + forceSearch: false, + scrollIds: null, + resultsCount: null + })), on(searchSetTerm, (state, action) => ({...state, term: action, forceSearch: action.force, scrollIds: null})), on(setProjectsResults, (state, action) => ({ ...state, projects: action.scrollId === state.scrollIds?.[activeSearchLink.projects] ? state.projects.concat(action.projects) : action.projects, - scrollIds: {...state.scrollIds, [activeSearchLink.projects]: action.scrollId}})), + scrollIds: {...state.scrollIds, [activeSearchLink.projects]: action.scrollId} + })), on(setPipelinesResults, (state, action) => ({ ...state, pipelines: action.scrollId === state.scrollIds?.[activeSearchLink.pipelines] ? state.pipelines.concat(action.pipelines) : action.pipelines, - scrollIds: {...state.scrollIds, [activeSearchLink.pipelines]: action.scrollId}})), - on(setOpenDatasetsResults, (state, action) => ({ + scrollIds: {...state.scrollIds, [activeSearchLink.pipelines]: action.scrollId} + })), + on(setOpenDatasetsResults, (state, action) => ({ ...state, openDatasets: action.scrollId === state.scrollIds?.[activeSearchLink.openDatasets] ? state.openDatasets.concat(action.openDatasets) : action.openDatasets, - scrollIds: {...state.scrollIds, [activeSearchLink.openDatasets]: action.scrollId}})), + scrollIds: {...state.scrollIds, [activeSearchLink.openDatasets]: action.scrollId} + })), on(setExperimentsResults, (state, action) => ({ ...state, experiments: action.scrollId === state.scrollIds?.[activeSearchLink.experiments] ? state.experiments.concat(action.experiments) : action.experiments, - scrollIds: {...state.scrollIds, [activeSearchLink.experiments]: action.scrollId}})), + scrollIds: {...state.scrollIds, [activeSearchLink.experiments]: action.scrollId} + })), on(setModelsResults, (state, action) => ({ ...state, models: action.scrollId === state.scrollIds?.[activeSearchLink.models] ? state.models.concat(action.models) : action.models, - scrollIds: {...state.scrollIds, [activeSearchLink.models]: action.scrollId}})), + scrollIds: {...state.scrollIds, [activeSearchLink.models]: action.scrollId} + })), + on(setReportsResults, (state, action) => ({ + ...state, + reports: action.scrollId === state.scrollIds?.[activeSearchLink.reports] ? state.reports.concat(action.reports) : action.reports, + scrollIds: {...state.scrollIds, [activeSearchLink.reports]: action.scrollId} + })), on(setResultsCount, (state, action) => ({...state, resultsCount: action.counts})), on(clearSearchResults, (state) => ({ ...state, @@ -88,6 +108,7 @@ export const selectSearch = createFeatureSelector('search' export const selectProjectsResults = createSelector(selectSearch, (state: DashboardSearchState): Array => state.projects); export const selectExperimentsResults = createSelector(selectSearch, (state: DashboardSearchState): Array => state.experiments); export const selectModelsResults = createSelector(selectSearch, (state: DashboardSearchState): Array => state.models); +export const selectReportsResults = createSelector(selectSearch, (state: DashboardSearchState): Array => state.reports); export const selectPipelinesResults = createSelector(selectSearch, (state: DashboardSearchState): Array => state.pipelines); export const selectDatasetsResults = createSelector(selectSearch, (state: DashboardSearchState): Array => state.openDatasets); export const selectActiveSearch = createSelector(selectSearch, (state: DashboardSearchState): boolean => state.term?.query?.length >= 3 || state.forceSearch); diff --git a/src/app/webapp-common/dashboard/common-dashboard.effects.ts b/src/app/webapp-common/dashboard/common-dashboard.effects.ts index 761c0d50..80b55f50 100644 --- a/src/app/webapp-common/dashboard/common-dashboard.effects.ts +++ b/src/app/webapp-common/dashboard/common-dashboard.effects.ts @@ -17,7 +17,7 @@ import {ApiLoginService} from '~/business-logic/api-services/login.service'; import {Store} from '@ngrx/store'; import {ErrorService} from '../shared/services/error.service'; import {selectCurrentUser, selectShowOnlyUserWork} from '../core/reducers/users-reducer'; -import {selectShowHidden} from '@common/core/reducers/projects.reducer'; +import {selectHideExamples, selectShowHidden} from '@common/core/reducers/projects.reducer'; @Injectable() export class CommonDashboardEffects { @@ -38,8 +38,9 @@ export class CommonDashboardEffects { this.store.select(selectCurrentUser), this.store.select(selectShowOnlyUserWork), this.store.select(selectShowHidden), + this.store.select(selectHideExamples), ), - mergeMap(([action, user, showOnlyUserWork, showHidden]) => + mergeMap(([action, user, showOnlyUserWork, showHidden, hideExamples]) => this.projectsApi.projectsGetAllEx({ stats_for_state: ProjectsGetAllExRequest.StatsForStateEnum.Active, include_stats: true, @@ -50,6 +51,7 @@ export class CommonDashboardEffects { ...(showOnlyUserWork && {active_users: [user.id]}), ...(showHidden && {search_hidden: true}), ...(!showHidden && {include_stats_filter: {system_tags: ['-pipeline']}}), + ...(hideExamples && {allow_public: false}), only_fields: ['name', 'company', 'user', 'created', 'default_output_destination'] }).pipe( mergeMap(({projects}) => [setRecentProjects({projects}), deactivateLoader(action.type)]), @@ -60,8 +62,12 @@ export class CommonDashboardEffects { getRecentTasks = createEffect(() => this.actions.pipe( ofType(getRecentExperiments), - withLatestFrom(this.store.select(selectCurrentUser), this.store.select(selectShowOnlyUserWork)), - switchMap(([action, user, showOnlyUserWork]) => this.tasksApi.tasksGetAllEx({ + withLatestFrom( + this.store.select(selectCurrentUser), + this.store.select(selectShowOnlyUserWork), + this.store.select(selectHideExamples), + ), + switchMap(([action, user, showOnlyUserWork, hideExamples]) => this.tasksApi.tasksGetAllEx({ page: 0, page_size: 5, order_by: ['-last_update'], @@ -70,6 +76,7 @@ export class CommonDashboardEffects { only_fields: ['type', 'status', 'created', 'name', 'id', 'last_update', 'started', 'project.name'], system_tags: ['-archived', '-pipeline'], user: showOnlyUserWork ? [user.id] : null, + ...(hideExamples && {allow_public: false}), }) .pipe( mergeMap(({tasks: experiments}) => [setRecentExperiments({experiments}), deactivateLoader(action.type)]), diff --git a/src/app/webapp-common/dashboard/containers/dashboard-projects/dashboard-projects.component.scss b/src/app/webapp-common/dashboard/containers/dashboard-projects/dashboard-projects.component.scss index e6b91442..68fe184a 100644 --- a/src/app/webapp-common/dashboard/containers/dashboard-projects/dashboard-projects.component.scss +++ b/src/app/webapp-common/dashboard/containers/dashboard-projects/dashboard-projects.component.scss @@ -1,5 +1,5 @@ @import "../../../shared/ui-components/styles/mixins/common"; -@import "../../../shared/ui-components/styles/variables"; +@import "variables"; .view-all { font-size: 12px; @@ -17,6 +17,7 @@ .sm-card-list-header { grid-column: 1 / -1; padding: 0; + height: unset; } .recent-title { @include recent-title(); diff --git a/src/app/webapp-common/dashboard/dashboard-search.component.base.ts b/src/app/webapp-common/dashboard/dashboard-search.component.base.ts index a6f09fb9..1549f3e1 100644 --- a/src/app/webapp-common/dashboard/dashboard-search.component.base.ts +++ b/src/app/webapp-common/dashboard/dashboard-search.component.base.ts @@ -8,7 +8,15 @@ import {combineLatest, Observable, Subscription} from 'rxjs'; import {SearchState, selectSearchQuery} from '../common-search/common-search.reducer'; import {Store} from '@ngrx/store'; import { - selectActiveSearch, selectDatasetsResults, selectExperimentsResults, selectModelsResults, selectPipelinesResults, selectProjectsResults, selectResultsCount, selectSearchScrollIds, + selectActiveSearch, + selectDatasetsResults, + selectExperimentsResults, + selectModelsResults, + selectPipelinesResults, + selectProjectsResults, + selectReportsResults, + selectResultsCount, + selectSearchScrollIds, selectSearchTerm } from '../dashboard-search/dashboard-search.reducer'; import {Project} from '~/business-logic/model/projects/project'; @@ -18,6 +26,7 @@ import {activeLinksList, ActiveSearchLink, activeSearchLink} from '~/features/da import {Component, OnDestroy, OnInit} from '@angular/core'; import {Router} from '@angular/router'; import { selectShowOnlyUserWork } from '@common/core/reducers/users-reducer'; +import {IReport} from '@common/reports/reports.consts'; @Component({ selector: 'sm-dashboard-search-base', @@ -28,6 +37,7 @@ import { selectShowOnlyUserWork } from '@common/core/reducers/users-reducer'; (modelSelected)="modelSelected($event)" (pipelineSelected)="pipelineSelected($event)" (activeLinkChanged)="activeLinkChanged($event)" + (reportSelected)="reportSelected($event)" (openDatasetSelected)="openDatasetCardClicked($event)" (loadMoreClicked)="loadMore()" [projectsList]="projectsResults$ | async" @@ -35,6 +45,7 @@ import { selectShowOnlyUserWork } from '@common/core/reducers/users-reducer'; [datasetsList]="datasetsResults$ | async" [experimentsList]="experimentsResults$ | async" [modelsList]="modelsResults$ | async" + [reportsList]="reportsResults$ | async" [activeLink]="activeLink" [resultsCount]="resultsCount$ | async"> `, @@ -53,11 +64,13 @@ export class DashboardSearchBaseComponent implements OnInit, OnDestroy{ public datasetsResults$: Observable; private scrollIds: Map; public resultsCount$: Observable>; + public reportsResults$: Observable>; constructor(public store: Store, public router: Router){ this.searchQuery$ = store.select(selectSearchQuery); this.activeSearch$ = store.select(selectActiveSearch); this.modelsResults$ = store.select(selectModelsResults); + this.reportsResults$ = store.select(selectReportsResults); this.pipelinesResults$ = store.select(selectPipelinesResults); this.datasetsResults$ = store.select(selectDatasetsResults); this.projectsResults$ = store.select(selectProjectsResults); @@ -123,6 +136,10 @@ export class DashboardSearchBaseComponent implements OnInit, OnDestroy{ this.store.dispatch(setSelectedProjectId({projectId: project.id, example: isExample(project)})); } + reportSelected(report: IReport) { + this.router.navigate(['reports',(report.project as any).id, report.id]); + } + public openDatasetCardClicked(project: Project) { this.router.navigateByUrl(`datasets/simple/${project.id}/experiments`); this.store.dispatch(setSelectedProjectId({projectId: project.id, example: isExample(project)})); diff --git a/src/app/webapp-common/dashboard/dumb/recent-experiment-table/recent-experiment-table.component.html b/src/app/webapp-common/dashboard/dumb/recent-experiment-table/recent-experiment-table.component.html index 15698230..35c9e323 100644 --- a/src/app/webapp-common/dashboard/dumb/recent-experiment-table/recent-experiment-table.component.html +++ b/src/app/webapp-common/dashboard/dumb/recent-experiment-table/recent-experiment-table.component.html @@ -13,10 +13,20 @@ +
{{experiment.name}} +
- {{experiment.project?.name}} +
+ {{experiment.project?.name}} +
{{experiment.started | date : TIME_FORMAT_STRING}} diff --git a/src/app/webapp-common/dashboard/dumb/recent-experiment-table/recent-experiment-table.component.scss b/src/app/webapp-common/dashboard/dumb/recent-experiment-table/recent-experiment-table.component.scss index e69de29b..43ae7b1a 100644 --- a/src/app/webapp-common/dashboard/dumb/recent-experiment-table/recent-experiment-table.component.scss +++ b/src/app/webapp-common/dashboard/dumb/recent-experiment-table/recent-experiment-table.component.scss @@ -0,0 +1,7 @@ +.experiment-name { + font-weight: 500; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + max-width: 450px; +} \ No newline at end of file diff --git a/src/app/webapp-common/datasets/simple-dataset-card/simple-dataset-card.component.html b/src/app/webapp-common/datasets/simple-dataset-card/simple-dataset-card.component.html index ca5f286f..beed0e70 100644 --- a/src/app/webapp-common/datasets/simple-dataset-card/simple-dataset-card.component.html +++ b/src/app/webapp-common/datasets/simple-dataset-card/simple-dataset-card.component.html @@ -11,6 +11,8 @@ class="title edit-name dark" [originalText]="project.name | shortProjectName" [editable]="true" + [minLength]="2" + [required]="true" pattern="^[^/]+$" [inlineDisabled]="true" (textChanged)="prepareProjectNameForChange($event)" diff --git a/src/app/webapp-common/datasets/simple-dataset-card/simple-dataset-card.component.scss b/src/app/webapp-common/datasets/simple-dataset-card/simple-dataset-card.component.scss index cba198ae..d1968328 100644 --- a/src/app/webapp-common/datasets/simple-dataset-card/simple-dataset-card.component.scss +++ b/src/app/webapp-common/datasets/simple-dataset-card/simple-dataset-card.component.scss @@ -1,4 +1,4 @@ -@import "../../shared/ui-components/styles/variables"; +@import "variables"; :host { cursor: pointer; diff --git a/src/app/webapp-common/datasets/simple-dataset-version-preview/simple-dataset-version-preview.component.html b/src/app/webapp-common/datasets/simple-dataset-version-preview/simple-dataset-version-preview.component.html index a2daea9b..9c93a821 100644 --- a/src/app/webapp-common/datasets/simple-dataset-version-preview/simple-dataset-version-preview.component.html +++ b/src/app/webapp-common/datasets/simple-dataset-version-preview/simple-dataset-version-preview.component.html @@ -9,7 +9,7 @@ class="dataset-version-preview" [class.hidden]="!debugImages.debugImages?.[selected.id]?.data" [isDarkTheme]="true" - [isDatasetVersionPreview]="true" + [disableStatusRefreshFilter]="true" [selected]="selected" >
No preview to show
diff --git a/src/app/webapp-common/datasets/simple-datasets/simple-datasets.component.html b/src/app/webapp-common/datasets/simple-datasets/simple-datasets.component.html index 574cc07b..fe80abcc 100644 --- a/src/app/webapp-common/datasets/simple-datasets/simple-datasets.component.html +++ b/src/app/webapp-common/datasets/simple-datasets/simple-datasets.component.html @@ -1,41 +1,45 @@ - -
- - - - - - +
+ + + + + + -
- -
+
+
- +
NO DATASETS TO SHOW
Run your first dataset to see it displayed here - or generate example -
+ or generate + example + +
@@ -43,7 +47,6 @@
-
@@ -65,7 +68,12 @@ (click)="emptyStateTabClicked('sdk')" >
- +
diff --git a/src/app/webapp-common/datasets/simple-datasets/simple-datasets.component.scss b/src/app/webapp-common/datasets/simple-datasets/simple-datasets.component.scss index 2f2b7e89..0d779b0e 100644 --- a/src/app/webapp-common/datasets/simple-datasets/simple-datasets.component.scss +++ b/src/app/webapp-common/datasets/simple-datasets/simple-datasets.component.scss @@ -1,9 +1,15 @@ @import "variables"; :host { + .sm-card-list-layout{ + &.in-empty-state{ + height: 100%; + grid-template-rows: 64px 1fr; + } + } display: block; height: 100%; - overflow-y: auto; + overflow-y: scroll; overflow-x: hidden; sm-projects-header { @@ -13,18 +19,21 @@ top: 0; z-index: 10; background-color: $blue-800; + margin-bottom: -12px; } + .empty-datasets { + width: 100%; + grid-column: 1/-1; display: flex; flex-direction: column; max-width: map-get($grid-max-widths, xl); margin: 0 auto; - padding: 24px; .title-icon { color: $blue-600; text-align: center; - margin: 48px 0 24px; + margin-bottom: 24px; } .title { font-size: 20px; @@ -51,6 +60,7 @@ display: flex; flex-wrap: wrap; gap: 24px; + padding-bottom: 24px; .navbar{ display: flex; diff --git a/src/app/webapp-common/debug-images/debug-image-snippet/debug-image-snippet.component.html b/src/app/webapp-common/debug-images/debug-image-snippet/debug-image-snippet.component.html deleted file mode 100644 index 7d8f7a44..00000000 --- a/src/app/webapp-common/debug-images/debug-image-snippet/debug-image-snippet.component.html +++ /dev/null @@ -1,57 +0,0 @@ - -
- - - -
-
- -
-
-
- -
-
- -
-
-
-
-
{{frame?.variantAndMetric || frame?.variant}}
-
-
- - -
- -
-
diff --git a/src/app/webapp-common/debug-images/debug-images-actions.ts b/src/app/webapp-common/debug-images/debug-images-actions.ts index e0279de6..0a7964c3 100644 --- a/src/app/webapp-common/debug-images/debug-images-actions.ts +++ b/src/app/webapp-common/debug-images/debug-images-actions.ts @@ -2,7 +2,6 @@ import {createAction, props} from '@ngrx/store'; import {Task} from '~/business-logic/model/tasks/task'; import {TaskMetric} from '~/business-logic/model/events/taskMetric'; import {EventsDebugImagesResponse} from '~/business-logic/model/events/eventsDebugImagesResponse'; -import {EventsGetDebugImageIterationsResponse} from '~/business-logic/model/events/eventsGetDebugImageIterationsResponse'; export const DEBUG_IMAGES_PREFIX = 'DEBUG_IMAGES_'; @@ -63,21 +62,5 @@ export const setTimeIsNow = createAction( props<{ task: string; timeIsNow: boolean }>() ); -export const setBeginningOfTime = createAction( - DEBUG_IMAGES_PREFIX + 'SET_BEGINNING_OF_TIME', - props<{ task: string; beginningOfTime: boolean }>() -); - -export const getDebugImageSample = createAction(DEBUG_IMAGES_PREFIX + 'GET_DEBUG_IMAGES_FOR_ITERATION', props<{ task: string; metric: string; variant: string; iteration: number; isAllMetrics: boolean }>()); -export const getNextDebugImageSample = createAction( - DEBUG_IMAGES_PREFIX + 'GET_NEXT_DEBUG_IMAGE', - props<{ task: string; navigateEarlier: boolean; iteration?: boolean }>() -); -export const setCurrentDebugImage = createAction(DEBUG_IMAGES_PREFIX + 'SET_DEBUG_IMAGES_FOR_ITERATION', props<{ event: any }>()); -export const setDebugImageViewerScrollId = createAction(DEBUG_IMAGES_PREFIX + 'SET_DEBUG_IMAGE_VIEWER_SCROLL_ID', props<{ scrollId: string }>()); -export const setDebugImageIterations = createAction(DEBUG_IMAGES_PREFIX + 'SET_DEBUG_IMAGE_ITERATIONS', props()); -export const setViewerEndOfTime = createAction(DEBUG_IMAGES_PREFIX + 'SET_VIEWER_END_OF_TIME', props<{ endOfTime: boolean }>()); -export const setViewerBeginningOfTime = createAction(DEBUG_IMAGES_PREFIX + 'SET_VIEWER_BEGINNING_OF_TIME', props<{ beginningOfTime: boolean }>()); -export const resetViewer = createAction(DEBUG_IMAGES_PREFIX + 'RESET_VIEWER'); diff --git a/src/app/webapp-common/debug-images/debug-images-effects.ts b/src/app/webapp-common/debug-images/debug-images-effects.ts index 1373c71d..388c484d 100644 --- a/src/app/webapp-common/debug-images/debug-images-effects.ts +++ b/src/app/webapp-common/debug-images/debug-images-effects.ts @@ -1,5 +1,5 @@ import {Injectable} from '@angular/core'; -import {Actions, createEffect, ofType} from '@ngrx/effects'; +import {Actions, createEffect, ofType} from '@ngrx/effects'; import {catchError, mergeMap, map, switchMap, withLatestFrom, filter} from 'rxjs/operators'; import * as debugActions from './debug-images-actions'; import {activeLoader, deactivateLoader} from '../core/actions/layout.actions'; @@ -8,17 +8,12 @@ import {ApiEventsService} from '~/business-logic/api-services/events.service'; import {requestFailed} from '../core/actions/http.actions'; import {refreshExperiments} from '../experiments/actions/common-experiments-view.actions'; import {Action, Store} from '@ngrx/store'; -import {selectDebugImages, selectImageViewerScrollId} from './debug-images-reducer'; -import { - setCurrentDebugImage, - setDebugImageIterations, - setDebugImageViewerScrollId, - setViewerBeginningOfTime, setViewerEndOfTime -} from './debug-images-actions'; +import {selectDebugImages} from './debug-images-reducer'; import {EventsDebugImagesResponse} from '~/business-logic/model/events/eventsDebugImagesResponse'; import {EventsGetTaskMetricsResponse} from '~/business-logic/model/events/eventsGetTaskMetricsResponse'; import {COMPARE_DEBUG_IMAGES_ONLY_FIELDS} from '../experiments-compare/experiments-compare.constants'; import {selectActiveWorkspaceReady} from '~/core/reducers/view.reducer'; +import {setBeginningOfTime} from '@common/shared/debug-sample/debug-sample.actions'; export const ALL_IMAGES = '-- All --'; @@ -46,7 +41,8 @@ export class DebugImagesEffects { constructor( private actions$: Actions, private apiTasks: ApiTasksService, private eventsApi: ApiEventsService, private store: Store - ) {} + ) { + } activeLoader = createEffect(() => this.actions$.pipe( ofType(debugActions.fetchExperiments, debugActions.refreshMetric, debugActions.refreshDebugImagesMetrics), @@ -63,16 +59,18 @@ export class DebugImagesEffects { /* eslint-disable @typescript-eslint/naming-convention */ metrics: [removeAllImagesFromPayload(action.payload)], iters: 3, - scroll_id: debugImages?.[action.payload.task] ? debugImages[action.payload.task].scroll_id : null, + scroll_id: (action.type !== debugActions.setSelectedMetric.type && debugImages?.[action.payload.task]) ? + debugImages[action.payload.task].scroll_id : + null, navigate_earlier: action.type !== debugActions.getPreviousBatch.type, refresh: [debugActions.setSelectedMetric.type, debugActions.refreshMetric.type].includes(action.type) /* eslint-enable @typescript-eslint/naming-convention */ }) .pipe( - mergeMap((res: EventsDebugImagesResponse ) => { + mergeMap((res: EventsDebugImagesResponse) => { const actionsToShoot = [deactivateLoader(action.type)] as Action[]; - actionsToShoot.push(debugActions.setDebugImages({res, task: action.payload.task})); if (res.metrics[0].iterations && res.metrics[0].iterations.length > 0) { + actionsToShoot.push(debugActions.setDebugImages({res, task: action.payload.task})); switch (action.type) { case debugActions.getNextBatch.type: actionsToShoot.push(debugActions.setTimeIsNow({task: action.payload.task, timeIsNow: false})); @@ -81,7 +79,7 @@ export class DebugImagesEffects { actionsToShoot.push(debugActions.setTimeIsNow({task: action.payload.task, timeIsNow: true})); break; case debugActions.getPreviousBatch.type: - actionsToShoot.push(debugActions.setBeginningOfTime({ + actionsToShoot.push(setBeginningOfTime({ task: action.payload.task, beginningOfTime: false })); @@ -90,7 +88,7 @@ export class DebugImagesEffects { } else { switch (action.type) { case debugActions.getNextBatch.type: - actionsToShoot.push(debugActions.setBeginningOfTime({ + actionsToShoot.push(setBeginningOfTime({ task: action.payload.task, beginningOfTime: true })); @@ -132,70 +130,13 @@ export class DebugImagesEffects { filter(ready => ready), map(() => action))), switchMap((action) => this.eventsApi.eventsGetTaskMetrics({ - /* eslint-disable @typescript-eslint/naming-convention */ - tasks: action.tasks, - event_type: 'training_debug_image' - /* eslint-enable @typescript-eslint/naming-convention */ - }) - .pipe( - mergeMap((res: EventsGetTaskMetricsResponse) => [debugActions.setMetrics({metrics: res.metrics}), deactivateLoader(action.type)]), - catchError(error => [requestFailed(error), deactivateLoader(action.type)]) - ) - ) - )); - - fetchDebugImagesForIter$ = createEffect(() => this.actions$.pipe( - ofType(debugActions.getDebugImageSample), - withLatestFrom(this.store.select(selectImageViewerScrollId)), - switchMap(([action, scrollId]) => - this.eventsApi.eventsGetDebugImageSample({ /* eslint-disable @typescript-eslint/naming-convention */ - task: action.task, - iteration: action.iteration, - metric: action.metric, - variant: action.variant, - scroll_id: scrollId, - navigate_current_metric: !action.isAllMetrics + tasks: action.tasks, + event_type: 'training_debug_image' /* eslint-enable @typescript-eslint/naming-convention */ }) .pipe( - mergeMap(res => [ - // eslint-disable-next-line @typescript-eslint/naming-convention - setDebugImageIterations({min_iteration: res.min_iteration, max_iteration: res.max_iteration}), - setCurrentDebugImage({event: res.event}), deactivateLoader(action.type), - setDebugImageViewerScrollId({scrollId: res.scroll_id}), - ]), - catchError(error => [requestFailed(error), deactivateLoader(action.type)]) - ) - ) - )); - - getNextDebugImagesForIter$ = createEffect(() => this.actions$.pipe( - ofType(debugActions.getNextDebugImageSample), - withLatestFrom(this.store.select(selectImageViewerScrollId)), - switchMap(([action, scrollId]) => - this.eventsApi.eventsNextDebugImageSample({ - /* eslint-disable @typescript-eslint/naming-convention */ - task: action.task, - scroll_id: scrollId, - navigate_earlier: action.navigateEarlier, - ...(action.iteration && {next_iteration: true}) - /* eslint-enable @typescript-eslint/naming-convention */ - }) - .pipe( - mergeMap(res => { - if (!res.event) { - return [action.navigateEarlier ? setViewerBeginningOfTime({beginningOfTime: true}) : setViewerEndOfTime({endOfTime: true})]; - } else { - return [ - // eslint-disable-next-line @typescript-eslint/naming-convention - setDebugImageIterations({min_iteration: res.min_iteration, max_iteration: res.max_iteration}), - setCurrentDebugImage({event: res.event}), deactivateLoader(action.type), - setDebugImageViewerScrollId({scrollId: res.scroll_id}), - !action.navigateEarlier ? setViewerBeginningOfTime({beginningOfTime: false}) : setViewerEndOfTime({endOfTime: false}) - ]; - } - }), + mergeMap((res: EventsGetTaskMetricsResponse) => [debugActions.setMetrics({metrics: res.metrics}), deactivateLoader(action.type)]), catchError(error => [requestFailed(error), deactivateLoader(action.type)]) ) ) diff --git a/src/app/webapp-common/debug-images/debug-images-reducer.ts b/src/app/webapp-common/debug-images/debug-images-reducer.ts index 6b01219b..365c6d65 100644 --- a/src/app/webapp-common/debug-images/debug-images-reducer.ts +++ b/src/app/webapp-common/debug-images/debug-images-reducer.ts @@ -1,20 +1,8 @@ import { - fetchExperiments, - getDebugImagesMetrics, - resetDebugImages, - resetViewer, - setBeginningOfTime, - setCurrentDebugImage, - setDebugImageIterations, - setDebugImages, - setDebugImageViewerScrollId, - setViewerBeginningOfTime, - setViewerEndOfTime, setExperimentsNames, setMetrics, setSelectedMetric, setTimeIsNow + fetchExperiments, getDebugImagesMetrics, resetDebugImages, setDebugImages, setExperimentsNames, setMetrics, setTimeIsNow } from './debug-images-actions'; import {Task} from '~/business-logic/model/tasks/task'; import {createFeatureSelector, createReducer, createSelector, on} from '@ngrx/store'; -import {omit} from 'lodash/fp'; -import {EventsGetDebugImageIterationsResponse} from '~/business-logic/model/events/eventsGetDebugImageIterationsResponse'; import {EventsDebugImagesResponse} from '~/business-logic/model/events/eventsDebugImagesResponse'; @@ -25,15 +13,10 @@ export interface IDebugImagesState { optionalMetrics: Array; searchTerm: string; scrollId: any; - imageViewerScrollId: string; - imageViewerBeginningOfTime: boolean; - imageViewerEndOfTime: boolean; noMore: boolean; selectedMetric: any; timeIsNow: any; - beginningOfTime: any; - minMaxIterations: EventsGetDebugImageIterationsResponse; - currentImageViewerDebugImage: any; + } export interface IDebugImagesSettings { @@ -53,15 +36,9 @@ export const initialState: IDebugImagesState = { tasks: [], optionalMetrics: [], scrollId: {}, - imageViewerScrollId: null, - imageViewerBeginningOfTime: null, - imageViewerEndOfTime: null, noMore: true, selectedMetric: null, - timeIsNow: {}, - beginningOfTime: {}, - minMaxIterations: {}, - currentImageViewerDebugImage: null + timeIsNow: {} } ; @@ -71,12 +48,7 @@ export const selectTaskNames = createSelector(debugImages, (state) => state.task export const selectNoMore = createSelector(debugImages, (state) => state.noMore); export const selectOptionalMetrics = createSelector(debugImages, (state) => state.optionalMetrics); export const selectTimeIsNow = createSelector(debugImages, (state) => state.timeIsNow); -export const selectBeginningOfTime = createSelector(debugImages, (state) => state.beginningOfTime); -export const selectMinMaxIterations = createSelector(debugImages, (state) => state.minMaxIterations); -export const selectCurrentImageViewerDebugImage = createSelector(debugImages, (state) => state.currentImageViewerDebugImage); -export const selectImageViewerScrollId = createSelector(debugImages, (state) => state.imageViewerScrollId); -export const selectViewerEndOfTime = createSelector(debugImages, (state) => state.imageViewerEndOfTime); -export const selectViewerBeginningOfTime = createSelector(debugImages, (state) => state.imageViewerBeginningOfTime); + export const debugSamplesReducer = createReducer( initialState, @@ -90,30 +62,9 @@ export const debugSamplesReducer = createReducer( on(setExperimentsNames, (state, action) => ({...state, tasks: action.tasks})), on(setMetrics, (state, action) => ({...state, optionalMetrics: action.metrics})), on(getDebugImagesMetrics, state => ({...state, optionalMetrics: initialState.optionalMetrics, debugImages: initialState.debugImages})), - on(setSelectedMetric, (state, action) => ({ - ...state, - ...(state.debugImages && {debugImages: omit(action.payload.task, state.debugImages)}), - timeIsNow: {...state.timeIsNow, [action.payload.task]: true}, - beginningOfTime: {...state.beginningOfTime, [action.payload.task]: false} - })), + on(setTimeIsNow, (state, action) => ({...state, timeIsNow: {...state.timeIsNow, [action.task]: action.timeIsNow}})), on(fetchExperiments, () => ({...initialState})), - on(setBeginningOfTime, (state, action) => ({ - ...state, - beginningOfTime: {...state.beginningOfTime, [action.task]: action.beginningOfTime} - })), // eslint-disable-next-line @typescript-eslint/naming-convention - on(setDebugImageIterations, (state, action) => ({...state, minMaxIterations: {min_iteration: action.min_iteration, max_iteration: action.max_iteration}})), - on(setCurrentDebugImage, (state, action) => ({...state, currentImageViewerDebugImage: action.event})), - on(setDebugImageViewerScrollId, (state, action) => ({...state, imageViewerScrollId: action.scrollId})), - on(setViewerEndOfTime, (state, action) => ({...state, imageViewerEndOfTime: action.endOfTime})), - on(setViewerBeginningOfTime, (state, action) => ({...state, imageViewerBeginningOfTime: action.beginningOfTime})), - on(resetViewer, state => ({ - ...state, - imageViewerEndOfTime: null, - imageViewerBeginningOfTime: null, - imageViewerScrollId: null, - minMaxIterations: null, - currentImageViewerDebugImage: null - })), + ); diff --git a/src/app/webapp-common/debug-images/debug-images-view/debug-images-view.component.html b/src/app/webapp-common/debug-images/debug-images-view/debug-images-view.component.html index dee5d8e6..7eeb7262 100644 --- a/src/app/webapp-common/debug-images/debug-images-view/debug-images-view.component.html +++ b/src/app/webapp-common/debug-images/debug-images-view/debug-images-view.component.html @@ -10,7 +10,8 @@ [frame]="frame" [theme]="isDarkTheme? themeEnum.Dark: themeEnum.Light" (imageError)="imageUrlError({frame, experimentId})" - (imageClicked)="imageClicked.emit({frame})"> + (imageClicked)="imageClicked.emit({frame})" + (createEmbedCode)="createEmbedCode.emit({metrics: [frame.metric], variants: [frame.variant]});">
diff --git a/src/app/webapp-common/debug-images/debug-images-view/debug-images-view.component.scss b/src/app/webapp-common/debug-images/debug-images-view/debug-images-view.component.scss index 38e38beb..5242e60a 100644 --- a/src/app/webapp-common/debug-images/debug-images-view/debug-images-view.component.scss +++ b/src/app/webapp-common/debug-images/debug-images-view/debug-images-view.component.scss @@ -1,4 +1,4 @@ -@import "../../shared/ui-components/styles/variables"; +@import "variables"; :host { display: block; diff --git a/src/app/webapp-common/debug-images/debug-images-view/debug-images-view.component.ts b/src/app/webapp-common/debug-images/debug-images-view/debug-images-view.component.ts index 189046ae..f804563e 100644 --- a/src/app/webapp-common/debug-images/debug-images-view/debug-images-view.component.ts +++ b/src/app/webapp-common/debug-images/debug-images-view/debug-images-view.component.ts @@ -1,7 +1,7 @@ import {Component, Input, Output} from '@angular/core'; import {EventEmitter} from '@angular/core'; import {Iteration, Event} from '@common/debug-images/debug-images.component'; -import {ThemeEnum} from '../../experiments/shared/common-experiments.const'; +import {ThemeEnum} from '@common/constants'; @Component({ selector: 'sm-debug-images-view', @@ -22,6 +22,7 @@ export class DebugImagesViewComponent { @Input() isDatasetVersionPreview = false; @Output() imageClicked = new EventEmitter(); @Output() refreshClicked = new EventEmitter(); + @Output() createEmbedCode = new EventEmitter<{metrics?: string[]; variants?: string[]}>(); @Output() urlError = new EventEmitter(); public imageUrlError(data: { frame: Event; experimentId: string }) { diff --git a/src/app/webapp-common/debug-images/debug-images.component.html b/src/app/webapp-common/debug-images/debug-images.component.html index c530c756..d23f6535 100644 --- a/src/app/webapp-common/debug-images/debug-images.component.html +++ b/src/app/webapp-common/debug-images/debug-images.component.html @@ -1,19 +1,25 @@
+ *ngFor="let experimentId of experimentIds.slice(0,LIMITED_VIEW_LIMIT); trackBy: trackExperiment; let first = first; let last = + last" + [class.separator]="experimentIds?.length > 1">
+ >
-